From 943e350ca4f0b3e673c4fe77e5ba76280665d53a Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 16:19:08 +0800 Subject: [PATCH 01/15] feat(api): regenerate SDK for newly added meta json entries --- README.md | 2367 +++++---- README_CN.md | 2367 +++++---- api_acs_device_list.go | 3 +- api_acs_rule_external_delete.go | 3 +- api_acs_rule_external_device_bind.go | 3 +- api_acs_user_face_update.go | 3 +- api_acs_user_update.go | 3 +- api_acs_visitor_delete.go | 3 +- api_admin_badge_grant_delete.go | 3 +- api_admin_password_reset.go | 3 +- api_ai_id_card_recognize.go | 6 +- api_ai_resume_parse.go | 12 + api_aily_aily_session_aily_message_create.go | 146 + api_aily_aily_session_aily_message_get.go | 132 + api_aily_aily_session_aily_message_list.go | 137 + api_aily_aily_session_create.go | 94 + api_aily_aily_session_delete.go | 77 + api_aily_aily_session_get.go | 88 + api_aily_aily_session_run_cancel.go | 102 + api_aily_aily_session_run_create.go | 106 + api_aily_aily_session_run_get.go | 102 + api_aily_aily_session_run_list.go | 105 + api_aily_aily_session_update.go | 90 + api_aily_app_data_asset_create.go | 173 + api_aily_app_data_asset_delete.go | 118 + api_aily_app_data_asset_get.go | 119 + api_aily_app_data_asset_list.go | 124 + api_aily_app_data_asset_tag_list.go | 91 + api_aily_app_data_asset_upload_file.go | 92 + api_aily_app_knowledge_ask.go | 111 + api_aily_app_skill_get.go | 89 + api_aily_app_skill_list.go | 93 + api_aily_app_skill_start.go | 99 + api_apaas_app_list.go | 125 + ...as_application_audit_log_audit_log_list.go | 138 + ...cation_audit_log_data_change_log_detail.go | 143 + ...ication_audit_log_data_change_logs_list.go | 138 + api_apaas_application_audit_log_get.go | 143 + ...as_application_environment_variable_get.go | 102 + ..._application_environment_variable_query.go | 110 + api_apaas_application_flow_execute.go | 85 + api_apaas_application_function_invoke.go | 77 + api_apaas_application_object_oql_query.go | 79 + ..._application_object_record_batch_create.go | 92 + ..._application_object_record_batch_delete.go | 92 + ...s_application_object_record_batch_query.go | 125 + ..._application_object_record_batch_update.go | 92 + api_apaas_application_object_record_create.go | 77 + api_apaas_application_object_record_delete.go | 76 + api_apaas_application_object_record_query.go | 78 + api_apaas_application_object_record_update.go | 77 + api_apaas_application_object_search.go | 158 + ...ssion_member_batch_create_authorization.go | 76 + ...ssion_member_batch_remove_authorization.go | 76 + ..._role_member_batch_create_authorization.go | 77 + ..._role_member_batch_remove_authorization.go | 77 + api_apaas_application_role_member_get.go | 132 + api_apaas_approval_instance_cancel.go | 76 + api_apaas_approval_task_agree.go | 12 +- api_apaas_approval_task_reject.go | 12 +- api_apaas_approval_task_transfer.go | 16 +- api_apaas_seat_activity_list.go | 87 + api_apaas_seat_assignment_list.go | 86 + api_apaas_user_task_cc.go | 76 + api_apaas_user_task_chat_group.go | 79 + api_apaas_user_task_expediting.go | 77 + api_apaas_user_task_query.go | 129 + api_apaas_user_task_rollback.go | 77 + api_apaas_user_task_rollback_points.go | 89 + api_apaas_workspace_enum_get.go | 86 + api_apaas_workspace_enum_list.go | 94 + api_apaas_workspace_sql_commands.go | 75 + api_apaas_workspace_table_get.go | 90 + api_apaas_workspace_table_list.go | 98 + ...as_workspace_table_records_batch_update.go | 76 + api_apaas_workspace_table_records_delete.go | 75 + api_apaas_workspace_table_records_get.go | 83 + api_apaas_workspace_table_records_post.go | 79 + api_apaas_workspace_table_records_update.go | 77 + api_apaas_workspace_view_views_get.go | 83 + api_app_feed_card_button_update.go | 31 +- api_app_feed_card_create.go | 59 +- api_app_feed_card_delete.go | 13 +- api_app_feed_card_instant_reminder.go | 11 +- api_app_feed_card_update.go | 59 +- api_application_app_admin_user_list.go | 3 +- api_application_app_badge_set.go | 3 +- api_application_app_list.go | 4 +- api_application_app_management_update.go | 3 +- api_application_app_visibility_get.go | 5 + api_application_app_visibility_update.go | 5 +- api_application_app_visibility_update_v6.go | 3 +- ...ication_app_usage_message_push_overview.go | 91 + ...plication_application_collaborators_get.go | 87 + ...cation_application_collaborators_update.go | 86 + api_application_application_list.go | 134 + api_application_application_owner_update.go | 79 + ...ion_contacts_range_configuration_update.go | 3 +- api_application_feedback_update.go | 3 +- api_application_scope_apply.go | 75 + api_application_scope_list.go | 80 + api_application_update.go | 3 +- api_application_version_update.go | 3 +- ...tion_workplace_block_access_data_search.go | 13 + api_approval_carbon_copy_create.go | 3 +- api_approval_instance_add_sign.go | 3 +- api_approval_instance_approve.go | 3 +- api_approval_instance_cancel.go | 3 +- api_approval_instance_reject.go | 3 +- api_approval_instance_rollback.go | 3 +- api_approval_instance_task_resubmit.go | 3 +- api_approval_instance_transfer.go | 3 +- api_approval_message_send.go | 4 + api_approval_subscription_subscribe.go | 3 +- api_approval_subscription_unsubscribe.go | 3 +- api_approval_user_id_transform.go | 9 +- api_attendance_archive_rule_del_report.go | 81 + api_attendance_archive_rule_list.go | 101 + api_attendance_archive_rule_upload_report.go | 95 + ...ce_archive_rule_user_stats_fields_query.go | 87 + api_attendance_group_delete.go | 3 +- api_attendance_group_list_user.go | 89 + api_attendance_shift_delete.go | 3 +- api_attendance_user_approval_create.go | 28 + api_attendance_user_approval_get.go | 14 + ...ance_user_daily_shift_batch_create_temp.go | 112 + api_attendance_user_flow_batch_del.go | 78 + api_auth_app_ticket_resend.go | 3 +- api_auth_user_info_get.go | 3 +- api_authen_access_token_create.go | 99 + api_authen_refresh_access_token_create.go | 99 + api_baike_classification_list.go | 2 - api_baike_draft_create.go | 2 - api_baike_draft_update.go | 2 - api_baike_entity_create.go | 2 - api_baike_entity_extract.go | 2 - api_baike_entity_get.go | 2 - api_baike_entity_highlight.go | 2 - api_baike_entity_list.go | 2 - api_baike_entity_match.go | 2 - api_baike_entity_search.go | 2 - api_baike_entity_update.go | 2 - api_baike_image_download.go | 2 - api_baike_image_upload.go | 2 - api_base_app_role_create.go | 194 + api_base_app_role_list.go | 164 + api_base_app_role_update.go | 196 + api_bitable_app_block_workflow_list.go | 82 + api_bitable_app_role_create.go | 2 - api_bitable_app_role_delete.go | 3 +- api_bitable_app_role_list.go | 2 - api_bitable_app_role_member_create.go | 3 +- api_bitable_app_role_member_create_batch.go | 3 +- api_bitable_app_role_member_delete.go | 3 +- api_bitable_app_role_member_delete_batch.go | 3 +- api_bitable_app_role_update.go | 2 - api_bitable_app_table_record_batch_get.go | 116 + api_bitable_app_workflow_list.go | 83 + api_bitable_app_workflow_update.go | 77 + api_bitable_record_get.go | 2 - api_bitable_record_list.go | 2 - api_bitable_table_batch_delete.go | 3 +- api_bitable_table_delete.go | 3 +- api_bitable_view_delete.go | 3 +- api_board_whiteboard_download_as_image.go | 84 + api_board_whiteboard_node_create.go | 787 +++ api_board_whiteboard_node_create_plantuml.go | 79 + api_board_whiteboard_theme.go | 75 + api_board_whiteboard_update_theme.go | 75 + api_bot_add.go | 3 +- api_bot_info.go | 3 +- api_calendar_acl_delete.go | 3 +- api_calendar_acl_subscribe.go | 3 +- api_calendar_acl_unsubscribe.go | 3 +- api_calendar_calendar_delete.go | 3 +- ...calendar_calendar_event_attendee_delete.go | 12 +- api_calendar_calendar_event_delete.go | 3 +- ...ndar_calendar_event_meeting_chat_delete.go | 3 +- ...ar_calendar_event_meeting_minute_create.go | 81 + api_calendar_calendar_event_reply.go | 3 +- api_calendar_calendar_event_subscribe.go | 3 +- api_calendar_calendar_event_unsubscribe.go | 3 +- api_calendar_calendar_mget.go | 93 + api_calendar_calendar_subscription.go | 6 +- api_calendar_calendar_timeoff_event_delete.go | 3 +- api_calendar_calendar_unsubscribe.go | 3 +- api_calendar_calendar_unsubscription.go | 6 +- api_calendar_exchange_binding_delete.go | 3 +- api_calendar_freebusy_batch_query.go | 97 + ...alendar_meeting_room_freebusy_batch_get.go | 41 +- api_calendar_meeting_room_instance_reply.go | 24 +- ...calendar_meeting_room_summary_batch_get.go | 44 +- api_cardkit_card_batch_update.go | 82 + api_cardkit_card_create.go | 86 + api_cardkit_card_element_content.go | 90 + api_cardkit_card_element_create.go | 83 + api_cardkit_card_element_delete.go | 83 + api_cardkit_card_element_update.go | 83 + api_cardkit_card_element_update_v1.go | 82 + api_cardkit_card_id_convert.go | 80 + api_cardkit_card_settings.go | 81 + api_cardkit_card_update.go | 88 + api_ccm_docs_default_docs_api_meta.go | 97 + api_chat_announcement_update.go | 3 +- api_chat_create.go | 14 + api_chat_delete.go | 3 +- api_chat_get.go | 7 + api_chat_join.go | 3 +- api_chat_menu_tree_create.go | 28 + api_chat_menu_tree_delete.go | 14 + api_chat_menu_tree_get.go | 14 + api_chat_menu_tree_sort.go | 14 + api_chat_menu_tree_update.go | 14 + api_chat_moderation_update.go | 3 +- api_chat_top_notice_delete.go | 3 +- api_chat_top_notice_update.go | 3 +- api_chat_update.go | 10 +- api_compensation_archive_create.go | 97 + ...pensation_lump_sum_payment_batch_create.go | 114 + ...pensation_lump_sum_payment_batch_remove.go | 86 + ...pensation_lump_sum_payment_batch_update.go | 114 + api_compensation_lump_sum_payment_query.go | 146 + ...pensation_lump_sum_payment_query_detail.go | 122 + ...ensation_recurring_payment_batch_create.go | 99 + ...ensation_recurring_payment_batch_remove.go | 84 + ...ensation_recurring_payment_batch_update.go | 96 + api_compensation_recurring_payment_query.go | 118 + ...tion_social_archive_adjust_record_query.go | 139 + api_compensation_social_archive_query.go | 138 + api_compensation_social_insurance_list.go | 89 + api_compensation_social_plan_list.go | 147 + api_compensation_social_plan_query.go | 143 + api_contact_department_delete.go | 3 +- ...contact_department_department_id_update.go | 3 +- ...ntact_department_unbind_department_chat.go | 3 +- api_contact_employee_type_enums_delete.go | 3 +- api_contact_functional_role_delete.go | 3 +- api_contact_functional_role_update.go | 3 +- api_contact_group_Delete.go | 3 +- api_contact_group_member_add.go | 3 +- api_contact_group_member_delete.go | 3 +- api_contact_group_member_delete_batch.go | 3 +- api_contact_group_update.go | 3 +- api_contact_job_family_delete.go | 3 +- api_contact_job_level_delete.go | 3 +- api_contact_unit_bind_department.go | 3 +- api_contact_unit_delete.go | 3 +- api_contact_unit_unbind_department.go | 3 +- api_contact_unit_update.go | 3 +- api_contact_user_delete.go | 3 +- api_contact_user_id_update.go | 3 +- api_contact_user_resurrect.go | 10 +- api_contact_v2_department_batch_add.go | 9 + api_contact_v2_role_list.go | 84 + api_contact_v2_task_get.go | 3 +- api_corehr_approval_groups_get.go | 100 + api_corehr_approver_list.go | 88 + api_corehr_authorization_add_role_assign.go | 81 + api_corehr_authorization_get.go | 7 +- api_corehr_authorization_list.go | 4 +- ...corehr_authorization_remove_role_assign.go | 79 + ...corehr_authorization_update_role_assign.go | 81 + api_corehr_bank_branch_search.go | 42 +- api_corehr_bank_search.go | 32 +- api_corehr_basic_info_language_search.go | 94 + api_corehr_basic_info_time_zone_search.go | 95 + api_corehr_bp_by_employee_get_batch.go | 20 +- api_corehr_common_data_id_convert.go | 85 + ...r_common_data_meta_data_add_enum_option.go | 116 + ..._common_data_meta_data_edit_enum_option.go | 117 + api_corehr_company_active.go | 79 + api_corehr_company_delete.go | 3 +- api_corehr_company_query_multi_timeline.go | 329 ++ api_corehr_company_query_recent_change.go | 86 + api_corehr_compensation_archive_query.go | 37 +- api_corehr_compensation_change_reason_list.go | 9 +- api_corehr_compensation_indicator_list.go | 11 +- api_corehr_compensation_item_category_list.go | 7 +- api_corehr_compensation_item_list.go | 13 +- api_corehr_compensation_plan_list.go | 29 +- api_corehr_compensation_standard_match.go | 3 +- api_corehr_contract_delete.go | 3 +- api_corehr_cost_allocation_batch_query.go | 104 + api_corehr_cost_allocation_create_version.go | 92 + api_corehr_cost_allocation_remove_version.go | 82 + api_corehr_cost_allocation_update_version.go | 92 + api_corehr_cost_center_delete.go | 3 +- api_corehr_cost_center_query_recent_change.go | 86 + api_corehr_cost_center_version_delete.go | 3 +- api_corehr_country_region_get.go | 2 - api_corehr_country_region_list.go | 2 - api_corehr_currency_get.go | 2 - api_corehr_currency_list.go | 2 - api_corehr_custom_org_active.go | 82 + api_corehr_custom_org_create.go | 126 + api_corehr_custom_org_delete_org.go | 78 + api_corehr_custom_org_query.go | 155 + api_corehr_custom_org_query_recent_change.go | 87 + api_corehr_custom_org_update.go | 115 + api_corehr_custom_org_update_rule.go | 91 + api_corehr_default_cost_center_batch_query.go | 106 + ...rehr_default_cost_center_create_version.go | 87 + ...rehr_default_cost_center_remove_version.go | 83 + ...rehr_default_cost_center_update_version.go | 87 + api_corehr_department_delete.go | 5 +- api_corehr_department_delete_v2.go | 78 + api_corehr_department_get.go | 2 - api_corehr_department_query_operation_logs.go | 106 + api_corehr_department_query_recent_change.go | 87 + api_corehr_department_timeline_batch_query.go | 53 +- api_corehr_department_timeline_query.go | 49 +- api_corehr_department_tree.go | 92 + api_corehr_department_update.go | 2 - api_corehr_department_update_v2.go | 127 + api_corehr_draft_get.go | 87 + api_corehr_employee_create.go | 706 +++ api_corehr_employee_type_delete.go | 3 +- ...hr_employees_additional_job_batch_query.go | 150 + api_corehr_employees_additional_job_create.go | 154 + api_corehr_employees_additional_job_delete.go | 74 + api_corehr_employees_additional_job_update.go | 154 + ...ployees_international_assignment_create.go | 195 + ...ployees_international_assignment_delete.go | 74 + ...employees_international_assignment_list.go | 194 + ...ployees_international_assignment_update.go | 194 + api_corehr_employment_delete.go | 3 +- api_corehr_enum_search.go | 103 + api_corehr_job_batch_get.go | 126 + api_corehr_job_change_create_v2.go | 293 + api_corehr_job_change_revoke.go | 78 + api_corehr_job_data_delete.go | 3 +- api_corehr_job_delete.go | 3 +- api_corehr_job_family_delete.go | 3 +- api_corehr_job_family_get_batch.go | 44 +- api_corehr_job_family_query_multi_timeline.go | 114 + api_corehr_job_family_query_recent_change.go | 86 + api_corehr_job_get.go | 2 - api_corehr_job_grade_create.go | 91 + api_corehr_job_grade_delete.go | 74 + api_corehr_job_grade_query.go | 17 +- api_corehr_job_grade_query_recent_change.go | 86 + api_corehr_job_grade_update.go | 92 + api_corehr_job_level_delete.go | 3 +- api_corehr_job_level_query_recent_change.go | 86 + api_corehr_job_list.go | 2 - api_corehr_job_query_multi_timeline.go | 121 + api_corehr_job_query_recent_change.go | 86 + api_corehr_leave_calendar_by_scope.go | 82 + api_corehr_leave_granting_record_delete.go | 3 +- api_corehr_leave_work_calendar.go | 110 + api_corehr_leave_work_calendar_date.go | 90 + api_corehr_location_active.go | 82 + api_corehr_location_address_create.go | 108 + api_corehr_location_address_delete.go | 77 + api_corehr_location_address_update.go | 108 + api_corehr_location_delete.go | 3 +- api_corehr_location_query_multi_timeline.go | 186 + api_corehr_location_query_recent_change.go | 86 + api_corehr_location_update.go | 111 + api_corehr_national_id_type_delete.go | 3 +- api_corehr_nationality_search.go | 34 +- api_corehr_offboarding_create.go | 2 - api_corehr_offboarding_edit.go | 92 + api_corehr_offboarding_revoke.go | 78 + api_corehr_offboarding_submit_v2.go | 105 + api_corehr_pathway_active.go | 74 + api_corehr_pathway_batch_get.go | 98 + api_corehr_pathway_create.go | 91 + api_corehr_pathway_delete.go | 76 + api_corehr_pathway_update.go | 91 + api_corehr_person_create_v1.go | 1631 ++++++ api_corehr_person_delete.go | 3 +- api_corehr_person_get.go | 2 - api_corehr_person_update_v1.go | 1633 ++++++ api_corehr_position_active.go | 76 + api_corehr_position_create.go | 113 + api_corehr_position_del.go | 76 + api_corehr_position_query.go | 144 + api_corehr_position_query_recent_change.go | 86 + api_corehr_position_update.go | 116 + api_corehr_pre_hire_complete.go | 75 + api_corehr_pre_hire_create.go | 17 + api_corehr_pre_hire_delete.go | 3 +- api_corehr_pre_hire_delete_v2.go | 74 + api_corehr_pre_hire_get.go | 2 - api_corehr_pre_hire_list.go | 2 - api_corehr_pre_hire_query.go | 1854 +++++++ api_corehr_pre_hire_restore_flow_instance.go | 76 + api_corehr_pre_hire_search.go | 1017 ++-- ...rehr_pre_hire_transform_onboarding_task.go | 84 + api_corehr_pre_hire_transit_task.go | 78 + api_corehr_pre_hire_update_v2.go | 556 ++ api_corehr_pre_hire_withdraw_onboarding.go | 76 + api_corehr_probation_assessment_delete.go | 3 +- ...ehr_probation_assessment_enable_disable.go | 3 +- api_corehr_probation_assessment_update.go | 3 +- api_corehr_probation_submit.go | 196 + api_corehr_probation_withdraw.go | 76 + api_corehr_process_approver_update.go | 167 + api_corehr_process_extra_update.go | 83 + api_corehr_process_flow_variable_data.go | 189 + api_corehr_process_form_variable_data_get.go | 2 - ...orehr_process_form_variable_data_get_v2.go | 190 + ...process_query_flow_data_template_create.go | 178 + api_corehr_process_revoke_update.go | 78 + api_corehr_process_start_create.go | 179 + api_corehr_process_transfer_update.go | 80 + api_corehr_process_withdraw_update.go | 78 + api_corehr_report_detail_row_batchdelete.go | 98 + api_corehr_report_detail_row_batchsave.go | 106 + api_corehr_signature_file_download.go | 83 + api_corehr_signature_file_list.go | 116 + api_corehr_signature_file_list_by_biz_id.go | 112 + api_corehr_signature_file_query.go | 117 + api_corehr_signature_file_terminate.go | 88 + api_corehr_signature_node_list_by_file_id.go | 98 + ...ature_template_info_with_thumbnail_list.go | 184 + api_corehr_signature_template_search.go | 442 ++ api_corehr_subdivision_get.go | 2 - api_corehr_subdivision_list.go | 2 - api_corehr_subregion_get.go | 2 - api_corehr_subregion_list.go | 2 - ...orehr_workforce_plan_detail_batch_query.go | 202 + api_corehr_workforce_plan_detail_batch_v2.go | 144 + ...r_workforce_plan_detail_row_batchdelete.go | 97 + ...ehr_workforce_plan_detail_row_batchsave.go | 105 + api_corehr_workforce_plan_list.go | 96 + api_corehr_working_hours_type_delete.go | 3 +- api_directory_collaboration_rule_create.go | 92 + api_directory_collaboration_rule_delete.go | 76 + api_directory_collaboration_rule_list.go | 103 + api_directory_collaboration_rule_update.go | 92 + api_directory_collaboration_tenant_list.go | 109 + ...irectory_collboration_share_entity_list.go | 130 + api_directory_department_create.go | 154 + api_directory_department_delete.go | 79 + api_directory_department_filter.go | 213 + api_directory_department_mget.go | 189 + api_directory_department_search.go | 201 + api_directory_department_update.go | 155 + api_directory_employee_create.go | 190 + api_directory_employee_delete.go | 103 + api_directory_employee_filter.go | 430 ++ api_directory_employee_mget.go | 404 ++ api_directory_employee_regular.go | 79 + api_directory_employee_resurrect.go | 100 + api_directory_employee_search.go | 419 ++ api_directory_employee_to_be_resigned.go | 88 + api_directory_employee_update.go | 196 + api_docs_content_get.go | 79 + ...nnouncement_block_children_batch_delete.go | 92 + ...cx_chat_announcement_block_children_get.go | 4458 ++++++++++++++++ api_docx_chat_announcement_block_get.go | 85 + api_docx_chat_announcement_block_list.go | 88 + api_docx_chat_announcement_get.go | 91 + api_docx_document_convert.go | 4698 +++++++++++++++++ api_drive_comment_delete.go | 3 +- api_drive_comment_patch.go | 3 +- api_drive_comment_update.go | 3 +- api_drive_doc_content_get.go | 2 - api_drive_doc_content_update.go | 5 +- api_drive_doc_create.go | 2 - api_drive_doc_raw_content_get.go | 2 - api_drive_docx_block_list_of_block.go | 4584 ++++++++++++++++ api_drive_docx_block_update.go | 374 ++ api_drive_file_create.go | 2 - api_drive_file_like_list.go | 92 + api_drive_file_subscribe.go | 3 +- api_drive_file_unsubscribe.go | 3 +- api_drive_file_upload_part.go | 3 +- api_drive_file_version_delete.go | 3 +- api_drive_folder_root_meta.go | 3 +- api_drive_media_upload_part.go | 3 +- api_drive_permission_member_batch_create.go | 106 + api_drive_permission_member_delete.go | 3 +- api_drive_permission_owner_transfer.go | 3 +- api_drive_permission_public_get.go | 2 - ...drive_permission_public_password_delete.go | 3 +- api_drive_permission_public_patch.go | 2 - api_drive_sheet_condition_format_create.go | 44 + api_drive_sheet_condition_format_delete.go | 14 + api_drive_sheet_condition_format_get.go | 37 + api_drive_sheet_condition_format_update.go | 45 + ...e_sheet_data_validation_dropdown_create.go | 3 +- api_drive_sheet_dimension_move.go | 3 +- api_drive_sheet_dimension_range_insert.go | 3 +- api_drive_sheet_dimension_range_update.go | 3 +- api_drive_sheet_filter_create.go | 3 +- api_drive_sheet_filter_delete.go | 3 +- api_drive_sheet_filter_update.go | 3 +- ...rive_sheet_filter_view_condition_delete.go | 3 +- api_drive_sheet_filter_view_delete.go | 3 +- api_drive_sheet_float_image_delete.go | 3 +- api_drive_sheet_meta_get.go | 44 + api_drive_sheet_protected_dimension_create.go | 17 + api_drive_sheet_protected_dimension_get.go | 28 + api_drive_sheet_protected_dimension_update.go | 53 + api_drive_spreadsheet_create.go | 26 +- api_drive_spreadsheet_update.go | 3 +- api_drive_whiteboard_node_list.go | 698 ++- api_drive_wiki_node_title.go | 3 +- api_ehr_employee_get_list.go | 110 + api_event_callback_module.go | 1079 +--- api_event_callback_v1_add_bot.go | 12 + api_event_callback_v1_add_user_to_chat.go | 12 + api_event_callback_v1_app_open.go | 22 + api_event_callback_v1_app_status_change.go | 12 + api_event_callback_v1_app_ticket.go | 12 + api_event_callback_v1_app_uninstalled.go | 12 + api_event_callback_v1_approval_cc.go | 12 + api_event_callback_v1_approval_instance.go | 12 + api_event_callback_v1_approval_task.go | 12 + api_event_callback_v1_chat_disband.go | 12 + api_event_callback_v1_leave_approvalV2.go | 12 + ...event_callback_v1_leave_approval_revert.go | 12 + api_event_callback_v1_order_paid.go | 12 + api_event_callback_v1_out_approval.go | 12 + api_event_callback_v1_p2p_chat_create.go | 15 +- api_event_callback_v1_receive_message.go | 12 + api_event_callback_v1_remedy_approval.go | 12 + api_event_callback_v1_remove_bot.go | 12 + ...event_callback_v1_remove_user_from_chat.go | 12 + ...t_callback_v1_revoke_add_user_from_chat.go | 12 + api_event_callback_v1_shift_approval.go | 12 + ..._third_party_meeting_room_event_created.go | 17 + ..._third_party_meeting_room_event_deleted.go | 17 + ..._third_party_meeting_room_event_updated.go | 17 + api_event_callback_v1_trip_approval.go | 108 + api_event_callback_v1_work_approval.go | 12 + ...allback_v2_acs_access_record_created_v1.go | 12 + api_event_callback_v2_acs_user_updated_v1.go | 12 + ...cation_application_app_version_audit_v6.go | 12 + ...pplication_app_version_publish_apply_v6.go | 40 + ...plication_app_version_publish_revoke_v6.go | 12 + ...k_v2_application_application_created_v6.go | 12 + ...ication_application_feedback_created_v6.go | 12 + ...ication_application_feedback_updated_v6.go | 12 + ...ication_application_visibility_added_v6.go | 12 + ...ent_callback_v2_application_bot_menu_v6.go | 12 + ...allback_v2_approval_approval_updated_v4.go | 12 + ...back_v2_attendance_user_flow_created_v1.go | 15 +- ...back_v2_attendance_user_task_updated_v1.go | 15 +- ...ack_v2_calendar_calendar_acl_created_v4.go | 12 + ...ack_v2_calendar_calendar_acl_deleted_v4.go | 12 + ...allback_v2_calendar_calendar_changed_v4.go | 12 + ...k_v2_calendar_calendar_event_changed_v4.go | 12 + ...v2_contact_custom_attr_event_updated_v3.go | 12 + ...llback_v2_contact_department_created_v3.go | 12 + ...llback_v2_contact_department_deleted_v3.go | 12 + ...llback_v2_contact_department_updated_v3.go | 12 + ...2_contact_employee_type_enum_actived_v3.go | 12 + ...2_contact_employee_type_enum_created_v3.go | 12 + ...ntact_employee_type_enum_deactivated_v3.go | 12 + ...2_contact_employee_type_enum_deleted_v3.go | 12 + ...2_contact_employee_type_enum_updated_v3.go | 12 + ...nt_callback_v2_contact_scope_updated_v3.go | 12 + ...ent_callback_v2_contact_user_created_v3.go | 12 + ...ent_callback_v2_contact_user_deleted_v3.go | 12 + ...ent_callback_v2_contact_user_updated_v3.go | 12 + ..._callback_v2_corehr_contract_created_v1.go | 12 + ..._callback_v2_corehr_contract_deleted_v1.go | 12 + ..._callback_v2_corehr_contract_updated_v1.go | 12 + ...allback_v2_corehr_department_created_v1.go | 12 + ...allback_v2_corehr_department_deleted_v1.go | 12 + ...allback_v2_corehr_department_updated_v1.go | 12 + ...lback_v2_corehr_employment_converted_v1.go | 12 + ...allback_v2_corehr_employment_created_v1.go | 12 + ...allback_v2_corehr_employment_deleted_v1.go | 12 + ...llback_v2_corehr_employment_resigned_v1.go | 12 + ...allback_v2_corehr_employment_updated_v1.go | 12 + ...allback_v2_corehr_job_change_updated_v1.go | 12 + ...event_callback_v2_corehr_job_created_v1.go | 12 + ..._callback_v2_corehr_job_data_changed_v1.go | 12 + ...callback_v2_corehr_job_data_employed_v1.go | 12 + ...event_callback_v2_corehr_job_deleted_v1.go | 12 + ...event_callback_v2_corehr_job_updated_v1.go | 12 + ...llback_v2_corehr_offboarding_updated_v1.go | 12 + ...orehr_org_role_authorization_updated_v1.go | 12 + ...nt_callback_v2_corehr_person_created_v1.go | 12 + ...nt_callback_v2_corehr_person_deleted_v1.go | 12 + ...nt_callback_v2_corehr_person_updated_v1.go | 12 + ..._callback_v2_corehr_pre_hire_updated_v1.go | 12 + ...callback_v2_corehr_probation_updated_v2.go | 12 + ...k_v2_corehr_process_approver_updated_v2.go | 12 + ...allback_v2_corehr_process_cc_updated_v2.go | 12 + ...lback_v2_corehr_process_node_updated_v2.go | 12 + ...t_callback_v2_corehr_process_updated_v2.go | 12 + ..._v2_drive_file_bitable_field_changed_v1.go | 11 + ...v2_drive_file_bitable_record_changed_v1.go | 11 + ...back_v2_drive_file_created_in_folder_v1.go | 18 + ...event_callback_v2_drive_file_deleted_v1.go | 11 + api_event_callback_v2_drive_file_edit_v1.go | 11 + ...2_drive_file_permission_member_added_v1.go | 11 + ...drive_file_permission_member_removed_v1.go | 11 + api_event_callback_v2_drive_file_read_v1.go | 11 + ...callback_v2_drive_file_title_updated_v1.go | 11 + ...event_callback_v2_drive_file_trashed_v1.go | 11 + ...learning_course_registration_created_v2.go | 12 + ...learning_course_registration_deleted_v2.go | 12 + ...learning_course_registration_updated_v2.go | 12 + ...ack_v2_helpdesk_notification_approve_v1.go | 12 + ..._callback_v2_helpdesk_ticket_created_v1.go | 12 + ...k_v2_helpdesk_ticket_message_created_v1.go | 12 + ..._callback_v2_helpdesk_ticket_updated_v1.go | 12 + ...callback_v2_hire_application_deleted_v1.go | 12 + ...ck_v2_hire_application_stage_changed_v1.go | 12 + ...callback_v2_hire_eco_account_created_v1.go | 12 + ...2_hire_eco_background_check_canceled_v1.go | 12 + ...v2_hire_eco_background_check_created_v1.go | 12 + ...nt_callback_v2_hire_eco_exam_created_v1.go | 12 + ...t_task_for_internship_offer_imported_v1.go | 12 + ...ack_v2_hire_ehr_import_task_imported_v1.go | 12 + ...allback_v2_hire_offer_status_changed_v1.go | 12 + ..._hire_referral_account_assets_update_v1.go | 12 + api_event_callback_v2_im_chat_disbanded_v1.go | 19 + ...callback_v2_im_chat_member_bot_added_v1.go | 19 + ...llback_v2_im_chat_member_bot_deleted_v1.go | 19 + ...allback_v2_im_chat_member_user_added_v1.go | 19 + ...lback_v2_im_chat_member_user_deleted_v1.go | 19 + ...ack_v2_im_chat_member_user_withdrawn_v1.go | 19 + api_event_callback_v2_im_chat_updated_v1.go | 26 + ...lback_v2_im_message_reaction_created_v1.go | 12 + ...lback_v2_im_message_reaction_deleted_v1.go | 12 + api_event_callback_v2_im_message_read_v1.go | 12 + ...vent_callback_v2_im_message_recalled_v1.go | 12 + ...event_callback_v2_im_message_receive_v1.go | 12 + ...v2_meeting_room_meeting_room_created_v1.go | 12 + ...v2_meeting_room_meeting_room_deleted_v1.go | 12 + ...ing_room_meeting_room_status_changed_v1.go | 12 + ...v2_meeting_room_meeting_room_updated_v1.go | 12 + ...allback_v2_task_task_comment_updated_v1.go | 12 + ..._callback_v2_task_task_update_tenant_v1.go | 12 + api_event_callback_v2_task_task_updated_v1.go | 12 + api_event_callback_v2_url_preview_get.go | 15 +- ...back_v2_vc_meeting_all_meeting_ended_v1.go | 12 + ...ck_v2_vc_meeting_all_meeting_started_v1.go | 19 + ..._callback_v2_vc_meeting_join_meeting_v1.go | 12 + ...callback_v2_vc_meeting_leave_meeting_v1.go | 12 + ...callback_v2_vc_meeting_meeting_ended_v1.go | 12 + ...llback_v2_vc_meeting_meeting_started_v1.go | 12 + ...llback_v2_vc_meeting_recording_ended_v1.go | 12 + ...llback_v2_vc_meeting_recording_ready_v1.go | 12 + ...back_v2_vc_meeting_recording_started_v1.go | 12 + ...t_callback_v2_vc_meeting_share_ended_v1.go | 12 + ...callback_v2_vc_meeting_share_started_v1.go | 12 + ...allback_v2_vc_reserve_config_updated_v1.go | 12 + api_event_callback_v2_vc_room_created_v1.go | 19 + api_event_callback_v2_vc_room_deleted_v1.go | 12 + ...nt_callback_v2_vc_room_level_created_v1.go | 12 + ...nt_callback_v2_vc_room_level_deleted_v1.go | 12 + ...nt_callback_v2_vc_room_level_updated_v1.go | 12 + api_event_callback_v2_vc_room_updated_v1.go | 19 + api_helpdesk_agent_email_get.go | 3 +- api_helpdesk_agent_patch.go | 3 +- api_helpdesk_agent_schedule_create.go | 3 +- api_helpdesk_agent_schedule_delete.go | 3 +- api_helpdesk_agent_schedule_update.go | 3 +- api_helpdesk_agent_skill_delete.go | 3 +- api_helpdesk_agent_skill_get_list.go | 3 +- api_helpdesk_agent_skill_rule_get_list.go | 3 +- api_helpdesk_agent_skill_update.go | 3 +- api_helpdesk_category_create.go | 10 + api_helpdesk_category_delete.go | 3 +- api_helpdesk_category_get_list.go | 11 + api_helpdesk_category_update.go | 3 +- api_helpdesk_event_subscribe.go | 3 +- api_helpdesk_event_unsubscribe.go | 3 +- api_helpdesk_faq_create.go | 10 + api_helpdesk_faq_delete.go | 3 +- api_helpdesk_faq_get.go | 10 + api_helpdesk_faq_get_list.go | 10 + api_helpdesk_faq_search.go | 10 + api_helpdesk_faq_update.go | 3 +- api_helpdesk_notification_cancel_approve.go | 3 +- api_helpdesk_notification_cancel_send.go | 3 +- api_helpdesk_notification_execute_send.go | 3 +- api_helpdesk_notification_preview.go | 3 +- api_helpdesk_notification_update.go | 3 +- api_helpdesk_ticket_answer_user_query.go | 3 +- ...helpdesk_ticket_customized_field_create.go | 15 +- ...helpdesk_ticket_customized_field_delete.go | 3 +- api_helpdesk_ticket_customized_field_get.go | 8 + ...lpdesk_ticket_customized_field_get_list.go | 12 + ...helpdesk_ticket_customized_field_update.go | 15 +- api_helpdesk_ticket_update.go | 3 +- api_hire_advertisement_publish.go | 78 + api_hire_agency_batch_query.go | 150 + api_hire_agency_get.go | 90 + api_hire_agency_get_agency_account.go | 106 + api_hire_agency_operate_agency_account.go | 76 + api_hire_agency_protect.go | 82 + api_hire_agency_protect_search.go | 126 + api_hire_agency_query.go | 90 + api_hire_application_cancel_onboard.go | 82 + api_hire_application_get_detail.go | 988 ++++ api_hire_application_recover.go | 77 + api_hire_application_terminate.go | 3 +- api_hire_application_transfer_stage.go | 81 + api_hire_attachment_create.go | 88 + ...hire_background_check_order_batch_query.go | 210 + api_hire_background_check_order_list.go | 206 + api_hire_diversity_inclusion_search.go | 115 + api_hire_eco_account_custom_field_create.go | 3 +- ...e_eco_account_custom_field_delete_batch.go | 3 +- ...e_eco_account_custom_field_update_batch.go | 3 +- ...co_background_check_custom_field_create.go | 3 +- ...kground_check_custom_field_delete_batch.go | 3 +- ...kground_check_custom_field_update_batch.go | 3 +- ...o_background_check_package_batch_delete.go | 3 +- ...o_background_check_package_batch_update.go | 3 +- ...ire_eco_background_check_package_create.go | 3 +- ...re_eco_background_check_progress_update.go | 3 +- ...hire_eco_background_check_result_cancel.go | 3 +- ...hire_eco_background_check_result_update.go | 3 +- api_hire_eco_exam_login_info.go | 3 +- api_hire_eco_exam_paper_batch_delete.go | 3 +- api_hire_eco_exam_paper_batch_update.go | 3 +- api_hire_eco_exam_paper_create.go | 3 +- api_hire_eco_exam_update_result.go | 3 +- api_hire_ehr_import_task_update.go | 3 +- api_hire_evaluation_task_list.go | 90 + api_hire_exam_create.go | 86 + api_hire_exam_marking_task_list.go | 90 + api_hire_external_application_list.go | 94 + ...e_external_background_check_batch_query.go | 97 + api_hire_external_background_check_delete.go | 74 + api_hire_external_background_check_update.go | 100 + ...re_external_interview_assessment_update.go | 111 + api_hire_external_interview_batch_query.go | 110 + api_hire_external_interview_delete.go | 74 + api_hire_external_interview_update.go | 132 + api_hire_external_offer_batch_query.go | 97 + api_hire_external_offer_create.go | 97 + api_hire_external_offer_delete.go | 74 + api_hire_external_offer_update.go | 100 + api_hire_external_referral_reward_create.go | 106 + api_hire_external_referral_reward_delete.go | 79 + api_hire_interview_feedback_form_list.go | 218 + api_hire_interview_get_by_talent.go | 279 + api_hire_interview_record_attachment_get.go | 86 + api_hire_interview_record_get.go | 222 + api_hire_interview_record_get_v1.go | 284 + api_hire_interview_record_list.go | 226 + api_hire_interview_record_list_v1.go | 288 + ...hire_interview_registration_schema_list.go | 200 + api_hire_interview_round_type_list.go | 105 + api_hire_interview_task_list.go | 90 + api_hire_interviewer_list.go | 89 + api_hire_interviewer_update.go | 88 + api_hire_job_close.go | 74 + api_hire_job_function_list.go | 92 + api_hire_job_get_detail.go | 715 +++ api_hire_job_list.go | 220 + api_hire_job_manager_get.go | 2 - api_hire_job_open.go | 78 + api_hire_job_publish_record_search.go | 330 ++ api_hire_job_recruiter.go | 84 + api_hire_job_requirement_create.go | 327 ++ api_hire_job_requirement_delete.go | 74 + api_hire_job_requirement_list.go | 301 ++ api_hire_job_requirement_list_by_id.go | 304 ++ api_hire_job_requirement_schema_list.go | 204 + api_hire_job_requirement_update.go | 120 + api_hire_job_schema_list.go | 203 + api_hire_job_type_list.go | 91 + api_hire_location_list.go | 149 + api_hire_location_query.go | 150 + api_hire_minutes_get.go | 98 + api_hire_note_create.go | 6 + api_hire_note_delete.go | 74 + api_hire_note_update.go | 6 + api_hire_offer_application_form_get.go | 205 + api_hire_offer_application_form_list.go | 91 + api_hire_offer_approval_template_list.go | 103 + api_hire_offer_custom_field_update.go | 103 + api_hire_offset_status_update.go | 3 +- api_hire_portal_apply_schema_list.go | 201 + api_hire_referral_account_enable.go | 99 + ...ire_referral_account_get_account_assets.go | 115 + api_hire_referral_account_reconciliation.go | 15 + api_hire_referral_search.go | 98 + api_hire_registration_schema_list.go | 201 + api_hire_role_get.go | 249 + api_hire_role_list.go | 101 + api_hire_subject_list.go | 107 + ...re_talent_blocklist_change_talent_block.go | 76 + api_hire_talent_combined_create.go | 318 ++ api_hire_talent_combined_update.go | 318 ++ api_hire_talent_external_info_create.go | 82 + api_hire_talent_external_info_update.go | 82 + api_hire_talent_get_v2.go | 828 +++ api_hire_talent_list.go | 149 +- api_hire_talent_object_query.go | 3 +- api_hire_talent_onboard_status.go | 81 + api_hire_talent_operation_log_search.go | 104 + api_hire_talent_pool_batch_change.go | 79 + api_hire_talent_pool_move_talent.go | 78 + api_hire_talent_pool_search.go | 102 + api_hire_talent_remove_to_folder.go | 77 + api_hire_talent_tag.go | 76 + api_hire_talent_tag_list.go | 103 + api_hire_termination_reason_list.go | 100 + api_hire_test_search.go | 124 + api_hire_todo_list.go | 121 + api_hire_tripartite_agreement_create.go | 82 + api_hire_tripartite_agreement_delete.go | 77 + api_hire_tripartite_agreement_list.go | 89 + api_hire_tripartite_agreement_update.go | 79 + api_hire_user_role_list.go | 128 + api_hire_website_channel_create.go | 79 + api_hire_website_channel_delete.go | 75 + api_hire_website_channel_list.go | 87 + api_hire_website_channel_update.go | 80 + ...e_website_delivery_create_by_attachment.go | 90 + api_hire_website_delivery_create_by_resume.go | 297 ++ api_hire_website_delivery_task_get.go | 90 + api_hire_website_job_post_get.go | 341 ++ api_hire_website_job_post_list.go | 386 ++ api_hire_website_job_post_search.go | 414 ++ api_hire_website_list.go | 92 + api_hire_website_site_user_create.go | 90 + api_im_feed_card_bot_time_sentive.go | 84 + api_im_message_push_follow_up.go | 98 + api_im_tag_create.go | 13 +- api_im_tag_relation_create.go | 12 +- api_im_tag_relation_delete.go | 12 +- api_im_tag_relation_list.go | 7 +- api_im_tag_update.go | 15 +- api_jssdk_ticket_get.go | 3 +- api_lingo_entity_delete.go | 3 +- api_lingo_entity_highlight_batch.go | 74 + api_lingo_repo_list.go | 3 +- api_mail_group_alias_delete.go | 3 +- api_mail_mail_group_delete.go | 3 +- api_mail_mail_group_manager_batch_create.go | 3 +- api_mail_mail_group_manager_batch_delete.go | 3 +- api_mail_mail_group_member_batch_delete.go | 3 +- api_mail_mail_group_member_delete.go | 3 +- ...il_group_permission_member_batch_delete.go | 3 +- ...ail_mail_group_permission_member_delete.go | 3 +- api_mail_message_subscribe.go | 76 + api_mail_message_subscription_get.go | 76 + api_mail_public_mailbox_alias_delete.go | 3 +- api_mail_public_mailbox_delete.go | 3 +- ...mail_public_mailbox_member_batch_delete.go | 3 +- api_mail_public_mailbox_member_clear.go | 3 +- api_mail_public_mailbox_member_delete.go | 3 +- ...il_public_mailbox_remove_to_recycle_bin.go | 75 + api_mail_rule_apply.go | 75 + api_mail_user_mailbox_alias_delete.go | 3 +- api_mail_user_mailbox_delete.go | 3 +- api_mail_user_mailbox_event_subscribe.go | 74 + api_mail_user_mailbox_event_subscription.go | 74 + api_mail_user_mailbox_event_unsubscribe.go | 73 + api_mail_user_mailbox_folder_create.go | 87 + api_mail_user_mailbox_folder_delete.go | 77 + api_mail_user_mailbox_folder_list.go | 86 + api_mail_user_mailbox_folder_update.go | 77 + api_mail_user_mailbox_mail_contact_create.go | 97 + api_mail_user_mailbox_mail_contact_delete.go | 77 + api_mail_user_mailbox_mail_contact_list.go | 92 + api_mail_user_mailbox_mail_contact_update.go | 84 + ...mailbox_message_attachment_download_url.go | 88 + api_mail_user_mailbox_message_get.go | 124 + api_mail_user_mailbox_message_get_by_card.go | 88 + api_mail_user_mailbox_message_list.go | 81 + api_mail_user_mailbox_message_send.go | 116 + api_mail_user_mailbox_rule_create.go | 138 + api_mail_user_mailbox_rule_delete.go | 75 + api_mail_user_mailbox_rule_list.go | 109 + api_mail_user_mailbox_rule_reorder.go | 75 + api_mail_user_mailbox_rule_update.go | 104 + api_mdm_batch_country_region_get.go | 110 + api_mdm_country_region_list.go | 139 + api_mdm_user_auth_data_relation_bind.go | 3 +- api_mdm_user_auth_data_relation_unbind.go | 3 +- api_meeting_room_customization.go | 121 + api_message_batch_delete.go | 3 +- api_message_delete.go | 3 +- api_message_ephemeral_delete.go | 3 +- api_message_forward.go | 22 + api_message_get.go | 22 + api_message_list.go | 22 + api_message_merge_forward.go | 22 + api_message_pin_delete.go | 3 +- api_message_reply.go | 22 + api_message_send.go | 22 + api_message_thread_forward.go | 22 + api_message_update.go | 3 +- api_message_update_delay.go | 3 +- api_message_update_edit.go | 22 + api_mina_code_to_session.go | 2 - api_minutes_minute_media_get.go | 78 + api_minutes_minute_transcript_get.go | 89 + api_moments_post_get.go | 105 + api_okr_image_upload.go | 3 +- api_okr_period_rule_get_list.go | 3 +- api_okr_progress_record_delete.go | 3 +- api_okr_review_get.go | 8 +- api_passport_session_logout.go | 80 + api_payroll_acct_item_list.go | 96 + api_payroll_cost_allocation_detail_list.go | 151 + api_payroll_cost_allocation_plan_list.go | 122 + api_payroll_cost_allocation_report_list.go | 150 + api_payroll_datasource_list.go | 129 + api_payroll_datasource_record_query.go | 104 + api_payroll_datasource_record_save.go | 98 + api_payroll_paygroup_list.go | 94 + api_payroll_payment_activity_archive.go | 75 + api_payroll_payment_activity_detail_list.go | 131 + api_payroll_payment_activity_list.go | 111 + api_payroll_payment_detail_query.go | 138 + api_performance_activity_query.go | 103 + ...rformance_additional_information_import.go | 107 + ...erformance_additional_information_query.go | 93 + ...ce_additional_informations_batch_delete.go | 77 + api_performance_indicator_query.go | 106 + api_performance_metric_detail_import.go | 93 + api_performance_metric_detail_query.go | 130 + api_performance_metric_field_query.go | 88 + api_performance_metric_lib_query.go | 137 + api_performance_metric_tag_list.go | 94 + api_performance_metric_template_query.go | 184 + api_performance_question_query.go | 104 + api_performance_review_data_query.go | 429 ++ api_performance_review_template_query.go | 159 + api_performance_reviewee_query.go | 96 + api_performance_user_group_user_rel_write.go | 93 + api_performance_user_info_query.go | 136 + api_personal_settings_system_status_delete.go | 3 +- api_report_rule_qquery.go | 12 +- api_report_task_query.go | 27 +- api_report_view_remove.go | 11 +- api_search_data_source_delete.go | 3 +- api_search_data_source_item_create.go | 3 +- api_search_data_source_item_delete.go | 3 +- api_search_doc_wiki_search.go | 150 + api_search_schema_delete.go | 3 +- ...d_compliance_device_apply_record_update.go | 75 + ...ity_and_compliance_device_record_create.go | 84 + ...ity_and_compliance_device_record_delete.go | 74 + ...curity_and_compliance_device_record_get.go | 102 + ...urity_and_compliance_device_record_list.go | 124 + ...urity_and_compliance_device_record_mine.go | 75 + ...ity_and_compliance_device_record_update.go | 77 + ...ty_and_compliance_openapi_log_list_data.go | 102 + api_task_add_dependency_add.go | 13 +- api_task_attachment_delete.go | 8 +- api_task_attachment_get.go | 7 +- api_task_attachment_list.go | 13 +- api_task_attachment_upload.go | 11 +- api_task_collaborator_create.go | 2 - api_task_collaborator_delete.go | 5 +- api_task_collaborator_delete_batch.go | 2 - api_task_collaborator_list.go | 2 - api_task_comment_create.go | 2 - api_task_comment_create_v2.go | 102 + api_task_comment_delete.go | 5 +- api_task_comment_delete_v2.go | 78 + api_task_comment_get.go | 2 - api_task_comment_get_v2.go | 98 + api_task_comment_list.go | 97 +- api_task_comment_update.go | 2 - api_task_comment_update_v2.go | 107 + api_task_custom_field_add.go | 14 +- api_task_custom_field_create.go | 243 + api_task_custom_field_get.go | 147 + api_task_custom_field_list.go | 153 + api_task_custom_field_option_create.go | 15 +- api_task_custom_field_option_update.go | 19 +- api_task_custom_field_remove.go | 12 +- api_task_custom_field_update.go | 211 + api_task_dependency_remove.go | 11 +- api_task_follower_create.go | 2 - api_task_follower_delete.go | 5 +- api_task_follower_delete_batch.go | 2 - api_task_follower_list.go | 2 - api_task_member_add.go | 104 +- api_task_member_remove.go | 17 +- api_task_reminder_add.go | 13 +- api_task_reminder_create.go | 2 - api_task_reminder_delete.go | 5 +- api_task_reminder_list.go | 2 - api_task_reminder_remove.go | 11 +- api_task_section_create.go | 15 +- api_task_section_delete.go | 8 +- api_task_section_get.go | 7 +- api_task_section_list.go | 13 +- api_task_section_tasks_list.go | 15 +- api_task_section_update.go | 16 +- api_task_subtask_create.go | 153 +- api_task_subtask_list.go | 13 +- api_task_task_complete.go | 5 +- api_task_task_delete.go | 3 +- api_task_task_tasklists.go | 85 + api_task_task_uncomplete.go | 5 +- ...k_tasklist_activity_subscription_create.go | 19 +- ...k_tasklist_activity_subscription_delete.go | 10 +- ...task_tasklist_activity_subscription_get.go | 9 +- ...ask_tasklist_activity_subscription_list.go | 9 +- ...k_tasklist_activity_subscription_update.go | 23 +- api_task_tasklist_add.go | 13 +- api_task_tasklist_create.go | 15 +- api_task_tasklist_delete.go | 8 +- api_task_tasklist_get.go | 7 +- api_task_tasklist_list.go | 9 +- api_task_tasklist_member_add.go | 15 +- api_task_tasklist_member_remove.go | 15 +- api_task_tasklist_remove.go | 11 +- api_task_tasklist_task_list.go | 19 +- api_task_tasklist_update.go | 19 +- api_task_v1_comment_get_list.go | 14 +- api_task_v1_task_create.go | 72 +- api_task_v1_task_delete.go | 7 +- api_task_v1_task_get.go | 44 +- api_task_v1_task_lst.go | 52 +- api_task_v1_task_update.go | 88 +- api_tenant_product_assign_info_get.go | 3 +- api_tenant_tenant_get.go | 3 +- ...ion_tenant_collaboration_department_get.go | 118 + ...aboration_tenant_collaboration_user_get.go | 161 + api_trust_party_collaboration_tenant_get.go | 122 + api_trust_party_collaboration_tenant_list.go | 125 + ...llaboration_tenant_visible_organization.go | 136 + api_vc_meeting_default_building_batch_get.go | 84 + ...c_meeting_default_building_batch_get_id.go | 79 + api_vc_meeting_default_building_create.go | 77 + api_vc_meeting_default_building_delete.go | 72 + api_vc_meeting_default_building_list.go | 88 + api_vc_meeting_default_building_update.go | 77 + api_vc_meeting_default_country_list.go | 78 + api_vc_meeting_default_district_list.go | 79 + api_vc_meeting_default_room_batch_get.go | 87 + api_vc_meeting_default_room_batch_get_id.go | 79 + api_vc_meeting_default_room_create.go | 78 + api_vc_meeting_default_room_delete.go | 72 + api_vc_meeting_default_room_list.go | 92 + api_vc_meeting_default_room_update.go | 75 + api_vc_meeting_end.go | 3 +- api_vc_meeting_recording_set_permission.go | 3 +- api_vc_meeting_recording_start.go | 3 +- api_vc_meeting_recording_stop.go | 3 +- api_vc_reserve_config_admin_update.go | 3 +- ...vc_reserve_config_disable_inform_update.go | 3 +- api_vc_reserve_config_form_update.go | 3 +- api_vc_reserve_config_update.go | 3 +- api_vc_reserve_delete.go | 3 +- api_vc_room_config_query.go | 102 + api_vc_room_config_set.go | 149 + ..._room_config_set_checkboard_access_code.go | 83 + api_vc_room_config_set_room_access_code.go | 83 + api_vc_room_delete.go | 3 +- api_vc_room_level_delete.go | 3 +- api_vc_room_level_update.go | 3 +- api_vc_room_update.go | 3 +- api_vc_scope_config_set.go | 3 +- api_verification_get.go | 3 +- api_wiki_space_member_list.go | 88 + app_link_native_app.go | 12 + app_link_open_bot.go | 12 + app_link_open_calender.go | 15 +- app_link_open_calender_account.go | 15 +- app_link_open_calender_event_create.go | 12 + app_link_open_calender_view.go | 12 + app_link_open_chat.go | 12 + app_link_open_docs.go | 12 + app_link_open_lark.go | 15 +- app_link_open_mini_program.go | 12 + app_link_open_sso_login.go | 12 + app_link_open_web_app.go | 12 + app_link_open_web_url.go | 12 + app_link_open_workbench.go | 12 + app_link_scan.go | 15 +- app_link_task.go | 15 +- app_link_task_create.go | 15 +- app_link_task_detail.go | 12 + app_link_task_tab.go | 12 + impl.go | 216 +- mock.go | 2704 ++++++---- test/APaaS_sample_test.go | 134 - test/TaskV1_sample_test.go | 497 -- test/acs_sample_test.go | 32 + test/admin_sample_test.go | 30 + test/ai_sample_test.go | 52 + test/aily_sample_test.go | 508 ++ test/apaas_sample_test.go | 1089 ++++ test/application_sample_test.go | 213 + test/approval_sample_test.go | 72 + test/attendance_sample_test.go | 203 + test/auth_sample_test.go | 12 + test/authen_sample_test.go | 100 + test/baike_sample_test.go | 30 + test/base_sample_test.go | 126 + test/bitable_sample_test.go | 176 + test/board_sample_test.go | 167 + test/bot_sample_test.go | 8 + test/calendar_sample_test.go | 783 +-- test/cardkit_sample_test.go | 272 + test/ccmdocs_sample_test.go | 81 + test/chat_sample_test.go | 66 + test/compensation_sample_test.go | 347 ++ test/contact_sample_test.go | 224 + test/corehr_sample_test.go | 2304 +------- test/directory_sample_test.go | 479 ++ test/docs_sample_test.go | 81 + test/drive_sample_test.go | 2957 +---------- test/ehr_sample_test.go | 8 + test/event_sample_test.go | 6 + test/file_sample_test.go | 12 + test/helpdesk_sample_test.go | 104 + test/hire_sample_test.go | 2619 ++++++++- test/humanauth_sample_test.go | 12 + test/jssdk_sample_test.go | 6 + test/lingo_sample_test.go | 256 +- test/mail_sample_test.go | 617 +-- ...{MDM_sample_test.go => mdm_sample_test.go} | 46 + test/meetingroom_sample_test.go | 81 + test/message_sample_test.go | 481 +- test/mina_sample_test.go | 6 + test/minutes_sample_test.go | 50 + test/moments_sample_test.go | 83 + test/okr_sample_test.go | 306 +- test/passport_sample_test.go | 25 + test/payroll_sample_test.go | 290 + test/performance_sample_test.go | 335 ++ test/personalsettings_sample_test.go | 16 + ...t_sample_test.go => report_sample_test.go} | 21 +- test/search_sample_test.go | 53 + test/securityandcompliance_sample_test.go | 222 + test/task_sample_test.go | 305 +- test/taskv1_sample_test.go | 184 + test/tenant_sample_test.go | 8 + test/trustparty_sample_test.go | 167 + test/vc_sample_test.go | 941 +--- test/vcmeeting_sample_test.go | 328 ++ test/verification_sample_test.go | 6 + 1136 files changed, 98602 insertions(+), 15179 deletions(-) create mode 100644 api_aily_aily_session_aily_message_create.go create mode 100644 api_aily_aily_session_aily_message_get.go create mode 100644 api_aily_aily_session_aily_message_list.go create mode 100644 api_aily_aily_session_create.go create mode 100644 api_aily_aily_session_delete.go create mode 100644 api_aily_aily_session_get.go create mode 100644 api_aily_aily_session_run_cancel.go create mode 100644 api_aily_aily_session_run_create.go create mode 100644 api_aily_aily_session_run_get.go create mode 100644 api_aily_aily_session_run_list.go create mode 100644 api_aily_aily_session_update.go create mode 100644 api_aily_app_data_asset_create.go create mode 100644 api_aily_app_data_asset_delete.go create mode 100644 api_aily_app_data_asset_get.go create mode 100644 api_aily_app_data_asset_list.go create mode 100644 api_aily_app_data_asset_tag_list.go create mode 100644 api_aily_app_data_asset_upload_file.go create mode 100644 api_aily_app_knowledge_ask.go create mode 100644 api_aily_app_skill_get.go create mode 100644 api_aily_app_skill_list.go create mode 100644 api_aily_app_skill_start.go create mode 100644 api_apaas_app_list.go create mode 100644 api_apaas_application_audit_log_audit_log_list.go create mode 100644 api_apaas_application_audit_log_data_change_log_detail.go create mode 100644 api_apaas_application_audit_log_data_change_logs_list.go create mode 100644 api_apaas_application_audit_log_get.go create mode 100644 api_apaas_application_environment_variable_get.go create mode 100644 api_apaas_application_environment_variable_query.go create mode 100644 api_apaas_application_flow_execute.go create mode 100644 api_apaas_application_function_invoke.go create mode 100644 api_apaas_application_object_oql_query.go create mode 100644 api_apaas_application_object_record_batch_create.go create mode 100644 api_apaas_application_object_record_batch_delete.go create mode 100644 api_apaas_application_object_record_batch_query.go create mode 100644 api_apaas_application_object_record_batch_update.go create mode 100644 api_apaas_application_object_record_create.go create mode 100644 api_apaas_application_object_record_delete.go create mode 100644 api_apaas_application_object_record_query.go create mode 100644 api_apaas_application_object_record_update.go create mode 100644 api_apaas_application_object_search.go create mode 100644 api_apaas_application_record_permission_member_batch_create_authorization.go create mode 100644 api_apaas_application_record_permission_member_batch_remove_authorization.go create mode 100644 api_apaas_application_role_member_batch_create_authorization.go create mode 100644 api_apaas_application_role_member_batch_remove_authorization.go create mode 100644 api_apaas_application_role_member_get.go create mode 100644 api_apaas_approval_instance_cancel.go create mode 100644 api_apaas_seat_activity_list.go create mode 100644 api_apaas_seat_assignment_list.go create mode 100644 api_apaas_user_task_cc.go create mode 100644 api_apaas_user_task_chat_group.go create mode 100644 api_apaas_user_task_expediting.go create mode 100644 api_apaas_user_task_query.go create mode 100644 api_apaas_user_task_rollback.go create mode 100644 api_apaas_user_task_rollback_points.go create mode 100644 api_apaas_workspace_enum_get.go create mode 100644 api_apaas_workspace_enum_list.go create mode 100644 api_apaas_workspace_sql_commands.go create mode 100644 api_apaas_workspace_table_get.go create mode 100644 api_apaas_workspace_table_list.go create mode 100644 api_apaas_workspace_table_records_batch_update.go create mode 100644 api_apaas_workspace_table_records_delete.go create mode 100644 api_apaas_workspace_table_records_get.go create mode 100644 api_apaas_workspace_table_records_post.go create mode 100644 api_apaas_workspace_table_records_update.go create mode 100644 api_apaas_workspace_view_views_get.go create mode 100644 api_application_application_app_usage_message_push_overview.go create mode 100644 api_application_application_collaborators_get.go create mode 100644 api_application_application_collaborators_update.go create mode 100644 api_application_application_list.go create mode 100644 api_application_application_owner_update.go create mode 100644 api_application_scope_apply.go create mode 100644 api_application_scope_list.go create mode 100644 api_attendance_archive_rule_del_report.go create mode 100644 api_attendance_archive_rule_list.go create mode 100644 api_attendance_archive_rule_upload_report.go create mode 100644 api_attendance_archive_rule_user_stats_fields_query.go create mode 100644 api_attendance_group_list_user.go create mode 100644 api_attendance_user_daily_shift_batch_create_temp.go create mode 100644 api_attendance_user_flow_batch_del.go create mode 100644 api_authen_access_token_create.go create mode 100644 api_authen_refresh_access_token_create.go create mode 100644 api_base_app_role_create.go create mode 100644 api_base_app_role_list.go create mode 100644 api_base_app_role_update.go create mode 100644 api_bitable_app_block_workflow_list.go create mode 100644 api_bitable_app_table_record_batch_get.go create mode 100644 api_bitable_app_workflow_list.go create mode 100644 api_bitable_app_workflow_update.go create mode 100644 api_board_whiteboard_download_as_image.go create mode 100644 api_board_whiteboard_node_create.go create mode 100644 api_board_whiteboard_node_create_plantuml.go create mode 100644 api_board_whiteboard_theme.go create mode 100644 api_board_whiteboard_update_theme.go create mode 100644 api_calendar_calendar_event_meeting_minute_create.go create mode 100644 api_calendar_calendar_mget.go create mode 100644 api_calendar_freebusy_batch_query.go create mode 100644 api_cardkit_card_batch_update.go create mode 100644 api_cardkit_card_create.go create mode 100644 api_cardkit_card_element_content.go create mode 100644 api_cardkit_card_element_create.go create mode 100644 api_cardkit_card_element_delete.go create mode 100644 api_cardkit_card_element_update.go create mode 100644 api_cardkit_card_element_update_v1.go create mode 100644 api_cardkit_card_id_convert.go create mode 100644 api_cardkit_card_settings.go create mode 100644 api_cardkit_card_update.go create mode 100644 api_ccm_docs_default_docs_api_meta.go create mode 100644 api_compensation_archive_create.go create mode 100644 api_compensation_lump_sum_payment_batch_create.go create mode 100644 api_compensation_lump_sum_payment_batch_remove.go create mode 100644 api_compensation_lump_sum_payment_batch_update.go create mode 100644 api_compensation_lump_sum_payment_query.go create mode 100644 api_compensation_lump_sum_payment_query_detail.go create mode 100644 api_compensation_recurring_payment_batch_create.go create mode 100644 api_compensation_recurring_payment_batch_remove.go create mode 100644 api_compensation_recurring_payment_batch_update.go create mode 100644 api_compensation_recurring_payment_query.go create mode 100644 api_compensation_social_archive_adjust_record_query.go create mode 100644 api_compensation_social_archive_query.go create mode 100644 api_compensation_social_insurance_list.go create mode 100644 api_compensation_social_plan_list.go create mode 100644 api_compensation_social_plan_query.go create mode 100644 api_contact_v2_role_list.go create mode 100644 api_corehr_approval_groups_get.go create mode 100644 api_corehr_approver_list.go create mode 100644 api_corehr_authorization_add_role_assign.go create mode 100644 api_corehr_authorization_remove_role_assign.go create mode 100644 api_corehr_authorization_update_role_assign.go create mode 100644 api_corehr_basic_info_language_search.go create mode 100644 api_corehr_basic_info_time_zone_search.go create mode 100644 api_corehr_common_data_id_convert.go create mode 100644 api_corehr_common_data_meta_data_add_enum_option.go create mode 100644 api_corehr_common_data_meta_data_edit_enum_option.go create mode 100644 api_corehr_company_active.go create mode 100644 api_corehr_company_query_multi_timeline.go create mode 100644 api_corehr_company_query_recent_change.go create mode 100644 api_corehr_cost_allocation_batch_query.go create mode 100644 api_corehr_cost_allocation_create_version.go create mode 100644 api_corehr_cost_allocation_remove_version.go create mode 100644 api_corehr_cost_allocation_update_version.go create mode 100644 api_corehr_cost_center_query_recent_change.go create mode 100644 api_corehr_custom_org_active.go create mode 100644 api_corehr_custom_org_create.go create mode 100644 api_corehr_custom_org_delete_org.go create mode 100644 api_corehr_custom_org_query.go create mode 100644 api_corehr_custom_org_query_recent_change.go create mode 100644 api_corehr_custom_org_update.go create mode 100644 api_corehr_custom_org_update_rule.go create mode 100644 api_corehr_default_cost_center_batch_query.go create mode 100644 api_corehr_default_cost_center_create_version.go create mode 100644 api_corehr_default_cost_center_remove_version.go create mode 100644 api_corehr_default_cost_center_update_version.go create mode 100644 api_corehr_department_delete_v2.go create mode 100644 api_corehr_department_query_operation_logs.go create mode 100644 api_corehr_department_query_recent_change.go create mode 100644 api_corehr_department_tree.go create mode 100644 api_corehr_department_update_v2.go create mode 100644 api_corehr_draft_get.go create mode 100644 api_corehr_employee_create.go create mode 100644 api_corehr_employees_additional_job_batch_query.go create mode 100644 api_corehr_employees_additional_job_create.go create mode 100644 api_corehr_employees_additional_job_delete.go create mode 100644 api_corehr_employees_additional_job_update.go create mode 100644 api_corehr_employees_international_assignment_create.go create mode 100644 api_corehr_employees_international_assignment_delete.go create mode 100644 api_corehr_employees_international_assignment_list.go create mode 100644 api_corehr_employees_international_assignment_update.go create mode 100644 api_corehr_enum_search.go create mode 100644 api_corehr_job_batch_get.go create mode 100644 api_corehr_job_change_create_v2.go create mode 100644 api_corehr_job_change_revoke.go create mode 100644 api_corehr_job_family_query_multi_timeline.go create mode 100644 api_corehr_job_family_query_recent_change.go create mode 100644 api_corehr_job_grade_create.go create mode 100644 api_corehr_job_grade_delete.go create mode 100644 api_corehr_job_grade_query_recent_change.go create mode 100644 api_corehr_job_grade_update.go create mode 100644 api_corehr_job_level_query_recent_change.go create mode 100644 api_corehr_job_query_multi_timeline.go create mode 100644 api_corehr_job_query_recent_change.go create mode 100644 api_corehr_leave_calendar_by_scope.go create mode 100644 api_corehr_leave_work_calendar.go create mode 100644 api_corehr_leave_work_calendar_date.go create mode 100644 api_corehr_location_active.go create mode 100644 api_corehr_location_address_create.go create mode 100644 api_corehr_location_address_delete.go create mode 100644 api_corehr_location_address_update.go create mode 100644 api_corehr_location_query_multi_timeline.go create mode 100644 api_corehr_location_query_recent_change.go create mode 100644 api_corehr_location_update.go create mode 100644 api_corehr_offboarding_edit.go create mode 100644 api_corehr_offboarding_revoke.go create mode 100644 api_corehr_offboarding_submit_v2.go create mode 100644 api_corehr_pathway_active.go create mode 100644 api_corehr_pathway_batch_get.go create mode 100644 api_corehr_pathway_create.go create mode 100644 api_corehr_pathway_delete.go create mode 100644 api_corehr_pathway_update.go create mode 100644 api_corehr_person_create_v1.go create mode 100644 api_corehr_person_update_v1.go create mode 100644 api_corehr_position_active.go create mode 100644 api_corehr_position_create.go create mode 100644 api_corehr_position_del.go create mode 100644 api_corehr_position_query.go create mode 100644 api_corehr_position_query_recent_change.go create mode 100644 api_corehr_position_update.go create mode 100644 api_corehr_pre_hire_complete.go create mode 100644 api_corehr_pre_hire_delete_v2.go create mode 100644 api_corehr_pre_hire_query.go create mode 100644 api_corehr_pre_hire_restore_flow_instance.go create mode 100644 api_corehr_pre_hire_transform_onboarding_task.go create mode 100644 api_corehr_pre_hire_transit_task.go create mode 100644 api_corehr_pre_hire_update_v2.go create mode 100644 api_corehr_pre_hire_withdraw_onboarding.go create mode 100644 api_corehr_probation_submit.go create mode 100644 api_corehr_probation_withdraw.go create mode 100644 api_corehr_process_approver_update.go create mode 100644 api_corehr_process_extra_update.go create mode 100644 api_corehr_process_flow_variable_data.go create mode 100644 api_corehr_process_form_variable_data_get_v2.go create mode 100644 api_corehr_process_query_flow_data_template_create.go create mode 100644 api_corehr_process_revoke_update.go create mode 100644 api_corehr_process_start_create.go create mode 100644 api_corehr_process_transfer_update.go create mode 100644 api_corehr_process_withdraw_update.go create mode 100644 api_corehr_report_detail_row_batchdelete.go create mode 100644 api_corehr_report_detail_row_batchsave.go create mode 100644 api_corehr_signature_file_download.go create mode 100644 api_corehr_signature_file_list.go create mode 100644 api_corehr_signature_file_list_by_biz_id.go create mode 100644 api_corehr_signature_file_query.go create mode 100644 api_corehr_signature_file_terminate.go create mode 100644 api_corehr_signature_node_list_by_file_id.go create mode 100644 api_corehr_signature_template_info_with_thumbnail_list.go create mode 100644 api_corehr_signature_template_search.go create mode 100644 api_corehr_workforce_plan_detail_batch_query.go create mode 100644 api_corehr_workforce_plan_detail_batch_v2.go create mode 100644 api_corehr_workforce_plan_detail_row_batchdelete.go create mode 100644 api_corehr_workforce_plan_detail_row_batchsave.go create mode 100644 api_corehr_workforce_plan_list.go create mode 100644 api_directory_collaboration_rule_create.go create mode 100644 api_directory_collaboration_rule_delete.go create mode 100644 api_directory_collaboration_rule_list.go create mode 100644 api_directory_collaboration_rule_update.go create mode 100644 api_directory_collaboration_tenant_list.go create mode 100644 api_directory_collboration_share_entity_list.go create mode 100644 api_directory_department_create.go create mode 100644 api_directory_department_delete.go create mode 100644 api_directory_department_filter.go create mode 100644 api_directory_department_mget.go create mode 100644 api_directory_department_search.go create mode 100644 api_directory_department_update.go create mode 100644 api_directory_employee_create.go create mode 100644 api_directory_employee_delete.go create mode 100644 api_directory_employee_filter.go create mode 100644 api_directory_employee_mget.go create mode 100644 api_directory_employee_regular.go create mode 100644 api_directory_employee_resurrect.go create mode 100644 api_directory_employee_search.go create mode 100644 api_directory_employee_to_be_resigned.go create mode 100644 api_directory_employee_update.go create mode 100644 api_docs_content_get.go create mode 100644 api_docx_chat_announcement_block_children_batch_delete.go create mode 100644 api_docx_chat_announcement_block_children_get.go create mode 100644 api_docx_chat_announcement_block_get.go create mode 100644 api_docx_chat_announcement_block_list.go create mode 100644 api_docx_chat_announcement_get.go create mode 100644 api_docx_document_convert.go create mode 100644 api_drive_file_like_list.go create mode 100644 api_drive_permission_member_batch_create.go create mode 100644 api_event_callback_v1_trip_approval.go create mode 100644 api_hire_advertisement_publish.go create mode 100644 api_hire_agency_batch_query.go create mode 100644 api_hire_agency_get.go create mode 100644 api_hire_agency_get_agency_account.go create mode 100644 api_hire_agency_operate_agency_account.go create mode 100644 api_hire_agency_protect.go create mode 100644 api_hire_agency_protect_search.go create mode 100644 api_hire_agency_query.go create mode 100644 api_hire_application_cancel_onboard.go create mode 100644 api_hire_application_get_detail.go create mode 100644 api_hire_application_recover.go create mode 100644 api_hire_application_transfer_stage.go create mode 100644 api_hire_attachment_create.go create mode 100644 api_hire_background_check_order_batch_query.go create mode 100644 api_hire_background_check_order_list.go create mode 100644 api_hire_diversity_inclusion_search.go create mode 100644 api_hire_evaluation_task_list.go create mode 100644 api_hire_exam_create.go create mode 100644 api_hire_exam_marking_task_list.go create mode 100644 api_hire_external_application_list.go create mode 100644 api_hire_external_background_check_batch_query.go create mode 100644 api_hire_external_background_check_delete.go create mode 100644 api_hire_external_background_check_update.go create mode 100644 api_hire_external_interview_assessment_update.go create mode 100644 api_hire_external_interview_batch_query.go create mode 100644 api_hire_external_interview_delete.go create mode 100644 api_hire_external_interview_update.go create mode 100644 api_hire_external_offer_batch_query.go create mode 100644 api_hire_external_offer_create.go create mode 100644 api_hire_external_offer_delete.go create mode 100644 api_hire_external_offer_update.go create mode 100644 api_hire_external_referral_reward_create.go create mode 100644 api_hire_external_referral_reward_delete.go create mode 100644 api_hire_interview_feedback_form_list.go create mode 100644 api_hire_interview_get_by_talent.go create mode 100644 api_hire_interview_record_attachment_get.go create mode 100644 api_hire_interview_record_get.go create mode 100644 api_hire_interview_record_get_v1.go create mode 100644 api_hire_interview_record_list.go create mode 100644 api_hire_interview_record_list_v1.go create mode 100644 api_hire_interview_registration_schema_list.go create mode 100644 api_hire_interview_round_type_list.go create mode 100644 api_hire_interview_task_list.go create mode 100644 api_hire_interviewer_list.go create mode 100644 api_hire_interviewer_update.go create mode 100644 api_hire_job_close.go create mode 100644 api_hire_job_function_list.go create mode 100644 api_hire_job_get_detail.go create mode 100644 api_hire_job_list.go create mode 100644 api_hire_job_open.go create mode 100644 api_hire_job_publish_record_search.go create mode 100644 api_hire_job_recruiter.go create mode 100644 api_hire_job_requirement_create.go create mode 100644 api_hire_job_requirement_delete.go create mode 100644 api_hire_job_requirement_list.go create mode 100644 api_hire_job_requirement_list_by_id.go create mode 100644 api_hire_job_requirement_schema_list.go create mode 100644 api_hire_job_requirement_update.go create mode 100644 api_hire_job_schema_list.go create mode 100644 api_hire_job_type_list.go create mode 100644 api_hire_location_list.go create mode 100644 api_hire_location_query.go create mode 100644 api_hire_minutes_get.go create mode 100644 api_hire_note_delete.go create mode 100644 api_hire_offer_application_form_get.go create mode 100644 api_hire_offer_application_form_list.go create mode 100644 api_hire_offer_approval_template_list.go create mode 100644 api_hire_offer_custom_field_update.go create mode 100644 api_hire_portal_apply_schema_list.go create mode 100644 api_hire_referral_account_enable.go create mode 100644 api_hire_referral_account_get_account_assets.go create mode 100644 api_hire_referral_search.go create mode 100644 api_hire_registration_schema_list.go create mode 100644 api_hire_role_get.go create mode 100644 api_hire_role_list.go create mode 100644 api_hire_subject_list.go create mode 100644 api_hire_talent_blocklist_change_talent_block.go create mode 100644 api_hire_talent_combined_create.go create mode 100644 api_hire_talent_combined_update.go create mode 100644 api_hire_talent_external_info_create.go create mode 100644 api_hire_talent_external_info_update.go create mode 100644 api_hire_talent_get_v2.go create mode 100644 api_hire_talent_onboard_status.go create mode 100644 api_hire_talent_operation_log_search.go create mode 100644 api_hire_talent_pool_batch_change.go create mode 100644 api_hire_talent_pool_move_talent.go create mode 100644 api_hire_talent_pool_search.go create mode 100644 api_hire_talent_remove_to_folder.go create mode 100644 api_hire_talent_tag.go create mode 100644 api_hire_talent_tag_list.go create mode 100644 api_hire_termination_reason_list.go create mode 100644 api_hire_test_search.go create mode 100644 api_hire_todo_list.go create mode 100644 api_hire_tripartite_agreement_create.go create mode 100644 api_hire_tripartite_agreement_delete.go create mode 100644 api_hire_tripartite_agreement_list.go create mode 100644 api_hire_tripartite_agreement_update.go create mode 100644 api_hire_user_role_list.go create mode 100644 api_hire_website_channel_create.go create mode 100644 api_hire_website_channel_delete.go create mode 100644 api_hire_website_channel_list.go create mode 100644 api_hire_website_channel_update.go create mode 100644 api_hire_website_delivery_create_by_attachment.go create mode 100644 api_hire_website_delivery_create_by_resume.go create mode 100644 api_hire_website_delivery_task_get.go create mode 100644 api_hire_website_job_post_get.go create mode 100644 api_hire_website_job_post_list.go create mode 100644 api_hire_website_job_post_search.go create mode 100644 api_hire_website_list.go create mode 100644 api_hire_website_site_user_create.go create mode 100644 api_im_feed_card_bot_time_sentive.go create mode 100644 api_im_message_push_follow_up.go create mode 100644 api_lingo_entity_highlight_batch.go create mode 100644 api_mail_message_subscribe.go create mode 100644 api_mail_message_subscription_get.go create mode 100644 api_mail_public_mailbox_remove_to_recycle_bin.go create mode 100644 api_mail_rule_apply.go create mode 100644 api_mail_user_mailbox_event_subscribe.go create mode 100644 api_mail_user_mailbox_event_subscription.go create mode 100644 api_mail_user_mailbox_event_unsubscribe.go create mode 100644 api_mail_user_mailbox_folder_create.go create mode 100644 api_mail_user_mailbox_folder_delete.go create mode 100644 api_mail_user_mailbox_folder_list.go create mode 100644 api_mail_user_mailbox_folder_update.go create mode 100644 api_mail_user_mailbox_mail_contact_create.go create mode 100644 api_mail_user_mailbox_mail_contact_delete.go create mode 100644 api_mail_user_mailbox_mail_contact_list.go create mode 100644 api_mail_user_mailbox_mail_contact_update.go create mode 100644 api_mail_user_mailbox_message_attachment_download_url.go create mode 100644 api_mail_user_mailbox_message_get.go create mode 100644 api_mail_user_mailbox_message_get_by_card.go create mode 100644 api_mail_user_mailbox_message_list.go create mode 100644 api_mail_user_mailbox_message_send.go create mode 100644 api_mail_user_mailbox_rule_create.go create mode 100644 api_mail_user_mailbox_rule_delete.go create mode 100644 api_mail_user_mailbox_rule_list.go create mode 100644 api_mail_user_mailbox_rule_reorder.go create mode 100644 api_mail_user_mailbox_rule_update.go create mode 100644 api_mdm_batch_country_region_get.go create mode 100644 api_mdm_country_region_list.go create mode 100644 api_meeting_room_customization.go create mode 100644 api_minutes_minute_media_get.go create mode 100644 api_minutes_minute_transcript_get.go create mode 100644 api_moments_post_get.go create mode 100644 api_passport_session_logout.go create mode 100644 api_payroll_acct_item_list.go create mode 100644 api_payroll_cost_allocation_detail_list.go create mode 100644 api_payroll_cost_allocation_plan_list.go create mode 100644 api_payroll_cost_allocation_report_list.go create mode 100644 api_payroll_datasource_list.go create mode 100644 api_payroll_datasource_record_query.go create mode 100644 api_payroll_datasource_record_save.go create mode 100644 api_payroll_paygroup_list.go create mode 100644 api_payroll_payment_activity_archive.go create mode 100644 api_payroll_payment_activity_detail_list.go create mode 100644 api_payroll_payment_activity_list.go create mode 100644 api_payroll_payment_detail_query.go create mode 100644 api_performance_activity_query.go create mode 100644 api_performance_additional_information_import.go create mode 100644 api_performance_additional_information_query.go create mode 100644 api_performance_additional_informations_batch_delete.go create mode 100644 api_performance_indicator_query.go create mode 100644 api_performance_metric_detail_import.go create mode 100644 api_performance_metric_detail_query.go create mode 100644 api_performance_metric_field_query.go create mode 100644 api_performance_metric_lib_query.go create mode 100644 api_performance_metric_tag_list.go create mode 100644 api_performance_metric_template_query.go create mode 100644 api_performance_question_query.go create mode 100644 api_performance_review_data_query.go create mode 100644 api_performance_review_template_query.go create mode 100644 api_performance_reviewee_query.go create mode 100644 api_performance_user_group_user_rel_write.go create mode 100644 api_performance_user_info_query.go create mode 100644 api_search_doc_wiki_search.go create mode 100644 api_security_and_compliance_device_apply_record_update.go create mode 100644 api_security_and_compliance_device_record_create.go create mode 100644 api_security_and_compliance_device_record_delete.go create mode 100644 api_security_and_compliance_device_record_get.go create mode 100644 api_security_and_compliance_device_record_list.go create mode 100644 api_security_and_compliance_device_record_mine.go create mode 100644 api_security_and_compliance_device_record_update.go create mode 100644 api_security_and_compliance_openapi_log_list_data.go create mode 100644 api_task_comment_create_v2.go create mode 100644 api_task_comment_delete_v2.go create mode 100644 api_task_comment_get_v2.go create mode 100644 api_task_comment_update_v2.go create mode 100644 api_task_custom_field_create.go create mode 100644 api_task_custom_field_get.go create mode 100644 api_task_custom_field_list.go create mode 100644 api_task_custom_field_update.go create mode 100644 api_task_task_tasklists.go create mode 100644 api_trust_party_collaboration_tenant_collaboration_department_get.go create mode 100644 api_trust_party_collaboration_tenant_collaboration_user_get.go create mode 100644 api_trust_party_collaboration_tenant_get.go create mode 100644 api_trust_party_collaboration_tenant_list.go create mode 100644 api_trust_party_collaboration_tenant_visible_organization.go create mode 100644 api_vc_meeting_default_building_batch_get.go create mode 100644 api_vc_meeting_default_building_batch_get_id.go create mode 100644 api_vc_meeting_default_building_create.go create mode 100644 api_vc_meeting_default_building_delete.go create mode 100644 api_vc_meeting_default_building_list.go create mode 100644 api_vc_meeting_default_building_update.go create mode 100644 api_vc_meeting_default_country_list.go create mode 100644 api_vc_meeting_default_district_list.go create mode 100644 api_vc_meeting_default_room_batch_get.go create mode 100644 api_vc_meeting_default_room_batch_get_id.go create mode 100644 api_vc_meeting_default_room_create.go create mode 100644 api_vc_meeting_default_room_delete.go create mode 100644 api_vc_meeting_default_room_list.go create mode 100644 api_vc_meeting_default_room_update.go create mode 100644 api_vc_room_config_query.go create mode 100644 api_vc_room_config_set.go create mode 100644 api_vc_room_config_set_checkboard_access_code.go create mode 100644 api_vc_room_config_set_room_access_code.go create mode 100644 api_wiki_space_member_list.go delete mode 100644 test/APaaS_sample_test.go delete mode 100644 test/TaskV1_sample_test.go create mode 100644 test/aily_sample_test.go create mode 100644 test/apaas_sample_test.go create mode 100644 test/authen_sample_test.go create mode 100644 test/base_sample_test.go create mode 100644 test/board_sample_test.go create mode 100644 test/cardkit_sample_test.go create mode 100644 test/ccmdocs_sample_test.go create mode 100644 test/compensation_sample_test.go create mode 100644 test/directory_sample_test.go create mode 100644 test/docs_sample_test.go rename test/{MDM_sample_test.go => mdm_sample_test.go} (69%) create mode 100644 test/meetingroom_sample_test.go create mode 100644 test/moments_sample_test.go create mode 100644 test/payroll_sample_test.go rename test/{Report_sample_test.go => report_sample_test.go} (82%) create mode 100644 test/securityandcompliance_sample_test.go create mode 100644 test/taskv1_sample_test.go create mode 100644 test/trustparty_sample_test.go create mode 100644 test/vcmeeting_sample_test.go diff --git a/README.md b/README.md index eebb571c..0c6726bd 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## Support APIs -API Count: 1120, Event Count: 152 +API Count: 1621, Event Count: 153
@@ -46,1317 +46,1834 @@ API Count: 1120, Event Count: 152 - ACS - - DeleteACSVisitor + - CreateACSRuleExternal - CreateACSVisitor + - DeleteACSRuleExternal + - DeleteACSVisitor - DeviceBindACSRuleExternal + - GetACSAccessRecordList + - GetACSAccessRecordPhoto + - GetACSDeviceList - GetACSRuleExternal - - DeleteACSRuleExternal - - CreateACSRuleExternal - - UpdateACSUser - GetACSUser + - GetACSUserFace - GetACSUserList + - UpdateACSUser - UpdateACSUserFace - - GetACSUserFace - - GetACSDeviceList - - GetACSAccessRecordList - - GetACSAccessRecordPhoto - AI + - DetectFaceAttributes + - DetectTextLanguage + - ExtractAIContractField - ParseAIResume - - RecognizeAIVehicleInvoice + - RecognizeAIBankCard + - RecognizeAIBusinessCard + - RecognizeAIBusinessLicense + - RecognizeAIChinesePassport + - RecognizeAIDrivingLicense + - RecognizeAIFoodManageLicense + - RecognizeAIFoodProduceLicense - RecognizeAIHealthCertificate - RecognizeAIHkmMainlandTravelPermit + - RecognizeAITaxiInvoice + - RecognizeAITrainInvoice - RecognizeAITwMainlandTravelPermit - - RecognizeAIChinesePassport - - RecognizeAIBankCard + - RecognizeAIVatInvoice + - RecognizeAIVehicleInvoice - RecognizeAIVehicleLicense - - RecognizeAITrainInvoice - - RecognizeAITaxiInvoice - RecognizeAiidCard - - RecognizeAIFoodProduceLicense - - RecognizeAIFoodManageLicense - - RecognizeAIDrivingLicense - - RecognizeAIVatInvoice - - RecognizeAIBusinessLicense - - ExtractAIContractField - - RecognizeAIBusinessCard - RecognizeBasicImage - - RecognizeSpeechStream - RecognizeSpeechFile + - RecognizeSpeechStream - TranslateText - - DetectTextLanguage - - DetectFaceAttributes - APaaS - - AddAssigneeAPaaSApprovalTask + - AddAPaaSApprovalTaskAssignee - AgreeAPaaSApprovalTask + - BatchCreateAPaaSApplicationObjectRecord + - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization + - BatchCreateAPaaSApplicationRoleMemberAuthorization + - BatchDeleteAPaaSApplicationObjectRecord + - BatchQueryAPaaSApplicationObjectRecord + - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization + - BatchRemoveAPaaSApplicationRoleMemberAuthorization + - BatchUpdateAPaaSApplicationObjectRecord + - CreateAPaaSApplicationFlowExecute + - CreateAPaaSApplicationFunctionInvoke + - CreateAPaaSApplicationObjectOqlQuery + - CreateAPaaSApplicationObjectRecord + - CreateAPaaSApprovalInstanceCancel + - CreateAPaaSUserTaskCc + - CreateAPaaSUserTaskChatGroup + - CreateAPaaSUserTaskExpediting + - CreateAPaaSUserTaskRollback + - CreateAPaaSUserTaskRollbackPoints + - CreateAPaaSWorkspaceSqlCommands + - CreateAPaaSWorkspaceTableRecordsPost + - DeleteAPaaSApplicationObjectRecord + - DeleteAPaaSWorkspaceTableRecordsDelete + - GetAPaaSApplicationAuditLog + - GetAPaaSApplicationAuditLogDataChangeLogDetail + - GetAPaaSApplicationEnvironmentVariable + - GetAPaaSApplicationRoleMember + - GetAPaaSWorkspaceEnumGet + - GetAPaaSWorkspaceTableGet + - GetAPaaSWorkspaceTableRecordsGet + - GetAPaaSWorkspaceViewViewsGet + - ListAPaaSApp + - ListAPaaSApplicationAuditLogAuditLog + - ListAPaaSApplicationAuditLogDataChangeLogs + - ListAPaaSSeatActivity + - ListAPaaSSeatAssignment + - ListAPaaSWorkspaceEnum + - ListAPaaSWorkspaceTable + - QueryAPaaSApplicationEnvironmentVariable + - QueryAPaaSApplicationObjectRecord + - QueryAPaaSUserTask - RejectAPaaSApprovalTask + - SearchAPaaSApplicationObject - TransferAPaaSApprovalTask + - UpdateAPaaSApplicationObjectRecord + - UpdateAPaaSWorkspaceTableRecordsBatchUpdate + - UpdateAPaaSWorkspaceTableRecordsPatch - Admin - AdminResetPassword + - CreateAdminBadge + - CreateAdminBadgeGrant + - DeleteAdminBadgeGrant + - GetAdminBadge + - GetAdminBadgeGrant + - GetAdminBadgeGrantList + - GetAdminBadgeList - GetAdminDeptStats - GetAdminUserStats - - UploadAdminBadgeImage - - CreateAdminBadge - UpdateAdminBadge - - GetAdminBadgeList - - GetAdminBadge - - CreateAdminBadgeGrant - UpdateAdminBadgeGrant - - GetAdminBadgeGrantList - - GetAdminBadgeGrant - - DeleteAdminBadgeGrant + - UploadAdminBadgeImage +- Aily + - CreateAilyAppDataAsset + - CreateAilyAppKnowledgeAsk + - CreateAilyAppSkillStart + - CreateAilySession + - CreateAilySessionAilyMessage + - CreateAilySessionRun + - CreateAilySessionRunCancel + - DeleteAilyAppDataAsset + - DeleteAilySession + - GetAilyAppDataAsset + - GetAilyAppSkill + - GetAilySession + - GetAilySessionAilyMessage + - GetAilySessionRun + - ListAilyAppDataAsset + - ListAilyAppDataAssetTag + - ListAilyAppSkill + - ListAilySessionAilyMessage + - ListAilySessionRun + - UpdateAilySession + - UploadAilyAppDataAssetFile - AppLink - - OpenNativeApp - - OpenLark - - OpenScan - - OpenWorkbench - - OpenMiniProgram - - OpenWebApp - - OpenChat + - OpenBot - OpenCalender - - OpenCalenderView - - OpenCalenderEventCreate - OpenCalenderAccount + - OpenCalenderEventCreate + - OpenCalenderView + - OpenChat - OpenDocs - - OpenBot + - OpenLark + - OpenMiniProgram + - OpenNativeApp - OpenSSOLogin - - OpenWebURL + - OpenScan - OpenTask - OpenTaskCreate - OpenTaskDetail - OpenTaskTab + - OpenWebApp + - OpenWebURL + - OpenWorkbench - Application - - SearchApplicationWorkplaceAccessData - - SearchApplicationCustomWorkplaceAccessData - - SearchApplicationWorkplaceBlockAccessData + - CheckApplicationVisibleWhiteBlackList + - CheckUserIsInApplicationPaidScope + - CreateApplicationAppUsageMessagePushOverview + - CreateApplicationScopeApply + - GetApplication + - GetApplicationAppAdminUserList + - GetApplicationAppList + - GetApplicationAppVisibility + - GetApplicationCollaborators + - GetApplicationContactsRangeConfiguration - GetApplicationFavourite + - GetApplicationFeedbackList + - GetApplicationOrder + - GetApplicationOrderList - GetApplicationRecommend - GetApplicationRecommendRuleList - - IsApplicationUserAdmin + - GetApplicationUnderAuditList + - GetApplicationUsageDepartmentOverview + - GetApplicationUsageOverview + - GetApplicationUsageTrend - GetApplicationUserAdminScope - - GetApplicationAppVisibility - - GetApplicationContactsRangeConfiguration - - UpdateApplicationContactsRangeConfiguration - GetApplicationUserVisibleApp - - CheckApplicationVisibleWhiteBlackList - - GetApplicationAppList - - UpdateApplicationAppVisibility - - UpdateApplicationAppVisibilityV6 - - UpdateApplicationAppManagement - - GetApplicationAppAdminUserList - - CheckUserIsInApplicationPaidScope - - GetApplicationOrderList - - GetApplicationOrder - - GetApplicationUnderAuditList - - GetApplication - GetApplicationVersion - - GetApplicationVersionList - GetApplicationVersionContactsRangeSuggest - - UpdateApplicationVersion + - GetApplicationVersionList + - IsApplicationUserAdmin + - ListApplication + - ListApplicationScope + - SearchApplicationCustomWorkplaceAccessData + - SearchApplicationWorkplaceAccessData + - SearchApplicationWorkplaceBlockAccessData + - SetApplicationAppBadge - UpdateApplication - - GetApplicationUsageDepartmentOverview - - GetApplicationUsageOverview - - GetApplicationUsageTrend + - UpdateApplicationAppManagement + - UpdateApplicationAppVisibility + - UpdateApplicationAppVisibilityV6 + - UpdateApplicationCollaborators + - UpdateApplicationContactsRangeConfiguration - UpdateApplicationFeedback - - GetApplicationFeedbackList - - SetApplicationAppBadge + - UpdateApplicationOwner + - UpdateApplicationVersion - Approval + - AddApprovalInstanceSign + - ApproveApprovalInstance + - CancelApprovalInstance + - CheckApprovalExternalInstance - CreateApproval - - GetApproval - - GetApprovalList - - SubscribeApprovalSubscription - - UnsubscribeApprovalSubscription + - CreateApprovalCarbonCopy + - CreateApprovalComment + - CreateApprovalExternalApproval + - CreateApprovalExternalInstance - CreateApprovalInstance + - DeleteApprovalComment + - GetApproval + - GetApprovalComment + - GetApprovalExternalApproval + - GetApprovalExternalList - GetApprovalInstance - GetApprovalInstanceList - - CancelApprovalInstance - - CreateApprovalCarbonCopy + - GetApprovalList + - GetApprovalUserTaskList - PreviewApprovalInstance - - ApproveApprovalInstance - RejectApprovalInstance - - TransferApprovalInstance + - RemoveApprovalComment - ResubmitApprovalInstanceTask - RollbackApprovalInstance - - AddApprovalInstanceSign - - CreateApprovalComment - - GetApprovalComment - - DeleteApprovalComment - - RemoveApprovalComment - - CreateApprovalExternalApproval - - GetApprovalExternalApproval - - CreateApprovalExternalInstance - - CheckApprovalExternalInstance - - GetApprovalExternalList - - UploadApprovalFile - - UpdateApprovalMessage - - SendApprovalMessage - - SearchApprovalInstance - SearchApprovalCarbonCopy + - SearchApprovalInstance - SearchApprovalTask - - GetApprovalUserTaskList + - SendApprovalMessage + - SubscribeApprovalSubscription + - TransferApprovalInstance - TransformApprovalUserID + - UnsubscribeApprovalSubscription + - UpdateApprovalMessage + - UploadApprovalFile - Attendance - - GetAttendanceGroupList + - BatchAttendanceUserFlowDel + - BatchCreateAttendanceUserDailyShift + - BatchCreateAttendanceUserDailyShiftTemp + - BatchCreateAttendanceUserFlow + - BatchGetAttendanceUserFlow + - CreateAttendanceArchiveRuleDelReport + - CreateAttendanceArchiveRuleUserStatsFieldsQuery - CreateAttendanceGroup - - SearchAttendanceGroup - - GetAttendanceGroup + - CreateAttendanceShift + - CreateAttendanceUserApproval + - CreateAttendanceUserTaskRemedy - DeleteAttendanceGroup - - GetAttendanceShiftList - - GetAttendanceShift - - GetAttendanceShiftDetail - DeleteAttendanceShift - - UpdateAttendanceLeaveAccrualRecord + - DownloadAttendanceFile + - GetAttendanceGroup + - GetAttendanceGroupList - GetAttendanceLeaveEmployExpireRecord - - CreateAttendanceShift + - GetAttendanceShift + - GetAttendanceShiftDetail + - GetAttendanceShiftList + - GetAttendanceUserApproval - GetAttendanceUserDailyShift - - BatchCreateAttendanceUserDailyShift + - GetAttendanceUserFlow + - GetAttendanceUserSettingList + - GetAttendanceUserStatsData - GetAttendanceUserStatsField - GetAttendanceUserStatsView - - UpdateAttendanceUserStatsView - - GetAttendanceUserStatsData - - GetAttendanceUserApproval - - CreateAttendanceUserApproval - - UpdateAttendanceRemedyApproval - - BatchGetAttendanceUserFlow - - GetAttendanceUserFlow - GetAttendanceUserTask - - BatchCreateAttendanceUserFlow - - GetAttendanceUserTaskRemedyAllowedRemedyList - GetAttendanceUserTaskRemedy - - CreateAttendanceUserTaskRemedy - - GetAttendanceUserSettingList + - GetAttendanceUserTaskRemedyAllowedRemedyList + - ListAttendanceArchiveRule + - ListAttendanceGroupUser + - SearchAttendanceGroup + - UpdateAttendanceLeaveAccrualRecord + - UpdateAttendanceRemedyApproval - UpdateAttendanceUserSetting - - DownloadAttendanceFile + - UpdateAttendanceUserStatsView + - UploadAttendanceArchiveRuleReport - UploadAttendanceFile - Auth - - ResendAppTicket - - GetAccessToken - - RefreshAccessToken - - GetUserInfo - GenOAuthURL + - GetAccessToken - GetAppAccessToken - GetAppTicket - GetTenantAccessToken + - GetUserInfo + - RefreshAccessToken + - ResendAppTicket - SetAppTicket +- Authen + - CreateAuthenAccessToken + - CreateAuthenRefreshAccessToken - Baike - CreateBaikeDraft - - CreateBaikeUpdate - CreateBaikeEntity - - UpdateBaikeEntity + - CreateBaikeUpdate + - DownloadBaikeImage + - ExtractBaikeEntity + - GetBaikeClassificationList - GetBaikeEntity - GetBaikeEntityList + - HighlightBaikeEntity - MatchBaikeEntity - SearchBaikeEntity - - HighlightBaikeEntity - - ExtractBaikeEntity - - GetBaikeClassificationList + - UpdateBaikeEntity - UploadBaikeImage - - DownloadBaikeImage +- Base + - CreateBaseAppRole + - ListBaseAppRole + - UpdateBaseAppRole - Bitable - - CopyBitableDashboard - - GetBitableDashboardList - - UpdateBitableView - - GetBitableView - - GetBitableViewList - - CreateBitableView - - DeleteBitableView - - GetBitableRecord - - GetBitableRecordList - - SearchBitableRecord - - CreateBitableRecord - - UpdateBitableRecord - - DeleteBitableRecord + - BatchCreateBitableAppRoleMember - BatchCreateBitableRecord - - BatchUpdateBitableRecord + - BatchCreateBitableTable + - BatchDeleteBitableAppRoleMember - BatchDeleteBitableRecord - - GetBitableFieldList - - CreateBitableField - - UpdateBitableField - - DeleteBitableField - - GetBitableAppRoleList + - BatchDeleteBitableTable + - BatchGetBitableAppTableRecord + - BatchUpdateBitableRecord + - CopyBitableApp + - CopyBitableDashboard + - CreateBitableApp - CreateBitableAppRole - - DeleteBitableAppRole - - UpdateBitableAppRole - - BatchDeleteBitableAppRoleMember - - BatchCreateBitableAppRoleMember - - GetBitableAppRoleMemberList - CreateBitableAppRoleMember - - DeleteBitableAppRoleMember + - CreateBitableField + - CreateBitableRecord - CreateBitableTable - - BatchCreateBitableTable + - CreateBitableView + - DeleteBitableAppRole + - DeleteBitableAppRoleMember + - DeleteBitableField + - DeleteBitableRecord - DeleteBitableTable - - BatchDeleteBitableTable - - UpdateBitableTable - - GetBitableTableList - - UpdateBitableTableForm + - DeleteBitableView + - GetBitableAppRoleList + - GetBitableAppRoleMemberList + - GetBitableDashboardList + - GetBitableFieldList + - GetBitableMeta + - GetBitableRecord + - GetBitableRecordList - GetBitableTableForm - - UpdateBitableTableFormField - GetBitableTableFormFieldList - - CopyBitableApp - - CreateBitableApp - - GetBitableMeta + - GetBitableTableList + - GetBitableView + - GetBitableViewList + - ListBitableAppBlockWorkflow + - ListBitableAppWorkflow + - SearchBitableRecord + - UpdateBitableAppRole + - UpdateBitableAppWorkflow + - UpdateBitableField - UpdateBitableMeta + - UpdateBitableRecord + - UpdateBitableTable + - UpdateBitableTableForm + - UpdateBitableTableFormField + - UpdateBitableView +- Board + - CreateBoardWhiteboardNode + - CreateBoardWhiteboardNodePlantuml + - DownloadBoardWhiteboardAsImage + - GetBoardWhiteboardTheme + - UpdateBoardWhiteboardTheme - Bot - - GetBotInfo - AddBotToChat + - GetBotInfo - Calendar - - CreateCalendarACL - - DeleteCalendarACL - - GetCalendarACLList - - SubscribeCalendarACL - - UnsubscribeCalendarACL - - GetPrimaryCalendar + - BatchGetCalendarMeetingRoomFreebusy + - BatchGetCalendarMeetingRoomSummary + - ReplyCalendarMeetingRoomInstance + - BatchQueryCalendarFreebusy - CreateCalendar + - CreateCalendarACL + - CreateCalendarEvent + - CreateCalendarEventAttendee + - CreateCalendarEventMeetingChat + - CreateCalendarEventMeetingMinute + - CreateCalendarExchangeBinding + - CreateCalendarPrimarys + - CreateCalendarTimeoffEvent - DeleteCalendar + - DeleteCalendarACL + - DeleteCalendarEvent + - DeleteCalendarEventAttendee + - DeleteCalendarEventMeetingChat + - DeleteCalendarExchangeBinding + - DeleteCalendarTimeoffEvent + - GenerateCaldavConf - GetCalendar + - GetCalendarACLList + - GetCalendarEvent + - GetCalendarEventAttendeeChatMemberList + - GetCalendarEventAttendeeList + - GetCalendarEventInstanceList + - GetCalendarEventInstanceViewList + - GetCalendarEventList + - GetCalendarExchangeBinding + - GetCalendarFreeBusyList - GetCalendarList - - UpdateCalendar + - GetPrimaryCalendar + - MGetCalendar + - ReplyCalendarEvent - SearchCalendar + - SearchCalendarEvent - SubscribeCalendar - - UnsubscribeCalendar + - SubscribeCalendarACL - SubscribeCalendarChangeEvent - - UnsubscribeCalendarChangeEvent - - CreateCalendarEvent - - DeleteCalendarEvent - - GetCalendarEvent - - GetCalendarEventList - - UpdateCalendarEvent - - SearchCalendarEvent - SubscribeCalendarEvent + - UnsubscribeCalendar + - UnsubscribeCalendarACL + - UnsubscribeCalendarChangeEvent - UnsubscribeCalendarEvent - - ReplyCalendarEvent - - GetCalendarEventInstanceList - - GetCalendarEventInstanceViewList - - DeleteCalendarEventMeetingChat - - CreateCalendarEventMeetingChat - - CreateCalendarTimeoffEvent - - DeleteCalendarTimeoffEvent - - BatchGetCalendarMeetingRoomSummary - - BatchGetCalendarMeetingRoomFreebusy - - ReplyCalendarMeetingRoomInstance - - CreateCalendarEventAttendee - - DeleteCalendarEventAttendee - - GetCalendarEventAttendeeList - - GetCalendarEventAttendeeChatMemberList - - GetCalendarFreeBusyList - - GenerateCaldavConf - - CreateCalendarExchangeBinding - - DeleteCalendarExchangeBinding - - GetCalendarExchangeBinding + - UpdateCalendar + - UpdateCalendarEvent +- Cardkit + - BatchUpdateCardkitCard + - CreateCardkitCard + - CreateCardkitCardElement + - CreateCardkitCardIDConvert + - DeleteCardkitCardElement + - UpdateCardkitCard + - UpdateCardkitCardElement + - UpdateCardkitCardElementContent + - UpdateCardkitCardElementV1 + - UpdateCardkitCardSettings +- CcmDocs + - CreateCcmDocsDefaultDocsApiMeta - Chat + - AddChatMember - CreateChat - - GetChat - - GetChatOld - - UpdateChat - - DeleteChat - - GetChatListOfSelf - - SearchChat - - GetChatMemberList - - IsInChat - CreateChatManager + - CreateChatMenuTree + - CreateChatTab + - DeleteChat - DeleteChatManager - - AddChatMember - DeleteChatMember - - JoinChat - - GetChatModeration - - UpdateChatModeration - - UpdateChatTopNotice + - DeleteChatMenuTree + - DeleteChatTab - DeleteChatTopNotice - GenChatShareLink + - GetChat - GetChatAnnouncement - - UpdateChatAnnouncement - - CreateChatTab - - DeleteChatTab + - GetChatListOfSelf + - GetChatMemberList + - GetChatMenuTree + - GetChatModeration + - GetChatOld - GetChatTabList - - UpdateChatTab + - IsInChat + - JoinChat + - SearchChat + - SortChatMenuTree - SortChatTab - - CreateChatMenuTree - - DeleteChatMenuTree + - UpdateChat + - UpdateChatAnnouncement - UpdateChatMenuTree - - SortChatMenuTree - - GetChatMenuTree + - UpdateChatModeration + - UpdateChatTab + - UpdateChatTopNotice +- Compensation + - BatchCreateCompensationLumpSumPayment + - BatchCreateCompensationRecurringPayment + - BatchRemoveCompensationLumpSumPayment + - BatchRemoveCompensationRecurringPayment + - BatchUpdateCompensationLumpSumPayment + - BatchUpdateCompensationRecurringPayment + - CreateCompensationArchive + - ListCompensationSocialInsurance + - ListCompensationSocialPlan + - QueryCompensationLumpSumPayment + - QueryCompensationLumpSumPaymentDetail + - QueryCompensationRecurringPayment + - QueryCompensationSocialArchive + - QueryCompensationSocialArchiveAdjustRecord + - QueryCompensationSocialPlan - Contact - - CreateUser - - DeleteUser - - ResurrectUser - - GetUser + - AddContactGroupMember + - BatchAddContactGroupMember + - BatchAddContactV2Department + - BatchAddContactV2User + - BatchCreateContactFunctionalRoleMember + - BatchDeleteContactFunctionalRoleMember + - BatchDeleteContactGroupMember + - BatchGetDepartment - BatchGetUser - - GetUserList - - GetUserListOld - - UpdateUserPatch - - UpdateUser - BatchGetUserByID - BatchGetUserByIDOld - - SearchUserOld - - UpdateUserID - - CreateDepartment - - GetDepartment - - BatchGetDepartment - - GetDepartmentList - - UpdateDepartmentPatch - - UpdateDepartment - - GetDepartmentListOld - - GetParentDepartment - - SearchDepartment - - UpdateDepartmentID - - DeleteDepartment - - UnbindDepartmentChat + - BindContactUnitDepartment + - CreateContactFunctionalRole - CreateContactGroup - - UpdateContactGroup + - CreateContactJobFamily + - CreateContactJobLevel + - CreateContactUnit + - CreateDepartment + - CreateEmployeeTypeEnum + - CreateUser + - DeleteContactFunctionalRole - DeleteContactGroup + - DeleteContactGroupMember + - DeleteContactJobFamily + - DeleteContactJobLevel + - DeleteContactUnit + - DeleteDepartment + - DeleteEmployeeTypeEnum + - DeleteUser + - GetContactCustomAttrList + - GetContactFunctionalRoleMember + - GetContactFunctionalRoleMemberScope - GetContactGroup - GetContactGroupList - - GetContactMemberGroupList - - AddContactGroupMember - - BatchAddContactGroupMember - - DeleteContactGroupMember - - BatchDeleteContactGroupMember - GetContactGroupMember - - CreateContactFunctionalRole - - DeleteContactFunctionalRole - - UpdateContactFunctionalRole - - BatchCreateContactFunctionalRoleMember - - BatchDeleteContactFunctionalRoleMember - - UpdateContactFunctionalRoleMemberScope - - GetContactFunctionalRoleMemberScope - - GetContactFunctionalRoleMember - - CreateContactJobLevel - - DeleteContactJobLevel - - UpdateContactJobLevel - - GetContactJobLevel - - GetContactJobLevelList - - CreateContactJobFamily - - DeleteContactJobFamily - - UpdateContactJobFamily - GetContactJobFamily - GetContactJobFamilyList + - GetContactJobLevel + - GetContactJobLevelList - GetContactJobTitle - GetContactJobTitleList + - GetContactMemberGroupList + - GetContactScopeList + - GetContactUnit + - GetContactUnitDepartmentList + - GetContactUnitList + - GetContactV2Task - GetContactWorkCity - GetContactWorkCityList + - GetDepartment + - GetDepartmentList + - GetDepartmentListOld - GetEmployeeTypeEnumList - - UpdateEmployeeTypeEnumPatch - - DeleteEmployeeTypeEnum - - CreateEmployeeTypeEnum - - GetContactCustomAttrList - - CreateContactUnit - - UpdateContactUnit - - DeleteContactUnit - - GetContactUnit - - GetContactUnitList - - BindContactUnitDepartment - - UnbindContactUnitDepartment - - GetContactUnitDepartmentList - - GetContactScopeList + - GetParentDepartment + - GetUser + - GetUserList + - GetUserListOld + - ListContactV2Role + - ResurrectUser + - SearchDepartment + - SearchUserOld + - UnbindContactUnitDepartment + - UnbindDepartmentChat + - UpdateContactFunctionalRole + - UpdateContactFunctionalRoleMemberScope + - UpdateContactGroup + - UpdateContactJobFamily + - UpdateContactJobLevel + - UpdateContactUnit + - UpdateDepartment + - UpdateDepartmentID + - UpdateDepartmentPatch + - UpdateEmployeeTypeEnumPatch + - UpdateUser + - UpdateUserID + - UpdateUserPatch - CoreHR + - GetCoreHRCompensationChangeReasonList + - GetCoreHRCompensationIndicatorList + - GetCoreHRCompensationItemList + - GetCoreHRCompensationItemCategoryList + - GetCoreHRCompensationPlanList + - QueryCoreHRCompensationArchive + - BatchGetCoreHRJobFamily + - BatchGetCoreHrbpByEmployee - SearchCoreHRNationality - SearchCoreHRBank - SearchCoreHRBankBranch - - GetCoreHRCustomField - - GetCoreHRCustomFieldList - - GetCoreHRCustomFieldObjectApiNameList - - SearchCoreHRCountryRegion - - SearchCoreHRCountryRegionSubdivision - - SearchCoreHRCity - - SearchCoreHRDistrict - - GetCoreHRCountryRegion - - GetCoreHRCountryRegionList - - GetCoreHRSubdivision - - GetCoreHRSubdivisionList - - GetCoreHRSubregion - - GetCoreHRSubregionList - - CreateCoreHREmployeeType - - DeleteCoreHREmployeeType - - UpdateCoreHREmployeeType - - GetCoreHREmployeeType - - GetCoreHREmployeeTypeList - - CreateCoreHRNationalIDType - - DeleteCoreHRNationalIDType - - UpdateCoreHRNationalIDType - - GetCoreHRNationalIDType - - GetCoreHRNationalIDTypeList - - CreateCoreHRWorkingHoursType - - DeleteCoreHRWorkingHoursType - - UpdateCoreHRWorkingHoursType - - GetCoreHRWorkingHoursType - - GetCoreHRWorkingHoursTypeList - - SearchCoreHRCurrency - - GetCoreHRCurrency - - GetCoreHRCurrencyList + - SearchCoreHRNationality + - GetCoreHRAuthorization + - MatchCoreHRCompensationStandard + - GetCoreHRAuthorizationList + - BatchQueryCoreHRDepartmentTimeline + - QueryCoreHRDepartmentTimeline + - ActiveCoreHRCostCenter + - AddCorehrAuthorizationRoleAssign + - AddCorehrCommonDataMetaDataEnumOption + - BatchCorehrWorkforcePlanDetailV2 + - BatchGetCoreHRCompany + - BatchGetCoreHRDepartment - BatchGetCoreHREmployee - - SearchCoreHREmployee - - CreateCoreHREmployment - - DeleteCoreHREmployment - - UpdateCoreHREmployment - - CreateCoreHRPerson - - UpdateCoreHRPerson - - DeleteCoreHRPerson - - UploadCoreHRPersonFile - - DownloadCoreHRPersonFile - - GetCoreHRPerson - - CreateCoreHRJobData - - DeleteCoreHRJobData - - UpdateCoreHRJobData - - GetCoreHRJobData - - QueryCoreHRJobData - BatchGetCoreHRJobData - - GetCoreHRJobDataList - - GetCoreHRDepartmentParentList - - SearchCoreHRDepartment - - CreateCoreHRDepartment - - DeleteCoreHRDepartment - - UpdateCoreHRDepartment - - GetCoreHRDepartment - - BatchGetCoreHRDepartment - - GetCoreHRDepartmentList + - BatchGetCoreHRJobLevel - BatchGetCoreHRLocation - - CreateCoreHRLocation - - DeleteCoreHRLocation - - GetCoreHRLocation - - GetCoreHRLocationList - - GetCoreHRCompany - - GetCoreHRCompanyList - - BatchGetCoreHRCompany + - BatchGetCorehrJob + - BatchGetCorehrPathway + - BatchQueryCorehrCostAllocation + - BatchQueryCorehrDefaultCostCenter + - BatchQueryCorehrEmployeesAdditionalJob + - BatchQueryCorehrWorkforcePlanDetail - CreateCoreHRCompany - - UpdateCoreHRCompany - - DeleteCoreHRCompany + - CreateCoreHRContract - CreateCoreHRCostCenter - - ActiveCoreHRCostCenter - - DeleteCoreHRCostCenter - - SearchCoreHRCostCenter - CreateCoreHRCostCenterVersion - - UpdateCoreHRCostCenterVersion - - DeleteCoreHRCostCenterVersion - - BatchGetCoreHRJobLevel - - CreateCoreHRJobLevel - - DeleteCoreHRJobLevel - - UpdateCoreHRJobLevel - - GetCoreHRJobLevel - - GetCoreHRJobLevelList - - BatchGetCoreHRJobFamily + - CreateCoreHRDepartment + - CreateCoreHREmployeeType + - CreateCoreHREmployment + - CreateCoreHRJob + - CreateCoreHRJobChange + - CreateCoreHRJobData - CreateCoreHRJobFamily + - CreateCoreHRJobLevel + - CreateCoreHRLeaveGrantingRecord + - CreateCoreHRLocation + - CreateCoreHRNationalIDType + - CreateCoreHROffboarding + - CreateCoreHRPerson + - CreateCoreHRPreHire + - CreateCoreHRProbationAssessment + - CreateCoreHRWorkingHoursType + - CreateCorehrCommonDataIDConvert + - CreateCorehrCommonDataMetaDataEditEnumOption + - CreateCorehrCompanyActive + - CreateCorehrCostAllocationVersion + - CreateCorehrCustomOrg + - CreateCorehrCustomOrgActive + - CreateCorehrDefaultCostCenterVersion + - CreateCorehrDepartmentTree + - CreateCorehrEmployee + - CreateCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesInternationalAssignment + - CreateCorehrJobChange + - CreateCorehrJobChangeRevoke + - CreateCorehrJobGrade + - CreateCorehrLeaveWorkCalendar + - CreateCorehrLeaveWorkCalendarDate + - CreateCorehrLocationActive + - CreateCorehrLocationAddress + - CreateCorehrOffboardingEdit + - CreateCorehrOffboardingRevoke + - CreateCorehrOffboardingSubmitV2 + - CreateCorehrPathway + - CreateCorehrPathwayActive + - CreateCorehrPerson + - CreateCorehrPosition + - CreateCorehrPositionActive + - CreateCorehrPositionDelPosition + - CreateCorehrPreHireComplete + - CreateCorehrPreHireRestoreFlowInstance + - CreateCorehrPreHireTransformOnboardingTask + - CreateCorehrPreHireTransitTask + - CreateCorehrPreHireWithdrawOnboarding + - CreateCorehrProbationSubmit + - CreateCorehrProbationWithdraw + - CreateCorehrProcessQueryFlowDataTemplate + - CreateCorehrProcessStart + - CreateCorehrReportDetailRowBatchdelete + - CreateCorehrReportDetailRowBatchsave + - CreateCorehrSignatureFileTerminate + - CreateCorehrWorkforcePlanDetailRowBatchdelete + - CreateCorehrWorkforcePlanDetailRowBatchsave + - DeleteCoreHRCompany + - DeleteCoreHRContract + - DeleteCoreHRCostCenter + - DeleteCoreHRCostCenterVersion + - DeleteCoreHRDepartment + - DeleteCoreHREmployeeType + - DeleteCoreHREmployment + - DeleteCoreHRJob + - DeleteCoreHRJobData - DeleteCoreHRJobFamily - - UpdateCoreHRJobFamily + - DeleteCoreHRJobLevel + - DeleteCoreHRLeaveGrantingRecord + - DeleteCoreHRLocation + - DeleteCoreHRNationalIDType + - DeleteCoreHRPerson + - DeleteCoreHRPreHire + - DeleteCoreHRProbationAssessment + - DeleteCoreHRWorkingHoursType + - DeleteCorehrCustomOrg + - DeleteCorehrDepartment + - DeleteCorehrEmployeesAdditionalJob + - DeleteCorehrEmployeesInternationalAssignment + - DeleteCorehrJobGrade + - DeleteCorehrLocationAddress + - DeleteCorehrPathway + - DeleteCorehrPreHire + - DownloadCoreHRPersonFile + - DownloadCorehrSignatureFile + - EnableDisableCoreHRProbationAssessment + - GetCoreHRCompany + - GetCoreHRCompanyList + - GetCoreHRContract + - GetCoreHRContractList + - GetCoreHRCountryRegion + - GetCoreHRCountryRegionList + - GetCoreHRCurrency + - GetCoreHRCurrencyList + - GetCoreHRCustomField + - GetCoreHRCustomFieldList + - GetCoreHRCustomFieldObjectApiNameList + - GetCoreHRDepartment + - GetCoreHRDepartmentList + - GetCoreHRDepartmentParentList + - GetCoreHREmployeeType + - GetCoreHREmployeeTypeList + - GetCoreHRJob + - GetCoreHRJobData + - GetCoreHRJobDataList - GetCoreHRJobFamily - GetCoreHRJobFamilyList - - CreateCoreHRJob - - DeleteCoreHRJob - - UpdateCoreHRJob - - GetCoreHRJobV2 - - GetCoreHRJobListV2 - - GetCoreHRJob + - GetCoreHRJobLevel + - GetCoreHRJobLevelList - GetCoreHRJobList - - CreateCoreHRPreHire - - DeleteCoreHRPreHire - - UpdateCoreHRPreHire + - GetCoreHRJobListV2 + - GetCoreHRJobV2 + - GetCoreHRLeaveBalanceList + - GetCoreHRLeaveRequestHistoryList + - GetCoreHRLeaveTypeList + - GetCoreHRLocation + - GetCoreHRLocationList + - GetCoreHRNationalIDType + - GetCoreHRNationalIDTypeList + - GetCoreHROffboardingList + - GetCoreHRPerson - GetCoreHRPreHire - GetCoreHRPreHireList - - SearchCoreHRContract - - CreateCoreHRContract - - DeleteCoreHRContract - - UpdateCoreHRContract - - GetCoreHRContract - - GetCoreHRContractList - - SearchCoreHRProbation - - EnableDisableCoreHRProbationAssessment - - CreateCoreHRProbationAssessment - - UpdateCoreHRProbationAssessment - - DeleteCoreHRProbationAssessment + - GetCoreHRProcess + - GetCoreHRProcessFormVariableData + - GetCoreHRProcessList + - GetCoreHRSecurityGroupBp + - GetCoreHRSecurityGroupList + - GetCoreHRSubdivision + - GetCoreHRSubdivisionList + - GetCoreHRSubregion + - GetCoreHRSubregionList - GetCoreHRTransferReasonList - GetCoreHRTransferTypeList - - CreateCoreHRJobChange - - SearchCoreHRJobChange - - GetCoreHROffboardingList - - CreateCoreHROffboarding - - SearchCoreHROffboarding - - CreateCoreHRLeaveGrantingRecord - - DeleteCoreHRLeaveGrantingRecord - - GetCoreHRLeaveTypeList - - GetCoreHRLeaveBalanceList - - GetCoreHRLeaveRequestHistoryList - - BatchGetCoreHrbpByEmployee + - GetCoreHRWorkingHoursType + - GetCoreHRWorkingHoursTypeList - GetCoreHrbpByDepartment - GetCoreHrbpList - - GetCoreHRSecurityGroupBp - - SearchCoreHRAssignedUser - - GetCoreHRAuthorization - - GetCoreHRAuthorizationList - - GetCoreHRSecurityGroupList - - GetCoreHRProcessList - - GetCoreHRProcess - - GetCoreHRProcessFormVariableData - - MatchCoreHRCompensationStandard - - BatchQueryCoreHRDepartmentTimeline - - GetCoreHRCompensationChangeReasonList - - GetCoreHRCompensationIndicatorList - - GetCoreHRCompensationItemCategoryList - - GetCoreHRCompensationItemList - - GetCoreHRCompensationPlanList - - QueryCoreHRCompensationArchive - - QueryCoreHRDepartmentTimeline + - GetCorehrApprovalGroups + - GetCorehrDraft + - GetCorehrLeaveCalendarByScope + - GetCorehrProcessFlowVariableData + - GetCorehrProcessFormVariableData + - ListCorehrApprover + - ListCorehrEmployeesInternationalAssignment + - ListCorehrSignatureFile + - ListCorehrSignatureFileByBizID + - ListCorehrSignatureNodeByFileID + - ListCorehrSignatureTemplateInfoWithThumbnail + - ListCorehrWorkforcePlan + - QueryCoreHRJobData - QueryCoreHRJobGrade + - QueryCorehrApprovalGroupsDepartmentChangeListByIDs + - QueryCorehrApprovalGroupsJobChangeListByIDs + - QueryCorehrApprovalGroupsPositionChangeListByIDs + - QueryCorehrCompanyMultiTimeline + - QueryCorehrCompanyRecentChange + - QueryCorehrCostCenterRecentChange + - QueryCorehrCustomOrg + - QueryCorehrCustomOrgRecentChange + - QueryCorehrDepartmentOperationLogs + - QueryCorehrDepartmentRecentChange + - QueryCorehrJobFamilyMultiTimeline + - QueryCorehrJobFamilyRecentChange + - QueryCorehrJobGradeRecentChange + - QueryCorehrJobLevelRecentChange + - QueryCorehrJobMultiTimeline + - QueryCorehrJobRecentChange + - QueryCorehrLocationMultiTimeline + - QueryCorehrLocationRecentChange + - QueryCorehrPosition + - QueryCorehrPositionRecentChange + - QueryCorehrPreHire + - QueryCorehrSignatureFile + - RemoveCorehrAuthorizationRoleAssign + - RemoveCorehrCostAllocationVersion + - RemoveCorehrDefaultCostCenterVersion + - SearchCoreHRAssignedUser + - SearchCoreHRCity + - SearchCoreHRContract + - SearchCoreHRCostCenter + - SearchCoreHRCountryRegion + - SearchCoreHRCountryRegionSubdivision + - SearchCoreHRCurrency + - SearchCoreHRDepartment + - SearchCoreHRDistrict + - SearchCoreHREmployee + - SearchCoreHRJobChange + - SearchCoreHROffboarding - SearchCoreHRPreHire + - SearchCoreHRProbation + - SearchCorehrBasicInfoLanguage + - SearchCorehrBasicInfoTimeZone + - SearchCorehrEnum + - SearchCorehrSignatureTemplate + - UpdateCoreHRCompany + - UpdateCoreHRContract + - UpdateCoreHRCostCenterVersion + - UpdateCoreHRDepartment + - UpdateCoreHREmployeeType + - UpdateCoreHREmployment + - UpdateCoreHRJob + - UpdateCoreHRJobData + - UpdateCoreHRJobFamily + - UpdateCoreHRJobLevel + - UpdateCoreHRNationalIDType + - UpdateCoreHRPerson + - UpdateCoreHRPreHire + - UpdateCoreHRProbationAssessment + - UpdateCoreHRWorkingHoursType + - UpdateCorehrAuthorizationRoleAssign + - UpdateCorehrCostAllocationVersion + - UpdateCorehrCustomOrg + - UpdateCorehrCustomOrgRule + - UpdateCorehrDefaultCostCenterVersion + - UpdateCorehrDepartment + - UpdateCorehrEmployeesAdditionalJob + - UpdateCorehrEmployeesInternationalAssignment + - UpdateCorehrJobGrade + - UpdateCorehrLocation + - UpdateCorehrLocationAddress + - UpdateCorehrPathway + - UpdateCorehrPerson + - UpdateCorehrPosition + - UpdateCorehrPreHire + - UpdateCorehrProcessApprover + - UpdateCorehrProcessExtra + - UpdateCorehrProcessRevoke + - UpdateCorehrProcessTransfer + - UpdateCorehrProcessWithdraw + - UploadCoreHRPersonFile +- Directory + - CreateDirectoryCollaborationRule + - CreateDirectoryDepartment + - CreateDirectoryDepartmentFilter + - CreateDirectoryEmployee + - CreateDirectoryEmployeeFilter + - CreateDirectoryEmployeeResurrect + - DeleteDirectoryCollaborationRule + - DeleteDirectoryDepartment + - DeleteDirectoryEmployee + - ListDirectoryCollaborationRule + - ListDirectoryCollaborationTenant + - ListDirectoryCollborationShareEntity + - MGetDirectoryDepartment + - MGetDirectoryEmployee + - SearchDirectoryDepartment + - SearchDirectoryEmployee + - UpdateDirectoryCollaborationRule + - UpdateDirectoryDepartment + - UpdateDirectoryEmployee + - UpdateDirectoryEmployeeRegular + - UpdateDirectoryEmployeeToBeResigned +- Docs + - GetDocsContent - Drive - - GetDriveRootFolderMeta - - GetDriveFileList - - GetDriveFolderMeta - - CreateDriveFolder - - GetDriveFileMeta - - CreateDriveFile + - GetWhiteboardNodeList + - CreateSpreadsheet + - AddSheetDimensionRange + - AddWikiSpaceMember + - AppendSheetValue + - BatchCreateDrivePermissionMember + - BatchDeleteDocxBlock + - BatchDeleteDocxChatAnnouncementBlockChildren + - BatchGetDriveComment + - BatchGetDriveMediaTmpDownloadURL + - BatchGetSheetValue + - BatchSetSheetStyle + - BatchSetSheetValue + - BatchUpdateDocxChatAnnouncementBlock + - BatchUpdateDocxDocumentBlock + - BatchUpdateSheet + - CheckDriveMemberPermission + - CheckDriveMemberPermissionOld - CopyDriveFile - - MoveDriveFile + - CopyWikiNode + - CreateDocx + - CreateDocxBlock + - CreateDocxChatAnnouncementBlockChildren + - CreateDocxDocumentBlockDescendant + - CreateDocxDocumentConvert + - CreateDriveComment + - CreateDriveDoc + - CreateDriveExportTask + - CreateDriveFile + - CreateDriveFileShortcut + - CreateDriveFileSubscription + - CreateDriveFileVersion + - CreateDriveFolder + - CreateDriveImportTask + - CreateDriveMemberPermission + - CreateDriveMemberPermissionOld + - CreateDrivePermissionPublicPassword + - CreateSheetConditionFormat + - CreateSheetDataValidationDropdown + - CreateSheetFilter + - CreateSheetFilterView + - CreateSheetFilterViewCondition + - CreateSheetFloatImage + - CreateSheetProtectedDimension + - CreateWikiNode + - CreateWikiSpace + - DeleteDriveComment - DeleteDriveFile - - GetDriveFileStatistics - - CreateDriveFileShortcut - - GetDriveFileTask - - UploadDriveMedia + - DeleteDriveFileVersion + - DeleteDriveMemberPermission + - DeleteDriveMemberPermissionOld + - DeleteDrivePermissionPublicPassword + - DeleteDriveSheetFile + - DeleteSheetConditionFormat + - DeleteSheetDataValidationDropdown + - DeleteSheetDimensionRange + - DeleteSheetFilter + - DeleteSheetFilterView + - DeleteSheetFilterViewCondition + - DeleteSheetFloatImage + - DeleteSheetProtectedDimension + - DeleteWikiSpaceMember + - DownloadDriveExportTask + - DownloadDriveFile - DownloadDriveMedia - - PrepareUploadDriveMedia - - PartUploadDriveMedia + - FindSheet + - FinishUploadDriveFile - FinishUploadDriveMedia - - GetDocxDocument - - GetDocxDocumentRawContent - - GetDocxBlockListOfDocument - - CreateDocx - GetDocxBlock - - CreateDocxBlock - - UpdateDocxBlock - - BatchDeleteDocxBlock - GetDocxBlockListOfBlock - - SubscribeDriveFile - - UnsubscribeDriveFile - - GetSubscribeDriveFile - - SearchDriveFile - - DeleteDriveSheetFile - - GetDriveFolderChildren - - CreateDriveExportTask + - GetDocxBlockListOfDocument + - GetDocxChatAnnouncement + - GetDocxChatAnnouncementBlock + - GetDocxChatAnnouncementBlockChildren + - GetDocxDocument + - GetDocxDocumentRawContent + - GetDriveComment + - GetDriveCommentList + - GetDriveCommentReplyList + - GetDriveDocContent + - GetDriveDocMeta + - GetDriveDocRawContent - GetDriveExportTask - - DownloadDriveExportTask - - GetDriveFileViewRecordList - - CreateDriveFileVersion - - DeleteDriveFileVersion + - GetDriveFileList + - GetDriveFileMeta + - GetDriveFileStatistics + - GetDriveFileSubscription + - GetDriveFileTask - GetDriveFileVersion - GetDriveFileVersionList - - DownloadDriveFile - - UploadDriveFile - - PrepareUploadDriveFile - - PartUploadDriveFile - - FinishUploadDriveFile - - CreateDriveMemberPermissionOld - - TransferDriveOwnerPermission - - CheckDriveMemberPermission + - GetDriveFileViewRecordList + - GetDriveFolderChildren + - GetDriveFolderMeta + - GetDriveImportTask - GetDriveMemberPermissionList - GetDriveMemberPermissionListOld - - CreateDriveMemberPermission - - UpdateDriveMemberPermission - - DeleteDriveMemberPermission - - GetDrivePublicPermissionOld - - CreateDrivePermissionPublicPassword - - UpdateDrivePermissionPublicPassword - - DeleteDrivePermissionPublicPassword - GetDrivePublicPermission - - UpdateDrivePublicPermission + - GetDrivePublicPermissionOld - GetDrivePublicPermissionV2 - - UpdateDrivePublicPermissionV2 - - BatchGetDriveMediaTmpDownloadURL - - GetDriveCommentList - - CreateDriveComment - - GetDriveComment - - BatchGetDriveComment - - GetDriveCommentReplyList - - UpdateDriveComment - - DeleteDriveComment - - UpdateDriveCommentPatch - - GetDriveFileSubscription - - CreateDriveFileSubscription - - UpdateDriveFileSubscription - - CreateDriveDoc - - GetDriveDocContent - - UpdateDriveDocContent - - GetDriveDocRawContent - - GetDriveDocMeta - - UpdateSpreadsheet - - GetSpreadsheet - - CreateSpreadsheet - - GetSheetMeta - - UpdateSheetProperty + - GetDriveRootFolderMeta + - GetDriveSheetDefaultImportResult - GetSheet + - GetSheetConditionFormat + - GetSheetDataValidationDropdown + - GetSheetFilter + - GetSheetFilterView + - GetSheetFilterViewCondition + - GetSheetFloatImage - GetSheetList - - BatchUpdateSheet + - GetSheetMeta + - GetSheetProtectedDimension + - GetSheetValue + - GetSpreadsheet + - GetSubscribeDriveFile + - GetWikiNode + - GetWikiNodeList + - GetWikiSpace + - GetWikiSpaceList + - GetWikiTask - ImportSheet - - CreateDriveImportTask - - GetDriveImportTask + - InsertSheetDimensionRange + - ListDocxChatAnnouncementBlock + - ListDriveFileLike + - ListWikiSpaceMember + - MergeSheetCell + - MoveDocsToWiki + - MoveDriveFile - MoveSheetDimension + - MoveWikiNode + - PartUploadDriveFile + - PartUploadDriveMedia + - PrepareUploadDriveFile + - PrepareUploadDriveMedia - PrependSheetValue - - AppendSheetValue - - InsertSheetDimensionRange - - AddSheetDimensionRange - - UpdateSheetDimensionRange - - DeleteSheetDimensionRange - - GetSheetValue - - BatchGetSheetValue - - SetSheetValue - - BatchSetSheetValue + - QuerySheetFilterView + - QuerySheetFilterViewCondition + - QuerySheetFloatImage + - ReplaceSheet + - SearchDriveFile + - SearchWikiNode - SetSheetStyle - - BatchSetSheetStyle - - MergeSheetCell - - UnmergeSheetCell + - SetSheetValue - SetSheetValueImage - - FindSheet - - ReplaceSheet - - CreateSheetConditionFormat - - GetSheetConditionFormat + - SubscribeDriveFile + - TransferDriveMemberPermission + - TransferDriveOwnerPermission + - UnmergeSheetCell + - UnsubscribeDriveFile + - UpdateDocxBlock + - UpdateDriveComment + - UpdateDriveCommentPatch + - UpdateDriveDocContent + - UpdateDriveFileSubscription + - UpdateDriveMemberPermission + - UpdateDriveMemberPermissionOld + - UpdateDrivePermissionPublicPassword + - UpdateDrivePublicPermission + - UpdateDrivePublicPermissionV2 - UpdateSheetConditionFormat - - DeleteSheetConditionFormat - - CreateSheetProtectedDimension - - GetSheetProtectedDimension - - UpdateSheetProtectedDimension - - DeleteSheetProtectedDimension - - CreateSheetDataValidationDropdown - - DeleteSheetDataValidationDropdown - UpdateSheetDataValidationDropdown - - GetSheetDataValidationDropdown - - CreateSheetFilter - - DeleteSheetFilter + - UpdateSheetDimensionRange - UpdateSheetFilter - - GetSheetFilter - - CreateSheetFilterView - - DeleteSheetFilterView - UpdateSheetFilterView - - GetSheetFilterView - - QuerySheetFilterView - - CreateSheetFilterViewCondition - - DeleteSheetFilterViewCondition - UpdateSheetFilterViewCondition - - GetSheetFilterViewCondition - - QuerySheetFilterViewCondition - - CreateSheetFloatImage - - DeleteSheetFloatImage - UpdateSheetFloatImage - - GetSheetFloatImage - - QuerySheetFloatImage - - CreateWikiSpace - - GetWikiSpaceList - - GetWikiSpace - - UpdateWikiSpaceSetting - - DeleteWikiSpaceMember - - AddWikiSpaceMember - - CreateWikiNode - - GetWikiNodeList - - MoveWikiNode + - UpdateSheetProperty + - UpdateSheetProtectedDimension + - UpdateSpreadsheet - UpdateWikiNodeTitle - - CopyWikiNode - - GetWikiNode - - MoveDocsToWiki - - GetWikiTask - - DeleteDriveMemberPermissionOld - - UpdateDriveMemberPermissionOld - - TransferDriveMemberPermission - - CheckDriveMemberPermissionOld - - GetWhiteboardNodeList + - UpdateWikiSpaceSetting + - UploadDriveFile + - UploadDriveMedia - EHR - - GetEHREmployeeList - DownloadEHRAttachments + - GetEHREmployeeList - Event - GetEventOutboundIpList - EventCallback - - EventV2ElearningCourseRegistrationCreatedV2 - - EventV2ElearningCourseRegistrationUpdatedV2 - - EventV2ElearningCourseRegistrationDeletedV2 - - EventV2URLPreviewGet - - EventV2HireApplicationStageChangedV1 - - EventV2HireApplicationDeletedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrProcessUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessApproverUpdatedV2 - - EventV2CorehrProcessCcUpdatedV2 - - EventV2ContactCustomAttrEventUpdatedV3 - - EventV2ApplicationApplicationCreatedV6 + - EventV1TripApproval + - EventV1AddBot + - EventV1AddUserToChat - EventV1AppOpen - EventV1AppStatusChange - - EventV1OrderPaid - EventV1AppTicket - EventV1AppUninstalled - - EventV2ApplicationApplicationVisibilityAddedV6 - - EventV2ApplicationApplicationAppVersionPublishApplyV6 - - EventV2ApplicationApplicationAppVersionPublishRevokeV6 - - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV1ApprovalCc + - EventV1ApprovalInstance + - EventV1ApprovalTask + - EventV1ChatDisband + - EventV1LeaveApprovalRevert + - EventV1LeaveApprovalV2 + - EventV1OrderPaid - EventV1OutApproval + - EventV1P2PChatCreate + - EventV1ReceiveMessage - EventV1RemedyApproval + - EventV1RemoveBot + - EventV1RemoveUserFromChat + - EventV1RevokeAddUserFromChat - EventV1ShiftApproval - - EventV1WorkApproval - - EventV1LeaveApprovalV2 - - EventV1LeaveApprovalRevert - - EventV2DriveFileCreatedInFolderV1 - - EventV2DriveFileBitableFieldChangedV1 - - EventV2DriveFileBitableRecordChangedV1 - - EventV2DriveFileTitleUpdatedV1 - - EventV2DriveFileReadV1 - - EventV2DriveFileEditV1 - - EventV2DriveFilePermissionMemberAddedV1 - - EventV2DriveFilePermissionMemberRemovedV1 - - EventV2DriveFileTrashedV1 - - EventV2DriveFileDeletedV1 - - EventV2ApprovalApprovalUpdatedV4 - - EventV1ThirdPartyMeetingRoomEventUpdated - - EventV1ThirdPartyMeetingRoomEventDeleted - - EventV2MeetingRoomMeetingRoomCreatedV1 - - EventV2MeetingRoomMeetingRoomUpdatedV1 - - EventV2MeetingRoomMeetingRoomStatusChangedV1 - - EventV2MeetingRoomMeetingRoomDeletedV1 - EventV1ThirdPartyMeetingRoomEventCreated + - EventV1ThirdPartyMeetingRoomEventDeleted + - EventV1ThirdPartyMeetingRoomEventUpdated + - EventV1WorkApproval + - EventV2ACSAccessRecordCreatedV1 + - EventV2ACSUserUpdatedV1 + - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV2ApplicationApplicationAppVersionPublishApplyV6 + - EventV2ApplicationApplicationAppVersionPublishRevokeV6 + - EventV2ApplicationApplicationCreatedV6 - EventV2ApplicationApplicationFeedbackCreatedV6 - EventV2ApplicationApplicationFeedbackUpdatedV6 - - EventV2TaskTaskUpdateTenantV1 - - EventV2TaskTaskUpdatedV1 - - EventV2TaskTaskCommentUpdatedV1 - - EventV2HelpdeskTicketMessageCreatedV1 - - EventV2HelpdeskTicketCreatedV1 - - EventV2HelpdeskTicketUpdatedV1 - - EventV2HelpdeskNotificationApproveV1 + - EventV2ApplicationApplicationVisibilityAddedV6 + - EventV2ApplicationBotMenuV6 + - EventV2ApprovalApprovalUpdatedV4 + - EventV2AttendanceUserFlowCreatedV1 + - EventV2AttendanceUserTaskUpdatedV1 + - EventV2CalendarCalendarACLCreatedV4 + - EventV2CalendarCalendarACLDeletedV4 + - EventV2CalendarCalendarChangedV4 + - EventV2CalendarCalendarEventChangedV4 + - EventV2CardActionTrigger + - EventV2ContactCustomAttrEventUpdatedV3 - EventV2ContactDepartmentCreatedV3 - EventV2ContactDepartmentDeletedV3 - EventV2ContactDepartmentUpdatedV3 - - EventV2ContactUserUpdatedV3 - - EventV2ContactUserCreatedV3 - - EventV2ContactUserDeletedV3 - - EventV2ContactScopeUpdatedV3 - - EventV2ContactEmployeeTypeEnumCreatedV3 - EventV2ContactEmployeeTypeEnumActivedV3 + - EventV2ContactEmployeeTypeEnumCreatedV3 - EventV2ContactEmployeeTypeEnumDeactivatedV3 - - EventV2ContactEmployeeTypeEnumUpdatedV3 - EventV2ContactEmployeeTypeEnumDeletedV3 - - EventV2IMMessageReceiveV1 - - EventV2IMMessageReadV1 - - EventV2IMMessageReactionDeletedV1 - - EventV2IMMessageReactionCreatedV1 + - EventV2ContactEmployeeTypeEnumUpdatedV3 + - EventV2ContactScopeUpdatedV3 + - EventV2ContactUserCreatedV3 + - EventV2ContactUserDeletedV3 + - EventV2ContactUserUpdatedV3 + - EventV2CorehrContractCreatedV1 + - EventV2CorehrContractDeletedV1 + - EventV2CorehrContractUpdatedV1 + - EventV2CorehrDepartmentCreatedV1 + - EventV2CorehrDepartmentDeletedV1 + - EventV2CorehrDepartmentUpdatedV1 + - EventV2CorehrEmploymentConvertedV1 + - EventV2CorehrEmploymentCreatedV1 + - EventV2CorehrEmploymentDeletedV1 + - EventV2CorehrEmploymentResignedV1 + - EventV2CorehrEmploymentUpdatedV1 + - EventV2CorehrJobChangeUpdatedV1 + - EventV2CorehrJobCreatedV1 + - EventV2CorehrJobDataChangedV1 + - EventV2CorehrJobDataEmployedV1 + - EventV2CorehrJobDeletedV1 + - EventV2CorehrJobUpdatedV1 + - EventV2CorehrOffboardingChecklistUpdatedV2 + - EventV2CorehrOffboardingStatusUpdatedV2 + - EventV2CorehrOffboardingUpdatedV1 + - EventV2CorehrOffboardingUpdatedV2 + - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2CorehrPersonCreatedV1 + - EventV2CorehrPersonDeletedV1 + - EventV2CorehrPersonUpdatedV1 + - EventV2CorehrPreHireUpdatedV1 + - EventV2CorehrProbationUpdatedV2 + - EventV2CorehrProcessApproverUpdatedV2 + - EventV2CorehrProcessCcUpdatedV2 + - EventV2CorehrProcessNodeUpdatedV2 + - EventV2CorehrProcessUpdatedV2 + - EventV2DriveFileBitableFieldChangedV1 + - EventV2DriveFileBitableRecordChangedV1 + - EventV2DriveFileCreatedInFolderV1 + - EventV2DriveFileDeletedV1 + - EventV2DriveFileEditV1 + - EventV2DriveFilePermissionMemberAddedV1 + - EventV2DriveFilePermissionMemberRemovedV1 + - EventV2DriveFileReadV1 + - EventV2DriveFileTitleUpdatedV1 + - EventV2DriveFileTrashedV1 + - EventV2ElearningCourseRegistrationCreatedV2 + - EventV2ElearningCourseRegistrationDeletedV2 + - EventV2ElearningCourseRegistrationUpdatedV2 + - EventV2HelpdeskNotificationApproveV1 + - EventV2HelpdeskTicketCreatedV1 + - EventV2HelpdeskTicketMessageCreatedV1 + - EventV2HelpdeskTicketUpdatedV1 + - EventV2HireApplicationDeletedV1 + - EventV2HireApplicationStageChangedV1 + - EventV2HireEHRImportTaskForInternshipOfferImportedV1 + - EventV2HireEHRImportTaskImportedV1 + - EventV2HireEcoAccountCreatedV1 + - EventV2HireEcoBackgroundCheckCanceledV1 + - EventV2HireEcoBackgroundCheckCreatedV1 + - EventV2HireEcoExamCreatedV1 + - EventV2HireOfferStatusChangedV1 + - EventV2HireReferralAccountAssetsUpdateV1 - EventV2IMChatDisbandedV1 - - EventV2IMChatUpdatedV1 - EventV2IMChatMemberBotAddedV1 - EventV2IMChatMemberBotDeletedV1 - EventV2IMChatMemberUserAddedV1 - - EventV2IMChatMemberUserWithdrawnV1 - EventV2IMChatMemberUserDeletedV1 - - EventV2VCMeetingMeetingStartedV1 - - EventV2VCMeetingMeetingEndedV1 + - EventV2IMChatMemberUserWithdrawnV1 + - EventV2IMChatUpdatedV1 + - EventV2IMMessageReactionCreatedV1 + - EventV2IMMessageReactionDeletedV1 + - EventV2IMMessageReadV1 + - EventV2IMMessageRecalledV1 + - EventV2IMMessageReceiveV1 + - EventV2MeetingRoomMeetingRoomCreatedV1 + - EventV2MeetingRoomMeetingRoomDeletedV1 + - EventV2MeetingRoomMeetingRoomStatusChangedV1 + - EventV2MeetingRoomMeetingRoomUpdatedV1 + - EventV2TaskTaskCommentUpdatedV1 + - EventV2TaskTaskUpdateTenantV1 + - EventV2TaskTaskUpdatedV1 + - EventV2URLPreviewGet + - EventV2VCMeetingAllMeetingEndedV1 + - EventV2VCMeetingAllMeetingStartedV1 - EventV2VCMeetingJoinMeetingV1 - EventV2VCMeetingLeaveMeetingV1 - - EventV2VCMeetingRecordingStartedV1 + - EventV2VCMeetingMeetingEndedV1 + - EventV2VCMeetingMeetingStartedV1 - EventV2VCMeetingRecordingEndedV1 - EventV2VCMeetingRecordingReadyV1 - - EventV2VCMeetingShareStartedV1 + - EventV2VCMeetingRecordingStartedV1 - EventV2VCMeetingShareEndedV1 - - EventV2ACSAccessRecordCreatedV1 - - EventV2ACSUserUpdatedV1 - - EventV2CalendarCalendarACLCreatedV4 - - EventV2CalendarCalendarACLDeletedV4 - - EventV2CalendarCalendarEventChangedV4 - - EventV2CalendarCalendarChangedV4 - - EventV1AddBot - - EventV1RemoveBot - - EventV1P2PChatCreate - - EventV1ReceiveMessage - - EventV1AddUserToChat - - EventV1RemoveUserFromChat - - EventV1RevokeAddUserFromChat - - EventV1ChatDisband - - EventV1ApprovalInstance - - EventV1ApprovalTask - - EventV1ApprovalCc - - EventV2AttendanceUserTaskUpdatedV1 - - EventV2AttendanceUserFlowCreatedV1 - - EventV2IMMessageRecalledV1 + - EventV2VCMeetingShareStartedV1 + - EventV2VCReserveConfigUpdatedV1 - EventV2VCRoomCreatedV1 - EventV2VCRoomDeletedV1 - - EventV2VCRoomUpdatedV1 - - EventV2VCMeetingAllMeetingStartedV1 - - EventV2VCMeetingAllMeetingEndedV1 - EventV2VCRoomLevelCreatedV1 - EventV2VCRoomLevelDeletedV1 - EventV2VCRoomLevelUpdatedV1 - - EventV2VCReserveConfigUpdatedV1 - - EventV2ApplicationBotMenuV6 - - EventV2HireOfferStatusChangedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 - - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - - EventV2HireEHRImportTaskImportedV1 - - EventV2CorehrProbationUpdatedV2 - - EventV2CorehrPreHireUpdatedV1 - - EventV2HireEcoAccountCreatedV1 - - EventV2HireEcoBackgroundCheckCreatedV1 - - EventV2HireEcoBackgroundCheckCanceledV1 - - EventV2HireEcoExamCreatedV1 - - EventV2HireReferralAccountAssetsUpdateV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 - - EventV2CardActionTrigger - - EventV2CorehrOffboardingChecklistUpdatedV2 - - EventV2CorehrOffboardingStatusUpdatedV2 - - EventV2CorehrOffboardingUpdatedV2 + - EventV2VCRoomUpdatedV1 - File - - UploadImage + - DownloadFile - DownloadImage - UploadFile - - DownloadFile + - UploadImage - Helpdesk - - CreateHelpdeskNotification - - UpdateHelpdeskNotification - - GetHelpdeskNotification - - PreviewHelpdeskNotification - - SubmitApproveHelpdeskNotification + - AnswerHelpdeskTicketUserQuery - CancelApproveHelpdeskNotification - - ExecuteSendHelpdeskNotification - CancelSendHelpdeskNotification - - StartHelpdeskService - - GetHelpdeskTicket - - UpdateHelpdeskTicket - - GetHelpdeskTicketList - - DownloadHelpdeskTicketImage - - AnswerHelpdeskTicketUserQuery - - GetHelpdeskTicketCustomizedFields - - GetHelpdeskTicketMessageList - - SendHelpdeskTicketMessage - - SendHelpdeskMessage - - GetHelpdeskTicketCustomizedFieldList - - DeleteHelpdeskTicketCustomizedField - - UpdateHelpdeskTicketCustomizedField - - CreateHelpdeskTicketCustomizedField - - GetHelpdeskTicketCustomizedField + - CreateHelpdeskAgentSchedule + - CreateHelpdeskAgentSkill - CreateHelpdeskCategory - - GetHelpdeskCategory - - UpdateHelpdeskCategory - - DeleteHelpdeskCategory - - GetHelpdeskCategoryList - CreateHelpdeskFAQ - - GetHelpdeskFAQ - - UpdateHelpdeskFAQ - - DeleteHelpdeskFAQ - - GetHelpdeskFAQList - - GetHelpdeskFAQImage - - SearchHelpdeskFAQ - - UpdateHelpdeskAgent - - GetHelpdeskAgentEmail - - CreateHelpdeskAgentSchedule + - CreateHelpdeskNotification + - CreateHelpdeskTicketCustomizedField - DeleteHelpdeskAgentSchedule - - UpdateHelpdeskAgentSchedule + - DeleteHelpdeskAgentSkill + - DeleteHelpdeskCategory + - DeleteHelpdeskFAQ + - DeleteHelpdeskTicketCustomizedField + - DownloadHelpdeskTicketImage + - ExecuteSendHelpdeskNotification + - GetHelpdeskAgentEmail - GetHelpdeskAgentSchedule - GetHelpdeskAgentScheduleList - - CreateHelpdeskAgentSkill - GetHelpdeskAgentSkill - - UpdateHelpdeskAgentSkill - - DeleteHelpdeskAgentSkill - GetHelpdeskAgentSkillList - GetHelpdeskAgentSkillRuleList + - GetHelpdeskCategory + - GetHelpdeskCategoryList + - GetHelpdeskFAQ + - GetHelpdeskFAQImage + - GetHelpdeskFAQList + - GetHelpdeskNotification + - GetHelpdeskTicket + - GetHelpdeskTicketCustomizedField + - GetHelpdeskTicketCustomizedFieldList + - GetHelpdeskTicketCustomizedFields + - GetHelpdeskTicketList + - GetHelpdeskTicketMessageList + - PreviewHelpdeskNotification + - SearchHelpdeskFAQ + - SendHelpdeskMessage + - SendHelpdeskTicketMessage + - StartHelpdeskService + - SubmitApproveHelpdeskNotification - SubscribeHelpdeskEvent - UnsubscribeHelpdeskEvent + - UpdateHelpdeskAgent + - UpdateHelpdeskAgentSchedule + - UpdateHelpdeskAgentSkill + - UpdateHelpdeskCategory + - UpdateHelpdeskFAQ + - UpdateHelpdeskNotification + - UpdateHelpdeskTicket + - UpdateHelpdeskTicketCustomizedField - Hire - - GetHireJobConfig - - CreateHireJob - - UpdateHireJob - - UpdateHireJobConfig - - GetHireJob - - GetHireJobManager - - QueryHireTalentObject - - GetHireTalent - - GetHireAttachment - - GetHireAttachmentPreview - - GetHireReferralWebsiteJobPostList - - GetHireReferralWebsiteJobPost - - GetHireReferralByApplication - - CreateHireExternalApplication - - UpdateHireExternalApplication - - DeleteHireExternalApplication - - CreateHireExternalInterview - - CreateHireExternalInterviewAssessment - - CreateHireExternalBackgroundCheck - AddHireTalentToFolder - - GetHireTalentFolderList + - BatchDeleteHireEcoAccountCustomField + - BatchDeleteHireEcoBackgroundCheckCustomField + - BatchDeleteHireEcoBackgroundCheckPackage + - BatchDeleteHireEcoExamPaper - BatchGetHireTalent - - GetHireJobProcessList + - BatchHireTalentPoolChangeTalentPool + - BatchQueryHireAgency + - BatchQueryHireBackgroundCheckOrder + - BatchQueryHireExternalBackgroundCheck + - BatchQueryHireExternalInterview + - BatchQueryHireExternalOffer + - BatchUpdateHireEcoAccountCustomField + - BatchUpdateHireEcoBackgroundCheckCustomField + - BatchUpdateHireEcoBackgroundCheckPackage + - BatchUpdateHireEcoExamPaper + - CancelHireEcoBackgroundCheck + - CloseHireJob + - CreateHireAdvertisementPublish + - CreateHireAgencyOperateAgencyAccount + - CreateHireAgencyProtect + - CreateHireAgencyProtectSearch - CreateHireApplication - - TerminateHireApplication + - CreateHireApplicationCancelOnboard + - CreateHireApplicationRecover + - CreateHireAttachment + - CreateHireEcoAccountCustomField + - CreateHireEcoBackgroundCheckCustomField + - CreateHireEcoBackgroundCheckPackage + - CreateHireEcoExamLoginInfo + - CreateHireEcoExamPaper + - CreateHireExam + - CreateHireExternalApplication + - CreateHireExternalBackgroundCheck + - CreateHireExternalInterview + - CreateHireExternalInterviewAssessment + - CreateHireExternalOffer + - CreateHireExternalReferralReward + - CreateHireJob + - CreateHireJobRequirement + - CreateHireNote + - CreateHireOffer + - CreateHireReferralAccount + - CreateHireReferralAccountEnable + - CreateHireTalentBlocklistChangeTalentBlock + - CreateHireTalentCombinedCreate + - CreateHireTalentCombinedUpdate + - CreateHireTalentExternalInfo + - CreateHireTalentOnboardStatus + - CreateHireTalentPoolMoveTalent + - CreateHireTalentTag + - CreateHireTripartiteAgreement + - CreateHireWebsiteChannel + - CreateHireWebsiteDeliveryByAttachment + - CreateHireWebsiteDeliveryByResume + - CreateHireWebsiteSiteUser + - DeactivateHireReferralAccount + - DeleteHireExternalApplication + - DeleteHireExternalBackgroundCheck + - DeleteHireExternalInterview + - DeleteHireExternalOffer + - DeleteHireExternalReferralReward + - DeleteHireJobRequirement + - DeleteHireNote + - DeleteHireTripartiteAgreement + - DeleteHireWebsiteChannel + - GetHireAgency + - GetHireAgencyAccount - GetHireApplication + - GetHireApplicationDetail + - GetHireApplicationInterviewList - GetHireApplicationList + - GetHireAttachment + - GetHireAttachmentPreview + - GetHireEmployee + - GetHireEmployeeByApplication - GetHireEvaluationList - - GetHireQuestionnaireList + - GetHireInterviewByTalent - GetHireInterviewList - - CreateHireOffer - - UpdateHireOffer - - GetHireOfferByApplication + - GetHireInterviewRecord + - GetHireInterviewRecordAttachment + - GetHireInterviewRecordV1 + - GetHireJob + - GetHireJobConfig + - GetHireJobDetail + - GetHireJobManager + - GetHireJobProcessList + - GetHireJobRecruiter + - GetHireMinutes + - GetHireNote + - GetHireNoteList - GetHireOffer + - GetHireOfferApplicationForm + - GetHireOfferByApplication - GetHireOfferList - - UpdateHireOfferStatus - - UpdateHireOfferInternStatus - - GetHireApplicationInterviewList - GetHireOfferSchema - - UpdateHireEHRImportTask - - MakeHireTransferOnboardByApplication - - UpdateHireEmployee - - GetHireEmployeeByApplication - - GetHireEmployee - - CreateHireNote - - UpdateHireNote - - GetHireNote - - GetHireNoteList + - GetHireQuestionnaireList + - GetHireReferralAccountAssets + - GetHireReferralByApplication + - GetHireReferralWebsiteJobPost + - GetHireReferralWebsiteJobPostList - GetHireResumeSource - - CreateHireEcoAccountCustomField - - BatchUpdateHireEcoAccountCustomField - - BatchDeleteHireEcoAccountCustomField - - CreateHireEcoBackgroundCheckCustomField - - BatchUpdateHireEcoBackgroundCheckCustomField - - BatchDeleteHireEcoBackgroundCheckCustomField - - CreateHireEcoBackgroundCheckPackage - - BatchUpdateHireEcoBackgroundCheckPackage - - BatchDeleteHireEcoBackgroundCheckPackage + - GetHireRole + - GetHireTalent + - GetHireTalentFolderList + - GetHireTalentList + - GetHireTalentV2 + - GetHireWebsiteDeliveryTask + - GetHireWebsiteJobPost + - ListHireBackgroundCheckOrder + - ListHireEvaluationTask + - ListHireExamMarkingTask + - ListHireExternalApplication + - ListHireInterviewFeedbackForm + - ListHireInterviewRecord + - ListHireInterviewRecordV1 + - ListHireInterviewRegistrationSchema + - ListHireInterviewRoundType + - ListHireInterviewTask + - ListHireInterviewer + - ListHireJob + - ListHireJobFunction + - ListHireJobRequirement + - ListHireJobRequirementByID + - ListHireJobRequirementSchema + - ListHireJobSchema + - ListHireJobType + - ListHireLocation + - ListHireOfferApplicationForm + - ListHireOfferApprovalTemplate + - ListHirePortalApplySchema + - ListHireRegistrationSchema + - ListHireRole + - ListHireSubject + - ListHireTalentTag + - ListHireTerminationReason + - ListHireTodo + - ListHireTripartiteAgreement + - ListHireUserRole + - ListHireWebsite + - ListHireWebsiteChannel + - ListHireWebsiteJobPost + - MakeHireTransferOnboardByApplication + - OpenHireJob + - QueryHireAgency + - QueryHireLocation + - QueryHireTalentObject + - ReconcileHireReferralAccount + - RemoveHireTalentToFolder + - SearchHireDiversityInclusion + - SearchHireJobPublishRecord + - SearchHireReferral + - SearchHireTalentOperationLog + - SearchHireTalentPool + - SearchHireTest + - SearchHireWebsiteJobPost + - TerminateHireApplication + - TransferHireApplicationStage + - UpdateHireEHRImportTask - UpdateHireEcoBackgroundCheckProgress - UpdateHireEcoBackgroundCheckResult - - CancelHireEcoBackgroundCheck - - CreateHireEcoExamPaper - - BatchUpdateHireEcoExamPaper - - BatchDeleteHireEcoExamPaper - - CreateHireEcoExamLoginInfo + - UpdateHireEmployee + - UpdateHireExternalApplication + - UpdateHireExternalBackgroundCheck + - UpdateHireExternalInterview + - UpdateHireExternalInterviewAssessment + - UpdateHireExternalOffer + - UpdateHireInterviewer + - UpdateHireJob + - UpdateHireJobConfig + - UpdateHireJobRequirement + - UpdateHireNote + - UpdateHireOffer + - UpdateHireOfferCustomField + - UpdateHireOfferInternStatus + - UpdateHireOfferStatus + - UpdateHireTalentExternalInfo + - UpdateHireTripartiteAgreement + - UpdateHireWebsiteChannel - UpdateHiredEcoExamResult - - CreateHireReferralAccount - - DeactivateHireReferralAccount - WithdrawHireReferralAccount - - ReconcileHireReferralAccount - - GetHireTalentList - HumanAuth + - CreateIdentity + - CropFaceVerifyImage - GetFaceVerifyAuthResult - UploadFaceVerifyImage - - CropFaceVerifyImage - - CreateIdentity - Jssdk - - GetJssdkTicket - GenerateJssdkSignature + - GetJssdkTicket - Lingo + - BatchHighlightLingoEntity - CreateLingoDraft - - UpdateLingoDraft - - DeleteLingoEntity - CreateLingoEntity - - UpdateLingoEntity + - DeleteLingoEntity + - DownloadLingoFile + - ExtractLingoEntity + - GetLingoClassificationList - GetLingoEntity - GetLingoEntityList + - GetLingoRepoList + - HighlightLingoEntity - MatchLingoEntity - SearchLingoEntity - - HighlightLingoEntity - - ExtractLingoEntity - - GetLingoClassificationList - - GetLingoRepoList + - UpdateLingoDraft + - UpdateLingoEntity - UploadLingoFile - - DownloadLingoFile - MDM - BindMDMUserAuthDataRelation + - GetMDMBatchCountryRegion + - ListMDMCountryRegion - UnbindMDMUserAuthDataRelation - Mail - - GetMailUser + - ApplyMailRule + - CreateUserMailboxMailContact + - CreateMailUserMailboxFolder + - CreateMailUserMailboxRule + - DeleteUserMailboxMailContact + - DeleteMailUserMailboxFolder + - DeleteMailUserMailboxRule + - ListUserMailboxMailContact + - GetMailUserMailboxEventSubscription + - ListMailUserMailboxFolder + - GetMailUserMailboxMessage + - ListMailUserMailboxMessage + - GetMailMessageSubscription + - ListMailUserMailboxRule + - CreateMailUserMailboxRuleReorder + - CreateMailUserMailboxMessageSend + - SubscribeMailUserMailboxEvent + - SubscribeMailMessage + - UnsubscribeMailUserMailboxEvent + - UnsubscribeMailUserMailboxEvent + - UpdateUserMailboxMailContact + - UpdateMailUserMailboxFolder + - UpdateMailUserMailboxRule + - BatchCreateMailGroupManager + - BatchCreateMailGroupMember + - BatchCreateMailGroupPermissionMember + - BatchCreatePublicMailboxMember + - BatchDeleteMailGroupManager + - BatchDeleteMailGroupMember + - BatchDeleteMailGroupPermissionMember + - BatchDeletePublicMailboxMember + - ClearPublicMailboxMember - CreateMailGroup + - CreateMailGroupAlias + - CreateMailGroupMember + - CreateMailGroupPermissionMember + - CreateMailPublicMailboxAlias + - CreateMailUserMailboxAlias + - CreatePublicMailbox + - CreatePublicMailboxMember - DeleteMailGroup - - UpdateMailGroupPatch - - UpdateMailGroup + - DeleteMailGroupAlias + - DeleteMailGroupMember + - DeleteMailGroupPermissionMember + - DeleteMailPublicMailboxAlias + - DeleteMailUserMailbox + - DeleteMailUserMailboxAlias + - DeletePublicMailbox + - DeletePublicMailboxMember + - DownloadMailUserMailboxMessageAttachmentURL - GetMailGroup + - GetMailGroupAliasList - GetMailGroupList - - BatchCreateMailGroupManager - - BatchDeleteMailGroupManager - GetMailGroupManagerList - - CreateMailGroupMember - - DeleteMailGroupMember - GetMailGroupMember - GetMailGroupMemberList - - BatchCreateMailGroupMember - - BatchDeleteMailGroupMember - - CreateMailGroupPermissionMember - - DeleteMailGroupPermissionMember - GetMailGroupPermissionMember - GetMailGroupPermissionMemberList - - BatchCreateMailGroupPermissionMember - - BatchDeleteMailGroupPermissionMember - - CreateMailGroupAlias - - GetMailGroupAliasList - - DeleteMailGroupAlias - - CreatePublicMailbox + - GetMailPublicMailboxAliasList + - GetMailUser + - GetMailUserMailboxAliasList + - GetMailUserMailboxMessageByCard - GetPublicMailbox - GetPublicMailboxList - - UpdatePublicMailboxPatch - - UpdatePublicMailbox - - DeletePublicMailbox - - CreatePublicMailboxMember - GetPublicMailboxMember - GetPublicMailboxMemberList - - BatchCreatePublicMailboxMember - - BatchDeletePublicMailboxMember - - DeletePublicMailboxMember - - ClearPublicMailboxMember - - CreateMailPublicMailboxAlias - - GetMailPublicMailboxAliasList - - DeleteMailPublicMailboxAlias - - CreateMailUserMailboxAlias - - DeleteMailUserMailboxAlias - - GetMailUserMailboxAliasList - - DeleteMailUserMailbox + - RemoveMailPublicMailboxToRecycleBin + - UpdateMailGroup + - UpdateMailGroupPatch + - UpdatePublicMailbox + - UpdatePublicMailboxPatch +- MeetingRoom + - GetMeetingRoomCustomization - Message - - SendEphemeralMessage - - SendUrgentAppMessage - - SendUrgentSmsMessage - - SendUrgentPhoneMessage - - SendRawMessageOld + - CreateAppFeedCard + - CreateIMTagRelation + - DeleteAppFeedCard + - ListIMTagRelation + - UpdateAppFeedCard + - DeleteIMTagRelation + - UpdateAppFeedCardButton + - InstantReminderAppFeedCard + - BatchDeleteMessage - BatchSendOldRawMessage - - SendRawMessage - - ReplyRawMessage - - UpdateMessageEdit + - BatchUpdateURLPreview + - CreateIMMessagePushFollowUp + - CreateIMTag + - CreateMessagePin + - CreateMessageReaction + - DeleteEphemeralMessage - DeleteMessage + - DeleteMessagePin + - DeleteMessageReaction - ForwardMessage - - MergeForwardMessage - ForwardThreadMessage - - BatchDeleteMessage - - UpdateMessage - - UpdateMessageDelay - - GetMessageReadUserList - - GetBatchSentMessageReadUser - GetBatchSentMessageProgress - - GetMessageList - - GetMessageFile + - GetBatchSentMessageReadUser - GetMessage - - DeleteEphemeralMessage - - CreateMessageReaction - - GetMessageReactionList - - DeleteMessageReaction - - CreateMessagePin - - DeleteMessagePin + - GetMessageFile + - GetMessageList - GetMessagePinList + - GetMessageReactionList + - GetMessageReadUserList - GetMessageSpecialFocusList - GetMessageSpecialFocusUnread - - BatchUpdateURLPreview - - CreateAppFeedCard - - CreateIMTag - - CreateIMTagRelation - - DeleteAppFeedCard - - DeleteIMTagRelation - - InstantReminderAppFeedCard - - ListIMTagRelation - MGetIMTag + - MergeForwardMessage - Reply + - ReplyRawMessage - Send - - UpdateAppFeedCard - - UpdateAppFeedCardButton + - SendEphemeralMessage + - SendRawMessage + - SendRawMessageOld + - SendUrgentAppMessage + - SendUrgentPhoneMessage + - SendUrgentSmsMessage + - UpdateIMFeedCardBotTimeSentive - UpdateIMTag + - UpdateMessage + - UpdateMessageDelay + - UpdateMessageEdit - Mina - MinaCodeToSession - Minutes - - GetMinutesStatistics - GetMinutesMinute + - GetMinutesMinuteMedia + - GetMinutesMinuteTranscript + - GetMinutesStatistics +- Moments + - GetMomentsPost - OKR + - GetOKRReview + - BatchGetOKR + - BatchUpdateOKRMetricSourceTableItem - CreateOKRPeriod - - UpdateOKRPeriod + - CreateOKRProgressRecord + - DeleteOKRProgressRecord + - GetOKRMetricSourceList + - GetOKRMetricSourceTableItem + - GetOKRMetricSourceTableItemList + - GetOKRMetricSourceTableList - GetOKRPeriodList - GetOKRPeriodRuleList - - BatchGetOKR + - GetOKRProgressRecord - GetUserOKRList - - DeleteOKRProgressRecord + - UpdateOKRMetricSourceTableItem + - UpdateOKRPeriod - UpdateOKRProgressRecord - - GetOKRProgressRecord - - CreateOKRProgressRecord - UploadOKRImage - - GetOKRMetricSourceList - - GetOKRMetricSourceTableList - - BatchUpdateOKRMetricSourceTableItem - - UpdateOKRMetricSourceTableItem - - GetOKRMetricSourceTableItem - - GetOKRMetricSourceTableItemList - - GetOKRReview - Passport + - CreatePassportSessionLogout - GetPassportSession +- Payroll + - CreatePayrollDatasourceRecordSave + - CreatePayrollPaymentActivityArchive + - ListPayrollAcctItem + - ListPayrollCostAllocationDetail + - ListPayrollCostAllocationPlan + - ListPayrollCostAllocationReport + - ListPayrollDatasource + - ListPayrollPaygroup + - ListPayrollPaymentActivity + - ListPayrollPaymentActivityDetail + - QueryPayrollDatasourceRecord + - QueryPayrollPaymentDetail - Performance + - CreatePerformanceAdditionalInformationImport + - CreatePerformanceMetricDetailImport + - CreatePerformanceUserGroupUserRelWrite + - DeletePerformanceAdditionalInformationsBatch + - GetPerformanceReviewData - GetPerformanceSemesterList - - GetPerformanceStageTaskByUser - GetPerformanceStageTaskByPage - - GetPerformanceReviewData + - GetPerformanceStageTaskByUser + - ListPerformanceMetricTag + - QueryPerformanceActivity + - QueryPerformanceAdditionalInformation + - QueryPerformanceIndicator + - QueryPerformanceMetricDetail + - QueryPerformanceMetricField + - QueryPerformanceMetricLib + - QueryPerformanceMetricTemplate + - QueryPerformanceQuestion + - QueryPerformanceReviewData + - QueryPerformanceReviewTemplate + - QueryPerformanceReviewee + - QueryPerformanceUserInfo - PersonalSettings + - BatchClosePersonalSettingsSystemStatus + - BatchOpenPersonalSettingsSystemStatus - CreatePersonalSettingsSystemStatus - DeletePersonalSettingsSystemStatus - - UpdatePersonalSettingsSystemStatus - GetPersonalSettingsSystemStatusList - - BatchOpenPersonalSettingsSystemStatus - - BatchClosePersonalSettingsSystemStatus + - UpdatePersonalSettingsSystemStatus - Report - QueryReportRule - - QueryReportTask - RemoveReportView + - QueryReportTask - Search - - SearchMessage - - SearchApp - - CreateSearchDataSource - - GetSearchDataSource - - UpdateSearchDataSource - - GetSearchDataSourceList - - DeleteSearchDataSource - BatchCreateSearchDataSourceItem + - CreateSearchDataSource - CreateSearchDataSourceItem - - GetSearchDataSourceItem + - CreateSearchSchema + - DeleteSearchDataSource - DeleteSearchDataSourceItem - - UpdateSearchSchema - DeleteSearchSchema + - GetSearchDataSource + - GetSearchDataSourceItem + - GetSearchDataSourceList - GetSearchSchema - - CreateSearchSchema + - SearchApp + - SearchMessage + - SearchSearchDocWiki + - UpdateSearchDataSource + - UpdateSearchSchema +- SecurityAndCompliance + - CreateSecurityAndComplianceDeviceRecord + - DeleteSecurityAndComplianceDeviceRecord + - GetSecurityAndComplianceDeviceRecord + - GetSecurityAndComplianceDeviceRecordMine + - ListSecurityAndComplianceDeviceRecord + - ListSecurityAndComplianceOpenapiLogData + - UpdateSecurityAndComplianceDeviceApplyRecord + - UpdateSecurityAndComplianceDeviceRecord - Task - - CreateTaskFollower - - DeleteTaskFollower - - BatchDeleteTaskFollower - - GetTaskFollowerList - - CreateTaskCollaborator - - DeleteTaskCollaborator - - BatchDeleteTaskCollaborator - - GetTaskCollaboratorList - - CreateTaskReminder - - GetTaskReminderList - - DeleteTaskReminder - - CreateTask - - GetTask - - GetTaskList - - DeleteTask - - UpdateTask - - CompleteTask - - UncompleteTask - - CreateTaskComment - - GetTaskComment - - GetTaskCommentList - - DeleteTaskComment - - UpdateTaskComment - - AddTaskCustomField - AddTaskDependency - AddTaskMember - AddTaskReminder - AddTaskTasklist - AddTaskTasklistMember + - CreateTaskSubtask + - GetTaskTaskListOfSection + - GetTaskTaskListOfTasklist + - GetTaskSubtaskList + - RemoveTaskDependency + - RemoveTaskMember + - RemoveTaskReminder + - RemoveTaskTasklist + - RemoveTaskTasklistMember + - AddTaskCustomField + - BatchDeleteTaskCollaborator + - BatchDeleteTaskFollower + - CompleteTask + - CreateTask + - CreateTaskCollaborator + - CreateTaskComment + - CreateTaskCommentV2 + - CreateTaskCustomField - CreateTaskCustomFieldOption + - CreateTaskFollower + - CreateTaskReminder - CreateTaskSection - - CreateTaskSubtask - CreateTaskTasklist - CreateTaskTasklistActivitySubscription + - DeleteTask - DeleteTaskAttachment + - DeleteTaskCollaborator + - DeleteTaskComment + - DeleteTaskCommentV2 + - DeleteTaskFollower + - DeleteTaskReminder - DeleteTaskSection - DeleteTaskTasklist - DeleteTaskTasklistActivitySubscription + - GetTask - GetTaskAttachment - GetTaskAttachmentList + - GetTaskCollaboratorList + - GetTaskComment + - GetTaskCommentV2 + - GetTaskCustomField + - GetTaskFollowerList + - GetTaskList + - GetTaskReminderList - GetTaskSection - GetTaskSectionList - - GetTaskSubtaskList - - GetTaskTaskListOfSection - - GetTaskTaskListOfTasklist - GetTaskTasklist - GetTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscriptionList - GetTaskTasklistList + - GetTaskTasklists + - ListTaskComment + - ListTaskCustomField - RemoveTaskCustomField - - RemoveTaskDependency - - RemoveTaskMember - - RemoveTaskReminder - - RemoveTaskTasklist - - RemoveTaskTasklistMember + - UncompleteTask + - UpdateTask + - UpdateTaskComment + - UpdateTaskCommentV2 + - UpdateTaskCustomField - UpdateTaskCustomFieldOption - UpdateTaskSection - UpdateTaskTasklist - UpdateTaskTasklistActivitySubscription - UploadTaskAttachment - TaskV1 + - CreateTaskV1 + - DeleteTaskV1 + - GetTaskV1CommentList + - GetTaskV1 + - GetTaskV1List + - UpdateTaskV1 - BatchDeleteTaskV1Collaborator - BatchDeleteTaskV1Follower - CompleteTaskV1 - - CreateTaskV1 - CreateTaskV1Collaborator - CreateTaskV1Comment - CreateTaskV1Follower - CreateTaskV1Reminder - - DeleteTaskV1 - DeleteTaskV1Collaborator - DeleteTaskV1Comment - DeleteTaskV1Follower - DeleteTaskV1Reminder - GetTaskFollowerV1List - - GetTaskV1 - GetTaskV1CollaboratorList - GetTaskV1Comment - - GetTaskV1CommentList - - GetTaskV1List - GetTaskV1ReminderList - UncompleteTaskV1 - - UpdateTaskV1 - UpdateTaskV1Comment - Tenant - - GetTenantProductAssignInfo - GetTenant + - GetTenantProductAssignInfo +- TrustParty + - GetTrustPartyCollaborationTenant + - GetTrustPartyCollaborationTenantCollaborationDepartment + - GetTrustPartyCollaborationTenantCollaborationUser + - GetTrustPartyCollaborationTenantVisibleOrganization + - ListTrustPartyCollaborationTenant - VC + - QueryVCRoomConfig - ApplyVCReserve - - UpdateVCReserve - - DeleteVCReserve - - GetVCReserve - - GetVCReserveActiveMeeting - - GetVCMeeting - - ListVCMeetingByNo - - InviteVCMeeting - - KickoutVCMeeting - - SetVCHostMeeting - - EndVCMeeting - - StartVCMeetingRecording - - StopVCMeetingRecording - - GetVCMeetingRecording - - SetVCPermissionMeetingRecording - - GetVCDailyReport - - GetVCTopUserReport - - GetVCRoomList - - GetVCRoom - BatchGetVCRoom - - CreateVCRoom - - UpdateVCRoom - - DeleteVCRoom - - SearchVCRoom - - GetVCRoomLevelList - - GetVCRoomLevel - BatchGetVCRoomLevel + - CreateVCRoom - CreateVCRoomLevel - - UpdateVCRoomLevel + - DeleteVCReserve + - DeleteVCRoom - DeleteVCRoomLevel - - SearchVCRoomLevel - - SetVCScopeConfig - - GetVCScopeConfig - - GetVCReserveConfig - - UpdateVCReserveConfig - - GetVCReserveConfigForm - - UpdateVCReserveConfigForm - - GetVCReserveConfigAdmin - - UpdateVCReserveConfigAdmin - - GetVCReserveConfigDisableInform - - UpdateVCReserveConfigDisableInform + - DownloadVCExportFile + - EndVCMeeting - ExportVCMeetingList - ExportVCParticipantList - ExportVCParticipantQualityList - ExportVCResourceReservationList - - GetVCExportTask - - DownloadVCExportFile - GetVCAlertList + - GetVCDailyReport + - GetVCExportTask + - GetVCMeeting - GetVCMeetingList + - GetVCMeetingRecording - GetVCParticipantList - GetVCParticipantQualityList + - GetVCReserve + - GetVCReserveActiveMeeting + - GetVCReserveConfig + - GetVCReserveConfigAdmin + - GetVCReserveConfigDisableInform + - GetVCReserveConfigForm - GetVCResourceReservationList + - GetVCRoom + - GetVCRoomLevel + - GetVCRoomLevelList + - GetVCRoomList + - GetVCScopeConfig + - GetVCTopUserReport + - InviteVCMeeting + - KickoutVCMeeting + - ListVCMeetingByNo + - SearchVCRoom + - SearchVCRoomLevel + - SetVCHostMeeting + - SetVCPermissionMeetingRecording + - SetVCRoomConfig + - SetVCRoomConfigCheckboardAccessCode + - SetVCRoomConfigRoomAccessCode + - SetVCScopeConfig + - StartVCMeetingRecording + - StopVCMeetingRecording + - UpdateVCReserve + - UpdateVCReserveConfig + - UpdateVCReserveConfigAdmin + - UpdateVCReserveConfigDisableInform + - UpdateVCReserveConfigForm + - UpdateVCRoom + - UpdateVCRoomLevel +- VCMeeting + - GetVCMeetingDefaultBuildingBatchGet + - GetVCMeetingDefaultBuildingBatchGetID + - GetVCMeetingDefaultRoomBatchGet + - GetVCMeetingDefaultRoomBatchGetID + - CreateVCMeetingDefaultBuildingCreate + - CreateVCMeetingDefaultRoomCreate + - CreateVCMeetingDefaultBuildingDelete + - CreateVCMeetingDefaultRoomDelete + - ListVCMeetingDefaultBuilding + - ListVCMeetingDefaultCountry + - ListVCMeetingDefaultDistrict + - ListVCMeetingDefaultRoom + - CreateVCMeetingDefaultBuildingUpdate + - CreateVCMeetingDefaultRoomUpdate - Verification - GetVerification diff --git a/README_CN.md b/README_CN.md index 8a697866..6e9a95b6 100644 --- a/README_CN.md +++ b/README_CN.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## 支持的接口 -API 总数: 1120, 事件总数: 152 +API 总数: 1621, 事件总数: 153
@@ -46,1317 +46,1834 @@ API 总数: 1120, 事件总数: 152 - ACS - - DeleteACSVisitor + - CreateACSRuleExternal - CreateACSVisitor + - DeleteACSRuleExternal + - DeleteACSVisitor - DeviceBindACSRuleExternal + - GetACSAccessRecordList + - GetACSAccessRecordPhoto + - GetACSDeviceList - GetACSRuleExternal - - DeleteACSRuleExternal - - CreateACSRuleExternal - - UpdateACSUser - GetACSUser + - GetACSUserFace - GetACSUserList + - UpdateACSUser - UpdateACSUserFace - - GetACSUserFace - - GetACSDeviceList - - GetACSAccessRecordList - - GetACSAccessRecordPhoto - AI + - DetectFaceAttributes + - DetectTextLanguage + - ExtractAIContractField - ParseAIResume - - RecognizeAIVehicleInvoice + - RecognizeAIBankCard + - RecognizeAIBusinessCard + - RecognizeAIBusinessLicense + - RecognizeAIChinesePassport + - RecognizeAIDrivingLicense + - RecognizeAIFoodManageLicense + - RecognizeAIFoodProduceLicense - RecognizeAIHealthCertificate - RecognizeAIHkmMainlandTravelPermit + - RecognizeAITaxiInvoice + - RecognizeAITrainInvoice - RecognizeAITwMainlandTravelPermit - - RecognizeAIChinesePassport - - RecognizeAIBankCard + - RecognizeAIVatInvoice + - RecognizeAIVehicleInvoice - RecognizeAIVehicleLicense - - RecognizeAITrainInvoice - - RecognizeAITaxiInvoice - RecognizeAiidCard - - RecognizeAIFoodProduceLicense - - RecognizeAIFoodManageLicense - - RecognizeAIDrivingLicense - - RecognizeAIVatInvoice - - RecognizeAIBusinessLicense - - ExtractAIContractField - - RecognizeAIBusinessCard - RecognizeBasicImage - - RecognizeSpeechStream - RecognizeSpeechFile + - RecognizeSpeechStream - TranslateText - - DetectTextLanguage - - DetectFaceAttributes - APaaS - - AddAssigneeAPaaSApprovalTask + - AddAPaaSApprovalTaskAssignee - AgreeAPaaSApprovalTask + - BatchCreateAPaaSApplicationObjectRecord + - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization + - BatchCreateAPaaSApplicationRoleMemberAuthorization + - BatchDeleteAPaaSApplicationObjectRecord + - BatchQueryAPaaSApplicationObjectRecord + - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization + - BatchRemoveAPaaSApplicationRoleMemberAuthorization + - BatchUpdateAPaaSApplicationObjectRecord + - CreateAPaaSApplicationFlowExecute + - CreateAPaaSApplicationFunctionInvoke + - CreateAPaaSApplicationObjectOqlQuery + - CreateAPaaSApplicationObjectRecord + - CreateAPaaSApprovalInstanceCancel + - CreateAPaaSUserTaskCc + - CreateAPaaSUserTaskChatGroup + - CreateAPaaSUserTaskExpediting + - CreateAPaaSUserTaskRollback + - CreateAPaaSUserTaskRollbackPoints + - CreateAPaaSWorkspaceSqlCommands + - CreateAPaaSWorkspaceTableRecordsPost + - DeleteAPaaSApplicationObjectRecord + - DeleteAPaaSWorkspaceTableRecordsDelete + - GetAPaaSApplicationAuditLog + - GetAPaaSApplicationAuditLogDataChangeLogDetail + - GetAPaaSApplicationEnvironmentVariable + - GetAPaaSApplicationRoleMember + - GetAPaaSWorkspaceEnumGet + - GetAPaaSWorkspaceTableGet + - GetAPaaSWorkspaceTableRecordsGet + - GetAPaaSWorkspaceViewViewsGet + - ListAPaaSApp + - ListAPaaSApplicationAuditLogAuditLog + - ListAPaaSApplicationAuditLogDataChangeLogs + - ListAPaaSSeatActivity + - ListAPaaSSeatAssignment + - ListAPaaSWorkspaceEnum + - ListAPaaSWorkspaceTable + - QueryAPaaSApplicationEnvironmentVariable + - QueryAPaaSApplicationObjectRecord + - QueryAPaaSUserTask - RejectAPaaSApprovalTask + - SearchAPaaSApplicationObject - TransferAPaaSApprovalTask + - UpdateAPaaSApplicationObjectRecord + - UpdateAPaaSWorkspaceTableRecordsBatchUpdate + - UpdateAPaaSWorkspaceTableRecordsPatch - Admin - AdminResetPassword + - CreateAdminBadge + - CreateAdminBadgeGrant + - DeleteAdminBadgeGrant + - GetAdminBadge + - GetAdminBadgeGrant + - GetAdminBadgeGrantList + - GetAdminBadgeList - GetAdminDeptStats - GetAdminUserStats - - UploadAdminBadgeImage - - CreateAdminBadge - UpdateAdminBadge - - GetAdminBadgeList - - GetAdminBadge - - CreateAdminBadgeGrant - UpdateAdminBadgeGrant - - GetAdminBadgeGrantList - - GetAdminBadgeGrant - - DeleteAdminBadgeGrant + - UploadAdminBadgeImage +- Aily + - CreateAilyAppDataAsset + - CreateAilyAppKnowledgeAsk + - CreateAilyAppSkillStart + - CreateAilySession + - CreateAilySessionAilyMessage + - CreateAilySessionRun + - CreateAilySessionRunCancel + - DeleteAilyAppDataAsset + - DeleteAilySession + - GetAilyAppDataAsset + - GetAilyAppSkill + - GetAilySession + - GetAilySessionAilyMessage + - GetAilySessionRun + - ListAilyAppDataAsset + - ListAilyAppDataAssetTag + - ListAilyAppSkill + - ListAilySessionAilyMessage + - ListAilySessionRun + - UpdateAilySession + - UploadAilyAppDataAssetFile - AppLink - - OpenNativeApp - - OpenLark - - OpenScan - - OpenWorkbench - - OpenMiniProgram - - OpenWebApp - - OpenChat + - OpenBot - OpenCalender - - OpenCalenderView - - OpenCalenderEventCreate - OpenCalenderAccount + - OpenCalenderEventCreate + - OpenCalenderView + - OpenChat - OpenDocs - - OpenBot + - OpenLark + - OpenMiniProgram + - OpenNativeApp - OpenSSOLogin - - OpenWebURL + - OpenScan - OpenTask - OpenTaskCreate - OpenTaskDetail - OpenTaskTab + - OpenWebApp + - OpenWebURL + - OpenWorkbench - Application - - SearchApplicationWorkplaceAccessData - - SearchApplicationCustomWorkplaceAccessData - - SearchApplicationWorkplaceBlockAccessData + - CheckApplicationVisibleWhiteBlackList + - CheckUserIsInApplicationPaidScope + - CreateApplicationAppUsageMessagePushOverview + - CreateApplicationScopeApply + - GetApplication + - GetApplicationAppAdminUserList + - GetApplicationAppList + - GetApplicationAppVisibility + - GetApplicationCollaborators + - GetApplicationContactsRangeConfiguration - GetApplicationFavourite + - GetApplicationFeedbackList + - GetApplicationOrder + - GetApplicationOrderList - GetApplicationRecommend - GetApplicationRecommendRuleList - - IsApplicationUserAdmin + - GetApplicationUnderAuditList + - GetApplicationUsageDepartmentOverview + - GetApplicationUsageOverview + - GetApplicationUsageTrend - GetApplicationUserAdminScope - - GetApplicationAppVisibility - - GetApplicationContactsRangeConfiguration - - UpdateApplicationContactsRangeConfiguration - GetApplicationUserVisibleApp - - CheckApplicationVisibleWhiteBlackList - - GetApplicationAppList - - UpdateApplicationAppVisibility - - UpdateApplicationAppVisibilityV6 - - UpdateApplicationAppManagement - - GetApplicationAppAdminUserList - - CheckUserIsInApplicationPaidScope - - GetApplicationOrderList - - GetApplicationOrder - - GetApplicationUnderAuditList - - GetApplication - GetApplicationVersion - - GetApplicationVersionList - GetApplicationVersionContactsRangeSuggest - - UpdateApplicationVersion + - GetApplicationVersionList + - IsApplicationUserAdmin + - ListApplication + - ListApplicationScope + - SearchApplicationCustomWorkplaceAccessData + - SearchApplicationWorkplaceAccessData + - SearchApplicationWorkplaceBlockAccessData + - SetApplicationAppBadge - UpdateApplication - - GetApplicationUsageDepartmentOverview - - GetApplicationUsageOverview - - GetApplicationUsageTrend + - UpdateApplicationAppManagement + - UpdateApplicationAppVisibility + - UpdateApplicationAppVisibilityV6 + - UpdateApplicationCollaborators + - UpdateApplicationContactsRangeConfiguration - UpdateApplicationFeedback - - GetApplicationFeedbackList - - SetApplicationAppBadge + - UpdateApplicationOwner + - UpdateApplicationVersion - Approval + - AddApprovalInstanceSign + - ApproveApprovalInstance + - CancelApprovalInstance + - CheckApprovalExternalInstance - CreateApproval - - GetApproval - - GetApprovalList - - SubscribeApprovalSubscription - - UnsubscribeApprovalSubscription + - CreateApprovalCarbonCopy + - CreateApprovalComment + - CreateApprovalExternalApproval + - CreateApprovalExternalInstance - CreateApprovalInstance + - DeleteApprovalComment + - GetApproval + - GetApprovalComment + - GetApprovalExternalApproval + - GetApprovalExternalList - GetApprovalInstance - GetApprovalInstanceList - - CancelApprovalInstance - - CreateApprovalCarbonCopy + - GetApprovalList + - GetApprovalUserTaskList - PreviewApprovalInstance - - ApproveApprovalInstance - RejectApprovalInstance - - TransferApprovalInstance + - RemoveApprovalComment - ResubmitApprovalInstanceTask - RollbackApprovalInstance - - AddApprovalInstanceSign - - CreateApprovalComment - - GetApprovalComment - - DeleteApprovalComment - - RemoveApprovalComment - - CreateApprovalExternalApproval - - GetApprovalExternalApproval - - CreateApprovalExternalInstance - - CheckApprovalExternalInstance - - GetApprovalExternalList - - UploadApprovalFile - - UpdateApprovalMessage - - SendApprovalMessage - - SearchApprovalInstance - SearchApprovalCarbonCopy + - SearchApprovalInstance - SearchApprovalTask - - GetApprovalUserTaskList + - SendApprovalMessage + - SubscribeApprovalSubscription + - TransferApprovalInstance - TransformApprovalUserID + - UnsubscribeApprovalSubscription + - UpdateApprovalMessage + - UploadApprovalFile - Attendance - - GetAttendanceGroupList + - BatchAttendanceUserFlowDel + - BatchCreateAttendanceUserDailyShift + - BatchCreateAttendanceUserDailyShiftTemp + - BatchCreateAttendanceUserFlow + - BatchGetAttendanceUserFlow + - CreateAttendanceArchiveRuleDelReport + - CreateAttendanceArchiveRuleUserStatsFieldsQuery - CreateAttendanceGroup - - SearchAttendanceGroup - - GetAttendanceGroup + - CreateAttendanceShift + - CreateAttendanceUserApproval + - CreateAttendanceUserTaskRemedy - DeleteAttendanceGroup - - GetAttendanceShiftList - - GetAttendanceShift - - GetAttendanceShiftDetail - DeleteAttendanceShift - - UpdateAttendanceLeaveAccrualRecord + - DownloadAttendanceFile + - GetAttendanceGroup + - GetAttendanceGroupList - GetAttendanceLeaveEmployExpireRecord - - CreateAttendanceShift + - GetAttendanceShift + - GetAttendanceShiftDetail + - GetAttendanceShiftList + - GetAttendanceUserApproval - GetAttendanceUserDailyShift - - BatchCreateAttendanceUserDailyShift + - GetAttendanceUserFlow + - GetAttendanceUserSettingList + - GetAttendanceUserStatsData - GetAttendanceUserStatsField - GetAttendanceUserStatsView - - UpdateAttendanceUserStatsView - - GetAttendanceUserStatsData - - GetAttendanceUserApproval - - CreateAttendanceUserApproval - - UpdateAttendanceRemedyApproval - - BatchGetAttendanceUserFlow - - GetAttendanceUserFlow - GetAttendanceUserTask - - BatchCreateAttendanceUserFlow - - GetAttendanceUserTaskRemedyAllowedRemedyList - GetAttendanceUserTaskRemedy - - CreateAttendanceUserTaskRemedy - - GetAttendanceUserSettingList + - GetAttendanceUserTaskRemedyAllowedRemedyList + - ListAttendanceArchiveRule + - ListAttendanceGroupUser + - SearchAttendanceGroup + - UpdateAttendanceLeaveAccrualRecord + - UpdateAttendanceRemedyApproval - UpdateAttendanceUserSetting - - DownloadAttendanceFile + - UpdateAttendanceUserStatsView + - UploadAttendanceArchiveRuleReport - UploadAttendanceFile - Auth - - ResendAppTicket - - GetAccessToken - - RefreshAccessToken - - GetUserInfo - GenOAuthURL + - GetAccessToken - GetAppAccessToken - GetAppTicket - GetTenantAccessToken + - GetUserInfo + - RefreshAccessToken + - ResendAppTicket - SetAppTicket +- Authen + - CreateAuthenAccessToken + - CreateAuthenRefreshAccessToken - Baike - CreateBaikeDraft - - CreateBaikeUpdate - CreateBaikeEntity - - UpdateBaikeEntity + - CreateBaikeUpdate + - DownloadBaikeImage + - ExtractBaikeEntity + - GetBaikeClassificationList - GetBaikeEntity - GetBaikeEntityList + - HighlightBaikeEntity - MatchBaikeEntity - SearchBaikeEntity - - HighlightBaikeEntity - - ExtractBaikeEntity - - GetBaikeClassificationList + - UpdateBaikeEntity - UploadBaikeImage - - DownloadBaikeImage +- Base + - CreateBaseAppRole + - ListBaseAppRole + - UpdateBaseAppRole - Bitable - - CopyBitableDashboard - - GetBitableDashboardList - - UpdateBitableView - - GetBitableView - - GetBitableViewList - - CreateBitableView - - DeleteBitableView - - GetBitableRecord - - GetBitableRecordList - - SearchBitableRecord - - CreateBitableRecord - - UpdateBitableRecord - - DeleteBitableRecord + - BatchCreateBitableAppRoleMember - BatchCreateBitableRecord - - BatchUpdateBitableRecord + - BatchCreateBitableTable + - BatchDeleteBitableAppRoleMember - BatchDeleteBitableRecord - - GetBitableFieldList - - CreateBitableField - - UpdateBitableField - - DeleteBitableField - - GetBitableAppRoleList + - BatchDeleteBitableTable + - BatchGetBitableAppTableRecord + - BatchUpdateBitableRecord + - CopyBitableApp + - CopyBitableDashboard + - CreateBitableApp - CreateBitableAppRole - - DeleteBitableAppRole - - UpdateBitableAppRole - - BatchDeleteBitableAppRoleMember - - BatchCreateBitableAppRoleMember - - GetBitableAppRoleMemberList - CreateBitableAppRoleMember - - DeleteBitableAppRoleMember + - CreateBitableField + - CreateBitableRecord - CreateBitableTable - - BatchCreateBitableTable + - CreateBitableView + - DeleteBitableAppRole + - DeleteBitableAppRoleMember + - DeleteBitableField + - DeleteBitableRecord - DeleteBitableTable - - BatchDeleteBitableTable - - UpdateBitableTable - - GetBitableTableList - - UpdateBitableTableForm + - DeleteBitableView + - GetBitableAppRoleList + - GetBitableAppRoleMemberList + - GetBitableDashboardList + - GetBitableFieldList + - GetBitableMeta + - GetBitableRecord + - GetBitableRecordList - GetBitableTableForm - - UpdateBitableTableFormField - GetBitableTableFormFieldList - - CopyBitableApp - - CreateBitableApp - - GetBitableMeta + - GetBitableTableList + - GetBitableView + - GetBitableViewList + - ListBitableAppBlockWorkflow + - ListBitableAppWorkflow + - SearchBitableRecord + - UpdateBitableAppRole + - UpdateBitableAppWorkflow + - UpdateBitableField - UpdateBitableMeta + - UpdateBitableRecord + - UpdateBitableTable + - UpdateBitableTableForm + - UpdateBitableTableFormField + - UpdateBitableView +- Board + - CreateBoardWhiteboardNode + - CreateBoardWhiteboardNodePlantuml + - DownloadBoardWhiteboardAsImage + - GetBoardWhiteboardTheme + - UpdateBoardWhiteboardTheme - Bot - - GetBotInfo - AddBotToChat + - GetBotInfo - Calendar - - CreateCalendarACL - - DeleteCalendarACL - - GetCalendarACLList - - SubscribeCalendarACL - - UnsubscribeCalendarACL - - GetPrimaryCalendar + - BatchGetCalendarMeetingRoomFreebusy + - BatchGetCalendarMeetingRoomSummary + - ReplyCalendarMeetingRoomInstance + - BatchQueryCalendarFreebusy - CreateCalendar + - CreateCalendarACL + - CreateCalendarEvent + - CreateCalendarEventAttendee + - CreateCalendarEventMeetingChat + - CreateCalendarEventMeetingMinute + - CreateCalendarExchangeBinding + - CreateCalendarPrimarys + - CreateCalendarTimeoffEvent - DeleteCalendar + - DeleteCalendarACL + - DeleteCalendarEvent + - DeleteCalendarEventAttendee + - DeleteCalendarEventMeetingChat + - DeleteCalendarExchangeBinding + - DeleteCalendarTimeoffEvent + - GenerateCaldavConf - GetCalendar + - GetCalendarACLList + - GetCalendarEvent + - GetCalendarEventAttendeeChatMemberList + - GetCalendarEventAttendeeList + - GetCalendarEventInstanceList + - GetCalendarEventInstanceViewList + - GetCalendarEventList + - GetCalendarExchangeBinding + - GetCalendarFreeBusyList - GetCalendarList - - UpdateCalendar + - GetPrimaryCalendar + - MGetCalendar + - ReplyCalendarEvent - SearchCalendar + - SearchCalendarEvent - SubscribeCalendar - - UnsubscribeCalendar + - SubscribeCalendarACL - SubscribeCalendarChangeEvent - - UnsubscribeCalendarChangeEvent - - CreateCalendarEvent - - DeleteCalendarEvent - - GetCalendarEvent - - GetCalendarEventList - - UpdateCalendarEvent - - SearchCalendarEvent - SubscribeCalendarEvent + - UnsubscribeCalendar + - UnsubscribeCalendarACL + - UnsubscribeCalendarChangeEvent - UnsubscribeCalendarEvent - - ReplyCalendarEvent - - GetCalendarEventInstanceList - - GetCalendarEventInstanceViewList - - DeleteCalendarEventMeetingChat - - CreateCalendarEventMeetingChat - - CreateCalendarTimeoffEvent - - DeleteCalendarTimeoffEvent - - BatchGetCalendarMeetingRoomSummary - - BatchGetCalendarMeetingRoomFreebusy - - ReplyCalendarMeetingRoomInstance - - CreateCalendarEventAttendee - - DeleteCalendarEventAttendee - - GetCalendarEventAttendeeList - - GetCalendarEventAttendeeChatMemberList - - GetCalendarFreeBusyList - - GenerateCaldavConf - - CreateCalendarExchangeBinding - - DeleteCalendarExchangeBinding - - GetCalendarExchangeBinding + - UpdateCalendar + - UpdateCalendarEvent +- Cardkit + - BatchUpdateCardkitCard + - CreateCardkitCard + - CreateCardkitCardElement + - CreateCardkitCardIDConvert + - DeleteCardkitCardElement + - UpdateCardkitCard + - UpdateCardkitCardElement + - UpdateCardkitCardElementContent + - UpdateCardkitCardElementV1 + - UpdateCardkitCardSettings +- CcmDocs + - CreateCcmDocsDefaultDocsApiMeta - Chat + - AddChatMember - CreateChat - - GetChat - - GetChatOld - - UpdateChat - - DeleteChat - - GetChatListOfSelf - - SearchChat - - GetChatMemberList - - IsInChat - CreateChatManager + - CreateChatMenuTree + - CreateChatTab + - DeleteChat - DeleteChatManager - - AddChatMember - DeleteChatMember - - JoinChat - - GetChatModeration - - UpdateChatModeration - - UpdateChatTopNotice + - DeleteChatMenuTree + - DeleteChatTab - DeleteChatTopNotice - GenChatShareLink + - GetChat - GetChatAnnouncement - - UpdateChatAnnouncement - - CreateChatTab - - DeleteChatTab + - GetChatListOfSelf + - GetChatMemberList + - GetChatMenuTree + - GetChatModeration + - GetChatOld - GetChatTabList - - UpdateChatTab + - IsInChat + - JoinChat + - SearchChat + - SortChatMenuTree - SortChatTab - - CreateChatMenuTree - - DeleteChatMenuTree + - UpdateChat + - UpdateChatAnnouncement - UpdateChatMenuTree - - SortChatMenuTree - - GetChatMenuTree + - UpdateChatModeration + - UpdateChatTab + - UpdateChatTopNotice +- Compensation + - BatchCreateCompensationLumpSumPayment + - BatchCreateCompensationRecurringPayment + - BatchRemoveCompensationLumpSumPayment + - BatchRemoveCompensationRecurringPayment + - BatchUpdateCompensationLumpSumPayment + - BatchUpdateCompensationRecurringPayment + - CreateCompensationArchive + - ListCompensationSocialInsurance + - ListCompensationSocialPlan + - QueryCompensationLumpSumPayment + - QueryCompensationLumpSumPaymentDetail + - QueryCompensationRecurringPayment + - QueryCompensationSocialArchive + - QueryCompensationSocialArchiveAdjustRecord + - QueryCompensationSocialPlan - Contact - - CreateUser - - DeleteUser - - ResurrectUser - - GetUser + - AddContactGroupMember + - BatchAddContactGroupMember + - BatchAddContactV2Department + - BatchAddContactV2User + - BatchCreateContactFunctionalRoleMember + - BatchDeleteContactFunctionalRoleMember + - BatchDeleteContactGroupMember + - BatchGetDepartment - BatchGetUser - - GetUserList - - GetUserListOld - - UpdateUserPatch - - UpdateUser - BatchGetUserByID - BatchGetUserByIDOld - - SearchUserOld - - UpdateUserID - - CreateDepartment - - GetDepartment - - BatchGetDepartment - - GetDepartmentList - - UpdateDepartmentPatch - - UpdateDepartment - - GetDepartmentListOld - - GetParentDepartment - - SearchDepartment - - UpdateDepartmentID - - DeleteDepartment - - UnbindDepartmentChat + - BindContactUnitDepartment + - CreateContactFunctionalRole - CreateContactGroup - - UpdateContactGroup + - CreateContactJobFamily + - CreateContactJobLevel + - CreateContactUnit + - CreateDepartment + - CreateEmployeeTypeEnum + - CreateUser + - DeleteContactFunctionalRole - DeleteContactGroup + - DeleteContactGroupMember + - DeleteContactJobFamily + - DeleteContactJobLevel + - DeleteContactUnit + - DeleteDepartment + - DeleteEmployeeTypeEnum + - DeleteUser + - GetContactCustomAttrList + - GetContactFunctionalRoleMember + - GetContactFunctionalRoleMemberScope - GetContactGroup - GetContactGroupList - - GetContactMemberGroupList - - AddContactGroupMember - - BatchAddContactGroupMember - - DeleteContactGroupMember - - BatchDeleteContactGroupMember - GetContactGroupMember - - CreateContactFunctionalRole - - DeleteContactFunctionalRole - - UpdateContactFunctionalRole - - BatchCreateContactFunctionalRoleMember - - BatchDeleteContactFunctionalRoleMember - - UpdateContactFunctionalRoleMemberScope - - GetContactFunctionalRoleMemberScope - - GetContactFunctionalRoleMember - - CreateContactJobLevel - - DeleteContactJobLevel - - UpdateContactJobLevel - - GetContactJobLevel - - GetContactJobLevelList - - CreateContactJobFamily - - DeleteContactJobFamily - - UpdateContactJobFamily - GetContactJobFamily - GetContactJobFamilyList + - GetContactJobLevel + - GetContactJobLevelList - GetContactJobTitle - GetContactJobTitleList + - GetContactMemberGroupList + - GetContactScopeList + - GetContactUnit + - GetContactUnitDepartmentList + - GetContactUnitList + - GetContactV2Task - GetContactWorkCity - GetContactWorkCityList + - GetDepartment + - GetDepartmentList + - GetDepartmentListOld - GetEmployeeTypeEnumList - - UpdateEmployeeTypeEnumPatch - - DeleteEmployeeTypeEnum - - CreateEmployeeTypeEnum - - GetContactCustomAttrList - - CreateContactUnit - - UpdateContactUnit - - DeleteContactUnit - - GetContactUnit - - GetContactUnitList - - BindContactUnitDepartment - - UnbindContactUnitDepartment - - GetContactUnitDepartmentList - - GetContactScopeList + - GetParentDepartment + - GetUser + - GetUserList + - GetUserListOld + - ListContactV2Role + - ResurrectUser + - SearchDepartment + - SearchUserOld + - UnbindContactUnitDepartment + - UnbindDepartmentChat + - UpdateContactFunctionalRole + - UpdateContactFunctionalRoleMemberScope + - UpdateContactGroup + - UpdateContactJobFamily + - UpdateContactJobLevel + - UpdateContactUnit + - UpdateDepartment + - UpdateDepartmentID + - UpdateDepartmentPatch + - UpdateEmployeeTypeEnumPatch + - UpdateUser + - UpdateUserID + - UpdateUserPatch - CoreHR + - GetCoreHRCompensationChangeReasonList + - GetCoreHRCompensationIndicatorList + - GetCoreHRCompensationItemList + - GetCoreHRCompensationItemCategoryList + - GetCoreHRCompensationPlanList + - QueryCoreHRCompensationArchive + - BatchGetCoreHRJobFamily + - BatchGetCoreHrbpByEmployee - SearchCoreHRNationality - SearchCoreHRBank - SearchCoreHRBankBranch - - GetCoreHRCustomField - - GetCoreHRCustomFieldList - - GetCoreHRCustomFieldObjectApiNameList - - SearchCoreHRCountryRegion - - SearchCoreHRCountryRegionSubdivision - - SearchCoreHRCity - - SearchCoreHRDistrict - - GetCoreHRCountryRegion - - GetCoreHRCountryRegionList - - GetCoreHRSubdivision - - GetCoreHRSubdivisionList - - GetCoreHRSubregion - - GetCoreHRSubregionList - - CreateCoreHREmployeeType - - DeleteCoreHREmployeeType - - UpdateCoreHREmployeeType - - GetCoreHREmployeeType - - GetCoreHREmployeeTypeList - - CreateCoreHRNationalIDType - - DeleteCoreHRNationalIDType - - UpdateCoreHRNationalIDType - - GetCoreHRNationalIDType - - GetCoreHRNationalIDTypeList - - CreateCoreHRWorkingHoursType - - DeleteCoreHRWorkingHoursType - - UpdateCoreHRWorkingHoursType - - GetCoreHRWorkingHoursType - - GetCoreHRWorkingHoursTypeList - - SearchCoreHRCurrency - - GetCoreHRCurrency - - GetCoreHRCurrencyList + - SearchCoreHRNationality + - GetCoreHRAuthorization + - MatchCoreHRCompensationStandard + - GetCoreHRAuthorizationList + - BatchQueryCoreHRDepartmentTimeline + - QueryCoreHRDepartmentTimeline + - ActiveCoreHRCostCenter + - AddCorehrAuthorizationRoleAssign + - AddCorehrCommonDataMetaDataEnumOption + - BatchCorehrWorkforcePlanDetailV2 + - BatchGetCoreHRCompany + - BatchGetCoreHRDepartment - BatchGetCoreHREmployee - - SearchCoreHREmployee - - CreateCoreHREmployment - - DeleteCoreHREmployment - - UpdateCoreHREmployment - - CreateCoreHRPerson - - UpdateCoreHRPerson - - DeleteCoreHRPerson - - UploadCoreHRPersonFile - - DownloadCoreHRPersonFile - - GetCoreHRPerson - - CreateCoreHRJobData - - DeleteCoreHRJobData - - UpdateCoreHRJobData - - GetCoreHRJobData - - QueryCoreHRJobData - BatchGetCoreHRJobData - - GetCoreHRJobDataList - - GetCoreHRDepartmentParentList - - SearchCoreHRDepartment - - CreateCoreHRDepartment - - DeleteCoreHRDepartment - - UpdateCoreHRDepartment - - GetCoreHRDepartment - - BatchGetCoreHRDepartment - - GetCoreHRDepartmentList + - BatchGetCoreHRJobLevel - BatchGetCoreHRLocation - - CreateCoreHRLocation - - DeleteCoreHRLocation - - GetCoreHRLocation - - GetCoreHRLocationList - - GetCoreHRCompany - - GetCoreHRCompanyList - - BatchGetCoreHRCompany + - BatchGetCorehrJob + - BatchGetCorehrPathway + - BatchQueryCorehrCostAllocation + - BatchQueryCorehrDefaultCostCenter + - BatchQueryCorehrEmployeesAdditionalJob + - BatchQueryCorehrWorkforcePlanDetail - CreateCoreHRCompany - - UpdateCoreHRCompany - - DeleteCoreHRCompany + - CreateCoreHRContract - CreateCoreHRCostCenter - - ActiveCoreHRCostCenter - - DeleteCoreHRCostCenter - - SearchCoreHRCostCenter - CreateCoreHRCostCenterVersion - - UpdateCoreHRCostCenterVersion - - DeleteCoreHRCostCenterVersion - - BatchGetCoreHRJobLevel - - CreateCoreHRJobLevel - - DeleteCoreHRJobLevel - - UpdateCoreHRJobLevel - - GetCoreHRJobLevel - - GetCoreHRJobLevelList - - BatchGetCoreHRJobFamily + - CreateCoreHRDepartment + - CreateCoreHREmployeeType + - CreateCoreHREmployment + - CreateCoreHRJob + - CreateCoreHRJobChange + - CreateCoreHRJobData - CreateCoreHRJobFamily + - CreateCoreHRJobLevel + - CreateCoreHRLeaveGrantingRecord + - CreateCoreHRLocation + - CreateCoreHRNationalIDType + - CreateCoreHROffboarding + - CreateCoreHRPerson + - CreateCoreHRPreHire + - CreateCoreHRProbationAssessment + - CreateCoreHRWorkingHoursType + - CreateCorehrCommonDataIDConvert + - CreateCorehrCommonDataMetaDataEditEnumOption + - CreateCorehrCompanyActive + - CreateCorehrCostAllocationVersion + - CreateCorehrCustomOrg + - CreateCorehrCustomOrgActive + - CreateCorehrDefaultCostCenterVersion + - CreateCorehrDepartmentTree + - CreateCorehrEmployee + - CreateCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesInternationalAssignment + - CreateCorehrJobChange + - CreateCorehrJobChangeRevoke + - CreateCorehrJobGrade + - CreateCorehrLeaveWorkCalendar + - CreateCorehrLeaveWorkCalendarDate + - CreateCorehrLocationActive + - CreateCorehrLocationAddress + - CreateCorehrOffboardingEdit + - CreateCorehrOffboardingRevoke + - CreateCorehrOffboardingSubmitV2 + - CreateCorehrPathway + - CreateCorehrPathwayActive + - CreateCorehrPerson + - CreateCorehrPosition + - CreateCorehrPositionActive + - CreateCorehrPositionDelPosition + - CreateCorehrPreHireComplete + - CreateCorehrPreHireRestoreFlowInstance + - CreateCorehrPreHireTransformOnboardingTask + - CreateCorehrPreHireTransitTask + - CreateCorehrPreHireWithdrawOnboarding + - CreateCorehrProbationSubmit + - CreateCorehrProbationWithdraw + - CreateCorehrProcessQueryFlowDataTemplate + - CreateCorehrProcessStart + - CreateCorehrReportDetailRowBatchdelete + - CreateCorehrReportDetailRowBatchsave + - CreateCorehrSignatureFileTerminate + - CreateCorehrWorkforcePlanDetailRowBatchdelete + - CreateCorehrWorkforcePlanDetailRowBatchsave + - DeleteCoreHRCompany + - DeleteCoreHRContract + - DeleteCoreHRCostCenter + - DeleteCoreHRCostCenterVersion + - DeleteCoreHRDepartment + - DeleteCoreHREmployeeType + - DeleteCoreHREmployment + - DeleteCoreHRJob + - DeleteCoreHRJobData - DeleteCoreHRJobFamily - - UpdateCoreHRJobFamily + - DeleteCoreHRJobLevel + - DeleteCoreHRLeaveGrantingRecord + - DeleteCoreHRLocation + - DeleteCoreHRNationalIDType + - DeleteCoreHRPerson + - DeleteCoreHRPreHire + - DeleteCoreHRProbationAssessment + - DeleteCoreHRWorkingHoursType + - DeleteCorehrCustomOrg + - DeleteCorehrDepartment + - DeleteCorehrEmployeesAdditionalJob + - DeleteCorehrEmployeesInternationalAssignment + - DeleteCorehrJobGrade + - DeleteCorehrLocationAddress + - DeleteCorehrPathway + - DeleteCorehrPreHire + - DownloadCoreHRPersonFile + - DownloadCorehrSignatureFile + - EnableDisableCoreHRProbationAssessment + - GetCoreHRCompany + - GetCoreHRCompanyList + - GetCoreHRContract + - GetCoreHRContractList + - GetCoreHRCountryRegion + - GetCoreHRCountryRegionList + - GetCoreHRCurrency + - GetCoreHRCurrencyList + - GetCoreHRCustomField + - GetCoreHRCustomFieldList + - GetCoreHRCustomFieldObjectApiNameList + - GetCoreHRDepartment + - GetCoreHRDepartmentList + - GetCoreHRDepartmentParentList + - GetCoreHREmployeeType + - GetCoreHREmployeeTypeList + - GetCoreHRJob + - GetCoreHRJobData + - GetCoreHRJobDataList - GetCoreHRJobFamily - GetCoreHRJobFamilyList - - CreateCoreHRJob - - DeleteCoreHRJob - - UpdateCoreHRJob - - GetCoreHRJobV2 - - GetCoreHRJobListV2 - - GetCoreHRJob + - GetCoreHRJobLevel + - GetCoreHRJobLevelList - GetCoreHRJobList - - CreateCoreHRPreHire - - DeleteCoreHRPreHire - - UpdateCoreHRPreHire + - GetCoreHRJobListV2 + - GetCoreHRJobV2 + - GetCoreHRLeaveBalanceList + - GetCoreHRLeaveRequestHistoryList + - GetCoreHRLeaveTypeList + - GetCoreHRLocation + - GetCoreHRLocationList + - GetCoreHRNationalIDType + - GetCoreHRNationalIDTypeList + - GetCoreHROffboardingList + - GetCoreHRPerson - GetCoreHRPreHire - GetCoreHRPreHireList - - SearchCoreHRContract - - CreateCoreHRContract - - DeleteCoreHRContract - - UpdateCoreHRContract - - GetCoreHRContract - - GetCoreHRContractList - - SearchCoreHRProbation - - EnableDisableCoreHRProbationAssessment - - CreateCoreHRProbationAssessment - - UpdateCoreHRProbationAssessment - - DeleteCoreHRProbationAssessment + - GetCoreHRProcess + - GetCoreHRProcessFormVariableData + - GetCoreHRProcessList + - GetCoreHRSecurityGroupBp + - GetCoreHRSecurityGroupList + - GetCoreHRSubdivision + - GetCoreHRSubdivisionList + - GetCoreHRSubregion + - GetCoreHRSubregionList - GetCoreHRTransferReasonList - GetCoreHRTransferTypeList - - CreateCoreHRJobChange - - SearchCoreHRJobChange - - GetCoreHROffboardingList - - CreateCoreHROffboarding - - SearchCoreHROffboarding - - CreateCoreHRLeaveGrantingRecord - - DeleteCoreHRLeaveGrantingRecord - - GetCoreHRLeaveTypeList - - GetCoreHRLeaveBalanceList - - GetCoreHRLeaveRequestHistoryList - - BatchGetCoreHrbpByEmployee + - GetCoreHRWorkingHoursType + - GetCoreHRWorkingHoursTypeList - GetCoreHrbpByDepartment - GetCoreHrbpList - - GetCoreHRSecurityGroupBp - - SearchCoreHRAssignedUser - - GetCoreHRAuthorization - - GetCoreHRAuthorizationList - - GetCoreHRSecurityGroupList - - GetCoreHRProcessList - - GetCoreHRProcess - - GetCoreHRProcessFormVariableData - - MatchCoreHRCompensationStandard - - BatchQueryCoreHRDepartmentTimeline - - GetCoreHRCompensationChangeReasonList - - GetCoreHRCompensationIndicatorList - - GetCoreHRCompensationItemCategoryList - - GetCoreHRCompensationItemList - - GetCoreHRCompensationPlanList - - QueryCoreHRCompensationArchive - - QueryCoreHRDepartmentTimeline + - GetCorehrApprovalGroups + - GetCorehrDraft + - GetCorehrLeaveCalendarByScope + - GetCorehrProcessFlowVariableData + - GetCorehrProcessFormVariableData + - ListCorehrApprover + - ListCorehrEmployeesInternationalAssignment + - ListCorehrSignatureFile + - ListCorehrSignatureFileByBizID + - ListCorehrSignatureNodeByFileID + - ListCorehrSignatureTemplateInfoWithThumbnail + - ListCorehrWorkforcePlan + - QueryCoreHRJobData - QueryCoreHRJobGrade + - QueryCorehrApprovalGroupsDepartmentChangeListByIDs + - QueryCorehrApprovalGroupsJobChangeListByIDs + - QueryCorehrApprovalGroupsPositionChangeListByIDs + - QueryCorehrCompanyMultiTimeline + - QueryCorehrCompanyRecentChange + - QueryCorehrCostCenterRecentChange + - QueryCorehrCustomOrg + - QueryCorehrCustomOrgRecentChange + - QueryCorehrDepartmentOperationLogs + - QueryCorehrDepartmentRecentChange + - QueryCorehrJobFamilyMultiTimeline + - QueryCorehrJobFamilyRecentChange + - QueryCorehrJobGradeRecentChange + - QueryCorehrJobLevelRecentChange + - QueryCorehrJobMultiTimeline + - QueryCorehrJobRecentChange + - QueryCorehrLocationMultiTimeline + - QueryCorehrLocationRecentChange + - QueryCorehrPosition + - QueryCorehrPositionRecentChange + - QueryCorehrPreHire + - QueryCorehrSignatureFile + - RemoveCorehrAuthorizationRoleAssign + - RemoveCorehrCostAllocationVersion + - RemoveCorehrDefaultCostCenterVersion + - SearchCoreHRAssignedUser + - SearchCoreHRCity + - SearchCoreHRContract + - SearchCoreHRCostCenter + - SearchCoreHRCountryRegion + - SearchCoreHRCountryRegionSubdivision + - SearchCoreHRCurrency + - SearchCoreHRDepartment + - SearchCoreHRDistrict + - SearchCoreHREmployee + - SearchCoreHRJobChange + - SearchCoreHROffboarding - SearchCoreHRPreHire + - SearchCoreHRProbation + - SearchCorehrBasicInfoLanguage + - SearchCorehrBasicInfoTimeZone + - SearchCorehrEnum + - SearchCorehrSignatureTemplate + - UpdateCoreHRCompany + - UpdateCoreHRContract + - UpdateCoreHRCostCenterVersion + - UpdateCoreHRDepartment + - UpdateCoreHREmployeeType + - UpdateCoreHREmployment + - UpdateCoreHRJob + - UpdateCoreHRJobData + - UpdateCoreHRJobFamily + - UpdateCoreHRJobLevel + - UpdateCoreHRNationalIDType + - UpdateCoreHRPerson + - UpdateCoreHRPreHire + - UpdateCoreHRProbationAssessment + - UpdateCoreHRWorkingHoursType + - UpdateCorehrAuthorizationRoleAssign + - UpdateCorehrCostAllocationVersion + - UpdateCorehrCustomOrg + - UpdateCorehrCustomOrgRule + - UpdateCorehrDefaultCostCenterVersion + - UpdateCorehrDepartment + - UpdateCorehrEmployeesAdditionalJob + - UpdateCorehrEmployeesInternationalAssignment + - UpdateCorehrJobGrade + - UpdateCorehrLocation + - UpdateCorehrLocationAddress + - UpdateCorehrPathway + - UpdateCorehrPerson + - UpdateCorehrPosition + - UpdateCorehrPreHire + - UpdateCorehrProcessApprover + - UpdateCorehrProcessExtra + - UpdateCorehrProcessRevoke + - UpdateCorehrProcessTransfer + - UpdateCorehrProcessWithdraw + - UploadCoreHRPersonFile +- Directory + - CreateDirectoryCollaborationRule + - CreateDirectoryDepartment + - CreateDirectoryDepartmentFilter + - CreateDirectoryEmployee + - CreateDirectoryEmployeeFilter + - CreateDirectoryEmployeeResurrect + - DeleteDirectoryCollaborationRule + - DeleteDirectoryDepartment + - DeleteDirectoryEmployee + - ListDirectoryCollaborationRule + - ListDirectoryCollaborationTenant + - ListDirectoryCollborationShareEntity + - MGetDirectoryDepartment + - MGetDirectoryEmployee + - SearchDirectoryDepartment + - SearchDirectoryEmployee + - UpdateDirectoryCollaborationRule + - UpdateDirectoryDepartment + - UpdateDirectoryEmployee + - UpdateDirectoryEmployeeRegular + - UpdateDirectoryEmployeeToBeResigned +- Docs + - GetDocsContent - Drive - - GetDriveRootFolderMeta - - GetDriveFileList - - GetDriveFolderMeta - - CreateDriveFolder - - GetDriveFileMeta - - CreateDriveFile + - GetWhiteboardNodeList + - CreateSpreadsheet + - AddSheetDimensionRange + - AddWikiSpaceMember + - AppendSheetValue + - BatchCreateDrivePermissionMember + - BatchDeleteDocxBlock + - BatchDeleteDocxChatAnnouncementBlockChildren + - BatchGetDriveComment + - BatchGetDriveMediaTmpDownloadURL + - BatchGetSheetValue + - BatchSetSheetStyle + - BatchSetSheetValue + - BatchUpdateDocxChatAnnouncementBlock + - BatchUpdateDocxDocumentBlock + - BatchUpdateSheet + - CheckDriveMemberPermission + - CheckDriveMemberPermissionOld - CopyDriveFile - - MoveDriveFile + - CopyWikiNode + - CreateDocx + - CreateDocxBlock + - CreateDocxChatAnnouncementBlockChildren + - CreateDocxDocumentBlockDescendant + - CreateDocxDocumentConvert + - CreateDriveComment + - CreateDriveDoc + - CreateDriveExportTask + - CreateDriveFile + - CreateDriveFileShortcut + - CreateDriveFileSubscription + - CreateDriveFileVersion + - CreateDriveFolder + - CreateDriveImportTask + - CreateDriveMemberPermission + - CreateDriveMemberPermissionOld + - CreateDrivePermissionPublicPassword + - CreateSheetConditionFormat + - CreateSheetDataValidationDropdown + - CreateSheetFilter + - CreateSheetFilterView + - CreateSheetFilterViewCondition + - CreateSheetFloatImage + - CreateSheetProtectedDimension + - CreateWikiNode + - CreateWikiSpace + - DeleteDriveComment - DeleteDriveFile - - GetDriveFileStatistics - - CreateDriveFileShortcut - - GetDriveFileTask - - UploadDriveMedia + - DeleteDriveFileVersion + - DeleteDriveMemberPermission + - DeleteDriveMemberPermissionOld + - DeleteDrivePermissionPublicPassword + - DeleteDriveSheetFile + - DeleteSheetConditionFormat + - DeleteSheetDataValidationDropdown + - DeleteSheetDimensionRange + - DeleteSheetFilter + - DeleteSheetFilterView + - DeleteSheetFilterViewCondition + - DeleteSheetFloatImage + - DeleteSheetProtectedDimension + - DeleteWikiSpaceMember + - DownloadDriveExportTask + - DownloadDriveFile - DownloadDriveMedia - - PrepareUploadDriveMedia - - PartUploadDriveMedia + - FindSheet + - FinishUploadDriveFile - FinishUploadDriveMedia - - GetDocxDocument - - GetDocxDocumentRawContent - - GetDocxBlockListOfDocument - - CreateDocx - GetDocxBlock - - CreateDocxBlock - - UpdateDocxBlock - - BatchDeleteDocxBlock - GetDocxBlockListOfBlock - - SubscribeDriveFile - - UnsubscribeDriveFile - - GetSubscribeDriveFile - - SearchDriveFile - - DeleteDriveSheetFile - - GetDriveFolderChildren - - CreateDriveExportTask + - GetDocxBlockListOfDocument + - GetDocxChatAnnouncement + - GetDocxChatAnnouncementBlock + - GetDocxChatAnnouncementBlockChildren + - GetDocxDocument + - GetDocxDocumentRawContent + - GetDriveComment + - GetDriveCommentList + - GetDriveCommentReplyList + - GetDriveDocContent + - GetDriveDocMeta + - GetDriveDocRawContent - GetDriveExportTask - - DownloadDriveExportTask - - GetDriveFileViewRecordList - - CreateDriveFileVersion - - DeleteDriveFileVersion + - GetDriveFileList + - GetDriveFileMeta + - GetDriveFileStatistics + - GetDriveFileSubscription + - GetDriveFileTask - GetDriveFileVersion - GetDriveFileVersionList - - DownloadDriveFile - - UploadDriveFile - - PrepareUploadDriveFile - - PartUploadDriveFile - - FinishUploadDriveFile - - CreateDriveMemberPermissionOld - - TransferDriveOwnerPermission - - CheckDriveMemberPermission + - GetDriveFileViewRecordList + - GetDriveFolderChildren + - GetDriveFolderMeta + - GetDriveImportTask - GetDriveMemberPermissionList - GetDriveMemberPermissionListOld - - CreateDriveMemberPermission - - UpdateDriveMemberPermission - - DeleteDriveMemberPermission - - GetDrivePublicPermissionOld - - CreateDrivePermissionPublicPassword - - UpdateDrivePermissionPublicPassword - - DeleteDrivePermissionPublicPassword - GetDrivePublicPermission - - UpdateDrivePublicPermission + - GetDrivePublicPermissionOld - GetDrivePublicPermissionV2 - - UpdateDrivePublicPermissionV2 - - BatchGetDriveMediaTmpDownloadURL - - GetDriveCommentList - - CreateDriveComment - - GetDriveComment - - BatchGetDriveComment - - GetDriveCommentReplyList - - UpdateDriveComment - - DeleteDriveComment - - UpdateDriveCommentPatch - - GetDriveFileSubscription - - CreateDriveFileSubscription - - UpdateDriveFileSubscription - - CreateDriveDoc - - GetDriveDocContent - - UpdateDriveDocContent - - GetDriveDocRawContent - - GetDriveDocMeta - - UpdateSpreadsheet - - GetSpreadsheet - - CreateSpreadsheet - - GetSheetMeta - - UpdateSheetProperty + - GetDriveRootFolderMeta + - GetDriveSheetDefaultImportResult - GetSheet + - GetSheetConditionFormat + - GetSheetDataValidationDropdown + - GetSheetFilter + - GetSheetFilterView + - GetSheetFilterViewCondition + - GetSheetFloatImage - GetSheetList - - BatchUpdateSheet + - GetSheetMeta + - GetSheetProtectedDimension + - GetSheetValue + - GetSpreadsheet + - GetSubscribeDriveFile + - GetWikiNode + - GetWikiNodeList + - GetWikiSpace + - GetWikiSpaceList + - GetWikiTask - ImportSheet - - CreateDriveImportTask - - GetDriveImportTask + - InsertSheetDimensionRange + - ListDocxChatAnnouncementBlock + - ListDriveFileLike + - ListWikiSpaceMember + - MergeSheetCell + - MoveDocsToWiki + - MoveDriveFile - MoveSheetDimension + - MoveWikiNode + - PartUploadDriveFile + - PartUploadDriveMedia + - PrepareUploadDriveFile + - PrepareUploadDriveMedia - PrependSheetValue - - AppendSheetValue - - InsertSheetDimensionRange - - AddSheetDimensionRange - - UpdateSheetDimensionRange - - DeleteSheetDimensionRange - - GetSheetValue - - BatchGetSheetValue - - SetSheetValue - - BatchSetSheetValue + - QuerySheetFilterView + - QuerySheetFilterViewCondition + - QuerySheetFloatImage + - ReplaceSheet + - SearchDriveFile + - SearchWikiNode - SetSheetStyle - - BatchSetSheetStyle - - MergeSheetCell - - UnmergeSheetCell + - SetSheetValue - SetSheetValueImage - - FindSheet - - ReplaceSheet - - CreateSheetConditionFormat - - GetSheetConditionFormat + - SubscribeDriveFile + - TransferDriveMemberPermission + - TransferDriveOwnerPermission + - UnmergeSheetCell + - UnsubscribeDriveFile + - UpdateDocxBlock + - UpdateDriveComment + - UpdateDriveCommentPatch + - UpdateDriveDocContent + - UpdateDriveFileSubscription + - UpdateDriveMemberPermission + - UpdateDriveMemberPermissionOld + - UpdateDrivePermissionPublicPassword + - UpdateDrivePublicPermission + - UpdateDrivePublicPermissionV2 - UpdateSheetConditionFormat - - DeleteSheetConditionFormat - - CreateSheetProtectedDimension - - GetSheetProtectedDimension - - UpdateSheetProtectedDimension - - DeleteSheetProtectedDimension - - CreateSheetDataValidationDropdown - - DeleteSheetDataValidationDropdown - UpdateSheetDataValidationDropdown - - GetSheetDataValidationDropdown - - CreateSheetFilter - - DeleteSheetFilter + - UpdateSheetDimensionRange - UpdateSheetFilter - - GetSheetFilter - - CreateSheetFilterView - - DeleteSheetFilterView - UpdateSheetFilterView - - GetSheetFilterView - - QuerySheetFilterView - - CreateSheetFilterViewCondition - - DeleteSheetFilterViewCondition - UpdateSheetFilterViewCondition - - GetSheetFilterViewCondition - - QuerySheetFilterViewCondition - - CreateSheetFloatImage - - DeleteSheetFloatImage - UpdateSheetFloatImage - - GetSheetFloatImage - - QuerySheetFloatImage - - CreateWikiSpace - - GetWikiSpaceList - - GetWikiSpace - - UpdateWikiSpaceSetting - - DeleteWikiSpaceMember - - AddWikiSpaceMember - - CreateWikiNode - - GetWikiNodeList - - MoveWikiNode + - UpdateSheetProperty + - UpdateSheetProtectedDimension + - UpdateSpreadsheet - UpdateWikiNodeTitle - - CopyWikiNode - - GetWikiNode - - MoveDocsToWiki - - GetWikiTask - - DeleteDriveMemberPermissionOld - - UpdateDriveMemberPermissionOld - - TransferDriveMemberPermission - - CheckDriveMemberPermissionOld - - GetWhiteboardNodeList + - UpdateWikiSpaceSetting + - UploadDriveFile + - UploadDriveMedia - EHR - - GetEHREmployeeList - DownloadEHRAttachments + - GetEHREmployeeList - Event - GetEventOutboundIpList - EventCallback - - EventV2ElearningCourseRegistrationCreatedV2 - - EventV2ElearningCourseRegistrationUpdatedV2 - - EventV2ElearningCourseRegistrationDeletedV2 - - EventV2URLPreviewGet - - EventV2HireApplicationStageChangedV1 - - EventV2HireApplicationDeletedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrProcessUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessApproverUpdatedV2 - - EventV2CorehrProcessCcUpdatedV2 - - EventV2ContactCustomAttrEventUpdatedV3 - - EventV2ApplicationApplicationCreatedV6 + - EventV1TripApproval + - EventV1AddBot + - EventV1AddUserToChat - EventV1AppOpen - EventV1AppStatusChange - - EventV1OrderPaid - EventV1AppTicket - EventV1AppUninstalled - - EventV2ApplicationApplicationVisibilityAddedV6 - - EventV2ApplicationApplicationAppVersionPublishApplyV6 - - EventV2ApplicationApplicationAppVersionPublishRevokeV6 - - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV1ApprovalCc + - EventV1ApprovalInstance + - EventV1ApprovalTask + - EventV1ChatDisband + - EventV1LeaveApprovalRevert + - EventV1LeaveApprovalV2 + - EventV1OrderPaid - EventV1OutApproval + - EventV1P2PChatCreate + - EventV1ReceiveMessage - EventV1RemedyApproval + - EventV1RemoveBot + - EventV1RemoveUserFromChat + - EventV1RevokeAddUserFromChat - EventV1ShiftApproval - - EventV1WorkApproval - - EventV1LeaveApprovalV2 - - EventV1LeaveApprovalRevert - - EventV2DriveFileCreatedInFolderV1 - - EventV2DriveFileBitableFieldChangedV1 - - EventV2DriveFileBitableRecordChangedV1 - - EventV2DriveFileTitleUpdatedV1 - - EventV2DriveFileReadV1 - - EventV2DriveFileEditV1 - - EventV2DriveFilePermissionMemberAddedV1 - - EventV2DriveFilePermissionMemberRemovedV1 - - EventV2DriveFileTrashedV1 - - EventV2DriveFileDeletedV1 - - EventV2ApprovalApprovalUpdatedV4 - - EventV1ThirdPartyMeetingRoomEventUpdated - - EventV1ThirdPartyMeetingRoomEventDeleted - - EventV2MeetingRoomMeetingRoomCreatedV1 - - EventV2MeetingRoomMeetingRoomUpdatedV1 - - EventV2MeetingRoomMeetingRoomStatusChangedV1 - - EventV2MeetingRoomMeetingRoomDeletedV1 - EventV1ThirdPartyMeetingRoomEventCreated + - EventV1ThirdPartyMeetingRoomEventDeleted + - EventV1ThirdPartyMeetingRoomEventUpdated + - EventV1WorkApproval + - EventV2ACSAccessRecordCreatedV1 + - EventV2ACSUserUpdatedV1 + - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV2ApplicationApplicationAppVersionPublishApplyV6 + - EventV2ApplicationApplicationAppVersionPublishRevokeV6 + - EventV2ApplicationApplicationCreatedV6 - EventV2ApplicationApplicationFeedbackCreatedV6 - EventV2ApplicationApplicationFeedbackUpdatedV6 - - EventV2TaskTaskUpdateTenantV1 - - EventV2TaskTaskUpdatedV1 - - EventV2TaskTaskCommentUpdatedV1 - - EventV2HelpdeskTicketMessageCreatedV1 - - EventV2HelpdeskTicketCreatedV1 - - EventV2HelpdeskTicketUpdatedV1 - - EventV2HelpdeskNotificationApproveV1 + - EventV2ApplicationApplicationVisibilityAddedV6 + - EventV2ApplicationBotMenuV6 + - EventV2ApprovalApprovalUpdatedV4 + - EventV2AttendanceUserFlowCreatedV1 + - EventV2AttendanceUserTaskUpdatedV1 + - EventV2CalendarCalendarACLCreatedV4 + - EventV2CalendarCalendarACLDeletedV4 + - EventV2CalendarCalendarChangedV4 + - EventV2CalendarCalendarEventChangedV4 + - EventV2CardActionTrigger + - EventV2ContactCustomAttrEventUpdatedV3 - EventV2ContactDepartmentCreatedV3 - EventV2ContactDepartmentDeletedV3 - EventV2ContactDepartmentUpdatedV3 - - EventV2ContactUserUpdatedV3 - - EventV2ContactUserCreatedV3 - - EventV2ContactUserDeletedV3 - - EventV2ContactScopeUpdatedV3 - - EventV2ContactEmployeeTypeEnumCreatedV3 - EventV2ContactEmployeeTypeEnumActivedV3 + - EventV2ContactEmployeeTypeEnumCreatedV3 - EventV2ContactEmployeeTypeEnumDeactivatedV3 - - EventV2ContactEmployeeTypeEnumUpdatedV3 - EventV2ContactEmployeeTypeEnumDeletedV3 - - EventV2IMMessageReceiveV1 - - EventV2IMMessageReadV1 - - EventV2IMMessageReactionDeletedV1 - - EventV2IMMessageReactionCreatedV1 + - EventV2ContactEmployeeTypeEnumUpdatedV3 + - EventV2ContactScopeUpdatedV3 + - EventV2ContactUserCreatedV3 + - EventV2ContactUserDeletedV3 + - EventV2ContactUserUpdatedV3 + - EventV2CorehrContractCreatedV1 + - EventV2CorehrContractDeletedV1 + - EventV2CorehrContractUpdatedV1 + - EventV2CorehrDepartmentCreatedV1 + - EventV2CorehrDepartmentDeletedV1 + - EventV2CorehrDepartmentUpdatedV1 + - EventV2CorehrEmploymentConvertedV1 + - EventV2CorehrEmploymentCreatedV1 + - EventV2CorehrEmploymentDeletedV1 + - EventV2CorehrEmploymentResignedV1 + - EventV2CorehrEmploymentUpdatedV1 + - EventV2CorehrJobChangeUpdatedV1 + - EventV2CorehrJobCreatedV1 + - EventV2CorehrJobDataChangedV1 + - EventV2CorehrJobDataEmployedV1 + - EventV2CorehrJobDeletedV1 + - EventV2CorehrJobUpdatedV1 + - EventV2CorehrOffboardingChecklistUpdatedV2 + - EventV2CorehrOffboardingStatusUpdatedV2 + - EventV2CorehrOffboardingUpdatedV1 + - EventV2CorehrOffboardingUpdatedV2 + - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2CorehrPersonCreatedV1 + - EventV2CorehrPersonDeletedV1 + - EventV2CorehrPersonUpdatedV1 + - EventV2CorehrPreHireUpdatedV1 + - EventV2CorehrProbationUpdatedV2 + - EventV2CorehrProcessApproverUpdatedV2 + - EventV2CorehrProcessCcUpdatedV2 + - EventV2CorehrProcessNodeUpdatedV2 + - EventV2CorehrProcessUpdatedV2 + - EventV2DriveFileBitableFieldChangedV1 + - EventV2DriveFileBitableRecordChangedV1 + - EventV2DriveFileCreatedInFolderV1 + - EventV2DriveFileDeletedV1 + - EventV2DriveFileEditV1 + - EventV2DriveFilePermissionMemberAddedV1 + - EventV2DriveFilePermissionMemberRemovedV1 + - EventV2DriveFileReadV1 + - EventV2DriveFileTitleUpdatedV1 + - EventV2DriveFileTrashedV1 + - EventV2ElearningCourseRegistrationCreatedV2 + - EventV2ElearningCourseRegistrationDeletedV2 + - EventV2ElearningCourseRegistrationUpdatedV2 + - EventV2HelpdeskNotificationApproveV1 + - EventV2HelpdeskTicketCreatedV1 + - EventV2HelpdeskTicketMessageCreatedV1 + - EventV2HelpdeskTicketUpdatedV1 + - EventV2HireApplicationDeletedV1 + - EventV2HireApplicationStageChangedV1 + - EventV2HireEHRImportTaskForInternshipOfferImportedV1 + - EventV2HireEHRImportTaskImportedV1 + - EventV2HireEcoAccountCreatedV1 + - EventV2HireEcoBackgroundCheckCanceledV1 + - EventV2HireEcoBackgroundCheckCreatedV1 + - EventV2HireEcoExamCreatedV1 + - EventV2HireOfferStatusChangedV1 + - EventV2HireReferralAccountAssetsUpdateV1 - EventV2IMChatDisbandedV1 - - EventV2IMChatUpdatedV1 - EventV2IMChatMemberBotAddedV1 - EventV2IMChatMemberBotDeletedV1 - EventV2IMChatMemberUserAddedV1 - - EventV2IMChatMemberUserWithdrawnV1 - EventV2IMChatMemberUserDeletedV1 - - EventV2VCMeetingMeetingStartedV1 - - EventV2VCMeetingMeetingEndedV1 + - EventV2IMChatMemberUserWithdrawnV1 + - EventV2IMChatUpdatedV1 + - EventV2IMMessageReactionCreatedV1 + - EventV2IMMessageReactionDeletedV1 + - EventV2IMMessageReadV1 + - EventV2IMMessageRecalledV1 + - EventV2IMMessageReceiveV1 + - EventV2MeetingRoomMeetingRoomCreatedV1 + - EventV2MeetingRoomMeetingRoomDeletedV1 + - EventV2MeetingRoomMeetingRoomStatusChangedV1 + - EventV2MeetingRoomMeetingRoomUpdatedV1 + - EventV2TaskTaskCommentUpdatedV1 + - EventV2TaskTaskUpdateTenantV1 + - EventV2TaskTaskUpdatedV1 + - EventV2URLPreviewGet + - EventV2VCMeetingAllMeetingEndedV1 + - EventV2VCMeetingAllMeetingStartedV1 - EventV2VCMeetingJoinMeetingV1 - EventV2VCMeetingLeaveMeetingV1 - - EventV2VCMeetingRecordingStartedV1 + - EventV2VCMeetingMeetingEndedV1 + - EventV2VCMeetingMeetingStartedV1 - EventV2VCMeetingRecordingEndedV1 - EventV2VCMeetingRecordingReadyV1 - - EventV2VCMeetingShareStartedV1 + - EventV2VCMeetingRecordingStartedV1 - EventV2VCMeetingShareEndedV1 - - EventV2ACSAccessRecordCreatedV1 - - EventV2ACSUserUpdatedV1 - - EventV2CalendarCalendarACLCreatedV4 - - EventV2CalendarCalendarACLDeletedV4 - - EventV2CalendarCalendarEventChangedV4 - - EventV2CalendarCalendarChangedV4 - - EventV1AddBot - - EventV1RemoveBot - - EventV1P2PChatCreate - - EventV1ReceiveMessage - - EventV1AddUserToChat - - EventV1RemoveUserFromChat - - EventV1RevokeAddUserFromChat - - EventV1ChatDisband - - EventV1ApprovalInstance - - EventV1ApprovalTask - - EventV1ApprovalCc - - EventV2AttendanceUserTaskUpdatedV1 - - EventV2AttendanceUserFlowCreatedV1 - - EventV2IMMessageRecalledV1 + - EventV2VCMeetingShareStartedV1 + - EventV2VCReserveConfigUpdatedV1 - EventV2VCRoomCreatedV1 - EventV2VCRoomDeletedV1 - - EventV2VCRoomUpdatedV1 - - EventV2VCMeetingAllMeetingStartedV1 - - EventV2VCMeetingAllMeetingEndedV1 - EventV2VCRoomLevelCreatedV1 - EventV2VCRoomLevelDeletedV1 - EventV2VCRoomLevelUpdatedV1 - - EventV2VCReserveConfigUpdatedV1 - - EventV2ApplicationBotMenuV6 - - EventV2HireOfferStatusChangedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 - - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - - EventV2HireEHRImportTaskImportedV1 - - EventV2CorehrProbationUpdatedV2 - - EventV2CorehrPreHireUpdatedV1 - - EventV2HireEcoAccountCreatedV1 - - EventV2HireEcoBackgroundCheckCreatedV1 - - EventV2HireEcoBackgroundCheckCanceledV1 - - EventV2HireEcoExamCreatedV1 - - EventV2HireReferralAccountAssetsUpdateV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 - - EventV2CardActionTrigger - - EventV2CorehrOffboardingChecklistUpdatedV2 - - EventV2CorehrOffboardingStatusUpdatedV2 - - EventV2CorehrOffboardingUpdatedV2 + - EventV2VCRoomUpdatedV1 - File - - UploadImage + - DownloadFile - DownloadImage - UploadFile - - DownloadFile + - UploadImage - Helpdesk - - CreateHelpdeskNotification - - UpdateHelpdeskNotification - - GetHelpdeskNotification - - PreviewHelpdeskNotification - - SubmitApproveHelpdeskNotification + - AnswerHelpdeskTicketUserQuery - CancelApproveHelpdeskNotification - - ExecuteSendHelpdeskNotification - CancelSendHelpdeskNotification - - StartHelpdeskService - - GetHelpdeskTicket - - UpdateHelpdeskTicket - - GetHelpdeskTicketList - - DownloadHelpdeskTicketImage - - AnswerHelpdeskTicketUserQuery - - GetHelpdeskTicketCustomizedFields - - GetHelpdeskTicketMessageList - - SendHelpdeskTicketMessage - - SendHelpdeskMessage - - GetHelpdeskTicketCustomizedFieldList - - DeleteHelpdeskTicketCustomizedField - - UpdateHelpdeskTicketCustomizedField - - CreateHelpdeskTicketCustomizedField - - GetHelpdeskTicketCustomizedField + - CreateHelpdeskAgentSchedule + - CreateHelpdeskAgentSkill - CreateHelpdeskCategory - - GetHelpdeskCategory - - UpdateHelpdeskCategory - - DeleteHelpdeskCategory - - GetHelpdeskCategoryList - CreateHelpdeskFAQ - - GetHelpdeskFAQ - - UpdateHelpdeskFAQ - - DeleteHelpdeskFAQ - - GetHelpdeskFAQList - - GetHelpdeskFAQImage - - SearchHelpdeskFAQ - - UpdateHelpdeskAgent - - GetHelpdeskAgentEmail - - CreateHelpdeskAgentSchedule + - CreateHelpdeskNotification + - CreateHelpdeskTicketCustomizedField - DeleteHelpdeskAgentSchedule - - UpdateHelpdeskAgentSchedule + - DeleteHelpdeskAgentSkill + - DeleteHelpdeskCategory + - DeleteHelpdeskFAQ + - DeleteHelpdeskTicketCustomizedField + - DownloadHelpdeskTicketImage + - ExecuteSendHelpdeskNotification + - GetHelpdeskAgentEmail - GetHelpdeskAgentSchedule - GetHelpdeskAgentScheduleList - - CreateHelpdeskAgentSkill - GetHelpdeskAgentSkill - - UpdateHelpdeskAgentSkill - - DeleteHelpdeskAgentSkill - GetHelpdeskAgentSkillList - GetHelpdeskAgentSkillRuleList + - GetHelpdeskCategory + - GetHelpdeskCategoryList + - GetHelpdeskFAQ + - GetHelpdeskFAQImage + - GetHelpdeskFAQList + - GetHelpdeskNotification + - GetHelpdeskTicket + - GetHelpdeskTicketCustomizedField + - GetHelpdeskTicketCustomizedFieldList + - GetHelpdeskTicketCustomizedFields + - GetHelpdeskTicketList + - GetHelpdeskTicketMessageList + - PreviewHelpdeskNotification + - SearchHelpdeskFAQ + - SendHelpdeskMessage + - SendHelpdeskTicketMessage + - StartHelpdeskService + - SubmitApproveHelpdeskNotification - SubscribeHelpdeskEvent - UnsubscribeHelpdeskEvent + - UpdateHelpdeskAgent + - UpdateHelpdeskAgentSchedule + - UpdateHelpdeskAgentSkill + - UpdateHelpdeskCategory + - UpdateHelpdeskFAQ + - UpdateHelpdeskNotification + - UpdateHelpdeskTicket + - UpdateHelpdeskTicketCustomizedField - Hire - - GetHireJobConfig - - CreateHireJob - - UpdateHireJob - - UpdateHireJobConfig - - GetHireJob - - GetHireJobManager - - QueryHireTalentObject - - GetHireTalent - - GetHireAttachment - - GetHireAttachmentPreview - - GetHireReferralWebsiteJobPostList - - GetHireReferralWebsiteJobPost - - GetHireReferralByApplication - - CreateHireExternalApplication - - UpdateHireExternalApplication - - DeleteHireExternalApplication - - CreateHireExternalInterview - - CreateHireExternalInterviewAssessment - - CreateHireExternalBackgroundCheck - AddHireTalentToFolder - - GetHireTalentFolderList + - BatchDeleteHireEcoAccountCustomField + - BatchDeleteHireEcoBackgroundCheckCustomField + - BatchDeleteHireEcoBackgroundCheckPackage + - BatchDeleteHireEcoExamPaper - BatchGetHireTalent - - GetHireJobProcessList + - BatchHireTalentPoolChangeTalentPool + - BatchQueryHireAgency + - BatchQueryHireBackgroundCheckOrder + - BatchQueryHireExternalBackgroundCheck + - BatchQueryHireExternalInterview + - BatchQueryHireExternalOffer + - BatchUpdateHireEcoAccountCustomField + - BatchUpdateHireEcoBackgroundCheckCustomField + - BatchUpdateHireEcoBackgroundCheckPackage + - BatchUpdateHireEcoExamPaper + - CancelHireEcoBackgroundCheck + - CloseHireJob + - CreateHireAdvertisementPublish + - CreateHireAgencyOperateAgencyAccount + - CreateHireAgencyProtect + - CreateHireAgencyProtectSearch - CreateHireApplication - - TerminateHireApplication + - CreateHireApplicationCancelOnboard + - CreateHireApplicationRecover + - CreateHireAttachment + - CreateHireEcoAccountCustomField + - CreateHireEcoBackgroundCheckCustomField + - CreateHireEcoBackgroundCheckPackage + - CreateHireEcoExamLoginInfo + - CreateHireEcoExamPaper + - CreateHireExam + - CreateHireExternalApplication + - CreateHireExternalBackgroundCheck + - CreateHireExternalInterview + - CreateHireExternalInterviewAssessment + - CreateHireExternalOffer + - CreateHireExternalReferralReward + - CreateHireJob + - CreateHireJobRequirement + - CreateHireNote + - CreateHireOffer + - CreateHireReferralAccount + - CreateHireReferralAccountEnable + - CreateHireTalentBlocklistChangeTalentBlock + - CreateHireTalentCombinedCreate + - CreateHireTalentCombinedUpdate + - CreateHireTalentExternalInfo + - CreateHireTalentOnboardStatus + - CreateHireTalentPoolMoveTalent + - CreateHireTalentTag + - CreateHireTripartiteAgreement + - CreateHireWebsiteChannel + - CreateHireWebsiteDeliveryByAttachment + - CreateHireWebsiteDeliveryByResume + - CreateHireWebsiteSiteUser + - DeactivateHireReferralAccount + - DeleteHireExternalApplication + - DeleteHireExternalBackgroundCheck + - DeleteHireExternalInterview + - DeleteHireExternalOffer + - DeleteHireExternalReferralReward + - DeleteHireJobRequirement + - DeleteHireNote + - DeleteHireTripartiteAgreement + - DeleteHireWebsiteChannel + - GetHireAgency + - GetHireAgencyAccount - GetHireApplication + - GetHireApplicationDetail + - GetHireApplicationInterviewList - GetHireApplicationList + - GetHireAttachment + - GetHireAttachmentPreview + - GetHireEmployee + - GetHireEmployeeByApplication - GetHireEvaluationList - - GetHireQuestionnaireList + - GetHireInterviewByTalent - GetHireInterviewList - - CreateHireOffer - - UpdateHireOffer - - GetHireOfferByApplication + - GetHireInterviewRecord + - GetHireInterviewRecordAttachment + - GetHireInterviewRecordV1 + - GetHireJob + - GetHireJobConfig + - GetHireJobDetail + - GetHireJobManager + - GetHireJobProcessList + - GetHireJobRecruiter + - GetHireMinutes + - GetHireNote + - GetHireNoteList - GetHireOffer + - GetHireOfferApplicationForm + - GetHireOfferByApplication - GetHireOfferList - - UpdateHireOfferStatus - - UpdateHireOfferInternStatus - - GetHireApplicationInterviewList - GetHireOfferSchema - - UpdateHireEHRImportTask - - MakeHireTransferOnboardByApplication - - UpdateHireEmployee - - GetHireEmployeeByApplication - - GetHireEmployee - - CreateHireNote - - UpdateHireNote - - GetHireNote - - GetHireNoteList + - GetHireQuestionnaireList + - GetHireReferralAccountAssets + - GetHireReferralByApplication + - GetHireReferralWebsiteJobPost + - GetHireReferralWebsiteJobPostList - GetHireResumeSource - - CreateHireEcoAccountCustomField - - BatchUpdateHireEcoAccountCustomField - - BatchDeleteHireEcoAccountCustomField - - CreateHireEcoBackgroundCheckCustomField - - BatchUpdateHireEcoBackgroundCheckCustomField - - BatchDeleteHireEcoBackgroundCheckCustomField - - CreateHireEcoBackgroundCheckPackage - - BatchUpdateHireEcoBackgroundCheckPackage - - BatchDeleteHireEcoBackgroundCheckPackage + - GetHireRole + - GetHireTalent + - GetHireTalentFolderList + - GetHireTalentList + - GetHireTalentV2 + - GetHireWebsiteDeliveryTask + - GetHireWebsiteJobPost + - ListHireBackgroundCheckOrder + - ListHireEvaluationTask + - ListHireExamMarkingTask + - ListHireExternalApplication + - ListHireInterviewFeedbackForm + - ListHireInterviewRecord + - ListHireInterviewRecordV1 + - ListHireInterviewRegistrationSchema + - ListHireInterviewRoundType + - ListHireInterviewTask + - ListHireInterviewer + - ListHireJob + - ListHireJobFunction + - ListHireJobRequirement + - ListHireJobRequirementByID + - ListHireJobRequirementSchema + - ListHireJobSchema + - ListHireJobType + - ListHireLocation + - ListHireOfferApplicationForm + - ListHireOfferApprovalTemplate + - ListHirePortalApplySchema + - ListHireRegistrationSchema + - ListHireRole + - ListHireSubject + - ListHireTalentTag + - ListHireTerminationReason + - ListHireTodo + - ListHireTripartiteAgreement + - ListHireUserRole + - ListHireWebsite + - ListHireWebsiteChannel + - ListHireWebsiteJobPost + - MakeHireTransferOnboardByApplication + - OpenHireJob + - QueryHireAgency + - QueryHireLocation + - QueryHireTalentObject + - ReconcileHireReferralAccount + - RemoveHireTalentToFolder + - SearchHireDiversityInclusion + - SearchHireJobPublishRecord + - SearchHireReferral + - SearchHireTalentOperationLog + - SearchHireTalentPool + - SearchHireTest + - SearchHireWebsiteJobPost + - TerminateHireApplication + - TransferHireApplicationStage + - UpdateHireEHRImportTask - UpdateHireEcoBackgroundCheckProgress - UpdateHireEcoBackgroundCheckResult - - CancelHireEcoBackgroundCheck - - CreateHireEcoExamPaper - - BatchUpdateHireEcoExamPaper - - BatchDeleteHireEcoExamPaper - - CreateHireEcoExamLoginInfo + - UpdateHireEmployee + - UpdateHireExternalApplication + - UpdateHireExternalBackgroundCheck + - UpdateHireExternalInterview + - UpdateHireExternalInterviewAssessment + - UpdateHireExternalOffer + - UpdateHireInterviewer + - UpdateHireJob + - UpdateHireJobConfig + - UpdateHireJobRequirement + - UpdateHireNote + - UpdateHireOffer + - UpdateHireOfferCustomField + - UpdateHireOfferInternStatus + - UpdateHireOfferStatus + - UpdateHireTalentExternalInfo + - UpdateHireTripartiteAgreement + - UpdateHireWebsiteChannel - UpdateHiredEcoExamResult - - CreateHireReferralAccount - - DeactivateHireReferralAccount - WithdrawHireReferralAccount - - ReconcileHireReferralAccount - - GetHireTalentList - HumanAuth + - CreateIdentity + - CropFaceVerifyImage - GetFaceVerifyAuthResult - UploadFaceVerifyImage - - CropFaceVerifyImage - - CreateIdentity - Jssdk - - GetJssdkTicket - GenerateJssdkSignature + - GetJssdkTicket - Lingo + - BatchHighlightLingoEntity - CreateLingoDraft - - UpdateLingoDraft - - DeleteLingoEntity - CreateLingoEntity - - UpdateLingoEntity + - DeleteLingoEntity + - DownloadLingoFile + - ExtractLingoEntity + - GetLingoClassificationList - GetLingoEntity - GetLingoEntityList + - GetLingoRepoList + - HighlightLingoEntity - MatchLingoEntity - SearchLingoEntity - - HighlightLingoEntity - - ExtractLingoEntity - - GetLingoClassificationList - - GetLingoRepoList + - UpdateLingoDraft + - UpdateLingoEntity - UploadLingoFile - - DownloadLingoFile - MDM - BindMDMUserAuthDataRelation + - GetMDMBatchCountryRegion + - ListMDMCountryRegion - UnbindMDMUserAuthDataRelation - Mail - - GetMailUser + - ApplyMailRule + - CreateUserMailboxMailContact + - CreateMailUserMailboxFolder + - CreateMailUserMailboxRule + - DeleteUserMailboxMailContact + - DeleteMailUserMailboxFolder + - DeleteMailUserMailboxRule + - ListUserMailboxMailContact + - GetMailUserMailboxEventSubscription + - ListMailUserMailboxFolder + - GetMailUserMailboxMessage + - ListMailUserMailboxMessage + - GetMailMessageSubscription + - ListMailUserMailboxRule + - CreateMailUserMailboxRuleReorder + - CreateMailUserMailboxMessageSend + - SubscribeMailUserMailboxEvent + - SubscribeMailMessage + - UnsubscribeMailUserMailboxEvent + - UnsubscribeMailUserMailboxEvent + - UpdateUserMailboxMailContact + - UpdateMailUserMailboxFolder + - UpdateMailUserMailboxRule + - BatchCreateMailGroupManager + - BatchCreateMailGroupMember + - BatchCreateMailGroupPermissionMember + - BatchCreatePublicMailboxMember + - BatchDeleteMailGroupManager + - BatchDeleteMailGroupMember + - BatchDeleteMailGroupPermissionMember + - BatchDeletePublicMailboxMember + - ClearPublicMailboxMember - CreateMailGroup + - CreateMailGroupAlias + - CreateMailGroupMember + - CreateMailGroupPermissionMember + - CreateMailPublicMailboxAlias + - CreateMailUserMailboxAlias + - CreatePublicMailbox + - CreatePublicMailboxMember - DeleteMailGroup - - UpdateMailGroupPatch - - UpdateMailGroup + - DeleteMailGroupAlias + - DeleteMailGroupMember + - DeleteMailGroupPermissionMember + - DeleteMailPublicMailboxAlias + - DeleteMailUserMailbox + - DeleteMailUserMailboxAlias + - DeletePublicMailbox + - DeletePublicMailboxMember + - DownloadMailUserMailboxMessageAttachmentURL - GetMailGroup + - GetMailGroupAliasList - GetMailGroupList - - BatchCreateMailGroupManager - - BatchDeleteMailGroupManager - GetMailGroupManagerList - - CreateMailGroupMember - - DeleteMailGroupMember - GetMailGroupMember - GetMailGroupMemberList - - BatchCreateMailGroupMember - - BatchDeleteMailGroupMember - - CreateMailGroupPermissionMember - - DeleteMailGroupPermissionMember - GetMailGroupPermissionMember - GetMailGroupPermissionMemberList - - BatchCreateMailGroupPermissionMember - - BatchDeleteMailGroupPermissionMember - - CreateMailGroupAlias - - GetMailGroupAliasList - - DeleteMailGroupAlias - - CreatePublicMailbox + - GetMailPublicMailboxAliasList + - GetMailUser + - GetMailUserMailboxAliasList + - GetMailUserMailboxMessageByCard - GetPublicMailbox - GetPublicMailboxList - - UpdatePublicMailboxPatch - - UpdatePublicMailbox - - DeletePublicMailbox - - CreatePublicMailboxMember - GetPublicMailboxMember - GetPublicMailboxMemberList - - BatchCreatePublicMailboxMember - - BatchDeletePublicMailboxMember - - DeletePublicMailboxMember - - ClearPublicMailboxMember - - CreateMailPublicMailboxAlias - - GetMailPublicMailboxAliasList - - DeleteMailPublicMailboxAlias - - CreateMailUserMailboxAlias - - DeleteMailUserMailboxAlias - - GetMailUserMailboxAliasList - - DeleteMailUserMailbox + - RemoveMailPublicMailboxToRecycleBin + - UpdateMailGroup + - UpdateMailGroupPatch + - UpdatePublicMailbox + - UpdatePublicMailboxPatch +- MeetingRoom + - GetMeetingRoomCustomization - Message - - SendEphemeralMessage - - SendUrgentAppMessage - - SendUrgentSmsMessage - - SendUrgentPhoneMessage - - SendRawMessageOld + - CreateAppFeedCard + - CreateIMTagRelation + - DeleteAppFeedCard + - ListIMTagRelation + - UpdateAppFeedCard + - DeleteIMTagRelation + - UpdateAppFeedCardButton + - InstantReminderAppFeedCard + - BatchDeleteMessage - BatchSendOldRawMessage - - SendRawMessage - - ReplyRawMessage - - UpdateMessageEdit + - BatchUpdateURLPreview + - CreateIMMessagePushFollowUp + - CreateIMTag + - CreateMessagePin + - CreateMessageReaction + - DeleteEphemeralMessage - DeleteMessage + - DeleteMessagePin + - DeleteMessageReaction - ForwardMessage - - MergeForwardMessage - ForwardThreadMessage - - BatchDeleteMessage - - UpdateMessage - - UpdateMessageDelay - - GetMessageReadUserList - - GetBatchSentMessageReadUser - GetBatchSentMessageProgress - - GetMessageList - - GetMessageFile + - GetBatchSentMessageReadUser - GetMessage - - DeleteEphemeralMessage - - CreateMessageReaction - - GetMessageReactionList - - DeleteMessageReaction - - CreateMessagePin - - DeleteMessagePin + - GetMessageFile + - GetMessageList - GetMessagePinList + - GetMessageReactionList + - GetMessageReadUserList - GetMessageSpecialFocusList - GetMessageSpecialFocusUnread - - BatchUpdateURLPreview - - CreateAppFeedCard - - CreateIMTag - - CreateIMTagRelation - - DeleteAppFeedCard - - DeleteIMTagRelation - - InstantReminderAppFeedCard - - ListIMTagRelation - MGetIMTag + - MergeForwardMessage - Reply + - ReplyRawMessage - Send - - UpdateAppFeedCard - - UpdateAppFeedCardButton + - SendEphemeralMessage + - SendRawMessage + - SendRawMessageOld + - SendUrgentAppMessage + - SendUrgentPhoneMessage + - SendUrgentSmsMessage + - UpdateIMFeedCardBotTimeSentive - UpdateIMTag + - UpdateMessage + - UpdateMessageDelay + - UpdateMessageEdit - Mina - MinaCodeToSession - Minutes - - GetMinutesStatistics - GetMinutesMinute + - GetMinutesMinuteMedia + - GetMinutesMinuteTranscript + - GetMinutesStatistics +- Moments + - GetMomentsPost - OKR + - GetOKRReview + - BatchGetOKR + - BatchUpdateOKRMetricSourceTableItem - CreateOKRPeriod - - UpdateOKRPeriod + - CreateOKRProgressRecord + - DeleteOKRProgressRecord + - GetOKRMetricSourceList + - GetOKRMetricSourceTableItem + - GetOKRMetricSourceTableItemList + - GetOKRMetricSourceTableList - GetOKRPeriodList - GetOKRPeriodRuleList - - BatchGetOKR + - GetOKRProgressRecord - GetUserOKRList - - DeleteOKRProgressRecord + - UpdateOKRMetricSourceTableItem + - UpdateOKRPeriod - UpdateOKRProgressRecord - - GetOKRProgressRecord - - CreateOKRProgressRecord - UploadOKRImage - - GetOKRMetricSourceList - - GetOKRMetricSourceTableList - - BatchUpdateOKRMetricSourceTableItem - - UpdateOKRMetricSourceTableItem - - GetOKRMetricSourceTableItem - - GetOKRMetricSourceTableItemList - - GetOKRReview - Passport + - CreatePassportSessionLogout - GetPassportSession +- Payroll + - CreatePayrollDatasourceRecordSave + - CreatePayrollPaymentActivityArchive + - ListPayrollAcctItem + - ListPayrollCostAllocationDetail + - ListPayrollCostAllocationPlan + - ListPayrollCostAllocationReport + - ListPayrollDatasource + - ListPayrollPaygroup + - ListPayrollPaymentActivity + - ListPayrollPaymentActivityDetail + - QueryPayrollDatasourceRecord + - QueryPayrollPaymentDetail - Performance + - CreatePerformanceAdditionalInformationImport + - CreatePerformanceMetricDetailImport + - CreatePerformanceUserGroupUserRelWrite + - DeletePerformanceAdditionalInformationsBatch + - GetPerformanceReviewData - GetPerformanceSemesterList - - GetPerformanceStageTaskByUser - GetPerformanceStageTaskByPage - - GetPerformanceReviewData + - GetPerformanceStageTaskByUser + - ListPerformanceMetricTag + - QueryPerformanceActivity + - QueryPerformanceAdditionalInformation + - QueryPerformanceIndicator + - QueryPerformanceMetricDetail + - QueryPerformanceMetricField + - QueryPerformanceMetricLib + - QueryPerformanceMetricTemplate + - QueryPerformanceQuestion + - QueryPerformanceReviewData + - QueryPerformanceReviewTemplate + - QueryPerformanceReviewee + - QueryPerformanceUserInfo - PersonalSettings + - BatchClosePersonalSettingsSystemStatus + - BatchOpenPersonalSettingsSystemStatus - CreatePersonalSettingsSystemStatus - DeletePersonalSettingsSystemStatus - - UpdatePersonalSettingsSystemStatus - GetPersonalSettingsSystemStatusList - - BatchOpenPersonalSettingsSystemStatus - - BatchClosePersonalSettingsSystemStatus + - UpdatePersonalSettingsSystemStatus - Report - QueryReportRule - - QueryReportTask - RemoveReportView + - QueryReportTask - Search - - SearchMessage - - SearchApp - - CreateSearchDataSource - - GetSearchDataSource - - UpdateSearchDataSource - - GetSearchDataSourceList - - DeleteSearchDataSource - BatchCreateSearchDataSourceItem + - CreateSearchDataSource - CreateSearchDataSourceItem - - GetSearchDataSourceItem + - CreateSearchSchema + - DeleteSearchDataSource - DeleteSearchDataSourceItem - - UpdateSearchSchema - DeleteSearchSchema + - GetSearchDataSource + - GetSearchDataSourceItem + - GetSearchDataSourceList - GetSearchSchema - - CreateSearchSchema + - SearchApp + - SearchMessage + - SearchSearchDocWiki + - UpdateSearchDataSource + - UpdateSearchSchema +- SecurityAndCompliance + - CreateSecurityAndComplianceDeviceRecord + - DeleteSecurityAndComplianceDeviceRecord + - GetSecurityAndComplianceDeviceRecord + - GetSecurityAndComplianceDeviceRecordMine + - ListSecurityAndComplianceDeviceRecord + - ListSecurityAndComplianceOpenapiLogData + - UpdateSecurityAndComplianceDeviceApplyRecord + - UpdateSecurityAndComplianceDeviceRecord - Task - - CreateTaskFollower - - DeleteTaskFollower - - BatchDeleteTaskFollower - - GetTaskFollowerList - - CreateTaskCollaborator - - DeleteTaskCollaborator - - BatchDeleteTaskCollaborator - - GetTaskCollaboratorList - - CreateTaskReminder - - GetTaskReminderList - - DeleteTaskReminder - - CreateTask - - GetTask - - GetTaskList - - DeleteTask - - UpdateTask - - CompleteTask - - UncompleteTask - - CreateTaskComment - - GetTaskComment - - GetTaskCommentList - - DeleteTaskComment - - UpdateTaskComment - - AddTaskCustomField - AddTaskDependency - AddTaskMember - AddTaskReminder - AddTaskTasklist - AddTaskTasklistMember + - CreateTaskSubtask + - GetTaskTaskListOfSection + - GetTaskTaskListOfTasklist + - GetTaskSubtaskList + - RemoveTaskDependency + - RemoveTaskMember + - RemoveTaskReminder + - RemoveTaskTasklist + - RemoveTaskTasklistMember + - AddTaskCustomField + - BatchDeleteTaskCollaborator + - BatchDeleteTaskFollower + - CompleteTask + - CreateTask + - CreateTaskCollaborator + - CreateTaskComment + - CreateTaskCommentV2 + - CreateTaskCustomField - CreateTaskCustomFieldOption + - CreateTaskFollower + - CreateTaskReminder - CreateTaskSection - - CreateTaskSubtask - CreateTaskTasklist - CreateTaskTasklistActivitySubscription + - DeleteTask - DeleteTaskAttachment + - DeleteTaskCollaborator + - DeleteTaskComment + - DeleteTaskCommentV2 + - DeleteTaskFollower + - DeleteTaskReminder - DeleteTaskSection - DeleteTaskTasklist - DeleteTaskTasklistActivitySubscription + - GetTask - GetTaskAttachment - GetTaskAttachmentList + - GetTaskCollaboratorList + - GetTaskComment + - GetTaskCommentV2 + - GetTaskCustomField + - GetTaskFollowerList + - GetTaskList + - GetTaskReminderList - GetTaskSection - GetTaskSectionList - - GetTaskSubtaskList - - GetTaskTaskListOfSection - - GetTaskTaskListOfTasklist - GetTaskTasklist - GetTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscriptionList - GetTaskTasklistList + - GetTaskTasklists + - ListTaskComment + - ListTaskCustomField - RemoveTaskCustomField - - RemoveTaskDependency - - RemoveTaskMember - - RemoveTaskReminder - - RemoveTaskTasklist - - RemoveTaskTasklistMember + - UncompleteTask + - UpdateTask + - UpdateTaskComment + - UpdateTaskCommentV2 + - UpdateTaskCustomField - UpdateTaskCustomFieldOption - UpdateTaskSection - UpdateTaskTasklist - UpdateTaskTasklistActivitySubscription - UploadTaskAttachment - TaskV1 + - CreateTaskV1 + - DeleteTaskV1 + - GetTaskV1CommentList + - GetTaskV1 + - GetTaskV1List + - UpdateTaskV1 - BatchDeleteTaskV1Collaborator - BatchDeleteTaskV1Follower - CompleteTaskV1 - - CreateTaskV1 - CreateTaskV1Collaborator - CreateTaskV1Comment - CreateTaskV1Follower - CreateTaskV1Reminder - - DeleteTaskV1 - DeleteTaskV1Collaborator - DeleteTaskV1Comment - DeleteTaskV1Follower - DeleteTaskV1Reminder - GetTaskFollowerV1List - - GetTaskV1 - GetTaskV1CollaboratorList - GetTaskV1Comment - - GetTaskV1CommentList - - GetTaskV1List - GetTaskV1ReminderList - UncompleteTaskV1 - - UpdateTaskV1 - UpdateTaskV1Comment - Tenant - - GetTenantProductAssignInfo - GetTenant + - GetTenantProductAssignInfo +- TrustParty + - GetTrustPartyCollaborationTenant + - GetTrustPartyCollaborationTenantCollaborationDepartment + - GetTrustPartyCollaborationTenantCollaborationUser + - GetTrustPartyCollaborationTenantVisibleOrganization + - ListTrustPartyCollaborationTenant - VC + - QueryVCRoomConfig - ApplyVCReserve - - UpdateVCReserve - - DeleteVCReserve - - GetVCReserve - - GetVCReserveActiveMeeting - - GetVCMeeting - - ListVCMeetingByNo - - InviteVCMeeting - - KickoutVCMeeting - - SetVCHostMeeting - - EndVCMeeting - - StartVCMeetingRecording - - StopVCMeetingRecording - - GetVCMeetingRecording - - SetVCPermissionMeetingRecording - - GetVCDailyReport - - GetVCTopUserReport - - GetVCRoomList - - GetVCRoom - BatchGetVCRoom - - CreateVCRoom - - UpdateVCRoom - - DeleteVCRoom - - SearchVCRoom - - GetVCRoomLevelList - - GetVCRoomLevel - BatchGetVCRoomLevel + - CreateVCRoom - CreateVCRoomLevel - - UpdateVCRoomLevel + - DeleteVCReserve + - DeleteVCRoom - DeleteVCRoomLevel - - SearchVCRoomLevel - - SetVCScopeConfig - - GetVCScopeConfig - - GetVCReserveConfig - - UpdateVCReserveConfig - - GetVCReserveConfigForm - - UpdateVCReserveConfigForm - - GetVCReserveConfigAdmin - - UpdateVCReserveConfigAdmin - - GetVCReserveConfigDisableInform - - UpdateVCReserveConfigDisableInform + - DownloadVCExportFile + - EndVCMeeting - ExportVCMeetingList - ExportVCParticipantList - ExportVCParticipantQualityList - ExportVCResourceReservationList - - GetVCExportTask - - DownloadVCExportFile - GetVCAlertList + - GetVCDailyReport + - GetVCExportTask + - GetVCMeeting - GetVCMeetingList + - GetVCMeetingRecording - GetVCParticipantList - GetVCParticipantQualityList + - GetVCReserve + - GetVCReserveActiveMeeting + - GetVCReserveConfig + - GetVCReserveConfigAdmin + - GetVCReserveConfigDisableInform + - GetVCReserveConfigForm - GetVCResourceReservationList + - GetVCRoom + - GetVCRoomLevel + - GetVCRoomLevelList + - GetVCRoomList + - GetVCScopeConfig + - GetVCTopUserReport + - InviteVCMeeting + - KickoutVCMeeting + - ListVCMeetingByNo + - SearchVCRoom + - SearchVCRoomLevel + - SetVCHostMeeting + - SetVCPermissionMeetingRecording + - SetVCRoomConfig + - SetVCRoomConfigCheckboardAccessCode + - SetVCRoomConfigRoomAccessCode + - SetVCScopeConfig + - StartVCMeetingRecording + - StopVCMeetingRecording + - UpdateVCReserve + - UpdateVCReserveConfig + - UpdateVCReserveConfigAdmin + - UpdateVCReserveConfigDisableInform + - UpdateVCReserveConfigForm + - UpdateVCRoom + - UpdateVCRoomLevel +- VCMeeting + - GetVCMeetingDefaultBuildingBatchGet + - GetVCMeetingDefaultBuildingBatchGetID + - GetVCMeetingDefaultRoomBatchGet + - GetVCMeetingDefaultRoomBatchGetID + - CreateVCMeetingDefaultBuildingCreate + - CreateVCMeetingDefaultRoomCreate + - CreateVCMeetingDefaultBuildingDelete + - CreateVCMeetingDefaultRoomDelete + - ListVCMeetingDefaultBuilding + - ListVCMeetingDefaultCountry + - ListVCMeetingDefaultDistrict + - ListVCMeetingDefaultRoom + - CreateVCMeetingDefaultBuildingUpdate + - CreateVCMeetingDefaultRoomUpdate - Verification - GetVerification diff --git a/api_acs_device_list.go b/api_acs_device_list.go index f693d2c0..07643cd4 100644 --- a/api_acs_device_list.go +++ b/api_acs_device_list.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockACSGetACSDeviceList() { } // GetACSDeviceListReq ... -type GetACSDeviceListReq struct{} +type GetACSDeviceListReq struct { +} // GetACSDeviceListResp ... type GetACSDeviceListResp struct { diff --git a/api_acs_rule_external_delete.go b/api_acs_rule_external_delete.go index c21af3ae..c593f96d 100644 --- a/api_acs_rule_external_delete.go +++ b/api_acs_rule_external_delete.go @@ -62,7 +62,8 @@ type DeleteACSRuleExternalReq struct { } // DeleteACSRuleExternalResp ... -type DeleteACSRuleExternalResp struct{} +type DeleteACSRuleExternalResp struct { +} // deleteACSRuleExternalResp ... type deleteACSRuleExternalResp struct { diff --git a/api_acs_rule_external_device_bind.go b/api_acs_rule_external_device_bind.go index 429fadba..fcc56124 100644 --- a/api_acs_rule_external_device_bind.go +++ b/api_acs_rule_external_device_bind.go @@ -63,7 +63,8 @@ type DeviceBindACSRuleExternalReq struct { } // DeviceBindACSRuleExternalResp ... -type DeviceBindACSRuleExternalResp struct{} +type DeviceBindACSRuleExternalResp struct { +} // deviceBindACSRuleExternalResp ... type deviceBindACSRuleExternalResp struct { diff --git a/api_acs_user_face_update.go b/api_acs_user_face_update.go index d817c557..060649ab 100644 --- a/api_acs_user_face_update.go +++ b/api_acs_user_face_update.go @@ -68,7 +68,8 @@ type UpdateACSUserFaceReq struct { } // UpdateACSUserFaceResp ... -type UpdateACSUserFaceResp struct{} +type UpdateACSUserFaceResp struct { +} // updateACSUserFaceResp ... type updateACSUserFaceResp struct { diff --git a/api_acs_user_update.go b/api_acs_user_update.go index 37ba464c..6cc928b9 100644 --- a/api_acs_user_update.go +++ b/api_acs_user_update.go @@ -71,7 +71,8 @@ type UpdateACSUserReqFeature struct { } // UpdateACSUserResp ... -type UpdateACSUserResp struct{} +type UpdateACSUserResp struct { +} // updateACSUserResp ... type updateACSUserResp struct { diff --git a/api_acs_visitor_delete.go b/api_acs_visitor_delete.go index e24682dd..611d7dfd 100644 --- a/api_acs_visitor_delete.go +++ b/api_acs_visitor_delete.go @@ -63,7 +63,8 @@ type DeleteACSVisitorReq struct { } // DeleteACSVisitorResp ... -type DeleteACSVisitorResp struct{} +type DeleteACSVisitorResp struct { +} // deleteACSVisitorResp ... type deleteACSVisitorResp struct { diff --git a/api_admin_badge_grant_delete.go b/api_admin_badge_grant_delete.go index f452b030..af184e01 100644 --- a/api_admin_badge_grant_delete.go +++ b/api_admin_badge_grant_delete.go @@ -63,7 +63,8 @@ type DeleteAdminBadgeGrantReq struct { } // DeleteAdminBadgeGrantResp ... -type DeleteAdminBadgeGrantResp struct{} +type DeleteAdminBadgeGrantResp struct { +} // deleteAdminBadgeGrantResp ... type deleteAdminBadgeGrantResp struct { diff --git a/api_admin_password_reset.go b/api_admin_password_reset.go index 498d8967..d4063e33 100644 --- a/api_admin_password_reset.go +++ b/api_admin_password_reset.go @@ -71,7 +71,8 @@ type AdminResetPasswordReqPassword struct { } // AdminResetPasswordResp ... -type AdminResetPasswordResp struct{} +type AdminResetPasswordResp struct { +} // adminResetPasswordResp ... type adminResetPasswordResp struct { diff --git a/api_ai_id_card_recognize.go b/api_ai_id_card_recognize.go index 760d2111..7075d793 100644 --- a/api_ai_id_card_recognize.go +++ b/api_ai_id_card_recognize.go @@ -24,11 +24,9 @@ import ( // RecognizeAiidCard 身份证识别接口, 支持JPG/JPEG/PNG/BMP四种文件类型的一次性的识别。 // -// 文件大小需要小于10M。 // 单租户限流: 10QPS, 同租户下的应用没有限流, 共享本租户的 10QPS 限流 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/ai/document_ai-v1/id_card/recognize -// new doc: https://open.feishu.cn/document/ai/document_ai-v1/id_card/recognize func (r *AIService) RecognizeAiidCard(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) { if r.cli.mock.mockAIRecognizeAiidCard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] AI#RecognizeAiidCard mock enable") @@ -63,7 +61,7 @@ func (r *Mock) UnMockAIRecognizeAiidCard() { // RecognizeAiidCardReq ... type RecognizeAiidCardReq struct { - File io.Reader `json:"file,omitempty"` // 识别身份证的源文件示例值: file binary + File io.Reader `json:"file,omitempty"` // 识别身份证的源文件, 示例值: file binary } // RecognizeAiidCardResp ... @@ -80,7 +78,7 @@ type RecognizeAiidCardRespIDCard struct { // RecognizeAiidCardRespIDCardEntity ... type RecognizeAiidCardRespIDCardEntity struct { - Type string `json:"type,omitempty"` // 识别的字段种类可选值有: 公民身份号码姓名住址有效期起始时间有效期终止时间(“长期”识别为“长期”)性别民族签发机关出生日期 + Type string `json:"type,omitempty"` // 识别的字段种类, 可选值有: identity_code: 公民身份号码, identity_name: 姓名, address: 住址, valid_date_start: 有效期起始时间, valid_date_end: 有效期终止时间(“长期”识别为“长期”), gender: 性别, race: 民族, issued_by: 签发机关, birth: 出生日期 Value string `json:"value,omitempty"` // 识别出字段的文本信息 } diff --git a/api_ai_resume_parse.go b/api_ai_resume_parse.go index 5c23aac4..80551568 100644 --- a/api_ai_resume_parse.go +++ b/api_ai_resume_parse.go @@ -131,6 +131,18 @@ type ParseAIResumeRespResumeCompetition struct { Desc string `json:"desc,omitempty"` // 描述 } +// ParseAIResumeRespResumeEducation ... +type ParseAIResumeRespResumeEducation struct { + School string `json:"school,omitempty"` // 学校名称 + StartDate string `json:"start_date,omitempty"` // 开始时间, 格式: YYYY-MM-DD + StartTime string `json:"start_time,omitempty"` // 开始时间, 格式: YYYY-MM-DD, 跟start_date值一样 + EndDate string `json:"end_date,omitempty"` // 结束时间, 格式: YYYY-MM-DD + EndTime string `json:"end_time,omitempty"` // 结束时间, 格式: YYYY-MM-DD 或 “至今”, 当值为“至今”时, end_date["", 值为其他时, end_date]end_time + Major string `json:"major,omitempty"` // 专业 + Degree string `json:"degree,omitempty"` // 学历——小学、初中、中职、高中、专科、本科、硕士、博士、其他 + Qualification int64 `json:"qualification,omitempty"` // 学历对应ID可选值有: 小学初中中职高中专科本科硕士博士其他 +} + // ParseAIResumeRespResumeLanguage ... type ParseAIResumeRespResumeLanguage struct { Level int64 `json:"level,omitempty"` // 语言等级 diff --git a/api_aily_aily_session_aily_message_create.go b/api_aily_aily_session_aily_message_create.go new file mode 100644 index 00000000..248f9eac --- /dev/null +++ b/api_aily_aily_session_aily_message_create.go @@ -0,0 +1,146 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilySessionAilyMessage 该 API 用于向某个飞书 Aily 应用发送一条消息(Message);每个消息从属于一个活跃的会话(Session)。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-aily_message/create +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-aily_message/create +func (r *AilyService) CreateAilySessionAilyMessage(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilySessionAilyMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySessionAilyMessage mock enable") + return r.cli.mock.mockAilyCreateAilySessionAilyMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilySessionAilyMessage", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/messages", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilySessionAilyMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilySessionAilyMessage mock AilyCreateAilySessionAilyMessage method +func (r *Mock) MockAilyCreateAilySessionAilyMessage(f func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error)) { + r.mockAilyCreateAilySessionAilyMessage = f +} + +// UnMockAilyCreateAilySessionAilyMessage un-mock AilyCreateAilySessionAilyMessage method +func (r *Mock) UnMockAilyCreateAilySessionAilyMessage() { + r.mockAilyCreateAilySessionAilyMessage = nil +} + +// CreateAilySessionAilyMessageReq ... +type CreateAilySessionAilyMessageReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + IdempotentID string `json:"idempotent_id,omitempty"` // 幂等 ID(如使用 UUID 生成器或时间戳), 同一会话下相同的幂等 ID 视为同一个消息(72h)示例值: "idempotent_id_1" 长度范围: `0` ~ `64` 字符 + ContentType string `json:"content_type,omitempty"` // 消息的类型, 包括 `MDX` | `TEXT` 等- `MDX` 能够表达富文本信息结构, 可参考 [Aily 消息节点 markdown 语法](https://bytedance.larkoffice.com/wiki/ZlHYw8jJci3o4dkkEZZcybM0nah)- `TEXT` 作为纯文本进行处理示例值: "MDX"可选值有: MDXTEXTGUI 卡片SmartCardJSON + Content string `json:"content,omitempty"` // 消息内容示例值: "你好" 长度范围: `0` ~ `61440` 字符 + FileIDs []string `json:"file_ids,omitempty"` // 消息中包含的文件 ID 列表示例值: ["file_4d9nu1ev3a2rq"] 长度范围: `0` ~ `32` + QuoteMessageID *string `json:"quote_message_id,omitempty"` // 引用的消息 ID示例值: "message_4de9bpg70qskh" 长度范围: `0` ~ `32` 字符- 正则校验: `message_[0-9a-hjkmnp-z]{1, 24}` + Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体 长度范围: `0` ~ `32` +} + +// CreateAilySessionAilyMessageReqMention ... +type CreateAilySessionAilyMessageReqMention struct { + EntityID *string `json:"entity_id,omitempty"` // 实体 ID示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `64` 字符 + IdentityProvider *string `json:"identity_provider,omitempty"` // 身份提供者示例值: "FEISHU"可选值有: Aily 账号体系飞书账号体系 + Key *string `json:"key,omitempty"` // 被@实体在消息体中的占位符示例值: "@_user_1" 长度范围: `0` ~ `32` 字符 + Name *string `json:"name,omitempty"` // 被@实体的名称示例值: "张三" 长度范围: `0` ~ `32` 字符 + AilyID *string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID示例值: "1794840334557292" 长度范围: `0` ~ `20` 字符 +} + +// CreateAilySessionAilyMessageResp ... +type CreateAilySessionAilyMessageResp struct { + Message *CreateAilySessionAilyMessageRespMessage `json:"message,omitempty"` // 消息信息 +} + +// CreateAilySessionAilyMessageRespMessage ... +type CreateAilySessionAilyMessageRespMessage struct { + ID string `json:"id,omitempty"` // 消息 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + RunID string `json:"run_id,omitempty"` // 运行 ID + ContentType string `json:"content_type,omitempty"` // 消息内容类型可选值有: MDXTEXTGUI 卡片SmartCardJSON + Content string `json:"content,omitempty"` // 消息内容 + Files []*CreateAilySessionAilyMessageRespMessageFile `json:"files,omitempty"` // 消息中包含的文件 + QuoteMessageID string `json:"quote_message_id,omitempty"` // 引用的消息 ID + Sender *Sender `json:"sender,omitempty"` // 发送者 + Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体 + PlainText string `json:"plain_text,omitempty"` // 消息体的纯文本表达 + CreatedAt string `json:"created_at,omitempty"` // 消息的创建时间, 毫秒时间戳 + Status string `json:"status,omitempty"` // 状态可选值有: 生成中已完成 +} + +// CreateAilySessionAilyMessageRespMessageFile ... +type CreateAilySessionAilyMessageRespMessageFile struct { + ID string `json:"id,omitempty"` // 文件 ID + MimeType string `json:"mime_type,omitempty"` // 文件类型, 参见[MIME 类型(IANA 媒体类型)](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) + FileName string `json:"file_name,omitempty"` // 文件名 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 + CreatedAt string `json:"created_at,omitempty"` // 文件的创建时间, 毫秒时间戳 + PreviewURL *CreateAilySessionAilyMessageRespMessageFilePreviewURL `json:"preview_url,omitempty"` // 文件预览链接 +} + +// CreateAilySessionAilyMessageRespMessageFilePreviewURL ... +type CreateAilySessionAilyMessageRespMessageFilePreviewURL struct { + URL string `json:"url,omitempty"` // 文件的 URL + ExpiredAt string `json:"expired_at,omitempty"` // url 过期时间, 秒时间戳 +} + +// CreateAilySessionAilyMessageRespMessageMention ... +type CreateAilySessionAilyMessageRespMessageMention struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者可选值有: Aily 账号体系飞书账号体系 + Key string `json:"key,omitempty"` // 被@实体在消息体中的占位符 + Name string `json:"name,omitempty"` // 被@实体的名称 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// CreateAilySessionAilyMessageRespMessageSender ... +type CreateAilySessionAilyMessageRespMessageSender struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者可选值有: Aily 账号体系飞书账号体系 + SenderType string `json:"sender_type,omitempty"` // 发送人类型可选值有: 用户应用 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// createAilySessionAilyMessageResp ... +type createAilySessionAilyMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilySessionAilyMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_aily_message_get.go b/api_aily_aily_session_aily_message_get.go new file mode 100644 index 00000000..0f8f3642 --- /dev/null +++ b/api_aily_aily_session_aily_message_get.go @@ -0,0 +1,132 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAilySessionAilyMessage 该 API 用于获取某个飞书 Aily 应用的消息(Message)的详细信息;包括消息的内容、发送人等。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-aily_message/get +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-aily_message/get +func (r *AilyService) GetAilySessionAilyMessage(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) { + if r.cli.mock.mockAilyGetAilySessionAilyMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#GetAilySessionAilyMessage mock enable") + return r.cli.mock.mockAilyGetAilySessionAilyMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "GetAilySessionAilyMessage", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/messages/:aily_message_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getAilySessionAilyMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyGetAilySessionAilyMessage mock AilyGetAilySessionAilyMessage method +func (r *Mock) MockAilyGetAilySessionAilyMessage(f func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error)) { + r.mockAilyGetAilySessionAilyMessage = f +} + +// UnMockAilyGetAilySessionAilyMessage un-mock AilyGetAilySessionAilyMessage method +func (r *Mock) UnMockAilyGetAilySessionAilyMessage() { + r.mockAilyGetAilySessionAilyMessage = nil +} + +// GetAilySessionAilyMessageReq ... +type GetAilySessionAilyMessageReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `0` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + AilyMessageID string `path:"aily_message_id" json:"-"` // 消息 ID示例值: "message_4df45f2xknvcc" 长度范围: `0` ~ `32` 字符- 正则校验: `message_[0-9a-hjkmnp-z]{1, 24}` +} + +// GetAilySessionAilyMessageResp ... +type GetAilySessionAilyMessageResp struct { + Message *GetAilySessionAilyMessageRespMessage `json:"message,omitempty"` // 消息信息 +} + +// GetAilySessionAilyMessageRespMessage ... +type GetAilySessionAilyMessageRespMessage struct { + ID string `json:"id,omitempty"` // 消息 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + RunID string `json:"run_id,omitempty"` // 运行 ID + ContentType string `json:"content_type,omitempty"` // 消息内容类型 + Content string `json:"content,omitempty"` // 消息内容 + Files []*GetAilySessionAilyMessageRespMessageFile `json:"files,omitempty"` // 消息中包含的文件 + QuoteMessageID string `json:"quote_message_id,omitempty"` // 引用的消息 ID + Sender *Sender `json:"sender,omitempty"` // 发送者 + Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体 + PlainText string `json:"plain_text,omitempty"` // 消息体的纯文本表达 + CreatedAt string `json:"created_at,omitempty"` // 消息的创建时间, 毫秒时间戳 + Status string `json:"status,omitempty"` // 状态 +} + +// GetAilySessionAilyMessageRespMessageFile ... +type GetAilySessionAilyMessageRespMessageFile struct { + ID string `json:"id,omitempty"` // 文件 ID + MimeType string `json:"mime_type,omitempty"` // 文件类型, 参见[MIME 类型(IANA 媒体类型)](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) + FileName string `json:"file_name,omitempty"` // 文件名 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 + CreatedAt string `json:"created_at,omitempty"` // 文件的创建时间, 毫秒时间戳 + PreviewURL *GetAilySessionAilyMessageRespMessageFilePreviewURL `json:"preview_url,omitempty"` // 文件预览链接 +} + +// GetAilySessionAilyMessageRespMessageFilePreviewURL ... +type GetAilySessionAilyMessageRespMessageFilePreviewURL struct { + URL string `json:"url,omitempty"` // 文件的 URL + ExpiredAt string `json:"expired_at,omitempty"` // url 过期时间, 秒时间戳 +} + +// GetAilySessionAilyMessageRespMessageMention ... +type GetAilySessionAilyMessageRespMessageMention struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者 + Key string `json:"key,omitempty"` // 被@实体在消息体中的占位符 + Name string `json:"name,omitempty"` // 被@实体的名称 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// GetAilySessionAilyMessageRespMessageSender ... +type GetAilySessionAilyMessageRespMessageSender struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者 + SenderType string `json:"sender_type,omitempty"` // 发送人类型 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// getAilySessionAilyMessageResp ... +type getAilySessionAilyMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAilySessionAilyMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_aily_message_list.go b/api_aily_aily_session_aily_message_list.go new file mode 100644 index 00000000..1235b199 --- /dev/null +++ b/api_aily_aily_session_aily_message_list.go @@ -0,0 +1,137 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAilySessionAilyMessage 该 API 用于列出某个飞书 Aily 应用的某个会话(Session)下消息(Message)的详细信息;包括消息的内容、发送人等。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-aily_message/list +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-aily_message/list +func (r *AilyService) ListAilySessionAilyMessage(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) { + if r.cli.mock.mockAilyListAilySessionAilyMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#ListAilySessionAilyMessage mock enable") + return r.cli.mock.mockAilyListAilySessionAilyMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "ListAilySessionAilyMessage", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/messages", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAilySessionAilyMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyListAilySessionAilyMessage mock AilyListAilySessionAilyMessage method +func (r *Mock) MockAilyListAilySessionAilyMessage(f func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error)) { + r.mockAilyListAilySessionAilyMessage = f +} + +// UnMockAilyListAilySessionAilyMessage un-mock AilyListAilySessionAilyMessage method +func (r *Mock) UnMockAilyListAilySessionAilyMessage() { + r.mockAilyListAilySessionAilyMessage = nil +} + +// ListAilySessionAilyMessageReq ... +type ListAilySessionAilyMessageReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `0` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + PageSize *int64 `query:"page_size" json:"-"` // 本次请求获取的消息记录条数, 默认 20示例值: 20 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + RunID *string `query:"run_id" json:"-"` // 过滤条件, 按执行的唯一 ID 筛选示例值: run_4dfrxvctjqzzj 长度范围: `0` ~ `32` 字符- 正则校验: `run_[0-9a-hjkmnp-z]{1, 28}` + WithPartialMessage *bool `query:"with_partial_message" json:"-"` // 是否返回正在进行中(即流式输出中)的消息内容- 当设置为 `true` 时, 返回的消息记录中、每个消息将额外包含一个 `status `字段(`IN_PROGRESS` | `COMPLETED`), 此时 `content` 字段为当前时刻的消息内容- 当设置为 `false` 时, 返回的消息记录仅包含已完成的消息示例值: false +} + +// ListAilySessionAilyMessageResp ... +type ListAilySessionAilyMessageResp struct { + Messages []*ListAilySessionAilyMessageRespMessage `json:"messages,omitempty"` // 消息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAilySessionAilyMessageRespMessage ... +type ListAilySessionAilyMessageRespMessage struct { + ID string `json:"id,omitempty"` // 消息 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + RunID string `json:"run_id,omitempty"` // 运行 ID + ContentType string `json:"content_type,omitempty"` // 消息内容类型 + Content string `json:"content,omitempty"` // 消息内容 + Files []*ListAilySessionAilyMessageRespMessageFile `json:"files,omitempty"` // 消息中包含的文件 + QuoteMessageID string `json:"quote_message_id,omitempty"` // 引用的消息 ID + Sender *Sender `json:"sender,omitempty"` // 发送者 + Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体 + PlainText string `json:"plain_text,omitempty"` // 消息体的纯文本表达 + CreatedAt string `json:"created_at,omitempty"` // 消息的创建时间, 毫秒时间戳 + Status string `json:"status,omitempty"` // 状态 +} + +// ListAilySessionAilyMessageRespMessageFile ... +type ListAilySessionAilyMessageRespMessageFile struct { + ID string `json:"id,omitempty"` // 文件 ID + MimeType string `json:"mime_type,omitempty"` // 文件类型, 参见[MIME 类型(IANA 媒体类型)](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) + FileName string `json:"file_name,omitempty"` // 文件名 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 + CreatedAt string `json:"created_at,omitempty"` // 文件的创建时间, 毫秒时间戳 + PreviewURL *ListAilySessionAilyMessageRespMessageFilePreviewURL `json:"preview_url,omitempty"` // 文件预览链接 +} + +// ListAilySessionAilyMessageRespMessageFilePreviewURL ... +type ListAilySessionAilyMessageRespMessageFilePreviewURL struct { + URL string `json:"url,omitempty"` // 文件的 URL + ExpiredAt string `json:"expired_at,omitempty"` // url 过期时间, 秒时间戳 +} + +// ListAilySessionAilyMessageRespMessageMention ... +type ListAilySessionAilyMessageRespMessageMention struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者 + Key string `json:"key,omitempty"` // 被@实体在消息体中的占位符 + Name string `json:"name,omitempty"` // 被@实体的名称 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// ListAilySessionAilyMessageRespMessageSender ... +type ListAilySessionAilyMessageRespMessageSender struct { + EntityID string `json:"entity_id,omitempty"` // 实体 ID + IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者 + SenderType string `json:"sender_type,omitempty"` // 发送人类型 + AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID +} + +// listAilySessionAilyMessageResp ... +type listAilySessionAilyMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAilySessionAilyMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_create.go b/api_aily_aily_session_create.go new file mode 100644 index 00000000..9544005c --- /dev/null +++ b/api_aily_aily_session_create.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilySession 该 API 用于创建与某个飞书 Aily 应用的一次会话(Session);当创建会话成功后, 可以发送消息、创建运行。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create +// new doc: https://open.feishu.cn/document/aily-v1/aily_session/create +func (r *AilyService) CreateAilySession(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilySession != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySession mock enable") + return r.cli.mock.mockAilyCreateAilySession(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilySession", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilySessionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilySession mock AilyCreateAilySession method +func (r *Mock) MockAilyCreateAilySession(f func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error)) { + r.mockAilyCreateAilySession = f +} + +// UnMockAilyCreateAilySession un-mock AilyCreateAilySession method +func (r *Mock) UnMockAilyCreateAilySession() { + r.mockAilyCreateAilySession = nil +} + +// CreateAilySessionReq ... +type CreateAilySessionReq struct { + XAilyBizUserID *string `header:"X-Aily-BizUserID" json:"-"` // 唯一用户身份标识。> 建议使用唯一内部 ID 或其他可标识用户唯一身份的字段(如飞书账号的 `user_id`), 可用于分析来自 API 的具体用户示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `255` 字符 + ChannelContext *string `json:"channel_context,omitempty"` // 可自行构造的 Context [上下文变量](https://aily.feishu.cn/hc/1u7kleqg/en70bqqj#6a446d5e);在 Workflow 技能中可消费这部分全局变量示例值: "{}" 长度范围: `0` ~ `255` 字符 + Metadata *string `json:"metadata,omitempty"` // 会话的自定义变量内容, 变量数据保存在服务端 Session 中, 可在 `GetSession` 时原样返回, 无需在 API 调用侧存储示例值: "{}" 长度范围: `0` ~ `255` 字符 +} + +// CreateAilySessionResp ... +type CreateAilySessionResp struct { + Session *CreateAilySessionRespSession `json:"session,omitempty"` // 创建的会话信息 +} + +// CreateAilySessionRespSession ... +type CreateAilySessionRespSession struct { + ID string `json:"id,omitempty"` // 会话 ID + CreatedAt string `json:"created_at,omitempty"` // 会话的创建时间, 毫秒时间戳 + ModifiedAt string `json:"modified_at,omitempty"` // 会话的上次更新时间, 毫秒时间戳 + CreatedBy string `json:"created_by,omitempty"` // 会话的创建人(Aily UserID) + ChannelContext string `json:"channel_context,omitempty"` // 可自行构造的 Context [上下文变量](https://aily.feishu.cn/hc/1u7kleqg/en70bqqj#6a446d5e);在 Workflow 技能中可消费这部分全局变量 + Metadata string `json:"metadata,omitempty"` // 会话的自定义变量内容, 变量数据保存在服务端 Session 中, 可在 `GetSession` 时原样返回, 无需在 API 调用侧存储 +} + +// createAilySessionResp ... +type createAilySessionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilySessionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_delete.go b/api_aily_aily_session_delete.go new file mode 100644 index 00000000..99303264 --- /dev/null +++ b/api_aily_aily_session_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteAilySession 该 API 用于删除与某个飞书 Aily 应用的一次会话(Session)。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/delete +// new doc: https://open.feishu.cn/document/aily-v1/aily_session/delete +func (r *AilyService) DeleteAilySession(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) { + if r.cli.mock.mockAilyDeleteAilySession != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#DeleteAilySession mock enable") + return r.cli.mock.mockAilyDeleteAilySession(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "DeleteAilySession", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteAilySessionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyDeleteAilySession mock AilyDeleteAilySession method +func (r *Mock) MockAilyDeleteAilySession(f func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error)) { + r.mockAilyDeleteAilySession = f +} + +// UnMockAilyDeleteAilySession un-mock AilyDeleteAilySession method +func (r *Mock) UnMockAilyDeleteAilySession() { + r.mockAilyDeleteAilySession = nil +} + +// DeleteAilySessionReq ... +type DeleteAilySessionReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID示例值: "session_4dfunz7sp1g8m" 长度范围: `0` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` +} + +// DeleteAilySessionResp ... +type DeleteAilySessionResp struct { +} + +// deleteAilySessionResp ... +type deleteAilySessionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAilySessionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_get.go b/api_aily_aily_session_get.go new file mode 100644 index 00000000..40ca9488 --- /dev/null +++ b/api_aily_aily_session_get.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAilySession 该 API 用于获取与某个飞书 Aily 应用的一次会话(Session)的详细信息, 包括会话的状态、渠道上下文、创建时间等。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/get +// new doc: https://open.feishu.cn/document/aily-v1/aily_session/get +func (r *AilyService) GetAilySession(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) { + if r.cli.mock.mockAilyGetAilySession != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#GetAilySession mock enable") + return r.cli.mock.mockAilyGetAilySession(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "GetAilySession", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getAilySessionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyGetAilySession mock AilyGetAilySession method +func (r *Mock) MockAilyGetAilySession(f func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error)) { + r.mockAilyGetAilySession = f +} + +// UnMockAilyGetAilySession un-mock AilyGetAilySession method +func (r *Mock) UnMockAilyGetAilySession() { + r.mockAilyGetAilySession = nil +} + +// GetAilySessionReq ... +type GetAilySessionReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` +} + +// GetAilySessionResp ... +type GetAilySessionResp struct { + Session *GetAilySessionRespSession `json:"session,omitempty"` // 会话信息 +} + +// GetAilySessionRespSession ... +type GetAilySessionRespSession struct { + ID string `json:"id,omitempty"` // 会话 ID + CreatedAt string `json:"created_at,omitempty"` // 会话的创建时间, 毫秒时间戳 + ModifiedAt string `json:"modified_at,omitempty"` // 会话的上次更新时间, 毫秒时间戳 + CreatedBy string `json:"created_by,omitempty"` // 会话的创建人(Aily UserID) + ChannelContext string `json:"channel_context,omitempty"` // 可自行构造的 Context [上下文变量](https://aily.feishu.cn/hc/1u7kleqg/en70bqqj#6a446d5e);在 Workflow 技能中可消费这部分全局变量 + Metadata string `json:"metadata,omitempty"` // 会话的自定义变量内容, 变量数据保存在服务端 Session 中, 可在 `GetSession` 时原样返回, 无需在 API 调用侧存储 +} + +// getAilySessionResp ... +type getAilySessionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAilySessionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_run_cancel.go b/api_aily_aily_session_run_cancel.go new file mode 100644 index 00000000..1db8445b --- /dev/null +++ b/api_aily_aily_session_run_cancel.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilySessionRunCancel 该 API 用于中止某个飞书 Aily 的一次运行。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-run/cancel +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-run/cancel +func (r *AilyService) CreateAilySessionRunCancel(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilySessionRunCancel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySessionRunCancel mock enable") + return r.cli.mock.mockAilyCreateAilySessionRunCancel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilySessionRunCancel", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/runs/:run_id/cancel", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilySessionRunCancelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilySessionRunCancel mock AilyCreateAilySessionRunCancel method +func (r *Mock) MockAilyCreateAilySessionRunCancel(f func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error)) { + r.mockAilyCreateAilySessionRunCancel = f +} + +// UnMockAilyCreateAilySessionRunCancel un-mock AilyCreateAilySessionRunCancel method +func (r *Mock) UnMockAilyCreateAilySessionRunCancel() { + r.mockAilyCreateAilySessionRunCancel = nil +} + +// CreateAilySessionRunCancelReq ... +type CreateAilySessionRunCancelReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + RunID string `path:"run_id" json:"-"` // 运行的唯一 ID示例值: "run_4dfrxvctjqzzj" 长度范围: `5` ~ `32` 字符 +} + +// CreateAilySessionRunCancelResp ... +type CreateAilySessionRunCancelResp struct { + Run *CreateAilySessionRunCancelRespRun `json:"run,omitempty"` // 运行信息 +} + +// CreateAilySessionRunCancelRespRun ... +type CreateAilySessionRunCancelRespRun struct { + ID string `json:"id,omitempty"` // 运行 ID + CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 + AppID string `json:"app_id,omitempty"` // 应用 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + Status string `json:"status,omitempty"` // 运行状态;详见 [Run 状态机说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc#part-LGZrdJTUFo5c8XxSpYXcm3oknEd)> 如中止已在终态(如 `COMPLETED`)的 `Run`, 不会改变 `Run` 的状态 + StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 + EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 + Error *CreateAilySessionRunCancelRespRunError `json:"error,omitempty"` // 失败时的错误信息 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 +} + +// CreateAilySessionRunCancelRespRunError ... +type CreateAilySessionRunCancelRespRunError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // 错误信息 +} + +// createAilySessionRunCancelResp ... +type createAilySessionRunCancelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilySessionRunCancelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_run_create.go b/api_aily_aily_session_run_create.go new file mode 100644 index 00000000..2ba5f0c8 --- /dev/null +++ b/api_aily_aily_session_run_create.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilySessionRun 该 API 用于在某个飞书 Aily 应用会话(Session)上创建一次运行(Run)。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-run/create +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-run/create +func (r *AilyService) CreateAilySessionRun(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilySessionRun != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySessionRun mock enable") + return r.cli.mock.mockAilyCreateAilySessionRun(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilySessionRun", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/runs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilySessionRunResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilySessionRun mock AilyCreateAilySessionRun method +func (r *Mock) MockAilyCreateAilySessionRun(f func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error)) { + r.mockAilyCreateAilySessionRun = f +} + +// UnMockAilyCreateAilySessionRun un-mock AilyCreateAilySessionRun method +func (r *Mock) UnMockAilyCreateAilySessionRun() { + r.mockAilyCreateAilySessionRun = nil +} + +// CreateAilySessionRunReq ... +type CreateAilySessionRunReq struct { + XAilyBizUserID *string `header:"X-Aily-BizUserID" json:"-"` // 为标识创建会话的唯一用户 ID- 建议使用唯一内部 ID 或其他可标识用户唯一身份的字段(如飞书账号的 user_id), 可用于分析来自 API 的具体用户示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `64` 字符 + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `0` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + AppID string `json:"app_id,omitempty"` // 为 Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_449d72db2f__c" 长度范围: `0` ~ `64` 字符 + SkillID *string `json:"skill_id,omitempty"` // 指定技能 ID(`skill_xxx`), 可以在 Aily 技能配置页面的浏览器地址里获取> 指定技能后、能够节省意图匹配的耗时示例值: "skill_6cc6166178ca" 长度范围: `0` ~ `32` 字符 + SkillInput *string `json:"skill_input,omitempty"` // 指定技能 ID 时可以同时指定技能输入> 备注: 常用于工作流技能内指定自定义参数, `skill_input` 需要配合 `skill_id` 同时传递才能生效示例值: "{\"key\": \"value\"}" 长度范围: `0` ~ `255` 字符 + Metadata *string `json:"metadata,omitempty"` // 其他扩展的参数(JSON String)> 备注: `metadata` 传递的参数, 可以在后续 `GetRun` 调用中原样读取获得示例值: "{}" 长度范围: `0` ~ `255` 字符 +} + +// CreateAilySessionRunResp ... +type CreateAilySessionRunResp struct { + Run *CreateAilySessionRunRespRun `json:"run,omitempty"` // 运行信息 +} + +// CreateAilySessionRunRespRun ... +type CreateAilySessionRunRespRun struct { + ID string `json:"id,omitempty"` // 运行 ID + CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 + AppID string `json:"app_id,omitempty"` // 应用 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + Status string `json:"status,omitempty"` // 状态 + StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 + EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 + Error *CreateAilySessionRunRespRunError `json:"error,omitempty"` // 失败时的错误信息 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 +} + +// CreateAilySessionRunRespRunError ... +type CreateAilySessionRunRespRunError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // 错误信息 +} + +// createAilySessionRunResp ... +type createAilySessionRunResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilySessionRunResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_run_get.go b/api_aily_aily_session_run_get.go new file mode 100644 index 00000000..5ee485fe --- /dev/null +++ b/api_aily_aily_session_run_get.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAilySessionRun 该 API 用于获取某个飞书 Aily 应用的运行(Run)的详细信息;包括运行的状态、结束时间等。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-run/get +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-run/get +func (r *AilyService) GetAilySessionRun(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) { + if r.cli.mock.mockAilyGetAilySessionRun != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#GetAilySessionRun mock enable") + return r.cli.mock.mockAilyGetAilySessionRun(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "GetAilySessionRun", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/runs/:run_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getAilySessionRunResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyGetAilySessionRun mock AilyGetAilySessionRun method +func (r *Mock) MockAilyGetAilySessionRun(f func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error)) { + r.mockAilyGetAilySessionRun = f +} + +// UnMockAilyGetAilySessionRun un-mock AilyGetAilySessionRun method +func (r *Mock) UnMockAilyGetAilySessionRun() { + r.mockAilyGetAilySessionRun = nil +} + +// GetAilySessionRunReq ... +type GetAilySessionRunReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + RunID string `path:"run_id" json:"-"` // 运行的唯一 ID示例值: "run_4dfrxvctjqzzj" 长度范围: `5` ~ `32` 字符- 正则校验: `run_[0-9a-hjkmnp-z]{1, 28}` +} + +// GetAilySessionRunResp ... +type GetAilySessionRunResp struct { + Run *GetAilySessionRunRespRun `json:"run,omitempty"` // 运行信息 +} + +// GetAilySessionRunRespRun ... +type GetAilySessionRunRespRun struct { + ID string `json:"id,omitempty"` // 运行 ID + CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 + AppID string `json:"app_id,omitempty"` // 应用 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + Status string `json:"status,omitempty"` // 运行状态;详见 [Run 状态机说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc#part-LGZrdJTUFo5c8XxSpYXcm3oknEd)- 对于 `COMPLETED` 状态的运行、可通过 `ListMessage` 接口获取 Bot 返回的消息内容。 + StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 + EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 + Error *GetAilySessionRunRespRunError `json:"error,omitempty"` // 失败时的错误信息 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 +} + +// GetAilySessionRunRespRunError ... +type GetAilySessionRunRespRunError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // 错误信息 +} + +// getAilySessionRunResp ... +type getAilySessionRunResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAilySessionRunResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_run_list.go b/api_aily_aily_session_run_list.go new file mode 100644 index 00000000..150d5160 --- /dev/null +++ b/api_aily_aily_session_run_list.go @@ -0,0 +1,105 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAilySessionRun 该 API 用于列出某个飞书 Aily 应用的运行(Run)的详细信息;包括状态、结束时间等。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// ## 实体概念说明 +// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。 +// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。 +// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-run/list +// new doc: https://open.feishu.cn/document/aily-v1/aily_session-run/list +func (r *AilyService) ListAilySessionRun(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) { + if r.cli.mock.mockAilyListAilySessionRun != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#ListAilySessionRun mock enable") + return r.cli.mock.mockAilyListAilySessionRun(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "ListAilySessionRun", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/runs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAilySessionRunResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyListAilySessionRun mock AilyListAilySessionRun method +func (r *Mock) MockAilyListAilySessionRun(f func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error)) { + r.mockAilyListAilySessionRun = f +} + +// UnMockAilyListAilySessionRun un-mock AilyListAilySessionRun method +func (r *Mock) UnMockAilyListAilySessionRun() { + r.mockAilyListAilySessionRun = nil +} + +// ListAilySessionRunReq ... +type ListAilySessionRunReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + PageSize *int64 `query:"page_size" json:"-"` // 本次请求获取的运行记录条数, 默认 20示例值: 20 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListAilySessionRunResp ... +type ListAilySessionRunResp struct { + Runs []*ListAilySessionRunRespRun `json:"runs,omitempty"` // 运行列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAilySessionRunRespRun ... +type ListAilySessionRunRespRun struct { + ID string `json:"id,omitempty"` // 运行 ID + CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 + AppID string `json:"app_id,omitempty"` // 应用 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + Status string `json:"status,omitempty"` // 状态 + StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 + EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 + Error *ListAilySessionRunRespRunError `json:"error,omitempty"` // 失败时的错误信息 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 +} + +// ListAilySessionRunRespRunError ... +type ListAilySessionRunRespRunError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // 错误信息 +} + +// listAilySessionRunResp ... +type listAilySessionRunResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAilySessionRunResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_aily_session_update.go b/api_aily_aily_session_update.go new file mode 100644 index 00000000..e3eb3c86 --- /dev/null +++ b/api_aily_aily_session_update.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateAilySession 该 API 用于更新与某个飞书 Aily 应用的一次会话(Session)的信息。 +// +// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/update +// new doc: https://open.feishu.cn/document/aily-v1/aily_session/update +func (r *AilyService) UpdateAilySession(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) { + if r.cli.mock.mockAilyUpdateAilySession != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#UpdateAilySession mock enable") + return r.cli.mock.mockAilyUpdateAilySession(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "UpdateAilySession", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateAilySessionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyUpdateAilySession mock AilyUpdateAilySession method +func (r *Mock) MockAilyUpdateAilySession(f func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error)) { + r.mockAilyUpdateAilySession = f +} + +// UnMockAilyUpdateAilySession un-mock AilyUpdateAilySession method +func (r *Mock) UnMockAilyUpdateAilySession() { + r.mockAilyUpdateAilySession = nil +} + +// UpdateAilySessionReq ... +type UpdateAilySessionReq struct { + AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` + ChannelContext *string `json:"channel_context,omitempty"` // 可自行构造的 Context [上下文变量](https://aily.feishu.cn/hc/1u7kleqg/en70bqqj#6a446d5e);在 Workflow 技能中可消费这部分全局变量示例值: "{}" 长度范围: `0` ~ `255` 字符 + Metadata *string `json:"metadata,omitempty"` // 会话的自定义变量内容, 变量数据保存在服务端 Session 中, 可在 `GetSession` 时原样返回, 无需在 API 调用侧存储示例值: "{}" 长度范围: `0` ~ `255` 字符 +} + +// UpdateAilySessionResp ... +type UpdateAilySessionResp struct { + Session *UpdateAilySessionRespSession `json:"session,omitempty"` // 会话信息 +} + +// UpdateAilySessionRespSession ... +type UpdateAilySessionRespSession struct { + ID string `json:"id,omitempty"` // 会话 ID + CreatedAt string `json:"created_at,omitempty"` // 会话的创建时间, 毫秒时间戳 + ModifiedAt string `json:"modified_at,omitempty"` // 会话的上次更新时间, 毫秒时间戳 + CreatedBy string `json:"created_by,omitempty"` // 会话的创建人(Aily UserID) + ChannelContext string `json:"channel_context,omitempty"` // 可自行构造的 Context [上下文变量](https://aily.feishu.cn/hc/1u7kleqg/en70bqqj#6a446d5e);在 Workflow 技能中可消费这部分全局变量 + Metadata string `json:"metadata,omitempty"` // 会话的自定义变量内容, 变量数据保存在服务端 Session 中, 可在 `GetSession` 时原样返回, 无需在 API 调用侧存储 +} + +// updateAilySessionResp ... +type updateAilySessionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateAilySessionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_create.go b/api_aily_app_data_asset_create.go new file mode 100644 index 00000000..105f2b38 --- /dev/null +++ b/api_aily_app_data_asset_create.go @@ -0,0 +1,173 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilyAppDataAsset 在 Aily 中添加单个数据知识 +// +// - 仅支持开发环境 +// - 开发者需要 Aily 平台的应用协作者角色, 包括管理员、开发者、运维人员 +// - 使用应用身份仅支持[ Aily 平台](https://aily.feishu.cn)渠道的应用身份 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset/create +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/create +func (r *AilyService) CreateAilyAppDataAsset(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilyAppDataAsset != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilyAppDataAsset mock enable") + return r.cli.mock.mockAilyCreateAilyAppDataAsset(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilyAppDataAsset", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_assets", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilyAppDataAssetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilyAppDataAsset mock AilyCreateAilyAppDataAsset method +func (r *Mock) MockAilyCreateAilyAppDataAsset(f func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error)) { + r.mockAilyCreateAilyAppDataAsset = f +} + +// UnMockAilyCreateAilyAppDataAsset un-mock AilyCreateAilyAppDataAsset method +func (r *Mock) UnMockAilyCreateAilyAppDataAsset() { + r.mockAilyCreateAilyAppDataAsset = nil +} + +// CreateAilyAppDataAssetReq ... +type CreateAilyAppDataAssetReq struct { + AppID string `path:"app_id" json:"-"` // Aily 平台的应用的APPID, 可以直接从 Aily 应用的URL中获取。获取示例: /ai/{APPID}示例值: "spring_dfasdf__c" 长度范围: `0` ~ `255` 字符 + TenantType *string `query:"tenant_type" json:"-"` // 应用环境, 枚举值: `online`: 线上环境(默认值)- `dev`: 开发环境;目前只支持 `dev`示例值: dev 长度范围: `0` ~ `255` 字符 + ConnectType string `json:"connect_type,omitempty"` // 连接类型示例值: "direct"可选值有: 导入模式直连模式 长度范围: `0` ~ `255` 字符 + SourceType string `json:"source_type,omitempty"` // 数据源类型示例值: "file"可选值有: 文件, 只支持导入模式飞书知识空间, 只支持直连模式飞书云文档, 导入模式只支持docx飞书服务台, 只支持直连模式 长度范围: `0` ~ `255` 字符 + ImportKnowledgeSetting *CreateAilyAppDataAssetReqImportKnowledgeSetting `json:"import_knowledge_setting,omitempty"` // 知识导入配置 + Description interface{} `json:"description,omitempty"` // 数据知识描述信息示例值: {"zh_cn":"描述"} +} + +// CreateAilyAppDataAssetReqImportKnowledgeSetting ... +type CreateAilyAppDataAssetReqImportKnowledgeSetting struct { + ChunkSetting *CreateAilyAppDataAssetReqImportKnowledgeSettingChunkSetting `json:"chunk_setting,omitempty"` // 知识切片配置 + File *CreateAilyAppDataAssetReqImportKnowledgeSettingFile `json:"file,omitempty"` // 知识导入-文件 + LarkDoc *CreateAilyAppDataAssetReqImportKnowledgeSettingLarkDoc `json:"lark_doc,omitempty"` // 知识导入-飞书云文档 + LarkWikiSpace *CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpace `json:"lark_wiki_space,omitempty"` // 知识导入-飞书知识空间 + LarkHelpdesk *CreateAilyAppDataAssetReqImportKnowledgeSettingLarkHelpdesk `json:"lark_helpdesk,omitempty"` // 知识导入-飞书服务台 +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingChunkSetting ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingChunkSetting struct { + RuleType string `json:"rule_type,omitempty"` // 切片规则示例值: "intelligent"可选值有: 按标识符智能切片 长度范围: `0` ~ `255` 字符 + SeparateType *string `json:"separate_type,omitempty"` // 切片分割符类型示例值: "paragraph"可选值有: 段落分隔符: "\n\n"、"\n"、空格标题分割符: ###### 长度范围: `0` ~ `255` 字符 + Size *int64 `json:"size,omitempty"` // 分段最大长度(字符), 按标识符切片时必须填写示例值: 600 取值范围: `200` ~ `1000` + Overlap *int64 `json:"overlap,omitempty"` // 分段重叠字符数, 按标识符切片时必须填写, 不能超过size的数值示例值: 10 取值范围: `0` ~ `200` +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingFile ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingFile struct { + Title *string `json:"title,omitempty"` // 文件标题示例值: "文件标题" 长度范围: `0` ~ `255` 字符 + Token *string `json:"token,omitempty"` // 上传文件获取到的token。和content二选一, 优先使用token。示例值: "bb690637b49440b08f39459a2fdcd2ca" 长度范围: `0` ~ `255` 字符 + Content *string `json:"content,omitempty"` // 文件内容。和token二选一, 优先使用token。有长度限制, 大文件优先使用token方式。示例值: "这是文件内容" 长度范围: `0` ~ `65536` 字符 + MimeType *string `json:"mime_type,omitempty"` // 文件内容对应的 MIME 类型, 必须填写可选值: text/plain (.txt)- application/pdf (.pdf)- application/vnd.openxmlformats-officedocument.presentationml.presentation (.pptx)- application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)示例值: "application/pdf" 长度范围: `0` ~ `255` 字符 + URL *string `json:"url,omitempty"` // 文件源的URL示例值: "https://document.com/1" 长度范围: `0` ~ `65535` 字符 +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingLarkDoc ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingLarkDoc struct { + Type string `json:"type,omitempty"` // 云文档类型示例值: "docx"可选值有: 飞书文档飞书文件飞书知识库飞书新版文档飞书文件夹 长度范围: `0` ~ `255` 字符 + Token string `json:"token,omitempty"` // 云文档token, 可以通过[搜索云文档](https://open.larkoffice.com/document/server-docs/docs/drive-v1/search/document-search)API获取示例值: "T8FAcuilgC1fdaxkt58vcp91xngh" 长度范围: `0` ~ `255` 字符 + WithSubDocs *bool `json:"with_sub_docs,omitempty"` // 是否包含子文档, 只有wiki类型的云文档支持示例值: false +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingLarkHelpdesk ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingLarkHelpdesk struct { + HelpdeskID string `json:"helpdesk_id,omitempty"` // 飞书服务台ID, 可以通过[服务台-接入指南](https://open.larkoffice.com/document/server-docs/helpdesk-v1/access-guide) 获取示例值: "123" 长度范围: `0` ~ `255` 字符 +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpace ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpace struct { + SpaceID string `json:"space_id,omitempty"` // 飞书知识空间ID, 可以通过[搜索 Wiki](https://open.larkoffice.com/document/server-docs/docs/wiki-v2/search_wiki)API获取示例值: "798546548961351" 长度范围: `0` ~ `255` 字符 + SubDocs []*CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpaceSubDoc `json:"sub_docs,omitempty"` // 指定知识空间子节点时使用 + URL *string `json:"url,omitempty"` // 知识空间URL示例值: "https://ai-tenant.feishu-boe.cn/wiki/space/7283525110814736404" 长度范围: `0` ~ `65535` 字符 +} + +// CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpaceSubDoc ... +type CreateAilyAppDataAssetReqImportKnowledgeSettingLarkWikiSpaceSubDoc struct { + Type string `json:"type,omitempty"` // 云文档类型, 只支持wiki中的云文档示例值: "wiki"可选值有: 飞书知识库 长度范围: `0` ~ `255` 字符 + Token string `json:"token,omitempty"` // 云文档token, 可以通过[搜索云文档](https://open.larkoffice.com/document/server-docs/docs/drive-v1/search/document-search)API获取示例值: "T8FAcuilgC1fdaxkt58vcp91xngh" 长度范围: `0` ~ `255` 字符 + URL *string `json:"url,omitempty"` // 云文档链接示例值: "https://cdas.feishu.cn/wiki/fdisu1" 长度范围: `0` ~ `65535` 字符 +} + +// CreateAilyAppDataAssetResp ... +type CreateAilyAppDataAssetResp struct { + DataAsset *CreateAilyAppDataAssetRespDataAsset `json:"data_asset,omitempty"` // 数据知识 +} + +// CreateAilyAppDataAssetRespDataAsset ... +type CreateAilyAppDataAssetRespDataAsset struct { + DataAssetID string `json:"data_asset_id,omitempty"` // 数据知识ID + Label interface{} `json:"label,omitempty"` // 数据知识标题 + Description interface{} `json:"description,omitempty"` // 数据知识描述 + DataSourceType string `json:"data_source_type,omitempty"` // 数据资源类型可选值有: excelpdfpptxtxtdocxmysqlpostgresql飞书多维表格salesforce分享逍客巨量千川clickhousedatabricks飞书服务台飞书Wiki旧版飞书云文档, 目前已不支持飞书docs新版飞书云文档, 当前创建的飞书云文档均为此类型云盘/wiki中的pdf文件pdf文件云盘/wiki中的.docx(Word)云盘/wiki中的.pptx(Powerpoint)飞书电子表格飞书多维表格飞书个人文件夹飞书共享文件夹数据表 + ConnectStatus string `json:"connect_status,omitempty"` // 数据连接状态可选值有: 等待连接连接中连接成功增量同步中部分成功连接失败 + Tags []*CreateAilyAppDataAssetRespDataAssetTag `json:"tags,omitempty"` // 数据知识分类列表 + Items []*CreateAilyAppDataAssetRespDataAssetItem `json:"items,omitempty"` // 数据知识项列表 + ConnectFailedReason string `json:"connect_failed_reason,omitempty"` // 连接状态失败信息 + ConnectType string `json:"connect_type,omitempty"` // 数据连接类型可选值有: 导入直连 + CreatedTime string `json:"created_time,omitempty"` // 创建时间, 毫秒时间戳 + UpdatedTime string `json:"updated_time,omitempty"` // 更新时间, 毫秒时间戳 +} + +// CreateAilyAppDataAssetRespDataAssetItem ... +type CreateAilyAppDataAssetRespDataAssetItem struct { + DataAssetItemID string `json:"data_asset_item_id,omitempty"` // 数据知识项ID + ApiName string `json:"api_name,omitempty"` // 数据知识项标识 + Label interface{} `json:"label,omitempty"` // 数据知识项标题 + Description interface{} `json:"description,omitempty"` // 数据知识项描述 + Resources []*CreateAilyAppDataAssetRespDataAssetItemResource `json:"resources,omitempty"` // 数据知识资源 +} + +// CreateAilyAppDataAssetRespDataAssetItemResource ... +type CreateAilyAppDataAssetRespDataAssetItemResource struct { + ResourceID string `json:"resource_id,omitempty"` // 数据知识资源ID + ResourceType string `json:"resource_type,omitempty"` // 数据知识资源类型可选值有: 数据视图知识视图 +} + +// CreateAilyAppDataAssetRespDataAssetTag ... +type CreateAilyAppDataAssetRespDataAssetTag struct { + DataAssetTagID string `json:"data_asset_tag_id,omitempty"` // 数据知识分类名称 + Name string `json:"name,omitempty"` // 数据知识分类ID +} + +// createAilyAppDataAssetResp ... +type createAilyAppDataAssetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilyAppDataAssetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_delete.go b/api_aily_app_data_asset_delete.go new file mode 100644 index 00000000..697d5da7 --- /dev/null +++ b/api_aily_app_data_asset_delete.go @@ -0,0 +1,118 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteAilyAppDataAsset 删除 Aily 的数据知识 +// +// - 仅支持开发环境 +// - 开发者需要 Aily 平台的应用协作者角色, 包括管理员、开发者、运维人员 +// - 使用应用身份仅支持[ Aily 平台](https://aily.feishu.cn)渠道的应用身份 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset/delete +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/delete +func (r *AilyService) DeleteAilyAppDataAsset(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) { + if r.cli.mock.mockAilyDeleteAilyAppDataAsset != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#DeleteAilyAppDataAsset mock enable") + return r.cli.mock.mockAilyDeleteAilyAppDataAsset(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "DeleteAilyAppDataAsset", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_assets/:data_asset_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteAilyAppDataAssetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyDeleteAilyAppDataAsset mock AilyDeleteAilyAppDataAsset method +func (r *Mock) MockAilyDeleteAilyAppDataAsset(f func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error)) { + r.mockAilyDeleteAilyAppDataAsset = f +} + +// UnMockAilyDeleteAilyAppDataAsset un-mock AilyDeleteAilyAppDataAsset method +func (r *Mock) UnMockAilyDeleteAilyAppDataAsset() { + r.mockAilyDeleteAilyAppDataAsset = nil +} + +// DeleteAilyAppDataAssetReq ... +type DeleteAilyAppDataAssetReq struct { + AppID string `path:"app_id" json:"-"` // Aily 平台的应用的APPID, 可以直接从 Aily 应用的URL中获取。获取示例: /ai/{APPID}示例值: "spring_dfadsaf__c" 长度范围: `0` ~ `255` 字符 + DataAssetID string `path:"data_asset_id" json:"-"` // 数据知识ID, 可通过在 Aily 平台查看知识详情页的url中获取, 获取示例 https://*/ai/app_namespace/data/data-asset/data_asset_id示例值: "data_asset_dfadsafe"数据校验规则**: 长度范围: `0` ~ `255` 字符 + TenantType *string `query:"tenant_type" json:"-"` // 应用环境, 枚举值: `online`: 线上环境(默认值)- `dev`: 开发环境;目前只支持 `dev`示例值: dev 长度范围: `0` ~ `255` 字符 +} + +// DeleteAilyAppDataAssetResp ... +type DeleteAilyAppDataAssetResp struct { + DataAsset *DeleteAilyAppDataAssetRespDataAsset `json:"data_asset,omitempty"` // 数据知识 +} + +// DeleteAilyAppDataAssetRespDataAsset ... +type DeleteAilyAppDataAssetRespDataAsset struct { + DataAssetID string `json:"data_asset_id,omitempty"` // 数据知识ID + Label interface{} `json:"label,omitempty"` // 数据知识标题 + Description interface{} `json:"description,omitempty"` // 数据知识描述 + DataSourceType string `json:"data_source_type,omitempty"` // 数据资源类型可选值有: excelpdfpptxtxtdocxmysqlpostgresql飞书多维表格salesforce分享逍客巨量千川clickhousedatabricks飞书服务台飞书Wiki飞书doc飞书docs飞书docx飞书pdf飞书word飞书pptx飞书文档飞书多维表格飞书个人文件夹飞书共享文件夹数据表 + ConnectStatus string `json:"connect_status,omitempty"` // 数据连接状态可选值有: 等待连接连接中连接成功增量同步中部分成功连接失败 + Tags []*DeleteAilyAppDataAssetRespDataAssetTag `json:"tags,omitempty"` // 数据知识分类列表 + Items []*DeleteAilyAppDataAssetRespDataAssetItem `json:"items,omitempty"` // 数据知识项列表 + ConnectFailedReason string `json:"connect_failed_reason,omitempty"` // 连接状态失败信息 + ConnectType string `json:"connect_type,omitempty"` // 数据连接类型可选值有: 导入直连 + CreatedTime string `json:"created_time,omitempty"` // 创建时间, 毫秒时间戳 + UpdatedTime string `json:"updated_time,omitempty"` // 更新时间, 毫秒时间戳 +} + +// DeleteAilyAppDataAssetRespDataAssetItem ... +type DeleteAilyAppDataAssetRespDataAssetItem struct { + DataAssetItemID string `json:"data_asset_item_id,omitempty"` // 数据知识项ID + ApiName string `json:"api_name,omitempty"` // 数据知识项标识 + Label interface{} `json:"label,omitempty"` // 数据知识项标题 + Description interface{} `json:"description,omitempty"` // 数据知识项描述 + Resources []*DeleteAilyAppDataAssetRespDataAssetItemResource `json:"resources,omitempty"` // 数据知识资源 +} + +// DeleteAilyAppDataAssetRespDataAssetItemResource ... +type DeleteAilyAppDataAssetRespDataAssetItemResource struct { + ResourceID string `json:"resource_id,omitempty"` // 数据知识资源ID + ResourceType string `json:"resource_type,omitempty"` // 数据知识资源类型可选值有: 数据视图知识视图 +} + +// DeleteAilyAppDataAssetRespDataAssetTag ... +type DeleteAilyAppDataAssetRespDataAssetTag struct { + DataAssetTagID string `json:"data_asset_tag_id,omitempty"` // 数据知识分类名称 + Name string `json:"name,omitempty"` // 数据知识分类ID +} + +// deleteAilyAppDataAssetResp ... +type deleteAilyAppDataAssetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAilyAppDataAssetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_get.go b/api_aily_app_data_asset_get.go new file mode 100644 index 00000000..1eb79fb1 --- /dev/null +++ b/api_aily_app_data_asset_get.go @@ -0,0 +1,119 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAilyAppDataAsset 获取单个数据知识 +// +// - 开发者需要 Aily 平台的应用协作者角色, 包括管理员、开发者、运维人员 +// - 使用应用身份仅支持[ Aily 平台](https://aily.feishu.cn)渠道的应用身份 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset/get +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/get +func (r *AilyService) GetAilyAppDataAsset(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) { + if r.cli.mock.mockAilyGetAilyAppDataAsset != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#GetAilyAppDataAsset mock enable") + return r.cli.mock.mockAilyGetAilyAppDataAsset(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "GetAilyAppDataAsset", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_assets/:data_asset_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getAilyAppDataAssetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyGetAilyAppDataAsset mock AilyGetAilyAppDataAsset method +func (r *Mock) MockAilyGetAilyAppDataAsset(f func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error)) { + r.mockAilyGetAilyAppDataAsset = f +} + +// UnMockAilyGetAilyAppDataAsset un-mock AilyGetAilyAppDataAsset method +func (r *Mock) UnMockAilyGetAilyAppDataAsset() { + r.mockAilyGetAilyAppDataAsset = nil +} + +// GetAilyAppDataAssetReq ... +type GetAilyAppDataAssetReq struct { + AppID string `path:"app_id" json:"-"` // Aily 平台的应用的APPID, 可以直接从 Aily 应用的URL中获取。获取示例: /ai/{APPID}示例值: "spring_feafdsaf__c" 长度范围: `1` ~ `255` 字符 + DataAssetID string `path:"data_asset_id" json:"-"` // 数据知识ID, 可通过在 Aily 平台查看知识详情页的url中获取, 获取示例 https://*/ai/app_namespace/data/data-asset/data_asset_id示例值: "data_asset_dafefadsaf1"数据校验规则**: 长度范围: `1` ~ `255` 字符 + WithDataAssetItem *bool `query:"with_data_asset_item" json:"-"` // 结果是否包含数据与知识项示例值: true + WithConnectStatus *bool `query:"with_connect_status" json:"-"` // 结果是否包含数据知识连接状态示例值: true + TenantType *string `query:"tenant_type" json:"-"` // 应用环境, 默认为线上环境, dev代表开发环境示例值: dev 长度范围: `0` ~ `255` 字符 +} + +// GetAilyAppDataAssetResp ... +type GetAilyAppDataAssetResp struct { + DataAsset *GetAilyAppDataAssetRespDataAsset `json:"data_asset,omitempty"` // 数据知识 +} + +// GetAilyAppDataAssetRespDataAsset ... +type GetAilyAppDataAssetRespDataAsset struct { + DataAssetID string `json:"data_asset_id,omitempty"` // 数据知识ID + Label interface{} `json:"label,omitempty"` // 数据知识标题 + Description interface{} `json:"description,omitempty"` // 数据知识描述 + DataSourceType string `json:"data_source_type,omitempty"` // 数据资源类型可选值有: excelpdfpptxtxtdocxmysqlpostgresql飞书多维表格salesforce分享逍客巨量千川clickhousedatabricks飞书服务台飞书Wiki旧版飞书云文档, 不支持飞书docs新版飞书云文档, 目前线上新创建的云文档均属于此类型云盘/wiki中的pdf云盘/wiki中的.docx(Word文档)云盘/wiki中的.pptx(Powerpoint), 不包括飞书幻灯片飞书电子表格飞书多维表格飞书个人文件夹飞书共享文件夹数据表 + ConnectStatus string `json:"connect_status,omitempty"` // 数据连接状态可选值有: 等待连接连接中连接成功增量同步中部分成功连接失败 + Tags []*GetAilyAppDataAssetRespDataAssetTag `json:"tags,omitempty"` // 数据知识分类列表 + Items []*GetAilyAppDataAssetRespDataAssetItem `json:"items,omitempty"` // 数据知识项列表 + ConnectFailedReason string `json:"connect_failed_reason,omitempty"` // 连接状态失败信息 + ConnectType string `json:"connect_type,omitempty"` // 数据连接类型可选值有: 导入直连 + CreatedTime string `json:"created_time,omitempty"` // 创建时间, 毫秒时间戳 + UpdatedTime string `json:"updated_time,omitempty"` // 更新时间, 毫秒时间戳 +} + +// GetAilyAppDataAssetRespDataAssetItem ... +type GetAilyAppDataAssetRespDataAssetItem struct { + DataAssetItemID string `json:"data_asset_item_id,omitempty"` // 数据知识项ID + ApiName string `json:"api_name,omitempty"` // 数据知识项标识 + Label interface{} `json:"label,omitempty"` // 数据知识项标题 + Description interface{} `json:"description,omitempty"` // 数据知识项描述 + Resources []*GetAilyAppDataAssetRespDataAssetItemResource `json:"resources,omitempty"` // 数据知识资源 +} + +// GetAilyAppDataAssetRespDataAssetItemResource ... +type GetAilyAppDataAssetRespDataAssetItemResource struct { + ResourceID string `json:"resource_id,omitempty"` // 数据知识资源ID + ResourceType string `json:"resource_type,omitempty"` // 数据知识资源类型可选值有: 数据视图知识视图 +} + +// GetAilyAppDataAssetRespDataAssetTag ... +type GetAilyAppDataAssetRespDataAssetTag struct { + DataAssetTagID string `json:"data_asset_tag_id,omitempty"` // 数据知识分类名称 + Name string `json:"name,omitempty"` // 数据知识分类ID +} + +// getAilyAppDataAssetResp ... +type getAilyAppDataAssetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAilyAppDataAssetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_list.go b/api_aily_app_data_asset_list.go new file mode 100644 index 00000000..4bc806b3 --- /dev/null +++ b/api_aily_app_data_asset_list.go @@ -0,0 +1,124 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAilyAppDataAsset 获取 Aily 助手的数据知识列表 +// +// - `tenant_access_token` 仅支持[ Aily 平台](https://aily.feishu.cn)的渠道应用身份 +// - `user_access_token` 要求开发者需要 Aily 平台的应用协作者角色, 包括管理员、开发者、运维人员 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset/list +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/list +func (r *AilyService) ListAilyAppDataAsset(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) { + if r.cli.mock.mockAilyListAilyAppDataAsset != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#ListAilyAppDataAsset mock enable") + return r.cli.mock.mockAilyListAilyAppDataAsset(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "ListAilyAppDataAsset", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_assets", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAilyAppDataAssetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyListAilyAppDataAsset mock AilyListAilyAppDataAsset method +func (r *Mock) MockAilyListAilyAppDataAsset(f func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error)) { + r.mockAilyListAilyAppDataAsset = f +} + +// UnMockAilyListAilyAppDataAsset un-mock AilyListAilyAppDataAsset method +func (r *Mock) UnMockAilyListAilyAppDataAsset() { + r.mockAilyListAilyAppDataAsset = nil +} + +// ListAilyAppDataAssetReq ... +type ListAilyAppDataAssetReq struct { + AppID string `path:"app_id" json:"-"` // Aily 平台的应用的APPID, 可以直接从 Aily 应用的URL中获取。获取示例: /ai/{APPID}示例值: "spring_5862e4fea8__c" 长度范围: `0` ~ `255` 字符 + PageSize *int64 `query:"page_size" json:"-"` // 分页参数: 分页大小, 默认: 20, 最大: 100示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Keyword *string `query:"keyword" json:"-"` // 模糊匹配关键词示例值: 电影 长度范围: `0` ~ `255` 字符 + DataAssetIDs []string `query:"data_asset_ids" json:"-"` // 根据数据知识 ID 进行过滤示例值: asset_aadg2b5os5wjg 长度范围: `0` ~ `255` + DataAssetTagIDs []string `query:"data_asset_tag_ids" json:"-"` // 根据数据知识分类 ID 进行过滤示例值: spring_5862e4fea8__c__asset_tag_aadg2b5ql4gbs 长度范围: `0` ~ `255` + WithDataAssetItem *bool `query:"with_data_asset_item" json:"-"` // 结果是否包含数据与知识项目示例值: true + WithConnectStatus *bool `query:"with_connect_status" json:"-"` // 结果是否包含数据连接状态示例值: false +} + +// ListAilyAppDataAssetResp ... +type ListAilyAppDataAssetResp struct { + Items []*ListAilyAppDataAssetRespItem `json:"items,omitempty"` // 数据知识列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAilyAppDataAssetRespItem ... +type ListAilyAppDataAssetRespItem struct { + DataAssetID string `json:"data_asset_id,omitempty"` // 数据知识ID + Label interface{} `json:"label,omitempty"` // 数据知识标题 + Description interface{} `json:"description,omitempty"` // 数据知识描述 + DataSourceType string `json:"data_source_type,omitempty"` // 数据资源类型可选值有: excelpdfpptxtxtdocxmysqlpostgresql飞书多维表格salesforce分享逍客巨量千川clickhousedatabricks飞书服务台飞书Wiki飞书doc飞书docs飞书docx飞书pdf飞书word飞书pptx飞书文档飞书多维表格飞书个人文件夹飞书共享文件夹数据表 + ConnectStatus string `json:"connect_status,omitempty"` // 数据连接状态可选值有: 等待连接连接中连接成功增量同步中部分成功连接失败 + Tags []*ListAilyAppDataAssetRespItemTag `json:"tags,omitempty"` // 数据知识分类列表 + Items []*ListAilyAppDataAssetRespItemItem `json:"items,omitempty"` // 数据知识项列表 + ConnectFailedReason string `json:"connect_failed_reason,omitempty"` // 连接状态失败信息 + ConnectType string `json:"connect_type,omitempty"` // 数据连接类型可选值有: 导入直连 + CreatedTime string `json:"created_time,omitempty"` // 创建时间, 毫秒时间戳 + UpdatedTime string `json:"updated_time,omitempty"` // 更新时间, 毫秒时间戳 +} + +// ListAilyAppDataAssetRespItemItem ... +type ListAilyAppDataAssetRespItemItem struct { + DataAssetItemID string `json:"data_asset_item_id,omitempty"` // 数据知识项ID + ApiName string `json:"api_name,omitempty"` // 数据知识项标识 + Label interface{} `json:"label,omitempty"` // 数据知识项标题 + Description interface{} `json:"description,omitempty"` // 数据知识项描述 + Resources []*ListAilyAppDataAssetRespItemItemResource `json:"resources,omitempty"` // 数据知识资源 +} + +// ListAilyAppDataAssetRespItemItemResource ... +type ListAilyAppDataAssetRespItemItemResource struct { + ResourceID string `json:"resource_id,omitempty"` // 数据知识资源ID + ResourceType string `json:"resource_type,omitempty"` // 数据知识资源类型可选值有: 数据视图知识视图 +} + +// ListAilyAppDataAssetRespItemTag ... +type ListAilyAppDataAssetRespItemTag struct { + DataAssetTagID string `json:"data_asset_tag_id,omitempty"` // 数据知识分类名称 + Name string `json:"name,omitempty"` // 数据知识分类ID +} + +// listAilyAppDataAssetResp ... +type listAilyAppDataAssetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAilyAppDataAssetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_tag_list.go b/api_aily_app_data_asset_tag_list.go new file mode 100644 index 00000000..0910dfb1 --- /dev/null +++ b/api_aily_app_data_asset_tag_list.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAilyAppDataAssetTag 获取 Aily 助手的数据知识分类列表 +// +// - `tenant_access_token` 仅支持[ Aily 平台](https://aily.feishu.cn)的渠道应用身份 +// - `user_access_token` 要求开发者需要 Aily 平台的应用协作者角色, 包括管理员、开发者、运维人员 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset_tag/list +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/list-2 +func (r *AilyService) ListAilyAppDataAssetTag(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) { + if r.cli.mock.mockAilyListAilyAppDataAssetTag != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#ListAilyAppDataAssetTag mock enable") + return r.cli.mock.mockAilyListAilyAppDataAssetTag(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "ListAilyAppDataAssetTag", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_asset_tags", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAilyAppDataAssetTagResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyListAilyAppDataAssetTag mock AilyListAilyAppDataAssetTag method +func (r *Mock) MockAilyListAilyAppDataAssetTag(f func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error)) { + r.mockAilyListAilyAppDataAssetTag = f +} + +// UnMockAilyListAilyAppDataAssetTag un-mock AilyListAilyAppDataAssetTag method +func (r *Mock) UnMockAilyListAilyAppDataAssetTag() { + r.mockAilyListAilyAppDataAssetTag = nil +} + +// ListAilyAppDataAssetTagReq ... +type ListAilyAppDataAssetTagReq struct { + AppID string `path:"app_id" json:"-"` // AppID, 可通过在 Aily 平台进入应用的开发界面中获取, 获取示例 https://*/ai/app_namespace示例值: "spring_5862e4fea8__c"数据校验规则**: 长度范围: `0` ~ `255` 字符 + PageSize *int64 `query:"page_size" json:"-"` // 分页参数: 分页大小, 默认: 20, 最大: 100示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Keyword *string `query:"keyword" json:"-"` // 模糊匹配分类名称示例值: 电影 长度范围: `0` ~ `255` 字符 + DataAssetTagIDs []string `query:"data_asset_tag_ids" json:"-"` // 模糊匹配分类名称示例值: spring_5862e4fea8__c__asset_tag_aadg2b5ql4gbs 长度范围: `0` ~ `255` +} + +// ListAilyAppDataAssetTagResp ... +type ListAilyAppDataAssetTagResp struct { + Items []*ListAilyAppDataAssetTagRespItem `json:"items,omitempty"` // 数据知识分类列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAilyAppDataAssetTagRespItem ... +type ListAilyAppDataAssetTagRespItem struct { + DataAssetTagID string `json:"data_asset_tag_id,omitempty"` // 数据知识分类名称 + Name string `json:"name,omitempty"` // 数据知识分类ID +} + +// listAilyAppDataAssetTagResp ... +type listAilyAppDataAssetTagResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAilyAppDataAssetTagResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_data_asset_upload_file.go b/api_aily_app_data_asset_upload_file.go new file mode 100644 index 00000000..26b2ade8 --- /dev/null +++ b/api_aily_app_data_asset_upload_file.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" + "io" +) + +// UploadAilyAppDataAssetFile 上传文件用于 Aily 的数据知识管理 +// +// 。 +// - 仅支持开发环境 +// - 开发者需要 Aily 创建平台的应用协作者角色, 包括管理员、开发者、运维人员 +// - 使用应用身份仅支持[ Aily 平台](https://aily.feishu.cn)渠道的应用身份 +// - 仅支持上传docx、txt、pdf、pptx类型的文件 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-data_asset/upload_file +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/data-knowledge-management/upload_file +func (r *AilyService) UploadAilyAppDataAssetFile(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) { + if r.cli.mock.mockAilyUploadAilyAppDataAssetFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#UploadAilyAppDataAssetFile mock enable") + return r.cli.mock.mockAilyUploadAilyAppDataAssetFile(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "UploadAilyAppDataAssetFile", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/data_assets/upload_file", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + IsFile: true, + } + resp := new(uploadAilyAppDataAssetFileResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyUploadAilyAppDataAssetFile mock AilyUploadAilyAppDataAssetFile method +func (r *Mock) MockAilyUploadAilyAppDataAssetFile(f func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error)) { + r.mockAilyUploadAilyAppDataAssetFile = f +} + +// UnMockAilyUploadAilyAppDataAssetFile un-mock AilyUploadAilyAppDataAssetFile method +func (r *Mock) UnMockAilyUploadAilyAppDataAssetFile() { + r.mockAilyUploadAilyAppDataAssetFile = nil +} + +// UploadAilyAppDataAssetFileReq ... +type UploadAilyAppDataAssetFileReq struct { + AppID string `path:"app_id" json:"-"` // Aily 平台的应用的APPID, 可以直接从 Aily 应用的URL中获取。获取示例: /ai/{APPID}示例值: "spring_dsafdsaf__c" 长度范围: `0` ~ `255` 字符 + TenantType *string `query:"tenant_type" json:"-"` // 应用环境, 枚举值: `online`: 线上环境(默认值)- `dev`: 开发环境;目前只支持 `dev`示例值: dev 长度范围: `0` ~ `255` 字符 + File io.Reader `json:"file,omitempty"` // 需要上传的文件。仅支持上传 docx、txt、pdf、pptx 类型的文件。示例值: file binary +} + +// UploadAilyAppDataAssetFileResp ... +type UploadAilyAppDataAssetFileResp struct { + FileInfo *UploadAilyAppDataAssetFileRespFileInfo `json:"file_info,omitempty"` // 数据知识文件 +} + +// UploadAilyAppDataAssetFileRespFileInfo ... +type UploadAilyAppDataAssetFileRespFileInfo struct { + Token string `json:"token,omitempty"` // 数据知识文件 token + MimeType string `json:"mime_type,omitempty"` // 解析出的文件类型, 包括pdf、docx、pptx、txt +} + +// uploadAilyAppDataAssetFileResp ... +type uploadAilyAppDataAssetFileResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UploadAilyAppDataAssetFileResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_knowledge_ask.go b/api_aily_app_knowledge_ask.go new file mode 100644 index 00000000..f5fecfb5 --- /dev/null +++ b/api_aily_app_knowledge_ask.go @@ -0,0 +1,111 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilyAppKnowledgeAsk 执行飞书 Aily 的数据知识问答, 返回基于指定数据知识的问答结果 +// +// - 此接口以Server-sent Events(SSE)方式更新问答结果, 需要注意响应体格式 +// - 使用 `tenant_access_token` 需要在智能伙伴管理后台开启”支持使用应用身份调用 API 和 SDK” +// - 使用 `tenant_access_token` 无法对直连模式引入的飞书云文档执行数据知识问答 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-knowledge/ask +// new doc: https://open.feishu.cn/document/aily-v1/data-knowledge/ask +func (r *AilyService) CreateAilyAppKnowledgeAsk(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilyAppKnowledgeAsk != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilyAppKnowledgeAsk mock enable") + return r.cli.mock.mockAilyCreateAilyAppKnowledgeAsk(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilyAppKnowledgeAsk", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/knowledges/ask", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilyAppKnowledgeAskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilyAppKnowledgeAsk mock AilyCreateAilyAppKnowledgeAsk method +func (r *Mock) MockAilyCreateAilyAppKnowledgeAsk(f func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error)) { + r.mockAilyCreateAilyAppKnowledgeAsk = f +} + +// UnMockAilyCreateAilyAppKnowledgeAsk un-mock AilyCreateAilyAppKnowledgeAsk method +func (r *Mock) UnMockAilyCreateAilyAppKnowledgeAsk() { + r.mockAilyCreateAilyAppKnowledgeAsk = nil +} + +// CreateAilyAppKnowledgeAskReq ... +type CreateAilyAppKnowledgeAskReq struct { + AppID string `path:"app_id" json:"-"` // 飞书 Aily 平台的AppID, 通过飞书 Aily 平台创建应用获取示例值: "spring_5862e4fea8__c" 长度范围: `1` ~ `255` 字符 + Message *CreateAilyAppKnowledgeAskReqMessage `json:"message,omitempty"` // 输入消息(message包含content参数, 当前仅支持纯文本输入) + DataAssetIDs []string `json:"data_asset_ids,omitempty"` // 控制知识问答所依据的数据知识范围, 默认值为空, 此时不限制数据知识范围示例值: ["asset_aadg2b5os5wjg"] 长度范围: `0` ~ `65535` + DataAssetTagIDs []string `json:"data_asset_tag_ids,omitempty"` // 控制知识问答所依据的数据知识分类范围, 默认值为空, 此时不限制数据知识分类范围示例值: ["spring_5862e4fea8__c__asset_tag_aadg2b5ql4gbs"] 长度范围: `0` ~ `65535` +} + +// CreateAilyAppKnowledgeAskReqMessage ... +type CreateAilyAppKnowledgeAskReqMessage struct { + Content *string `json:"content,omitempty"` // 消息内容示例值: "推荐一部电影" 长度范围: `1` ~ `65535` 字符 +} + +// CreateAilyAppKnowledgeAskResp ... +type CreateAilyAppKnowledgeAskResp struct { + Status string `json:"status,omitempty"` // 响应状态, 枚举值可选值有: 当前知识问答正在处理中当前知识问答处理完成 + FinishType string `json:"finish_type,omitempty"` // 结束类型, 枚举值可选值有: 执行数据知识问答执行标准问答对 + Message *CreateAilyAppKnowledgeAskRespMessage `json:"message,omitempty"` // 响应消息 + ProcessData *CreateAilyAppKnowledgeAskRespProcessData `json:"process_data,omitempty"` // 知识问答运行过程结构化数据, status=finished 且 finish_type=qa 时返回 + FAQResult *CreateAilyAppKnowledgeAskRespFAQResult `json:"faq_result,omitempty"` // 匹配标准问答对结果, status=finished 且 finish_type=faq时返回 + HasAnswer bool `json:"has_answer,omitempty"` // 是否有结果, true 则 代表 message 中的内容是通过配置知识而生成的 +} + +// CreateAilyAppKnowledgeAskRespFAQResult ... +type CreateAilyAppKnowledgeAskRespFAQResult struct { + Question string `json:"question,omitempty"` // 匹配问题 + Answer string `json:"answer,omitempty"` // 匹配描述 +} + +// CreateAilyAppKnowledgeAskRespMessage ... +type CreateAilyAppKnowledgeAskRespMessage struct { + Content string `json:"content,omitempty"` // 消息内容 +} + +// CreateAilyAppKnowledgeAskRespProcessData ... +type CreateAilyAppKnowledgeAskRespProcessData struct { + ChartDsls []string `json:"chart_dsls,omitempty"` // 有数据分析时, 根据数据生成的图表描述, 按markdown语义描述 + Chunks []string `json:"chunks,omitempty"` // 召回的知识视图切片的文本数据 + SqlData []string `json:"sql_data,omitempty"` // 有数据分析时, 查询到数据结果, 每个元素为 json 序列化后的数据结果 +} + +// createAilyAppKnowledgeAskResp ... +type createAilyAppKnowledgeAskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilyAppKnowledgeAskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_skill_get.go b/api_aily_app_skill_get.go new file mode 100644 index 00000000..0b92fb1d --- /dev/null +++ b/api_aily_app_skill_get.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAilyAppSkill 该 API 用于查询某个 Aily 应用的特定技能详情 +// +// 更多信息及示例代码, 可参考 [Aily 技能 OpenAPI 接口说明](https://bytedance.larkoffice.com/wiki/ZkKnwxogliNj3ik9ppEc0cFUnAd)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-skill/get +// new doc: https://open.feishu.cn/document/aily-v1/app-skill/get +func (r *AilyService) GetAilyAppSkill(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) { + if r.cli.mock.mockAilyGetAilyAppSkill != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#GetAilyAppSkill mock enable") + return r.cli.mock.mockAilyGetAilyAppSkill(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "GetAilyAppSkill", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/skills/:skill_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getAilyAppSkillResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyGetAilyAppSkill mock AilyGetAilyAppSkill method +func (r *Mock) MockAilyGetAilyAppSkill(f func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error)) { + r.mockAilyGetAilyAppSkill = f +} + +// UnMockAilyGetAilyAppSkill un-mock AilyGetAilyAppSkill method +func (r *Mock) UnMockAilyGetAilyAppSkill() { + r.mockAilyGetAilyAppSkill = nil +} + +// GetAilyAppSkillReq ... +type GetAilyAppSkillReq struct { + AppID string `path:"app_id" json:"-"` // Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_e7004f87f1__c" 长度范围: `0` ~ `64` 字符 + SkillID string `path:"skill_id" json:"-"` // 技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)示例值: "skill_6cc6166178ca" 长度范围: `0` ~ `32` 字符 +} + +// GetAilyAppSkillResp ... +type GetAilyAppSkillResp struct { + Skill *GetAilyAppSkillRespSkill `json:"skill,omitempty"` // 技能信息 +} + +// GetAilyAppSkillRespSkill ... +type GetAilyAppSkillRespSkill struct { + ID string `json:"id,omitempty"` // 技能 ID + Label string `json:"label,omitempty"` // 技能名称 + Description string `json:"description,omitempty"` // 技能描述 + Samples []string `json:"samples,omitempty"` // 用户提问示例 + InputSchema string `json:"input_schema,omitempty"` // 技能入参定义 + OutputSchema string `json:"output_schema,omitempty"` // 技能出参定义 +} + +// getAilyAppSkillResp ... +type getAilyAppSkillResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAilyAppSkillResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_skill_list.go b/api_aily_app_skill_list.go new file mode 100644 index 00000000..cab5af78 --- /dev/null +++ b/api_aily_app_skill_list.go @@ -0,0 +1,93 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAilyAppSkill 该 API 用于查询某个 Aily 应用的技能列表 +// +// > 包括内置的数据分析与问答技能、以及未在对话开启的技能。 +// 更多信息及示例代码, 可参考 [Aily 技能 OpenAPI 接口说明](https://bytedance.larkoffice.com/wiki/ZkKnwxogliNj3ik9ppEc0cFUnAd)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-skill/list +// new doc: https://open.feishu.cn/document/aily-v1/app-skill/list +func (r *AilyService) ListAilyAppSkill(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) { + if r.cli.mock.mockAilyListAilyAppSkill != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#ListAilyAppSkill mock enable") + return r.cli.mock.mockAilyListAilyAppSkill(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "ListAilyAppSkill", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/skills", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAilyAppSkillResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyListAilyAppSkill mock AilyListAilyAppSkill method +func (r *Mock) MockAilyListAilyAppSkill(f func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error)) { + r.mockAilyListAilyAppSkill = f +} + +// UnMockAilyListAilyAppSkill un-mock AilyListAilyAppSkill method +func (r *Mock) UnMockAilyListAilyAppSkill() { + r.mockAilyListAilyAppSkill = nil +} + +// ListAilyAppSkillReq ... +type ListAilyAppSkillReq struct { + AppID string `path:"app_id" json:"-"` // Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_e7004f87f1__c" 长度范围: `0` ~ `64` 字符 + PageSize *int64 `query:"page_size" json:"-"` // 本次请求获取的消息记录条数, 默认 20示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListAilyAppSkillResp ... +type ListAilyAppSkillResp struct { + Skills []*ListAilyAppSkillRespSkill `json:"skills,omitempty"` // 技能列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAilyAppSkillRespSkill ... +type ListAilyAppSkillRespSkill struct { + ID string `json:"id,omitempty"` // 技能 ID + Label string `json:"label,omitempty"` // 技能名称 + Description string `json:"description,omitempty"` // 技能描述 + Samples []string `json:"samples,omitempty"` // 用户提问示例 + InputSchema string `json:"input_schema,omitempty"` // 技能入参定义 + OutputSchema string `json:"output_schema,omitempty"` // 技能出参定义 +} + +// listAilyAppSkillResp ... +type listAilyAppSkillResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAilyAppSkillResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_aily_app_skill_start.go b/api_aily_app_skill_start.go new file mode 100644 index 00000000..1e7046a5 --- /dev/null +++ b/api_aily_app_skill_start.go @@ -0,0 +1,99 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAilyAppSkillStart 该 API 用于调用某个 Aily 应用的特定技能, 支持指定技能入参;并同步返回技能执行的结果。 +// +// 更多信息及示例代码, 可参考 [Aily 技能 OpenAPI 接口说明](https://bytedance.larkoffice.com/wiki/ZkKnwxogliNj3ik9ppEc0cFUnAd)。 +// > 技能 API 能显著简化业务系统的集成工作(单轮 API 调用)。技能 API 提供更贴合系统间服务调用的参数传递模式(JSON 入参 / 出参), 且无需通过文本消息对话的方式调用 AI 能力。 +// :::html +//
+// +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-skill/start +// new doc: https://open.feishu.cn/document/aily-v1/app-skill/start +func (r *AilyService) CreateAilyAppSkillStart(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) { + if r.cli.mock.mockAilyCreateAilyAppSkillStart != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilyAppSkillStart mock enable") + return r.cli.mock.mockAilyCreateAilyAppSkillStart(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Aily", + API: "CreateAilyAppSkillStart", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/skills/:skill_id/start", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAilyAppSkillStartResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAilyCreateAilyAppSkillStart mock AilyCreateAilyAppSkillStart method +func (r *Mock) MockAilyCreateAilyAppSkillStart(f func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error)) { + r.mockAilyCreateAilyAppSkillStart = f +} + +// UnMockAilyCreateAilyAppSkillStart un-mock AilyCreateAilyAppSkillStart method +func (r *Mock) UnMockAilyCreateAilyAppSkillStart() { + r.mockAilyCreateAilyAppSkillStart = nil +} + +// CreateAilyAppSkillStartReq ... +type CreateAilyAppSkillStartReq struct { + XAilyBizUserID *string `header:"X-Aily-BizUserID" json:"-"` // 标识创建会话的唯一用户 ID> 建议使用唯一内部 ID 或其他可标识用户唯一身份的字段(如飞书账号的 `user_id`), 可用于分析来自 API 的具体用户示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `255` 字符 + AppID string `path:"app_id" json:"-"` // Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_e7004f87f1__c" 长度范围: `0` ~ `64` 字符 + SkillID string `path:"skill_id" json:"-"` // 技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)示例值: "skill_6cc6166178ca" 长度范围: `0` ~ `32` 字符 + GlobalVariable *CreateAilyAppSkillStartReqGlobalVariable `json:"global_variable,omitempty"` // 技能的全局变量 + Input *string `json:"input,omitempty"` // 技能的自定义变量示例值: "{\"custom_string\":\"my string\", \"custom_integer\":22}" 长度范围: `0` ~ `40960` 字符 +} + +// CreateAilyAppSkillStartReqGlobalVariable ... +type CreateAilyAppSkillStartReqGlobalVariable struct { + Query *string `json:"query,omitempty"` // 触发技能的消息文本;即用户在飞书机器人等渠道对话输入的内容示例值: "你好" 长度范围: `0` ~ `40960` 字符 + Files []string `json:"files,omitempty"` // 触发技能的文件信息(如 OCR 节点等所需消费的图片文件)> 如技能不需要文件, `files` 参数传空即可示例值: ["file_4d9nu1ev3a2rq"] 长度范围: `0` ~ `32` + Channel *CreateAilyAppSkillStartReqGlobalVariableChannel `json:"channel,omitempty"` // 渠道信息 +} + +// CreateAilyAppSkillStartReqGlobalVariableChannel ... +type CreateAilyAppSkillStartReqGlobalVariableChannel struct { + Variables *string `json:"variables,omitempty"` // 自定义传入的变量;可在 Workflow 技能全局变量中消费示例值: "{"custom_key": "custom_value"}" 长度范围: `0` ~ `255` 字符 +} + +// CreateAilyAppSkillStartResp ... +type CreateAilyAppSkillStartResp struct { + Output string `json:"output,omitempty"` // 技能的输出 + Status string `json:"status,omitempty"` // 技能的执行状态 +} + +// createAilyAppSkillStartResp ... +type createAilyAppSkillStartResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAilyAppSkillStartResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_app_list.go b/api_apaas_app_list.go new file mode 100644 index 00000000..61d827de --- /dev/null +++ b/api_apaas_app_list.go @@ -0,0 +1,125 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSApp 获取企业下应用基本信息, 如应用名称 、应用命名空间等。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/app/list +// new doc: https://open.feishu.cn/document/apaas-v1/app/list +func (r *APaaSService) ListAPaaSApp(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSApp != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSApp mock enable") + return r.cli.mock.mockAPaaSListAPaaSApp(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSApp", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/apps", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSAppResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSApp mock APaaSListAPaaSApp method +func (r *Mock) MockAPaaSListAPaaSApp(f func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error)) { + r.mockAPaaSListAPaaSApp = f +} + +// UnMockAPaaSListAPaaSApp un-mock APaaSListAPaaSApp method +func (r *Mock) UnMockAPaaSListAPaaSApp() { + r.mockAPaaSListAPaaSApp = nil +} + +// ListAPaaSAppReq ... +type ListAPaaSAppReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 必填, 范围: 【0, 50】示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0 +} + +// ListAPaaSAppResp ... +type ListAPaaSAppResp struct { + Items []*ListAPaaSAppRespItem `json:"items,omitempty"` // 应用基本信息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAPaaSAppRespItem ... +type ListAPaaSAppRespItem struct { + Name []*ListAPaaSAppRespItemName `json:"name,omitempty"` // aPaaS 产品应用的名称 + Namespace string `json:"namespace,omitempty"` // aPaaS 产品应用的命名空间 + CreatedAt int64 `json:"created_at,omitempty"` // aPaaS 产品应用的创建时间 + Creator int64 `json:"creator,omitempty"` // aPaaS 产品应用的创建者 + Owner int64 `json:"owner,omitempty"` // aPaaS 产品应用的所有者 + Status string `json:"status,omitempty"` // aPaaS 产品应用的状态可选值有: 应用待发布应用已发布应用已停用应用已停服应用状态未确定 + AppRolesInfo *ListAPaaSAppRespItemAppRolesInfo `json:"app_roles_info,omitempty"` // aPaaS 产品应用的成员管理信息 + Icon string `json:"icon,omitempty"` // aPaaS 产品应用的图标 + Description []*ListAPaaSAppRespItemDescription `json:"description,omitempty"` // aPaaS 产品应用的描述 + Type string `json:"type,omitempty"` // aPaaS 产品应用的类型可选值有: 自建应用来自服务商的 SaaS 应用来自服务商的项目制应用 + EnableStatus string `json:"enable_status,omitempty"` // aPaaS 产品应用的启用状态可选值有: 启用停用 + ReleaseStatus string `json:"release_status,omitempty"` // aPaaS 产品应用的发布状态可选值有: 已发布未发布 + ServiceStatus string `json:"service_status,omitempty"` // aPaaS 产品应用的服务状态可选值有: 可用不可用 + ServiceUnavailableReason string `json:"service_unavailable_reason,omitempty"` // aPaaS 产品应用的停服原因可选值有: ISV服务商停服企业权益到期停服 + FeatureSet string `json:"feature_set,omitempty"` // aPaaS 产品应用的版本可选值有: 付费版免费版 + ChargeMode string `json:"charge_mode,omitempty"` // aPaaS 产品应用的计费方式可选值有: 应用席位计费不限应用席位计费独立计费免费 + IsvTenant *ListAPaaSAppRespItemIsvTenant `json:"isv_tenant,omitempty"` // aPaaS 产品应用的服务商信息 +} + +// ListAPaaSAppRespItemAppRolesInfo ... +type ListAPaaSAppRespItemAppRolesInfo struct { + Admins []int64 `json:"admins,omitempty"` // aPaaS 产品应用管理员的 ID + Developers []int64 `json:"developers,omitempty"` // aPaaS 产品应用开发者的 ID + TestUsers []int64 `json:"test_users,omitempty"` // aPaaS 产品应用测试人员的 ID + DataAdmins []int64 `json:"data_admins,omitempty"` // aPaaS 产品应用数据管理员的 ID +} + +// ListAPaaSAppRespItemDescription ... +type ListAPaaSAppRespItemDescription struct { + LanguageCode string `json:"language_code,omitempty"` // 语种 + Text string `json:"text,omitempty"` // 文本 +} + +// ListAPaaSAppRespItemIsvTenant ... +type ListAPaaSAppRespItemIsvTenant struct { + ID string `json:"id,omitempty"` // 服务商ID + Name string `json:"name,omitempty"` // 服务商名称 +} + +// ListAPaaSAppRespItemName ... +type ListAPaaSAppRespItemName struct { + LanguageCode string `json:"language_code,omitempty"` // 语种 + Text string `json:"text,omitempty"` // 文本 +} + +// listAPaaSAppResp ... +type listAPaaSAppResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSAppResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_audit_log_audit_log_list.go b/api_apaas_application_audit_log_audit_log_list.go new file mode 100644 index 00000000..9ccc5cb7 --- /dev/null +++ b/api_apaas_application_audit_log_audit_log_list.go @@ -0,0 +1,138 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSApplicationAuditLogAuditLog 根据搜索/筛选条件, 查询审计日志列表 +// +// 每次最多可查询 10, 000 条数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-audit_log/audit_log_list +// new doc: https://open.feishu.cn/document/apaas-v1/application-audit_log/audit_log_list +func (r *APaaSService) ListAPaaSApplicationAuditLogAuditLog(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSApplicationAuditLogAuditLog != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSApplicationAuditLogAuditLog mock enable") + return r.cli.mock.mockAPaaSListAPaaSApplicationAuditLogAuditLog(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSApplicationAuditLogAuditLog", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/audit_log/audit_log_list", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSApplicationAuditLogAuditLogResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSApplicationAuditLogAuditLog mock APaaSListAPaaSApplicationAuditLogAuditLog method +func (r *Mock) MockAPaaSListAPaaSApplicationAuditLogAuditLog(f func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error)) { + r.mockAPaaSListAPaaSApplicationAuditLogAuditLog = f +} + +// UnMockAPaaSListAPaaSApplicationAuditLogAuditLog un-mock APaaSListAPaaSApplicationAuditLogAuditLog method +func (r *Mock) UnMockAPaaSListAPaaSApplicationAuditLogAuditLog() { + r.mockAPaaSListAPaaSApplicationAuditLogAuditLog = nil +} + +// ListAPaaSApplicationAuditLogAuditLogReq ... +type ListAPaaSApplicationAuditLogAuditLogReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_aa_bb" 长度范围: `0` ~ `30` 字符 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 + Offset string `query:"offset" json:"-"` // 翻页数量示例值: 0 长度范围: `0` ~ `100` 字符 + QuickQuery *string `query:"quick_query" json:"-"` // 模糊查询示例值: Intel Mac OS 长度范围: `0` ~ `1000` 字符 + From string `query:"from" json:"-"` // 查询时间范围: 开始时间(单位为毫秒级时间戳)示例值: 1723691857002 长度范围: `0` ~ `1000` 字符 + To string `query:"to" json:"-"` // 查询时间范围: 结束时间(单位为毫秒级时间戳)示例值: 1724296657002 长度范围: `0` ~ `1000` 字符 + LogType string `query:"log_type" json:"-"` // 日志类型: 10000: 全部日志- 10001: 企业管理日志- 10002: 登录日志- 10003: 应用管理日志示例值: 10000 长度范围: `0` ~ `1000` 字符 + Filter *string `query:"filter" json:"-"` // 日志查询: 筛选能力示例值: {"items":[{"left":"eventName", "operator":"=", "right":[19001]}]} 长度范围: `0` ~ `1000` 字符 + Columns []string `query:"columns" json:"-"` // 日志列表: 选择展示行信息, 例如["opTime", "appName", "eventName", "clientIP", "operator", "status"]示例值: operator 长度范围: `0` ~ `1000` + SortBy *string `query:"sort_by" json:"-"` // 查询排序字段: 可选项为操作时间(opTime)示例值: opTime 长度范围: `0` ~ `1000` 字符 + SortOrder *string `query:"sort_order" json:"-"` // 查询排序: 默认按时间从大到小;从小到大使用 asc示例值: asc 长度范围: `0` ~ `1000` 字符 + AppType *string `query:"app_type" json:"-"` // 应用类型, 0为apaas类型, 1为aily类型示例值: 0 长度范围: `0` ~ `1000` 字符 +} + +// ListAPaaSApplicationAuditLogAuditLogResp ... +type ListAPaaSApplicationAuditLogAuditLogResp struct { + Items []*ListAPaaSApplicationAuditLogAuditLogRespItem `json:"items,omitempty"` // 审计日志查询结果列表详情信息 + Total int64 `json:"total,omitempty"` // 审计日志查询总条数 +} + +// ListAPaaSApplicationAuditLogAuditLogRespItem ... +type ListAPaaSApplicationAuditLogAuditLogRespItem struct { + LogID string `json:"log_id,omitempty"` // 审计日志ID + OpTime string `json:"op_time,omitempty"` // 操作时间 + LogType string `json:"log_type,omitempty"` // 日志类型: 10000: 全部日志- 10001: 企业管理日志- 10002: 登录日志- 10003: 应用管理日志 + Operator *ListAPaaSApplicationAuditLogAuditLogRespItemOperator `json:"operator,omitempty"` // 操作人 + Outsider bool `json:"outsider,omitempty"` // 是否为外部用户, true代表是外部用户 + LoginType string `json:"login_type,omitempty"` // 登录类型:-11001: 飞书登录-11003: 账号密码登录 + LarkTenantID string `json:"lark_tenant_id,omitempty"` // 飞书租户ID + ApaasTenantID string `json:"apaas_tenant_id,omitempty"` // apaas租户ID + UserGeo string `json:"user_geo,omitempty"` // 用户地理信息 + ClientIp string `json:"client_ip,omitempty"` // 客户端IP + IpLoc string `json:"ip_loc,omitempty"` // IP位置 + IpProvider string `json:"ip_provider,omitempty"` // IP提供商 + Referer string `json:"referer,omitempty"` // 引用页面 + Origin string `json:"origin,omitempty"` // 源页面 + ApiPath string `json:"api_path,omitempty"` // 路由路径 + FullPath string `json:"full_path,omitempty"` // 网关路径 + UserAgent string `json:"user_agent,omitempty"` // 用户代理 + DeviceID string `json:"device_id,omitempty"` // 设备ID + WebDeviceID string `json:"web_device_id,omitempty"` // web端设备ID + TerminalType string `json:"terminal_type,omitempty"` // 终端类型:- 13002: PC类型- 13003: Web类型 + OsType string `json:"os_type,omitempty"` // 系统类型:- 14002: window- 14001: 未知 + OsVersion string `json:"os_version,omitempty"` // 系统版本 + Module string `json:"module,omitempty"` // 功能模块 + DataObject string `json:"data_object,omitempty"` // 数据对象 + AuditScope string `json:"audit_scope,omitempty"` // 审计域:- 15001: 企业管理后台- 15002: 应用管理后台- 15003: 应用开发平台 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Namespace string `json:"namespace,omitempty"` // 应用唯一标识 + EnvType string `json:"env_type,omitempty"` // 环境类型:- 16001: 沙箱环境- 16003: 线上环境 + OpType string `json:"op_type,omitempty"` // 事件类型 + OpDetail interface{} `json:"op_detail,omitempty"` // 操作详情内容 + OpSource string `json:"op_source,omitempty"` // 操作源:- 20001: 前端- 20004: openapi + Status string `json:"status,omitempty"` // 操作状态:- 18001: 成功- 18002: 失败 + FailedReasonI18n interface{} `json:"failed_reason_i18n,omitempty"` // 失败原因 + DataChanges []string `json:"data_changes,omitempty"` // 数据变化(旧值和新值) + AppName interface{} `json:"app_name,omitempty"` // 应用名称 + KeywordFieldAppVersion string `json:"keyword_field_app_version,omitempty"` // 应用版本号 + KeywordFieldFunctionalSubModule string `json:"keyword_field_functional_sub_module,omitempty"` // 审计日志事件子模块 +} + +// ListAPaaSApplicationAuditLogAuditLogRespItemOperator ... +type ListAPaaSApplicationAuditLogAuditLogRespItemOperator struct { + ID string `json:"id,omitempty"` // 用户ID + Name string `json:"name,omitempty"` // 用户名称 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Email string `json:"email,omitempty"` // 用户邮箱 +} + +// listAPaaSApplicationAuditLogAuditLogResp ... +type listAPaaSApplicationAuditLogAuditLogResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSApplicationAuditLogAuditLogResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_audit_log_data_change_log_detail.go b/api_apaas_application_audit_log_data_change_log_detail.go new file mode 100644 index 00000000..4c25ffd2 --- /dev/null +++ b/api_apaas_application_audit_log_data_change_log_detail.go @@ -0,0 +1,143 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSApplicationAuditLogDataChangeLogDetail 根据日志 ID 查询数据变更日志详情 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-audit_log/data_change_log_detail +// new doc: https://open.feishu.cn/document/apaas-v1/application-audit_log/data_change_log_detail +func (r *APaaSService) GetAPaaSApplicationAuditLogDataChangeLogDetail(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSApplicationAuditLogDataChangeLogDetail mock enable") + return r.cli.mock.mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSApplicationAuditLogDataChangeLogDetail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/audit_log/data_change_log_detail", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSApplicationAuditLogDataChangeLogDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail mock APaaSGetAPaaSApplicationAuditLogDataChangeLogDetail method +func (r *Mock) MockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail(f func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error)) { + r.mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail = f +} + +// UnMockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail un-mock APaaSGetAPaaSApplicationAuditLogDataChangeLogDetail method +func (r *Mock) UnMockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail() { + r.mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail = nil +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailReq ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_aaa" 长度范围: `0` ~ `1000` 字符 + LogID string `query:"log_id" json:"-"` // 数据变更日志ID信息示例值: 7405456257290600492 长度范围: `0` ~ `1000` 字符 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailResp ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailResp struct { + Data *GetAPaaSApplicationAuditLogDataChangeLogDetailRespData `json:"data,omitempty"` // 数据变更日志详情信息 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespData ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespData struct { + LogID string `json:"log_id,omitempty"` // 审计日志ID + BasicInfo *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataBasicInfo `json:"basic_info,omitempty"` // 日志基础信息 + OpInfo *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfo `json:"op_info,omitempty"` // 审计日志操作信息 + LoginInfo *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataLoginInfo `json:"login_info,omitempty"` // 登录类型信息 + DeviceInfo *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataDeviceInfo `json:"device_info,omitempty"` // 设备信息 + NetInfo *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataNetInfo `json:"net_info,omitempty"` // 网络信息 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataBasicInfo ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataBasicInfo struct { + LogType string `json:"log_type,omitempty"` // 日志类型: 10000-全部类型;10001-企业管理;10002-登录日志;10003-应用管理 + AuditScope string `json:"audit_scope,omitempty"` // 审计域: 15001-企业管理后台;15002-应用管理后台;15003-应用开发平台 + EnvType string `json:"env_type,omitempty"` // 环境类型: 16001-沙箱环境;16003-线上环境 + AppID string `json:"app_id,omitempty"` // 应用id + Module string `json:"module,omitempty"` // 审计日志功能模块 + OpType string `json:"op_type,omitempty"` // 事件类型 + AppName interface{} `json:"app_name,omitempty"` // 应用名称 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataDeviceInfo ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataDeviceInfo struct { + DeviceID string `json:"device_id,omitempty"` // 设备ID + WebDeviceID string `json:"web_device_id,omitempty"` // web端设备ID + TerminalType string `json:"terminal_type,omitempty"` // 终端类型: 13002-PC类型;13003-Web类型 + OsType string `json:"os_type,omitempty"` // 系统类型: 14002-window;14001-未知 + OsVersion string `json:"os_version,omitempty"` // 系统版本 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataLoginInfo ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataLoginInfo struct { + LoginType string `json:"login_type,omitempty"` // 登录类型: 11001-飞书登录;11003-账号密码登录 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataNetInfo ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataNetInfo struct { + ClientIp string `json:"client_ip,omitempty"` // 客户端IP + IpLoc string `json:"ip_loc,omitempty"` // IP位置 + IpProvider string `json:"ip_provider,omitempty"` // IP提供商 + Referer string `json:"referer,omitempty"` // 引用页面 + Origin string `json:"origin,omitempty"` // 源页面 + UserAgent string `json:"user_agent,omitempty"` // 用户代理 +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfo ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfo struct { + Operator *GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfoOperator `json:"operator,omitempty"` // 操作人 + Outsider bool `json:"outsider,omitempty"` // 是否为外部用户, true代表是外部用户 + OpDetail interface{} `json:"op_detail,omitempty"` // 操作详情内容 + Status string `json:"status,omitempty"` // 操作状态: 18001-成功;18002-失败 + FailedReason string `json:"failed_reason,omitempty"` // 失败原因 + FailedReasonI18n interface{} `json:"failed_reason_i18n,omitempty"` // 多语类型失败原因 + OpTime string `json:"op_time,omitempty"` // 操作时间 + DataObject string `json:"data_object,omitempty"` // 数据对象 + OpSource string `json:"op_source,omitempty"` // 操作源: 20001-前端;20004-openapi + DataChanges []string `json:"data_changes,omitempty"` // 数据变化(旧值和新值) +} + +// GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfoOperator ... +type GetAPaaSApplicationAuditLogDataChangeLogDetailRespDataOpInfoOperator struct { + ID string `json:"id,omitempty"` // 用户ID + Name string `json:"name,omitempty"` // 用户名称 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Email string `json:"email,omitempty"` // 用户邮箱 +} + +// getAPaaSApplicationAuditLogDataChangeLogDetailResp ... +type getAPaaSApplicationAuditLogDataChangeLogDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSApplicationAuditLogDataChangeLogDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_audit_log_data_change_logs_list.go b/api_apaas_application_audit_log_data_change_logs_list.go new file mode 100644 index 00000000..31b8c05d --- /dev/null +++ b/api_apaas_application_audit_log_data_change_logs_list.go @@ -0,0 +1,138 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSApplicationAuditLogDataChangeLogs 根据搜索/筛选条件, 查询数据变更日志列表 +// +// 每次最多可查询 10, 000 条数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-audit_log/data_change_logs_list +// new doc: https://open.feishu.cn/document/apaas-v1/application-audit_log/data_change_logs_list +func (r *APaaSService) ListAPaaSApplicationAuditLogDataChangeLogs(ctx context.Context, request *ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogDataChangeLogsResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSApplicationAuditLogDataChangeLogs mock enable") + return r.cli.mock.mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSApplicationAuditLogDataChangeLogs", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/audit_log/data_change_logs_list", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSApplicationAuditLogDataChangeLogsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSApplicationAuditLogDataChangeLogs mock APaaSListAPaaSApplicationAuditLogDataChangeLogs method +func (r *Mock) MockAPaaSListAPaaSApplicationAuditLogDataChangeLogs(f func(ctx context.Context, request *ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogDataChangeLogsResp, *Response, error)) { + r.mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs = f +} + +// UnMockAPaaSListAPaaSApplicationAuditLogDataChangeLogs un-mock APaaSListAPaaSApplicationAuditLogDataChangeLogs method +func (r *Mock) UnMockAPaaSListAPaaSApplicationAuditLogDataChangeLogs() { + r.mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs = nil +} + +// ListAPaaSApplicationAuditLogDataChangeLogsReq ... +type ListAPaaSApplicationAuditLogDataChangeLogsReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_aa_bb" 长度范围: `0` ~ `30` 字符 + QuickQuery *string `query:"quick_query" json:"-"` // 模糊查询示例值: Intel Mac OS 长度范围: `0` ~ `1000` 字符 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 0 长度范围: `0` ~ `1000` 字符 + Offset string `query:"offset" json:"-"` // 翻页数量示例值: 0 长度范围: `0` ~ `1000` 字符 + From *string `query:"from" json:"-"` // 查询时间范围: 开始时间示例值: 1723691857002 长度范围: `0` ~ `1000` 字符 + To *string `query:"to" json:"-"` // 查询时间范围: 结束时间示例值: 1724296657002 长度范围: `0` ~ `1000` 字符 + LogType string `query:"log_type" json:"-"` // ”日志类型: 10007-数据变更日志“示例值: 10007 长度范围: `0` ~ `1000` 字符 + Filter *string `query:"filter" json:"-"` // 日志查询: 筛选能力示例值: {"items":[{"left":"eventName", "operator":"=", "right":[19001]}]} 长度范围: `0` ~ `1000` 字符 + Columns []string `query:"columns" json:"-"` // 日志列表: 选择展示行信息, 例如["opTime", "appName", "eventName", "clientIP", "operator", "status"]示例值: operator 长度范围: `0` ~ `1000` + SortBy *string `query:"sort_by" json:"-"` // 查询排序字段: 可选项为操作时间(opTime)示例值: opTime 长度范围: `0` ~ `1000` 字符 + SortOrder *string `query:"sort_order" json:"-"` // 查询排序: 按时间从小到大使用 asc示例值: asc 长度范围: `0` ~ `1000` 字符 + AppType *string `query:"app_type" json:"-"` // 应用类型, 0为apaas类型, 1为aily类型示例值: 0 长度范围: `0` ~ `1000` 字符 +} + +// ListAPaaSApplicationAuditLogDataChangeLogsResp ... +type ListAPaaSApplicationAuditLogDataChangeLogsResp struct { + Items []*ListAPaaSApplicationAuditLogDataChangeLogsRespItem `json:"items,omitempty"` // 数据变更日志查询结果列表详情信息 + Total int64 `json:"total,omitempty"` // 数据变更日志查询总条数 +} + +// ListAPaaSApplicationAuditLogDataChangeLogsRespItem ... +type ListAPaaSApplicationAuditLogDataChangeLogsRespItem struct { + LogID string `json:"log_id,omitempty"` // 数据变更日志ID + OpTime string `json:"op_time,omitempty"` // 操作时间 + LogType string `json:"log_type,omitempty"` // “日志类型:10007-数据变更日志” + Operator *ListAPaaSApplicationAuditLogDataChangeLogsRespItemOperator `json:"operator,omitempty"` // 操作人 + Outsider bool `json:"outsider,omitempty"` // 是否为外部用户, true代表是外部用户 + LoginType string `json:"login_type,omitempty"` // 登录类型:11001-飞书登录;11003-账号密码登录 + LarkTenantID string `json:"lark_tenant_id,omitempty"` // 飞书租户ID + ApaasTenantID string `json:"apaas_tenant_id,omitempty"` // apaas租户ID + UserGeo string `json:"user_geo,omitempty"` // 用户地理信息 + ClientIp string `json:"client_ip,omitempty"` // 客户端IP + IpLoc string `json:"ip_loc,omitempty"` // IP位置 + IpProvider string `json:"ip_provider,omitempty"` // IP提供商 + Referer string `json:"referer,omitempty"` // 引用页面 + Origin string `json:"origin,omitempty"` // 源页面 + ApiPath string `json:"api_path,omitempty"` // 路由路径 + FullPath string `json:"full_path,omitempty"` // 网关路径 + UserAgent string `json:"user_agent,omitempty"` // 用户代理 + DeviceID string `json:"device_id,omitempty"` // 设备ID + WebDeviceID string `json:"web_device_id,omitempty"` // web端设备ID + TerminalType string `json:"terminal_type,omitempty"` // 终端类型:13002-PC类型;13003-Web类型 + OsType string `json:"os_type,omitempty"` // 系统类型:14002-window;14001-未知 + OsVersion string `json:"os_version,omitempty"` // 系统版本 + Module string `json:"module,omitempty"` // 功能模块 + DataObject string `json:"data_object,omitempty"` // 数据对象 + AuditScope string `json:"audit_scope,omitempty"` // 审计域:15001-企业管理后台;15002-应用管理后 台;15003-应用开发平台 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Namespace string `json:"namespace,omitempty"` // 应用唯一标识 + EnvType string `json:"env_type,omitempty"` // 环境类型:16001-沙箱环境;16003-线上环境 + OpType string `json:"op_type,omitempty"` // 事件类型 + OpDetail interface{} `json:"op_detail,omitempty"` // 操作详情内容 + OpSource string `json:"op_source,omitempty"` // 操作源:20001-前端;20004-openapi + Status string `json:"status,omitempty"` // 操作状态:18001-成功;18002-失败 + FailedReasonI18n interface{} `json:"failed_reason_i18n,omitempty"` // 失败原因 + DataChanges []string `json:"data_changes,omitempty"` // 数据变化(旧值和新值) + AppName interface{} `json:"app_name,omitempty"` // 应用名称 + KeywordFieldAppVersion string `json:"keyword_field_app_version,omitempty"` // 应用版本号 + KeywordFieldFunctionalSubModule string `json:"keyword_field_functional_sub_module,omitempty"` // 审计日志事件子模块 +} + +// ListAPaaSApplicationAuditLogDataChangeLogsRespItemOperator ... +type ListAPaaSApplicationAuditLogDataChangeLogsRespItemOperator struct { + ID string `json:"id,omitempty"` // 用户ID + Name string `json:"name,omitempty"` // 用户名称 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Email string `json:"email,omitempty"` // 用户邮箱 +} + +// listAPaaSApplicationAuditLogDataChangeLogsResp ... +type listAPaaSApplicationAuditLogDataChangeLogsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSApplicationAuditLogDataChangeLogsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_audit_log_get.go b/api_apaas_application_audit_log_get.go new file mode 100644 index 00000000..4cfe80dc --- /dev/null +++ b/api_apaas_application_audit_log_get.go @@ -0,0 +1,143 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSApplicationAuditLog 根据日志 ID 查询审计日志详情 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-audit_log/get +// new doc: https://open.feishu.cn/document/apaas-v1/application-audit_log/get +func (r *APaaSService) GetAPaaSApplicationAuditLog(ctx context.Context, request *GetAPaaSApplicationAuditLogReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSApplicationAuditLog != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSApplicationAuditLog mock enable") + return r.cli.mock.mockAPaaSGetAPaaSApplicationAuditLog(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSApplicationAuditLog", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/audit_log", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSApplicationAuditLogResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSApplicationAuditLog mock APaaSGetAPaaSApplicationAuditLog method +func (r *Mock) MockAPaaSGetAPaaSApplicationAuditLog(f func(ctx context.Context, request *GetAPaaSApplicationAuditLogReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogResp, *Response, error)) { + r.mockAPaaSGetAPaaSApplicationAuditLog = f +} + +// UnMockAPaaSGetAPaaSApplicationAuditLog un-mock APaaSGetAPaaSApplicationAuditLog method +func (r *Mock) UnMockAPaaSGetAPaaSApplicationAuditLog() { + r.mockAPaaSGetAPaaSApplicationAuditLog = nil +} + +// GetAPaaSApplicationAuditLogReq ... +type GetAPaaSApplicationAuditLogReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_aaa" 长度范围: `0` ~ `1000` 字符 + LogID string `query:"log_id" json:"-"` // 审计日志ID信息(通过[查询审计日志列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-audit_log/audit_log_list)获取单条日志ID)示例值: 7405456257290600492 长度范围: `0` ~ `1000` 字符 +} + +// GetAPaaSApplicationAuditLogResp ... +type GetAPaaSApplicationAuditLogResp struct { + Data *GetAPaaSApplicationAuditLogRespData `json:"data,omitempty"` // 审计日志详情信息 +} + +// GetAPaaSApplicationAuditLogRespData ... +type GetAPaaSApplicationAuditLogRespData struct { + LogID string `json:"log_id,omitempty"` // 审计日志ID + BasicInfo *GetAPaaSApplicationAuditLogRespDataBasicInfo `json:"basic_info,omitempty"` // 日志基础信息 + OpInfo *GetAPaaSApplicationAuditLogRespDataOpInfo `json:"op_info,omitempty"` // 审计日志操作信息 + LoginInfo *GetAPaaSApplicationAuditLogRespDataLoginInfo `json:"login_info,omitempty"` // 登录类型信息 + DeviceInfo *GetAPaaSApplicationAuditLogRespDataDeviceInfo `json:"device_info,omitempty"` // 设备信息 + NetInfo *GetAPaaSApplicationAuditLogRespDataNetInfo `json:"net_info,omitempty"` // 网络信息 +} + +// GetAPaaSApplicationAuditLogRespDataBasicInfo ... +type GetAPaaSApplicationAuditLogRespDataBasicInfo struct { + LogType string `json:"log_type,omitempty"` // 日志类型: 10000: 全部日志- 10001: 企业管理日志- 10002: 登录日志- 10003: 应用管理日志 + AuditScope string `json:"audit_scope,omitempty"` // 审计域: 15001: 企业管理后台- 15002: 应用管理后台- 15003: 应用开发平台 + EnvType string `json:"env_type,omitempty"` // 环境类型: 16001: 沙箱环境- 16003: 线上环境 + AppID string `json:"app_id,omitempty"` // 应用id + Module string `json:"module,omitempty"` // 审计日志功能模块 + OpType string `json:"op_type,omitempty"` // 事件类型 + AppName interface{} `json:"app_name,omitempty"` // 应用名称 +} + +// GetAPaaSApplicationAuditLogRespDataDeviceInfo ... +type GetAPaaSApplicationAuditLogRespDataDeviceInfo struct { + DeviceID string `json:"device_id,omitempty"` // 设备ID + WebDeviceID string `json:"web_device_id,omitempty"` // web端设备ID + TerminalType string `json:"terminal_type,omitempty"` // 终端类型: 13002: PC类型- 13003: Web类型 + OsType string `json:"os_type,omitempty"` // 系统类型: 14002: window- 14001: 未知 + OsVersion string `json:"os_version,omitempty"` // 系统版本 +} + +// GetAPaaSApplicationAuditLogRespDataLoginInfo ... +type GetAPaaSApplicationAuditLogRespDataLoginInfo struct { + LoginType string `json:"login_type,omitempty"` // 登录类型: 11001: 飞书登录- 11003: 账号密码登录 +} + +// GetAPaaSApplicationAuditLogRespDataNetInfo ... +type GetAPaaSApplicationAuditLogRespDataNetInfo struct { + ClientIp string `json:"client_ip,omitempty"` // 客户端IP + IpLoc string `json:"ip_loc,omitempty"` // IP位置 + IpProvider string `json:"ip_provider,omitempty"` // IP提供商 + Referer string `json:"referer,omitempty"` // 引用页面 + Origin string `json:"origin,omitempty"` // 源页面 + UserAgent string `json:"user_agent,omitempty"` // 用户代理 +} + +// GetAPaaSApplicationAuditLogRespDataOpInfo ... +type GetAPaaSApplicationAuditLogRespDataOpInfo struct { + Operator *GetAPaaSApplicationAuditLogRespDataOpInfoOperator `json:"operator,omitempty"` // 操作人 + Outsider bool `json:"outsider,omitempty"` // 是否为外部用户, true代表是外部用户 + OpDetail interface{} `json:"op_detail,omitempty"` // 操作详情内容 + Status string `json:"status,omitempty"` // 操作状态: 18001-成功;18002-失败 + FailedReason string `json:"failed_reason,omitempty"` // 失败原因 + FailedReasonI18n interface{} `json:"failed_reason_i18n,omitempty"` // 多语类型失败原因 + OpTime string `json:"op_time,omitempty"` // 操作时间 + DataObject string `json:"data_object,omitempty"` // 数据对象 + OpSource string `json:"op_source,omitempty"` // 操作源: 20001-前端;20004-openapi + DataChanges []string `json:"data_changes,omitempty"` // 数据变化(旧值和新值) +} + +// GetAPaaSApplicationAuditLogRespDataOpInfoOperator ... +type GetAPaaSApplicationAuditLogRespDataOpInfoOperator struct { + ID string `json:"id,omitempty"` // 用户ID + Name string `json:"name,omitempty"` // 用户名称 + TenantID string `json:"tenant_id,omitempty"` // 租户ID + Email string `json:"email,omitempty"` // 用户邮箱 +} + +// getAPaaSApplicationAuditLogResp ... +type getAPaaSApplicationAuditLogResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSApplicationAuditLogResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_environment_variable_get.go b/api_apaas_application_environment_variable_get.go new file mode 100644 index 00000000..63f73723 --- /dev/null +++ b/api_apaas_application_environment_variable_get.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSApplicationEnvironmentVariable 查询基于飞书 aPaaS 开发的应用的环境变量详情, 包括名称、描述、变量值等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-environment_variable/get +// new doc: https://open.feishu.cn/document/apaas-v1/application-environment_variable/get +func (r *APaaSService) GetAPaaSApplicationEnvironmentVariable(ctx context.Context, request *GetAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*GetAPaaSApplicationEnvironmentVariableResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSApplicationEnvironmentVariable != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSApplicationEnvironmentVariable mock enable") + return r.cli.mock.mockAPaaSGetAPaaSApplicationEnvironmentVariable(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSApplicationEnvironmentVariable", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/environment_variables/:environment_variable_api_name", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getAPaaSApplicationEnvironmentVariableResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSApplicationEnvironmentVariable mock APaaSGetAPaaSApplicationEnvironmentVariable method +func (r *Mock) MockAPaaSGetAPaaSApplicationEnvironmentVariable(f func(ctx context.Context, request *GetAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*GetAPaaSApplicationEnvironmentVariableResp, *Response, error)) { + r.mockAPaaSGetAPaaSApplicationEnvironmentVariable = f +} + +// UnMockAPaaSGetAPaaSApplicationEnvironmentVariable un-mock APaaSGetAPaaSApplicationEnvironmentVariable method +func (r *Mock) UnMockAPaaSGetAPaaSApplicationEnvironmentVariable() { + r.mockAPaaSGetAPaaSApplicationEnvironmentVariable = nil +} + +// GetAPaaSApplicationEnvironmentVariableReq ... +type GetAPaaSApplicationEnvironmentVariableReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" + EnvironmentVariableApiName string `path:"environment_variable_api_name" json:"-"` // 环境变量 API 名称示例值: "globalParam_0b410b17704" +} + +// GetAPaaSApplicationEnvironmentVariableResp ... +type GetAPaaSApplicationEnvironmentVariableResp struct { + Item *GetAPaaSApplicationEnvironmentVariableRespItem `json:"item,omitempty"` // 环境变量详情 +} + +// GetAPaaSApplicationEnvironmentVariableRespItem ... +type GetAPaaSApplicationEnvironmentVariableRespItem struct { + ApiName string `json:"api_name,omitempty"` // 环境变量 API 名称 + Label *GetAPaaSApplicationEnvironmentVariableRespItemLabel `json:"label,omitempty"` // 环境变量的名称 + Description string `json:"description,omitempty"` // 描述 + Value string `json:"value,omitempty"` // 返回 json marshal 后的字符串。 is_encrypted 为 「true」时, 依然可以获取返回值 + IsEncrypted bool `json:"is_encrypted,omitempty"` // 是否加密, 「type」取值为 text, float 时才有效 + ObjectApiName string `json:"object_api_name,omitempty"` // 对象的 API 名称, 「type」取值为 lookup, lookup_multi 时才有效 + ObjectLabel *GetAPaaSApplicationEnvironmentVariableRespItemObjectLabel `json:"object_label,omitempty"` // 对象的名称, 「type」取值为 lookup, lookup_multi 时才有效 + CreatedAt int64 `json:"created_at,omitempty"` // 「创建时间」, 日期时间字段。 使用 Unix 时间戳, 单位为毫秒 + UpdatedAt int64 `json:"updated_at,omitempty"` // 「更新时间」, 日期时间字段。 使用 Unix 时间戳, 单位为毫秒 + Type string `json:"type,omitempty"` // 环境变量的类型, 可取值范围有: lookup, lookup_multi, text, float 等 +} + +// GetAPaaSApplicationEnvironmentVariableRespItemLabel ... +type GetAPaaSApplicationEnvironmentVariableRespItemLabel struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文内容 + EnUs string `json:"en_us,omitempty"` // 英文内容 +} + +// GetAPaaSApplicationEnvironmentVariableRespItemObjectLabel ... +type GetAPaaSApplicationEnvironmentVariableRespItemObjectLabel struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文内容 + EnUs string `json:"en_us,omitempty"` // 英文内容 +} + +// getAPaaSApplicationEnvironmentVariableResp ... +type getAPaaSApplicationEnvironmentVariableResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSApplicationEnvironmentVariableResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_environment_variable_query.go b/api_apaas_application_environment_variable_query.go new file mode 100644 index 00000000..eaa3adbe --- /dev/null +++ b/api_apaas_application_environment_variable_query.go @@ -0,0 +1,110 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryAPaaSApplicationEnvironmentVariable 查询基于飞书 aPaaS 开发的应用的环境变量列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-environment_variable/query +// new doc: https://open.feishu.cn/document/apaas-v1/application-environment_variable/query +func (r *APaaSService) QueryAPaaSApplicationEnvironmentVariable(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) { + if r.cli.mock.mockAPaaSQueryAPaaSApplicationEnvironmentVariable != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#QueryAPaaSApplicationEnvironmentVariable mock enable") + return r.cli.mock.mockAPaaSQueryAPaaSApplicationEnvironmentVariable(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "QueryAPaaSApplicationEnvironmentVariable", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/environment_variables/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryAPaaSApplicationEnvironmentVariableResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSQueryAPaaSApplicationEnvironmentVariable mock APaaSQueryAPaaSApplicationEnvironmentVariable method +func (r *Mock) MockAPaaSQueryAPaaSApplicationEnvironmentVariable(f func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error)) { + r.mockAPaaSQueryAPaaSApplicationEnvironmentVariable = f +} + +// UnMockAPaaSQueryAPaaSApplicationEnvironmentVariable un-mock APaaSQueryAPaaSApplicationEnvironmentVariable method +func (r *Mock) UnMockAPaaSQueryAPaaSApplicationEnvironmentVariable() { + r.mockAPaaSQueryAPaaSApplicationEnvironmentVariable = nil +} + +// QueryAPaaSApplicationEnvironmentVariableReq ... +type QueryAPaaSApplicationEnvironmentVariableReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" + Filter *QueryAPaaSApplicationEnvironmentVariableReqFilter `json:"filter,omitempty"` // 过滤条件 + Limit *int64 `json:"limit,omitempty"` // 限制的条数, 默认为 500, 不可超过 500示例值: 10 取值范围: `0` ~ `500` + Offset *int64 `json:"offset,omitempty"` // 返回记录的偏移量, 默认为 0, 即从查询到的第一个记录开始返回示例值: 0 取值范围: `0` ~ `9223372036854775807` +} + +// QueryAPaaSApplicationEnvironmentVariableReqFilter ... +type QueryAPaaSApplicationEnvironmentVariableReqFilter struct { + QuickQuery *string `json:"quick_query,omitempty"` // 模糊查询关键词示例值: "Sample Text" +} + +// QueryAPaaSApplicationEnvironmentVariableResp ... +type QueryAPaaSApplicationEnvironmentVariableResp struct { + Items []*QueryAPaaSApplicationEnvironmentVariableRespItem `json:"items,omitempty"` // 环境变量列表 + Total int64 `json:"total,omitempty"` // 符合查询条件的环境变量的总数 +} + +// QueryAPaaSApplicationEnvironmentVariableRespItem ... +type QueryAPaaSApplicationEnvironmentVariableRespItem struct { + ApiName string `json:"api_name,omitempty"` // 环境变量 API 名称 + Label *QueryAPaaSApplicationEnvironmentVariableRespItemLabel `json:"label,omitempty"` // 环境变量的名称 + Description string `json:"description,omitempty"` // 描述 + Value string `json:"value,omitempty"` // 返回 json marshal 后的字符串。 is_encrypted 为 「true」时, 依然可以获取返回值 + IsEncrypted bool `json:"is_encrypted,omitempty"` // 是否加密, 「type」取值为 text, float 时才有效 + ObjectApiName string `json:"object_api_name,omitempty"` // 对象的 API 名称, 「type」取值为 lookup, lookup_multi 时才有效 + ObjectLabel *QueryAPaaSApplicationEnvironmentVariableRespItemObjectLabel `json:"object_label,omitempty"` // 对象的名称, 「type」取值为 lookup, lookup_multi 时才有效 + CreatedAt int64 `json:"created_at,omitempty"` // 「创建时间」, 日期时间字段。 使用 Unix 时间戳, 单位为毫秒 + UpdatedAt int64 `json:"updated_at,omitempty"` // 「更新时间」, 日期时间字段。 使用 Unix 时间戳, 单位为毫秒 + Type string `json:"type,omitempty"` // 环境变量的类型, 可取值范围有: lookup, lookup_multi, text, float 等 +} + +// QueryAPaaSApplicationEnvironmentVariableRespItemLabel ... +type QueryAPaaSApplicationEnvironmentVariableRespItemLabel struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文内容 + EnUs string `json:"en_us,omitempty"` // 英文内容 +} + +// QueryAPaaSApplicationEnvironmentVariableRespItemObjectLabel ... +type QueryAPaaSApplicationEnvironmentVariableRespItemObjectLabel struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文内容 + EnUs string `json:"en_us,omitempty"` // 英文内容 +} + +// queryAPaaSApplicationEnvironmentVariableResp ... +type queryAPaaSApplicationEnvironmentVariableResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryAPaaSApplicationEnvironmentVariableResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_flow_execute.go b/api_apaas_application_flow_execute.go new file mode 100644 index 00000000..8bf78a3c --- /dev/null +++ b/api_apaas_application_flow_execute.go @@ -0,0 +1,85 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSApplicationFlowExecute 执行相应流程 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-flow/execute +// new doc: https://open.feishu.cn/document/apaas-v1/flow/application-flow/execute +func (r *APaaSService) CreateAPaaSApplicationFlowExecute(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSApplicationFlowExecute != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationFlowExecute mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSApplicationFlowExecute(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSApplicationFlowExecute", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/flows/:flow_id/execute", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSApplicationFlowExecuteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSApplicationFlowExecute mock APaaSCreateAPaaSApplicationFlowExecute method +func (r *Mock) MockAPaaSCreateAPaaSApplicationFlowExecute(f func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error)) { + r.mockAPaaSCreateAPaaSApplicationFlowExecute = f +} + +// UnMockAPaaSCreateAPaaSApplicationFlowExecute un-mock APaaSCreateAPaaSApplicationFlowExecute method +func (r *Mock) UnMockAPaaSCreateAPaaSApplicationFlowExecute() { + r.mockAPaaSCreateAPaaSApplicationFlowExecute = nil +} + +// CreateAPaaSApplicationFlowExecuteReq ... +type CreateAPaaSApplicationFlowExecuteReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间(低代码平台->我的应用->应用管理->可查看到)示例值: "package_7344545d87__c" + FlowID string `path:"flow_id" json:"-"` // 流程API名称(低代码平台->我的应用->开发->流程->展开为表格->可查看到)示例值: "deleteObject_99c656599f" + IsAsync *bool `json:"is_async,omitempty"` // 是否异步执行(不传默认false)示例值: true + IdempotentKey *string `json:"idempotent_key,omitempty"` // 幂等键(建议本地生成uuid传入, 重复的话请求会报错)示例值: "iuhg23897489797" + LoopMasks []string `json:"loop_masks,omitempty"` // 循环标志信息(当前版本可不传)示例值: ["\"] 长度范围: `0` ~ `20` + Params *string `json:"params,omitempty"` // 流程入参(json 字符串, 无入参不传)示例值: "`{\"variable_rgrtgqworiginal\": {\"_id\": 5454545}}`" + Operator string `json:"operator,omitempty"` // 操作人(_id和email至少填一个, 低代码平台用户的 id和email, 需要从低代码平台获取, json字符串)示例值: "`{\"_id\": 1111, \"email\": \"apaas@bytedance.com\"}`" +} + +// CreateAPaaSApplicationFlowExecuteResp ... +type CreateAPaaSApplicationFlowExecuteResp struct { + Status string `json:"status,omitempty"` // 状态 + OutParams string `json:"out_params,omitempty"` // 输出参数 + ExecutionID string `json:"execution_id,omitempty"` // 执行id + ErrorMsg string `json:"error_msg,omitempty"` // 错误信息 + Code string `json:"code,omitempty"` // code +} + +// createAPaaSApplicationFlowExecuteResp ... +type createAPaaSApplicationFlowExecuteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSApplicationFlowExecuteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_function_invoke.go b/api_apaas_application_function_invoke.go new file mode 100644 index 00000000..d0d93558 --- /dev/null +++ b/api_apaas_application_function_invoke.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSApplicationFunctionInvoke 执行基于飞书应用引擎开发的应用的自定义函数 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-function/invoke +// new doc: https://open.feishu.cn/document/apaas-v1/application-function/invoke +func (r *APaaSService) CreateAPaaSApplicationFunctionInvoke(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSApplicationFunctionInvoke != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationFunctionInvoke mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSApplicationFunctionInvoke(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSApplicationFunctionInvoke", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/functions/:function_api_name/invoke", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSApplicationFunctionInvokeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSApplicationFunctionInvoke mock APaaSCreateAPaaSApplicationFunctionInvoke method +func (r *Mock) MockAPaaSCreateAPaaSApplicationFunctionInvoke(f func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error)) { + r.mockAPaaSCreateAPaaSApplicationFunctionInvoke = f +} + +// UnMockAPaaSCreateAPaaSApplicationFunctionInvoke un-mock APaaSCreateAPaaSApplicationFunctionInvoke method +func (r *Mock) UnMockAPaaSCreateAPaaSApplicationFunctionInvoke() { + r.mockAPaaSCreateAPaaSApplicationFunctionInvoke = nil +} + +// CreateAPaaSApplicationFunctionInvokeReq ... +type CreateAPaaSApplicationFunctionInvokeReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" + FunctionApiName string `path:"function_api_name" json:"-"` // 函数 API 名称示例值: "printParam" + Params *string `json:"params,omitempty"` // 函数输入参数(JSON 序列化后的字符串)示例值: "{\"key1\":\"value1\", \"key2\":\"value2\", \"key3\":1718313981794}" +} + +// CreateAPaaSApplicationFunctionInvokeResp ... +type CreateAPaaSApplicationFunctionInvokeResp struct { + Result string `json:"result,omitempty"` // 函数执行的返回结果(JSON 序列化后的字符串) +} + +// createAPaaSApplicationFunctionInvokeResp ... +type createAPaaSApplicationFunctionInvokeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSApplicationFunctionInvokeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_oql_query.go b/api_apaas_application_object_oql_query.go new file mode 100644 index 00000000..50448fcb --- /dev/null +++ b/api_apaas_application_object_oql_query.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSApplicationObjectOqlQuery 在应用内执行 OQL 语句 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object/oql_query +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/oql_query +func (r *APaaSService) CreateAPaaSApplicationObjectOqlQuery(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectOqlQuery != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationObjectOqlQuery mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectOqlQuery(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSApplicationObjectOqlQuery", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/oql_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSApplicationObjectOqlQueryResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSApplicationObjectOqlQuery mock APaaSCreateAPaaSApplicationObjectOqlQuery method +func (r *Mock) MockAPaaSCreateAPaaSApplicationObjectOqlQuery(f func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error)) { + r.mockAPaaSCreateAPaaSApplicationObjectOqlQuery = f +} + +// UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery un-mock APaaSCreateAPaaSApplicationObjectOqlQuery method +func (r *Mock) UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery() { + r.mockAPaaSCreateAPaaSApplicationObjectOqlQuery = nil +} + +// CreateAPaaSApplicationObjectOqlQueryReq ... +type CreateAPaaSApplicationObjectOqlQueryReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 + Query string `json:"query,omitempty"` // 待执行的 OQL 语句示例值: "SELECT _id, _name FROM _user WHERE _type = $1 AND _accountStatus = $user_status LIMIT 10" + Args *string `json:"args,omitempty"` // 用于指定 OQL 语句中匿名参数的具体值示例值: "[\"_employee\"]" + NamedArgs *string `json:"named_args,omitempty"` // 用于指定 OQL 语句中具名参数的具体值示例值: "{\"user_status\" : \"_used\"}" +} + +// CreateAPaaSApplicationObjectOqlQueryResp ... +type CreateAPaaSApplicationObjectOqlQueryResp struct { + Columns []string `json:"columns,omitempty"` // 每一列的标题 + Rows string `json:"rows,omitempty"` // 每一行的值, 以「key-value」的形式返回 +} + +// createAPaaSApplicationObjectOqlQueryResp ... +type createAPaaSApplicationObjectOqlQueryResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSApplicationObjectOqlQueryResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_batch_create.go b/api_apaas_application_object_record_batch_create.go new file mode 100644 index 00000000..1376e71d --- /dev/null +++ b/api_apaas_application_object_record_batch_create.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateAPaaSApplicationObjectRecord 一次新建多条对象中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/batch_create +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/batch_create +func (r *APaaSService) BatchCreateAPaaSApplicationObjectRecord(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchCreateAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchCreateAPaaSApplicationObjectRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/batch_create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCreateAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchCreateAPaaSApplicationObjectRecord mock APaaSBatchCreateAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSBatchCreateAPaaSApplicationObjectRecord(f func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSBatchCreateAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSBatchCreateAPaaSApplicationObjectRecord un-mock APaaSBatchCreateAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSBatchCreateAPaaSApplicationObjectRecord() { + r.mockAPaaSBatchCreateAPaaSApplicationObjectRecord = nil +} + +// BatchCreateAPaaSApplicationObjectRecordReq ... +type BatchCreateAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + Records []string `json:"records,omitempty"` // 记录详情列表, 格式为 List>, 操作记录数上限为 500 条示例值: "[{\"book_name\":\"name21\", \"book_count\":2}]" +} + +// BatchCreateAPaaSApplicationObjectRecordResp ... +type BatchCreateAPaaSApplicationObjectRecordResp struct { + Items []*BatchCreateAPaaSApplicationObjectRecordRespItem `json:"items,omitempty"` // 处理结果 +} + +// BatchCreateAPaaSApplicationObjectRecordRespItem ... +type BatchCreateAPaaSApplicationObjectRecordRespItem struct { + Success bool `json:"success,omitempty"` // 是否成功 + ID string `json:"id,omitempty"` // 记录 ID + Errors []*BatchCreateAPaaSApplicationObjectRecordRespItemError `json:"errors,omitempty"` // 权限错误时的细分 code +} + +// BatchCreateAPaaSApplicationObjectRecordRespItemError ... +type BatchCreateAPaaSApplicationObjectRecordRespItemError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // success + SubCode string `json:"sub_code,omitempty"` // 权限错误时的细分 code + Fields []string `json:"fields,omitempty"` // 权限错误时的涉及的字段 APIID 集合 +} + +// batchCreateAPaaSApplicationObjectRecordResp ... +type batchCreateAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_batch_delete.go b/api_apaas_application_object_record_batch_delete.go new file mode 100644 index 00000000..2b8a6d6a --- /dev/null +++ b/api_apaas_application_object_record_batch_delete.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchDeleteAPaaSApplicationObjectRecord 一次删除多条对象中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/batch_delete +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/batch_delete +func (r *APaaSService) BatchDeleteAPaaSApplicationObjectRecord(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchDeleteAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchDeleteAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSBatchDeleteAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchDeleteAPaaSApplicationObjectRecord", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/batch_delete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchDeleteAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchDeleteAPaaSApplicationObjectRecord mock APaaSBatchDeleteAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSBatchDeleteAPaaSApplicationObjectRecord(f func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSBatchDeleteAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSBatchDeleteAPaaSApplicationObjectRecord un-mock APaaSBatchDeleteAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSBatchDeleteAPaaSApplicationObjectRecord() { + r.mockAPaaSBatchDeleteAPaaSApplicationObjectRecord = nil +} + +// BatchDeleteAPaaSApplicationObjectRecordReq ... +type BatchDeleteAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + IDs []string `json:"ids,omitempty"` // 记录 ID 列表, 操作记录数上限为 500示例值: ["1801464965461024"] 长度范围: `0` ~ `500` +} + +// BatchDeleteAPaaSApplicationObjectRecordResp ... +type BatchDeleteAPaaSApplicationObjectRecordResp struct { + Items []*BatchDeleteAPaaSApplicationObjectRecordRespItem `json:"items,omitempty"` // 处理结果 +} + +// BatchDeleteAPaaSApplicationObjectRecordRespItem ... +type BatchDeleteAPaaSApplicationObjectRecordRespItem struct { + Success bool `json:"success,omitempty"` // 是否成功 + ID string `json:"id,omitempty"` // 记录 ID + Errors []*BatchDeleteAPaaSApplicationObjectRecordRespItemError `json:"errors,omitempty"` // 权限错误时的细分 code +} + +// BatchDeleteAPaaSApplicationObjectRecordRespItemError ... +type BatchDeleteAPaaSApplicationObjectRecordRespItemError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // success + SubCode string `json:"sub_code,omitempty"` // 权限错误时的细分 code + Fields []string `json:"fields,omitempty"` // 权限错误时的涉及的字段 APIID 集合 +} + +// batchDeleteAPaaSApplicationObjectRecordResp ... +type batchDeleteAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchDeleteAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_batch_query.go b/api_apaas_application_object_record_batch_query.go new file mode 100644 index 00000000..621d88e9 --- /dev/null +++ b/api_apaas_application_object_record_batch_query.go @@ -0,0 +1,125 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryAPaaSApplicationObjectRecord 获取对象中符合指定条件的记录列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/batch_query +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/batch_query +func (r *APaaSService) BatchQueryAPaaSApplicationObjectRecord(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchQueryAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchQueryAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSBatchQueryAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchQueryAPaaSApplicationObjectRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchQueryAPaaSApplicationObjectRecord mock APaaSBatchQueryAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSBatchQueryAPaaSApplicationObjectRecord(f func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSBatchQueryAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSBatchQueryAPaaSApplicationObjectRecord un-mock APaaSBatchQueryAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSBatchQueryAPaaSApplicationObjectRecord() { + r.mockAPaaSBatchQueryAPaaSApplicationObjectRecord = nil +} + +// BatchQueryAPaaSApplicationObjectRecordReq ... +type BatchQueryAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 目标对象的唯一标识符示例值: "_user" 长度范围: `0` ~ `256` 字符 + Select []string `json:"select,omitempty"` // 需要获取的字段, 使用字段唯一标识符进行查询, 关联字段可使用「.」进行下钻示例值: ["_name"] 长度范围: `0` ~ `256` + Filter *BatchQueryAPaaSApplicationObjectRecordReqFilter `json:"filter,omitempty"` // 筛选条件, 通过 JSON 格式指定条件 + OrderBy []*BatchQueryAPaaSApplicationObjectRecordReqOrderBy `json:"order_by,omitempty"` // 排序参数, 通过 JSON 格式指定条件。其中, field 为参与排序字段, direction 为排序方向, 多个条件按其在数组中的顺序生效。 长度范围: `0` ~ `256` + GroupBy []*BatchQueryAPaaSApplicationObjectRecordReqGroupBy `json:"group_by,omitempty"` // 聚合参数, 通过 JSON 格式指定条件。其中, field 为参与聚合的字段。 长度范围: `0` ~ `256` + PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0=" + UsePageToken *string `json:"use_page_token,omitempty"` // 是否使用 page_token 功能。为 True 时将使用 page_token 的值作为起始位置查询记录, 并且会在 Response 中返回 next_page_token 。默认为 False 。示例值: false + PageSize *int64 `json:"page_size,omitempty"` // 期望服务端返回的记录条数, 上限 500 条。不填则取默认值, 默认值为 500。示例值: 100 + Offset *int64 `json:"offset,omitempty"` // 返回记录的偏移量, 默认为 0, 即从查询到的第一条记录开始返回。offset 较大时查询性能较差, 可能引起接口响应超时, 拉取全部记录时建议使用 ID 游标分页, 具体见 ID 游标分页说明示例值: 0 取值范围: `0` ~ `10000000000` + NeedTotalCount *int64 `json:"need_total_count,omitempty"` // 是否返回符合条件的记录总数(Total)。默认为 False, 不返回记录总数。示例值: true +} + +// BatchQueryAPaaSApplicationObjectRecordReqFilter ... +type BatchQueryAPaaSApplicationObjectRecordReqFilter struct { + Conditions []*BatchQueryAPaaSApplicationObjectRecordReqFilterCondition `json:"conditions,omitempty"` // 查询条件 长度范围: `0` ~ `10` + LogicExpression *string `json:"logic_expression,omitempty"` // 逻辑关系示例值: "1 and 2" +} + +// BatchQueryAPaaSApplicationObjectRecordReqFilterCondition ... +type BatchQueryAPaaSApplicationObjectRecordReqFilterCondition struct { + Index *string `json:"index,omitempty"` // 序号示例值: "1" + Left *BatchQueryAPaaSApplicationObjectRecordReqFilterConditionLeft `json:"left,omitempty"` // 左值 + Right *BatchQueryAPaaSApplicationObjectRecordReqFilterConditionRight `json:"right,omitempty"` // 右值 + Operator *string `json:"operator,omitempty"` // 操作符示例值: "equals" +} + +// BatchQueryAPaaSApplicationObjectRecordReqFilterConditionLeft ... +type BatchQueryAPaaSApplicationObjectRecordReqFilterConditionLeft struct { + Type *string `json:"type,omitempty"` // 左值类型, 只支持 "metadataVariable", 表示字段示例值: "metadataVariable" + Settings *string `json:"settings,omitempty"` // 字段具体值, 以 JSONString 表示, 格式: {"fieldPath":[{"fieldApiName": "字段名", "objectApiName": "对象名"}]}示例值: "{\"fieldPath\":[{\"fieldApiName\": \"_id\", \"objectApiName\": \"_user\"}]}" +} + +// BatchQueryAPaaSApplicationObjectRecordReqFilterConditionRight ... +type BatchQueryAPaaSApplicationObjectRecordReqFilterConditionRight struct { + Type *string `json:"type,omitempty"` // 右值类型, 只支持 "constant", 表示常量示例值: "constant" + Settings *string `json:"settings,omitempty"` // 常量具体值, 以 JSONString 表示, 格式: {"data":"常量具体值"}示例值: "{\"data\":\"123456\"}" +} + +// BatchQueryAPaaSApplicationObjectRecordReqGroupBy ... +type BatchQueryAPaaSApplicationObjectRecordReqGroupBy struct { + Field string `json:"field,omitempty"` // 字段唯一标识示例值: "_id" 长度范围: `0` ~ `256` 字符 +} + +// BatchQueryAPaaSApplicationObjectRecordReqOrderBy ... +type BatchQueryAPaaSApplicationObjectRecordReqOrderBy struct { + Field string `json:"field,omitempty"` // 字段唯一标识示例值: "_id" 长度范围: `0` ~ `256` 字符 + Direction string `json:"direction,omitempty"` // 排序方向, 值为 "ASC" 或者 "DESC", 代表升序和降序示例值: "ASC"可选值有: 升序 降序 长度范围: `0` ~ `256` 字符 +} + +// BatchQueryAPaaSApplicationObjectRecordResp ... +type BatchQueryAPaaSApplicationObjectRecordResp struct { + Items []string `json:"items,omitempty"` // 符合条件的记录列表 + Total int64 `json:"total,omitempty"` // 符合条件的记录数 + NextPageToken string `json:"next_page_token,omitempty"` // 下一页的起始位置 Token, 访问至末尾时不返回 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// batchQueryAPaaSApplicationObjectRecordResp ... +type batchQueryAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_batch_update.go b/api_apaas_application_object_record_batch_update.go new file mode 100644 index 00000000..4a6b1273 --- /dev/null +++ b/api_apaas_application_object_record_batch_update.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchUpdateAPaaSApplicationObjectRecord 一次编辑多条对象中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/batch_update +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/batch_update +func (r *APaaSService) BatchUpdateAPaaSApplicationObjectRecord(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchUpdateAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchUpdateAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSBatchUpdateAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchUpdateAPaaSApplicationObjectRecord", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/batch_update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchUpdateAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchUpdateAPaaSApplicationObjectRecord mock APaaSBatchUpdateAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSBatchUpdateAPaaSApplicationObjectRecord(f func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSBatchUpdateAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSBatchUpdateAPaaSApplicationObjectRecord un-mock APaaSBatchUpdateAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSBatchUpdateAPaaSApplicationObjectRecord() { + r.mockAPaaSBatchUpdateAPaaSApplicationObjectRecord = nil +} + +// BatchUpdateAPaaSApplicationObjectRecordReq ... +type BatchUpdateAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + Records []string `json:"records,omitempty"` // 记录详情列表, 格式为 List>, 操作记录数上限为 500 条示例值: "[{\"_id\":\"1798681438085228\", \"book_count\":\"5\", \"book_name\":\"name4\"}]" +} + +// BatchUpdateAPaaSApplicationObjectRecordResp ... +type BatchUpdateAPaaSApplicationObjectRecordResp struct { + Items []*BatchUpdateAPaaSApplicationObjectRecordRespItem `json:"items,omitempty"` // 处理结果 +} + +// BatchUpdateAPaaSApplicationObjectRecordRespItem ... +type BatchUpdateAPaaSApplicationObjectRecordRespItem struct { + Success bool `json:"success,omitempty"` // 是否成功 + ID string `json:"id,omitempty"` // 记录 ID + Errors []*BatchUpdateAPaaSApplicationObjectRecordRespItemError `json:"errors,omitempty"` // 权限错误时的细分 code +} + +// BatchUpdateAPaaSApplicationObjectRecordRespItemError ... +type BatchUpdateAPaaSApplicationObjectRecordRespItemError struct { + Code string `json:"code,omitempty"` // 错误码 + Message string `json:"message,omitempty"` // success + SubCode string `json:"sub_code,omitempty"` // 权限错误时的细分 code + Fields []string `json:"fields,omitempty"` // 权限错误时的涉及的字段 APIID 集合 +} + +// batchUpdateAPaaSApplicationObjectRecordResp ... +type batchUpdateAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchUpdateAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_create.go b/api_apaas_application_object_record_create.go new file mode 100644 index 00000000..dd1332fa --- /dev/null +++ b/api_apaas_application_object_record_create.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSApplicationObjectRecord 在对象中新建记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/create +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/create +func (r *APaaSService) CreateAPaaSApplicationObjectRecord(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSApplicationObjectRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSApplicationObjectRecord mock APaaSCreateAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSCreateAPaaSApplicationObjectRecord(f func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSCreateAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSCreateAPaaSApplicationObjectRecord un-mock APaaSCreateAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSCreateAPaaSApplicationObjectRecord() { + r.mockAPaaSCreateAPaaSApplicationObjectRecord = nil +} + +// CreateAPaaSApplicationObjectRecordReq ... +type CreateAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + Record string `json:"record,omitempty"` // 创建对象使用的数据, 键为字段 API 名称, 值为字段值, 格式可参考字段值格式示例值: "{\"book_name\":\"test\"}" 最小长度: `0` 字符 +} + +// CreateAPaaSApplicationObjectRecordResp ... +type CreateAPaaSApplicationObjectRecordResp struct { + ID string `json:"id,omitempty"` // 记录 ID +} + +// createAPaaSApplicationObjectRecordResp ... +type createAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_delete.go b/api_apaas_application_object_record_delete.go new file mode 100644 index 00000000..1af1314c --- /dev/null +++ b/api_apaas_application_object_record_delete.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteAPaaSApplicationObjectRecord 删除对象中的指定记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/delete +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/delete +func (r *APaaSService) DeleteAPaaSApplicationObjectRecord(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSDeleteAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#DeleteAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSDeleteAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "DeleteAPaaSApplicationObjectRecord", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/:id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSDeleteAPaaSApplicationObjectRecord mock APaaSDeleteAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSDeleteAPaaSApplicationObjectRecord(f func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSDeleteAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSDeleteAPaaSApplicationObjectRecord un-mock APaaSDeleteAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSDeleteAPaaSApplicationObjectRecord() { + r.mockAPaaSDeleteAPaaSApplicationObjectRecord = nil +} + +// DeleteAPaaSApplicationObjectRecordReq ... +type DeleteAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + ID string `path:"id" json:"-"` // 记录ID示例值: "1764024447556775" +} + +// DeleteAPaaSApplicationObjectRecordResp ... +type DeleteAPaaSApplicationObjectRecordResp struct { +} + +// deleteAPaaSApplicationObjectRecordResp ... +type deleteAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_query.go b/api_apaas_application_object_record_query.go new file mode 100644 index 00000000..076dcd61 --- /dev/null +++ b/api_apaas_application_object_record_query.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryAPaaSApplicationObjectRecord 获取对象中指定的记录详情 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/query +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/query +func (r *APaaSService) QueryAPaaSApplicationObjectRecord(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSQueryAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#QueryAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSQueryAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "QueryAPaaSApplicationObjectRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/:id/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSQueryAPaaSApplicationObjectRecord mock APaaSQueryAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSQueryAPaaSApplicationObjectRecord(f func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSQueryAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSQueryAPaaSApplicationObjectRecord un-mock APaaSQueryAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSQueryAPaaSApplicationObjectRecord() { + r.mockAPaaSQueryAPaaSApplicationObjectRecord = nil +} + +// QueryAPaaSApplicationObjectRecordReq ... +type QueryAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + ID string `path:"id" json:"-"` // 记录ID示例值: "1764024447556775" + Select []string `json:"select,omitempty"` // 需要获取的字段, 使用字段唯一标识符进行查询, 关联字段可使用 . 进行下钻示例值: ["_id"] 长度范围: `0` ~ `256` +} + +// QueryAPaaSApplicationObjectRecordResp ... +type QueryAPaaSApplicationObjectRecordResp struct { + Item string `json:"item,omitempty"` // 记录详情, 格式为 Map +} + +// queryAPaaSApplicationObjectRecordResp ... +type queryAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_record_update.go b/api_apaas_application_object_record_update.go new file mode 100644 index 00000000..9ccc3715 --- /dev/null +++ b/api_apaas_application_object_record_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateAPaaSApplicationObjectRecord 编辑对象中的指定记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object-record/patch +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/patch +func (r *APaaSService) UpdateAPaaSApplicationObjectRecord(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) { + if r.cli.mock.mockAPaaSUpdateAPaaSApplicationObjectRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#UpdateAPaaSApplicationObjectRecord mock enable") + return r.cli.mock.mockAPaaSUpdateAPaaSApplicationObjectRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "UpdateAPaaSApplicationObjectRecord", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/:object_api_name/records/:id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateAPaaSApplicationObjectRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSUpdateAPaaSApplicationObjectRecord mock APaaSUpdateAPaaSApplicationObjectRecord method +func (r *Mock) MockAPaaSUpdateAPaaSApplicationObjectRecord(f func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error)) { + r.mockAPaaSUpdateAPaaSApplicationObjectRecord = f +} + +// UnMockAPaaSUpdateAPaaSApplicationObjectRecord un-mock APaaSUpdateAPaaSApplicationObjectRecord method +func (r *Mock) UnMockAPaaSUpdateAPaaSApplicationObjectRecord() { + r.mockAPaaSUpdateAPaaSApplicationObjectRecord = nil +} + +// UpdateAPaaSApplicationObjectRecordReq ... +type UpdateAPaaSApplicationObjectRecordReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 + ObjectApiName string `path:"object_api_name" json:"-"` // 对象唯一标识示例值: "user" 长度范围: `0` ~ `256` 字符 + ID string `path:"id" json:"-"` // 记录ID示例值: "1764024447556775" + Record string `json:"record,omitempty"` // 创建对象使用的数据, 键为字段 API 名称, 值为字段值, 格式可参考字段值格式示例值: "{\"_id\":\"1798681438085228\", \"book_count\":\"3\", \"book_name\":\"showcase2\"}" 最小长度: `0` 字符 +} + +// UpdateAPaaSApplicationObjectRecordResp ... +type UpdateAPaaSApplicationObjectRecordResp struct { +} + +// updateAPaaSApplicationObjectRecordResp ... +type updateAPaaSApplicationObjectRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateAPaaSApplicationObjectRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_object_search.go b/api_apaas_application_object_search.go new file mode 100644 index 00000000..a9b7845d --- /dev/null +++ b/api_apaas_application_object_search.go @@ -0,0 +1,158 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchAPaaSApplicationObject 在应用内搜索记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object/search +// new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/search +func (r *APaaSService) SearchAPaaSApplicationObject(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) { + if r.cli.mock.mockAPaaSSearchAPaaSApplicationObject != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#SearchAPaaSApplicationObject mock enable") + return r.cli.mock.mockAPaaSSearchAPaaSApplicationObject(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "SearchAPaaSApplicationObject", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchAPaaSApplicationObjectResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSSearchAPaaSApplicationObject mock APaaSSearchAPaaSApplicationObject method +func (r *Mock) MockAPaaSSearchAPaaSApplicationObject(f func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error)) { + r.mockAPaaSSearchAPaaSApplicationObject = f +} + +// UnMockAPaaSSearchAPaaSApplicationObject un-mock APaaSSearchAPaaSApplicationObject method +func (r *Mock) UnMockAPaaSSearchAPaaSApplicationObject() { + r.mockAPaaSSearchAPaaSApplicationObject = nil +} + +// SearchAPaaSApplicationObjectReq ... +type SearchAPaaSApplicationObjectReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 + Q *string `json:"q,omitempty"` // 搜索词示例值: "搜索关键字" + SearchObjects []*SearchAPaaSApplicationObjectReqSearchObject `json:"search_objects,omitempty"` // 搜索对象范围 长度范围: `0` ~ `256` + PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "eyJvYmplY3RzX3BhZ2VfdG9rZW4iOlt7Im9ial9pZCI6MTc2OTI4NzM5M" + PageSize *int64 `json:"page_size,omitempty"` // 返回数量, 默认为50, 最大不超过2000示例值: "100" + Metadata *string `json:"metadata,omitempty"` // 返回元数据枚举值示例值: "Label"可选值有: 只返回 Label返回搜索布局信息 +} + +// SearchAPaaSApplicationObjectReqSearchObject ... +type SearchAPaaSApplicationObjectReqSearchObject struct { + ApiName *string `json:"api_name,omitempty"` // 对象 APIName示例值: "_user" 长度范围: `0` ~ `256` 字符 + SearchFields []string `json:"search_fields,omitempty"` // 搜索字段 SearchFields 列表示例值: ["_id"] 长度范围: `0` ~ `500` + Select []string `json:"select,omitempty"` // 召回字段 APIID/APIName 列表示例值: ["_id"] 长度范围: `0` ~ `1000` + Filter *SearchAPaaSApplicationObjectReqSearchObjectFilter `json:"filter,omitempty"` // 过滤条件, 序列化的结果{"filter": "「标准Criterion」"} + OrderBy *SearchAPaaSApplicationObjectReqSearchObjectOrderBy `json:"order_by,omitempty"` // 排序条件 +} + +// SearchAPaaSApplicationObjectReqSearchObjectFilter ... +type SearchAPaaSApplicationObjectReqSearchObjectFilter struct { + Conditions []*SearchAPaaSApplicationObjectReqSearchObjectFilterCondition `json:"conditions,omitempty"` // 查询条件 长度范围: `0` ~ `10` + LogicExpression *string `json:"logic_expression,omitempty"` // 逻辑关系示例值: "1 and 2" +} + +// SearchAPaaSApplicationObjectReqSearchObjectFilterCondition ... +type SearchAPaaSApplicationObjectReqSearchObjectFilterCondition struct { + Index *string `json:"index,omitempty"` // 序号示例值: "1" + Left *SearchAPaaSApplicationObjectReqSearchObjectFilterConditionLeft `json:"left,omitempty"` // 左值 + Right *SearchAPaaSApplicationObjectReqSearchObjectFilterConditionRight `json:"right,omitempty"` // 右值 + Operator *string `json:"operator,omitempty"` // 操作符示例值: "equal" +} + +// SearchAPaaSApplicationObjectReqSearchObjectFilterConditionLeft ... +type SearchAPaaSApplicationObjectReqSearchObjectFilterConditionLeft struct { + Type *string `json:"type,omitempty"` // 左值类型, 只支持 "metadataVariable", 表示字段示例值: "metadataVariable" + Settings *string `json:"settings,omitempty"` // 字段具体值, 以 JSONString 表示, 格式: {"fieldPath":[{"fieldApiName": "字段名", "objectApiName": "对象名"}]}示例值: "{\"fieldPath\":[{\"fieldApiName\": \"_id\", \"objectApiName\": \"_user\"}]}" +} + +// SearchAPaaSApplicationObjectReqSearchObjectFilterConditionRight ... +type SearchAPaaSApplicationObjectReqSearchObjectFilterConditionRight struct { + Type *string `json:"type,omitempty"` // 右值类型, 只支持 "constant", 表示常量示例值: "constant" + Settings *string `json:"settings,omitempty"` // 常量具体值, 以 JSONString 表示, 格式: {"data":"常量具体值"}示例值: "{\"fieldPath\":[{\"fieldApiName\": \"_id\", \"objectApiName\": \"_user\"}]}" +} + +// SearchAPaaSApplicationObjectReqSearchObjectOrderBy ... +type SearchAPaaSApplicationObjectReqSearchObjectOrderBy struct { + Field *string `json:"field,omitempty"` // 字段名示例值: "_id" 长度范围: `0` ~ `256` 字符 + OrderType *string `json:"order_type,omitempty"` // 排序方式示例值: "asc"可选值有: 升序降序 长度范围: `0` ~ `256` 字符 +} + +// SearchAPaaSApplicationObjectResp ... +type SearchAPaaSApplicationObjectResp struct { + Records []string `json:"records,omitempty"` // 搜索结果列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + NextPageToken string `json:"next_page_token,omitempty"` // 分页标记, 当 HasMore 为 true 时, 会同时返回新的 NextPageToken + Objects []*SearchAPaaSApplicationObjectRespObject `json:"objects,omitempty"` // 对象信息 +} + +// SearchAPaaSApplicationObjectRespObject ... +type SearchAPaaSApplicationObjectRespObject struct { + Object *SearchAPaaSApplicationObjectRespObjectObject `json:"object,omitempty"` // 对象信息 + Fields []*SearchAPaaSApplicationObjectRespObjectField `json:"fields,omitempty"` // 字段信息 +} + +// SearchAPaaSApplicationObjectRespObjectField ... +type SearchAPaaSApplicationObjectRespObjectField struct { + ID int64 `json:"id,omitempty"` // 字段 id + ApiName string `json:"api_name,omitempty"` // API 名称 + Type string `json:"type,omitempty"` // 字段类型 + Label interface{} `json:"label,omitempty"` // 字段名称 +} + +// SearchAPaaSApplicationObjectRespObjectObject ... +type SearchAPaaSApplicationObjectRespObjectObject struct { + ID int64 `json:"id,omitempty"` // 对象 ID + ApiName string `json:"api_name,omitempty"` // 对象 API 名称 + Label interface{} `json:"label,omitempty"` // 对象名称 + Settings *SearchAPaaSApplicationObjectRespObjectObjectSettings `json:"settings,omitempty"` // 对象配置 +} + +// SearchAPaaSApplicationObjectRespObjectObjectSettings ... +type SearchAPaaSApplicationObjectRespObjectObjectSettings struct { + DisplayName string `json:"display_name,omitempty"` // 展示名称 + AllowSearchFields []string `json:"allow_search_fields,omitempty"` // 允许搜索字段 + SearchLayout *SearchAPaaSApplicationObjectRespObjectObjectSettingsSearchLayout `json:"search_layout,omitempty"` // 展示字段 +} + +// SearchAPaaSApplicationObjectRespObjectObjectSettingsSearchLayout ... +type SearchAPaaSApplicationObjectRespObjectObjectSettingsSearchLayout struct { + DisplayFields []string `json:"display_fields,omitempty"` // 展示字段 +} + +// searchAPaaSApplicationObjectResp ... +type searchAPaaSApplicationObjectResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchAPaaSApplicationObjectResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_record_permission_member_batch_create_authorization.go b/api_apaas_application_record_permission_member_batch_create_authorization.go new file mode 100644 index 00000000..8a038a75 --- /dev/null +++ b/api_apaas_application_record_permission_member_batch_create_authorization.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization 批量创建记录权限授权 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-record_permission-member/batch_create_authorization +// new doc: https://open.feishu.cn/document/apaas-v1/permission/application-record_permission-member/batch_create_authorization +func (r *APaaSService) BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization mock enable") + return r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/record_permissions/:record_permission_api_name/member/batch_create_authorization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization mock APaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization method +func (r *Mock) MockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(f func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error)) { + r.mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization = f +} + +// UnMockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization un-mock APaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization method +func (r *Mock) UnMockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization() { + r.mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization = nil +} + +// BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq ... +type BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + RecordPermissionApiName string `path:"record_permission_api_name" json:"-"` // 记录权限 API 名称示例值: "adminRecordPermission" 长度范围: `0` ~ `255` 字符 + UserIDs []string `json:"user_ids,omitempty"` // 需要新增的用户 ID 列表, 使用飞书 aPaaS 的用户 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` +} + +// BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp ... +type BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp struct { +} + +// batchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp ... +type batchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_record_permission_member_batch_remove_authorization.go b/api_apaas_application_record_permission_member_batch_remove_authorization.go new file mode 100644 index 00000000..ec16e9ba --- /dev/null +++ b/api_apaas_application_record_permission_member_batch_remove_authorization.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization 批量删除记录权限授权 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-record_permission-member/batch_remove_authorization +// new doc: https://open.feishu.cn/document/apaas-v1/permission/application-record_permission-member/batch_remove_authorization +func (r *APaaSService) BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization mock enable") + return r.cli.mock.mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/record_permissions/:record_permission_api_name/member/batch_remove_authorization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization mock APaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization method +func (r *Mock) MockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(f func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error)) { + r.mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization = f +} + +// UnMockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization un-mock APaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization method +func (r *Mock) UnMockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization() { + r.mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization = nil +} + +// BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq ... +type BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + RecordPermissionApiName string `path:"record_permission_api_name" json:"-"` // 记录权限 API 名称示例值: "adminRecordPermission" 长度范围: `0` ~ `255` 字符 + UserIDs []string `json:"user_ids,omitempty"` // 需要删除的用户 ID 列表, 使用飞书 aPaaS 的用户 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` +} + +// BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp ... +type BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp struct { +} + +// batchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp ... +type batchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_role_member_batch_create_authorization.go b/api_apaas_application_role_member_batch_create_authorization.go new file mode 100644 index 00000000..e6ab3700 --- /dev/null +++ b/api_apaas_application_role_member_batch_create_authorization.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateAPaaSApplicationRoleMemberAuthorization 批量创建角色成员授权 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-role-member/batch_create_authorization +// new doc: https://open.feishu.cn/document/apaas-v1/permission/application-role-member/batch_create_authorization +func (r *APaaSService) BatchCreateAPaaSApplicationRoleMemberAuthorization(ctx context.Context, request *BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchCreateAPaaSApplicationRoleMemberAuthorization mock enable") + return r.cli.mock.mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchCreateAPaaSApplicationRoleMemberAuthorization", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/roles/:role_api_name/member/batch_create_authorization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCreateAPaaSApplicationRoleMemberAuthorizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization mock APaaSBatchCreateAPaaSApplicationRoleMemberAuthorization method +func (r *Mock) MockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization(f func(ctx context.Context, request *BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *Response, error)) { + r.mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization = f +} + +// UnMockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization un-mock APaaSBatchCreateAPaaSApplicationRoleMemberAuthorization method +func (r *Mock) UnMockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization() { + r.mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization = nil +} + +// BatchCreateAPaaSApplicationRoleMemberAuthorizationReq ... +type BatchCreateAPaaSApplicationRoleMemberAuthorizationReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + RoleApiName string `path:"role_api_name" json:"-"` // 角色 API 名称示例值: "adminRole" 长度范围: `0` ~ `255` 字符 + UserIDs []string `json:"user_ids,omitempty"` // 需要新增的用户 ID 列表, 使用飞书 aPaaS 的用户 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` + DepartmentIDs []string `json:"department_ids,omitempty"` // 需要新增的部门 ID 列表, 使用飞书 aPaaS 的部门 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` +} + +// BatchCreateAPaaSApplicationRoleMemberAuthorizationResp ... +type BatchCreateAPaaSApplicationRoleMemberAuthorizationResp struct { +} + +// batchCreateAPaaSApplicationRoleMemberAuthorizationResp ... +type batchCreateAPaaSApplicationRoleMemberAuthorizationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateAPaaSApplicationRoleMemberAuthorizationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_role_member_batch_remove_authorization.go b/api_apaas_application_role_member_batch_remove_authorization.go new file mode 100644 index 00000000..d93b1819 --- /dev/null +++ b/api_apaas_application_role_member_batch_remove_authorization.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchRemoveAPaaSApplicationRoleMemberAuthorization 批量删除角色成员授权 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-role-member/batch_remove_authorization +// new doc: https://open.feishu.cn/document/apaas-v1/permission/application-role-member/batch_remove_authorization +func (r *APaaSService) BatchRemoveAPaaSApplicationRoleMemberAuthorization(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchRemoveAPaaSApplicationRoleMemberAuthorization mock enable") + return r.cli.mock.mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "BatchRemoveAPaaSApplicationRoleMemberAuthorization", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/roles/:role_api_name/member/batch_remove_authorization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchRemoveAPaaSApplicationRoleMemberAuthorizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization mock APaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization method +func (r *Mock) MockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization(f func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error)) { + r.mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization = f +} + +// UnMockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization un-mock APaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization method +func (r *Mock) UnMockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization() { + r.mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization = nil +} + +// BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq ... +type BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + RoleApiName string `path:"role_api_name" json:"-"` // 角色 API 名称示例值: "adminRole" 长度范围: `0` ~ `255` 字符 + UserIDs []string `json:"user_ids,omitempty"` // 需要删除的用户 ID 列表, 使用飞书 aPaaS 的用户 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` + DepartmentIDs []string `json:"department_ids,omitempty"` // 需要删除的部门 ID 列表, 使用飞书 aPaaS 的部门 ID示例值: ["1802412778084426"] 长度范围: `0` ~ `1000` +} + +// BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp ... +type BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp struct { +} + +// batchRemoveAPaaSApplicationRoleMemberAuthorizationResp ... +type batchRemoveAPaaSApplicationRoleMemberAuthorizationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_application_role_member_get.go b/api_apaas_application_role_member_get.go new file mode 100644 index 00000000..abfbf786 --- /dev/null +++ b/api_apaas_application_role_member_get.go @@ -0,0 +1,132 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSApplicationRoleMember 获取角色成员详情 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-role-member/get +// new doc: https://open.feishu.cn/document/apaas-v1/permission/application-role-member/get +func (r *APaaSService) GetAPaaSApplicationRoleMember(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSApplicationRoleMember != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSApplicationRoleMember mock enable") + return r.cli.mock.mockAPaaSGetAPaaSApplicationRoleMember(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSApplicationRoleMember", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/roles/:role_api_name/member", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getAPaaSApplicationRoleMemberResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSApplicationRoleMember mock APaaSGetAPaaSApplicationRoleMember method +func (r *Mock) MockAPaaSGetAPaaSApplicationRoleMember(f func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error)) { + r.mockAPaaSGetAPaaSApplicationRoleMember = f +} + +// UnMockAPaaSGetAPaaSApplicationRoleMember un-mock APaaSGetAPaaSApplicationRoleMember method +func (r *Mock) UnMockAPaaSGetAPaaSApplicationRoleMember() { + r.mockAPaaSGetAPaaSApplicationRoleMember = nil +} + +// GetAPaaSApplicationRoleMemberReq ... +type GetAPaaSApplicationRoleMemberReq struct { + Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `255` 字符 + RoleApiName string `path:"role_api_name" json:"-"` // 角色 API 名称示例值: "adminRole" 长度范围: `0` ~ `255` 字符 + NeedDisplayName *bool `query:"need_display_name" json:"-"` // 是否需要公式的展示名称, 便于前端展示示例值: false + UseApiID *bool `query:"use_api_id" json:"-"` // 是否使用 API ID字段作为出入参, 默认值为 false示例值: false默认值: `false` +} + +// GetAPaaSApplicationRoleMemberResp ... +type GetAPaaSApplicationRoleMemberResp struct { + RoleMember *GetAPaaSApplicationRoleMemberRespRoleMember `json:"role_member,omitempty"` // 角色成员 +} + +// GetAPaaSApplicationRoleMemberRespRoleMember ... +type GetAPaaSApplicationRoleMemberRespRoleMember struct { + RoleApiID string `json:"role_api_id,omitempty"` // 角色唯一 ID, 系统自动生成 + RoleApiName string `json:"role_api_name,omitempty"` // 角色 API 名称 + Users []string `json:"users,omitempty"` // 授权用户 ID 列表 + Departments []string `json:"departments,omitempty"` // 授权部门 ID 列表 + UserFilter *GetAPaaSApplicationRoleMemberRespRoleMemberUserFilter `json:"user_filter,omitempty"` // 自定义授权用户规则 + UserDisplayInfos []*GetAPaaSApplicationRoleMemberRespRoleMemberUserDisplayInfo `json:"user_display_infos,omitempty"` // 授权用户姓名列表, 入参 need_display_name = true时返回 + DepartmentDisplayInfos []*GetAPaaSApplicationRoleMemberRespRoleMemberDepartmentDisplayInfo `json:"department_display_infos,omitempty"` // 授权部门名称列表, 入参 need_display_name = true时返回 + Type string `json:"type,omitempty"` // 角色成员模式可选值有: 全部用户 自定义 + UpdatedBy string `json:"updated_by,omitempty"` // 更新人 ID + UpdatedAt int64 `json:"updated_at,omitempty"` // 更新时间, 单位: 毫秒时间戳 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberDepartmentDisplayInfo ... +type GetAPaaSApplicationRoleMemberRespRoleMemberDepartmentDisplayInfo struct { + ID string `json:"id,omitempty"` // id + Name string `json:"name,omitempty"` // 名称 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberUserDisplayInfo ... +type GetAPaaSApplicationRoleMemberRespRoleMemberUserDisplayInfo struct { + ID string `json:"id,omitempty"` // id + Name string `json:"name,omitempty"` // 名称 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberUserFilter ... +type GetAPaaSApplicationRoleMemberRespRoleMemberUserFilter struct { + Conditions []*GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterCondition `json:"conditions,omitempty"` // 查询条件 + LogicExpression string `json:"logic_expression,omitempty"` // 逻辑关系 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterCondition ... +type GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterCondition struct { + Index string `json:"index,omitempty"` // 序号 + Left *GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionLeft `json:"left,omitempty"` // 左值 + Right *GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionRight `json:"right,omitempty"` // 右值 + Operator string `json:"operator,omitempty"` // 操作符 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionLeft ... +type GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionLeft struct { + Type string `json:"type,omitempty"` // 类型 + Settings string `json:"settings,omitempty"` // 设置值 + DisplayNames []string `json:"display_names,omitempty"` // 左值/右值的展示名称 +} + +// GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionRight ... +type GetAPaaSApplicationRoleMemberRespRoleMemberUserFilterConditionRight struct { + Type string `json:"type,omitempty"` // 类型 + Settings string `json:"settings,omitempty"` // 设置值 + DisplayNames []string `json:"display_names,omitempty"` // 左值/右值的展示名称 +} + +// getAPaaSApplicationRoleMemberResp ... +type getAPaaSApplicationRoleMemberResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSApplicationRoleMemberResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_approval_instance_cancel.go b/api_apaas_approval_instance_cancel.go new file mode 100644 index 00000000..3cc5849b --- /dev/null +++ b/api_apaas_approval_instance_cancel.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSApprovalInstanceCancel 撤销一个人工任务(包括审批任务, 填写任务) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_instance/cancel +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/cancel +func (r *APaaSService) CreateAPaaSApprovalInstanceCancel(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSApprovalInstanceCancel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApprovalInstanceCancel mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSApprovalInstanceCancel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSApprovalInstanceCancel", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/approval_instances/:approval_instance_id/cancel", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSApprovalInstanceCancelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSApprovalInstanceCancel mock APaaSCreateAPaaSApprovalInstanceCancel method +func (r *Mock) MockAPaaSCreateAPaaSApprovalInstanceCancel(f func(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error)) { + r.mockAPaaSCreateAPaaSApprovalInstanceCancel = f +} + +// UnMockAPaaSCreateAPaaSApprovalInstanceCancel un-mock APaaSCreateAPaaSApprovalInstanceCancel method +func (r *Mock) UnMockAPaaSCreateAPaaSApprovalInstanceCancel() { + r.mockAPaaSCreateAPaaSApprovalInstanceCancel = nil +} + +// CreateAPaaSApprovalInstanceCancelReq ... +type CreateAPaaSApprovalInstanceCancelReq struct { + ApprovalInstanceID string `path:"approval_instance_id" json:"-"` // 审批实例, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1788173550023689" + UserID string `json:"user_id,omitempty"` // 操作用户的kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" + Opinion string `json:"opinion,omitempty"` // 撤销原因示例值: "撤销了" +} + +// CreateAPaaSApprovalInstanceCancelResp ... +type CreateAPaaSApprovalInstanceCancelResp struct { +} + +// createAPaaSApprovalInstanceCancelResp ... +type createAPaaSApprovalInstanceCancelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSApprovalInstanceCancelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_approval_task_agree.go b/api_apaas_approval_task_agree.go index c74cfe99..3bd40301 100644 --- a/api_apaas_approval_task_agree.go +++ b/api_apaas_approval_task_agree.go @@ -23,7 +23,8 @@ import ( // AgreeAPaaSApprovalTask 对于人工任务进行同意操作 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/agree +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/agree +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/agree func (r *APaaSService) AgreeAPaaSApprovalTask(ctx context.Context, request *AgreeAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*AgreeAPaaSApprovalTaskResp, *Response, error) { if r.cli.mock.mockAPaaSAgreeAPaaSApprovalTask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#AgreeAPaaSApprovalTask mock enable") @@ -57,13 +58,14 @@ func (r *Mock) UnMockAPaaSAgreeAPaaSApprovalTask() { // AgreeAPaaSApprovalTaskReq ... type AgreeAPaaSApprovalTaskReq struct { - ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID, 示例值: "1785996265147395" - UserID string `json:"user_id,omitempty"` // 操作人 ID, 示例值: "1783981209205788" - Opinion *string `json:"opinion,omitempty"` // 审批意见, 示例值: "同意" + ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID示例值: "1785996265147395" + UserID string `json:"user_id,omitempty"` // 操作人 ID示例值: "1783981209205788" + Opinion *string `json:"opinion,omitempty"` // 审批意见示例值: "同意" } // AgreeAPaaSApprovalTaskResp ... -type AgreeAPaaSApprovalTaskResp struct{} +type AgreeAPaaSApprovalTaskResp struct { +} // agreeAPaaSApprovalTaskResp ... type agreeAPaaSApprovalTaskResp struct { diff --git a/api_apaas_approval_task_reject.go b/api_apaas_approval_task_reject.go index 5d0551c4..9a9db4ca 100644 --- a/api_apaas_approval_task_reject.go +++ b/api_apaas_approval_task_reject.go @@ -23,7 +23,8 @@ import ( // RejectAPaaSApprovalTask 对于人工任务进行拒绝操作 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/reject +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/reject +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/reject func (r *APaaSService) RejectAPaaSApprovalTask(ctx context.Context, request *RejectAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*RejectAPaaSApprovalTaskResp, *Response, error) { if r.cli.mock.mockAPaaSRejectAPaaSApprovalTask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#RejectAPaaSApprovalTask mock enable") @@ -57,13 +58,14 @@ func (r *Mock) UnMockAPaaSRejectAPaaSApprovalTask() { // RejectAPaaSApprovalTaskReq ... type RejectAPaaSApprovalTaskReq struct { - ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID, 示例值: "1785996265147395" - UserID string `json:"user_id,omitempty"` // 操作人 ID, 示例值: "1783981209205788" - Opinion *string `json:"opinion,omitempty"` // 审批意见, 示例值: "拒绝" + ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID示例值: "1785996265147395" + UserID string `json:"user_id,omitempty"` // 操作人 ID示例值: "1783981209205788" + Opinion *string `json:"opinion,omitempty"` // 审批意见示例值: "拒绝" } // RejectAPaaSApprovalTaskResp ... -type RejectAPaaSApprovalTaskResp struct{} +type RejectAPaaSApprovalTaskResp struct { +} // rejectAPaaSApprovalTaskResp ... type rejectAPaaSApprovalTaskResp struct { diff --git a/api_apaas_approval_task_transfer.go b/api_apaas_approval_task_transfer.go index b4398c8e..f0d78b2e 100644 --- a/api_apaas_approval_task_transfer.go +++ b/api_apaas_approval_task_transfer.go @@ -23,7 +23,8 @@ import ( // TransferAPaaSApprovalTask 对于人工任务进行转交操作 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/transfer +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_task/transfer +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/transfer func (r *APaaSService) TransferAPaaSApprovalTask(ctx context.Context, request *TransferAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*TransferAPaaSApprovalTaskResp, *Response, error) { if r.cli.mock.mockAPaaSTransferAPaaSApprovalTask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#TransferAPaaSApprovalTask mock enable") @@ -57,15 +58,16 @@ func (r *Mock) UnMockAPaaSTransferAPaaSApprovalTask() { // TransferAPaaSApprovalTaskReq ... type TransferAPaaSApprovalTaskReq struct { - ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID, 示例值: "1785996265147395" - UserID string `json:"user_id,omitempty"` // 操作人 ID, 示例值: "1783981209205788" - FromUserIDs []string `json:"from_user_ids,omitempty"` // 原审批人id, 示例值: ["1783981209205788"], 长度范围: `0` ~ `20` - ToUserIDs []string `json:"to_user_ids,omitempty"` // 新审批人id, 示例值: ["1783981209205789"], 长度范围: `0` ~ `20` - Opinion *string `json:"opinion,omitempty"` // 转交原因, 示例值: "转交" + ApprovalTaskID string `path:"approval_task_id" json:"-"` // 人工任务 ID示例值: "1785996265147395" + UserID string `json:"user_id,omitempty"` // 操作人 ID示例值: "1783981209205788" + FromUserIDs []string `json:"from_user_ids,omitempty"` // 原审批人id示例值: ["1783981209205788"] 长度范围: `0` ~ `20` + ToUserIDs []string `json:"to_user_ids,omitempty"` // 新审批人id示例值: ["1783981209205789"] 长度范围: `0` ~ `20` + Opinion *string `json:"opinion,omitempty"` // 转交原因示例值: "转交" } // TransferAPaaSApprovalTaskResp ... -type TransferAPaaSApprovalTaskResp struct{} +type TransferAPaaSApprovalTaskResp struct { +} // transferAPaaSApprovalTaskResp ... type transferAPaaSApprovalTaskResp struct { diff --git a/api_apaas_seat_activity_list.go b/api_apaas_seat_activity_list.go new file mode 100644 index 00000000..56270b6f --- /dev/null +++ b/api_apaas_seat_activity_list.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSSeatActivity 获取租户下用户使用飞书 aPaaS 席位最近访问应用时间。需要飞书 aPaaS 系统管理员作为授权人调用当前API。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/seat_activity/list +// new doc: https://open.feishu.cn/document/apaas-v1/seat_activity/list +func (r *APaaSService) ListAPaaSSeatActivity(ctx context.Context, request *ListAPaaSSeatActivityReq, options ...MethodOptionFunc) (*ListAPaaSSeatActivityResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSSeatActivity != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSSeatActivity mock enable") + return r.cli.mock.mockAPaaSListAPaaSSeatActivity(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSSeatActivity", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/seat_activities", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSSeatActivityResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSSeatActivity mock APaaSListAPaaSSeatActivity method +func (r *Mock) MockAPaaSListAPaaSSeatActivity(f func(ctx context.Context, request *ListAPaaSSeatActivityReq, options ...MethodOptionFunc) (*ListAPaaSSeatActivityResp, *Response, error)) { + r.mockAPaaSListAPaaSSeatActivity = f +} + +// UnMockAPaaSListAPaaSSeatActivity un-mock APaaSListAPaaSSeatActivity method +func (r *Mock) UnMockAPaaSListAPaaSSeatActivity() { + r.mockAPaaSListAPaaSSeatActivity = nil +} + +// ListAPaaSSeatActivityReq ... +type ListAPaaSSeatActivityReq struct { + SeatType string `query:"seat_type" json:"-"` // 席位类型, 枚举值: per_user、per_user_per_app示例值: per_user可选值有: 平台席位应用访问席位 + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 范围: 【0, 500】示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0 +} + +// ListAPaaSSeatActivityResp ... +type ListAPaaSSeatActivityResp struct { + Items []*ListAPaaSSeatActivityRespItem `json:"items,omitempty"` // 席位活跃情况列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAPaaSSeatActivityRespItem ... +type ListAPaaSSeatActivityRespItem struct { + UserID int64 `json:"user_id,omitempty"` // aPaaS 产品用户的 ID + Namespace string `json:"namespace,omitempty"` // aPaaS 产品应用的 namespace + Status string `json:"status,omitempty"` // 席位状态, 枚举值: in_use 、released可选值有: 席位生效中席位已释放 + ActiveTime int64 `json:"active_time,omitempty"` // 毫秒时间戳。用户使用席位访问应用且席位验证通过时, 记录或更新的时间 +} + +// listAPaaSSeatActivityResp ... +type listAPaaSSeatActivityResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSSeatActivityResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_seat_assignment_list.go b/api_apaas_seat_assignment_list.go new file mode 100644 index 00000000..d9445a56 --- /dev/null +++ b/api_apaas_seat_assignment_list.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSSeatAssignment 获取租户下平台席位和应用访问席位分配详情, 如用户 ID 、应用命名空间等, 需要飞书 aPaaS 系统管理员作为授权人调用当前 API 。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/seat_assignment/list +// new doc: https://open.feishu.cn/document/apaas-v1/seat_assignment/list +func (r *APaaSService) ListAPaaSSeatAssignment(ctx context.Context, request *ListAPaaSSeatAssignmentReq, options ...MethodOptionFunc) (*ListAPaaSSeatAssignmentResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSSeatAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSSeatAssignment mock enable") + return r.cli.mock.mockAPaaSListAPaaSSeatAssignment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSSeatAssignment", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/seat_assignments", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSSeatAssignmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSSeatAssignment mock APaaSListAPaaSSeatAssignment method +func (r *Mock) MockAPaaSListAPaaSSeatAssignment(f func(ctx context.Context, request *ListAPaaSSeatAssignmentReq, options ...MethodOptionFunc) (*ListAPaaSSeatAssignmentResp, *Response, error)) { + r.mockAPaaSListAPaaSSeatAssignment = f +} + +// UnMockAPaaSListAPaaSSeatAssignment un-mock APaaSListAPaaSSeatAssignment method +func (r *Mock) UnMockAPaaSListAPaaSSeatAssignment() { + r.mockAPaaSListAPaaSSeatAssignment = nil +} + +// ListAPaaSSeatAssignmentReq ... +type ListAPaaSSeatAssignmentReq struct { + SeatType string `query:"seat_type" json:"-"` // 席位类型, 枚举值: per_user、per_user_per_app示例值: per_user可选值有: 平台席位应用访问席位 + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 范围: 【0, 500】示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0 +} + +// ListAPaaSSeatAssignmentResp ... +type ListAPaaSSeatAssignmentResp struct { + Items []*ListAPaaSSeatAssignmentRespItem `json:"items,omitempty"` // 席位分配情况列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAPaaSSeatAssignmentRespItem ... +type ListAPaaSSeatAssignmentRespItem struct { + UserID int64 `json:"user_id,omitempty"` // aPaaS 产品用户的 ID + Namespace string `json:"namespace,omitempty"` // aPaaS 产品应用的 namespace + Status string `json:"status,omitempty"` // 席位状态, 枚举值: in_use 、released可选值有: 席位生效中席位已释放 +} + +// listAPaaSSeatAssignmentResp ... +type listAPaaSSeatAssignmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSSeatAssignmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_cc.go b/api_apaas_user_task_cc.go new file mode 100644 index 00000000..cdc98f19 --- /dev/null +++ b/api_apaas_user_task_cc.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSUserTaskCc 对当前的任务进行一次抄送 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/cc +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/cc +func (r *APaaSService) CreateAPaaSUserTaskCc(ctx context.Context, request *CreateAPaaSUserTaskCcReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskCcResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSUserTaskCc != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSUserTaskCc mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSUserTaskCc(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSUserTaskCc", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_tasks/:task_id/cc", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSUserTaskCcResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSUserTaskCc mock APaaSCreateAPaaSUserTaskCc method +func (r *Mock) MockAPaaSCreateAPaaSUserTaskCc(f func(ctx context.Context, request *CreateAPaaSUserTaskCcReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskCcResp, *Response, error)) { + r.mockAPaaSCreateAPaaSUserTaskCc = f +} + +// UnMockAPaaSCreateAPaaSUserTaskCc un-mock APaaSCreateAPaaSUserTaskCc method +func (r *Mock) UnMockAPaaSCreateAPaaSUserTaskCc() { + r.mockAPaaSCreateAPaaSUserTaskCc = nil +} + +// CreateAPaaSUserTaskCcReq ... +type CreateAPaaSUserTaskCcReq struct { + TaskID string `path:"task_id" json:"-"` // 任务ID, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1234" + CcUserIDs []string `json:"cc_user_ids,omitempty"` // 抄送人的kunlunID列表, 可通过Apaas用户管理页面获取示例值: ["1234"] 长度范围: `1` ~ `10` + OperatorUserID string `json:"operator_user_id,omitempty"` // 操作人kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" +} + +// CreateAPaaSUserTaskCcResp ... +type CreateAPaaSUserTaskCcResp struct { +} + +// createAPaaSUserTaskCcResp ... +type createAPaaSUserTaskCcResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSUserTaskCcResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_chat_group.go b/api_apaas_user_task_chat_group.go new file mode 100644 index 00000000..662729d0 --- /dev/null +++ b/api_apaas_user_task_chat_group.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSUserTaskChatGroup 基于任务, 发起一个飞书群聊 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/chat_group +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/chat_group +func (r *APaaSService) CreateAPaaSUserTaskChatGroup(ctx context.Context, request *CreateAPaaSUserTaskChatGroupReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskChatGroupResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSUserTaskChatGroup != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSUserTaskChatGroup mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSUserTaskChatGroup(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSUserTaskChatGroup", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_tasks/:task_id/chat_group", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSUserTaskChatGroupResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSUserTaskChatGroup mock APaaSCreateAPaaSUserTaskChatGroup method +func (r *Mock) MockAPaaSCreateAPaaSUserTaskChatGroup(f func(ctx context.Context, request *CreateAPaaSUserTaskChatGroupReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskChatGroupResp, *Response, error)) { + r.mockAPaaSCreateAPaaSUserTaskChatGroup = f +} + +// UnMockAPaaSCreateAPaaSUserTaskChatGroup un-mock APaaSCreateAPaaSUserTaskChatGroup method +func (r *Mock) UnMockAPaaSCreateAPaaSUserTaskChatGroup() { + r.mockAPaaSCreateAPaaSUserTaskChatGroup = nil +} + +// CreateAPaaSUserTaskChatGroupReq ... +type CreateAPaaSUserTaskChatGroupReq struct { + TaskID string `path:"task_id" json:"-"` // 任务ID, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1234" + OperatorUserID string `json:"operator_user_id,omitempty"` // 操作人kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" + InviteUserIDs []string `json:"invite_user_ids,omitempty"` // 邀请进群用户KunlunID列表, 可通过Apaas用户管理页面获取示例值: ["1234"] 长度范围: `1` ~ `20` + ChatID *string `json:"chat_id,omitempty"` // 要拉入的群openID, 为空则新建群示例值: "oc_1234" + ChatName *string `json:"chat_name,omitempty"` // 要加入的群名称, 当chat_id为空时用该名称创建群聊示例值: "群名称" +} + +// CreateAPaaSUserTaskChatGroupResp ... +type CreateAPaaSUserTaskChatGroupResp struct { + ChatID string `json:"chat_id,omitempty"` // 创建的群聊ID +} + +// createAPaaSUserTaskChatGroupResp ... +type createAPaaSUserTaskChatGroupResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSUserTaskChatGroupResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_expediting.go b/api_apaas_user_task_expediting.go new file mode 100644 index 00000000..f247ea41 --- /dev/null +++ b/api_apaas_user_task_expediting.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSUserTaskExpediting 对任务当前的处理人发起一次催办 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/expediting +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/expediting +func (r *APaaSService) CreateAPaaSUserTaskExpediting(ctx context.Context, request *CreateAPaaSUserTaskExpeditingReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskExpeditingResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSUserTaskExpediting != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSUserTaskExpediting mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSUserTaskExpediting(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSUserTaskExpediting", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_tasks/:task_id/expediting", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSUserTaskExpeditingResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSUserTaskExpediting mock APaaSCreateAPaaSUserTaskExpediting method +func (r *Mock) MockAPaaSCreateAPaaSUserTaskExpediting(f func(ctx context.Context, request *CreateAPaaSUserTaskExpeditingReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskExpeditingResp, *Response, error)) { + r.mockAPaaSCreateAPaaSUserTaskExpediting = f +} + +// UnMockAPaaSCreateAPaaSUserTaskExpediting un-mock APaaSCreateAPaaSUserTaskExpediting method +func (r *Mock) UnMockAPaaSCreateAPaaSUserTaskExpediting() { + r.mockAPaaSCreateAPaaSUserTaskExpediting = nil +} + +// CreateAPaaSUserTaskExpeditingReq ... +type CreateAPaaSUserTaskExpeditingReq struct { + TaskID string `path:"task_id" json:"-"` // 任务ID, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1234" + OperatorUserID string `json:"operator_user_id,omitempty"` // 操作人kunlunUserID, 可通过Apaas用户管理页面获取示例值: "123" + ExpeditingUserIDs []string `json:"expediting_user_ids,omitempty"` // 催办人的kunlunID列表, 可通过Apaas用户管理页面获取示例值: ["1234"] 长度范围: `1` ~ `20` + Opinion *string `json:"opinion,omitempty"` // 催办理由示例值: "催办理由" +} + +// CreateAPaaSUserTaskExpeditingResp ... +type CreateAPaaSUserTaskExpeditingResp struct { +} + +// createAPaaSUserTaskExpeditingResp ... +type createAPaaSUserTaskExpeditingResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSUserTaskExpeditingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_query.go b/api_apaas_user_task_query.go new file mode 100644 index 00000000..42392cba --- /dev/null +++ b/api_apaas_user_task_query.go @@ -0,0 +1,129 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryAPaaSUserTask 查询人工任务列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/query +func (r *APaaSService) QueryAPaaSUserTask(ctx context.Context, request *QueryAPaaSUserTaskReq, options ...MethodOptionFunc) (*QueryAPaaSUserTaskResp, *Response, error) { + if r.cli.mock.mockAPaaSQueryAPaaSUserTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#QueryAPaaSUserTask mock enable") + return r.cli.mock.mockAPaaSQueryAPaaSUserTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "QueryAPaaSUserTask", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_task/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryAPaaSUserTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSQueryAPaaSUserTask mock APaaSQueryAPaaSUserTask method +func (r *Mock) MockAPaaSQueryAPaaSUserTask(f func(ctx context.Context, request *QueryAPaaSUserTaskReq, options ...MethodOptionFunc) (*QueryAPaaSUserTaskResp, *Response, error)) { + r.mockAPaaSQueryAPaaSUserTask = f +} + +// UnMockAPaaSQueryAPaaSUserTask un-mock APaaSQueryAPaaSUserTask method +func (r *Mock) UnMockAPaaSQueryAPaaSUserTask() { + r.mockAPaaSQueryAPaaSUserTask = nil +} + +// QueryAPaaSUserTaskReq ... +type QueryAPaaSUserTaskReq struct { + Type *string `json:"type,omitempty"` // 类型 - archived: 已完成的 - pending: 待处理的 示例值: "pending" + Source *string `json:"source,omitempty"` // 来源 - fromMe:我发起的 - assignMe:分配给我的 - CCMe: 抄送我的 示例值: "assignMe" + Limit *string `json:"limit,omitempty"` // 获取条数- 最小值: 1- 最大值: 50示例值: "10" + Offset *string `json:"offset,omitempty"` // 起始位置示例值: "0" + StartTime *string `json:"start_time,omitempty"` // 开始时间(毫秒)示例值: "1730208758000" + EndTime *string `json:"end_time,omitempty"` // 结束时间(毫秒)示例值: "1730208758000" + ApiIDs []string `json:"api_ids,omitempty"` // 流程apiid列表, 可以通过apaas流程列表页获取示例值: ["package_b40c28__c__action_aadfv6lfu6kai"] 长度范围: `1` ~ `100` + KunlunUserID string `json:"kunlun_user_id,omitempty"` // kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" +} + +// QueryAPaaSUserTaskResp ... +type QueryAPaaSUserTaskResp struct { + Count string `json:"count,omitempty"` // 总任务条数 + Tasks []*QueryAPaaSUserTaskRespTask `json:"tasks,omitempty"` // 任务信息 +} + +// QueryAPaaSUserTaskRespTask ... +type QueryAPaaSUserTaskRespTask struct { + TaskID string `json:"task_id,omitempty"` // 任务ID + TaskStartTime string `json:"task_start_time,omitempty"` // 任务开始时间 + WorkflowInstance *QueryAPaaSUserTaskRespTaskWorkflowInstance `json:"workflow_instance,omitempty"` // 流程实例 + Initiator *QueryAPaaSUserTaskRespTaskInitiator `json:"initiator,omitempty"` // 发起人 + Summarys []*QueryAPaaSUserTaskRespTaskSummary `json:"summarys,omitempty"` // 摘要信息 +} + +// QueryAPaaSUserTaskRespTaskInitiator ... +type QueryAPaaSUserTaskRespTaskInitiator struct { + UserID string `json:"user_id,omitempty"` // 用户KunlunID + Name string `json:"name,omitempty"` // 用户名称 +} + +// QueryAPaaSUserTaskRespTaskSummary ... +type QueryAPaaSUserTaskRespTaskSummary struct { + FileKey *QueryAPaaSUserTaskRespTaskSummaryFileKey `json:"file_key,omitempty"` // 摘要名称(多语) + FileValue []*QueryAPaaSUserTaskRespTaskSummaryFileValue `json:"file_value,omitempty"` // 摘要值(多语) +} + +// QueryAPaaSUserTaskRespTaskSummaryFileKey ... +type QueryAPaaSUserTaskRespTaskSummaryFileKey struct { + LanguageCode string `json:"language_code,omitempty"` // 多语Code + Text string `json:"text,omitempty"` // 多语Code对应的文本内容 +} + +// QueryAPaaSUserTaskRespTaskSummaryFileValue ... +type QueryAPaaSUserTaskRespTaskSummaryFileValue struct { + LanguageCode string `json:"language_code,omitempty"` // 多语Code + Text string `json:"text,omitempty"` // 多语Code对应的文本内容 +} + +// QueryAPaaSUserTaskRespTaskWorkflowInstance ... +type QueryAPaaSUserTaskRespTaskWorkflowInstance struct { + ID string `json:"id,omitempty"` // 流程实例ID + Label []*QueryAPaaSUserTaskRespTaskWorkflowInstanceLabel `json:"label,omitempty"` // 流程对应的任务名称 + Status string `json:"status,omitempty"` // 流程状态 +} + +// QueryAPaaSUserTaskRespTaskWorkflowInstanceLabel ... +type QueryAPaaSUserTaskRespTaskWorkflowInstanceLabel struct { + LanguageCode string `json:"language_code,omitempty"` // 多语Code + Text string `json:"text,omitempty"` // 多语对应的任务名称 +} + +// queryAPaaSUserTaskResp ... +type queryAPaaSUserTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryAPaaSUserTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_rollback.go b/api_apaas_user_task_rollback.go new file mode 100644 index 00000000..40b55e87 --- /dev/null +++ b/api_apaas_user_task_rollback.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSUserTaskRollback 对当前任务进行一次退回 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/rollback +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/rollback +func (r *APaaSService) CreateAPaaSUserTaskRollback(ctx context.Context, request *CreateAPaaSUserTaskRollbackReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSUserTaskRollback != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSUserTaskRollback mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSUserTaskRollback(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSUserTaskRollback", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_tasks/:task_id/rollback", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSUserTaskRollbackResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSUserTaskRollback mock APaaSCreateAPaaSUserTaskRollback method +func (r *Mock) MockAPaaSCreateAPaaSUserTaskRollback(f func(ctx context.Context, request *CreateAPaaSUserTaskRollbackReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackResp, *Response, error)) { + r.mockAPaaSCreateAPaaSUserTaskRollback = f +} + +// UnMockAPaaSCreateAPaaSUserTaskRollback un-mock APaaSCreateAPaaSUserTaskRollback method +func (r *Mock) UnMockAPaaSCreateAPaaSUserTaskRollback() { + r.mockAPaaSCreateAPaaSUserTaskRollback = nil +} + +// CreateAPaaSUserTaskRollbackReq ... +type CreateAPaaSUserTaskRollbackReq struct { + TaskID string `path:"task_id" json:"-"` // 任务ID, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1234" + OperatorUserID string `json:"operator_user_id,omitempty"` // 操作人kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" + ToTaskID string `json:"to_task_id,omitempty"` // 退回到的任务ID, 可以通过[查询人工任务可退回的点](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/rollback_points)获取示例值: "1234" + Opinion string `json:"opinion,omitempty"` // 退回原因示例值: "退回原因" +} + +// CreateAPaaSUserTaskRollbackResp ... +type CreateAPaaSUserTaskRollbackResp struct { +} + +// createAPaaSUserTaskRollbackResp ... +type createAPaaSUserTaskRollbackResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSUserTaskRollbackResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_user_task_rollback_points.go b/api_apaas_user_task_rollback_points.go new file mode 100644 index 00000000..2dc77ccb --- /dev/null +++ b/api_apaas_user_task_rollback_points.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSUserTaskRollbackPoints 查询当前任务可以退回的位置 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/rollback_points +// new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/rollback_points +func (r *APaaSService) CreateAPaaSUserTaskRollbackPoints(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSUserTaskRollbackPoints != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSUserTaskRollbackPoints mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSUserTaskRollbackPoints(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSUserTaskRollbackPoints", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/user_tasks/:task_id/rollback_points", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createAPaaSUserTaskRollbackPointsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSUserTaskRollbackPoints mock APaaSCreateAPaaSUserTaskRollbackPoints method +func (r *Mock) MockAPaaSCreateAPaaSUserTaskRollbackPoints(f func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error)) { + r.mockAPaaSCreateAPaaSUserTaskRollbackPoints = f +} + +// UnMockAPaaSCreateAPaaSUserTaskRollbackPoints un-mock APaaSCreateAPaaSUserTaskRollbackPoints method +func (r *Mock) UnMockAPaaSCreateAPaaSUserTaskRollbackPoints() { + r.mockAPaaSCreateAPaaSUserTaskRollbackPoints = nil +} + +// CreateAPaaSUserTaskRollbackPointsReq ... +type CreateAPaaSUserTaskRollbackPointsReq struct { + TaskID string `path:"task_id" json:"-"` // 任务ID, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1234" + OperatorUserID string `json:"operator_user_id,omitempty"` // 操作人kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" +} + +// CreateAPaaSUserTaskRollbackPointsResp ... +type CreateAPaaSUserTaskRollbackPointsResp struct { + Tasks []*CreateAPaaSUserTaskRollbackPointsRespTask `json:"tasks,omitempty"` // 任务列表 +} + +// CreateAPaaSUserTaskRollbackPointsRespTask ... +type CreateAPaaSUserTaskRollbackPointsRespTask struct { + ID string `json:"id,omitempty"` // 任务ID + ActivityLabel []*CreateAPaaSUserTaskRollbackPointsRespTaskActivityLabel `json:"activity_label,omitempty"` // 任务对应的名称 + IsStart bool `json:"is_start,omitempty"` // 是否开始节点 +} + +// CreateAPaaSUserTaskRollbackPointsRespTaskActivityLabel ... +type CreateAPaaSUserTaskRollbackPointsRespTaskActivityLabel struct { + LanguageCode string `json:"language_code,omitempty"` // 多语Code + Text string `json:"text,omitempty"` // 多语对应的任务名称 +} + +// createAPaaSUserTaskRollbackPointsResp ... +type createAPaaSUserTaskRollbackPointsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSUserTaskRollbackPointsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_enum_get.go b/api_apaas_workspace_enum_get.go new file mode 100644 index 00000000..e2112e07 --- /dev/null +++ b/api_apaas_workspace_enum_get.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSWorkspaceEnumGet 获取自定义枚举详细信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-enum/enum_get +func (r *APaaSService) GetAPaaSWorkspaceEnumGet(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnumGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceEnumGet mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnumGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSWorkspaceEnumGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/enums/:enum_name", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSWorkspaceEnumGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSWorkspaceEnumGet mock APaaSGetAPaaSWorkspaceEnumGet method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceEnumGet(f func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceEnumGet = f +} + +// UnMockAPaaSGetAPaaSWorkspaceEnumGet un-mock APaaSGetAPaaSWorkspaceEnumGet method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceEnumGet() { + r.mockAPaaSGetAPaaSWorkspaceEnumGet = nil +} + +// GetAPaaSWorkspaceEnumGetReq ... +type GetAPaaSWorkspaceEnumGetReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + EnumName string `path:"enum_name" json:"-"` // 枚举名称示例值: "enum_demo_1" +} + +// GetAPaaSWorkspaceEnumGetResp ... +type GetAPaaSWorkspaceEnumGetResp struct { + Name string `json:"name,omitempty"` // 枚举名称 + Description string `json:"description,omitempty"` // 枚举描述 + Options []string `json:"options,omitempty"` // 枚举值列表 + CreatedAt string `json:"created_at,omitempty"` // 创建时间, 毫秒时间戳 + CreatedBy *GetAPaaSWorkspaceEnumGetRespCreatedBy `json:"created_by,omitempty"` // 创建人 +} + +// GetAPaaSWorkspaceEnumGetRespCreatedBy ... +type GetAPaaSWorkspaceEnumGetRespCreatedBy struct { + ID string `json:"id,omitempty"` // 用户 id, 如 1693861178143800 + Name string `json:"name,omitempty"` // 用户姓名, 如王小小 + Avatar string `json:"avatar,omitempty"` // 用户头像 URL +} + +// getAPaaSWorkspaceEnumGetResp ... +type getAPaaSWorkspaceEnumGetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceEnumGetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_enum_list.go b/api_apaas_workspace_enum_list.go new file mode 100644 index 00000000..64220aa6 --- /dev/null +++ b/api_apaas_workspace_enum_list.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSWorkspaceEnum 获取工作空间下的自定义枚举列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-enum/list +func (r *APaaSService) ListAPaaSWorkspaceEnum(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSWorkspaceEnum != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSWorkspaceEnum mock enable") + return r.cli.mock.mockAPaaSListAPaaSWorkspaceEnum(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSWorkspaceEnum", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/enums", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSWorkspaceEnumResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSWorkspaceEnum mock APaaSListAPaaSWorkspaceEnum method +func (r *Mock) MockAPaaSListAPaaSWorkspaceEnum(f func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error)) { + r.mockAPaaSListAPaaSWorkspaceEnum = f +} + +// UnMockAPaaSListAPaaSWorkspaceEnum un-mock APaaSListAPaaSWorkspaceEnum method +func (r *Mock) UnMockAPaaSListAPaaSWorkspaceEnum() { + r.mockAPaaSListAPaaSWorkspaceEnum = nil +} + +// ListAPaaSWorkspaceEnumReq ... +type ListAPaaSWorkspaceEnumReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数示例值: 10默认值: `10` 取值范围: `0` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: AQD9/Rn9eij9Pm39ED40/RD/cIFmu77WxpxPB/2oHfQLZ+G8JG6tK7+ZnHiT7COhD2hMSICh/eBl7cpzU6JEC3J7COKNe4jrQ8ExwBCR +} + +// ListAPaaSWorkspaceEnumResp ... +type ListAPaaSWorkspaceEnumResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListAPaaSWorkspaceEnumRespItem `json:"items,omitempty"` // 枚举列表 +} + +// ListAPaaSWorkspaceEnumRespItem ... +type ListAPaaSWorkspaceEnumRespItem struct { + Name string `json:"name,omitempty"` // 枚举名称 + Description string `json:"description,omitempty"` // 枚举描述 + Options []string `json:"options,omitempty"` // 枚举值列表 + CreatedAt int64 `json:"created_at,omitempty"` // 创建时间, 毫秒时间戳 + CreatedBy *ListAPaaSWorkspaceEnumRespItemCreatedBy `json:"created_by,omitempty"` // 创建人 +} + +// ListAPaaSWorkspaceEnumRespItemCreatedBy ... +type ListAPaaSWorkspaceEnumRespItemCreatedBy struct { + ID string `json:"id,omitempty"` // 用户 id, 如 1693861178143800 + Name string `json:"name,omitempty"` // 用户姓名, 如王小小 + Avatar string `json:"avatar,omitempty"` // 用户头像 URL +} + +// listAPaaSWorkspaceEnumResp ... +type listAPaaSWorkspaceEnumResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSWorkspaceEnumResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_sql_commands.go b/api_apaas_workspace_sql_commands.go new file mode 100644 index 00000000..05747678 --- /dev/null +++ b/api_apaas_workspace_sql_commands.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSWorkspaceSqlCommands 在工作空间下执行 SQL 语句 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace/sql_commands +func (r *APaaSService) CreateAPaaSWorkspaceSqlCommands(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSWorkspaceSqlCommands != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSWorkspaceSqlCommands mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSWorkspaceSqlCommands(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSWorkspaceSqlCommands", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/sql_commands", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(createAPaaSWorkspaceSqlCommandsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSWorkspaceSqlCommands mock APaaSCreateAPaaSWorkspaceSqlCommands method +func (r *Mock) MockAPaaSCreateAPaaSWorkspaceSqlCommands(f func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error)) { + r.mockAPaaSCreateAPaaSWorkspaceSqlCommands = f +} + +// UnMockAPaaSCreateAPaaSWorkspaceSqlCommands un-mock APaaSCreateAPaaSWorkspaceSqlCommands method +func (r *Mock) UnMockAPaaSCreateAPaaSWorkspaceSqlCommands() { + r.mockAPaaSCreateAPaaSWorkspaceSqlCommands = nil +} + +// CreateAPaaSWorkspaceSqlCommandsReq ... +type CreateAPaaSWorkspaceSqlCommandsReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + Sql string `json:"sql,omitempty"` // 要执行的 SQL 语句示例值: "SELECT name FROM student" +} + +// CreateAPaaSWorkspaceSqlCommandsResp ... +type CreateAPaaSWorkspaceSqlCommandsResp struct { + Result string `json:"result,omitempty"` // 如果是 SELECT 命令, 返回的是查询结果的 JSON 序列化字符串。如果是其他无返回的命令, 如 DELETE 等, result 为空。 +} + +// createAPaaSWorkspaceSqlCommandsResp ... +type createAPaaSWorkspaceSqlCommandsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSWorkspaceSqlCommandsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_get.go b/api_apaas_workspace_table_get.go new file mode 100644 index 00000000..cfef0514 --- /dev/null +++ b/api_apaas_workspace_table_get.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSWorkspaceTableGet 获取数据表详细信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/table_get +func (r *APaaSService) GetAPaaSWorkspaceTableGet(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTableGet mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSWorkspaceTableGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSWorkspaceTableGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSWorkspaceTableGet mock APaaSGetAPaaSWorkspaceTableGet method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceTableGet(f func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceTableGet = f +} + +// UnMockAPaaSGetAPaaSWorkspaceTableGet un-mock APaaSGetAPaaSWorkspaceTableGet method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTableGet() { + r.mockAPaaSGetAPaaSWorkspaceTableGet = nil +} + +// GetAPaaSWorkspaceTableGetReq ... +type GetAPaaSWorkspaceTableGetReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名示例值: "table_name_1" +} + +// GetAPaaSWorkspaceTableGetResp ... +type GetAPaaSWorkspaceTableGetResp struct { + Name string `json:"name,omitempty"` // 数据表名, 如 student + Description string `json:"description,omitempty"` // 数据表描述 + Columns []*GetAPaaSWorkspaceTableGetRespColumn `json:"columns,omitempty"` // 数据表列 +} + +// GetAPaaSWorkspaceTableGetRespColumn ... +type GetAPaaSWorkspaceTableGetRespColumn struct { + Name string `json:"name,omitempty"` // 列名 + Description string `json:"description,omitempty"` // 列描述 + DataType string `json:"data_type,omitempty"` // 数据库数据类型 + IsPrimaryKey bool `json:"is_primary_key,omitempty"` // 是否是主键 + IsUnique bool `json:"is_unique,omitempty"` // 是否唯一 + IsAutoIncrement bool `json:"is_auto_increment,omitempty"` // 是否是自增 + IsArray bool `json:"is_array,omitempty"` // 是否是数组类型 + IsAllowNull bool `json:"is_allow_null,omitempty"` // 是否允许为空 + DefaultValue string `json:"default_value,omitempty"` // 默认值 +} + +// getAPaaSWorkspaceTableGetResp ... +type getAPaaSWorkspaceTableGetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceTableGetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_list.go b/api_apaas_workspace_table_list.go new file mode 100644 index 00000000..ea8345b9 --- /dev/null +++ b/api_apaas_workspace_table_list.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAPaaSWorkspaceTable 获取工作空间下的数据表列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/list +func (r *APaaSService) ListAPaaSWorkspaceTable(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) { + if r.cli.mock.mockAPaaSListAPaaSWorkspaceTable != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ListAPaaSWorkspaceTable mock enable") + return r.cli.mock.mockAPaaSListAPaaSWorkspaceTable(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "ListAPaaSWorkspaceTable", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listAPaaSWorkspaceTableResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSListAPaaSWorkspaceTable mock APaaSListAPaaSWorkspaceTable method +func (r *Mock) MockAPaaSListAPaaSWorkspaceTable(f func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error)) { + r.mockAPaaSListAPaaSWorkspaceTable = f +} + +// UnMockAPaaSListAPaaSWorkspaceTable un-mock APaaSListAPaaSWorkspaceTable method +func (r *Mock) UnMockAPaaSListAPaaSWorkspaceTable() { + r.mockAPaaSListAPaaSWorkspaceTable = nil +} + +// ListAPaaSWorkspaceTableReq ... +type ListAPaaSWorkspaceTableReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数。默认10, 最大500。示例值: 10默认值: `10` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListAPaaSWorkspaceTableResp ... +type ListAPaaSWorkspaceTableResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListAPaaSWorkspaceTableRespItem `json:"items,omitempty"` // 数据表列表 +} + +// ListAPaaSWorkspaceTableRespItem ... +type ListAPaaSWorkspaceTableRespItem struct { + Name string `json:"name,omitempty"` // 数据表名, 如 student + Description string `json:"description,omitempty"` // 数据表描述 + Columns []*ListAPaaSWorkspaceTableRespItemColumn `json:"columns,omitempty"` // 数据表列 +} + +// ListAPaaSWorkspaceTableRespItemColumn ... +type ListAPaaSWorkspaceTableRespItemColumn struct { + Name string `json:"name,omitempty"` // 列名 + Description string `json:"description,omitempty"` // 列描述 + DataType string `json:"data_type,omitempty"` // 数据库数据类型 + IsPrimaryKey bool `json:"is_primary_key,omitempty"` // 是否是主键 + IsUnique bool `json:"is_unique,omitempty"` // 是否唯一 + IsAutoIncrement bool `json:"is_auto_increment,omitempty"` // 是否是自增 + IsArray bool `json:"is_array,omitempty"` // 是否是数组类型 + IsAllowNull bool `json:"is_allow_null,omitempty"` // 是否允许为空 + DefaultValue string `json:"default_value,omitempty"` // 默认值 +} + +// listAPaaSWorkspaceTableResp ... +type listAPaaSWorkspaceTableResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAPaaSWorkspaceTableResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_records_batch_update.go b/api_apaas_workspace_table_records_batch_update.go new file mode 100644 index 00000000..8de0fb93 --- /dev/null +++ b/api_apaas_workspace_table_records_batch_update.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateAPaaSWorkspaceTableRecordsBatchUpdate 批量更新数据表中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_batch_update +func (r *APaaSService) UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) { + if r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#UpdateAPaaSWorkspaceTableRecordsBatchUpdate mock enable") + return r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "UpdateAPaaSWorkspaceTableRecordsBatchUpdate", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records_batch_update", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(updateAPaaSWorkspaceTableRecordsBatchUpdateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate mock APaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate method +func (r *Mock) MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(f func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error)) { + r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate = f +} + +// UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate un-mock APaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate method +func (r *Mock) UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate() { + r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate = nil +} + +// UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq ... +type UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" + Records []string `json:"records,omitempty"` // 要更新的数据记录列表, 单次支持最多 500条, 每行 record 都必须包含主键 _id, 且不同行要更新的字段需保持一致示例值: "[{\"_id\":\"657fade8-394d-4d86-aa35-0129e3bd7614\", \"age\":10}]" +} + +// UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp ... +type UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp struct { + RecordIDs []string `json:"record_ids,omitempty"` // 更新的记录唯一ID列表 +} + +// updateAPaaSWorkspaceTableRecordsBatchUpdateResp ... +type updateAPaaSWorkspaceTableRecordsBatchUpdateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_records_delete.go b/api_apaas_workspace_table_records_delete.go new file mode 100644 index 00000000..f3a4e159 --- /dev/null +++ b/api_apaas_workspace_table_records_delete.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteAPaaSWorkspaceTableRecordsDelete 删除数据表中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_delete +func (r *APaaSService) DeleteAPaaSWorkspaceTableRecordsDelete(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) { + if r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#DeleteAPaaSWorkspaceTableRecordsDelete mock enable") + return r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "DeleteAPaaSWorkspaceTableRecordsDelete", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(deleteAPaaSWorkspaceTableRecordsDeleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete mock APaaSDeleteAPaaSWorkspaceTableRecordsDelete method +func (r *Mock) MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(f func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error)) { + r.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete = f +} + +// UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete un-mock APaaSDeleteAPaaSWorkspaceTableRecordsDelete method +func (r *Mock) UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete() { + r.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete = nil +} + +// DeleteAPaaSWorkspaceTableRecordsDeleteReq ... +type DeleteAPaaSWorkspaceTableRecordsDeleteReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" + Filter string `query:"filter" json:"-"` // 筛选条件, 尊许 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#horizontal-filtering`此处用法和查询数据记录一致。- 示例: 查找 student 表中 age 大于 10 的学生列表: age=gt.10, URLEncode 后拼在 filter 中。示例值: age%3Dgt.10 +} + +// DeleteAPaaSWorkspaceTableRecordsDeleteResp ... +type DeleteAPaaSWorkspaceTableRecordsDeleteResp struct { +} + +// deleteAPaaSWorkspaceTableRecordsDeleteResp ... +type deleteAPaaSWorkspaceTableRecordsDeleteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAPaaSWorkspaceTableRecordsDeleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_records_get.go b/api_apaas_workspace_table_records_get.go new file mode 100644 index 00000000..921e4830 --- /dev/null +++ b/api_apaas_workspace_table_records_get.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSWorkspaceTableRecordsGet 查询数据表数据记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_get +func (r *APaaSService) GetAPaaSWorkspaceTableRecordsGet(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecordsGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTableRecordsGet mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecordsGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSWorkspaceTableRecordsGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSWorkspaceTableRecordsGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSWorkspaceTableRecordsGet mock APaaSGetAPaaSWorkspaceTableRecordsGet method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceTableRecordsGet(f func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceTableRecordsGet = f +} + +// UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet un-mock APaaSGetAPaaSWorkspaceTableRecordsGet method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet() { + r.mockAPaaSGetAPaaSWorkspaceTableRecordsGet = nil +} + +// GetAPaaSWorkspaceTableRecordsGetReq ... +type GetAPaaSWorkspaceTableRecordsGetReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数。默认10, 最大500示例值: 10默认值: `10` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Select *string `query:"select" json:"-"` // 返回的列, 默认为 *, 即返回所有列。遵循 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#vertical-filtering`示例值: _id, _created_at, name + Filter *string `query:"filter" json:"-"` // 筛选条件, 尊许 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#horizontal-filtering`- 示例: 查找 student 表中 age 大于 10 的学生列表: age=gt.10, URLEncode 后拼在 filter 中。示例值: age%3Dgt.10 + Order *string `query:"order" json:"-"` // 排序条件, 如果没指定 asc/desc, 默认为 asc, null 值可排在最前或最后。尊许 PostgREST 语法, 详情可查看`https://docs.postgrest.org/en/v13/references/api/tables_views.html#ordering`示例值: age.desc, score.asc +} + +// GetAPaaSWorkspaceTableRecordsGetResp ... +type GetAPaaSWorkspaceTableRecordsGetResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Total int64 `json:"total,omitempty"` // 符合条件的记录总数 + Items []string `json:"items,omitempty"` // 数据记录列表, 格式为数组序列化后的 JSONString +} + +// getAPaaSWorkspaceTableRecordsGetResp ... +type getAPaaSWorkspaceTableRecordsGetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceTableRecordsGetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_records_post.go b/api_apaas_workspace_table_records_post.go new file mode 100644 index 00000000..b5de95c2 --- /dev/null +++ b/api_apaas_workspace_table_records_post.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAPaaSWorkspaceTableRecordsPost 向数据表中添加或更新记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_post +func (r *APaaSService) CreateAPaaSWorkspaceTableRecordsPost(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSWorkspaceTableRecordsPost mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "CreateAPaaSWorkspaceTableRecordsPost", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(createAPaaSWorkspaceTableRecordsPostResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSCreateAPaaSWorkspaceTableRecordsPost mock APaaSCreateAPaaSWorkspaceTableRecordsPost method +func (r *Mock) MockAPaaSCreateAPaaSWorkspaceTableRecordsPost(f func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error)) { + r.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost = f +} + +// UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost un-mock APaaSCreateAPaaSWorkspaceTableRecordsPost method +func (r *Mock) UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost() { + r.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost = nil +} + +// CreateAPaaSWorkspaceTableRecordsPostReq ... +type CreateAPaaSWorkspaceTableRecordsPostReq struct { + Prefer *string `header:"Prefer" json:"-"` // 为空时表示 INSERT, resolution=merge-duplicates表示 UPSERT, 详细参考 https://docs.postgrest.org/en/v13/references/api/tables_views.html#upsert示例值: "resolution=merge-duplicates" + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" + Columns *string `query:"columns" json:"-"` // UPSERT 时使用, 指定列, 多列英文逗号拼接示例值: name, age + OnConflict *string `query:"on_conflict" json:"-"` // UPSERT 时使用, 指定使用哪一个或多个具有唯一约束的字段作为冲突判断依据, 默认为表主键。假设 user_products 表有一个由 user_id 和 product_id 组成的复合唯一约束。示例值: user_id, product_id + Records []string `json:"records,omitempty"` // 要插入的数据记录列表, 单次支持最多 500 条示例值: "[{\"name\":\"王一一\", \"gender\":\"male\", \"age\":10}, {\"name\":\"王二二\", \"gender\":\"female\", \"age\":10}]" +} + +// CreateAPaaSWorkspaceTableRecordsPostResp ... +type CreateAPaaSWorkspaceTableRecordsPostResp struct { + RecordIDs []string `json:"record_ids,omitempty"` // 按照记录顺序创建或更新的记录 ID 列表 +} + +// createAPaaSWorkspaceTableRecordsPostResp ... +type createAPaaSWorkspaceTableRecordsPostResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSWorkspaceTableRecordsPostResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_table_records_update.go b/api_apaas_workspace_table_records_update.go new file mode 100644 index 00000000..275ddfd7 --- /dev/null +++ b/api_apaas_workspace_table_records_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateAPaaSWorkspaceTableRecordsPatch 按条件更新数据表中的记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_patch +func (r *APaaSService) UpdateAPaaSWorkspaceTableRecordsPatch(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) { + if r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#UpdateAPaaSWorkspaceTableRecordsPatch mock enable") + return r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "UpdateAPaaSWorkspaceTableRecordsPatch", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(updateAPaaSWorkspaceTableRecordsPatchResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch mock APaaSUpdateAPaaSWorkspaceTableRecordsPatch method +func (r *Mock) MockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch(f func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error)) { + r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch = f +} + +// UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch un-mock APaaSUpdateAPaaSWorkspaceTableRecordsPatch method +func (r *Mock) UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch() { + r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch = nil +} + +// UpdateAPaaSWorkspaceTableRecordsPatchReq ... +type UpdateAPaaSWorkspaceTableRecordsPatchReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" + Filter string `query:"filter" json:"-"` // 筛选条件, 尊许 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#horizontal-filtering`此处用法和查询数据记录一致。- 示例: 查找 student 表中 age 大于 10 的学生列表: age=gt.10, URLEncode 后拼在 filter 中。示例值: age%3Dgt.10 + Record string `json:"record,omitempty"` // 要更新的数据记录信息示例值: "{\"age\":10}" +} + +// UpdateAPaaSWorkspaceTableRecordsPatchResp ... +type UpdateAPaaSWorkspaceTableRecordsPatchResp struct { + RecordIDs []string `json:"record_ids,omitempty"` // 更新的记录唯一ID列表 +} + +// updateAPaaSWorkspaceTableRecordsPatchResp ... +type updateAPaaSWorkspaceTableRecordsPatchResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateAPaaSWorkspaceTableRecordsPatchResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_apaas_workspace_view_views_get.go b/api_apaas_workspace_view_views_get.go new file mode 100644 index 00000000..79287596 --- /dev/null +++ b/api_apaas_workspace_view_views_get.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetAPaaSWorkspaceViewViewsGet 查询视图数据记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-view/views_get +func (r *APaaSService) GetAPaaSWorkspaceViewViewsGet(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceViewViewsGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceViewViewsGet mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceViewViewsGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "APaaS", + API: "GetAPaaSWorkspaceViewViewsGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/views/:view_name/records", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getAPaaSWorkspaceViewViewsGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAPaaSGetAPaaSWorkspaceViewViewsGet mock APaaSGetAPaaSWorkspaceViewViewsGet method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceViewViewsGet(f func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceViewViewsGet = f +} + +// UnMockAPaaSGetAPaaSWorkspaceViewViewsGet un-mock APaaSGetAPaaSWorkspaceViewViewsGet method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceViewViewsGet() { + r.mockAPaaSGetAPaaSWorkspaceViewViewsGet = nil +} + +// GetAPaaSWorkspaceViewViewsGetReq ... +type GetAPaaSWorkspaceViewViewsGetReq struct { + WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" + ViewName string `path:"view_name" json:"-"` // 视图名称, 可以从数据平台获取对应的视图名称。示例值: "view_name_1" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数。默认10, 最大500示例值: 10默认值: `10` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Select *string `query:"select" json:"-"` // 返回的列, 默认为 *, 即返回所有列。遵循 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#vertical-filtering`示例值: _id, _created_at, name + Filter *string `query:"filter" json:"-"` // 筛选条件, 尊许 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#horizontal-filtering`- 示例: 查找 student 表中 age 大于 10 的学生列表: age=gt.10, URLEncode 后拼在 filter 中。示例值: age%3Dgt.10 + Order *string `query:"order" json:"-"` // 排序条件, 如果没指定 asc/desc, 默认为 asc, null 值可排在最前或最后。尊许 PostgREST 语法, 详情可查看`https://docs.postgrest.org/en/v13/references/api/tables_views.html#ordering`示例值: age.desc, score.asc +} + +// GetAPaaSWorkspaceViewViewsGetResp ... +type GetAPaaSWorkspaceViewViewsGetResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Total int64 `json:"total,omitempty"` // 符合条件的记录总数 + Items []string `json:"items,omitempty"` // 数据记录列表, 格式为数组序列化后的 JSONString +} + +// getAPaaSWorkspaceViewViewsGetResp ... +type getAPaaSWorkspaceViewViewsGetResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceViewViewsGetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_app_feed_card_button_update.go b/api_app_feed_card_button_update.go index 61ef4ebd..61c1eba6 100644 --- a/api_app_feed_card_button_update.go +++ b/api_app_feed_card_button_update.go @@ -23,7 +23,8 @@ import ( // UpdateAppFeedCardButton 为群组消息、机器人消息的消息流卡片添加、更新、删除快捷操作按钮。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/chat_button/update +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/chat_button/update +// new doc: https://open.feishu.cn/document/im-v2/groups-bots/update func (r *MessageService) UpdateAppFeedCardButton(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) { if r.cli.mock.mockMessageUpdateAppFeedCardButton != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#UpdateAppFeedCardButton mock enable") @@ -57,37 +58,37 @@ func (r *Mock) UnMockMessageUpdateAppFeedCardButton() { // UpdateAppFeedCardButtonReq ... type UpdateAppFeedCardButtonReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表, 示例值: ["ou_89553eda9014c201e6969b478895c276"], 长度范围: `1` ~ `20` - ChatID string `json:"chat_id,omitempty"` // 群 ID, 示例值: "oc_a0553eda9014c201e6969b478895c230" - Buttons *UpdateAppFeedCardButtonReqButtons `json:"buttons,omitempty"` // 按钮 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 user ID 权限, 所以无法使用 user_id 类型的用户 ID)示例值: ["ou_89553eda9014c201e6969b478895c276"] 长度范围: `1` ~ `20` + ChatID string `json:"chat_id,omitempty"` // 群 ID示例值: "oc_a0553eda9014c201e6969b478895c230" + Buttons *UpdateAppFeedCardButtonReqButtons `json:"buttons,omitempty"` // 交互按钮(非必填字段, 如未传入该字段, 则不展示按钮;最多展示 2 个按钮) } // UpdateAppFeedCardButtonReqButtons ... type UpdateAppFeedCardButtonReqButtons struct { - Buttons []*UpdateAppFeedCardButtonReqButtonsButton `json:"buttons,omitempty"` // 按钮组合, 该字段为全量更新字段, 若未传入字段原有值, 则会清空字段数据。例如: 在保持原有按钮的字段配置的前提下, 新增一个按钮配置会添加一个按钮, 在原有按钮的字段配置上做更新, 会更新该按钮, 清空原有按钮的字段配置, 会删除该按钮, 长度范围: `0` ~ `2` + Buttons []*UpdateAppFeedCardButtonReqButtonsButton `json:"buttons,omitempty"` // 按钮组合, 该字段为全量更新字段, 若未传入字段原有值, 则会清空字段数据。例如: 在保持原有按钮的字段配置的前提下, 新增一个按钮配置会添加一个按钮。- 在原有按钮的字段配置上做更新, 会更新该按钮。- 清空原有按钮的字段配置, 会删除该按钮。 长度范围: `0` ~ `2` } // UpdateAppFeedCardButtonReqButtonsButton ... type UpdateAppFeedCardButtonReqButtonsButton struct { - MultiURL *UpdateAppFeedCardButtonReqButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL - ActionType string `json:"action_type,omitempty"` // 交互类型, 示例值: "url_page", 可选值有: url_page: URL 页面, webhook: 回调 + MultiURL *UpdateAppFeedCardButtonReqButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL(仅支持 https 协议) + ActionType string `json:"action_type,omitempty"` // 交互类型(按钮交互方式可配置跳转 URL 页面, 也可配置 webhook 回调)示例值: "url_page"可选值有: URL 页面回调 Text *UpdateAppFeedCardButtonReqButtonsButtonText `json:"text,omitempty"` // 文字 - ButtonType *string `json:"button_type,omitempty"` // 按钮类型, 示例值: "default", 可选值有: default: 默认, primary: 主要, success: 成功, 默认值: `default` - ActionMap map[string]string `json:"action_map,omitempty"` // action 字典, 示例值: {"foo": "bar"} + ButtonType *string `json:"button_type,omitempty"` // 按钮类型示例值: "default"可选值有: 默认主要成功默认值: `default` + ActionMap interface{} `json:"action_map,omitempty"` // action 字典示例值: {"foo": "bar"} } // UpdateAppFeedCardButtonReqButtonsButtonMultiURL ... type UpdateAppFeedCardButtonReqButtonsButtonMultiURL struct { - URL *string `json:"url,omitempty"` // 默认 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - PcURL *string `json:"pc_url,omitempty"` // PC URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 + URL *string `json:"url,omitempty"` // 默认 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + PcURL *string `json:"pc_url,omitempty"` // PC URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 } // UpdateAppFeedCardButtonReqButtonsButtonText ... type UpdateAppFeedCardButtonReqButtonsButtonText struct { - Text string `json:"text,omitempty"` // 文本, 示例值: "文本", 长度范围: `1` ~ `30` 字符 + Text string `json:"text,omitempty"` // 文本示例值: "文本" 长度范围: `1` ~ `30` 字符 } // UpdateAppFeedCardButtonResp ... diff --git a/api_app_feed_card_create.go b/api_app_feed_card_create.go index dbc943bb..4b24f521 100644 --- a/api_app_feed_card_create.go +++ b/api_app_feed_card_create.go @@ -23,7 +23,10 @@ import ( // CreateAppFeedCard 应用消息流卡片是飞书为应用提供的消息触达能力, 让应用可以直接在消息流发送消息, 重要消息能更快触达用户。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card/create +// 说明: 飞书客户端在 V7.6 及以上版本开始支持应用消息流卡片。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card/create +// new doc: https://open.feishu.cn/document/im-v2/app_feed_card/create func (r *MessageService) CreateAppFeedCard(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) { if r.cli.mock.mockMessageCreateAppFeedCard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#CreateAppFeedCard mock enable") @@ -57,67 +60,67 @@ func (r *Mock) UnMockMessageCreateAppFeedCard() { // CreateAppFeedCardReq ... type CreateAppFeedCardReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID AppFeedCard *CreateAppFeedCardReqAppFeedCard `json:"app_feed_card,omitempty"` // 应用消息卡片 - UserIDs []string `json:"user_ids,omitempty"` // 用户 ID, 示例值: ["ou_a0553eda9014c201e6969b478895c230"], 长度范围: `1` ~ `20` + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 userID 权限, 所以无法值使用 user_id 类型的用户 ID)示例值: ["ou_a0553eda9014c201e6969b478895c230"] 长度范围: `1` ~ `20` } // CreateAppFeedCardReqAppFeedCard ... type CreateAppFeedCardReqAppFeedCard struct { - BizID *string `json:"biz_id,omitempty"` // 业务 ID, 示例值: "096e2927-40a6-41a3-9562-314d641d09ae", 长度范围: `0` ~ `200` 字符 - Title *string `json:"title,omitempty"` // 主标题, 示例值: "主标题", 长度范围: `0` ~ `60` 字符 - AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key, 示例值: "v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226", 长度范围: `0` ~ `100` 字符 - Preview *string `json:"preview,omitempty"` // 预览信息, 示例值: "预览信息", 长度范围: `0` ~ `120` 字符 - StatusLabel *CreateAppFeedCardReqAppFeedCardStatusLabel `json:"status_label,omitempty"` // 状态标签 - Buttons *CreateAppFeedCardReqAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮 - Link *CreateAppFeedCardReqAppFeedCardLink `json:"link,omitempty"` // 跳转链接(创建时该参数为必填参数) - TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态, true-打开, false-关闭, 示例值: false, 默认值: `false` + BizID *string `json:"biz_id,omitempty"` // 业务 ID(非必填字段, 开发者可自定义业务 ID 以方便管理数据;若不传入, 则 API 响应体中会返回系统自动分配的业务 ID)示例值: "096e2927-40a6-41a3-9562-314d641d09ae" 长度范围: `0` ~ `200` 字符 + Title *string `json:"title,omitempty"` // 主标题(在用户界面中最多展示一行, 自动省略超出部分的内容;不支持定义字号及颜色)示例值: "主标题" 长度范围: `0` ~ `60` 字符 + AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key示例值: "v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226" 长度范围: `0` ~ `100` 字符 + Preview *string `json:"preview,omitempty"` // 预览信息(在用户界面中最多展示一行, 自动省略超出部分的内容;支持多个字段拼接、特殊符号和 emoji;不支持定义字号及颜色)示例值: "预览信息" 长度范围: `0` ~ `120` 字符 + StatusLabel *CreateAppFeedCardReqAppFeedCardStatusLabel `json:"status_label,omitempty"` // 状态标签(非必填字段, 如未选择该字段, 则默认展示卡片触达时间) + Buttons *CreateAppFeedCardReqAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮(非必填字段, 如未传入该字段, 则不展示按钮;最多展示 2 个按钮) + Link *CreateAppFeedCardReqAppFeedCardLink `json:"link,omitempty"` // 卡片整体跳转链接(创建时该参数为必填参数) + TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态(设置为 true 后, 卡片在消息列表临时置顶;设置为 false, 消息卡片不置顶)示例值: false默认值: `false` Notify *CreateAppFeedCardReqAppFeedCardNotify `json:"notify,omitempty"` // 通知设置, 当前可设置通知是否关闭, 为空时默认进行通知 } // CreateAppFeedCardReqAppFeedCardButtons ... type CreateAppFeedCardReqAppFeedCardButtons struct { - Buttons []*CreateAppFeedCardReqAppFeedCardButtonsButton `json:"buttons,omitempty"` // 按钮组合, 长度范围: `0` ~ `2` + Buttons []*CreateAppFeedCardReqAppFeedCardButtonsButton `json:"buttons,omitempty"` // 按钮组合 长度范围: `0` ~ `2` } // CreateAppFeedCardReqAppFeedCardButtonsButton ... type CreateAppFeedCardReqAppFeedCardButtonsButton struct { - MultiURL *CreateAppFeedCardReqAppFeedCardButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL - ActionType string `json:"action_type,omitempty"` // 交互类型, 示例值: "url_page", 可选值有: url_page: URL 页面, webhook: 回调 + MultiURL *CreateAppFeedCardReqAppFeedCardButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL(仅支持 https 协议) + ActionType string `json:"action_type,omitempty"` // 交互类型(按钮交互方式可配置跳转 URL 页面, 也可配置 webhook 回调)示例值: "url_page"可选值有: URL 页面回调 Text *CreateAppFeedCardReqAppFeedCardButtonsButtonText `json:"text,omitempty"` // 文字 - ButtonType *string `json:"button_type,omitempty"` // 按钮类型, 示例值: "default", 可选值有: default: 默认, primary: 主要, success: 成功, 默认值: `default` - ActionMap map[string]string `json:"action_map,omitempty"` // action 字典, 示例值: {"foo": "bar"} + ButtonType *string `json:"button_type,omitempty"` // 按钮类型示例值: "default"可选值有: 默认主要成功默认值: `default` + ActionMap interface{} `json:"action_map,omitempty"` // action 字典示例值: {"foo": "bar"} } // CreateAppFeedCardReqAppFeedCardButtonsButtonMultiURL ... type CreateAppFeedCardReqAppFeedCardButtonsButtonMultiURL struct { - URL *string `json:"url,omitempty"` // 默认 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - PcURL *string `json:"pc_url,omitempty"` // PC URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 + URL *string `json:"url,omitempty"` // 默认 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + PcURL *string `json:"pc_url,omitempty"` // PC URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 } // CreateAppFeedCardReqAppFeedCardButtonsButtonText ... type CreateAppFeedCardReqAppFeedCardButtonsButtonText struct { - Text string `json:"text,omitempty"` // 文本, 示例值: "文本", 长度范围: `1` ~ `30` 字符 + Text string `json:"text,omitempty"` // 文本示例值: "文本" 长度范围: `1` ~ `30` 字符 } // CreateAppFeedCardReqAppFeedCardLink ... type CreateAppFeedCardReqAppFeedCardLink struct { - Link *string `json:"link,omitempty"` // 链接, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 + Link *string `json:"link,omitempty"` // 链接注意: 仅支持 HTTPS 协议, 以及网页应用或小程序的 Applink(会校验 appid 是否正确)。示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 } // CreateAppFeedCardReqAppFeedCardNotify ... type CreateAppFeedCardReqAppFeedCardNotify struct { - CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知, 示例值: true, 默认值: `false` - CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容, 示例值: "您有新的订单", 最大长度: `20` 字符 - WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音, 示例值: true, 默认值: `false` + CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知示例值: true默认值: `false` + CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容(仅支持移动端)示例值: "您有新的订单" 最大长度: `20` 字符 + WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音(仅支持移动端;播报语音包暂不支持切换, 默认为女声)示例值: true默认值: `false` } // CreateAppFeedCardReqAppFeedCardStatusLabel ... type CreateAppFeedCardReqAppFeedCardStatusLabel struct { - Text string `json:"text,omitempty"` // 标签文字, 示例值: "标签文字", 长度范围: `1` ~ `20` 字符 - Type string `json:"type,omitempty"` // 标签类型, 示例值: "primary", 可选值有: primary: 主类型, secondary: 次要类型, success: 成功类型, danger: 危险类型, 默认值: `primary` + Text string `json:"text,omitempty"` // 标签文字示例值: "标签文字" 长度范围: `1` ~ `20` 字符 + Type string `json:"type,omitempty"` // 标签类型示例值: "primary"可选值有: 主类型次要类型成功类型危险类型默认值: `primary` } // CreateAppFeedCardResp ... @@ -130,7 +133,7 @@ type CreateAppFeedCardResp struct { type CreateAppFeedCardRespFailedCard struct { BizID string `json:"biz_id,omitempty"` // 业务 ID UserID string `json:"user_id,omitempty"` // 用户 ID - Reason string `json:"reason,omitempty"` // 原因, 可选值有: 0: 未知, 1: 无权限, 2: 未创建, 3: 频率限制, 4: 重复 + Reason string `json:"reason,omitempty"` // 原因可选值有: 未知无权限未创建频率限制重复 } // createAppFeedCardResp ... diff --git a/api_app_feed_card_delete.go b/api_app_feed_card_delete.go index dd257510..e3593d0a 100644 --- a/api_app_feed_card_delete.go +++ b/api_app_feed_card_delete.go @@ -23,7 +23,8 @@ import ( // DeleteAppFeedCard 该接口用于删除应用消息流卡片 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card-batch/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card-batch/delete +// new doc: https://open.feishu.cn/document/im-v2/app_feed_card/delete func (r *MessageService) DeleteAppFeedCard(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) { if r.cli.mock.mockMessageDeleteAppFeedCard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#DeleteAppFeedCard mock enable") @@ -57,14 +58,14 @@ func (r *Mock) UnMockMessageDeleteAppFeedCard() { // DeleteAppFeedCardReq ... type DeleteAppFeedCardReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - FeedCards []*DeleteAppFeedCardReqFeedCard `json:"feed_cards,omitempty"` // 应用消息卡片, 长度范围: `1` ~ `20` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + FeedCards []*DeleteAppFeedCardReqFeedCard `json:"feed_cards,omitempty"` // 应用消息卡片 长度范围: `1` ~ `20` } // DeleteAppFeedCardReqFeedCard ... type DeleteAppFeedCardReqFeedCard struct { - BizID string `json:"biz_id,omitempty"` // 业务 ID, 示例值: "ed381d34-49ac-4876-8d9e-23447acb587e" - UserID string `json:"user_id,omitempty"` // 用户 ID, 示例值: "ou_88553eda9014c201e6969b478895c223" + BizID string `json:"biz_id,omitempty"` // 业务 ID示例值: "ed381d34-49ac-4876-8d9e-23447acb587e" + UserID string `json:"user_id,omitempty"` // 用户 ID(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 userID 权限, 所以无法值使用 user_id 类型的用户 ID)示例值: "ou_88553eda9014c201e6969b478895c223" } // DeleteAppFeedCardResp ... @@ -76,7 +77,7 @@ type DeleteAppFeedCardResp struct { type DeleteAppFeedCardRespFailedCard struct { BizID string `json:"biz_id,omitempty"` // 业务 ID UserID string `json:"user_id,omitempty"` // 用户 ID - Reason string `json:"reason,omitempty"` // 原因, 可选值有: 0: 未知, 1: 无权限, 2: 未创建, 3: 频率限制, 4: 重复 + Reason string `json:"reason,omitempty"` // 原因可选值有: 未知无权限未创建频率限制重复 } // deleteAppFeedCardResp ... diff --git a/api_app_feed_card_instant_reminder.go b/api_app_feed_card_instant_reminder.go index 255feafc..ec69231b 100644 --- a/api_app_feed_card_instant_reminder.go +++ b/api_app_feed_card_instant_reminder.go @@ -23,7 +23,8 @@ import ( // InstantReminderAppFeedCard 即时提醒能力是飞书在消息列表中提供的强提醒能力, 当有重要通知或任务需要及时触达用户, 可将群组或机器人对话在消息列表中置顶展示, 打开飞书首页即可处理重要任务。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/feed_card/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/feed_card/patch +// new doc: https://open.feishu.cn/document/im-v2/groups-bots/patch func (r *MessageService) InstantReminderAppFeedCard(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) { if r.cli.mock.mockMessageInstantReminderAppFeedCard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#InstantReminderAppFeedCard mock enable") @@ -57,10 +58,10 @@ func (r *Mock) UnMockMessageInstantReminderAppFeedCard() { // InstantReminderAppFeedCardReq ... type InstantReminderAppFeedCardReq struct { - FeedCardID string `path:"feed_card_id" json:"-"` // 群id, 当前只支持群聊, 示例值: "oc_679eaeb583654bff73fefcc6e6371370" - UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - TimeSensitive bool `json:"time_sensitive,omitempty"` // 即时提醒状态, true-打开, false-关闭, 示例值: true - UserIDs []string `json:"user_ids,omitempty"` // 用户id 列表, 支持OpenID, UnionID, UserID, 示例值: ["ou_9d2beb613c85a2412862a49a924558c5"] + FeedCardID string `path:"feed_card_id" json:"-"` // 消息卡片 id, 当前只支持群聊类型示例值: "oc_679eaeb583654bff73fefcc6e6371370" + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TimeSensitive bool `json:"time_sensitive,omitempty"` // 即时提醒状态(设置为 true 后, 卡片在消息列表临时置顶;设置为 false, 消息卡片不置顶)示例值: true + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 user ID 权限, 所以无法使用 user_id 类型的用户 ID)示例值: ["ou_9d2beb613c85a2412862a49a924558c5"] } // InstantReminderAppFeedCardResp ... diff --git a/api_app_feed_card_update.go b/api_app_feed_card_update.go index 9a730433..7dc05988 100644 --- a/api_app_feed_card_update.go +++ b/api_app_feed_card_update.go @@ -25,7 +25,8 @@ import ( // // 字段更新策略: 具体更新的字段以 `update_fields` 为准, 根据 `update_fields` 代表的字段从 `app_feed_card` 中取出来进行更新, 不在 `update_fields` 中的字段不会更新。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card-batch/update +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card-batch/update +// new doc: https://open.feishu.cn/document/im-v2/app_feed_card/update func (r *MessageService) UpdateAppFeedCard(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) { if r.cli.mock.mockMessageUpdateAppFeedCard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#UpdateAppFeedCard mock enable") @@ -59,73 +60,73 @@ func (r *Mock) UnMockMessageUpdateAppFeedCard() { // UpdateAppFeedCardReq ... type UpdateAppFeedCardReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - FeedCards []*UpdateAppFeedCardReqFeedCard `json:"feed_cards,omitempty"` // 应用消息卡片, 长度范围: `1` ~ `20` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + FeedCards []*UpdateAppFeedCardReqFeedCard `json:"feed_cards,omitempty"` // 应用消息卡片 长度范围: `1` ~ `20` } // UpdateAppFeedCardReqFeedCard ... type UpdateAppFeedCardReqFeedCard struct { AppFeedCard *UpdateAppFeedCardReqFeedCardAppFeedCard `json:"app_feed_card,omitempty"` // 应用消息卡片 - UserID string `json:"user_id,omitempty"` // 用户 id, 示例值: "ou_a0553eda9014c201e6969b478895c230" - UpdateFields []string `json:"update_fields,omitempty"` // 更新字段列表, 示例值: ["1"], 可选值有: 1: 标题, 2: 头像 key, 3: 预览, 10: 状态标签, 11: 按钮, 12: 跳转链接, 13: 即时提醒状态, 101: 展示时间更新到当前, 102: 排序时间更新到当前, 103: 进行通知, 长度范围: `1` ~ `20` + UserID string `json:"user_id,omitempty"` // 用户 ID(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 userID 权限, 所以无法值使用 user_id 类型的用户 ID)示例值: "ou_a0553eda9014c201e6969b478895c230" + UpdateFields []string `json:"update_fields,omitempty"` // 更新字段列表示例值: ["1"]可选值有: 标题头像 key预览状态标签按钮跳转链接即时提醒状态展示时间更新到当前排序时间更新到当前进行通知 长度范围: `1` ~ `20` } // UpdateAppFeedCardReqFeedCardAppFeedCard ... type UpdateAppFeedCardReqFeedCardAppFeedCard struct { - BizID *string `json:"biz_id,omitempty"` // 业务 ID, 示例值: "096e2927-40a6-41a3-9562-314d641d09ae", 长度范围: `0` ~ `200` 字符 - Title *string `json:"title,omitempty"` // 主标题, 示例值: "主标题", 长度范围: `0` ~ `60` 字符 - AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key, 示例值: "v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226", 长度范围: `0` ~ `100` 字符 - Preview *string `json:"preview,omitempty"` // 预览信息, 示例值: "预览信息", 长度范围: `0` ~ `120` 字符 - StatusLabel *UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel `json:"status_label,omitempty"` // 状态标签 - Buttons *UpdateAppFeedCardReqFeedCardAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮 + BizID *string `json:"biz_id,omitempty"` // 业务 ID(非必填字段, 开发者可自定义业务 ID 以方便管理数据;若不传入, 则 API 响应体中会返回系统自动分配的业务 ID)示例值: "096e2927-40a6-41a3-9562-314d641d09ae" 长度范围: `0` ~ `200` 字符 + Title *string `json:"title,omitempty"` // 主标题(在用户界面中最多展示一行, 自动省略超出部分的内容;不支持定义字号及颜色)示例值: "主标题" 长度范围: `0` ~ `60` 字符 + AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key示例值: "v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226" 长度范围: `0` ~ `100` 字符 + Preview *string `json:"preview,omitempty"` // 预览信息(在用户界面中最多展示一行, 自动省略超出部分的内容;支持多个字段拼接、特殊符号和 emoji;不支持定义字号及颜色)示例值: "预览信息" 长度范围: `0` ~ `120` 字符 + StatusLabel *UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel `json:"status_label,omitempty"` // 状态标签(非必填字段, 如未选择该字段, 则默认展示卡片触达时间) + Buttons *UpdateAppFeedCardReqFeedCardAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮(非必填字段, 如未传入该字段, 则不展示按钮;最多展示 2 个按钮) Link *UpdateAppFeedCardReqFeedCardAppFeedCardLink `json:"link,omitempty"` // 跳转链接 - TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态, true-打开, false-关闭, 示例值: false, 默认值: `false` + TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态(设置为 true 后, 卡片在消息列表临时置顶;设置为 false, 消息卡片不置顶)示例值: false默认值: `false` Notify *UpdateAppFeedCardReqFeedCardAppFeedCardNotify `json:"notify,omitempty"` // 通知设置, 当前可设置通知是否关闭, 为空时默认进行通知 } // UpdateAppFeedCardReqFeedCardAppFeedCardButtons ... type UpdateAppFeedCardReqFeedCardAppFeedCardButtons struct { - Buttons []*UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton `json:"buttons,omitempty"` // 按钮组合, 长度范围: `0` ~ `2` + Buttons []*UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton `json:"buttons,omitempty"` // 按钮组合 长度范围: `0` ~ `2` } // UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton ... type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton struct { - MultiURL *UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL - ActionType string `json:"action_type,omitempty"` // 交互类型, 示例值: "url_page", 可选值有: url_page: URL 页面, webhook: 回调 + MultiURL *UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL(仅支持 https 协议) + ActionType string `json:"action_type,omitempty"` // 交互类型(按钮交互方式可配置跳转 URL 页面, 也可配置 webhook 回调)示例值: "url_page"可选值有: URL 页面回调 Text *UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText `json:"text,omitempty"` // 文字 - ButtonType *string `json:"button_type,omitempty"` // 按钮类型, 示例值: "default", 可选值有: default: 默认, primary: 主要, success: 成功, 默认值: `default` - ActionMap map[string]string `json:"action_map,omitempty"` // action 字典, 示例值: {"foo": "bar"} + ButtonType *string `json:"button_type,omitempty"` // 按钮类型示例值: "default"可选值有: 默认主要成功默认值: `default` + ActionMap interface{} `json:"action_map,omitempty"` // action 字典示例值: {"foo": "bar"} } // UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL ... type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL struct { - URL *string `json:"url,omitempty"` // 默认 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 - PcURL *string `json:"pc_url,omitempty"` // PC URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 + URL *string `json:"url,omitempty"` // 默认 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 + PcURL *string `json:"pc_url,omitempty"` // PC URL示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 } // UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText ... type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText struct { - Text string `json:"text,omitempty"` // 文本, 示例值: "文本", 长度范围: `1` ~ `30` 字符 + Text string `json:"text,omitempty"` // 文本示例值: "文本" 长度范围: `1` ~ `30` 字符 } // UpdateAppFeedCardReqFeedCardAppFeedCardLink ... type UpdateAppFeedCardReqFeedCardAppFeedCardLink struct { - Link *string `json:"link,omitempty"` // 链接, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符 + Link *string `json:"link,omitempty"` // 卡片整体跳转链接(创建时该参数为必填参数)示例值: "https://www.feishu.cn/" 最大长度: `700` 字符 } // UpdateAppFeedCardReqFeedCardAppFeedCardNotify ... type UpdateAppFeedCardReqFeedCardAppFeedCardNotify struct { - CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知, 示例值: true, 默认值: `false` - CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容, 示例值: "您有新的订单", 最大长度: `20` 字符 - WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音, 示例值: true, 默认值: `false` + CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知示例值: true默认值: `false` + CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容(仅支持移动端)示例值: "您有新的订单" 最大长度: `20` 字符 + WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音(仅支持移动端;播报语音包暂不支持切换, 默认为女声)示例值: true默认值: `false` } // UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel ... type UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel struct { - Text string `json:"text,omitempty"` // 标签文字, 示例值: "标签文字", 长度范围: `1` ~ `20` 字符 - Type string `json:"type,omitempty"` // 标签类型, 示例值: "primary", 可选值有: primary: 主类型, secondary: 次要类型, success: 成功类型, danger: 危险类型, 默认值: `primary` + Text string `json:"text,omitempty"` // 标签文字示例值: "标签文字" 长度范围: `1` ~ `20` 字符 + Type string `json:"type,omitempty"` // 标签类型示例值: "primary"可选值有: 主类型次要类型成功类型危险类型默认值: `primary` } // UpdateAppFeedCardResp ... @@ -137,7 +138,7 @@ type UpdateAppFeedCardResp struct { type UpdateAppFeedCardRespFailedCard struct { BizID string `json:"biz_id,omitempty"` // 业务 ID UserID string `json:"user_id,omitempty"` // 用户 ID - Reason string `json:"reason,omitempty"` // 原因, 可选值有: 0: 未知, 1: 无权限, 2: 未创建, 3: 频率限制, 4: 重复 + Reason string `json:"reason,omitempty"` // 原因可选值有: 未知无权限未创建频率限制重复 } // updateAppFeedCardResp ... diff --git a/api_application_app_admin_user_list.go b/api_application_app_admin_user_list.go index 43f30ad6..a423e75b 100644 --- a/api_application_app_admin_user_list.go +++ b/api_application_app_admin_user_list.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockApplicationGetApplicationAppAdminUserList() { } // GetApplicationAppAdminUserListReq ... -type GetApplicationAppAdminUserListReq struct{} +type GetApplicationAppAdminUserListReq struct { +} // GetApplicationAppAdminUserListResp ... type GetApplicationAppAdminUserListResp struct { diff --git a/api_application_app_badge_set.go b/api_application_app_badge_set.go index d9232ea3..b66b85a2 100644 --- a/api_application_app_badge_set.go +++ b/api_application_app_badge_set.go @@ -79,7 +79,8 @@ type SetApplicationAppBadgeReqPc struct { } // SetApplicationAppBadgeResp ... -type SetApplicationAppBadgeResp struct{} +type SetApplicationAppBadgeResp struct { +} // setApplicationAppBadgeResp ... type setApplicationAppBadgeResp struct { diff --git a/api_application_app_list.go b/api_application_app_list.go index 96e7c858..ce95c4af 100644 --- a/api_application_app_list.go +++ b/api_application_app_list.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uYDN3UjL2QzN14iN0cTN // new doc: https://open.feishu.cn/document/server-docs/application-v6/admin/obtain-the-apps-installed-by-an-organization -// -// Deprecated func (r *ApplicationService) GetApplicationAppList(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) { if r.cli.mock.mockApplicationGetApplicationAppList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Application#GetApplicationAppList mock enable") @@ -65,7 +63,7 @@ type GetApplicationAppListReq struct { PageToken *string `query:"page_token" json:"-"` // 分页起始位置标示, 不填表示从头开始(不保证 page_token 一定为数字, 请填入上一次请求返回的 page_token) PageSize *int64 `query:"page_size" json:"-"` // 单页需求最大个数(最大 100), 0 自动最大个数 Lang *string `query:"lang" json:"-"` // 优先展示的应用信息的语言版本(zh_cn: 中文, en_us: 英文, ja_jp: 日文) - Status *int64 `query:"status" json:"-"` // 要返回的应用的状态, 0:停用;1:启用;-1:全部, 默认为 -1 + Status *int64 `query:"status" json:"-"` // 要返回的应用的状态, 0:停用;1:启用;-1:全部, 默认为 } // GetApplicationAppListResp ... diff --git a/api_application_app_management_update.go b/api_application_app_management_update.go index 0c9ead6c..9ec6f269 100644 --- a/api_application_app_management_update.go +++ b/api_application_app_management_update.go @@ -63,7 +63,8 @@ type UpdateApplicationAppManagementReq struct { } // UpdateApplicationAppManagementResp ... -type UpdateApplicationAppManagementResp struct{} +type UpdateApplicationAppManagementResp struct { +} // updateApplicationAppManagementResp ... type updateApplicationAppManagementResp struct { diff --git a/api_application_app_visibility_get.go b/api_application_app_visibility_get.go index 783280b2..cb51c4d4 100644 --- a/api_application_app_visibility_get.go +++ b/api_application_app_visibility_get.go @@ -86,6 +86,11 @@ type GetApplicationAppVisibilityRespGroup struct { ID string `json:"id,omitempty"` // 用户组 group_id } +// GetApplicationAppVisibilityRespInvisibleDepartment ... +type GetApplicationAppVisibilityRespInvisibleDepartment struct { + ID string `json:"id,omitempty"` // 自定义 department_id +} + // GetApplicationAppVisibilityRespInvisibleGroup ... type GetApplicationAppVisibilityRespInvisibleGroup struct { ID string `json:"id,omitempty"` // 用户组 group_id diff --git a/api_application_app_visibility_update.go b/api_application_app_visibility_update.go index 739201ee..8248635e 100644 --- a/api_application_app_visibility_update.go +++ b/api_application_app_visibility_update.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/ucDN3UjL3QzN14yN0cTN // new doc: https://open.feishu.cn/document/server-docs/application-v6/admin/update-the-availability-of-an-app -// -// Deprecated func (r *ApplicationService) UpdateApplicationAppVisibility(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) { if r.cli.mock.mockApplicationUpdateApplicationAppVisibility != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Application#UpdateApplicationAppVisibility mock enable") @@ -83,7 +81,8 @@ type UpdateApplicationAppVisibilityReqDelUser struct { } // UpdateApplicationAppVisibilityResp ... -type UpdateApplicationAppVisibilityResp struct{} +type UpdateApplicationAppVisibilityResp struct { +} // updateApplicationAppVisibilityResp ... type updateApplicationAppVisibilityResp struct { diff --git a/api_application_app_visibility_update_v6.go b/api_application_app_visibility_update_v6.go index 5cfb9320..f2055751 100644 --- a/api_application_app_visibility_update_v6.go +++ b/api_application_app_visibility_update_v6.go @@ -102,7 +102,8 @@ type UpdateApplicationAppVisibilityV6ReqDelVisibleList struct { } // UpdateApplicationAppVisibilityV6Resp ... -type UpdateApplicationAppVisibilityV6Resp struct{} +type UpdateApplicationAppVisibilityV6Resp struct { +} // updateApplicationAppVisibilityV6Resp ... type updateApplicationAppVisibilityV6Resp struct { diff --git a/api_application_application_app_usage_message_push_overview.go b/api_application_application_app_usage_message_push_overview.go new file mode 100644 index 00000000..b1d81ced --- /dev/null +++ b/api_application_application_app_usage_message_push_overview.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateApplicationAppUsageMessagePushOverview 目标: 查看应用在某一天/某一周/某一个月的机器人消息推送数据, 可以根据部门做筛选 +// +// 1. 仅支持企业版/旗舰版租户使用 +// 2. 一般每天早上10点产出两天前的数据。 +// 3. 已经支持的指标包括: 消息推送给用户的次数、消息触达的人数、消息1小时阅读量、消息12小时阅读量 +// 4. 按照部门查看数据时, 会展示当前部门以及其子部门的整体使用情况 +// 5. 调用频控为100次/分 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application-app_usage/message_push_overview +// new doc: https://open.feishu.cn/document/server-docs/application-v6/app-usage/message_push_overview +func (r *ApplicationService) CreateApplicationAppUsageMessagePushOverview(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) { + if r.cli.mock.mockApplicationCreateApplicationAppUsageMessagePushOverview != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#CreateApplicationAppUsageMessagePushOverview mock enable") + return r.cli.mock.mockApplicationCreateApplicationAppUsageMessagePushOverview(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "CreateApplicationAppUsageMessagePushOverview", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/application/v6/applications/:app_id/app_usage/message_push_overview", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createApplicationAppUsageMessagePushOverviewResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationCreateApplicationAppUsageMessagePushOverview mock ApplicationCreateApplicationAppUsageMessagePushOverview method +func (r *Mock) MockApplicationCreateApplicationAppUsageMessagePushOverview(f func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error)) { + r.mockApplicationCreateApplicationAppUsageMessagePushOverview = f +} + +// UnMockApplicationCreateApplicationAppUsageMessagePushOverview un-mock ApplicationCreateApplicationAppUsageMessagePushOverview method +func (r *Mock) UnMockApplicationCreateApplicationAppUsageMessagePushOverview() { + r.mockApplicationCreateApplicationAppUsageMessagePushOverview = nil +} + +// CreateApplicationAppUsageMessagePushOverviewReq ... +type CreateApplicationAppUsageMessagePushOverviewReq struct { + AppID string `path:"app_id" json:"-"` // 目标应用ID, 支持自建应用示例值: "cli_9f115af860f7901b" + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 调用中使用的部门ID的类型示例值: open_department_id可选值有: 以自定义department_id来标识部门以open_department_id来标识部门默认值: `open_department_id` + Date string `json:"date,omitempty"` // 查询日期, 若cycle_type为week, 则输入的date必须为周一; 若cycle_type为month, 则输入的date必须为每月1号示例值: "2021-07-08" + CycleType int64 `json:"cycle_type,omitempty"` // 枚举值: day, week, month;week指自然周, 返回当前日期所在周的数据;不满一周则从周一到当前日期算。month指自然月, 返回当前日期所在月的数据。示例值: 1可选值有: 日活, 指自然日, 返回当前日期所在日的数据周活, 指自然周, 返回当前日期所在周的数据。若到查询时当周还没结束, 则返回周一到当前日期的数值。例如在2021/7/15 查询2021/7/5 这一周的数据, 则代表的是2021/7/5 ~ 2021/7/11。但若是在2021/7/8 查询2021/7/5 这一周的数据, 则返回的是2021/7/5 ~ 2021/7/7 的数据月活, 指自然月, 返回当前日期所在月的数据。若不满一个月则返回当月1日到截止日期前的数据。例如在2021/8/15 查询 7月的数据, 则代表2021/7/1~2021/7/31。 若在2021/8/15 查询8月的数据, 则代表2021/8/1~2021/8/14的数据 + DepartmentID *string `json:"department_id,omitempty"` // 需要查询的部门id, 获取方法可参考[部门ID概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)- 若部门id为空, 则返回当前租户的使用数据;若填写部门id, 则返回当前部门的使用数据(包含子部门的用户); - 若路径参数中department_id_type为空或者为open_department_id, 则此处应该填写部门的 open_department_id;若路径参数中department_id_type为department_id, 则此处应该填写部门的 department_id。返回当前部门的使用数据; 若不填写, 则返回当前租户的使用数据示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" +} + +// CreateApplicationAppUsageMessagePushOverviewResp ... +type CreateApplicationAppUsageMessagePushOverviewResp struct { + Items []*CreateApplicationAppUsageMessagePushOverviewRespItem `json:"items,omitempty"` // 消息推送情况, 指标值包括: send_msg_count: 消息推送数、send_user_count: 消息触达人数、read_in_1h_count: 消息1h阅读量、read_in_12h_count: 消息12h阅读量注意: 将一条消息推送至群聊, 该消息的推送数等于群聊人数。例如群聊内有 5 个人: 如果将 1 条消息推送至群聊后, 消息推送数(send_msg_count)为 5、消息触达人数(send_user_count)为 5。- 如果将 2 条消息推送至群聊后, 消息推送数(send_msg_count)为 10、消息触达人数(send_user_count)为 5。 +} + +// CreateApplicationAppUsageMessagePushOverviewRespItem ... +type CreateApplicationAppUsageMessagePushOverviewRespItem struct { + MetricName string `json:"metric_name,omitempty"` // 指标名称 + MetricValue int64 `json:"metric_value,omitempty"` // 指标值 +} + +// createApplicationAppUsageMessagePushOverviewResp ... +type createApplicationAppUsageMessagePushOverviewResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateApplicationAppUsageMessagePushOverviewResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_application_collaborators_get.go b/api_application_application_collaborators_get.go new file mode 100644 index 00000000..248689ad --- /dev/null +++ b/api_application_application_collaborators_get.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetApplicationCollaborators 根据 app_id 获取应用(包括自建应用和商店应用)的协作者信息, 包括应用的所有者、管理员、开发者、运营人员 +// +// - 若用 user_access_token 代表某个终端用户操作API, 则需确保该用户为应用的协作者, 否则无法操作成功 +// - 若用 tenant_access_token 代表应用操作API 且 申请了“管理应用自身资源”权限, 则仅能获取应用自身的协作者列表 +// - 若用 tenant_access_token 代表应用操作API 且 申请了“获取应用信息”权限, 则可以获取企业内创建的任何一个自建应用、商店应用的协作者列表, 无法获取企业通过应用目录安装的商店应用的协作者列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application-collaborators/get +// new doc: https://open.feishu.cn/document/application-v6/application/get-3 +func (r *ApplicationService) GetApplicationCollaborators(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) { + if r.cli.mock.mockApplicationGetApplicationCollaborators != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#GetApplicationCollaborators mock enable") + return r.cli.mock.mockApplicationGetApplicationCollaborators(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "GetApplicationCollaborators", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/application/v6/applications/:app_id/collaborators", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getApplicationCollaboratorsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationGetApplicationCollaborators mock ApplicationGetApplicationCollaborators method +func (r *Mock) MockApplicationGetApplicationCollaborators(f func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error)) { + r.mockApplicationGetApplicationCollaborators = f +} + +// UnMockApplicationGetApplicationCollaborators un-mock ApplicationGetApplicationCollaborators method +func (r *Mock) UnMockApplicationGetApplicationCollaborators() { + r.mockApplicationGetApplicationCollaborators = nil +} + +// GetApplicationCollaboratorsReq ... +type GetApplicationCollaboratorsReq struct { + AppID string `path:"app_id" json:"-"` // 应用 ID, 获取方式参见 [app_id](https://open.feishu.cn/document/ukTMukTMukTM/uYTM5UjL2ETO14iNxkTN/terminology#b047be0c)。示例值: "cli_a5002df1b6f8d01c" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetApplicationCollaboratorsResp ... +type GetApplicationCollaboratorsResp struct { + Collaborators []*GetApplicationCollaboratorsRespCollaborator `json:"collaborators,omitempty"` // 协作者 +} + +// GetApplicationCollaboratorsRespCollaborator ... +type GetApplicationCollaboratorsRespCollaborator struct { + Type string `json:"type,omitempty"` // 人员类型可选值有: 管理员开发者运营 + UserID string `json:"user_id,omitempty"` // 用户 ID, ID 类型与查询参数 user_id_type 取值一致。 +} + +// getApplicationCollaboratorsResp ... +type getApplicationCollaboratorsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetApplicationCollaboratorsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_application_collaborators_update.go b/api_application_application_collaborators_update.go new file mode 100644 index 00000000..9551ca26 --- /dev/null +++ b/api_application_application_collaborators_update.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateApplicationCollaborators 某个应用(包括自建应用和商店应用)中添加/移除应用协作者, 添加后协作者将会收到添加通知。 +// +// 若用 user_access_token 代表某个终端用户操作API, 则需确保该用户为应用的所有者或管理员, 否则无法操作成功。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application-collaborators/update +// new doc: https://open.feishu.cn/document/application-v6/application/update +func (r *ApplicationService) UpdateApplicationCollaborators(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) { + if r.cli.mock.mockApplicationUpdateApplicationCollaborators != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#UpdateApplicationCollaborators mock enable") + return r.cli.mock.mockApplicationUpdateApplicationCollaborators(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "UpdateApplicationCollaborators", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/application/v6/applications/:app_id/collaborators", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateApplicationCollaboratorsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationUpdateApplicationCollaborators mock ApplicationUpdateApplicationCollaborators method +func (r *Mock) MockApplicationUpdateApplicationCollaborators(f func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error)) { + r.mockApplicationUpdateApplicationCollaborators = f +} + +// UnMockApplicationUpdateApplicationCollaborators un-mock ApplicationUpdateApplicationCollaborators method +func (r *Mock) UnMockApplicationUpdateApplicationCollaborators() { + r.mockApplicationUpdateApplicationCollaborators = nil +} + +// UpdateApplicationCollaboratorsReq ... +type UpdateApplicationCollaboratorsReq struct { + AppID string `path:"app_id" json:"-"` // 应用 ID, 获取方式参见 [app_id](https://open.feishu.cn/document/ukTMukTMukTM/uYTM5UjL2ETO14iNxkTN/terminology#b047be0c)。示例值: "cli_a5002df1b6f8d01c" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Adds []*UpdateApplicationCollaboratorsReqAdd `json:"adds,omitempty"` // 添加人员 长度范围: `0` ~ `5` + Removes []string `json:"removes,omitempty"` // 移除人员示例值: ["ou_84aad35d084aa403a838cf73ee18467"] 长度范围: `0` ~ `5` +} + +// UpdateApplicationCollaboratorsReqAdd ... +type UpdateApplicationCollaboratorsReqAdd struct { + Type string `json:"type,omitempty"` // 人员类型示例值: "administrator"可选值有: 管理员开发者运营 + UserID string `json:"user_id,omitempty"` // 用户 ID, ID 类型与查询参数 user_id_type 取值一致。示例值: "ou_d317f090b7258ad0372aa53963cda70d" +} + +// UpdateApplicationCollaboratorsResp ... +type UpdateApplicationCollaboratorsResp struct { +} + +// updateApplicationCollaboratorsResp ... +type updateApplicationCollaboratorsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateApplicationCollaboratorsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_application_list.go b/api_application_application_list.go new file mode 100644 index 00000000..6472596d --- /dev/null +++ b/api_application_application_list.go @@ -0,0 +1,134 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListApplication 该接口用于查询企业安装的应用列表, 只能被企业自建应用调用。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application/list +// new doc: https://open.feishu.cn/document/application-v6/admin/list +func (r *ApplicationService) ListApplication(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) { + if r.cli.mock.mockApplicationListApplication != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#ListApplication mock enable") + return r.cli.mock.mockApplicationListApplication(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "ListApplication", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/application/v6/applications", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listApplicationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationListApplication mock ApplicationListApplication method +func (r *Mock) MockApplicationListApplication(f func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error)) { + r.mockApplicationListApplication = f +} + +// UnMockApplicationListApplication un-mock ApplicationListApplication method +func (r *Mock) UnMockApplicationListApplication() { + r.mockApplicationListApplication = nil +} + +// ListApplicationReq ... +type ListApplicationReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 最大值: `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw= + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Lang string `query:"lang" json:"-"` // 应用的图标、描述、帮助文档链接是按照应用的主语言返回;其他内容(如应用权限、应用分类)按照该参数设定返回对应的语言。可选值有: zh_cn: 中文 en_us: 英文 ja_jp: 日文 如不填写, 则按照应用的主语言返回示例值: zh_cn + Status *int64 `query:"status" json:"-"` // 不传入代表全部返回。传入则按照这种应用状态返回。应用状态可选值有: 0: 停用状态1: 启用状态 2: 未启用状态示例值: 0可选值有: 停用启用未启用 + PaymentType *int64 `query:"payment_type" json:"-"` // 不传入代表全部返回。传入则按照这种应用状态返回。 付费类型 可选值: 0: 免费 1: 付费示例值: 0可选值有: 免费付费 + OwnerType *int64 `query:"owner_type" json:"-"` // 不传入代表全部返回。传入则按照这种应用状态返回。所有者类型, 可选值: 0: 飞书科技 1: 飞书合作伙伴 2: 企业内成员示例值: 0可选值有: 飞书科技飞书合作伙伴企业内成员 +} + +// ListApplicationResp ... +type ListApplicationResp struct { + AppList []*ListApplicationRespApp `json:"app_list,omitempty"` // 应用列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + TotalCount int64 `json:"total_count,omitempty"` // 当前页面数据里, 应用状态为“启用”的应用总数 +} + +// ListApplicationRespApp ... +type ListApplicationRespApp struct { + AppID string `json:"app_id,omitempty"` // 应用的 app_id + CreatorID string `json:"creator_id,omitempty"` // 应用创建者(所有者) + Status int64 `json:"status,omitempty"` // 应用状态可选值有: 停用状态启用状态未启用状态未知状态 + SceneType int64 `json:"scene_type,omitempty"` // 应用类型可选值有: 自建应用应用商店应用个人应用商店应用未知应用类型 + PaymentType int64 `json:"payment_type,omitempty"` // 付费类型可选值有: 免费付费 + CreateSource string `json:"create_source,omitempty"` // 应用创建来源(目前仅Base应用返回)可选值有: 开发者后台多维表格自动化流程创建的应用飞书 aPaaS机器人助手aily(智能伙伴搭建平台)未知来源 + RedirectURLs []string `json:"redirect_urls,omitempty"` // 安全设置中的重定向 URL + OnlineVersionID string `json:"online_version_id,omitempty"` // 发布在线上的应用版本 ID, 若没有则为空 + UnauditVersionID string `json:"unaudit_version_id,omitempty"` // 在审核中的版本 ID, 若没有则为空 + AppName string `json:"app_name,omitempty"` // 应用名称 + AvatarURL string `json:"avatar_url,omitempty"` // 应用图标 url + Description string `json:"description,omitempty"` // 应用默认描述 + Scopes []*ListApplicationRespAppScope `json:"scopes,omitempty"` // 应用权限列表 + BackHomeURL string `json:"back_home_url,omitempty"` // 后台主页地址 + I18n []*ListApplicationRespAppI18n `json:"i18n,omitempty"` // 应用的国际化信息列表 + PrimaryLanguage string `json:"primary_language,omitempty"` // 应用主语言可选值有: 中文英文日文 + CommonCategories []string `json:"common_categories,omitempty"` // 应用分类的国际化描述 + Owner *ListApplicationRespAppOwner `json:"owner,omitempty"` // 应用的所有者信息 + MobileDefaultAbility string `json:"mobile_default_ability,omitempty"` // 移动端默认能力可选值有: 小程序网页应用机器人 + PcDefaultAbility string `json:"pc_default_ability,omitempty"` // PC端默认能力可选值有: 小程序网页应用机器人 +} + +// ListApplicationRespAppI18n ... +type ListApplicationRespAppI18n struct { + I18nKey string `json:"i18n_key,omitempty"` // 国际化语言的 key可选值有: 中文英文日文繁体中文(中国香港)繁体中文(中国台湾)印度尼西亚语马来语德语西班牙语法语意大利语葡萄牙语(巴西)越南语俄语泰语韩语 + Name string `json:"name,omitempty"` // 应用国际化名称 + Description string `json:"description,omitempty"` // 应用国际化描述(副标题) + HelpUse string `json:"help_use,omitempty"` // 国际化帮助文档链接 +} + +// ListApplicationRespAppOwner ... +type ListApplicationRespAppOwner struct { + Type int64 `json:"type,omitempty"` // 应用所有者类型可选值有: 飞书科技飞书合作伙伴企业内成员 + OwnerID string `json:"owner_id,omitempty"` // 应用所有者ID + Name string `json:"name,omitempty"` // 应用开发商名称(仅商店应用返回) + HelpDesk string `json:"help_desk,omitempty"` // 应用开发商服务台链接(仅商店应用返回) + Email string `json:"email,omitempty"` // 应用开发商的邮箱(仅商店应用返回) + Phone string `json:"phone,omitempty"` // 应用开发商的手机号(仅商店应用返回) + CustomerServiceAccount string `json:"customer_service_account,omitempty"` // 客服账号, 仅当商店应用配置了这种联系方式时才会返回 +} + +// ListApplicationRespAppScope ... +type ListApplicationRespAppScope struct { + Scope string `json:"scope,omitempty"` // 应用权限 + Description string `json:"description,omitempty"` // 应用权限的国际化描述 + Level int64 `json:"level,omitempty"` // 权限等级描述可选值有: 普通权限高级权限超敏感权限未知等级 +} + +// listApplicationResp ... +type listApplicationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListApplicationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_application_owner_update.go b/api_application_application_owner_update.go new file mode 100644 index 00000000..6e263948 --- /dev/null +++ b/api_application_application_owner_update.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateApplicationOwner 将某个自建应用的所有者转移给另外一个人。 +// +// 若用 user_access_token 代表某个终端用户操作API, 则需确保该用户为应用当前的所有者, 否则无法操作成功。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application-owner/update +// new doc: https://open.feishu.cn/document/application-v6/application/update-2 +func (r *ApplicationService) UpdateApplicationOwner(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) { + if r.cli.mock.mockApplicationUpdateApplicationOwner != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#UpdateApplicationOwner mock enable") + return r.cli.mock.mockApplicationUpdateApplicationOwner(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "UpdateApplicationOwner", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/application/v6/applications/:app_id/owner", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateApplicationOwnerResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationUpdateApplicationOwner mock ApplicationUpdateApplicationOwner method +func (r *Mock) MockApplicationUpdateApplicationOwner(f func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error)) { + r.mockApplicationUpdateApplicationOwner = f +} + +// UnMockApplicationUpdateApplicationOwner un-mock ApplicationUpdateApplicationOwner method +func (r *Mock) UnMockApplicationUpdateApplicationOwner() { + r.mockApplicationUpdateApplicationOwner = nil +} + +// UpdateApplicationOwnerReq ... +type UpdateApplicationOwnerReq struct { + AppID string `path:"app_id" json:"-"` // 应用 ID, 获取方式参见 [app_id](https://open.feishu.cn/document/ukTMukTMukTM/uYTM5UjL2ETO14iNxkTN/terminology#b047be0c)。示例值: "cli_a306c5476fb8d00c" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OwnerID string `json:"owner_id,omitempty"` // 新的拥有者用户ID, 类型由查询参数中的user_id_type确定示例值: "ou_84aad35d084aa403a838cf73ee184670" +} + +// UpdateApplicationOwnerResp ... +type UpdateApplicationOwnerResp struct { +} + +// updateApplicationOwnerResp ... +type updateApplicationOwnerResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateApplicationOwnerResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_contacts_range_configuration_update.go b/api_application_contacts_range_configuration_update.go index ff8ef755..cbdc6a1e 100644 --- a/api_application_contacts_range_configuration_update.go +++ b/api_application_contacts_range_configuration_update.go @@ -83,7 +83,8 @@ type UpdateApplicationContactsRangeConfigurationReqDelVisibleList struct { } // UpdateApplicationContactsRangeConfigurationResp ... -type UpdateApplicationContactsRangeConfigurationResp struct{} +type UpdateApplicationContactsRangeConfigurationResp struct { +} // updateApplicationContactsRangeConfigurationResp ... type updateApplicationContactsRangeConfigurationResp struct { diff --git a/api_application_feedback_update.go b/api_application_feedback_update.go index 9b201a56..719f52cb 100644 --- a/api_application_feedback_update.go +++ b/api_application_feedback_update.go @@ -66,7 +66,8 @@ type UpdateApplicationFeedbackReq struct { } // UpdateApplicationFeedbackResp ... -type UpdateApplicationFeedbackResp struct{} +type UpdateApplicationFeedbackResp struct { +} // updateApplicationFeedbackResp ... type updateApplicationFeedbackResp struct { diff --git a/api_application_scope_apply.go b/api_application_scope_apply.go new file mode 100644 index 00000000..8d26aa86 --- /dev/null +++ b/api_application_scope_apply.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateApplicationScopeApply 调用该接口以应用身份向租户管理员申请应用内需要审核的 API 权限。 +// +// 注意: 同一租户下, 其他员工在一个应用的同一个版本向管理员申请授权的次数不能超过 10 次。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/scope/apply +// new doc: https://open.feishu.cn/document/application-v6/scope/apply +func (r *ApplicationService) CreateApplicationScopeApply(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) { + if r.cli.mock.mockApplicationCreateApplicationScopeApply != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#CreateApplicationScopeApply mock enable") + return r.cli.mock.mockApplicationCreateApplicationScopeApply(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "CreateApplicationScopeApply", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/application/v6/scopes/apply", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createApplicationScopeApplyResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationCreateApplicationScopeApply mock ApplicationCreateApplicationScopeApply method +func (r *Mock) MockApplicationCreateApplicationScopeApply(f func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error)) { + r.mockApplicationCreateApplicationScopeApply = f +} + +// UnMockApplicationCreateApplicationScopeApply un-mock ApplicationCreateApplicationScopeApply method +func (r *Mock) UnMockApplicationCreateApplicationScopeApply() { + r.mockApplicationCreateApplicationScopeApply = nil +} + +// CreateApplicationScopeApplyReq ... +type CreateApplicationScopeApplyReq struct { +} + +// CreateApplicationScopeApplyResp ... +type CreateApplicationScopeApplyResp struct { +} + +// createApplicationScopeApplyResp ... +type createApplicationScopeApplyResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateApplicationScopeApplyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_scope_list.go b/api_application_scope_list.go new file mode 100644 index 00000000..a2dce52a --- /dev/null +++ b/api_application_scope_list.go @@ -0,0 +1,80 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListApplicationScope 调用该接口查询当前应用向租户申请授权的状态。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/scope/list +// new doc: https://open.feishu.cn/document/application-v6/scope/list +func (r *ApplicationService) ListApplicationScope(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) { + if r.cli.mock.mockApplicationListApplicationScope != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Application#ListApplicationScope mock enable") + return r.cli.mock.mockApplicationListApplicationScope(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Application", + API: "ListApplicationScope", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/application/v6/scopes", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listApplicationScopeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockApplicationListApplicationScope mock ApplicationListApplicationScope method +func (r *Mock) MockApplicationListApplicationScope(f func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error)) { + r.mockApplicationListApplicationScope = f +} + +// UnMockApplicationListApplicationScope un-mock ApplicationListApplicationScope method +func (r *Mock) UnMockApplicationListApplicationScope() { + r.mockApplicationListApplicationScope = nil +} + +// ListApplicationScopeReq ... +type ListApplicationScopeReq struct { +} + +// ListApplicationScopeResp ... +type ListApplicationScopeResp struct { + Scopes []*ListApplicationScopeRespScope `json:"scopes,omitempty"` // 租户对当前应用所需权限的授予情况。 +} + +// ListApplicationScopeRespScope ... +type ListApplicationScopeRespScope struct { + ScopeName string `json:"scope_name,omitempty"` // 权限名称。取值示例 `user.phone:readonly`。 + GrantStatus int64 `json:"grant_status,omitempty"` // 权限授予状态。可选值有: 已授权未授权 +} + +// listApplicationScopeResp ... +type listApplicationScopeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListApplicationScopeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_application_update.go b/api_application_update.go index 35b9e615..4338ff0b 100644 --- a/api_application_update.go +++ b/api_application_update.go @@ -64,7 +64,8 @@ type UpdateApplicationReq struct { } // UpdateApplicationResp ... -type UpdateApplicationResp struct{} +type UpdateApplicationResp struct { +} // updateApplicationResp ... type updateApplicationResp struct { diff --git a/api_application_version_update.go b/api_application_version_update.go index 16d52c69..b7a9ce36 100644 --- a/api_application_version_update.go +++ b/api_application_version_update.go @@ -67,7 +67,8 @@ type UpdateApplicationVersionReq struct { } // UpdateApplicationVersionResp ... -type UpdateApplicationVersionResp struct{} +type UpdateApplicationVersionResp struct { +} // updateApplicationVersionResp ... type updateApplicationVersionResp struct { diff --git a/api_application_workplace_block_access_data_search.go b/api_application_workplace_block_access_data_search.go index 35b5ae48..9fb5037a 100644 --- a/api_application_workplace_block_access_data_search.go +++ b/api_application_workplace_block_access_data_search.go @@ -72,6 +72,19 @@ type SearchApplicationWorkplaceBlockAccessDataResp struct { PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token } +// SearchApplicationWorkplaceBlockAccessDataRespItem ... +type SearchApplicationWorkplaceBlockAccessDataRespItem struct { + Date string `json:"date,omitempty"` // 时间, 精确到天, 格式yyyy-MM-dd + BlockID string `json:"block_id,omitempty"` // 小组件id(BlockID)。可前往 飞书管理后台 > 工作台 > 定制工作台, 选择指定的工作台并进入工作台编辑器, 点击某个小组件, 即可查看页面右侧面板中该小组件名称下方的“BlockID” + AccessData *SearchApplicationWorkplaceBlockAccessDataRespItemAccessData `json:"access_data,omitempty"` // block访问数据信息。 +} + +// SearchApplicationWorkplaceBlockAccessDataRespItemAccessData ... +type SearchApplicationWorkplaceBlockAccessDataRespItemAccessData struct { + Pv int64 `json:"pv,omitempty"` // 访问次数 + Uv int64 `json:"uv,omitempty"` // 访问用户数(去重) +} + // searchApplicationWorkplaceBlockAccessDataResp ... type searchApplicationWorkplaceBlockAccessDataResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_approval_carbon_copy_create.go b/api_approval_carbon_copy_create.go index c5060433..7aad57a3 100644 --- a/api_approval_carbon_copy_create.go +++ b/api_approval_carbon_copy_create.go @@ -67,7 +67,8 @@ type CreateApprovalCarbonCopyReq struct { } // CreateApprovalCarbonCopyResp ... -type CreateApprovalCarbonCopyResp struct{} +type CreateApprovalCarbonCopyResp struct { +} // createApprovalCarbonCopyResp ... type createApprovalCarbonCopyResp struct { diff --git a/api_approval_instance_add_sign.go b/api_approval_instance_add_sign.go index 13cf123a..502426be 100644 --- a/api_approval_instance_add_sign.go +++ b/api_approval_instance_add_sign.go @@ -69,7 +69,8 @@ type AddApprovalInstanceSignReq struct { } // AddApprovalInstanceSignResp ... -type AddApprovalInstanceSignResp struct{} +type AddApprovalInstanceSignResp struct { +} // addApprovalInstanceSignResp ... type addApprovalInstanceSignResp struct { diff --git a/api_approval_instance_approve.go b/api_approval_instance_approve.go index 14150ad2..beae3843 100644 --- a/api_approval_instance_approve.go +++ b/api_approval_instance_approve.go @@ -68,7 +68,8 @@ type ApproveApprovalInstanceReq struct { } // ApproveApprovalInstanceResp ... -type ApproveApprovalInstanceResp struct{} +type ApproveApprovalInstanceResp struct { +} // approveApprovalInstanceResp ... type approveApprovalInstanceResp struct { diff --git a/api_approval_instance_cancel.go b/api_approval_instance_cancel.go index de3cbd0e..ad7120a3 100644 --- a/api_approval_instance_cancel.go +++ b/api_approval_instance_cancel.go @@ -70,7 +70,8 @@ type CancelApprovalInstanceReq struct { } // CancelApprovalInstanceResp ... -type CancelApprovalInstanceResp struct{} +type CancelApprovalInstanceResp struct { +} // cancelApprovalInstanceResp ... type cancelApprovalInstanceResp struct { diff --git a/api_approval_instance_reject.go b/api_approval_instance_reject.go index dfac5059..874a4c92 100644 --- a/api_approval_instance_reject.go +++ b/api_approval_instance_reject.go @@ -68,7 +68,8 @@ type RejectApprovalInstanceReq struct { } // RejectApprovalInstanceResp ... -type RejectApprovalInstanceResp struct{} +type RejectApprovalInstanceResp struct { +} // rejectApprovalInstanceResp ... type rejectApprovalInstanceResp struct { diff --git a/api_approval_instance_rollback.go b/api_approval_instance_rollback.go index fe2febe2..0e99bafa 100644 --- a/api_approval_instance_rollback.go +++ b/api_approval_instance_rollback.go @@ -67,7 +67,8 @@ type RollbackApprovalInstanceReq struct { } // RollbackApprovalInstanceResp ... -type RollbackApprovalInstanceResp struct{} +type RollbackApprovalInstanceResp struct { +} // rollbackApprovalInstanceResp ... type rollbackApprovalInstanceResp struct { diff --git a/api_approval_instance_task_resubmit.go b/api_approval_instance_task_resubmit.go index 0339dda1..3caf2cf4 100644 --- a/api_approval_instance_task_resubmit.go +++ b/api_approval_instance_task_resubmit.go @@ -68,7 +68,8 @@ type ResubmitApprovalInstanceTaskReq struct { } // ResubmitApprovalInstanceTaskResp ... -type ResubmitApprovalInstanceTaskResp struct{} +type ResubmitApprovalInstanceTaskResp struct { +} // resubmitApprovalInstanceTaskResp ... type resubmitApprovalInstanceTaskResp struct { diff --git a/api_approval_instance_transfer.go b/api_approval_instance_transfer.go index 71f546c5..3f4c37b3 100644 --- a/api_approval_instance_transfer.go +++ b/api_approval_instance_transfer.go @@ -68,7 +68,8 @@ type TransferApprovalInstanceReq struct { } // TransferApprovalInstanceResp ... -type TransferApprovalInstanceResp struct{} +type TransferApprovalInstanceResp struct { +} // transferApprovalInstanceResp ... type transferApprovalInstanceResp struct { diff --git a/api_approval_message_send.go b/api_approval_message_send.go index 493bd9b6..63374284 100644 --- a/api_approval_message_send.go +++ b/api_approval_message_send.go @@ -125,6 +125,10 @@ type SendApprovalMessageReqI18nResource struct { Texts interface{} `header:"texts" json:"-"` // 文案的 Key:Value。Key 需要以 `@i18n@` 开头, 并按照各个参数的要求传入 Value。示例值: ```{"@i18n@1": "权限申请", "@i18n@2": "OA审批", "@i18n@3": "Permission"}``` } +// SendApprovalMessageReqI18nResourceTexts ... +type SendApprovalMessageReqI18nResourceTexts struct { +} + // SendApprovalMessageResp ... type SendApprovalMessageResp struct { MessageID string `json:"message_id,omitempty"` // 消息 ID, 用于[更新审批 Bot 消息](https://open.feishu.cn/document/ukTMukTMukTM/uAjNyYjLwYjM24CM2IjN) diff --git a/api_approval_subscription_subscribe.go b/api_approval_subscription_subscribe.go index 6d6263d4..c71e5994 100644 --- a/api_approval_subscription_subscribe.go +++ b/api_approval_subscription_subscribe.go @@ -68,7 +68,8 @@ type SubscribeApprovalSubscriptionReq struct { } // SubscribeApprovalSubscriptionResp ... -type SubscribeApprovalSubscriptionResp struct{} +type SubscribeApprovalSubscriptionResp struct { +} // subscribeApprovalSubscriptionResp ... type subscribeApprovalSubscriptionResp struct { diff --git a/api_approval_subscription_unsubscribe.go b/api_approval_subscription_unsubscribe.go index e511352f..41fcf22a 100644 --- a/api_approval_subscription_unsubscribe.go +++ b/api_approval_subscription_unsubscribe.go @@ -62,7 +62,8 @@ type UnsubscribeApprovalSubscriptionReq struct { } // UnsubscribeApprovalSubscriptionResp ... -type UnsubscribeApprovalSubscriptionResp struct{} +type UnsubscribeApprovalSubscriptionResp struct { +} // unsubscribeApprovalSubscriptionResp ... type unsubscribeApprovalSubscriptionResp struct { diff --git a/api_approval_user_id_transform.go b/api_approval_user_id_transform.go index a6dab6bd..3a04c55d 100644 --- a/api_approval_user_id_transform.go +++ b/api_approval_user_id_transform.go @@ -64,7 +64,14 @@ type TransformApprovalUserIDReq struct { } // TransformApprovalUserIDResp ... -type TransformApprovalUserIDResp struct{} +type TransformApprovalUserIDResp struct { +} + +// TransformApprovalUserIDRespMsg ... +type TransformApprovalUserIDRespMsg struct { + UserIDMap map[string]interface{} `json:"user_id_map,omitempty"` // -Employee ID数组 + LarkIDMap map[string]interface{} `json:"lark_id_map,omitempty"` // -Lark User ID数组 +} // transformApprovalUserIDResp ... type transformApprovalUserIDResp struct { diff --git a/api_attendance_archive_rule_del_report.go b/api_attendance_archive_rule_del_report.go new file mode 100644 index 00000000..b0748518 --- /dev/null +++ b/api_attendance_archive_rule_del_report.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAttendanceArchiveRuleDelReport 按月份、用户和归档规则ID直接删除归档报表行数据 +// +// 页面无对应功能, 页面是通过导入并全量覆盖完成数据删除的 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/del_report +// new doc: https://open.feishu.cn/document/attendance-v1/archive_rule/del_report +func (r *AttendanceService) CreateAttendanceArchiveRuleDelReport(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) { + if r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleDelReport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#CreateAttendanceArchiveRuleDelReport mock enable") + return r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleDelReport(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "CreateAttendanceArchiveRuleDelReport", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/archive_rule/del_report", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAttendanceArchiveRuleDelReportResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceCreateAttendanceArchiveRuleDelReport mock AttendanceCreateAttendanceArchiveRuleDelReport method +func (r *Mock) MockAttendanceCreateAttendanceArchiveRuleDelReport(f func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error)) { + r.mockAttendanceCreateAttendanceArchiveRuleDelReport = f +} + +// UnMockAttendanceCreateAttendanceArchiveRuleDelReport un-mock AttendanceCreateAttendanceArchiveRuleDelReport method +func (r *Mock) UnMockAttendanceCreateAttendanceArchiveRuleDelReport() { + r.mockAttendanceCreateAttendanceArchiveRuleDelReport = nil +} + +// CreateAttendanceArchiveRuleDelReportReq ... +type CreateAttendanceArchiveRuleDelReportReq struct { + EmployeeType EmployeeType `query:"employee_type" json:"-"` // 请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)* `employee_id `: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`: 员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号示例值: employee_id + Month string `json:"month,omitempty"` // 月份, 格式yyyyMM示例值: "202409" + OperatorID string `json:"operator_id,omitempty"` // 操作者ID, 对应employee_type示例值: "a111xd" + ArchiveRuleID string `json:"archive_rule_id,omitempty"` // 归档规则id, 可根据[查询所有归档规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/list)获得示例值: "1" + UserIDs []string `json:"user_ids,omitempty"` // 用户id, 对应employee_type示例值: ["xx1uad"] +} + +// CreateAttendanceArchiveRuleDelReportResp ... +type CreateAttendanceArchiveRuleDelReportResp struct { +} + +// createAttendanceArchiveRuleDelReportResp ... +type createAttendanceArchiveRuleDelReportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAttendanceArchiveRuleDelReportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_archive_rule_list.go b/api_attendance_archive_rule_list.go new file mode 100644 index 00000000..04df8f1a --- /dev/null +++ b/api_attendance_archive_rule_list.go @@ -0,0 +1,101 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAttendanceArchiveRule 查询所有归档规则, 对应后台假勤管理-考勤统计-报表-[归档报表](https://example.feishu.cn/people/workforce-management/manage/statistics/report)功能 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/list +// new doc: https://open.feishu.cn/document/attendance-v1/archive_rule/list +func (r *AttendanceService) ListAttendanceArchiveRule(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) { + if r.cli.mock.mockAttendanceListAttendanceArchiveRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#ListAttendanceArchiveRule mock enable") + return r.cli.mock.mockAttendanceListAttendanceArchiveRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "ListAttendanceArchiveRule", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/archive_rule", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAttendanceArchiveRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceListAttendanceArchiveRule mock AttendanceListAttendanceArchiveRule method +func (r *Mock) MockAttendanceListAttendanceArchiveRule(f func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error)) { + r.mockAttendanceListAttendanceArchiveRule = f +} + +// UnMockAttendanceListAttendanceArchiveRule un-mock AttendanceListAttendanceArchiveRule method +func (r *Mock) UnMockAttendanceListAttendanceArchiveRule() { + r.mockAttendanceListAttendanceArchiveRule = nil +} + +// ListAttendanceArchiveRuleReq ... +type ListAttendanceArchiveRuleReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 必填参数示例值: 10 取值范围: `1` ~ `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: xxx +} + +// ListAttendanceArchiveRuleResp ... +type ListAttendanceArchiveRuleResp struct { + Items []*ListAttendanceArchiveRuleRespItem `json:"items,omitempty"` // 分页查询结果项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAttendanceArchiveRuleRespItem ... +type ListAttendanceArchiveRuleRespItem struct { + ReportID string `json:"report_id,omitempty"` // 引用报表 ID, 暂时无用 + ReportName *ListAttendanceArchiveRuleRespItemReportName `json:"report_name,omitempty"` // 引用报表name + ArchiveRuleID string `json:"archive_rule_id,omitempty"` // 归档报表规则ID, 可用于[查询归档报表表头](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/user_stats_fields_query) + ArchiveRuleName *ListAttendanceArchiveRuleRespItemArchiveRuleName `json:"archive_rule_name,omitempty"` // 归档报表name +} + +// ListAttendanceArchiveRuleRespItemArchiveRuleName ... +type ListAttendanceArchiveRuleRespItemArchiveRuleName struct { + Zh string `json:"zh,omitempty"` // 中文名称 + En string `json:"en,omitempty"` // 英文名称 + Ja string `json:"ja,omitempty"` // 日文名称 +} + +// ListAttendanceArchiveRuleRespItemReportName ... +type ListAttendanceArchiveRuleRespItemReportName struct { + Zh string `json:"zh,omitempty"` // 中文名称 + En string `json:"en,omitempty"` // 英文名称 + Ja string `json:"ja,omitempty"` // 日文名称 +} + +// listAttendanceArchiveRuleResp ... +type listAttendanceArchiveRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAttendanceArchiveRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_archive_rule_upload_report.go b/api_attendance_archive_rule_upload_report.go new file mode 100644 index 00000000..906667d4 --- /dev/null +++ b/api_attendance_archive_rule_upload_report.go @@ -0,0 +1,95 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UploadAttendanceArchiveRuleReport 写入归档报表结果, 对应假勤管理-考勤统计-报表-[归档报表](https://example.feishu.cn/people/workforce-management/manage/statistics/report)页签, 点击报表名称进入后的导入功能。可以将数据直接写入归档报表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/upload_report +// new doc: https://open.feishu.cn/document/attendance-v1/archive_rule/upload_report +func (r *AttendanceService) UploadAttendanceArchiveRuleReport(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) { + if r.cli.mock.mockAttendanceUploadAttendanceArchiveRuleReport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#UploadAttendanceArchiveRuleReport mock enable") + return r.cli.mock.mockAttendanceUploadAttendanceArchiveRuleReport(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "UploadAttendanceArchiveRuleReport", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/archive_rule/upload_report", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(uploadAttendanceArchiveRuleReportResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceUploadAttendanceArchiveRuleReport mock AttendanceUploadAttendanceArchiveRuleReport method +func (r *Mock) MockAttendanceUploadAttendanceArchiveRuleReport(f func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error)) { + r.mockAttendanceUploadAttendanceArchiveRuleReport = f +} + +// UnMockAttendanceUploadAttendanceArchiveRuleReport un-mock AttendanceUploadAttendanceArchiveRuleReport method +func (r *Mock) UnMockAttendanceUploadAttendanceArchiveRuleReport() { + r.mockAttendanceUploadAttendanceArchiveRuleReport = nil +} + +// UploadAttendanceArchiveRuleReportReq ... +type UploadAttendanceArchiveRuleReportReq struct { + EmployeeType EmployeeType `query:"employee_type" json:"-"` // 请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)* `employee_id `: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`: 员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号示例值: employee_id + Month string `json:"month,omitempty"` // 月份, 格式为yyyyMM示例值: "202409" + OperatorID string `json:"operator_id,omitempty"` // 操作者ID, 对应employee_type示例值: "ax11d" + ArchiveReportDatas []*UploadAttendanceArchiveRuleReportReqArchiveReportData `json:"archive_report_datas,omitempty"` // 归档报表内容(不超过50个) 长度范围: `1` ~ `50` + ArchiveRuleID string `json:"archive_rule_id,omitempty"` // 归档规则id, 可根据[查询所有归档规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/list)获得示例值: "1" +} + +// UploadAttendanceArchiveRuleReportReqArchiveReportData ... +type UploadAttendanceArchiveRuleReportReqArchiveReportData struct { + MemberID string `json:"member_id,omitempty"` // 用户ID, 对应employee_type示例值: "1aaxxd" + StartTime string `json:"start_time,omitempty"` // 考勤开始时间, 格式为yyyyMMdd示例值: "20210109" + EndTime string `json:"end_time,omitempty"` // 考勤结束时间, 格式为yyyyMMdd示例值: "20210109" + FieldDatas []*UploadAttendanceArchiveRuleReportReqArchiveReportDataFieldData `json:"field_datas,omitempty"` // 字段结果(不超过200个) 长度范围: `1` ~ `200` +} + +// UploadAttendanceArchiveRuleReportReqArchiveReportDataFieldData ... +type UploadAttendanceArchiveRuleReportReqArchiveReportDataFieldData struct { + Code string `json:"code,omitempty"` // 字段编码, 可根据[查询归档报表表头](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/user_stats_fields_query) 获取示例值: "abd754f7" + Value *string `json:"value,omitempty"` // 字段结果值示例值: "1" +} + +// UploadAttendanceArchiveRuleReportResp ... +type UploadAttendanceArchiveRuleReportResp struct { + InvalidCode []string `json:"invalid_code,omitempty"` // 无效的code + InvalidMemberID []string `json:"invalid_member_id,omitempty"` // 无效的member_id, 对应employee_type +} + +// uploadAttendanceArchiveRuleReportResp ... +type uploadAttendanceArchiveRuleReportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UploadAttendanceArchiveRuleReportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_archive_rule_user_stats_fields_query.go b/api_attendance_archive_rule_user_stats_fields_query.go new file mode 100644 index 00000000..538ea876 --- /dev/null +++ b/api_attendance_archive_rule_user_stats_fields_query.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAttendanceArchiveRuleUserStatsFieldsQuery 查询归档报表表头, 对应后台假勤管理-考勤统计-报表-[归档报表](https://example.feishu.cn/people/workforce-management/manage/statistics/report)中一个归档报表的表头信息。归档报表支持引用系统报表, 可设置归档时间和数据归档周期, 并且支持根据部门/人员、国家/地区、人员类型、工作地点、职级、序列、职务进行人员圈选。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/user_stats_fields_query +// new doc: https://open.feishu.cn/document/attendance-v1/archive_rule/user_stats_fields_query +func (r *AttendanceService) CreateAttendanceArchiveRuleUserStatsFieldsQuery(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) { + if r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#CreateAttendanceArchiveRuleUserStatsFieldsQuery mock enable") + return r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "CreateAttendanceArchiveRuleUserStatsFieldsQuery", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/archive_rule/user_stats_fields_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createAttendanceArchiveRuleUserStatsFieldsQueryResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery mock AttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery method +func (r *Mock) MockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery(f func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error)) { + r.mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery = f +} + +// UnMockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery un-mock AttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery method +func (r *Mock) UnMockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery() { + r.mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery = nil +} + +// CreateAttendanceArchiveRuleUserStatsFieldsQueryReq ... +type CreateAttendanceArchiveRuleUserStatsFieldsQueryReq struct { + EmployeeType EmployeeType `query:"employee_type" json:"-"` // 请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)* `employee_id `: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`: 员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号示例值: employee_id + Locale *string `json:"locale,omitempty"` // 语言类型。默认为zh。可选值有: * `en`: 英语* `ja`: 日语* `zh`: 中文示例值: "zh" + Month string `json:"month,omitempty"` // 月份, 日期格式为yyyyMM示例值: "202409" + ArchiveRuleID string `json:"archive_rule_id,omitempty"` // 归档规则id, 可根据[查询所有归档规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/list)获得示例值: "1" + OperatorID string `json:"operator_id,omitempty"` // 操作者id, 对应employee_type示例值: "ax8ud" +} + +// CreateAttendanceArchiveRuleUserStatsFieldsQueryResp ... +type CreateAttendanceArchiveRuleUserStatsFieldsQueryResp struct { + ArchiveReportFields []*CreateAttendanceArchiveRuleUserStatsFieldsQueryRespArchiveReportField `json:"archive_report_fields,omitempty"` // 统计数据表头 +} + +// CreateAttendanceArchiveRuleUserStatsFieldsQueryRespArchiveReportField ... +type CreateAttendanceArchiveRuleUserStatsFieldsQueryRespArchiveReportField struct { + Code string `json:"code,omitempty"` // 字段编号 + Title string `json:"title,omitempty"` // 字段名称 + UpperTitles []string `json:"upper_titles,omitempty"` // 表头名称层级路径 +} + +// createAttendanceArchiveRuleUserStatsFieldsQueryResp ... +type createAttendanceArchiveRuleUserStatsFieldsQueryResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAttendanceArchiveRuleUserStatsFieldsQueryResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_group_delete.go b/api_attendance_group_delete.go index ea75b905..feea8b46 100644 --- a/api_attendance_group_delete.go +++ b/api_attendance_group_delete.go @@ -62,7 +62,8 @@ type DeleteAttendanceGroupReq struct { } // DeleteAttendanceGroupResp ... -type DeleteAttendanceGroupResp struct{} +type DeleteAttendanceGroupResp struct { +} // deleteAttendanceGroupResp ... type deleteAttendanceGroupResp struct { diff --git a/api_attendance_group_list_user.go b/api_attendance_group_list_user.go new file mode 100644 index 00000000..8d78b703 --- /dev/null +++ b/api_attendance_group_list_user.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListAttendanceGroupUser 查询指定考勤组下的所有成员 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/list_user +// new doc: https://open.feishu.cn/document/attendance-v1/group/list_user +func (r *AttendanceService) ListAttendanceGroupUser(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) { + if r.cli.mock.mockAttendanceListAttendanceGroupUser != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#ListAttendanceGroupUser mock enable") + return r.cli.mock.mockAttendanceListAttendanceGroupUser(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "ListAttendanceGroupUser", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/groups/:group_id/list_user", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listAttendanceGroupUserResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceListAttendanceGroupUser mock AttendanceListAttendanceGroupUser method +func (r *Mock) MockAttendanceListAttendanceGroupUser(f func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error)) { + r.mockAttendanceListAttendanceGroupUser = f +} + +// UnMockAttendanceListAttendanceGroupUser un-mock AttendanceListAttendanceGroupUser method +func (r *Mock) UnMockAttendanceListAttendanceGroupUser() { + r.mockAttendanceListAttendanceGroupUser = nil +} + +// ListAttendanceGroupUserReq ... +type ListAttendanceGroupUserReq struct { + GroupID string `path:"group_id" json:"-"` // 考勤组 ID, 获取方式: 1)[创建或修改考勤组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/create) 2)[按名称查询考勤组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/search) 3)[获取打卡结果](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_task/query)示例值: "6919358128597097404" + EmployeeType EmployeeType `query:"employee_type" json:"-"` // 响应体中 user_id 的员工 ID 类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)可选值有: 1. employee_id: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID2. employee_no: 员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号示例值: employee_id + DeptType string `query:"dept_type" json:"-"` // 响应体中 department_ids 的部门 ID 的类型可选值有: 1. open_id: 暂时只支持部门的 openid。具体概念请参考[部门资源介绍](https://open.larkoffice.com/document/server-docs/contact-v3/department/field-overview)中的open_department_id示例值: open_id + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 取值范围: `1` ~ `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 92xKiuWrBCSweSZJBSTpag%3D%3D + MemberClockType int64 `query:"member_clock_type" json:"-"` // 查询的考勤组成员的打卡类型可选值有: 0: 全部打卡类型1: 需要打卡类型2: 无需打卡类型示例值: 1 +} + +// ListAttendanceGroupUserResp ... +type ListAttendanceGroupUserResp struct { + Users []*ListAttendanceGroupUserRespUser `json:"users,omitempty"` // 考勤组成员列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListAttendanceGroupUserRespUser ... +type ListAttendanceGroupUserRespUser struct { + UserID string `json:"user_id,omitempty"` // 用户 ID, 对应 employee_type + DepartmentIDs []string `json:"department_ids,omitempty"` // 该用户所属部门 ID 列表, 返回结果为该用户所属的部门树, 从直属部门到根部门。对应 dept_type +} + +// listAttendanceGroupUserResp ... +type listAttendanceGroupUserResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListAttendanceGroupUserResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_shift_delete.go b/api_attendance_shift_delete.go index ad37f771..42e27bc3 100644 --- a/api_attendance_shift_delete.go +++ b/api_attendance_shift_delete.go @@ -62,7 +62,8 @@ type DeleteAttendanceShiftReq struct { } // DeleteAttendanceShiftResp ... -type DeleteAttendanceShiftResp struct{} +type DeleteAttendanceShiftResp struct { +} // deleteAttendanceShiftResp ... type deleteAttendanceShiftResp struct { diff --git a/api_attendance_user_approval_create.go b/api_attendance_user_approval_create.go index cab5f8f8..05a8c1f4 100644 --- a/api_attendance_user_approval_create.go +++ b/api_attendance_user_approval_create.go @@ -90,6 +90,13 @@ type CreateAttendanceUserApprovalReqUserApprovalLeave struct { IdempotentID *string `json:"idempotent_id,omitempty"` // 请假记录的唯一幂等键, 用于避免请假记录重复创建, 可以填入三方的请假记录id示例值: "1233432312" } +// CreateAttendanceUserApprovalReqUserApprovalLeaveI18nNames ... +type CreateAttendanceUserApprovalReqUserApprovalLeaveI18nNames struct { + Ch *string `json:"ch,omitempty"` // 中文描述示例值: "中文描述" + En *string `json:"en,omitempty"` // 英语描述示例值: "English description" + Ja *string `json:"ja,omitempty"` // 日语描述示例值: "日本語の説明" +} + // CreateAttendanceUserApprovalReqUserApprovalOut ... type CreateAttendanceUserApprovalReqUserApprovalOut struct { UniqID string `json:"uniq_id,omitempty"` // 外出类型唯一 ID, 代表一种外出类型, 长度小于 14* 如何获取?可以选择填入三方的外出类型id。如市内外出、市外外出的id示例值: "9496E43696967658A512969523E89870" @@ -106,6 +113,13 @@ type CreateAttendanceUserApprovalReqUserApprovalOut struct { ProcessID []string `json:"process_id,omitempty"` // 发起流程实例 ID。该字段由系统自动生成, 在写入审批结果时, 无需传入该参数。示例值: ["7304865941202929196"] } +// CreateAttendanceUserApprovalReqUserApprovalOutI18nNames ... +type CreateAttendanceUserApprovalReqUserApprovalOutI18nNames struct { + Ch *string `json:"ch,omitempty"` // 中文描述示例值: "中文描述" + En *string `json:"en,omitempty"` // 英语描述示例值: "English description" + Ja *string `json:"ja,omitempty"` // 日语描述示例值: "日本語の説明" +} + // CreateAttendanceUserApprovalReqUserApprovalOvertimeWork ... type CreateAttendanceUserApprovalReqUserApprovalOvertimeWork struct { Duration float64 `json:"duration,omitempty"` // 加班时长, 如需使用此字段进行加班时长计算, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)开通。默认采用start_time和end_time计算示例值: 1.5 @@ -183,6 +197,13 @@ type CreateAttendanceUserApprovalRespUserApprovalLeave struct { IdempotentID string `json:"idempotent_id,omitempty"` // 请假记录的唯一幂等键, 响应体中无需关注 } +// CreateAttendanceUserApprovalRespUserApprovalLeaveI18nNames ... +type CreateAttendanceUserApprovalRespUserApprovalLeaveI18nNames struct { + Ch string `json:"ch,omitempty"` // 中文描述 + En string `json:"en,omitempty"` // 英语描述 + Ja string `json:"ja,omitempty"` // 日语描述 +} + // CreateAttendanceUserApprovalRespUserApprovalOut ... type CreateAttendanceUserApprovalRespUserApprovalOut struct { ApprovalID string `json:"approval_id,omitempty"` // 审批实例id 创建的时候无效字段无需传入 @@ -202,6 +223,13 @@ type CreateAttendanceUserApprovalRespUserApprovalOut struct { ProcessID []string `json:"process_id,omitempty"` // 发起流程实例 ID。该字段由系统自动生成, 在写入审批结果时, 无需传入该参数。 } +// CreateAttendanceUserApprovalRespUserApprovalOutI18nNames ... +type CreateAttendanceUserApprovalRespUserApprovalOutI18nNames struct { + Ch string `json:"ch,omitempty"` // 中文描述 + En string `json:"en,omitempty"` // 英语描述 + Ja string `json:"ja,omitempty"` // 日语描述 +} + // CreateAttendanceUserApprovalRespUserApprovalOvertimeWork ... type CreateAttendanceUserApprovalRespUserApprovalOvertimeWork struct { ApprovalID string `json:"approval_id,omitempty"` // 审批实例 ID diff --git a/api_attendance_user_approval_get.go b/api_attendance_user_approval_get.go index e287d4dd..f5fa66cc 100644 --- a/api_attendance_user_approval_get.go +++ b/api_attendance_user_approval_get.go @@ -104,6 +104,13 @@ type GetAttendanceUserApprovalRespUserApprovalLeave struct { IdempotentID string `json:"idempotent_id,omitempty"` // 唯一幂等键 } +// GetAttendanceUserApprovalRespUserApprovalLeaveI18nNames ... +type GetAttendanceUserApprovalRespUserApprovalLeaveI18nNames struct { + Ch string `json:"ch,omitempty"` // 中文描述 + En string `json:"en,omitempty"` // 英语描述 + Ja string `json:"ja,omitempty"` // 日语描述 +} + // GetAttendanceUserApprovalRespUserApprovalOut ... type GetAttendanceUserApprovalRespUserApprovalOut struct { ApprovalID string `json:"approval_id,omitempty"` // 审批实例 ID @@ -123,6 +130,13 @@ type GetAttendanceUserApprovalRespUserApprovalOut struct { ProcessID []string `json:"process_id,omitempty"` // 发起流程实例 ID } +// GetAttendanceUserApprovalRespUserApprovalOutI18nNames ... +type GetAttendanceUserApprovalRespUserApprovalOutI18nNames struct { + Ch string `json:"ch,omitempty"` // 中文描述 + En string `json:"en,omitempty"` // 英语描述 + Ja string `json:"ja,omitempty"` // 日语描述 +} + // GetAttendanceUserApprovalRespUserApprovalOvertimeWork ... type GetAttendanceUserApprovalRespUserApprovalOvertimeWork struct { ApprovalID string `json:"approval_id,omitempty"` // 审批实例 ID diff --git a/api_attendance_user_daily_shift_batch_create_temp.go b/api_attendance_user_daily_shift_batch_create_temp.go new file mode 100644 index 00000000..fca381f2 --- /dev/null +++ b/api_attendance_user_daily_shift_batch_create_temp.go @@ -0,0 +1,112 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateAttendanceUserDailyShiftTemp 可在排班表上创建或修改临时班次, 并用于排班。目前支持按日期对一位或多位人员进行排临时班次。 +// +// 临时排班为付费功能, 如需使用请联系您的客户经理。 +// 注意: 如果返回code=0, 且msg不为空, 表示临时排班部分成功。 +// 如msg返回{人员: [日期, 日期]}格式, 代表人员在排班日期下未临时排班成功。这种一般是考勤组id与人员不匹配造成。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_daily_shift/batch_create_temp +// new doc: https://open.feishu.cn/document/attendance-v1/user_daily_shift/batch_create_temp +func (r *AttendanceService) BatchCreateAttendanceUserDailyShiftTemp(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) { + if r.cli.mock.mockAttendanceBatchCreateAttendanceUserDailyShiftTemp != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#BatchCreateAttendanceUserDailyShiftTemp mock enable") + return r.cli.mock.mockAttendanceBatchCreateAttendanceUserDailyShiftTemp(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "BatchCreateAttendanceUserDailyShiftTemp", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/user_daily_shifts/batch_create_temp", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchCreateAttendanceUserDailyShiftTempResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceBatchCreateAttendanceUserDailyShiftTemp mock AttendanceBatchCreateAttendanceUserDailyShiftTemp method +func (r *Mock) MockAttendanceBatchCreateAttendanceUserDailyShiftTemp(f func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error)) { + r.mockAttendanceBatchCreateAttendanceUserDailyShiftTemp = f +} + +// UnMockAttendanceBatchCreateAttendanceUserDailyShiftTemp un-mock AttendanceBatchCreateAttendanceUserDailyShiftTemp method +func (r *Mock) UnMockAttendanceBatchCreateAttendanceUserDailyShiftTemp() { + r.mockAttendanceBatchCreateAttendanceUserDailyShiftTemp = nil +} + +// BatchCreateAttendanceUserDailyShiftTempReq ... +type BatchCreateAttendanceUserDailyShiftTempReq struct { + EmployeeType EmployeeType `query:"employee_type" json:"-"` // 请求体和响应体中的 user_id 的员工ID类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)示例值: employee_id可选值有: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID, 或者[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)获取的userid。员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号 + UserTmpDailyShifts []*BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShift `json:"user_tmp_daily_shifts,omitempty"` // 临时班表信息列表(数量限制50以内) 长度范围: `0` ~ `50` + OperatorID *string `json:"operator_id,omitempty"` // 操作人uid, 与employee_type对应示例值: "dd31248a" +} + +// BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShift ... +type BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShift struct { + GroupID string `json:"group_id,omitempty"` // 考勤组 ID, 获取方式: 1)[创建或修改考勤组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/create) 2)[按名称查询考勤组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/search) 3)[获取打卡结果](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_task/query)示例值: "6737202939523236110" + UserID string `json:"user_id,omitempty"` // 用户 ID, 与employee_type对应示例值: "abd754f7" + Date int64 `json:"date,omitempty"` // 日期, 格式: yyyymmdd, 如20240120示例值: 20240120 + ShiftName string `json:"shift_name,omitempty"` // 班次名称示例值: "临时早班" + PunchTimeSimpleRules []*BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShiftPunchTimeSimpleRule `json:"punch_time_simple_rules,omitempty"` // 打卡规则 长度范围: `0` ~ `6` +} + +// BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShiftPunchTimeSimpleRule ... +type BatchCreateAttendanceUserDailyShiftTempReqUserTmpDailyShiftPunchTimeSimpleRule struct { + OnTime string `json:"on_time,omitempty"` // 上班时间, 格式HH: MM示例值: "9: 00" + OffTime string `json:"off_time,omitempty"` // 下班时间, 格式HH: MM。如需表示次日2点, 则填入"26: 00"示例值: "18: 00" +} + +// BatchCreateAttendanceUserDailyShiftTempResp ... +type BatchCreateAttendanceUserDailyShiftTempResp struct { + UserTmpDailyShifts []*BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShift `json:"user_tmp_daily_shifts,omitempty"` // 临时班表信息列表 +} + +// BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShift ... +type BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShift struct { + GroupID string `json:"group_id,omitempty"` // 考勤组 ID, 可用于[按 ID 查询考勤组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/group/get) + UserID string `json:"user_id,omitempty"` // 用户 ID, 与employee_type对应 + Date int64 `json:"date,omitempty"` // 日期 + ShiftName string `json:"shift_name,omitempty"` // 班次名称 + PunchTimeSimpleRules []*BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShiftPunchTimeSimpleRule `json:"punch_time_simple_rules,omitempty"` // 打卡规则 +} + +// BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShiftPunchTimeSimpleRule ... +type BatchCreateAttendanceUserDailyShiftTempRespUserTmpDailyShiftPunchTimeSimpleRule struct { + OnTime string `json:"on_time,omitempty"` // 上班时间 + OffTime string `json:"off_time,omitempty"` // 下班时间 +} + +// batchCreateAttendanceUserDailyShiftTempResp ... +type batchCreateAttendanceUserDailyShiftTempResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateAttendanceUserDailyShiftTempResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_attendance_user_flow_batch_del.go b/api_attendance_user_flow_batch_del.go new file mode 100644 index 00000000..4ff9ff92 --- /dev/null +++ b/api_attendance_user_flow_batch_del.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchAttendanceUserFlowDel 删除员工从开放平台导入的打卡记录。删除后会重新计算打卡记录对应考勤任务结果。 +// +// 当返回结果fail_record_ids不为空时, msg字段返回对应失败原因, 格式为: {"xx id": "xx reason"} +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/batch_del +// new doc: https://open.feishu.cn/document/attendance-v1/user_task/batch_del +func (r *AttendanceService) BatchAttendanceUserFlowDel(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) { + if r.cli.mock.mockAttendanceBatchAttendanceUserFlowDel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#BatchAttendanceUserFlowDel mock enable") + return r.cli.mock.mockAttendanceBatchAttendanceUserFlowDel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Attendance", + API: "BatchAttendanceUserFlowDel", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/attendance/v1/user_flows/batch_del", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchAttendanceUserFlowDelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAttendanceBatchAttendanceUserFlowDel mock AttendanceBatchAttendanceUserFlowDel method +func (r *Mock) MockAttendanceBatchAttendanceUserFlowDel(f func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error)) { + r.mockAttendanceBatchAttendanceUserFlowDel = f +} + +// UnMockAttendanceBatchAttendanceUserFlowDel un-mock AttendanceBatchAttendanceUserFlowDel method +func (r *Mock) UnMockAttendanceBatchAttendanceUserFlowDel() { + r.mockAttendanceBatchAttendanceUserFlowDel = nil +} + +// BatchAttendanceUserFlowDelReq ... +type BatchAttendanceUserFlowDelReq struct { + RecordIDs []string `json:"record_ids,omitempty"` // 打卡流水记录 ID, 获取方式: 1)[批量查询打卡流水记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/query) 2)[获取打卡结果](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_task/query) 3)[导入打卡流水记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/batch_create)示例值: ["6709359313699356941"] 长度范围: `1` ~ `10` +} + +// BatchAttendanceUserFlowDelResp ... +type BatchAttendanceUserFlowDelResp struct { + SuccessRecordIDs []string `json:"success_record_ids,omitempty"` // 删除成功的流水记录ID列表 + FailRecordIDs []string `json:"fail_record_ids,omitempty"` // 删除失败的流水记录ID列表 +} + +// batchAttendanceUserFlowDelResp ... +type batchAttendanceUserFlowDelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchAttendanceUserFlowDelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_auth_app_ticket_resend.go b/api_auth_app_ticket_resend.go index d88e700b..af0f6304 100644 --- a/api_auth_app_ticket_resend.go +++ b/api_auth_app_ticket_resend.go @@ -62,7 +62,8 @@ type ResendAppTicketReq struct { } // ResendAppTicketResp ... -type ResendAppTicketResp struct{} +type ResendAppTicketResp struct { +} // resendAppTicketResp ... type resendAppTicketResp struct { diff --git a/api_auth_user_info_get.go b/api_auth_user_info_get.go index 8516b6bd..8a96e188 100644 --- a/api_auth_user_info_get.go +++ b/api_auth_user_info_get.go @@ -59,7 +59,8 @@ func (r *Mock) UnMockAuthGetUserInfo() { } // GetUserInfoReq ... -type GetUserInfoReq struct{} +type GetUserInfoReq struct { +} // GetUserInfoResp ... type GetUserInfoResp struct { diff --git a/api_authen_access_token_create.go b/api_authen_access_token_create.go new file mode 100644 index 00000000..f2e33ce0 --- /dev/null +++ b/api_authen_access_token_create.go @@ -0,0 +1,99 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAuthenAccessToken 本接口已成为历史版本, 不推荐使用。请使用最新版本: [获取 user_access_token ](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/authentication-management/access-token/get-user-access-token) +// +// 。 +// 根据[登录预授权码](https://open.feishu.cn/document/ukTMukTMukTM/ukzN4UjL5cDO14SO3gTN) code 获取 `user_access_token`。 +// :::html +// 本接口用于网页应用免登录应用场景, 小程序应用获取 user_access_token 的方法, 请参考小程序应用提供的 [code2session](https://open.feishu.cn/document/uYjL24iN/ukjM04SOyQjL5IDN) 接口。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/authen-v1/access_token/create +// new doc: https://open.feishu.cn/document/server-docs/authentication-management/access-token/create-2 +func (r *AuthenService) CreateAuthenAccessToken(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) { + if r.cli.mock.mockAuthenCreateAuthenAccessToken != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Authen#CreateAuthenAccessToken mock enable") + return r.cli.mock.mockAuthenCreateAuthenAccessToken(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Authen", + API: "CreateAuthenAccessToken", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/authen/v1/access_token", + Body: request, + MethodOption: newMethodOption(options), + NeedAppAccessToken: true, + } + resp := new(createAuthenAccessTokenResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAuthenCreateAuthenAccessToken mock AuthenCreateAuthenAccessToken method +func (r *Mock) MockAuthenCreateAuthenAccessToken(f func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error)) { + r.mockAuthenCreateAuthenAccessToken = f +} + +// UnMockAuthenCreateAuthenAccessToken un-mock AuthenCreateAuthenAccessToken method +func (r *Mock) UnMockAuthenCreateAuthenAccessToken() { + r.mockAuthenCreateAuthenAccessToken = nil +} + +// CreateAuthenAccessTokenReq ... +type CreateAuthenAccessTokenReq struct { + GrantType string `json:"grant_type,omitempty"` // 授权类型, 固定值: 示例值: "authorization_code" + Code string `json:"code,omitempty"` // 登录预授权码, 调用[获取登录预授权码](https://open.feishu.cn/document/ukTMukTMukTM/ukzN4UjL5cDO14SO3gTN)接口获取示例值: "xMSldislSkdK" +} + +// CreateAuthenAccessTokenResp ... +type CreateAuthenAccessTokenResp struct { + AccessToken string `json:"access_token,omitempty"` // user_access_token, 用于获取用户资源 + TokenType string `json:"token_type,omitempty"` // token 类型 + ExpiresIn int64 `json:"expires_in,omitempty"` // `access_token` 的有效期, 单位: 秒 + Name string `json:"name,omitempty"` // 用户姓名 + EnName string `json:"en_name,omitempty"` // 用户英文名称 + AvatarURL string `json:"avatar_url,omitempty"` // 用户头像 + AvatarThumb string `json:"avatar_thumb,omitempty"` // 用户头像 72x72 + AvatarMiddle string `json:"avatar_middle,omitempty"` // 用户头像 240x240 + AvatarBig string `json:"avatar_big,omitempty"` // 用户头像 640x640 + OpenID string `json:"open_id,omitempty"` // 用户在应用内的唯一标识 + UnionID string `json:"union_id,omitempty"` // 用户统一ID + Email string `json:"email,omitempty"` // 用户邮箱字段权限要求: 获取用户邮箱信息 + EnterpriseEmail string `json:"enterprise_email,omitempty"` // 企业邮箱, 请先确保已在管理后台启用飞书邮箱服务字段权限要求: 获取用户受雇信息 + UserID string `json:"user_id,omitempty"` // 用户 user_id字段权限要求: 获取用户 user ID + Mobile string `json:"mobile,omitempty"` // 用户手机号字段权限要求: 获取用户手机号 + TenantKey string `json:"tenant_key,omitempty"` // 当前企业标识 + RefreshExpiresIn int64 `json:"refresh_expires_in,omitempty"` // `refresh_token` 的有效期, 单位: 秒 + RefreshToken string `json:"refresh_token,omitempty"` // 刷新用户 `access_token` 时使用的 token + Sid string `json:"sid,omitempty"` // 用户当前登录态session的唯一标识, 为空则不返回 +} + +// createAuthenAccessTokenResp ... +type createAuthenAccessTokenResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAuthenAccessTokenResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_authen_refresh_access_token_create.go b/api_authen_refresh_access_token_create.go new file mode 100644 index 00000000..6fe2fc4b --- /dev/null +++ b/api_authen_refresh_access_token_create.go @@ -0,0 +1,99 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateAuthenRefreshAccessToken 本接口已成为历史版本, 不推荐使用。请使用最新版本: [刷新 user_access_token](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/authentication-management/access-token/refresh-user-access-token) +// +// 。 +// user_access_token 的最大有效期是 2小时左右。当 user_access_token 过期时, 可以调用本接口获取新的 user_access_token。 +// :::html +// 刷新后请更新本地user_access_token和refresh_token, 不要继续使用旧值重复刷新。保证参数是最新值 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/authen-v1/refresh_access_token/create +// new doc: https://open.feishu.cn/document/server-docs/authentication-management/access-token/create +func (r *AuthenService) CreateAuthenRefreshAccessToken(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) { + if r.cli.mock.mockAuthenCreateAuthenRefreshAccessToken != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Authen#CreateAuthenRefreshAccessToken mock enable") + return r.cli.mock.mockAuthenCreateAuthenRefreshAccessToken(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Authen", + API: "CreateAuthenRefreshAccessToken", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/authen/v1/refresh_access_token", + Body: request, + MethodOption: newMethodOption(options), + NeedAppAccessToken: true, + } + resp := new(createAuthenRefreshAccessTokenResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockAuthenCreateAuthenRefreshAccessToken mock AuthenCreateAuthenRefreshAccessToken method +func (r *Mock) MockAuthenCreateAuthenRefreshAccessToken(f func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error)) { + r.mockAuthenCreateAuthenRefreshAccessToken = f +} + +// UnMockAuthenCreateAuthenRefreshAccessToken un-mock AuthenCreateAuthenRefreshAccessToken method +func (r *Mock) UnMockAuthenCreateAuthenRefreshAccessToken() { + r.mockAuthenCreateAuthenRefreshAccessToken = nil +} + +// CreateAuthenRefreshAccessTokenReq ... +type CreateAuthenRefreshAccessTokenReq struct { + GrantType string `json:"grant_type,omitempty"` // 授权类型, 固定值示例值: "refresh_token" + RefreshToken string `json:"refresh_token,omitempty"` // 刷新和获取user_access_token接口均返回 `refresh_token`, 每次请求, 请注意使用最新获取到的`refresh_token`示例值: "ur-oQ0mMq6MCcueAv0pwx2fQQhxqv__CbLu6G8ySFwafeKww2Def2BJdOkW3.9gCFM.LBQgFri901QaqeuL" +} + +// CreateAuthenRefreshAccessTokenResp ... +type CreateAuthenRefreshAccessTokenResp struct { + AccessToken string `json:"access_token,omitempty"` // 字段`access_token`即user_access_token, 用于获取用户资源和访问某些open api + TokenType string `json:"token_type,omitempty"` // token 类型 + ExpiresIn int64 `json:"expires_in,omitempty"` // user_access_token有效期, 单位: 秒, 有效时间两个小时左右, 需要以返回结果为准 + Name string `json:"name,omitempty"` // 用户姓名 + EnName string `json:"en_name,omitempty"` // 用户英文名称 + AvatarURL string `json:"avatar_url,omitempty"` // 用户头像 + AvatarThumb string `json:"avatar_thumb,omitempty"` // 用户头像 72x72 + AvatarMiddle string `json:"avatar_middle,omitempty"` // 用户头像 240x240 + AvatarBig string `json:"avatar_big,omitempty"` // 用户头像 640x640 + OpenID string `json:"open_id,omitempty"` // 用户在应用内的唯一标识 + UnionID string `json:"union_id,omitempty"` // 用户统一ID + Email string `json:"email,omitempty"` // 用户邮箱字段权限要求: 获取用户邮箱信息 + EnterpriseEmail string `json:"enterprise_email,omitempty"` // 企业邮箱, 请先确保已在管理后台启用飞书邮箱服务字段权限要求: 获取用户受雇信息 + UserID string `json:"user_id,omitempty"` // 用户 user_id字段权限要求: 获取用户 user ID + Mobile string `json:"mobile,omitempty"` // 用户手机号字段权限要求: 获取用户手机号 + TenantKey string `json:"tenant_key,omitempty"` // 当前企业标识 + RefreshExpiresIn int64 `json:"refresh_expires_in,omitempty"` // refresh_token有效期, 单位: 秒, 一般是30天左右, 需要以返回结果为准 + RefreshToken string `json:"refresh_token,omitempty"` // 刷新 user_access_token时使用的 refresh_token + Sid string `json:"sid,omitempty"` // 用户当前登录态session的唯一标识, 为空则不返回 +} + +// createAuthenRefreshAccessTokenResp ... +type createAuthenRefreshAccessTokenResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAuthenRefreshAccessTokenResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_baike_classification_list.go b/api_baike_classification_list.go index 3b14a978..cd7932bc 100644 --- a/api_baike_classification_list.go +++ b/api_baike_classification_list.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/classification/list // new doc: https://open.feishu.cn/document/server-docs/baike-v1/classification/list -// -// Deprecated func (r *BaikeService) GetBaikeClassificationList(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) { if r.cli.mock.mockBaikeGetBaikeClassificationList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#GetBaikeClassificationList mock enable") diff --git a/api_baike_draft_create.go b/api_baike_draft_create.go index cf3edd64..dfba5d65 100644 --- a/api_baike_draft_create.go +++ b/api_baike_draft_create.go @@ -31,8 +31,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/draft/create // new doc: https://open.feishu.cn/document/server-docs/baike-v1/draft/create -// -// Deprecated func (r *BaikeService) CreateBaikeDraft(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) { if r.cli.mock.mockBaikeCreateBaikeDraft != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#CreateBaikeDraft mock enable") diff --git a/api_baike_draft_update.go b/api_baike_draft_update.go index f7cd09c6..1e101c13 100644 --- a/api_baike_draft_update.go +++ b/api_baike_draft_update.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/draft/update // new doc: https://open.feishu.cn/document/server-docs/baike-v1/draft/update -// -// Deprecated func (r *BaikeService) CreateBaikeUpdate(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) { if r.cli.mock.mockBaikeCreateBaikeUpdate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#CreateBaikeUpdate mock enable") diff --git a/api_baike_entity_create.go b/api_baike_entity_create.go index 833115a4..486bc71c 100644 --- a/api_baike_entity_create.go +++ b/api_baike_entity_create.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/create // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/create -// -// Deprecated func (r *BaikeService) CreateBaikeEntity(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeCreateBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#CreateBaikeEntity mock enable") diff --git a/api_baike_entity_extract.go b/api_baike_entity_extract.go index 02abceb5..a0669c0b 100644 --- a/api_baike_entity_extract.go +++ b/api_baike_entity_extract.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/extract // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/extract -// -// Deprecated func (r *BaikeService) ExtractBaikeEntity(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeExtractBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#ExtractBaikeEntity mock enable") diff --git a/api_baike_entity_get.go b/api_baike_entity_get.go index 6d466579..89d78b89 100644 --- a/api_baike_entity_get.go +++ b/api_baike_entity_get.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/get // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/get -// -// Deprecated func (r *BaikeService) GetBaikeEntity(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeGetBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#GetBaikeEntity mock enable") diff --git a/api_baike_entity_highlight.go b/api_baike_entity_highlight.go index 057ebbaf..e70ba86f 100644 --- a/api_baike_entity_highlight.go +++ b/api_baike_entity_highlight.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/highlight // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/highlight -// -// Deprecated func (r *BaikeService) HighlightBaikeEntity(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeHighlightBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#HighlightBaikeEntity mock enable") diff --git a/api_baike_entity_list.go b/api_baike_entity_list.go index fc13ab71..ee7aa5fd 100644 --- a/api_baike_entity_list.go +++ b/api_baike_entity_list.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/list // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/list -// -// Deprecated func (r *BaikeService) GetBaikeEntityList(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) { if r.cli.mock.mockBaikeGetBaikeEntityList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#GetBaikeEntityList mock enable") diff --git a/api_baike_entity_match.go b/api_baike_entity_match.go index 67667dd2..5d5759a4 100644 --- a/api_baike_entity_match.go +++ b/api_baike_entity_match.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/match // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/match -// -// Deprecated func (r *BaikeService) MatchBaikeEntity(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeMatchBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#MatchBaikeEntity mock enable") diff --git a/api_baike_entity_search.go b/api_baike_entity_search.go index c1501f7d..e9d98f79 100644 --- a/api_baike_entity_search.go +++ b/api_baike_entity_search.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/search // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/search -// -// Deprecated func (r *BaikeService) SearchBaikeEntity(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeSearchBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#SearchBaikeEntity mock enable") diff --git a/api_baike_entity_update.go b/api_baike_entity_update.go index cf40108e..e177e3af 100644 --- a/api_baike_entity_update.go +++ b/api_baike_entity_update.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/entity/update // new doc: https://open.feishu.cn/document/server-docs/baike-v1/entity/update -// -// Deprecated func (r *BaikeService) UpdateBaikeEntity(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) { if r.cli.mock.mockBaikeUpdateBaikeEntity != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#UpdateBaikeEntity mock enable") diff --git a/api_baike_image_download.go b/api_baike_image_download.go index 63e22762..a767b8c6 100644 --- a/api_baike_image_download.go +++ b/api_baike_image_download.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/file/download // new doc: https://open.feishu.cn/document/server-docs/baike-v1/file/download -// -// Deprecated func (r *BaikeService) DownloadBaikeImage(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) { if r.cli.mock.mockBaikeDownloadBaikeImage != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#DownloadBaikeImage mock enable") diff --git a/api_baike_image_upload.go b/api_baike_image_upload.go index 0165e533..125b9a88 100644 --- a/api_baike_image_upload.go +++ b/api_baike_image_upload.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/file/upload // new doc: https://open.feishu.cn/document/server-docs/baike-v1/file/upload -// -// Deprecated func (r *BaikeService) UploadBaikeImage(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) { if r.cli.mock.mockBaikeUploadBaikeImage != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Baike#UploadBaikeImage mock enable") diff --git a/api_base_app_role_create.go b/api_base_app_role_create.go new file mode 100644 index 00000000..4a984113 --- /dev/null +++ b/api_base_app_role_create.go @@ -0,0 +1,194 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateBaseAppRole 新增多维表格高级权限中自定义的角色。 +// +// 相较于旧版接口, 新版自定义角色接口支持高级权限 2.0 版本新增的权限点位, 包括更精细的行级别权限控制、多维表格的复制、导出点位的控制等。 +// ## 前提条件 +// 要调用自定义角色相关接口, 你需确保多维表格已开启高级权限。你可通过[更新多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/update)接口开启高级权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/create +// new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/create-2 +func (r *BaseService) CreateBaseAppRole(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) { + if r.cli.mock.mockBaseCreateBaseAppRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Base#CreateBaseAppRole mock enable") + return r.cli.mock.mockBaseCreateBaseAppRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Base", + API: "CreateBaseAppRole", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createBaseAppRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBaseCreateBaseAppRole mock BaseCreateBaseAppRole method +func (r *Mock) MockBaseCreateBaseAppRole(f func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error)) { + r.mockBaseCreateBaseAppRole = f +} + +// UnMockBaseCreateBaseAppRole un-mock BaseCreateBaseAppRole method +func (r *Mock) UnMockBaseCreateBaseAppRole() { + r.mockBaseCreateBaseAppRole = nil +} + +// CreateBaseAppRoleReq ... +type CreateBaseAppRoleReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "appbcbWCzen6D8dezhoCH2RpMAh" 长度范围: `0` ~ `100` 字符 + RoleName string `json:"role_name,omitempty"` // 自定义权限的名字示例值: "普通用户" 长度范围: `0` ~ `100` 字符 + TableRoles []*CreateBaseAppRoleReqTableRole `json:"table_roles,omitempty"` // 针对数据表的权限设置 长度范围: `0` ~ `100` + BlockRoles []*CreateBaseAppRoleReqBlockRole `json:"block_roles,omitempty"` // 针对仪表盘的权限设置 长度范围: `0` ~ `100` + BaseRule interface{} `json:"base_rule,omitempty"` // 多维表格点位的权限。- 未设置时, 表示自定义角色拥有所有点位权限。- 设置时, 可设置以下两种权限: - `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格 - `copy`: 设置是否可以复制多维表格内容该参数类型为 map, 其中 key 是权限点位名称, value 是权限开关。value 枚举值有: `0`: 无权限- `1`: 有权限注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"base_complex_edit": 1, "copy": 0} +} + +// CreateBaseAppRoleReqBlockRole ... +type CreateBaseAppRoleReqBlockRole struct { + BlockID string `json:"block_id,omitempty"` // 多维表格仪表盘的唯一标识, 以 blk 开头。获取方式: 在多维表格的 URL 地址栏中, `block_id` 是下图中高亮部分: ![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/a966d15323ee73c66b1e9a31d34ae6c7_x3ctncH2nO.png?height=575&lazyload=true&width=1397) - 通过[列出仪表盘](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-dashboard/list)接口获取示例值: "blknkqrP3RqUkcAW" 长度范围: `0` ~ `100` 字符 + BlockPerm int64 `json:"block_perm,omitempty"` // 设置仪表盘的权限示例值: 0可选值有: 无权限可阅读 +} + +// CreateBaseAppRoleReqTableRole ... +type CreateBaseAppRoleReqTableRole struct { + TablePerm int64 `json:"table_perm,omitempty"` // 数据表权限。提示: 协作者可编辑自己的记录 和 可编辑指定字段 是 可编辑记录 的特殊情况, 可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。示例值: 0可选值有: 无权限仅可阅读可编辑可管理 取值范围: `0` ~ `4` + TableName *string `json:"table_name,omitempty"` // 数据表名称(与下方 table_id 至少填写一项)。示例值: "数据表1" 长度范围: `0` ~ `50` 字符 + TableID *string `json:"table_id,omitempty"` // 多维表格数据表的唯一标识。(与上方 table_name 至少填写一项)。获取方式: 你可通过多维表格 URL 获取 `table_id`, 下图高亮部分即为当前数据表的 `table_id`- 也可通过[列出数据表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/list)接口获取 `table_id` ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/18741fe2a0d3cafafaf9949b263bb57d_yD1wkOrSju.png?height=746&lazyload=true&maxWidth=700&width=2976)示例值: "tblKz5D60T4JlfcT" 长度范围: `0` ~ `50` 字符 + RecRule *CreateBaseAppRoleReqTableRoleRecRule `json:"rec_rule,omitempty"` // 记录筛选条件, 当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。 + OtherRecRule *CreateBaseAppRoleReqTableRoleOtherRecRule `json:"other_rec_rule,omitempty"` // 记录筛选条件, 在 `rec_rule.other_perm` 为 0 时生效。对于未命中 `rec_rule` 的记录, 通过 `other_rec_rule` 指定可阅读记录范围;此时, 既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。 + FieldPerm interface{} `json:"field_perm,omitempty"` // 字段权限, 仅在 `table_perm` 为 1和 2 时生效。用于设置字段可编辑或可阅读。类型为 map, key 是字段名称, value 是字段权限。对于未设置的字段, 默认无权限。value 枚举值有: `1`: 可阅读- `2`: 可添加- `3`: 可编辑示例值: {"姓名": 1, "年龄": 2} + AllowAddRecord *bool `json:"allow_add_record,omitempty"` // 新增记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以新增。示例值: true默认值: `true` + AllowDeleteRecord *bool `json:"allow_delete_record,omitempty"` // 删除记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以删除。示例值: true默认值: `true` + ViewPerm *int64 `json:"view_perm,omitempty"` // 设置视图的权限。示例值: 2可选值有: 可阅读可编辑默认值: `2` 取值范围: `0` ~ `2` + ViewRules interface{} `json:"view_rules,omitempty"` // 可读的视图集合, 仅在 view_perm 为 1 (视图为可阅读)时生效。- 未设置时, 表示所有视图可读。- 设置后, 表示设置的视图可读, 未设置的视图无权限。该参数类型为 map, 其中 key 是[视图 ID](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#5b05b8ca), value 是视图对应的权限。value 枚举值有: `0`: 无权限- `1`: 可阅读注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"vewEYknYcC": 0} + FieldActionRules interface{} `json:"field_action_rules,omitempty"` // 设置字段的权限, 仅可配置单多选字段、附件字段。可选的点位有: `select_option_edit` : 选项配置点位, 配置是否可增删改单、多选选项, 未设置表示无权限。- `attachment_export`: 附件操作权限点位, 配置是否可导出附件, 未设置表示可导出。该参数类型为两层 map 结构, 其中 key 是字段点位权限, value 是字段权限集合。字段权限集合也是一个 map 结构, 其中 key 是字段名称, value 是字段点位权限: `0`: 无权限- `1`: 有权限注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"select_option_edit": {"单选1":0}} +} + +// CreateBaseAppRoleReqTableRoleOtherRecRule ... +type CreateBaseAppRoleReqTableRoleOtherRecRule struct { + Conditions []*CreateBaseAppRoleReqTableRoleOtherRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可阅读的记录。 长度范围: `0` ~ `10` + Conjunction *string `json:"conjunction,omitempty"` // 多个筛选条件的关系示例值: "and"可选值有: 与或默认值: `and` +} + +// CreateBaseAppRoleReqTableRoleOtherRecRuleCondition ... +type CreateBaseAppRoleReqTableRoleOtherRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。示例值: "单选" + Operator *string `json:"operator,omitempty"` // 条件运算符示例值: "is"可选值有: 等于不等于包含不包含为空不为空默认值: `is` + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。示例值: ["optbdVHf4q"] 长度范围: `0` ~ `50` +} + +// CreateBaseAppRoleReqTableRoleRecRule ... +type CreateBaseAppRoleReqTableRoleRecRule struct { + Conditions []*CreateBaseAppRoleReqTableRoleRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可编辑或可阅读的记录。 长度范围: `0` ~ `10` + Conjunction *string `json:"conjunction,omitempty"` // 多个筛选条件的关系示例值: "and"可选值有: 与或默认值: `and` + OtherPerm *int64 `json:"other_perm,omitempty"` // 其他记录权限, 仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时, 表示未命中 `rec_rule` 的记录仅可阅读, 不可编辑- 当 `other_perm` 为 0 时, 表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。示例值: 1可选值有: 禁止查看仅可阅读默认值: `0` +} + +// CreateBaseAppRoleReqTableRoleRecRuleCondition ... +type CreateBaseAppRoleReqTableRoleRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。示例值: "单选" + Operator *string `json:"operator,omitempty"` // 条件运算符示例值: "is"可选值有: 等于不等于包含不包含为空不为空默认值: `is` + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。示例值: ["optbdVHf4q"] 长度范围: `0` ~ `50` +} + +// CreateBaseAppRoleResp ... +type CreateBaseAppRoleResp struct { + Role *CreateBaseAppRoleRespRole `json:"role,omitempty"` // 自定义角色 +} + +// CreateBaseAppRoleRespRole ... +type CreateBaseAppRoleRespRole struct { + RoleName string `json:"role_name,omitempty"` // 自定义角色名称 + TableRoles []*CreateBaseAppRoleRespRoleTableRole `json:"table_roles,omitempty"` // 针对数据表的权限设置 + RoleID string `json:"role_id,omitempty"` // 自定义权限的 ID + BlockRoles []*CreateBaseAppRoleRespRoleBlockRole `json:"block_roles,omitempty"` // 针对仪表盘的权限设置 + BaseRule interface{} `json:"base_rule,omitempty"` // 多维表格点位的权限。- 未设置时, 表示自定义角色拥有所有点位权限。- 设置时, 可设置以下两种权限: - `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格 - `copy`: 设置是否可以复制多维表格内容该参数类型为 map, 其中 key 是权限点位名称, value 是权限开关。value 枚举值有: `0`: 无权限- `1`: 有权限 +} + +// CreateBaseAppRoleRespRoleBlockRole ... +type CreateBaseAppRoleRespRoleBlockRole struct { + BlockID string `json:"block_id,omitempty"` // 多维表格仪表盘的唯一标识 + BlockPerm int64 `json:"block_perm,omitempty"` // 仪表盘的权限可选值有: 无权限可阅读 + BlockType string `json:"block_type,omitempty"` // 仪表盘类型可选值有: 仪表盘 +} + +// CreateBaseAppRoleRespRoleTableRole ... +type CreateBaseAppRoleRespRoleTableRole struct { + TablePerm int64 `json:"table_perm,omitempty"` // 数据表权限。提示: 协作者可编辑自己的记录 和 可编辑指定字段 是 可编辑记录 的特殊情况, 可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。可选值有: 无权限可阅读可编辑可管理 + TableName string `json:"table_name,omitempty"` // 数据表名称 + TableID string `json:"table_id,omitempty"` // 数据表 ID + RecRule *CreateBaseAppRoleRespRoleTableRoleRecRule `json:"rec_rule,omitempty"` // 记录筛选条件, 当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。 + OtherRecRule *CreateBaseAppRoleRespRoleTableRoleOtherRecRule `json:"other_rec_rule,omitempty"` // 记录筛选条件, 在 `rec_rule.other_perm` 为 0 时生效。对于未命中 `rec_rule` 的记录, 通过 `other_rec_rule` 指定可阅读记录范围;此时, 既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。 + FieldPerm interface{} `json:"field_perm,omitempty"` // 字段权限, 仅在 `table_perm` 为 1 和 2 时生效。用于设置字段的可编辑或可阅读权限。类型为 map, key 是字段名称, value 是字段权限。value 枚举值有: `1`: 可阅读- `2`: 可添加- `3`: 可编辑 + AllowAddRecord bool `json:"allow_add_record,omitempty"` // 新增记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以新增。 + AllowDeleteRecord bool `json:"allow_delete_record,omitempty"` // 删除记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以删除。 + ViewPerm int64 `json:"view_perm,omitempty"` // 视图权限可选值有: 可阅读可编辑 + ViewRules interface{} `json:"view_rules,omitempty"` // 可读的视图集合, 仅在 view_perm 为 1 (视图为可阅读)时生效。- 未设置时, 表示所有视图可读。- 设置后, 表示设置的视图可读, 未设置的视图无权限。该参数类型为 map, 其中 key 是视图 ID, value 是视图对应的权限。value 枚举值有: `0`: 无权限- `1`: 可阅读 + FieldActionRules interface{} `json:"field_action_rules,omitempty"` // 字段点位的权限配置, 仅可配置单多选字段、附件字段。点位的枚举值有: `select_option_edit` : 选项配置点位, 配置是否可增删改单、多选选项, 未设置表示无权限。- `attachment_export`: 附件操作权限点位, 配置是否可导出附件, 未设置表示可导出。该参数类型为两层 map 结构, 其中 key 是字段点位权限, value 是字段权限集合。字段权限集合也是一个 map 结构, 其中 key 是字段名称, value 是字段点位权限: `0`: 无权限- `1`: 有权限 +} + +// CreateBaseAppRoleRespRoleTableRoleOtherRecRule ... +type CreateBaseAppRoleRespRoleTableRoleOtherRecRule struct { + Conditions []*CreateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可阅读的记录。 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // 规则筛选记录对应的权限可选值有: 仅可阅读可编辑 +} + +// CreateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition ... +type CreateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。 + Operator string `json:"operator,omitempty"` // 条件运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// CreateBaseAppRoleRespRoleTableRoleRecRule ... +type CreateBaseAppRoleRespRoleTableRoleRecRule struct { + Conditions []*CreateBaseAppRoleRespRoleTableRoleRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可编辑或可阅读的记录。 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // 命中 rec_rule 的记录对应的权限, 可不设置, 理论上应该与 table_perm 保持一致可选值有: 仅可阅读可编辑 + OtherPerm int64 `json:"other_perm,omitempty"` // 其他记录权限, 仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时, 表示未命中 `rec_rule` 的记录仅可阅读, 不可编辑- 当 `other_perm` 为 0 时, 表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。可选值有: 禁止查看仅可阅读 +} + +// CreateBaseAppRoleRespRoleTableRoleRecRuleCondition ... +type CreateBaseAppRoleRespRoleTableRoleRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。 + Operator string `json:"operator,omitempty"` // 条件运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// createBaseAppRoleResp ... +type createBaseAppRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateBaseAppRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_base_app_role_list.go b/api_base_app_role_list.go new file mode 100644 index 00000000..87279a57 --- /dev/null +++ b/api_base_app_role_list.go @@ -0,0 +1,164 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListBaseAppRole 列出多维表格高级权限中用户自定义的角色。 +// +// 相较于旧版接口, 新版自定义角色接口支持高级权限 2.0 版本新增的权限点位, 包括更精细的行级别权限控制、多维表格的复制、导出点位的控制等。 +// ## 前提条件 +// 要调用自定义角色相关接口, 你需确保多维表格已开启高级权限。你可通过[更新多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/update)接口开启高级权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/list +// new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/list-2 +func (r *BaseService) ListBaseAppRole(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) { + if r.cli.mock.mockBaseListBaseAppRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Base#ListBaseAppRole mock enable") + return r.cli.mock.mockBaseListBaseAppRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Base", + API: "ListBaseAppRole", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listBaseAppRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBaseListBaseAppRole mock BaseListBaseAppRole method +func (r *Mock) MockBaseListBaseAppRole(f func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error)) { + r.mockBaseListBaseAppRole = f +} + +// UnMockBaseListBaseAppRole un-mock BaseListBaseAppRole method +func (r *Mock) UnMockBaseListBaseAppRole() { + r.mockBaseListBaseAppRole = nil +} + +// ListBaseAppRoleReq ... +type ListBaseAppRoleReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "appbcbWCzen6D8dezhoCH2RpMAh" 长度范围: `0` ~ `100` 字符 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: roljRpwIUt +} + +// ListBaseAppRoleResp ... +type ListBaseAppRoleResp struct { + Items []*ListBaseAppRoleRespItem `json:"items,omitempty"` // 自定义角色列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Total int64 `json:"total,omitempty"` // 总数 +} + +// ListBaseAppRoleRespItem ... +type ListBaseAppRoleRespItem struct { + RoleName string `json:"role_name,omitempty"` // 自定义权限的名字 + TableRoles []*ListBaseAppRoleRespItemTableRole `json:"table_roles,omitempty"` // 数据表权限列表 + RoleID string `json:"role_id,omitempty"` // 自定义权限的 ID + BlockRoles []*ListBaseAppRoleRespItemBlockRole `json:"block_roles,omitempty"` // block权限 + BaseRule interface{} `json:"base_rule,omitempty"` // 多维表格点位的权限。- 未设置时, 表示自定义角色拥有所有点位权限。- 设置时, 可设置以下两种权限: - `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格 - `copy`: 设置是否可以复制多维表格内容该参数类型为 map, 其中 key 是权限点位名称, value 是权限开关。value 枚举值有: `0`: 无权限- `1`: 有权限 +} + +// ListBaseAppRoleRespItemBlockRole ... +type ListBaseAppRoleRespItemBlockRole struct { + BlockID string `json:"block_id,omitempty"` // Block ID + BlockPerm int64 `json:"block_perm,omitempty"` // Block权限可选值有: 无权限可阅读 + BlockType string `json:"block_type,omitempty"` // Block类型可选值有: 仪表盘 +} + +// ListBaseAppRoleRespItemTableRole ... +type ListBaseAppRoleRespItemTableRole struct { + TablePerm int64 `json:"table_perm,omitempty"` // 数据表权限可选值有: 无权限可阅读可编辑可管理 + TableName string `json:"table_name,omitempty"` // 数据表名 + TableID string `json:"table_id,omitempty"` // 数据表ID + RecRule *ListBaseAppRoleRespItemTableRoleRecRule `json:"rec_rule,omitempty"` // 记录筛选条件, 当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。 + OtherRecRule *ListBaseAppRoleRespItemTableRoleOtherRecRule `json:"other_rec_rule,omitempty"` // 记录筛选条件, 在 rec_rule.Perm 为 2 时有意义, 用于指定剩余可阅读的记录。 + FieldPerm interface{} `json:"field_perm,omitempty"` // 字段权限, 仅在 `table_perm` 为 1和 2 时生效。用于设置字段可编辑或可阅读。类型为 map, key 是字段名称, value 是字段权限。对于未设置的字段, 默认无权限。value 枚举值有: `1`: 可阅读- `2`: 可添加- `3`: 可编辑 + AllowAddRecord bool `json:"allow_add_record,omitempty"` // 新增记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以新增。 + AllowDeleteRecord bool `json:"allow_delete_record,omitempty"` // 删除记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以删除。 + ViewPerm int64 `json:"view_perm,omitempty"` // 视图权限可选值有: 可阅读可编辑 + ViewRules interface{} `json:"view_rules,omitempty"` // 可读的视图集合, 仅在 view_perm 为 1 (视图为可阅读)时生效。- 未设置时, 表示所有视图可读。- 设置后, 表示设置的视图可读, 未设置的视图无权限。该参数类型为 map, 其中 key 是[视图 ID](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#5b05b8ca), value 是视图对应的权限。value 枚举值有: `0`: 无权限- `1`: 可阅读 + FieldActionRules interface{} `json:"field_action_rules,omitempty"` // 字段的权限。可选的点位有: `select_option_edit` : 选项配置点位, 配置是否可增删改单、多选选项, 未设置表示无权限。- `attachment_export`: 附件操作权限点位, 配置是否可导出附件, 未设置表示可导出。该参数类型为两层 map 结构, 其中 key 是字段点位权限, value 是字段权限集合。字段权限集合也是一个 map 结构, 其中 key 是字段名称, value 是字段点位权限: `0`: 无权限- `1`: 有权限注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。 +} + +// ListBaseAppRoleRespItemTableRoleOtherRecRule ... +type ListBaseAppRoleRespItemTableRoleOtherRecRule struct { + Conditions []*ListBaseAppRoleRespItemTableRoleOtherRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // 规则筛选记录对应的权限可选值有: 仅可阅读可编辑 +} + +// ListBaseAppRoleRespItemTableRoleOtherRecRuleCondition ... +type ListBaseAppRoleRespItemTableRoleOtherRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Operator string `json:"operator,omitempty"` // 运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// ListBaseAppRoleRespItemTableRoleRecRule ... +type ListBaseAppRoleRespItemTableRoleRecRule struct { + Conditions []*ListBaseAppRoleRespItemTableRoleRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // 规则筛选记录对应的权限可选值有: 仅可阅读可编辑 + OtherPerm int64 `json:"other_perm,omitempty"` // 其他记录权限, 仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时, 表示未命中 `rec_rule` 的记录仅可阅读, 不可编辑- 当 `other_perm` 为 0 时, 表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。可选值有: 禁止查看仅可阅读 + ConditionGroups []*ListBaseAppRoleRespItemTableRoleRecRuleConditionGroup `json:"condition_groups,omitempty"` // 条件组 + DisplayRecRuleVersion int64 `json:"display_rec_rule_version,omitempty"` // 条件版本可选值有: 仅支持条件支持条件组 +} + +// ListBaseAppRoleRespItemTableRoleRecRuleCondition ... +type ListBaseAppRoleRespItemTableRoleRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Operator string `json:"operator,omitempty"` // 运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// ListBaseAppRoleRespItemTableRoleRecRuleConditionGroup ... +type ListBaseAppRoleRespItemTableRoleRecRuleConditionGroup struct { + ConditionType int64 `json:"condition_type,omitempty"` // 条件组类型可选值有: 单个条件条件组 + Conditions []*ListBaseAppRoleRespItemTableRoleRecRuleConditionGroupCondition `json:"conditions,omitempty"` // 条件列表 + Conjunction string `json:"conjunction,omitempty"` // 条件符可选值有: 满足所有条件满足任一条件 +} + +// ListBaseAppRoleRespItemTableRoleRecRuleConditionGroupCondition ... +type ListBaseAppRoleRespItemTableRoleRecRuleConditionGroupCondition struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Operator string `json:"operator,omitempty"` // 运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 单选或多选字段的选项id + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// listBaseAppRoleResp ... +type listBaseAppRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListBaseAppRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_base_app_role_update.go b/api_base_app_role_update.go new file mode 100644 index 00000000..aefa078c --- /dev/null +++ b/api_base_app_role_update.go @@ -0,0 +1,196 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateBaseAppRole 更新多维表格高级权限中自定义的角色。 +// +// 相较于旧版接口, 新版自定义角色接口支持高级权限 2.0 版本新增的权限点位, 包括更精细的行级别权限控制、多维表格的复制、导出点位的控制等。 +// 更新自定义角色为增量更新, 仅对传值的字段进行更新, 不传值则不更新。 +// ## 前提条件 +// 要调用自定义角色相关接口, 你需确保多维表格已开启高级权限。你可通过[更新多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/update)接口开启高级权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/update +// new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/update-2 +func (r *BaseService) UpdateBaseAppRole(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) { + if r.cli.mock.mockBaseUpdateBaseAppRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Base#UpdateBaseAppRole mock enable") + return r.cli.mock.mockBaseUpdateBaseAppRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Base", + API: "UpdateBaseAppRole", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles/:role_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateBaseAppRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBaseUpdateBaseAppRole mock BaseUpdateBaseAppRole method +func (r *Mock) MockBaseUpdateBaseAppRole(f func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error)) { + r.mockBaseUpdateBaseAppRole = f +} + +// UnMockBaseUpdateBaseAppRole un-mock BaseUpdateBaseAppRole method +func (r *Mock) UnMockBaseUpdateBaseAppRole() { + r.mockBaseUpdateBaseAppRole = nil +} + +// UpdateBaseAppRoleReq ... +type UpdateBaseAppRoleReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "appbcbWCzen6D8dezhoCH2RpMAh" 长度范围: `0` ~ `100` 字符 + RoleID string `path:"role_id" json:"-"` // 多维表格高级权限中自定义角色的唯一标识, 以 rol 开头。获取方式: 通过[列出自定义角色](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/list)接口获取。示例值: "roljRpwIUt" 长度范围: `0` ~ `100` 字符 + RoleName string `json:"role_name,omitempty"` // 自定义角色名称示例值: "自定义权限1" 长度范围: `0` ~ `100` 字符 + TableRoles []*UpdateBaseAppRoleReqTableRole `json:"table_roles,omitempty"` // 针对数据表的权限设置, 未设置该字段的情况下, 保持旧值不变 长度范围: `0` ~ `100` + BlockRoles []*UpdateBaseAppRoleReqBlockRole `json:"block_roles,omitempty"` // 针对仪表盘的权限设置。更新是, 未设置该字段的情况下, 保持旧值不变。设置`block_roles`为{}时, 将所有仪表盘更新为默认权限, 即所有仪表盘无权限。 长度范围: `0` ~ `100` + BaseRule interface{} `json:"base_rule,omitempty"` // 多维表格点位的权限。更新时, 未设置`base_rule`字段时, 所有点位保持旧值。设置`base_rule`字段为{}时, 会将所有点位设置为默认值, 即所有点位有权限。可设置以下两种权限: `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格- `copy`: 设置是否可以复制多维表格内容该参数类型为 map, 其中 key 是权限点位名称, value 是权限开关。value 枚举值有: `0`: 无权限- `1`: 有权限注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"base_complex_edit": 1, "copy": 0} +} + +// UpdateBaseAppRoleReqBlockRole ... +type UpdateBaseAppRoleReqBlockRole struct { + BlockID string `json:"block_id,omitempty"` // 多维表格仪表盘的唯一标识, 以 blk 开头。获取方式: 在多维表格的 URL 地址栏中, `block_id` 是下图中高亮部分: ![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/a966d15323ee73c66b1e9a31d34ae6c7_x3ctncH2nO.png?height=575&lazyload=true&width=1397) - 通过[列出仪表盘](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-dashboard/list)接口获取示例值: "blknkqrP3RqUkcAW" 长度范围: `0` ~ `100` 字符 + BlockPerm int64 `json:"block_perm,omitempty"` // 仪表盘的权限示例值: 0可选值有: 无权限可阅读 +} + +// UpdateBaseAppRoleReqTableRole ... +type UpdateBaseAppRoleReqTableRole struct { + TablePerm int64 `json:"table_perm,omitempty"` // 数据表权限。提示: 协作者可编辑自己的记录 和 可编辑指定字段 是 可编辑记录 的特殊情况, 可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。示例值: 0可选值有: 无权限仅可阅读可编辑可管理 取值范围: `0` ~ `4` + TableName *string `json:"table_name,omitempty"` // 数据表名称示例值: "数据表1" 长度范围: `0` ~ `50` 字符 + TableID *string `json:"table_id,omitempty"` // 多维表格数据表的唯一标识。获取方式: 你可通过多维表格 URL 获取 `table_id`, 下图高亮部分即为当前数据表的 `table_id`- 也可通过[列出数据表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/list)接口获取 `table_id` ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/18741fe2a0d3cafafaf9949b263bb57d_yD1wkOrSju.png?height=746&lazyload=true&maxWidth=700&width=2976)示例值: "tblKz5D60T4JlfcT" 长度范围: `0` ~ `50` 字符 + RecRule *UpdateBaseAppRoleReqTableRoleRecRule `json:"rec_rule,omitempty"` // 记录筛选条件, 当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。- rec_rule字段未设置、且 `table_perm `不变的情况下, 保持旧值。- 字段 value 为 {} 的情况下, 表示设置为默认值, 即全部可编辑或可阅读, 具体权限需结合 table_perm 参数。 + OtherRecRule *UpdateBaseAppRoleReqTableRoleOtherRecRule `json:"other_rec_rule,omitempty"` // 记录筛选条件, 在 `table_perm` 为 2 且`rec_rule.other_perm` 为 0 时生效。- 对于未命中 `rec_rule` 的记录, 通过 `other_rec_rule` 指定可阅读记录范围;此时, 既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。- `other_rec_rule` 字段未设置、且 `table_perm` 与 `rec_rule` 不变的情况下, 将会保持旧值不变。- `other_rec_rule` 字段设置为 {} 时, 且 `table_perm` 与`rec_rule` 不变的情况下, 表示设置为默认值, 即非`rec_rule` 记录全部可阅读。注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。 + FieldPerm interface{} `json:"field_perm,omitempty"` // 字段权限, 仅在 `table_perm` 为 1和 2 时生效。用于设置字段可编辑或可阅读。类型为 map, key 是字段名称, value 是字段权限。对于未设置的多维表格字段, 则为无权限。更新时, `field_perm` 未传值时, 将保留旧值不变。`field_perm` 传{}时, 则将所有字段设置为默认值可编辑或者可阅读, 默认值需结合`table_perm `字段。value 枚举值有: `1`: 可阅读- `2`: 可添加- `3`: 可编辑示例值: {"姓名": 1, "年龄": 2} + AllowAddRecord *bool `json:"allow_add_record,omitempty"` // 新增记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以新增。示例值: true默认值: `true` + AllowDeleteRecord *bool `json:"allow_delete_record,omitempty"` // 删除记录权限, 仅在 `table_perm` 为 2 时生效, 用于设置记录是否可以删除。示例值: true默认值: `true` + ViewPerm *int64 `json:"view_perm,omitempty"` // 设置视图的编辑权限。示例值: 2可选值有: 可阅读可编辑默认值: `2` 取值范围: `0` ~ `2` + ViewRules interface{} `json:"view_rules,omitempty"` // 可读的视图集合, 仅在 `view_perm` 为 1 (视图为可阅读)时生效。更新时, 未设置该字段`view_rules `, 且 `view_perm` 未变化的情况下, 将保留旧值。设置该字段`view_rules `为{}, 且 `view_perm` 为1的情况下, 会将所有视图置为可读。该参数类型为 map, 其中 key 是[视图 ID](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#5b05b8ca), value 是视图对应的权限。value 枚举值有: `0`: 无权限- `1`: 可阅读注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"vewEYknYcC": 0} + FieldActionRules interface{} `json:"field_action_rules,omitempty"` // 更新字段的权限, 仅可配置单多选字段、附件字段。可选的点位有: `select_option_edit` : 选项配置点位, 配置是否可增删改单、多选选项, 未设置表示无权限。- `attachment_export`: 附件操作权限点位, 配置是否可导出附件, 未设置表示可导出。该参数类型为两层 map 结构, 其中 key 是字段点位权限, value 是字段权限集合。字段权限集合也是一个 map 结构, 其中 key 是字段名称, value 是字段点位权限: `0`: 无权限- `1`: 有权限注意: 仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用[获取多维表格元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get)查看。示例值: {"select_option_edit": {"单选1":0}} +} + +// UpdateBaseAppRoleReqTableRoleOtherRecRule ... +type UpdateBaseAppRoleReqTableRoleOtherRecRule struct { + Conditions []*UpdateBaseAppRoleReqTableRoleOtherRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可阅读的记录。 长度范围: `0` ~ `10` + Conjunction *string `json:"conjunction,omitempty"` // 多个筛选条件的关系示例值: "and"可选值有: 与或默认值: `and` +} + +// UpdateBaseAppRoleReqTableRoleOtherRecRuleCondition ... +type UpdateBaseAppRoleReqTableRoleOtherRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。示例值: "单选" + Operator *string `json:"operator,omitempty"` // 条件运算符示例值: "is"可选值有: 等于不等于包含不包含为空不为空默认值: `is` + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。示例值: ["optbdVHf4q"] 长度范围: `0` ~ `50` +} + +// UpdateBaseAppRoleReqTableRoleRecRule ... +type UpdateBaseAppRoleReqTableRoleRecRule struct { + Conditions []*UpdateBaseAppRoleReqTableRoleRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可编辑或可阅读的记录。 长度范围: `0` ~ `10` + Conjunction *string `json:"conjunction,omitempty"` // 多个筛选条件的关系示例值: "and"可选值有: 与或默认值: `and` + OtherPerm *int64 `json:"other_perm,omitempty"` // 其他记录权限, 仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时, 表示未命中 `rec_rule` 的记录仅可阅读, 不可编辑- 当 `other_perm` 为 0 时, 表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。示例值: 1可选值有: 禁止查看仅可阅读默认值: `0` +} + +// UpdateBaseAppRoleReqTableRoleRecRuleCondition ... +type UpdateBaseAppRoleReqTableRoleRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。示例值: "单选" + Operator *string `json:"operator,omitempty"` // 条件运算符示例值: "is"可选值有: 等于不等于包含不包含为空不为空默认值: `is` + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。示例值: ["optbdVHf4q"] 长度范围: `0` ~ `50` +} + +// UpdateBaseAppRoleResp ... +type UpdateBaseAppRoleResp struct { + Role *UpdateBaseAppRoleRespRole `json:"role,omitempty"` // 自定义角色 +} + +// UpdateBaseAppRoleRespRole ... +type UpdateBaseAppRoleRespRole struct { + RoleName string `json:"role_name,omitempty"` // 自定义角色名称 + TableRoles []*UpdateBaseAppRoleRespRoleTableRole `json:"table_roles,omitempty"` // 针对数据表的权限设置 + RoleID string `json:"role_id,omitempty"` // 自定义权限的id + BlockRoles []*UpdateBaseAppRoleRespRoleBlockRole `json:"block_roles,omitempty"` // block权限 + BaseRule interface{} `json:"base_rule,omitempty"` // 多维表格点位的权限。- 未设置时, 表示自定义角色拥有所有点位权限。- 设置时, 可设置以下两种权限: - `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格 - `copy`: 设置是否可以复制多维表格内容该参数类型为 map, 其中 key 是权限点位名称, value 是权限开关。value 枚举值有: `0`: 无权限- `1`: 有权限 +} + +// UpdateBaseAppRoleRespRoleBlockRole ... +type UpdateBaseAppRoleRespRoleBlockRole struct { + BlockID string `json:"block_id,omitempty"` // Block ID + BlockPerm int64 `json:"block_perm,omitempty"` // Block权限可选值有: 无权限可阅读 + BlockType string `json:"block_type,omitempty"` // Block类型可选值有: 仪表盘 +} + +// UpdateBaseAppRoleRespRoleTableRole ... +type UpdateBaseAppRoleRespRoleTableRole struct { + TablePerm int64 `json:"table_perm,omitempty"` // 数据表权限。提示: 协作者可编辑自己的记录 和 可编辑指定字段 是 可编辑记录 的特殊情况, 可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。可选值有: 无权限可阅读可编辑可管理 + TableName string `json:"table_name,omitempty"` // 数据表名 + TableID string `json:"table_id,omitempty"` // 数据表 ID。详情参考[数据表 table](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#8ff3bb0b)。 + RecRule *UpdateBaseAppRoleRespRoleTableRoleRecRule `json:"rec_rule,omitempty"` // 记录筛选条件, 当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。 + OtherRecRule *UpdateBaseAppRoleRespRoleTableRoleOtherRecRule `json:"other_rec_rule,omitempty"` // 记录筛选条件, 在 `rec_rule.other_perm` 为 0 时生效。对于未命中 `rec_rule` 的记录, 通过 `other_rec_rule` 指定可阅读记录范围;此时, 既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。 + FieldPerm interface{} `json:"field_perm,omitempty"` // 字段权限, 仅在 table_perm 为 2 时有意义, 设置字段可编辑或可阅读权限 + AllowAddRecord bool `json:"allow_add_record,omitempty"` // 新增记录权限, 仅在 table_perm 为 2 时有意义, 用于设置记录是否可以新增 + AllowDeleteRecord bool `json:"allow_delete_record,omitempty"` // 删除记录权限, 仅在 table_perm 为 2 时有意义, 用于设置记录是否可以删除 + ViewPerm int64 `json:"view_perm,omitempty"` // 视图权限可选值有: 可阅读可编辑 + ViewRules interface{} `json:"view_rules,omitempty"` // 可读的视图集合, 仅在 view_perm 为 1 (视图为可阅读)时生效。- 未设置时, 表示所有视图可读。- 设置后, 表示设置的视图可读, 未设置的视图无权限。该参数类型为 map, 其中 key 是视图 ID, value 是视图对应的权限。value 枚举值有: `0`: 无权限- `1`: 可阅读 + FieldActionRules interface{} `json:"field_action_rules,omitempty"` // 字段点位的权限配置, 仅可配置单多选字段、附件字段。点位的枚举值有: `select_option_edit` : 选项配置点位, 配置是否可增删改单、多选选项, 未设置表示无权限。- `attachment_export`: 附件操作权限点位, 配置是否可导出附件, 未设置表示可导出。该参数类型为两层 map 结构, 其中 key 是字段点位权限, value 是字段权限集合。字段权限集合也是一个 map 结构, 其中 key 是字段名称, value 是字段点位权限: `0`: 无权限- `1`: 有权限 +} + +// UpdateBaseAppRoleRespRoleTableRoleOtherRecRule ... +type UpdateBaseAppRoleRespRoleTableRoleOtherRecRule struct { + Conditions []*UpdateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // 规则筛选记录对应的权限可选值有: 仅可阅读可编辑 +} + +// UpdateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition ... +type UpdateBaseAppRoleRespRoleTableRoleOtherRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Operator string `json:"operator,omitempty"` // 运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// UpdateBaseAppRoleRespRoleTableRoleRecRule ... +type UpdateBaseAppRoleRespRoleTableRoleRecRule struct { + Conditions []*UpdateBaseAppRoleRespRoleTableRoleRecRuleCondition `json:"conditions,omitempty"` // 记录筛选条件, 用于指定可编辑或可阅读的记录。 + Conjunction string `json:"conjunction,omitempty"` // 多个筛选条件的关系可选值有: 与或 + Perm int64 `json:"perm,omitempty"` // rec_rule 的记录对应的权限可选值有: 仅可阅读可编辑 + OtherPerm int64 `json:"other_perm,omitempty"` // 其他记录权限可选值有: 禁止查看仅可阅读 +} + +// UpdateBaseAppRoleRespRoleTableRoleRecRuleCondition ... +type UpdateBaseAppRoleRespRoleTableRoleRecRuleCondition struct { + FieldName string `json:"field_name,omitempty"` // 条件字段的名称。记录筛选条件是“创建人包含访问者本人”时, 此参数值为 ""。 + Operator string `json:"operator,omitempty"` // 条件运算符可选值有: 等于不等于包含不包含为空不为空 + Value []string `json:"value,omitempty"` // 条件的值, 可以是单个值或多个值的数组。详情参考[字段目标值(value)填写说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/record-filter-guide#3e0fd644)。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型 +} + +// updateBaseAppRoleResp ... +type updateBaseAppRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateBaseAppRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bitable_app_block_workflow_list.go b/api_bitable_app_block_workflow_list.go new file mode 100644 index 00000000..af4d03b5 --- /dev/null +++ b/api_bitable_app_block_workflow_list.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListBitableAppBlockWorkflow 此接口用于返回多维表格中所有工作流, 多维表格管理员可通过此接口来管理表中的工作流 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-block_workflow/list +func (r *BitableService) ListBitableAppBlockWorkflow(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) { + if r.cli.mock.mockBitableListBitableAppBlockWorkflow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#ListBitableAppBlockWorkflow mock enable") + return r.cli.mock.mockBitableListBitableAppBlockWorkflow(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Bitable", + API: "ListBitableAppBlockWorkflow", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/bitable/v1/apps/:app_token/block_workflows", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listBitableAppBlockWorkflowResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBitableListBitableAppBlockWorkflow mock BitableListBitableAppBlockWorkflow method +func (r *Mock) MockBitableListBitableAppBlockWorkflow(f func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error)) { + r.mockBitableListBitableAppBlockWorkflow = f +} + +// UnMockBitableListBitableAppBlockWorkflow un-mock BitableListBitableAppBlockWorkflow method +func (r *Mock) UnMockBitableListBitableAppBlockWorkflow() { + r.mockBitableListBitableAppBlockWorkflow = nil +} + +// ListBitableAppBlockWorkflowReq ... +type ListBitableAppBlockWorkflowReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 app_token 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 app_token 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 obj_type 的值为 bitable 时, obj_token 字段的值才是多维表格的 app_token。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "U9sGw5wyoiOIqdk1C4mcbYmMnbt" 长度范围: `1` ~ `200` 字符 +} + +// ListBitableAppBlockWorkflowResp ... +type ListBitableAppBlockWorkflowResp struct { + Workflows []*ListBitableAppBlockWorkflowRespWorkflow `json:"workflows,omitempty"` // 工作流列表 +} + +// ListBitableAppBlockWorkflowRespWorkflow ... +type ListBitableAppBlockWorkflowRespWorkflow struct { + WorkflowID string `json:"workflow_id,omitempty"` // 工作流唯一键 + Title string `json:"title,omitempty"` // 工作流标题 + Status string `json:"status,omitempty"` // 工作流状态可选值有: 启用禁用 +} + +// listBitableAppBlockWorkflowResp ... +type listBitableAppBlockWorkflowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListBitableAppBlockWorkflowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bitable_app_role_create.go b/api_bitable_app_role_create.go index 6c710ffd..f6b3d917 100644 --- a/api_bitable_app_role_create.go +++ b/api_bitable_app_role_create.go @@ -29,8 +29,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/create // new doc: https://open.feishu.cn/document/server-docs/docs/bitable-v1/advanced-permission/app-role/create -// -// Deprecated func (r *BitableService) CreateBitableAppRole(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) { if r.cli.mock.mockBitableCreateBitableAppRole != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#CreateBitableAppRole mock enable") diff --git a/api_bitable_app_role_delete.go b/api_bitable_app_role_delete.go index b9ab029b..9414f60d 100644 --- a/api_bitable_app_role_delete.go +++ b/api_bitable_app_role_delete.go @@ -67,7 +67,8 @@ type DeleteBitableAppRoleReq struct { } // DeleteBitableAppRoleResp ... -type DeleteBitableAppRoleResp struct{} +type DeleteBitableAppRoleResp struct { +} // deleteBitableAppRoleResp ... type deleteBitableAppRoleResp struct { diff --git a/api_bitable_app_role_list.go b/api_bitable_app_role_list.go index 24f2cbcf..5d274361 100644 --- a/api_bitable_app_role_list.go +++ b/api_bitable_app_role_list.go @@ -29,8 +29,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/list // new doc: https://open.feishu.cn/document/server-docs/docs/bitable-v1/advanced-permission/app-role/list -// -// Deprecated func (r *BitableService) GetBitableAppRoleList(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) { if r.cli.mock.mockBitableGetBitableAppRoleList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#GetBitableAppRoleList mock enable") diff --git a/api_bitable_app_role_member_create.go b/api_bitable_app_role_member_create.go index d71848e3..b204acb2 100644 --- a/api_bitable_app_role_member_create.go +++ b/api_bitable_app_role_member_create.go @@ -69,7 +69,8 @@ type CreateBitableAppRoleMemberReq struct { } // CreateBitableAppRoleMemberResp ... -type CreateBitableAppRoleMemberResp struct{} +type CreateBitableAppRoleMemberResp struct { +} // createBitableAppRoleMemberResp ... type createBitableAppRoleMemberResp struct { diff --git a/api_bitable_app_role_member_create_batch.go b/api_bitable_app_role_member_create_batch.go index 9169311e..ea21e27a 100644 --- a/api_bitable_app_role_member_create_batch.go +++ b/api_bitable_app_role_member_create_batch.go @@ -74,7 +74,8 @@ type BatchCreateBitableAppRoleMemberReqMember struct { } // BatchCreateBitableAppRoleMemberResp ... -type BatchCreateBitableAppRoleMemberResp struct{} +type BatchCreateBitableAppRoleMemberResp struct { +} // batchCreateBitableAppRoleMemberResp ... type batchCreateBitableAppRoleMemberResp struct { diff --git a/api_bitable_app_role_member_delete.go b/api_bitable_app_role_member_delete.go index 9cd1b7f2..4a5c1f95 100644 --- a/api_bitable_app_role_member_delete.go +++ b/api_bitable_app_role_member_delete.go @@ -69,7 +69,8 @@ type DeleteBitableAppRoleMemberReq struct { } // DeleteBitableAppRoleMemberResp ... -type DeleteBitableAppRoleMemberResp struct{} +type DeleteBitableAppRoleMemberResp struct { +} // deleteBitableAppRoleMemberResp ... type deleteBitableAppRoleMemberResp struct { diff --git a/api_bitable_app_role_member_delete_batch.go b/api_bitable_app_role_member_delete_batch.go index 94b58296..f0e1305b 100644 --- a/api_bitable_app_role_member_delete_batch.go +++ b/api_bitable_app_role_member_delete_batch.go @@ -74,7 +74,8 @@ type BatchDeleteBitableAppRoleMemberReqMember struct { } // BatchDeleteBitableAppRoleMemberResp ... -type BatchDeleteBitableAppRoleMemberResp struct{} +type BatchDeleteBitableAppRoleMemberResp struct { +} // batchDeleteBitableAppRoleMemberResp ... type batchDeleteBitableAppRoleMemberResp struct { diff --git a/api_bitable_app_role_update.go b/api_bitable_app_role_update.go index 1063f559..94112eea 100644 --- a/api_bitable_app_role_update.go +++ b/api_bitable_app_role_update.go @@ -29,8 +29,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/update // new doc: https://open.feishu.cn/document/server-docs/docs/bitable-v1/advanced-permission/app-role/update -// -// Deprecated func (r *BitableService) UpdateBitableAppRole(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) { if r.cli.mock.mockBitableUpdateBitableAppRole != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#UpdateBitableAppRole mock enable") diff --git a/api_bitable_app_table_record_batch_get.go b/api_bitable_app_table_record_batch_get.go new file mode 100644 index 00000000..c5bf8953 --- /dev/null +++ b/api_bitable_app_table_record_batch_get.go @@ -0,0 +1,116 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchGetBitableAppTableRecord 通过多个记录 ID 查询记录信息。该接口最多支持查询 100 条记录。 +// +// ## 注意事项 +// 若多维表格开启了高级权限, 你需确保调用身份拥有多维表格的可管理权限, 否则可能出现调用成功但返回数据为空的情况。了解具体步骤, 参考[如何为应用或用户开通文档权限](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#16c6475a)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_get +// new doc: https://open.feishu.cn/document/docs/bitable-v1/app-table-record/batch_get +func (r *BitableService) BatchGetBitableAppTableRecord(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) { + if r.cli.mock.mockBitableBatchGetBitableAppTableRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#BatchGetBitableAppTableRecord mock enable") + return r.cli.mock.mockBitableBatchGetBitableAppTableRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Bitable", + API: "BatchGetBitableAppTableRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_get", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchGetBitableAppTableRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBitableBatchGetBitableAppTableRecord mock BitableBatchGetBitableAppTableRecord method +func (r *Mock) MockBitableBatchGetBitableAppTableRecord(f func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error)) { + r.mockBitableBatchGetBitableAppTableRecord = f +} + +// UnMockBitableBatchGetBitableAppTableRecord un-mock BitableBatchGetBitableAppTableRecord method +func (r *Mock) UnMockBitableBatchGetBitableAppTableRecord() { + r.mockBitableBatchGetBitableAppTableRecord = nil +} + +// BatchGetBitableAppTableRecordReq ... +type BatchGetBitableAppTableRecordReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "NQRxbRkBMa6OnZsjtERcxhabcef" 长度范围: `0` ~ `100` 字符 + TableID string `path:"table_id" json:"-"` // 多维表格数据表的唯一标识。获取方式: 你可通过多维表格 URL 获取 `table_id`, 下图高亮部分即为当前数据表的 `table_id`- 也可通过[列出数据表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/list)接口获取 `table_id` ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/18741fe2a0d3cafafaf9949b263bb57d_yD1wkOrSju.png?height=746&lazyload=true&maxWidth=700&width=2976)示例值: "tbl0xe5g8PPabcef" 长度范围: `0` ~ `50` 字符 + RecordIDs []string `json:"record_ids,omitempty"` // 记录 ID 列表。调用[查询记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/search)获取。示例值: ["recyO3299N"] 长度范围: `1` ~ `100` + UserIDType *IDType `json:"user_id_type,omitempty"` // 此次调用中使用的用户 id 的类型示例值: "open_id"可选值有: 以user_id来识别用户以union_id来识别用户以open_id来识别用户 + WithSharedURL *bool `json:"with_shared_url,omitempty"` // 是否返回记录的分享链接。可选值: true: 返回分享链接- false: 不返回分享链接默认值: false示例值: true + AutomaticFields *bool `json:"automatic_fields,omitempty"` // 是否返回自动计算的字段。可选值: true: 返回自动计算的字段- false: 不返回自动计算的字段默认值: false示例值: true +} + +// BatchGetBitableAppTableRecordResp ... +type BatchGetBitableAppTableRecordResp struct { + Records []*BatchGetBitableAppTableRecordRespRecord `json:"records,omitempty"` // 记录列表 + ForbiddenRecordIDs []string `json:"forbidden_record_ids,omitempty"` // 禁止访问的记录列表(针对开启了高级权限的多维表格) + AbsentRecordIDs []string `json:"absent_record_ids,omitempty"` // 不存在的记录列表 +} + +// BatchGetBitableAppTableRecordRespRecord ... +type BatchGetBitableAppTableRecordRespRecord struct { + Fields map[string]interface{} `json:"fields,omitempty"` // 记录字段 + RecordID string `json:"record_id,omitempty"` // 记录 ID + CreatedBy *BatchGetBitableAppTableRecordRespRecordCreatedBy `json:"created_by,omitempty"` // 创建人信息 + CreatedTime int64 `json:"created_time,omitempty"` // 创建时间。毫秒级时间戳。 + LastModifiedBy *BatchGetBitableAppTableRecordRespRecordLastModifiedBy `json:"last_modified_by,omitempty"` // 修改人信息 + LastModifiedTime int64 `json:"last_modified_time,omitempty"` // 最近更新时间。毫秒级时间戳。 + SharedURL string `json:"shared_url,omitempty"` // 记录分享链接 + RecordURL string `json:"record_url,omitempty"` // 记录链接(检索记录接口将返回该字段, 本接口不返回) +} + +// BatchGetBitableAppTableRecordRespRecordCreatedBy ... +type BatchGetBitableAppTableRecordRespRecordCreatedBy struct { + ID string `json:"id,omitempty"` // 创建人 ID。ID 类型与请求体中的 `user_id_type` 指定的类型一致。 + Name string `json:"name,omitempty"` // 创建人中文姓名 + EnName string `json:"en_name,omitempty"` // 创建人英文姓名 + Email string `json:"email,omitempty"` // 创建人邮箱 + AvatarURL string `json:"avatar_url,omitempty"` // 创建人头像链接字段权限要求(满足任一): 获取用户基本信息以应用身份访问通讯录读取通讯录以应用身份读取通讯录 +} + +// BatchGetBitableAppTableRecordRespRecordLastModifiedBy ... +type BatchGetBitableAppTableRecordRespRecordLastModifiedBy struct { + ID string `json:"id,omitempty"` // 修改人 ID。ID 类型与请求体中的 `user_id_type` 指定的类型一致。 + Name string `json:"name,omitempty"` // 修改人中文姓名 + EnName string `json:"en_name,omitempty"` // 修改人英文姓名 + Email string `json:"email,omitempty"` // 修改人邮箱 + AvatarURL string `json:"avatar_url,omitempty"` // 修改人头像链接字段权限要求(满足任一): 获取用户基本信息以应用身份访问通讯录读取通讯录以应用身份读取通讯录 +} + +// batchGetBitableAppTableRecordResp ... +type batchGetBitableAppTableRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetBitableAppTableRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bitable_app_workflow_list.go b/api_bitable_app_workflow_list.go new file mode 100644 index 00000000..2100c549 --- /dev/null +++ b/api_bitable_app_workflow_list.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListBitableAppWorkflow 该接口用于列出多维表格的自动化流程。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-workflow/list +// new doc: https://open.feishu.cn/document/docs/bitable-v1/app-workflow/list +func (r *BitableService) ListBitableAppWorkflow(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) { + if r.cli.mock.mockBitableListBitableAppWorkflow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#ListBitableAppWorkflow mock enable") + return r.cli.mock.mockBitableListBitableAppWorkflow(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Bitable", + API: "ListBitableAppWorkflow", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/bitable/v1/apps/:app_token/workflows", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listBitableAppWorkflowResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBitableListBitableAppWorkflow mock BitableListBitableAppWorkflow method +func (r *Mock) MockBitableListBitableAppWorkflow(f func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error)) { + r.mockBitableListBitableAppWorkflow = f +} + +// UnMockBitableListBitableAppWorkflow un-mock BitableListBitableAppWorkflow method +func (r *Mock) UnMockBitableListBitableAppWorkflow() { + r.mockBitableListBitableAppWorkflow = nil +} + +// ListBitableAppWorkflowReq ... +type ListBitableAppWorkflowReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "appbcbWCzen6D8dezhoCH2RpMAh" +} + +// ListBitableAppWorkflowResp ... +type ListBitableAppWorkflowResp struct { + Workflows []*ListBitableAppWorkflowRespWorkflow `json:"workflows,omitempty"` // 自动化流程信息 +} + +// ListBitableAppWorkflowRespWorkflow ... +type ListBitableAppWorkflowRespWorkflow struct { + WorkflowID string `json:"workflow_id,omitempty"` // 自动化流程的 ID + Status string `json:"status,omitempty"` // 自动化流程的状态 + Title string `json:"title,omitempty"` // 自动化流程的名称 +} + +// listBitableAppWorkflowResp ... +type listBitableAppWorkflowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListBitableAppWorkflowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bitable_app_workflow_update.go b/api_bitable_app_workflow_update.go new file mode 100644 index 00000000..fd44916b --- /dev/null +++ b/api_bitable_app_workflow_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateBitableAppWorkflow 开启或关闭自动化流程。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-workflow/update +// new doc: https://open.feishu.cn/document/docs/bitable-v1/app-workflow/update +func (r *BitableService) UpdateBitableAppWorkflow(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) { + if r.cli.mock.mockBitableUpdateBitableAppWorkflow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#UpdateBitableAppWorkflow mock enable") + return r.cli.mock.mockBitableUpdateBitableAppWorkflow(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Bitable", + API: "UpdateBitableAppWorkflow", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/bitable/v1/apps/:app_token/workflows/:workflow_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateBitableAppWorkflowResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBitableUpdateBitableAppWorkflow mock BitableUpdateBitableAppWorkflow method +func (r *Mock) MockBitableUpdateBitableAppWorkflow(f func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error)) { + r.mockBitableUpdateBitableAppWorkflow = f +} + +// UnMockBitableUpdateBitableAppWorkflow un-mock BitableUpdateBitableAppWorkflow method +func (r *Mock) UnMockBitableUpdateBitableAppWorkflow() { + r.mockBitableUpdateBitableAppWorkflow = nil +} + +// UpdateBitableAppWorkflowReq ... +type UpdateBitableAppWorkflowReq struct { + AppToken string `path:"app_token" json:"-"` // 多维表格 App 的唯一标识。不同形态的多维表格, 其 `app_token` 的获取方式不同: 如果多维表格的 URL 以 [feishu.cn/base] 开头, 该多维表格的 `app_token` 是下图高亮部分: ![app_token.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6916f8cfac4045ba6585b90e3afdfb0a_GxbfkJHZBa.png?height=766&lazyload=true&width=3004)- 如果多维表格的 URL 以 [feishu.cn/wiki] 开头, 你需调用知识库相关[获取知识空间节点信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node)接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时, `obj_token` 字段的值才是多维表格的 `app_token`。了解更多, 参考[多维表格 app_token 获取方式](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview#-752212c)。示例值: "appbcbWCzen6D8dezh" + WorkflowID string `path:"workflow_id" json:"-"` // 自动化工作流 ID, 通过[列出自动化流程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-workflow/list)接口获取。示例值: "730887xxxx552638996" + Status string `json:"status,omitempty"` // 自动化状态。可选值: Enable: 开启自动化流程- Disable: 关闭自动化流程示例值: "Enable" +} + +// UpdateBitableAppWorkflowResp ... +type UpdateBitableAppWorkflowResp struct { +} + +// updateBitableAppWorkflowResp ... +type updateBitableAppWorkflowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateBitableAppWorkflowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bitable_record_get.go b/api_bitable_record_get.go index 83c01862..1f6fcdcf 100644 --- a/api_bitable_record_get.go +++ b/api_bitable_record_get.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get // new doc: https://open.feishu.cn/document/server-docs/docs/bitable-v1/app-table-record/get -// -// Deprecated func (r *BitableService) GetBitableRecord(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) { if r.cli.mock.mockBitableGetBitableRecord != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#GetBitableRecord mock enable") diff --git a/api_bitable_record_list.go b/api_bitable_record_list.go index 334b978d..ffc7d9ca 100644 --- a/api_bitable_record_list.go +++ b/api_bitable_record_list.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list // new doc: https://open.feishu.cn/document/server-docs/docs/bitable-v1/app-table-record/list -// -// Deprecated func (r *BitableService) GetBitableRecordList(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) { if r.cli.mock.mockBitableGetBitableRecordList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Bitable#GetBitableRecordList mock enable") diff --git a/api_bitable_table_batch_delete.go b/api_bitable_table_batch_delete.go index 8554d3e0..fdeb6dc1 100644 --- a/api_bitable_table_batch_delete.go +++ b/api_bitable_table_batch_delete.go @@ -67,7 +67,8 @@ type BatchDeleteBitableTableReq struct { } // BatchDeleteBitableTableResp ... -type BatchDeleteBitableTableResp struct{} +type BatchDeleteBitableTableResp struct { +} // batchDeleteBitableTableResp ... type batchDeleteBitableTableResp struct { diff --git a/api_bitable_table_delete.go b/api_bitable_table_delete.go index 2aaf0ad1..986fbb66 100644 --- a/api_bitable_table_delete.go +++ b/api_bitable_table_delete.go @@ -67,7 +67,8 @@ type DeleteBitableTableReq struct { } // DeleteBitableTableResp ... -type DeleteBitableTableResp struct{} +type DeleteBitableTableResp struct { +} // deleteBitableTableResp ... type deleteBitableTableResp struct { diff --git a/api_bitable_view_delete.go b/api_bitable_view_delete.go index 7ce8e37c..1f979b39 100644 --- a/api_bitable_view_delete.go +++ b/api_bitable_view_delete.go @@ -65,7 +65,8 @@ type DeleteBitableViewReq struct { } // DeleteBitableViewResp ... -type DeleteBitableViewResp struct{} +type DeleteBitableViewResp struct { +} // deleteBitableViewResp ... type deleteBitableViewResp struct { diff --git a/api_board_whiteboard_download_as_image.go b/api_board_whiteboard_download_as_image.go new file mode 100644 index 00000000..0cabcaf1 --- /dev/null +++ b/api_board_whiteboard_download_as_image.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" + "io" +) + +// DownloadBoardWhiteboardAsImage 获取画板的缩略图片, 响应数据为图片的二进制图片流。根据 Content-Type 值区图片格式: image/png、image/jpeg、image/gif、image/svg+xml。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/download_as_image +// new doc: https://open.feishu.cn/document/docs/board-v1/whiteboard/download_as_image +func (r *BoardService) DownloadBoardWhiteboardAsImage(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) { + if r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Board#DownloadBoardWhiteboardAsImage mock enable") + return r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Board", + API: "DownloadBoardWhiteboardAsImage", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/download_as_image", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(downloadBoardWhiteboardAsImageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBoardDownloadBoardWhiteboardAsImage mock BoardDownloadBoardWhiteboardAsImage method +func (r *Mock) MockBoardDownloadBoardWhiteboardAsImage(f func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error)) { + r.mockBoardDownloadBoardWhiteboardAsImage = f +} + +// UnMockBoardDownloadBoardWhiteboardAsImage un-mock BoardDownloadBoardWhiteboardAsImage method +func (r *Mock) UnMockBoardDownloadBoardWhiteboardAsImage() { + r.mockBoardDownloadBoardWhiteboardAsImage = nil +} + +// DownloadBoardWhiteboardAsImageReq ... +type DownloadBoardWhiteboardAsImageReq struct { + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板唯一标识。可通过文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id。示例值: "Ru8nwrWFOhEmaFbEU2VbPRsHcxb" +} + +// downloadBoardWhiteboardAsImageResp ... +type downloadBoardWhiteboardAsImageResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *DownloadBoardWhiteboardAsImageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} + +func (r *downloadBoardWhiteboardAsImageResp) SetReader(file io.Reader) { + if r.Data == nil { + r.Data = &DownloadBoardWhiteboardAsImageResp{} + } + r.Data.File = file +} + +// DownloadBoardWhiteboardAsImageResp ... +type DownloadBoardWhiteboardAsImageResp struct { + File io.Reader `json:"file,omitempty"` +} diff --git a/api_board_whiteboard_node_create.go b/api_board_whiteboard_node_create.go new file mode 100644 index 00000000..0c5e846a --- /dev/null +++ b/api_board_whiteboard_node_create.go @@ -0,0 +1,787 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateBoardWhiteboardNode 创建画板节点, 支持批量创建、创建含父子关系的节点等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create +func (r *BoardService) CreateBoardWhiteboardNode(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) { + if r.cli.mock.mockBoardCreateBoardWhiteboardNode != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Board#CreateBoardWhiteboardNode mock enable") + return r.cli.mock.mockBoardCreateBoardWhiteboardNode(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Board", + API: "CreateBoardWhiteboardNode", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/nodes", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createBoardWhiteboardNodeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBoardCreateBoardWhiteboardNode mock BoardCreateBoardWhiteboardNode method +func (r *Mock) MockBoardCreateBoardWhiteboardNode(f func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error)) { + r.mockBoardCreateBoardWhiteboardNode = f +} + +// UnMockBoardCreateBoardWhiteboardNode un-mock BoardCreateBoardWhiteboardNode method +func (r *Mock) UnMockBoardCreateBoardWhiteboardNode() { + r.mockBoardCreateBoardWhiteboardNode = nil +} + +// CreateBoardWhiteboardNodeReq ... +type CreateBoardWhiteboardNodeReq struct { + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板唯一标识, 可通过云文档下的文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id示例值: "Ru8nwrWFOhEmaFbEU2VbPRsHcxb" 长度范围: `22` ~ `27` 字符 + ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 与接口返回值的 client_token 相对应, 用于幂等的进行更新操作。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作示例值: fe599b60-450f-46ff-b2ef-9f6675625b9 长度范围: `10` ~ `64` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Nodes []*CreateBoardWhiteboardNodeReqNode `json:"nodes,omitempty"` // 子节点数据, 不允许传入空数组 长度范围: `1` ~ `3000` +} + +// CreateBoardWhiteboardNodeReqNode ... +type CreateBoardWhiteboardNodeReqNode struct { + ID *string `json:"id,omitempty"` // 节点 id, 用于唯一标识此节点, 不能重复, 在创建父子节点、关联其它节点做标记使用示例值: "o1:1" 长度范围: `0` ~ `100` 字符 + Type string `json:"type,omitempty"` // 节点图形类型示例值: "composite_shape"可选值有: 图片文本组合基础图形svg 图形连线表格对象生命线控制焦点分区类图实体关系图便签思维导图画笔组合片段 + ParentID *string `json:"parent_id,omitempty"` // 父节点 id, 必须是已存在的节点或者在本次创建的节点列表内示例值: "n1:1" 长度范围: `0` ~ `100` 字符 + X *float64 `json:"x,omitempty"` // 图形相对画布的 x 轴位置信息(存在父容器时为相对父容器的坐标, 父容器为组合图形 group 时, 坐标是穿透的), 单位为 px示例值: 100默认值: `0` 取值范围: `-132070` ~ `132070` + Y *float64 `json:"y,omitempty"` // 图形相对画布的 y 轴位置信息(存在父容器时为相对父容器的坐标, 父容器为组合图形 group 时, 坐标是穿透的), 单位为 px示例值: 100默认值: `0` 取值范围: `-132070` ~ `132070` + Angle *float64 `json:"angle,omitempty"` // 图形旋转角度, 单位度示例值: 100默认值: `0` 取值范围: `-180` ~ `180` + Height *float64 `json:"height,omitempty"` // 图形高度, 单位为 px示例值: 100 取值范围: `0` ~ `132070` + Text *CreateBoardWhiteboardNodeReqNodeText `json:"text,omitempty"` // 图形内文字(节点类型为 text_shape 时, 该字段不能为空)(节点类型为group、section, connector、paint、svg、activation时候, 该字段必须为空) + Style *CreateBoardWhiteboardNodeReqNodeStyle `json:"style,omitempty"` // 图形样式(节点类型为group、paint时, 该字段必须为空) + Image *CreateBoardWhiteboardNodeReqNodeImage `json:"image,omitempty"` // 图片 + CompositeShape *CreateBoardWhiteboardNodeReqNodeCompositeShape `json:"composite_shape,omitempty"` // 基础图形属性(节点的 type 为 composite_shape 时不可为空) + Connector *CreateBoardWhiteboardNodeReqNodeConnector `json:"connector,omitempty"` // 连线属性(节点类型为connector时, 该字段不可为空) + Width *float64 `json:"width,omitempty"` // 图形宽度, 单位为 px示例值: 100 取值范围: `0` ~ `132070` + Section *CreateBoardWhiteboardNodeReqNodeSection `json:"section,omitempty"` // 分区属性 + Table *CreateBoardWhiteboardNodeReqNodeTable `json:"table,omitempty"` // 表格属性(节点类型为table、table_er、table_uml、combined_fragment时, 该字段不可为空) + Locked *bool `json:"locked,omitempty"` // 图形是否锁定, 锁定后无法编辑图形, 默认false示例值: true + ZIndex *int64 `json:"z_index,omitempty"` // 图形在兄弟节点中的层级, 层级大的会覆盖层级小的示例值: 1 取值范围: `0` ~ `10000` + Lifeline *CreateBoardWhiteboardNodeReqNodeLifeline `json:"lifeline,omitempty"` // 生命对象属性(节点类型为life_line时, 该字段不可为空) + Paint *CreateBoardWhiteboardNodeReqNodePaint `json:"paint,omitempty"` // 画笔属性(节点类型为paint时, 该字段不可为空) + Svg *CreateBoardWhiteboardNodeReqNodeSvg `json:"svg,omitempty"` // svg图形属性(节点类型为svg时, 该字段不可为空) + StickyNote *CreateBoardWhiteboardNodeReqNodeStickyNote `json:"sticky_note,omitempty"` // 便签图形属性 + MindMapNode *CreateBoardWhiteboardNodeReqNodeMindMapNode `json:"mind_map_node,omitempty"` // 思维导图节点属性 + MindMapRoot *CreateBoardWhiteboardNodeReqNodeMindMapRoot `json:"mind_map_root,omitempty"` // 思维导图根节点属性 +} + +// CreateBoardWhiteboardNodeReqNodeCompositeShape ... +type CreateBoardWhiteboardNodeReqNodeCompositeShape struct { + Type string `json:"type,omitempty"` // 基础图形的具体类型示例值: "circle"可选值有: 全圆角矩形圆形六边形圆柱体平行四边形梯形三角形圆角矩形步骤菱形基础矩形五角星气泡五边形单向箭头文档图形组合片段云朵十字形步骤图形2预定义流程延迟图形跨页引用注释图形数据处理数据存储数据存储2数据存储3爆炸星型四角形六角形角色小人花括号组合片段2双向箭头数据处理(正方圆角矩形)矩形气泡手动输入图形流程图圆角矩形流程图全圆角矩形流程图判定流程图数据流程图数据库流程图手动操作流程图准备数据流外部实体数据流数据处理反向箭头(左箭头)反向花括号(左括号)消息队列水平方向圆柱体类图, 接口类图, 类目圆环扇形直角三角形八边形状态图, 开始状态图, 结束状态图, 并发组件组件2组件, 接口组件, 需求接口组件, 组装立方体边界控制实体数据库边界队列集合角色生命线对象生命线思维导图全圆角矩形思维导图圆角矩形思维导图文本图形 + Pie *CreateBoardWhiteboardNodeReqNodeCompositeShapePie `json:"pie,omitempty"` // 饼图属性, type=pie时需要设置 + CircularRing *CreateBoardWhiteboardNodeReqNodeCompositeShapeCircularRing `json:"circular_ring,omitempty"` // 圆环属性, type=circular_ring时需要设置 +} + +// CreateBoardWhiteboardNodeReqNodeCompositeShapeCircularRing ... +type CreateBoardWhiteboardNodeReqNodeCompositeShapeCircularRing struct { + StartRadialLineAngle float64 `json:"start_radial_line_angle,omitempty"` // 开始径向边角度, 水平向右x轴正方向为0度, 顺时针方向角度值递增示例值: 30.0 取值范围: `0.0` ~ `360.0` + CentralAngle float64 `json:"central_angle,omitempty"` // 圆心角角度, 角度方向为始径向边逆时针方向示例值: 40.0 取值范围: `0.0` ~ `360.0` + Radius float64 `json:"radius,omitempty"` // 半径长度示例值: 10 取值范围: `1` ~ `10000000000` + SectorRatio *float64 `json:"sector_ratio,omitempty"` // 扇区占比, 0为一个圆周线, 1为一个圆盘示例值: 1默认值: `1` 取值范围: `0` ~ `1` +} + +// CreateBoardWhiteboardNodeReqNodeCompositeShapePie ... +type CreateBoardWhiteboardNodeReqNodeCompositeShapePie struct { + StartRadialLineAngle float64 `json:"start_radial_line_angle,omitempty"` // 开始径向边角度, 水平向右x轴正方向为0度, 顺时针方向角度值递增, 单位度示例值: 30.0 取值范围: `0.0` ~ `360.0` + CentralAngle float64 `json:"central_angle,omitempty"` // 圆心角角度, 角度方向为始径向边逆时针方向, 单位度示例值: 40.0 取值范围: `0.0` ~ `360.0` + Radius float64 `json:"radius,omitempty"` // 半径长度, 单位 px示例值: 10 取值范围: `1` ~ `10000000000` + SectorRatio *float64 `json:"sector_ratio,omitempty"` // 扇区占比, 0为一个圆周线, 1为一个圆盘示例值: 1默认值: `1` 取值范围: `0` ~ `1` +} + +// CreateBoardWhiteboardNodeReqNodeConnector ... +type CreateBoardWhiteboardNodeReqNodeConnector struct { + Start *CreateBoardWhiteboardNodeReqNodeConnectorStart `json:"start,omitempty"` // 连线端点信息 + End *CreateBoardWhiteboardNodeReqNodeConnectorEnd `json:"end,omitempty"` // 连线端点信息 + Captions *CreateBoardWhiteboardNodeReqNodeConnectorCaptions `json:"captions,omitempty"` // 连线文本 + Shape *string `json:"shape,omitempty"` // 连线类型示例值: "straight"可选值有: 直线折线曲线直角折线 长度范围: `0` ~ `100` 字符 + TurningPoints []*CreateBoardWhiteboardNodeReqNodeConnectorTurningPoint `json:"turning_points,omitempty"` // 连线转向点 长度范围: `0` ~ `1000000` + CaptionAutoDirection *bool `json:"caption_auto_direction,omitempty"` // 连线上的文本方向是否自动跟随连线方向示例值: true + CaptionPosition *float64 `json:"caption_position,omitempty"` // 文本在连线上的相对位置, 范围0-1, 0表示在连线的起始点, 1表示在连线的终点示例值: 0.5 取值范围: `0` ~ `1` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptions ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptions struct { + Data []*CreateBoardWhiteboardNodeReqNodeConnectorCaptionsData `json:"data,omitempty"` // 文本 长度范围: `0` ~ `1024` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsData ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsData struct { + Text *string `json:"text,omitempty"` // 文字内容示例值: "文字内容" 长度范围: `0` ~ `1024` 字符 + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "regular"可选值有: 常规加粗 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 + HorizontalAlign *string `json:"horizontal_align,omitempty"` // 水平对齐示例值: "center"可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign *string `json:"vertical_align,omitempty"` // 垂直对齐示例值: "mid"可选值有: 顶部对齐垂直居中底部对齐 + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true + Angle *int64 `json:"angle,omitempty"` // 文字旋转角度, 单位度示例值: 90可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 取值范围: `0` ~ `270` + ThemeTextColorCode *int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值示例值: 0 取值范围: `-2` ~ `100` + ThemeTextBackgroundColorCode *int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值示例值:1 取值范围: `-2` ~ `100` + RichText *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType *int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色(取theme_text_color_code), 1=自定义颜色(取text_color)示例值: 0可选值有: 系统颜色自定义颜色 + TextBackgroundColorType *int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色(取theme_text_background_color_code), 1=自定义颜色(取text_background_color)示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichText ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichText struct { + Paragraphs []*CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 长度范围: `0` ~ `1000` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraph ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别示例值: 0可选值有: 普通段落无序列表有序列表 + Elements []*CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 长度范围: `0` ~ `1000` + Indent *int64 `json:"indent,omitempty"` // 缩进(单位: 字符)示例值: 0 取值范围: `0` ~ `100` + ListBeginIndex *int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1示例值: 0 取值范围: `0` ~ `10000` + Quote *bool `json:"quote,omitempty"` // 引用示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElement ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别示例值: 0可选值有: 文本链接@用户文档 + TextElement *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息 + LinkElement *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息 + MentionDocElement *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElement ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接示例值: "https://bytedance.larkoffice.com" 长度范围: `0` ~ `1000` 字符 + Text *string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接示例值: "https://bytedance.larkoffice.com/wiki/xxxxx" 长度范围: `0` ~ `1000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElement ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 示例值: "ou_da5dfe" + TextStyle *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElement ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeConnectorEnd ... +type CreateBoardWhiteboardNodeReqNodeConnectorEnd struct { + AttachedObject *CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObject `json:"attached_object,omitempty"` // 连接图形信息, 与position参数二选一, 同时设置时attached_object生效 + Position *CreateBoardWhiteboardNodeReqNodeConnectorEndPosition `json:"position,omitempty"` // 连线端点在画布内的坐标, position与attached_object二选一, position与attached_object 同时设置时 attached_object 生效 + ArrowStyle *string `json:"arrow_style,omitempty"` // 连线端点箭头样式示例值: "line_arrow"可选值有: 无箭头样式线型箭头三角形箭头空心三角形箭头圆形箭头空心圆形箭头菱形箭头空心菱形箭头单箭头多箭头精确单箭头零个或多个箭头零个或单个箭头单个或多个箭头x型箭头 长度范围: `0` ~ `100` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObject ... +type CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObject struct { + ID *string `json:"id,omitempty"` // 连接图形的 id示例值: "o1:1" 长度范围: `0` ~ `100` 字符 + SnapTo *string `json:"snap_to,omitempty"` // 连接图形的方向示例值: "auto"可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 长度范围: `0` ~ `100` 字符 + Position *CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObjectPosition ... +type CreateBoardWhiteboardNodeReqNodeConnectorEndAttachedObjectPosition struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位百分比示例值: 0.5 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位百分比示例值: 0.5 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorEndPosition ... +type CreateBoardWhiteboardNodeReqNodeConnectorEndPosition struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位 px示例值: 10 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位 px示例值: 10 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorStart ... +type CreateBoardWhiteboardNodeReqNodeConnectorStart struct { + AttachedObject *CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObject `json:"attached_object,omitempty"` // 连接图形信息, 与position参数二选一, 同时设置时attached_object生效 + Position *CreateBoardWhiteboardNodeReqNodeConnectorStartPosition `json:"position,omitempty"` // 连线端点在画布内的坐标, position与attached_object二选一, position与attached_object 同时设置时 attched_object 生效 + ArrowStyle *string `json:"arrow_style,omitempty"` // 连线端点箭头样式示例值: "line_arrow"可选值有: 无箭头样式线型箭头三角形箭头空心三角形箭头圆形箭头空心圆形箭头菱形箭头空心菱形箭头单箭头多箭头精确单箭头零个或多个箭头零个或单个箭头单个或多个箭头x型箭头 长度范围: `0` ~ `100` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObject ... +type CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObject struct { + ID *string `json:"id,omitempty"` // 连接图形的 id示例值: "o1:1" 长度范围: `0` ~ `100` 字符 + SnapTo *string `json:"snap_to,omitempty"` // 连接图形的方向示例值: "auto"可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 长度范围: `0` ~ `100` 字符 + Position *CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObjectPosition ... +type CreateBoardWhiteboardNodeReqNodeConnectorStartAttachedObjectPosition struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位百分比示例值: 0.5 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位百分比示例值: 0.5 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorStartPosition ... +type CreateBoardWhiteboardNodeReqNodeConnectorStartPosition struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位 px示例值: 10 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位 px示例值: 10 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeConnectorTurningPoint ... +type CreateBoardWhiteboardNodeReqNodeConnectorTurningPoint struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位 px示例值: 10 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位 px示例值: 10 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeImage ... +type CreateBoardWhiteboardNodeReqNodeImage struct { + Token string `json:"token,omitempty"` // 图片 token, 通过云文档下的素材上传接口 [上传素材](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/upload_all) 上传图片后返回的 token示例值: "EeSHb3qs9oSBXoxvw33bqtOsczb" 长度范围: `22` ~ `27` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeLifeline ... +type CreateBoardWhiteboardNodeReqNodeLifeline struct { + Size *float64 `json:"size,omitempty"` // 生命线长度, 单位 px示例值: 10 取值范围: `0` ~ `1000000000` + Type *string `json:"type,omitempty"` // 生命线类型示例值: "actor_lifeline" 长度范围: `0` ~ `1000000` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeMindMapNode ... +type CreateBoardWhiteboardNodeReqNodeMindMapNode struct { + ParentID string `json:"parent_id,omitempty"` // 思维导图节点的父节点, 必须为思维导图节点示例值: "z1:1" 长度范围: `0` ~ `10000000` 字符 + Type *string `json:"type,omitempty"` // 思维导图节点图形类型示例值: "mind_map_text"可选值有: 思维导图文本节点类型思维导图全圆角矩形节点类型思维导图矩形节点类型 + ZIndex *int64 `json:"z_index,omitempty"` // 思维导图节点在兄弟节点中的位置index示例值: 2 取值范围: `0` ~ `10000` + LayoutPosition *string `json:"layout_position,omitempty"` // 子节点相对根节点的方向(根节点下的子节点设置才生效)示例值: "left"可选值有: 思维导图节点在根节点左侧思维导图节点在根节点右侧思维导图节点在根节点上方思维导图节点在根节点下方 + Collapsed *bool `json:"collapsed,omitempty"` // 是否收起子节点示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeMindMapRoot ... +type CreateBoardWhiteboardNodeReqNodeMindMapRoot struct { + Layout *string `json:"layout,omitempty"` // 思维导图布局方式示例值: "left_right"可选值有: 上下布局左右布局左树布局右树布局左右交替平衡树布局垂直时间线布局水平时间线布局 + Type *string `json:"type,omitempty"` // 思维导图根节点图形类型示例值: "mind_map_round_rect"可选值有: 思维导图文本节点类型思维导图全圆角矩形节点类型思维导图矩形节点类型 + LineStyle *string `json:"line_style,omitempty"` // 思维导图图形连接线样式示例值: "round_angle"可选值有: 曲线直角折线圆角折线 +} + +// CreateBoardWhiteboardNodeReqNodePaint ... +type CreateBoardWhiteboardNodeReqNodePaint struct { + Type *string `json:"type,omitempty"` // 画笔类型示例值: "marker"可选值有: 马克笔高亮笔 长度范围: `0` ~ `100` 字符 + Lines []*CreateBoardWhiteboardNodeReqNodePaintLine `json:"lines,omitempty"` // 画板线段, 由系列坐标点表示 长度范围: `1` ~ `100000000` + Width *int64 `json:"width,omitempty"` // 画笔粗细, 单位px示例值: 7 取值范围: `1` ~ `23` + Color *string `json:"color,omitempty"` // 画笔颜色示例值: "#ffffff" 长度范围: `7` ~ `7` 字符 +} + +// CreateBoardWhiteboardNodeReqNodePaintLine ... +type CreateBoardWhiteboardNodeReqNodePaintLine struct { + X *float64 `json:"x,omitempty"` // 点位置x坐标, 单位 px示例值: 10 取值范围: `-1000000000000000000` ~ `1000000000000000000` + Y *float64 `json:"y,omitempty"` // 点位置y坐标, 单位 px示例值: 10 取值范围: `-10000000000000000000` ~ `100000000000000000000` +} + +// CreateBoardWhiteboardNodeReqNodeSection ... +type CreateBoardWhiteboardNodeReqNodeSection struct { + Title *string `json:"title,omitempty"` // 分区标题示例值: "分区" 长度范围: `0` ~ `1024` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeStickyNote ... +type CreateBoardWhiteboardNodeReqNodeStickyNote struct { + UserID *string `json:"user_id,omitempty"` // 用户id示例值: "12345678" + ShowAuthorInfo *bool `json:"show_author_info,omitempty"` // 是否展示用户信息示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeStyle ... +type CreateBoardWhiteboardNodeReqNodeStyle struct { + FillColor *string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + FillOpacity *float64 `json:"fill_opacity,omitempty"` // 填充透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + BorderStyle *string `json:"border_style,omitempty"` // 边框样式示例值: "solid"可选值有: 实线无边框虚线点状虚线 + BorderWidth *string `json:"border_width,omitempty"` // 边框宽度示例值: "narrow"可选值有: 极细细中粗 + BorderOpacity *float64 `json:"border_opacity,omitempty"` // 边框透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + HFlip *bool `json:"h_flip,omitempty"` // 水平翻折示例值: false + VFlip *bool `json:"v_flip,omitempty"` // 垂直翻折示例值: false + BorderColor *string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + ThemeFillColorCode *int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值示例值: 3 取值范围: `-2` ~ `100` + ThemeBorderColorCode *int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值示例值: 4 取值范围: `-2` ~ `100` + FillColorType *int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color示例值: 0可选值有: 系统颜色自定义颜色 + BorderColorType *int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeSvg ... +type CreateBoardWhiteboardNodeReqNodeSvg struct { + SvgCode *string `json:"svg_code,omitempty"` // svg 代码示例值: "" 长度范围: `1` ~ `10000000000000000` 字符 +} + +// CreateBoardWhiteboardNodeReqNodeTable ... +type CreateBoardWhiteboardNodeReqNodeTable struct { + Meta *CreateBoardWhiteboardNodeReqNodeTableMeta `json:"meta,omitempty"` // 元信息 + Title *string `json:"title,omitempty"` // 标题示例值: "表格" 长度范围: `0` ~ `1024` 字符 + Cells []*CreateBoardWhiteboardNodeReqNodeTableCell `json:"cells,omitempty"` // 单元格列表 长度范围: `0` ~ `10000` +} + +// CreateBoardWhiteboardNodeReqNodeTableCell ... +type CreateBoardWhiteboardNodeReqNodeTableCell struct { + RowIndex int64 `json:"row_index,omitempty"` // 行下标, 从 1 开始示例值: 1 取值范围: `1` ~ `10000` + ColIndex int64 `json:"col_index,omitempty"` // 列下标, 从 1 开始示例值: 1 取值范围: `1` ~ `10000` + MergeInfo *CreateBoardWhiteboardNodeReqNodeTableCellMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息 + Children []string `json:"children,omitempty"` // 单元格包含的子节点 id示例值: ["o1:1"] 长度范围: `0` ~ `3000` + Text *CreateBoardWhiteboardNodeReqNodeTableCellText `json:"text,omitempty"` // 单元格内文字 + Style *CreateBoardWhiteboardNodeReqNodeTableCellStyle `json:"style,omitempty"` // 单元格样式, 设置后会覆盖表格样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellMergeInfo ... +type CreateBoardWhiteboardNodeReqNodeTableCellMergeInfo struct { + RowSpan int64 `json:"row_span,omitempty"` // 从当前行索引起被合并的连续行数示例值: 2 取值范围: `1` ~ `10000` + ColSpan int64 `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数示例值: 2 取值范围: `1` ~ `10000` +} + +// CreateBoardWhiteboardNodeReqNodeTableCellStyle ... +type CreateBoardWhiteboardNodeReqNodeTableCellStyle struct { + FillColor *string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + FillOpacity *float64 `json:"fill_opacity,omitempty"` // 填充透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + BorderStyle *string `json:"border_style,omitempty"` // 边框样式示例值: "solid"可选值有: 实线无边框虚线点状虚线 + BorderWidth *string `json:"border_width,omitempty"` // 边框宽度示例值: "narrow"可选值有: 极细细中粗 + BorderOpacity *float64 `json:"border_opacity,omitempty"` // 边框透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + HFlip *bool `json:"h_flip,omitempty"` // 水平翻折示例值: false + VFlip *bool `json:"v_flip,omitempty"` // 垂直翻折示例值: false + BorderColor *string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + ThemeFillColorCode *int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值示例值: 3 取值范围: `-2` ~ `100` + ThemeBorderColorCode *int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值示例值: 4 取值范围: `-2` ~ `100` + FillColorType *int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color示例值: 0可选值有: 系统颜色自定义颜色 + BorderColorType *int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellText ... +type CreateBoardWhiteboardNodeReqNodeTableCellText struct { + Text *string `json:"text,omitempty"` // 文字内容示例值: "文字内容" 长度范围: `0` ~ `1024` 字符 + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "regular"可选值有: 常规加粗 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 + HorizontalAlign *string `json:"horizontal_align,omitempty"` // 水平对齐示例值: "center"可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign *string `json:"vertical_align,omitempty"` // 垂直对齐示例值: "mid"可选值有: 顶部对齐垂直居中底部对齐 + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true + Angle *int64 `json:"angle,omitempty"` // 文字旋转角度, 单位度示例值: 90可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 取值范围: `0` ~ `270` + ThemeTextColorCode *int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值示例值: 0 取值范围: `-2` ~ `100` + ThemeTextBackgroundColorCode *int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值示例值:1 取值范围: `-2` ~ `100` + RichText *CreateBoardWhiteboardNodeReqNodeTableCellTextRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType *int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色(取theme_text_color_code), 1=自定义颜色(取text_color)示例值: 0可选值有: 系统颜色自定义颜色 + TextBackgroundColorType *int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色(取theme_text_background_color_code), 1=自定义颜色(取text_background_color)示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichText ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichText struct { + Paragraphs []*CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 长度范围: `0` ~ `1000` +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraph ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别示例值: 0可选值有: 普通段落无序列表有序列表 + Elements []*CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 长度范围: `0` ~ `1000` + Indent *int64 `json:"indent,omitempty"` // 缩进(单位: 字符)示例值: 0 取值范围: `0` ~ `100` + ListBeginIndex *int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1示例值: 0 取值范围: `0` ~ `10000` + Quote *bool `json:"quote,omitempty"` // 引用示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElement ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别示例值: 0可选值有: 文本链接@用户文档 + TextElement *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息 + LinkElement *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息 + MentionDocElement *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElement ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接示例值: "https://bytedance.larkoffice.com" 长度范围: `0` ~ `1000` 字符 + Text *string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElement ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接示例值: "https://bytedance.larkoffice.com/wiki/xxxxx" 长度范围: `0` ~ `1000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionUserElement ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 示例值: "ou_da5dfe" + TextStyle *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElement ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableCellTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableMeta ... +type CreateBoardWhiteboardNodeReqNodeTableMeta struct { + RowSizes []float64 `json:"row_sizes,omitempty"` // 行高, 单位 px示例值: [10] 长度范围: `1` ~ `100` + ColSizes []float64 `json:"col_sizes,omitempty"` // 列宽, 单位 px示例值: [10] 长度范围: `1` ~ `1000000` + Style *CreateBoardWhiteboardNodeReqNodeTableMetaStyle `json:"style,omitempty"` // 整个表格的样式 + Text *CreateBoardWhiteboardNodeReqNodeTableMetaText `json:"text,omitempty"` // 整个表格的文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaStyle ... +type CreateBoardWhiteboardNodeReqNodeTableMetaStyle struct { + FillColor *string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + FillOpacity *float64 `json:"fill_opacity,omitempty"` // 填充透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + BorderStyle *string `json:"border_style,omitempty"` // 边框样式示例值: "solid"可选值有: 实线无边框虚线点状虚线 + BorderWidth *string `json:"border_width,omitempty"` // 边框宽度示例值: "narrow"可选值有: 极细细中粗 + BorderOpacity *float64 `json:"border_opacity,omitempty"` // 边框透明度, 百分比示例值: 50 取值范围: `0` ~ `100` + HFlip *bool `json:"h_flip,omitempty"` // 水平翻折示例值: false + VFlip *bool `json:"v_flip,omitempty"` // 垂直翻折示例值: false + BorderColor *string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + ThemeFillColorCode *int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值示例值: 3 取值范围: `-2` ~ `100` + ThemeBorderColorCode *int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值示例值: 4 取值范围: `-2` ~ `100` + FillColorType *int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color示例值: 0可选值有: 系统颜色自定义颜色 + BorderColorType *int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaText ... +type CreateBoardWhiteboardNodeReqNodeTableMetaText struct { + Text *string `json:"text,omitempty"` // 文字内容示例值: "文字内容" 长度范围: `0` ~ `1024` 字符 + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "regular"可选值有: 常规加粗 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 + HorizontalAlign *string `json:"horizontal_align,omitempty"` // 水平对齐示例值: "center"可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign *string `json:"vertical_align,omitempty"` // 垂直对齐示例值: "mid"可选值有: 顶部对齐垂直居中底部对齐 + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true + Angle *int64 `json:"angle,omitempty"` // 文字旋转角度, 单位度示例值: 90可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 取值范围: `0` ~ `270` + ThemeTextColorCode *int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值示例值: 0 取值范围: `-2` ~ `100` + ThemeTextBackgroundColorCode *int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值示例值:1 取值范围: `-2` ~ `100` + RichText *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType *int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色(取theme_text_color_code), 1=自定义颜色(取text_color)示例值: 0可选值有: 系统颜色自定义颜色 + TextBackgroundColorType *int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色(取theme_text_background_color_code), 1=自定义颜色(取text_background_color)示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichText ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichText struct { + Paragraphs []*CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 长度范围: `0` ~ `1000` +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraph ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别示例值: 0可选值有: 普通段落无序列表有序列表 + Elements []*CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 长度范围: `0` ~ `1000` + Indent *int64 `json:"indent,omitempty"` // 缩进(单位: 字符)示例值: 0 取值范围: `0` ~ `100` + ListBeginIndex *int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1示例值: 0 取值范围: `0` ~ `10000` + Quote *bool `json:"quote,omitempty"` // 引用示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElement ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别示例值: 0可选值有: 文本链接@用户文档 + TextElement *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息 + LinkElement *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息 + MentionDocElement *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElement ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接示例值: "https://bytedance.larkoffice.com" 长度范围: `0` ~ `1000` 字符 + Text *string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElement ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接示例值: "https://bytedance.larkoffice.com/wiki/xxxxx" 长度范围: `0` ~ `1000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionUserElement ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 示例值: "ou_da5dfe" + TextStyle *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElement ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTableMetaTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeText ... +type CreateBoardWhiteboardNodeReqNodeText struct { + Text *string `json:"text,omitempty"` // 文字内容示例值: "文字内容" 长度范围: `0` ~ `1024` 字符 + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "regular"可选值有: 常规加粗 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 + HorizontalAlign *string `json:"horizontal_align,omitempty"` // 水平对齐示例值: "center"可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign *string `json:"vertical_align,omitempty"` // 垂直对齐示例值: "mid"可选值有: 顶部对齐垂直居中底部对齐 + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#6db5a3" 长度范围: `7` ~ `10` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true + Angle *int64 `json:"angle,omitempty"` // 文字旋转角度, 单位度示例值: 90可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 取值范围: `0` ~ `270` + ThemeTextColorCode *int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值示例值: 0 取值范围: `-2` ~ `100` + ThemeTextBackgroundColorCode *int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值示例值:1 取值范围: `-2` ~ `100` + RichText *CreateBoardWhiteboardNodeReqNodeTextRichText `json:"rich_text,omitempty"` // 富文本(富文本有值时候会覆盖上面的text信息)如果整段文本只有一个样式, 不推荐使用富文本 + TextColorType *int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色(取theme_text_color_code), 1=自定义颜色(取text_color)示例值: 0可选值有: 系统颜色自定义颜色 + TextBackgroundColorType *int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色(取theme_text_background_color_code), 1=自定义颜色(取text_background_color)示例值: 0可选值有: 系统颜色自定义颜色 +} + +// CreateBoardWhiteboardNodeReqNodeTextRichText ... +type CreateBoardWhiteboardNodeReqNodeTextRichText struct { + Paragraphs []*CreateBoardWhiteboardNodeReqNodeTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 长度范围: `0` ~ `1000` +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraph ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别示例值: 0可选值有: 普通段落无序列表有序列表 + Elements []*CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElement `json:"elements,omitempty"` // 段落的元素列表 长度范围: `0` ~ `1000` + Indent *int64 `json:"indent,omitempty"` // 缩进(单位: 字符)示例值: 0 取值范围: `0` ~ `100` + ListBeginIndex *int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1示例值: 0 取值范围: `0` ~ `10000` + Quote *bool `json:"quote,omitempty"` // 引用示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElement ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别示例值: 0可选值有: 文本超链接@用户文档 + TextElement *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本元素信息(当前元素为文本类别时候需要填写当前字段) + LinkElement *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息(当前元素为链接类别时候需要有当前字段) + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息(当前元素为@用户类别时候需要有当前字段) + MentionDocElement *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息(当前元素为文档类别时候需要有当前字段) +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElement ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接示例值: "https://bytedance.larkoffice.com" 长度范围: `0` ~ `1000` 字符 + Text *string `json:"text,omitempty"` // 超链接的文字(为空时会默认文字为超链接)示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重 (regular: 常规, bold: 加粗)示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElement ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接示例值: "https://bytedance.larkoffice.com/wiki/xxxxx" 长度范围: `0` ~ `1000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重(regular: 常规, bold: 加粗)示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionUserElement ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 示例值: "ou_da5dfe" + TextStyle *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionUserElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: true + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElement ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字(文字中不能包含换行符)示例值: "示例文案" 长度范围: `0` ~ `10000` 字符 + TextStyle *CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElementTextStyle ... +type CreateBoardWhiteboardNodeReqNodeTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight *string `json:"font_weight,omitempty"` // 文字字重(可选值有: regular: 常规, bold: 加粗)示例值: "bold" 长度范围: `0` ~ `10` 字符 + FontSize *int64 `json:"font_size,omitempty"` // 文字大小, 单位 px, 默认为 14 px示例值: 14 取值范围: `0` ~ `1000` + TextColor *string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + TextBackgroundColor *string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值示例值: "#000000" 长度范围: `7` ~ `7` 字符 + LineThrough *bool `json:"line_through,omitempty"` // 是否存在删除线示例值: true + Underline *bool `json:"underline,omitempty"` // 是否存在下划线示例值: false + Italic *bool `json:"italic,omitempty"` // 是否斜体示例值: true +} + +// CreateBoardWhiteboardNodeResp ... +type CreateBoardWhiteboardNodeResp struct { + IDs []string `json:"ids,omitempty"` // 所创建的节点 id 列表 + ClientToken string `json:"client_token,omitempty"` // 操作的唯一标识, 更新请求中使用此值表示幂等的进行此次更新 +} + +// createBoardWhiteboardNodeResp ... +type createBoardWhiteboardNodeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateBoardWhiteboardNodeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_board_whiteboard_node_create_plantuml.go b/api_board_whiteboard_node_create_plantuml.go new file mode 100644 index 00000000..56acad60 --- /dev/null +++ b/api_board_whiteboard_node_create_plantuml.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateBoardWhiteboardNodePlantuml 用户可以将PlantUml/Mermaid图表导入画板进行协同编辑 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create_plantuml +func (r *BoardService) CreateBoardWhiteboardNodePlantuml(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) { + if r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Board#CreateBoardWhiteboardNodePlantuml mock enable") + return r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Board", + API: "CreateBoardWhiteboardNodePlantuml", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/nodes/plantuml", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createBoardWhiteboardNodePlantumlResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBoardCreateBoardWhiteboardNodePlantuml mock BoardCreateBoardWhiteboardNodePlantuml method +func (r *Mock) MockBoardCreateBoardWhiteboardNodePlantuml(f func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error)) { + r.mockBoardCreateBoardWhiteboardNodePlantuml = f +} + +// UnMockBoardCreateBoardWhiteboardNodePlantuml un-mock BoardCreateBoardWhiteboardNodePlantuml method +func (r *Mock) UnMockBoardCreateBoardWhiteboardNodePlantuml() { + r.mockBoardCreateBoardWhiteboardNodePlantuml = nil +} + +// CreateBoardWhiteboardNodePlantumlReq ... +type CreateBoardWhiteboardNodePlantumlReq struct { + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板唯一标识, 可通过云文档下的文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id示例值: "VF5Bwo7Z5icC0bk8EWbb57Vbckh" 长度范围: `22` ~ `27` 字符 + PlantUmlCode string `json:"plant_uml_code,omitempty"` // plant uml 代码示例值: "@startuml\nAlice -> Bob: Authentication Request\nBob --> Alice: Authentication Response\n@enduml" 长度范围: `1` ~ `1000000` 字符 + StyleType *int64 `json:"style_type,omitempty"` // 画板样式(默认为2 经典样式)示例值: 1可选值有: 画板样式(解析之后为多个画板节点, 粘贴到画板中, 不可对语法进行二次编辑)经典样式(解析之后为一张图片, 粘贴到画板中, 可对语法进行二次编辑)(只有PlantUml语法支持经典样式) + SyntaxType *int64 `json:"syntax_type,omitempty"` // 语法类型(必传)示例值: 1可选值有: 未知Plantuml解析Mermaid解析 + DiagramType *int64 `json:"diagram_type,omitempty"` // PlantUml语法类型(传0会自动识别语法类型, plantUML语法补充超集GML不可自动识别)当syntax_type为2(Mermaid解析)时, diagram_type传 0, 默认为 0示例值: 0可选值有: 未知思维导图时序图活动图类图ER流程图用例图组件图ai流式生成流程图ai流式生成时序图plantUML语法补充超集GML +} + +// CreateBoardWhiteboardNodePlantumlResp ... +type CreateBoardWhiteboardNodePlantumlResp struct { + NodeID string `json:"node_id,omitempty"` // 创建生成的plant uml节点id +} + +// createBoardWhiteboardNodePlantumlResp ... +type createBoardWhiteboardNodePlantumlResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateBoardWhiteboardNodePlantumlResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_board_whiteboard_theme.go b/api_board_whiteboard_theme.go new file mode 100644 index 00000000..a35780f8 --- /dev/null +++ b/api_board_whiteboard_theme.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetBoardWhiteboardTheme 获取画板主题, 不同主题下有不同的默认配色, 具体主题介绍可以参考[主题简介](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/theme-introduction) 。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/theme +func (r *BoardService) GetBoardWhiteboardTheme(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) { + if r.cli.mock.mockBoardGetBoardWhiteboardTheme != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Board#GetBoardWhiteboardTheme mock enable") + return r.cli.mock.mockBoardGetBoardWhiteboardTheme(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Board", + API: "GetBoardWhiteboardTheme", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/theme", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getBoardWhiteboardThemeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBoardGetBoardWhiteboardTheme mock BoardGetBoardWhiteboardTheme method +func (r *Mock) MockBoardGetBoardWhiteboardTheme(f func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error)) { + r.mockBoardGetBoardWhiteboardTheme = f +} + +// UnMockBoardGetBoardWhiteboardTheme un-mock BoardGetBoardWhiteboardTheme method +func (r *Mock) UnMockBoardGetBoardWhiteboardTheme() { + r.mockBoardGetBoardWhiteboardTheme = nil +} + +// GetBoardWhiteboardThemeReq ... +type GetBoardWhiteboardThemeReq struct { + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板标识, 可通过云文档下的文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id示例值: "Ud8xwWH01hO5mwbakqHbHeqmcCI" +} + +// GetBoardWhiteboardThemeResp ... +type GetBoardWhiteboardThemeResp struct { + Theme string `json:"theme,omitempty"` // 主题可选值有: 经典主题简约灰主题复古主题炫彩主题简约蓝主题默认主题 +} + +// getBoardWhiteboardThemeResp ... +type getBoardWhiteboardThemeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetBoardWhiteboardThemeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_board_whiteboard_update_theme.go b/api_board_whiteboard_update_theme.go new file mode 100644 index 00000000..f7f45172 --- /dev/null +++ b/api_board_whiteboard_update_theme.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateBoardWhiteboardTheme 更新画板主题, 具体主题介绍可以参考[主题简介](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/theme-introduction) 。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/update_theme +func (r *BoardService) UpdateBoardWhiteboardTheme(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) { + if r.cli.mock.mockBoardUpdateBoardWhiteboardTheme != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Board#UpdateBoardWhiteboardTheme mock enable") + return r.cli.mock.mockBoardUpdateBoardWhiteboardTheme(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Board", + API: "UpdateBoardWhiteboardTheme", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/update_theme", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateBoardWhiteboardThemeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockBoardUpdateBoardWhiteboardTheme mock BoardUpdateBoardWhiteboardTheme method +func (r *Mock) MockBoardUpdateBoardWhiteboardTheme(f func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error)) { + r.mockBoardUpdateBoardWhiteboardTheme = f +} + +// UnMockBoardUpdateBoardWhiteboardTheme un-mock BoardUpdateBoardWhiteboardTheme method +func (r *Mock) UnMockBoardUpdateBoardWhiteboardTheme() { + r.mockBoardUpdateBoardWhiteboardTheme = nil +} + +// UpdateBoardWhiteboardThemeReq ... +type UpdateBoardWhiteboardThemeReq struct { + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板 id, 唯一标识, 可通过云文档下的文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id示例值: "KRy1wHU6dhmdWIbgkSIbqikMcQc" 长度范围: `22` ~ `27` 字符 + Theme *string `json:"theme,omitempty"` // 主题名称, 可选值有 classic、minimalist_gray、retro、vibrant_color、default示例值: "classic" 长度范围: `1` ~ `100000` 字符 +} + +// UpdateBoardWhiteboardThemeResp ... +type UpdateBoardWhiteboardThemeResp struct { +} + +// updateBoardWhiteboardThemeResp ... +type updateBoardWhiteboardThemeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateBoardWhiteboardThemeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_bot_add.go b/api_bot_add.go index 3f28d44b..6e5b9be8 100644 --- a/api_bot_add.go +++ b/api_bot_add.go @@ -63,7 +63,8 @@ type AddBotToChatReq struct { } // AddBotToChatResp ... -type AddBotToChatResp struct{} +type AddBotToChatResp struct { +} // addBotToChatResp ... type addBotToChatResp struct { diff --git a/api_bot_info.go b/api_bot_info.go index d0ccba56..dd1acc4c 100644 --- a/api_bot_info.go +++ b/api_bot_info.go @@ -59,7 +59,8 @@ func (r *Mock) UnMockBotGetBotInfo() { } // GetBotInfoReq ... -type GetBotInfoReq struct{} +type GetBotInfoReq struct { +} // GetBotInfoResp ... type GetBotInfoResp struct { diff --git a/api_calendar_acl_delete.go b/api_calendar_acl_delete.go index bc9e2183..07d78c56 100644 --- a/api_calendar_acl_delete.go +++ b/api_calendar_acl_delete.go @@ -68,7 +68,8 @@ type DeleteCalendarACLReq struct { } // DeleteCalendarACLResp ... -type DeleteCalendarACLResp struct{} +type DeleteCalendarACLResp struct { +} // deleteCalendarACLResp ... type deleteCalendarACLResp struct { diff --git a/api_calendar_acl_subscribe.go b/api_calendar_acl_subscribe.go index ebe0bff8..c2b30d1b 100644 --- a/api_calendar_acl_subscribe.go +++ b/api_calendar_acl_subscribe.go @@ -64,7 +64,8 @@ type SubscribeCalendarACLReq struct { } // SubscribeCalendarACLResp ... -type SubscribeCalendarACLResp struct{} +type SubscribeCalendarACLResp struct { +} // subscribeCalendarACLResp ... type subscribeCalendarACLResp struct { diff --git a/api_calendar_acl_unsubscribe.go b/api_calendar_acl_unsubscribe.go index 29d4719b..8d8ce9ad 100644 --- a/api_calendar_acl_unsubscribe.go +++ b/api_calendar_acl_unsubscribe.go @@ -64,7 +64,8 @@ type UnsubscribeCalendarACLReq struct { } // UnsubscribeCalendarACLResp ... -type UnsubscribeCalendarACLResp struct{} +type UnsubscribeCalendarACLResp struct { +} // unsubscribeCalendarACLResp ... type unsubscribeCalendarACLResp struct { diff --git a/api_calendar_calendar_delete.go b/api_calendar_calendar_delete.go index cda1c718..e4e70f34 100644 --- a/api_calendar_calendar_delete.go +++ b/api_calendar_calendar_delete.go @@ -67,7 +67,8 @@ type DeleteCalendarReq struct { } // DeleteCalendarResp ... -type DeleteCalendarResp struct{} +type DeleteCalendarResp struct { +} // deleteCalendarResp ... type deleteCalendarResp struct { diff --git a/api_calendar_calendar_event_attendee_delete.go b/api_calendar_calendar_event_attendee_delete.go index 652dfe2e..2177bd04 100644 --- a/api_calendar_calendar_event_attendee_delete.go +++ b/api_calendar_calendar_event_attendee_delete.go @@ -74,8 +74,18 @@ type DeleteCalendarEventAttendeeReq struct { IsEnableAdmin *bool `json:"is_enable_admin,omitempty"` // 是否启用会议室管理员身份(需先在管理后台设置某人为会议室管理员)。可选值有: true: 启用- false(默认值): 不启用示例值: false } +// DeleteCalendarEventAttendeeReqDeleteID ... +type DeleteCalendarEventAttendeeReqDeleteID struct { + Type *CalendarEventAttendeeType `json:"type,omitempty"` // 参与人类型。示例值: "user"可选值有: 用户群组会议室外部邮箱 + UserID *string `json:"user_id,omitempty"` // 用户 ID。当选择用户类型参与人(type 取值为 user)时, 需要传入该参数。传入的用户 ID 类型需要和 user_id_type 的值保持一致。示例值: "ou_xxxxxxxx" + ChatID *string `json:"chat_id,omitempty"` // 群组 ID。当选择群组类型参与人(type 取值为 chat)时, 需要传入该参数。示例值: "oc_xxxxxxxxx" + RoomID *string `json:"room_id,omitempty"` // 会议室 ID。当选择会议室类型参与人(type 取值为 resource)时, 需要传入该参数。示例值: "omm_xxxxxxxx" + ThirdPartyEmail *string `json:"third_party_email,omitempty"` // 邮箱地址。当选择外部邮箱类型参与人(type 取值为 third_party)时, 需要传入该参数。示例值: "wangwu@email.com" +} + // DeleteCalendarEventAttendeeResp ... -type DeleteCalendarEventAttendeeResp struct{} +type DeleteCalendarEventAttendeeResp struct { +} // deleteCalendarEventAttendeeResp ... type deleteCalendarEventAttendeeResp struct { diff --git a/api_calendar_calendar_event_delete.go b/api_calendar_calendar_event_delete.go index dde35678..0a71df82 100644 --- a/api_calendar_calendar_event_delete.go +++ b/api_calendar_calendar_event_delete.go @@ -70,7 +70,8 @@ type DeleteCalendarEventReq struct { } // DeleteCalendarEventResp ... -type DeleteCalendarEventResp struct{} +type DeleteCalendarEventResp struct { +} // deleteCalendarEventResp ... type deleteCalendarEventResp struct { diff --git a/api_calendar_calendar_event_meeting_chat_delete.go b/api_calendar_calendar_event_meeting_chat_delete.go index 7168c2c6..27012832 100644 --- a/api_calendar_calendar_event_meeting_chat_delete.go +++ b/api_calendar_calendar_event_meeting_chat_delete.go @@ -70,7 +70,8 @@ type DeleteCalendarEventMeetingChatReq struct { } // DeleteCalendarEventMeetingChatResp ... -type DeleteCalendarEventMeetingChatResp struct{} +type DeleteCalendarEventMeetingChatResp struct { +} // deleteCalendarEventMeetingChatResp ... type deleteCalendarEventMeetingChatResp struct { diff --git a/api_calendar_calendar_event_meeting_minute_create.go b/api_calendar_calendar_event_meeting_minute_create.go new file mode 100644 index 00000000..d76ff266 --- /dev/null +++ b/api_calendar_calendar_event_meeting_minute_create.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCalendarEventMeetingMinute 调用该接口为指定的日程创建会议纪要。纪要以文档形式展示, 成功创建后会返回纪要文档 URL。 +// +// ## 注意事项 +// - 所操作的日历需要是当前身份(身份由 Header Authorization 的 Token 类型决定)的主日历, 且当前身份具有日历的 writer 权限(即编辑权限)。 +// - 所操作的日程内至少需要有 1 个参与人, 且参与人权限不能为 none(即无法查看参与人列表)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-meeting_minute/create +// new doc: https://open.feishu.cn/document/calendar-v4/calendar-event-meeting_minute/create +func (r *CalendarService) CreateCalendarEventMeetingMinute(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) { + if r.cli.mock.mockCalendarCreateCalendarEventMeetingMinute != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#CreateCalendarEventMeetingMinute mock enable") + return r.cli.mock.mockCalendarCreateCalendarEventMeetingMinute(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Calendar", + API: "CreateCalendarEventMeetingMinute", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/calendar/v4/calendars/:calendar_id/events/:event_id/meeting_minute", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createCalendarEventMeetingMinuteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCalendarCreateCalendarEventMeetingMinute mock CalendarCreateCalendarEventMeetingMinute method +func (r *Mock) MockCalendarCreateCalendarEventMeetingMinute(f func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error)) { + r.mockCalendarCreateCalendarEventMeetingMinute = f +} + +// UnMockCalendarCreateCalendarEventMeetingMinute un-mock CalendarCreateCalendarEventMeetingMinute method +func (r *Mock) UnMockCalendarCreateCalendarEventMeetingMinute() { + r.mockCalendarCreateCalendarEventMeetingMinute = nil +} + +// CreateCalendarEventMeetingMinuteReq ... +type CreateCalendarEventMeetingMinuteReq struct { + CalendarID string `path:"calendar_id" json:"-"` // 日历 ID。调用[查询主日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/primary)接口, 获取当前身份的主日历 ID。示例值: "feishu.cn_xxx@group.calendar.feishu.cn" + EventID string `path:"event_id" json:"-"` // 日程 ID。调用[搜索日程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/search)接口, 在指定日历内搜索日程并获取日程 ID。示例值: "75d28f9b-e35c-4230-8a83-123_0" +} + +// CreateCalendarEventMeetingMinuteResp ... +type CreateCalendarEventMeetingMinuteResp struct { + DocURL string `json:"doc_url,omitempty"` // 文档 URL +} + +// createCalendarEventMeetingMinuteResp ... +type createCalendarEventMeetingMinuteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCalendarEventMeetingMinuteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_calendar_calendar_event_reply.go b/api_calendar_calendar_event_reply.go index 6e194589..26db2a3c 100644 --- a/api_calendar_calendar_event_reply.go +++ b/api_calendar_calendar_event_reply.go @@ -67,7 +67,8 @@ type ReplyCalendarEventReq struct { } // ReplyCalendarEventResp ... -type ReplyCalendarEventResp struct{} +type ReplyCalendarEventResp struct { +} // replyCalendarEventResp ... type replyCalendarEventResp struct { diff --git a/api_calendar_calendar_event_subscribe.go b/api_calendar_calendar_event_subscribe.go index 6dff7abe..c114d1d0 100644 --- a/api_calendar_calendar_event_subscribe.go +++ b/api_calendar_calendar_event_subscribe.go @@ -64,7 +64,8 @@ type SubscribeCalendarEventReq struct { } // SubscribeCalendarEventResp ... -type SubscribeCalendarEventResp struct{} +type SubscribeCalendarEventResp struct { +} // subscribeCalendarEventResp ... type subscribeCalendarEventResp struct { diff --git a/api_calendar_calendar_event_unsubscribe.go b/api_calendar_calendar_event_unsubscribe.go index 857acbc2..372e8a8b 100644 --- a/api_calendar_calendar_event_unsubscribe.go +++ b/api_calendar_calendar_event_unsubscribe.go @@ -64,7 +64,8 @@ type UnsubscribeCalendarEventReq struct { } // UnsubscribeCalendarEventResp ... -type UnsubscribeCalendarEventResp struct{} +type UnsubscribeCalendarEventResp struct { +} // unsubscribeCalendarEventResp ... type unsubscribeCalendarEventResp struct { diff --git a/api_calendar_calendar_mget.go b/api_calendar_calendar_mget.go new file mode 100644 index 00000000..ab4f574b --- /dev/null +++ b/api_calendar_calendar_mget.go @@ -0,0 +1,93 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// MGetCalendar 调用该接口批量查询指定日历的标题、描述、公开范围等信息。 +// +// - 如果使用应用身份调用该接口, 则需要确保应用开启了[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 当前身份必须对日历有访问权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/mget +// new doc: https://open.feishu.cn/document/calendar-v4/calendar/mget-3 +func (r *CalendarService) MGetCalendar(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) { + if r.cli.mock.mockCalendarMGetCalendar != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#MGetCalendar mock enable") + return r.cli.mock.mockCalendarMGetCalendar(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Calendar", + API: "MGetCalendar", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/calendar/v4/calendars/mget", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(mGetCalendarResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCalendarMGetCalendar mock CalendarMGetCalendar method +func (r *Mock) MockCalendarMGetCalendar(f func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error)) { + r.mockCalendarMGetCalendar = f +} + +// UnMockCalendarMGetCalendar un-mock CalendarMGetCalendar method +func (r *Mock) UnMockCalendarMGetCalendar() { + r.mockCalendarMGetCalendar = nil +} + +// MGetCalendarReq ... +type MGetCalendarReq struct { + CalendarIDs []string `json:"calendar_ids,omitempty"` // 日历 ID 列表, 多个 ID 传入格式为 `["xxx1", "xxx2"]`。创建共享日历时会返回日历 ID。你也可以调用以下接口获取某一日历的 ID。- [查询主日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/primary)- [查询日历列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/list)- [搜索日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/search)示例值: ["feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn"] 长度范围: `1` ~ `10` +} + +// MGetCalendarResp ... +type MGetCalendarResp struct { + Calendars []*MGetCalendarRespCalendar `json:"calendars,omitempty"` // 日历列表。 +} + +// MGetCalendarRespCalendar ... +type MGetCalendarRespCalendar struct { + CalendarID string `json:"calendar_id,omitempty"` // 日历 ID。后续可以通过该 ID 查询、更新或删除日历信息。更多信息参见[日历 ID 字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)。 + Summary string `json:"summary,omitempty"` // 日历标题。 + Description string `json:"description,omitempty"` // 日历描述。 + Permissions CalendarPermission `json:"permissions,omitempty"` // 日历公开范围。可选值有: 私密仅展示忙闲信息公开, 他人可查看日程详情 + Color int64 `json:"color,omitempty"` // 日历颜色, 由颜色 RGB 值的 int32 表示。实际在客户端展示时会映射到色板上最接近的一种颜色, 且该字段仅对当前身份生效。 + Type CalendarType `json:"type,omitempty"` // 日历类型。可选值有: 未知类型用户或应用的主日历由用户或应用创建的共享日历用户绑定的谷歌日历会议室日历用户绑定的 Exchange 日历 + SummaryAlias string `json:"summary_alias,omitempty"` // 日历备注名, 仅对当前身份生效。 + IsDeleted bool `json:"is_deleted,omitempty"` // 对于当前身份, 日历是否已经被标记为删除。 + IsThirdParty bool `json:"is_third_party,omitempty"` // 当前日历是否是第三方数据。三方日历及日程只支持读, 不支持写入。 + Role CalendarRole `json:"role,omitempty"` // 当前身份对于该日历的访问权限。可选值有: 未知权限游客, 只能看到忙碌、空闲信息订阅者, 可查看所有日程详情编辑者, 可创建及修改日程管理员, 可管理日历及共享设置 +} + +// mGetCalendarResp ... +type mGetCalendarResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *MGetCalendarResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_calendar_calendar_subscription.go b/api_calendar_calendar_subscription.go index 22f52a35..c8f7b05d 100644 --- a/api_calendar_calendar_subscription.go +++ b/api_calendar_calendar_subscription.go @@ -57,10 +57,12 @@ func (r *Mock) UnMockCalendarSubscribeCalendarChangeEvent() { } // SubscribeCalendarChangeEventReq ... -type SubscribeCalendarChangeEventReq struct{} +type SubscribeCalendarChangeEventReq struct { +} // SubscribeCalendarChangeEventResp ... -type SubscribeCalendarChangeEventResp struct{} +type SubscribeCalendarChangeEventResp struct { +} // subscribeCalendarChangeEventResp ... type subscribeCalendarChangeEventResp struct { diff --git a/api_calendar_calendar_timeoff_event_delete.go b/api_calendar_calendar_timeoff_event_delete.go index 79dea6d0..1970ff1f 100644 --- a/api_calendar_calendar_timeoff_event_delete.go +++ b/api_calendar_calendar_timeoff_event_delete.go @@ -65,7 +65,8 @@ type DeleteCalendarTimeoffEventReq struct { } // DeleteCalendarTimeoffEventResp ... -type DeleteCalendarTimeoffEventResp struct{} +type DeleteCalendarTimeoffEventResp struct { +} // deleteCalendarTimeoffEventResp ... type deleteCalendarTimeoffEventResp struct { diff --git a/api_calendar_calendar_unsubscribe.go b/api_calendar_calendar_unsubscribe.go index b6ed4e97..8903a07e 100644 --- a/api_calendar_calendar_unsubscribe.go +++ b/api_calendar_calendar_unsubscribe.go @@ -67,7 +67,8 @@ type UnsubscribeCalendarReq struct { } // UnsubscribeCalendarResp ... -type UnsubscribeCalendarResp struct{} +type UnsubscribeCalendarResp struct { +} // unsubscribeCalendarResp ... type unsubscribeCalendarResp struct { diff --git a/api_calendar_calendar_unsubscription.go b/api_calendar_calendar_unsubscription.go index 9ce9dae0..1ded2b02 100644 --- a/api_calendar_calendar_unsubscription.go +++ b/api_calendar_calendar_unsubscription.go @@ -57,10 +57,12 @@ func (r *Mock) UnMockCalendarUnsubscribeCalendarChangeEvent() { } // UnsubscribeCalendarChangeEventReq ... -type UnsubscribeCalendarChangeEventReq struct{} +type UnsubscribeCalendarChangeEventReq struct { +} // UnsubscribeCalendarChangeEventResp ... -type UnsubscribeCalendarChangeEventResp struct{} +type UnsubscribeCalendarChangeEventResp struct { +} // unsubscribeCalendarChangeEventResp ... type unsubscribeCalendarChangeEventResp struct { diff --git a/api_calendar_exchange_binding_delete.go b/api_calendar_exchange_binding_delete.go index b21c8d53..30092c59 100644 --- a/api_calendar_exchange_binding_delete.go +++ b/api_calendar_exchange_binding_delete.go @@ -64,7 +64,8 @@ type DeleteCalendarExchangeBindingReq struct { } // DeleteCalendarExchangeBindingResp ... -type DeleteCalendarExchangeBindingResp struct{} +type DeleteCalendarExchangeBindingResp struct { +} // deleteCalendarExchangeBindingResp ... type deleteCalendarExchangeBindingResp struct { diff --git a/api_calendar_freebusy_batch_query.go b/api_calendar_freebusy_batch_query.go new file mode 100644 index 00000000..f4cac82d --- /dev/null +++ b/api_calendar_freebusy_batch_query.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryCalendarFreebusy 根据user id列表, 批量查询指定用户的主日历在指定时间段内的忙碌时间段信息, 适用于团队协作中, 快速了解成员忙闲状态以安排会议或任务的场景。 +// +// 如果使用应用身份调用该接口, 则需要确保应用开启了[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/freebusy/batch +// new doc: https://open.feishu.cn/document/calendar-v4/calendar/batch +func (r *CalendarService) BatchQueryCalendarFreebusy(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) { + if r.cli.mock.mockCalendarBatchQueryCalendarFreebusy != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#BatchQueryCalendarFreebusy mock enable") + return r.cli.mock.mockCalendarBatchQueryCalendarFreebusy(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Calendar", + API: "BatchQueryCalendarFreebusy", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/calendar/v4/freebusy/batch", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchQueryCalendarFreebusyResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCalendarBatchQueryCalendarFreebusy mock CalendarBatchQueryCalendarFreebusy method +func (r *Mock) MockCalendarBatchQueryCalendarFreebusy(f func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error)) { + r.mockCalendarBatchQueryCalendarFreebusy = f +} + +// UnMockCalendarBatchQueryCalendarFreebusy un-mock CalendarBatchQueryCalendarFreebusy method +func (r *Mock) UnMockCalendarBatchQueryCalendarFreebusy() { + r.mockCalendarBatchQueryCalendarFreebusy = nil +} + +// BatchQueryCalendarFreebusyReq ... +type BatchQueryCalendarFreebusyReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TimeMin string `json:"time_min,omitempty"` // 获取忙闲信息的开始时间, [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) date_time 格式。注意: time_min 与 time_max 的时间间隔不能超过 2 周。示例值: "2020-10-28T12:00:00+08:00" + TimeMax string `json:"time_max,omitempty"` // 获取忙闲信息的结束时间, [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) date_time 格式。注意: time_min 与 time_max 的时间间隔不能超过 2 周。示例值: "2020-10-29T12:00:00+08:00" + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表。多个 ID 传入格式为 `["ou_c186b6833e2d5faf2bc587e71ddabcef", "ou_7d8a6e6df7621556ce0d21922b676706"]`。需要传入与查询参数 user_id_type 相匹配的 id。例如, `user_id_type=open_id` 时, 需要传入用户的 open_id。了解用户 ID 参见[用户相关的 ID 概念](https://open.feishu.cn/document/home/user-identity-introduction/introduction)。示例值: ["ou_c186b6833e2d5faf2bc587e71ddabcef"] 长度范围: `1` ~ `10` + IncludeExternalCalendar *bool `json:"include_external_calendar,omitempty"` // 是否包含用户绑定的三方日历中的日程忙闲。取值: true(默认值): 包含- false: 不包含示例值: true + OnlyBusy *bool `json:"only_busy,omitempty"` // 是否只查询忙碌日程信息。取值: true(默认值): 是, 查询结果不包含空闲日程。- false: 否, 查询结果包含空闲日程。示例值: true + NeedRsvpStatus *bool `json:"need_rsvp_status,omitempty"` // 是否需要RSVP状态信息示例值: true +} + +// BatchQueryCalendarFreebusyResp ... +type BatchQueryCalendarFreebusyResp struct { + FreebusyLists []*BatchQueryCalendarFreebusyRespFreebusyList `json:"freebusy_lists,omitempty"` // 用户忙闲信息列表。 +} + +// BatchQueryCalendarFreebusyRespFreebusyList ... +type BatchQueryCalendarFreebusyRespFreebusyList struct { + FreebusyItems []*BatchQueryCalendarFreebusyRespFreebusyListFreebusyItem `json:"freebusy_items,omitempty"` // 在请求的时间区间内的忙闲时间段信息。 + UserID string `json:"user_id,omitempty"` // 日历创建者的用户 ID, 根据查询参数 user_id_type 设置的 ID 类型进行返回。 +} + +// BatchQueryCalendarFreebusyRespFreebusyListFreebusyItem ... +type BatchQueryCalendarFreebusyRespFreebusyListFreebusyItem struct { + StartTime string `json:"start_time,omitempty"` // 忙闲信息开始时间, [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) date_time 格式。 + EndTime string `json:"end_time,omitempty"` // 忙闲信息结束时间, [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) date_time 格式。 + RsvpStatus string `json:"rsvp_status,omitempty"` // 用户的RSVP状态可选值有: 参与人尚未回复状态, 或表示会议室预约中参与人回复接受, 或表示会议室预约成功参与人回复待定参与人回复拒绝, 或表示会议室预约失败参与人或会议室已经从日程中被移除 +} + +// batchQueryCalendarFreebusyResp ... +type batchQueryCalendarFreebusyResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCalendarFreebusyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_calendar_meeting_room_freebusy_batch_get.go b/api_calendar_meeting_room_freebusy_batch_get.go index 8e969dac..204231e1 100644 --- a/api_calendar_meeting_room_freebusy_batch_get.go +++ b/api_calendar_meeting_room_freebusy_batch_get.go @@ -21,14 +21,9 @@ import ( "context" ) -// BatchGetCalendarMeetingRoomFreebusy 调用该接口获取指定会议室的忙碌、空闲日程信息。 -// -// 查询结果中: -// - 非重复日程只有唯一的实例信息。 -// - 重复日程可能存在多个实例信息, 根据日程重复规则和时间范围进行扩展。建议查询的时间区间为 30 天内。 +// BatchGetCalendarMeetingRoomFreebusy 该接口用于获取指定会议室的忙闲日程实例列表。非重复日程只有唯一实例;重复日程可能存在多个实例, 依据重复规则和时间范围扩展。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uIDOyUjLygjM14iM4ITN -// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/query-room-availability func (r *CalendarService) BatchGetCalendarMeetingRoomFreebusy(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) { if r.cli.mock.mockCalendarBatchGetCalendarMeetingRoomFreebusy != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#BatchGetCalendarMeetingRoomFreebusy mock enable") @@ -43,7 +38,6 @@ func (r *CalendarService) BatchGetCalendarMeetingRoomFreebusy(ctx context.Contex Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, - NeedUserAccessToken: true, } resp := new(batchGetCalendarMeetingRoomFreebusyResp) @@ -63,37 +57,36 @@ func (r *Mock) UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() { // BatchGetCalendarMeetingRoomFreebusyReq ... type BatchGetCalendarMeetingRoomFreebusyReq struct { - RoomIDs []string `query:"room_ids" json:"-"` // 会议室 ID。你可以通过[查询会议室列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room/list)或[搜索会议室](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room/search)接口获取指定会议室 ID。 1. room_ids个数不要超过20。 2. GET 请求中传入多个会议室 ID 的格式示例为 `room_ids=omm_83d09ad4f6896e02029a6a075f71xxxx&room_ids=omm_eada1d61a550955240c28757e7dexxxx`。 - TimeMin string `query:"time_min" json:"-"` // 查询的起始时间, 需要遵循 [RFC3339](https://tools.ietf.org/html/rfc3339) 格式, 示例: 2019-09-04T08:45:00+08:00。 注意: 传入该参数时需要进行 URL 编码。 - TimeMax string `query:"time_max" json:"-"` // 查询的结束时间, 需要遵循 [RFC3339](https://tools.ietf.org/html/rfc3339) 格式, 示例: 2019-09-04T09:45:00+08:00。 注意: 传入该参数时需要进行 URL 编码。 + RoomIDs []string `query:"room_ids" json:"-"` // 用于查询指定会议室的 ID + TimeMin string `query:"time_min" json:"-"` // 查询会议室忙闲的起始时间, 需要遵循格式 [RFC3339](https://tools.ietf.org/html/rfc3339), 需要进行URL Encode + TimeMax string `query:"time_max" json:"-"` // 查询会议室忙闲的结束时间, 需要遵循格式 [RFC3339](https://tools.ietf.org/html/rfc3339), 需要进行URL Encode } // BatchGetCalendarMeetingRoomFreebusyResp ... type BatchGetCalendarMeetingRoomFreebusyResp struct { - TimeMin string `json:"time_min,omitempty"` // 查询会议室忙闲的起始时间。 - TimeMax string `json:"time_max,omitempty"` // 查询会议室忙闲的结束时间。 - FreeBusy map[string]*BatchGetCalendarMeetingRoomFreebusyRespFreeBusy `json:"free_busy,omitempty"` // 会议室忙闲信息列表。 + TimeMin string `json:"time_min,omitempty"` // 查询会议室忙闲的起始时间, 与请求参数完全相同 + TimeMax string `json:"time_max,omitempty"` // 查询会议室忙闲的结束时间, 与请求参数完全相同 + FreeBusy map[string]*BatchGetCalendarMeetingRoomFreebusyRespFreeBusy `json:"free_busy,omitempty"` // 会议室忙闲列表 } // BatchGetCalendarMeetingRoomFreebusyRespFreeBusy ... type BatchGetCalendarMeetingRoomFreebusyRespFreeBusy struct { - StartTime string `json:"start_time,omitempty"` // 忙碌日程的起始时间。 - EndTime string `json:"end_time,omitempty"` // 忙碌日程的结束时间。 - Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例的原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 - OrganizerInfo *BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo `json:"organizer_info,omitempty"` // 日程组织者信息。私密日程不会返回该信息。 + StartTime string `json:"start_time,omitempty"` // 忙碌起始时间 + EndTime string `json:"end_time,omitempty"` // 忙碌结束时间 + Uid string `json:"uid,omitempty"` // 日程 ID + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例的原始时间, 非重复日程以及重复性日程的原日程为0, 重复性日程的例外日程为非0 + OrganizerInfo *BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo `json:"organizer_info,omitempty"` // 组织者信息, 私密日程不返回该信息 } // BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo ... type BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo struct { - Name string `json:"name,omitempty"` // 组织者姓名。使用应用身份创建的日程不会返回该信息。 - OpenID string `json:"open_id,omitempty"` // 组织者的 open_id。 + Name string `json:"name,omitempty"` // 组织者姓名 + OpenID string `json:"open_id,omitempty"` // 组织者 open_id } // batchGetCalendarMeetingRoomFreebusyResp ... type batchGetCalendarMeetingRoomFreebusyResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 - Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 - Data *BatchGetCalendarMeetingRoomFreebusyResp `json:"data,omitempty"` // 返回信息。 - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *BatchGetCalendarMeetingRoomFreebusyResp `json:"data,omitempty"` // 返回业务信息 } diff --git a/api_calendar_meeting_room_instance_reply.go b/api_calendar_meeting_room_instance_reply.go index 108357f2..0c9a61a4 100644 --- a/api_calendar_meeting_room_instance_reply.go +++ b/api_calendar_meeting_room_instance_reply.go @@ -21,13 +21,9 @@ import ( "context" ) -// ReplyCalendarMeetingRoomInstance 调用该接口用于回复会议室日程实例, 支持回复未签到释放、提前结束释放、被管理员置为接受、被管理员置为拒绝。 -// -// 说明: 你可以先调用[查询会议室忙闲](https://open.feishu.cn/document/ukTMukTMukTM/uIDOyUjLygjM14iM4ITN)接口, 获取指定会议室的某一日程的 uid、original_time 信息, 然后再调用本接口回复会议室日程。
-// ID说明: 日程 ID(event_id)格式为 `_`, 因此你可以通过 event_id 获取日程的 Uid 和 Original time。例如, 日程 ID 为 `c32537e6-e0a8-4506-b42f-47440655cdb4_0`, 则 Uid 为 `c32537e6-e0a8-4506-b42f-47440655cdb4`、Original time 为 `0`。 +// ReplyCalendarMeetingRoomInstance 该接口用于回复会议室日程实例, 包括未签到释放和提前结束释放。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uYzN4UjL2cDO14iN3gTN -// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/reply-meeting-room-event-instance func (r *CalendarService) ReplyCalendarMeetingRoomInstance(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) { if r.cli.mock.mockCalendarReplyCalendarMeetingRoomInstance != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#ReplyCalendarMeetingRoomInstance mock enable") @@ -61,19 +57,19 @@ func (r *Mock) UnMockCalendarReplyCalendarMeetingRoomInstance() { // ReplyCalendarMeetingRoomInstanceReq ... type ReplyCalendarMeetingRoomInstanceReq struct { - RoomID string `json:"room_id,omitempty"` // 会议室 ID。 - Uid string `json:"uid,omitempty"` // 会议室对应的日程 Uid。 - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传 0;重复性日程的例外日程, 此处传对应的 original_time 值(时间戳类型)。 - Status string `json:"status,omitempty"` // 回复状态。 可选值有: - NOT_CHECK_IN: 未签到 - ENDED_BEFORE_DUE: 提前结束 - ACCEPTED_BY_ADMIN: 被管理员置为接受 DECLINED_BY_ADMIN: 被管理员置为拒绝 + RoomID string `json:"room_id,omitempty"` // 会议室的 ID + Uid string `json:"uid,omitempty"` // 会议室的日程 ID + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间, 非重复日程必为0。重复日程若为0则表示回复其所有实例, 否则表示回复单个实例。 + Status string `json:"status,omitempty"` // 回复状态, NOT_CHECK_IN 表示未签到, ENDED_BEFORE_DUE 表示提前结束, ACCEPTED_BY_ADMIN 表示被管理员置为接受, DECLINED_BY_ADMIN 表示被管理员置为拒绝 } // ReplyCalendarMeetingRoomInstanceResp ... -type ReplyCalendarMeetingRoomInstanceResp struct{} +type ReplyCalendarMeetingRoomInstanceResp struct { +} // replyCalendarMeetingRoomInstanceResp ... type replyCalendarMeetingRoomInstanceResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 说明: 如果返回 105003 表示 original_time 不合法。该问题可能是重复日程的整个开始时间被修改导致的, 建议应用重新查询会议室的日程列表, 获取最新的 original_time, 然后再次尝试调用本接口。 - Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 - Data *ReplyCalendarMeetingRoomInstanceResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。105003表示 original_time 非法, 此时可能是重复日程的整个开始时间被修改, 建议应用重新查询会议室日程实例列表, 获取最新的 original_time。 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ReplyCalendarMeetingRoomInstanceResp `json:"data,omitempty"` } diff --git a/api_calendar_meeting_room_summary_batch_get.go b/api_calendar_meeting_room_summary_batch_get.go index 38a69967..12bcb4a1 100644 --- a/api_calendar_meeting_room_summary_batch_get.go +++ b/api_calendar_meeting_room_summary_batch_get.go @@ -21,12 +21,9 @@ import ( "context" ) -// BatchGetCalendarMeetingRoomSummary 调用该接口使用日程的 Uid 和 Original time 查询会议室日程主题与详情。 -// -// 日程 ID(event_id)格式为 `_`, 因此你可以通过 event_id 获取日程的 Uid 和 Original time。例如, 日程 ID 为 `c32537e6-e0a8-4506-b42f-47440655cdb4_0`, 则 Uid 为 `c32537e6-e0a8-4506-b42f-47440655cdb4`、Original time 为 `0`。 +// BatchGetCalendarMeetingRoomSummary 通过日程的Uid和Original time, 查询会议室日程主题。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uIjM5UjLyITO14iMykTN/ -// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/ func (r *CalendarService) BatchGetCalendarMeetingRoomSummary(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) { if r.cli.mock.mockCalendarBatchGetCalendarMeetingRoomSummary != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#BatchGetCalendarMeetingRoomSummary mock enable") @@ -60,48 +57,47 @@ func (r *Mock) UnMockCalendarBatchGetCalendarMeetingRoomSummary() { // BatchGetCalendarMeetingRoomSummaryReq ... type BatchGetCalendarMeetingRoomSummaryReq struct { - EventUids []*BatchGetCalendarMeetingRoomSummaryReqEventUid `json:"EventUids,omitempty"` // 需要查询的日程 Uid 和 Original time 列表。 + EventUids []*BatchGetCalendarMeetingRoomSummaryReqEventUid `json:"EventUids,omitempty"` // 需要查询的日程Uid和Original time } // BatchGetCalendarMeetingRoomSummaryReqEventUid ... type BatchGetCalendarMeetingRoomSummaryReqEventUid struct { - Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传 0;重复性日程的例外日程, 需要传入对应的 original_time 值(时间戳类型)。 + Uid string `json:"uid,omitempty"` // 日程的唯一id + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传0;重复性日程的例外, 传对应的original_time } // BatchGetCalendarMeetingRoomSummaryResp ... type BatchGetCalendarMeetingRoomSummaryResp struct { - EventInfos []*BatchGetCalendarMeetingRoomSummaryRespEventInfo `json:"EventInfos,omitempty"` // 查询到的日程信息。 - ErrorEventUids []*BatchGetCalendarMeetingRoomSummaryRespErrorEventUid `json:"ErrorEventUids,omitempty"` // 没有查询到的日程信息。 + EventInfos []*BatchGetCalendarMeetingRoomSummaryRespEventInfo `json:"EventInfos,omitempty"` // 成功查询到的日程信息 + ErrorEventUids []*BatchGetCalendarMeetingRoomSummaryRespErrorEventUid `json:"ErrorEventUids,omitempty"` // 没有查询到的日程 } // BatchGetCalendarMeetingRoomSummaryRespErrorEventUid ... type BatchGetCalendarMeetingRoomSummaryRespErrorEventUid struct { - Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 - ErrorMsg string `json:"error_msg,omitempty"` // 错误信息。 + Uid string `json:"uid,omitempty"` // 日程的唯一id + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为0;重复性日程的例外, 为对应的original_time + ErrorMsg string `json:"error_msg,omitempty"` // 错误信息 } // BatchGetCalendarMeetingRoomSummaryRespEventInfo ... type BatchGetCalendarMeetingRoomSummaryRespEventInfo struct { - Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 - Summary string `json:"summary,omitempty"` // 日程主题。 - Vchat *BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat `json:"vchat,omitempty"` // 视频会议信息。 + Uid string `json:"uid,omitempty"` // 日程的唯一id + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为0;重复性日程的例外, 为对应的original_time + Summary string `json:"summary,omitempty"` // 日程主题 + Vchat *BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat `json:"vchat,omitempty"` // 视频会议信息 } // BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat ... type BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat struct { - VCType string `json:"vc_type,omitempty"` // 视频会议类型。 可选值有: - `vc`: 飞书视频会议。取该类型时, vchat 内的其他字段均无效。 - `third_party`: 第三方链接视频会议。取该类型时, 仅生效 vchat 内的 icon_type、description、meeting_url 字段。 - `no_meeting`: 无视频会议。取该类型时, vchat 内的其他字段均无效。 - `lark_live`: 飞书直播。该值用于客户端, 只读参数。 - `unknown`: 未知类型。该值用于客户端做兼容使用, 只读参数。 - IconType string `json:"icon_type,omitempty"` // 第三方视频会议 icon 类型。 可选值有: - `vc`: 飞书视频会议 icon - `live`: 直播视频会议 icon - `default`: 默认 icon - Description string `json:"description,omitempty"` // 第三方视频会议文案。 - MeetingURL string `json:"meeting_url,omitempty"` // 视频会议 URL。 + VCType string `json:"vc_type,omitempty"` // 视屏会议类型 可选值有: - `vc`: 飞书视频会议, 取该类型时, 其他字段无效。 - `third_party`: 第三方链接视频会议, 取该类型时, icon_type、description、meeting_url字段生效。 - `no_meeting`: 无视频会议, 取该类型时, 其他字段无效。 - `lark_live`: 飞书直播, 内部类型, 飞书客户端使用, API不支持创建, 只读。 - `unknown`: 未知类型, 做兼容使用, 飞书客户端使用, API不支持创建, 只读。 + IconType string `json:"icon_type,omitempty"` // 第三方视频会议icon类型;可以为空, 为空展示默认icon。 可选值有: - `vc`: 飞书视频会议icon - `live`: 直播视频会议icon - `default`: 默认icon + Description string `json:"description,omitempty"` // 第三方视频会议文案, 可以为空, 为空展示默认文案 + MeetingURL string `json:"meeting_url,omitempty"` // 视频会议URL } // batchGetCalendarMeetingRoomSummaryResp ... type batchGetCalendarMeetingRoomSummaryResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 - Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 - Data *BatchGetCalendarMeetingRoomSummaryResp `json:"data,omitempty"` // 返回信息。 - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *BatchGetCalendarMeetingRoomSummaryResp `json:"data,omitempty"` // 返回业务信息 } diff --git a/api_cardkit_card_batch_update.go b/api_cardkit_card_batch_update.go new file mode 100644 index 00000000..67e74974 --- /dev/null +++ b/api_cardkit_card_batch_update.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchUpdateCardkitCard 更新卡片实体局部内容, 包括配置和组件。支持同时对多个组件进行增删改等不同操作。 +// +// ## 使用限制 +// - 本接口仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)。 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/batch_update +// new doc: https://open.feishu.cn/document/cardkit-v1/card/batch_update +func (r *CardkitService) BatchUpdateCardkitCard(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) { + if r.cli.mock.mockCardkitBatchUpdateCardkitCard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#BatchUpdateCardkitCard mock enable") + return r.cli.mock.mockCardkitBatchUpdateCardkitCard(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "BatchUpdateCardkitCard", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/batch_update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchUpdateCardkitCardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitBatchUpdateCardkitCard mock CardkitBatchUpdateCardkitCard method +func (r *Mock) MockCardkitBatchUpdateCardkitCard(f func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error)) { + r.mockCardkitBatchUpdateCardkitCard = f +} + +// UnMockCardkitBatchUpdateCardkitCard un-mock CardkitBatchUpdateCardkitCard method +func (r *Mock) UnMockCardkitBatchUpdateCardkitCard() { + r.mockCardkitBatchUpdateCardkitCard = nil +} + +// BatchUpdateCardkitCardReq ... +type BatchUpdateCardkitCardReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取。示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数示例值: 1 + Actions []string `json:"actions,omitempty"` // 操作列表。参考示例更新配置或组件。支持的操作有: `partial_update_setting`: 更新卡片配置, 支持更新卡片的 config 和 card_link 字段。参数结构可参考[更新卡片配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/settings);- `add_elements`: 添加组件, 支持 type、 target_element_id、elements 字段。参数结构可参考[新增组件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/create)接口请求体;- `delete_elements`: 删除组件, 支持 element_ids 字段。参数值为组件 ID 数组。参数结构可参考[删除组件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/delete); - `partial_update_element`: 更新组件的属性, 支持 element_id 和 partial_element 字段。参数结构可参考[更新组件属性](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/patch)接口的路径参数 element_id 和请求体 partial_element 字段 ; - `update_element`: 全量更新组件, 支持 element_id 和 element 字段。参数结构可参考[全量更新组件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/update)接口的路径参数 element_id 和请求体 element 字段示例值: "[{\"action\":\"partial_update_setting\", \"params\":{\"settings\":{\"config\":{\"streaming_mode\":true}}}}, {\"action\":\"add_elements\", \"params\":{\"type\":\"insert_before\", \"target_element_id\":\"markdown_1\", \"elements\":[{\"tag\":\"markdown\", \"element_id\":\"md_1\", \"content\":\"欢迎使用[飞书卡片搭建工具](https://open.feishu.cn/cardkit?from=open_docs)。\"}]}}, {\"action\":\"delete_elements\", \"params\":{\"element_ids\":[\"text_1\", \"text_2\"]}}, {\"action\":\"partial_update_element\", \"params\":{\"element_id\":\"markdown_2\", \"partial_element\":{\"content\":\"详情参考飞书卡片相关文档。\"}}}, {\"action\":\"update_element\", \"params\":{\"element_id\":\"markdown_3\", \"element\":{\"tag\":\"button\", \"text\":{\"tag\":\"plain_text\", \"content\":\"有帮助\"}, \"size\":\"medium\", \"icon\":{\"tag\":\"standard_icon\", \"token\":\"emoji_outlined\"}}}}]" 长度范围: `1` ~ `1000000` 字符 +} + +// BatchUpdateCardkitCardResp ... +type BatchUpdateCardkitCardResp struct { +} + +// batchUpdateCardkitCardResp ... +type batchUpdateCardkitCardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchUpdateCardkitCardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_create.go b/api_cardkit_card_create.go new file mode 100644 index 00000000..e80d0d30 --- /dev/null +++ b/api_cardkit_card_create.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCardkitCard 基于卡片 JSON 代码或卡片搭建工具搭建的卡片, 创建卡片实体。用于后续通过卡片实体 ID(card_id)发送卡片、更新卡片等。 +// +// ## 使用限制 +// - 本接口仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)或卡片搭建工具搭建的[新版卡片](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/feishu-card-cardkit/cardkit-upgraded-version-card-release-notes)。 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 一个卡片实体, 仅支持发送一次。 +// - 卡片实体的有效期为 14 天。即创建卡片实体超出 14 天后, 你将无法调用相关接口操作卡片。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create +// new doc: https://open.feishu.cn/document/cardkit-v1/card/create +func (r *CardkitService) CreateCardkitCard(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) { + if r.cli.mock.mockCardkitCreateCardkitCard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#CreateCardkitCard mock enable") + return r.cli.mock.mockCardkitCreateCardkitCard(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "CreateCardkitCard", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCardkitCardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitCreateCardkitCard mock CardkitCreateCardkitCard method +func (r *Mock) MockCardkitCreateCardkitCard(f func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error)) { + r.mockCardkitCreateCardkitCard = f +} + +// UnMockCardkitCreateCardkitCard un-mock CardkitCreateCardkitCard method +func (r *Mock) UnMockCardkitCreateCardkitCard() { + r.mockCardkitCreateCardkitCard = nil +} + +// CreateCardkitCardReq ... +type CreateCardkitCardReq struct { + Type string `json:"type,omitempty"` // 卡片类型。可选值: `card_json`: 由卡片 JSON 代码构建的卡片- `template`: 由[卡片搭建工具](https://open.feishu.cn/cardkit?from=open_docs)搭建的卡片模板示例值: "card_json" 长度范围: `1` ~ `50` 字符 + Data *CreateCardkitCardReqData `json:"data,omitempty"` // 卡片数据。需要与 `type` 指定的类型一致: 若 `type` 为 `card_json`, 则此处应传卡片 JSON 代码, 并确保将其转义为字符串。仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure), 即你必须声明 `schema` 为 `2.0`- 若 `type` 为 `template`, 则此处应传卡片模板的数据, 并确保将其转义为字符串。仅支持新版卡片。即在搭建工具中, 卡片名称旁应有“新版”标识示例值: "请参考下文请求体示例" 长度范围: `1` ~ `3000000` 字符 +} + +// CreateCardkitCardReqData ... +type CreateCardkitCardReqData struct { +} + +// CreateCardkitCardResp ... +type CreateCardkitCardResp struct { + CardID string `json:"card_id,omitempty"` // 创建的卡片实体 ID。后续可通过[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)接口传入卡片实体 ID 发送卡片。 +} + +// createCardkitCardResp ... +type createCardkitCardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCardkitCardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_element_content.go b/api_cardkit_card_element_content.go new file mode 100644 index 00000000..ce1f1abf --- /dev/null +++ b/api_cardkit_card_element_content.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCardkitCardElementContent 对卡片中的普通文本元素(tag 为 plain_text 的元素)或富文本组件(tag 为 markdown 的组件)传入全量文本内容, 以实现“打字机”式的文字输出效果。 +// +// ## 输出效果说明 +// 若旧文本为传入的新文本的前缀子串, 新增文本将在旧文本末尾继续以打字机效果输出;若新旧文本前缀不同, 全量文本将直接上屏输出, 无打字机效果。参考[流式更新卡片](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/streaming-updates-openapi-overview), 了解流式更新文本的效果和完整流程。 +// ## 使用限制 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 对于搭建工具中的卡片, 仅支持对富文本组件中的内容进行流式更新, 不支持对普通文本元素进行文本流式更新。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// ## 前提条件 +// 调用该接口时, 需确保已开启卡片的流式更新模式: +// - 在卡片 JSON 中, 将 `streaming_mode` 设为 `true` +// - 或在卡片搭建工具中, 在设置中开启流式更新模式: +// ![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/6051c2a7d1df743858d11d2ae89d96a2_pTDWhbUysD.png?maxWidth=400) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/content +// new doc: https://open.feishu.cn/document/cardkit-v1/card-element/content +func (r *CardkitService) UpdateCardkitCardElementContent(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) { + if r.cli.mock.mockCardkitUpdateCardkitCardElementContent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#UpdateCardkitCardElementContent mock enable") + return r.cli.mock.mockCardkitUpdateCardkitCardElementContent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "UpdateCardkitCardElementContent", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/elements/:element_id/content", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCardkitCardElementContentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitUpdateCardkitCardElementContent mock CardkitUpdateCardkitCardElementContent method +func (r *Mock) MockCardkitUpdateCardkitCardElementContent(f func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error)) { + r.mockCardkitUpdateCardkitCardElementContent = f +} + +// UnMockCardkitUpdateCardkitCardElementContent un-mock CardkitUpdateCardkitCardElementContent method +func (r *Mock) UnMockCardkitUpdateCardkitCardElementContent() { + r.mockCardkitUpdateCardkitCardElementContent = nil +} + +// UpdateCardkitCardElementContentReq ... +type UpdateCardkitCardElementContentReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + ElementID string `path:"element_id" json:"-"` // 卡片实体中, 普通文本元素或富文本组件的 ID。对应卡片 JSON 中的 `element_id` 属性或搭建工具中的组件 ID 属性, 由开发者自定义。注意: 仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)或卡片搭建工具搭建的[新版卡片](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/feishu-card-cardkit/cardkit-upgraded-version-card-release-notes)。- 对于搭建工具中的卡片, 此处仅支持传入富文本组件的组件 ID。即仅支持对富文本组件中的内容进行流式更新。示例值: "markdown_1" 长度范围: `1` ~ `20` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Content string `json:"content,omitempty"` // 新的全量文本内容。使用时请注意转义为字符串。注意: 若 content 中含有代码块, 你需将代码块前后的空格去掉, 否则可能导致代码渲染失败。- 若旧文本为传入的新文本的前缀子串, 新增文本将在旧文本末尾继续以打字机效果输出;若新旧文本前缀不同, 全量文本将直接上屏输出, 无打字机效果。示例值: "这是更新后的文本内容。将以打字机式的效果输出" 长度范围: `1` ~ `100000` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数。示例值: 1 +} + +// UpdateCardkitCardElementContentResp ... +type UpdateCardkitCardElementContentResp struct { +} + +// updateCardkitCardElementContentResp ... +type updateCardkitCardElementContentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCardkitCardElementContentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_element_create.go b/api_cardkit_card_element_create.go new file mode 100644 index 00000000..99f5615c --- /dev/null +++ b/api_cardkit_card_element_create.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCardkitCardElement 为指定卡片实体新增组件, 以扩展卡片内容, 如在卡片中添加一个点击按钮。 +// +// ## 使用限制 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/create +// new doc: https://open.feishu.cn/document/cardkit-v1/card-element/create +func (r *CardkitService) CreateCardkitCardElement(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) { + if r.cli.mock.mockCardkitCreateCardkitCardElement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#CreateCardkitCardElement mock enable") + return r.cli.mock.mockCardkitCreateCardkitCardElement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "CreateCardkitCardElement", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/elements", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCardkitCardElementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitCreateCardkitCardElement mock CardkitCreateCardkitCardElement method +func (r *Mock) MockCardkitCreateCardkitCardElement(f func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error)) { + r.mockCardkitCreateCardkitCardElement = f +} + +// UnMockCardkitCreateCardkitCardElement un-mock CardkitCreateCardkitCardElement method +func (r *Mock) UnMockCardkitCreateCardkitCardElement() { + r.mockCardkitCreateCardkitCardElement = nil +} + +// CreateCardkitCardElementReq ... +type CreateCardkitCardElementReq struct { + CardID string `path:"card_id" json:"-"` // 要新增组件的卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + Type string `json:"type,omitempty"` // 添加组件的方式。示例值: "insert_after"可选值有: 在目标组件前插入在目标组件后插入在卡片或容器组件末尾添加 + TargetElementID *string `json:"target_element_id,omitempty"` // 目标组件的 ID。 填写规则如下所示: 当 `type` 为 `insert_before`、`insert_after` 时, 字段必填, 为用于定位的目标组件- 当 `type` 为 `append` 时, 该字段仅支持容器类组件, 用于指定在末尾添加的目标组件。若未填写, 则默认在卡片 body 末尾添加示例值: "markdown_1" 长度范围: `0` ~ `20` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数。示例值: 1 + Elements []string `json:"elements,omitempty"` // 添加的组件列表。注意: 以下示例值未转义, 使用时请注意将其转为 JSON 序列化后的字符串。- 本参数仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)。示例值: "[{\"tag\":\"button\", \"element_id\":\"button_1\", \"text\":{\"tag\":\"plain_text\", \"content\":\"查看更多\"}, \"type\":\"default\", \"width\":\"default\", \"size\":\"medium\", \"behaviors\":[{\"type\":\"open_url\", \"default_url\":\"https://open.feishu.cn/?lang=zh-CN\", \"pc_url\":\"\", \"ios_url\":\"\", \"android_url\":\"\"}]}]" 长度范围: `1` ~ `1000000` 字符 +} + +// CreateCardkitCardElementResp ... +type CreateCardkitCardElementResp struct { +} + +// createCardkitCardElementResp ... +type createCardkitCardElementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCardkitCardElementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_element_delete.go b/api_cardkit_card_element_delete.go new file mode 100644 index 00000000..1703fe87 --- /dev/null +++ b/api_cardkit_card_element_delete.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCardkitCardElement 删除指定卡片实体中的组件。 +// +// ## 注意事项 +// 删除容器类组件时, 容器中内嵌的组件将一并被删除。 +// ## 使用限制 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/delete +// new doc: https://open.feishu.cn/document/cardkit-v1/card-element/delete +func (r *CardkitService) DeleteCardkitCardElement(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) { + if r.cli.mock.mockCardkitDeleteCardkitCardElement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#DeleteCardkitCardElement mock enable") + return r.cli.mock.mockCardkitDeleteCardkitCardElement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "DeleteCardkitCardElement", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/elements/:element_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCardkitCardElementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitDeleteCardkitCardElement mock CardkitDeleteCardkitCardElement method +func (r *Mock) MockCardkitDeleteCardkitCardElement(f func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error)) { + r.mockCardkitDeleteCardkitCardElement = f +} + +// UnMockCardkitDeleteCardkitCardElement un-mock CardkitDeleteCardkitCardElement method +func (r *Mock) UnMockCardkitDeleteCardkitCardElement() { + r.mockCardkitDeleteCardkitCardElement = nil +} + +// DeleteCardkitCardElementReq ... +type DeleteCardkitCardElementReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + ElementID string `path:"element_id" json:"-"` // 指定卡片实体内, 要删除的组件 ID。对应卡片 JSON 中的 `element_id` 属性, 由开发者自定义。示例值: "markdown_1" 长度范围: `1` ~ `20` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 id, 可通过传入唯一的 uuid 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数。示例值: 1 +} + +// DeleteCardkitCardElementResp ... +type DeleteCardkitCardElementResp struct { +} + +// deleteCardkitCardElementResp ... +type deleteCardkitCardElementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCardkitCardElementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_element_update.go b/api_cardkit_card_element_update.go new file mode 100644 index 00000000..b3b22b2d --- /dev/null +++ b/api_cardkit_card_element_update.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCardkitCardElement 通过传入 `card_id`(卡片实体 ID)和 `element_id`(组件 ID), 更新卡片实体中对应组件的属性。 +// +// ## 使用限制 +// - 本接口不支持修改组件的标签(tag)属性。 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/patch +// new doc: https://open.feishu.cn/document/cardkit-v1/card-element/patch +func (r *CardkitService) UpdateCardkitCardElement(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) { + if r.cli.mock.mockCardkitUpdateCardkitCardElement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#UpdateCardkitCardElement mock enable") + return r.cli.mock.mockCardkitUpdateCardkitCardElement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "UpdateCardkitCardElement", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/elements/:element_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCardkitCardElementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitUpdateCardkitCardElement mock CardkitUpdateCardkitCardElement method +func (r *Mock) MockCardkitUpdateCardkitCardElement(f func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error)) { + r.mockCardkitUpdateCardkitCardElement = f +} + +// UnMockCardkitUpdateCardkitCardElement un-mock CardkitUpdateCardkitCardElement method +func (r *Mock) UnMockCardkitUpdateCardkitCardElement() { + r.mockCardkitUpdateCardkitCardElement = nil +} + +// UpdateCardkitCardElementReq ... +type UpdateCardkitCardElementReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + ElementID string `path:"element_id" json:"-"` // 要更新的组件的 ID。对应 JSON 代码中的 `element_id` 属性, 由开发者自定义。示例值: "markdown_1" 长度范围: `1` ~ `20` 字符 + PartialElement string `json:"partial_element,omitempty"` // 组件的新的配置项字段。传入 `element_id` 参数后, 原组件的 ID 将更新。注意: 不支持修改 `tag` 参数。 - 以下示例值未转义, 使用时请注意将其转为 JSON 序列化后的字符串。- 仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)。示例值: "{\"content\":\"更新后的组件文本\"}" 长度范围: `1` ~ `1000000` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数。示例值: 1 +} + +// UpdateCardkitCardElementResp ... +type UpdateCardkitCardElementResp struct { +} + +// updateCardkitCardElementResp ... +type updateCardkitCardElementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCardkitCardElementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_element_update_v1.go b/api_cardkit_card_element_update_v1.go new file mode 100644 index 00000000..c32066cf --- /dev/null +++ b/api_cardkit_card_element_update_v1.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCardkitCardElementV1 更新卡片实体中的指定组件为新组件。 +// +// ## 使用限制 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/update +// new doc: https://open.feishu.cn/document/cardkit-v1/card-element/update +func (r *CardkitService) UpdateCardkitCardElementV1(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) { + if r.cli.mock.mockCardkitUpdateCardkitCardElementV1 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#UpdateCardkitCardElementV1 mock enable") + return r.cli.mock.mockCardkitUpdateCardkitCardElementV1(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "UpdateCardkitCardElementV1", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/elements/:element_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCardkitCardElementV1Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitUpdateCardkitCardElementV1 mock CardkitUpdateCardkitCardElementV1 method +func (r *Mock) MockCardkitUpdateCardkitCardElementV1(f func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error)) { + r.mockCardkitUpdateCardkitCardElementV1 = f +} + +// UnMockCardkitUpdateCardkitCardElementV1 un-mock CardkitUpdateCardkitCardElementV1 method +func (r *Mock) UnMockCardkitUpdateCardkitCardElementV1() { + r.mockCardkitUpdateCardkitCardElementV1 = nil +} + +// UpdateCardkitCardElementV1Req ... +type UpdateCardkitCardElementV1Req struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取。示例值: "7355439197428236291" 长度范围: `1` ~ `20` 字符 + ElementID string `path:"element_id" json:"-"` // 要更新的组件 ID。对应卡片 JSON 中组件的 `element_id` 属性, 由开发者自定义。提示: 同一张卡片内字段值唯一。仅允许使用字母、数字和下划线, 必须以字母开头。示例值: "markdown_1" 长度范围: `1` ~ `20` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Element string `json:"element,omitempty"` // 新的组件的完整的 JSON 数据。注意: 以下示例值未转义, 使用时请注意将其转为 JSON 序列化后的字符串。- 仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)。示例值: "{\"tag\":\"markdown\", \"element_id\":\"md_1\", \"content\":\"这是一段更新后的文本\"}" 长度范围: `1` ~ `1000000` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数。示例值: 1 +} + +// UpdateCardkitCardElementV1Resp ... +type UpdateCardkitCardElementV1Resp struct { +} + +// updateCardkitCardElementV1Resp ... +type updateCardkitCardElementV1Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCardkitCardElementV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_id_convert.go b/api_cardkit_card_id_convert.go new file mode 100644 index 00000000..44270ddd --- /dev/null +++ b/api_cardkit_card_id_convert.go @@ -0,0 +1,80 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCardkitCardIDConvert 将[消息 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#44c58e1c)( `message_id` )转换为卡片实体 ID(`card_id`)。用于将由[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)等接口返回的消息 ID 转换为卡片实体 ID, 以进一步对卡片进行全量更新、局部更新、或文本流式更新操作。 +// +// 本接口已不推荐使用。要基于接口创建卡片、发送卡片, 推荐你调用[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)接口获取卡片实体 ID, 再调用[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)接口发送卡片。 +// ## 提示 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/id_convert +// new doc: https://open.feishu.cn/document/historic-version/id_convert +// +// Deprecated +func (r *CardkitService) CreateCardkitCardIDConvert(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) { + if r.cli.mock.mockCardkitCreateCardkitCardIDConvert != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#CreateCardkitCardIDConvert mock enable") + return r.cli.mock.mockCardkitCreateCardkitCardIDConvert(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "CreateCardkitCardIDConvert", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/id_convert", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCardkitCardIDConvertResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitCreateCardkitCardIDConvert mock CardkitCreateCardkitCardIDConvert method +func (r *Mock) MockCardkitCreateCardkitCardIDConvert(f func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error)) { + r.mockCardkitCreateCardkitCardIDConvert = f +} + +// UnMockCardkitCreateCardkitCardIDConvert un-mock CardkitCreateCardkitCardIDConvert method +func (r *Mock) UnMockCardkitCreateCardkitCardIDConvert() { + r.mockCardkitCreateCardkitCardIDConvert = nil +} + +// CreateCardkitCardIDConvertReq ... +type CreateCardkitCardIDConvertReq struct { + MessageID string `json:"message_id,omitempty"` // 消息 ID。通过[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)等接口获取。其消息类型(msg_type)需为卡片(interactive)示例值: "om_fbdf6ed2e17f1d98e78fb26c1370186e" 长度范围: `1` ~ `50` 字符 +} + +// CreateCardkitCardIDConvertResp ... +type CreateCardkitCardIDConvertResp struct { + CardID string `json:"card_id,omitempty"` // 消息 ID 对应的卡片 ID。可用于对该卡片进行全量更新、局部更新、或文本流式更新操作 +} + +// createCardkitCardIDConvertResp ... +type createCardkitCardIDConvertResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCardkitCardIDConvertResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_settings.go b/api_cardkit_card_settings.go new file mode 100644 index 00000000..02c783a3 --- /dev/null +++ b/api_cardkit_card_settings.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCardkitCardSettings 更新指定卡片实体的配置, 支持卡片配置 `config` 字段和卡片跳转链接 `card_link` 字段。 +// +// ## 使用限制 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/settings +// new doc: https://open.feishu.cn/document/cardkit-v1/card/settings +func (r *CardkitService) UpdateCardkitCardSettings(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) { + if r.cli.mock.mockCardkitUpdateCardkitCardSettings != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#UpdateCardkitCardSettings mock enable") + return r.cli.mock.mockCardkitUpdateCardkitCardSettings(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "UpdateCardkitCardSettings", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id/settings", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCardkitCardSettingsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitUpdateCardkitCardSettings mock CardkitUpdateCardkitCardSettings method +func (r *Mock) MockCardkitUpdateCardkitCardSettings(f func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error)) { + r.mockCardkitUpdateCardkitCardSettings = f +} + +// UnMockCardkitUpdateCardkitCardSettings un-mock CardkitUpdateCardkitCardSettings method +func (r *Mock) UnMockCardkitUpdateCardkitCardSettings() { + r.mockCardkitUpdateCardkitCardSettings = nil +} + +// UpdateCardkitCardSettingsReq ... +type UpdateCardkitCardSettingsReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取示例值: "7355372766134157313" 长度范围: `1` ~ `20` 字符 + Settings string `json:"settings,omitempty"` // 卡片配置相关字段转义后的字符串, 包括 `config` 和 `card_link` 字段。注意: 以下示例值未转义, 使用时请注意将其转为 JSON 序列化后的字符串。- 本字段仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)中的对应字段。示例值: "{\"config\":{\"streaming_mode\":true, \"streaming_config\":{\"print_frequency_ms\":{\"default\":70, \"android\":70, \"ios\":70, \"pc\":70}, \"print_step\":{\"default\":1, \"android\":1, \"ios\":1, \"pc\":1}, \"print_strategy\":\"fast\"}}}" 长度范围: `1` ~ `100000` 字符 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数示例值: 1 +} + +// UpdateCardkitCardSettingsResp ... +type UpdateCardkitCardSettingsResp struct { +} + +// updateCardkitCardSettingsResp ... +type updateCardkitCardSettingsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCardkitCardSettingsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_cardkit_card_update.go b/api_cardkit_card_update.go new file mode 100644 index 00000000..6cebfc2d --- /dev/null +++ b/api_cardkit_card_update.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCardkitCard 传入新的卡片 JSON 代码, 覆盖更新指定的卡片实体的所有内容。 +// +// ## 使用限制 +// - 本接口仅支持[卡片 JSON 2.0 结构](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-json-v2-structure)。 +// - 调用该接口时, 不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 `update_multi` 属性设置为 `false`。 +// - 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/update +// new doc: https://open.feishu.cn/document/cardkit-v1/card/update +func (r *CardkitService) UpdateCardkitCard(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) { + if r.cli.mock.mockCardkitUpdateCardkitCard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Cardkit#UpdateCardkitCard mock enable") + return r.cli.mock.mockCardkitUpdateCardkitCard(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Cardkit", + API: "UpdateCardkitCard", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/cardkit/v1/cards/:card_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCardkitCardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCardkitUpdateCardkitCard mock CardkitUpdateCardkitCard method +func (r *Mock) MockCardkitUpdateCardkitCard(f func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error)) { + r.mockCardkitUpdateCardkitCard = f +} + +// UnMockCardkitUpdateCardkitCard un-mock CardkitUpdateCardkitCard method +func (r *Mock) UnMockCardkitUpdateCardkitCard() { + r.mockCardkitUpdateCardkitCard = nil +} + +// UpdateCardkitCardReq ... +type UpdateCardkitCardReq struct { + CardID string `path:"card_id" json:"-"` // 卡片实体 ID。通过[创建卡片实体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card/create)获取。示例值: "7355372766134157313" 长度范围: `1` ~ `20` 字符 + Card *UpdateCardkitCardReqCard `json:"card,omitempty"` // 更新后的完整卡片 JSON 内容。 + UUID *string `json:"uuid,omitempty"` // 幂等 ID, 可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。示例值: "a0d69e20-1dd1-458b-k525-dfeca4015204" 长度范围: `1` ~ `64` 字符 + Sequence int64 `json:"sequence,omitempty"` // 操作卡片的序号。用于保证多次更新的时序性。注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时, sequence 的值相较于上一次操作严格递增。 int32 范围( `1`~`2147483647`)内的正整数示例值: 1 +} + +// UpdateCardkitCardReqCard ... +type UpdateCardkitCardReqCard struct { + Type string `json:"type,omitempty"` // 卡片数据的类型。取固定值 `card_json`。示例值: "card_json"可选值有: 卡片 JSON 数据类型 长度范围: `1` ~ `50` 字符 + Data string `json:"data,omitempty"` // 卡片 JSON 数据的内容。注意: 仅支持 JSON 2.0 版本的卡片结构。- 以下示例值未转义, 使用时请注意将其转为 JSON 序列化后的字符串。示例值: "{\"schema\":\"2.0\", \"header\":{\"title\":{\"content\":\"项目进度更新提醒\", \"tag\":\"plain_text\"}}, \"body\":{\"elements\":[{\"tag\":\"markdown\", \"content\":\"截至今日, 项目完成度已达80%\"}]}}" 长度范围: `1` ~ `1000000` 字符 +} + +// UpdateCardkitCardResp ... +type UpdateCardkitCardResp struct { +} + +// updateCardkitCardResp ... +type updateCardkitCardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCardkitCardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_ccm_docs_default_docs_api_meta.go b/api_ccm_docs_default_docs_api_meta.go new file mode 100644 index 00000000..e7ec3643 --- /dev/null +++ b/api_ccm_docs_default_docs_api_meta.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCcmDocsDefaultDocsApiMeta 该接口用于根据 token 获取各类文件的元数据。 +// +// 请求用户需要拥有该文件的访问(读)权限 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMjN3UjLzYzN14yM2cTN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/docs/drive/file/obtain-metadata +// +// Deprecated +func (r *CcmDocsService) CreateCcmDocsDefaultDocsApiMeta(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) { + if r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CcmDocs#CreateCcmDocsDefaultDocsApiMeta mock enable") + return r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CcmDocs", + API: "CreateCcmDocsDefaultDocsApiMeta", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/suite/docs-api/meta", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createCcmDocsDefaultDocsApiMetaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCcmDocsCreateCcmDocsDefaultDocsApiMeta mock CcmDocsCreateCcmDocsDefaultDocsApiMeta method +func (r *Mock) MockCcmDocsCreateCcmDocsDefaultDocsApiMeta(f func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error)) { + r.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta = f +} + +// UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta un-mock CcmDocsCreateCcmDocsDefaultDocsApiMeta method +func (r *Mock) UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta() { + r.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta = nil +} + +// CreateCcmDocsDefaultDocsApiMetaReq ... +type CreateCcmDocsDefaultDocsApiMetaReq struct { + RequestDocs *CreateCcmDocsDefaultDocsApiMetaReqRequestDocs `json:"request_docs,omitempty"` // 请求文档, 一次不超过200个 +} + +// CreateCcmDocsDefaultDocsApiMetaReqRequestDocs ... +type CreateCcmDocsDefaultDocsApiMetaReqRequestDocs struct { + DocsToken string `json:"docs_token,omitempty"` // 文件的 token, 获取方式见[概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) + DocsType string `json:"docs_type,omitempty"` // 文件类型 1) "doc": 飞书文档 2) "sheet": 飞书电子表格 3) "bitable": 飞书多维表格 4) "mindnote": 飞书思维笔记 5) "file": 飞书文件 6) "docx": 飞书新版文档 +} + +// CreateCcmDocsDefaultDocsApiMetaResp ... +type CreateCcmDocsDefaultDocsApiMetaResp struct { + DocsMetas []*CreateCcmDocsDefaultDocsApiMetaRespDocsMeta `json:"docs_metas,omitempty"` // 文件元数据 +} + +// CreateCcmDocsDefaultDocsApiMetaRespDocsMeta ... +type CreateCcmDocsDefaultDocsApiMetaRespDocsMeta struct { + DocsToken string `json:"docs_token,omitempty"` // 文件token + DocsType string `json:"docs_type,omitempty"` // 文件类型 + Title string `json:"title,omitempty"` // 标题 + OwnerID string `json:"owner_id,omitempty"` // 文件拥有者 + CreateTime int64 `json:"create_time,omitempty"` // 创建时间(Unix时间戳) + LatestModifyUser string `json:"latest_modify_user,omitempty"` // 最后编辑者 + LatestModifyTime int64 `json:"latest_modify_time,omitempty"` // 最后编辑时间(Unix时间戳) +} + +// createCcmDocsDefaultDocsApiMetaResp ... +type createCcmDocsDefaultDocsApiMetaResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *CreateCcmDocsDefaultDocsApiMetaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_chat_announcement_update.go b/api_chat_announcement_update.go index 8969828b..628dfaea 100644 --- a/api_chat_announcement_update.go +++ b/api_chat_announcement_update.go @@ -73,7 +73,8 @@ type UpdateChatAnnouncementReq struct { } // UpdateChatAnnouncementResp ... -type UpdateChatAnnouncementResp struct{} +type UpdateChatAnnouncementResp struct { +} // updateChatAnnouncementResp ... type updateChatAnnouncementResp struct { diff --git a/api_chat_create.go b/api_chat_create.go index 44a402a9..54b536fc 100644 --- a/api_chat_create.go +++ b/api_chat_create.go @@ -90,6 +90,13 @@ type CreateChatReq struct { HideMemberCountSetting *string `json:"hide_member_count_setting,omitempty"` // 隐藏群成员人数设置默认值: all_members示例值: "all_members"可选值有: 所有群成员可见仅群主群管理员可见 } +// CreateChatReqI18nNames ... +type CreateChatReqI18nNames struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文名示例值: "群聊" + EnUs *string `json:"en_us,omitempty"` // 英文名示例值: "group chat" + JaJp *string `json:"ja_jp,omitempty"` // 日文名示例值: "グループチャット" +} + // CreateChatReqRestrictedModeSetting ... type CreateChatReqRestrictedModeSetting struct { Status *bool `json:"status,omitempty"` // 保密模式是否开启可选值有: true: 开启。设置为 ture 时, `screenshot_has_permission_setting`、`download_has_permission_setting`、`message_has_permission_setting` 不能全为 `all_members`。- false: 不开启。设置为 false 时, `screenshot_has_permission_setting`、`download_has_permission_setting`、`message_has_permission_setting` 不能存在 `not_anyone`。默认值: false示例值: false @@ -127,6 +134,13 @@ type CreateChatResp struct { HideMemberCountSetting string `json:"hide_member_count_setting,omitempty"` // 隐藏群成员人数设置可选值有: 所有群成员可见仅群主群管理员可见 } +// CreateChatRespI18nNames ... +type CreateChatRespI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // CreateChatRespRestrictedModeSetting ... type CreateChatRespRestrictedModeSetting struct { Status bool `json:"status,omitempty"` // 保密模式是否开启 diff --git a/api_chat_delete.go b/api_chat_delete.go index 86ac4fb7..b3acce1d 100644 --- a/api_chat_delete.go +++ b/api_chat_delete.go @@ -71,7 +71,8 @@ type DeleteChatReq struct { } // DeleteChatResp ... -type DeleteChatResp struct{} +type DeleteChatResp struct { +} // deleteChatResp ... type deleteChatResp struct { diff --git a/api_chat_get.go b/api_chat_get.go index aa78e80e..fa7e0ad9 100644 --- a/api_chat_get.go +++ b/api_chat_get.go @@ -102,6 +102,13 @@ type GetChatResp struct { ChatStatus string `json:"chat_status,omitempty"` // 群状态可选值有: 正常解散解散并保留 } +// GetChatRespI18nNames ... +type GetChatRespI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // GetChatRespRestrictedModeSetting ... type GetChatRespRestrictedModeSetting struct { Status bool `json:"status,omitempty"` // 保密模式是否开启 diff --git a/api_chat_join.go b/api_chat_join.go index 5834d744..5b53795a 100644 --- a/api_chat_join.go +++ b/api_chat_join.go @@ -71,7 +71,8 @@ type JoinChatReq struct { } // JoinChatResp ... -type JoinChatResp struct{} +type JoinChatResp struct { +} // joinChatResp ... type joinChatResp struct { diff --git a/api_chat_menu_tree_create.go b/api_chat_menu_tree_create.go index 5555f5eb..639cd214 100644 --- a/api_chat_menu_tree_create.go +++ b/api_chat_menu_tree_create.go @@ -91,6 +91,13 @@ type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称注意: 一级、二级菜单名称字符数要在 1 ~ 120 范围内。 } +// CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChatMenuItemI18nNames ... +type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChatMenuItemI18nNames struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文名示例值: "评审报名" + EnUs *string `json:"en_us,omitempty"` // 英文名示例值: "Sign up" + JaJp *string `json:"ja_jp,omitempty"` // 日文名示例值: "サインアップ" +} + // CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChatMenuItemRedirectLink ... type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChatMenuItemRedirectLink struct { CommonURL *string `json:"common_url,omitempty"` // 公用跳转链接, 必须以 http/https 开头。示例值: "https://open.feishu.cn/" @@ -114,6 +121,13 @@ type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChildrenChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称注意: 一级、二级菜单名称字符数要在 1 ~ 120 范围内 } +// CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames ... +type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文名示例值: "评审报名" + EnUs *string `json:"en_us,omitempty"` // 英文名示例值: "Sign up" + JaJp *string `json:"ja_jp,omitempty"` // 日文名示例值: "サインアップ" +} + // CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink ... type CreateChatMenuTreeReqMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink struct { CommonURL *string `json:"common_url,omitempty"` // 公用跳转链接, 必须以 http/https 开头。示例值: "https://open.feishu.cn/" @@ -149,6 +163,13 @@ type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames ... +type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink ... type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 @@ -173,6 +194,13 @@ type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames ... +type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink ... type CreateChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 diff --git a/api_chat_menu_tree_delete.go b/api_chat_menu_tree_delete.go index 5fc73c11..1e4f5c86 100644 --- a/api_chat_menu_tree_delete.go +++ b/api_chat_menu_tree_delete.go @@ -95,6 +95,13 @@ type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames ... +type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink ... type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 @@ -119,6 +126,13 @@ type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames ... +type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink ... type DeleteChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 diff --git a/api_chat_menu_tree_get.go b/api_chat_menu_tree_get.go index 29dd8541..6af6e129 100644 --- a/api_chat_menu_tree_get.go +++ b/api_chat_menu_tree_get.go @@ -93,6 +93,13 @@ type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// GetChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames ... +type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // GetChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink ... type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 @@ -117,6 +124,13 @@ type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// GetChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames ... +type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // GetChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink ... type GetChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 diff --git a/api_chat_menu_tree_sort.go b/api_chat_menu_tree_sort.go index 7043b94a..27740366 100644 --- a/api_chat_menu_tree_sort.go +++ b/api_chat_menu_tree_sort.go @@ -95,6 +95,13 @@ type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// SortChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames ... +type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // SortChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink ... type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 @@ -119,6 +126,13 @@ type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// SortChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames ... +type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // SortChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink ... type SortChatMenuTreeRespMenuTreeChatMenuTopLevelChildrenChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 diff --git a/api_chat_menu_tree_update.go b/api_chat_menu_tree_update.go index 5ec408b9..50e7437c 100644 --- a/api_chat_menu_tree_update.go +++ b/api_chat_menu_tree_update.go @@ -80,6 +80,13 @@ type UpdateChatMenuTreeReqChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称注意: 一级、二级菜单名称字符数要在 1 ~ 120 范围内。 } +// UpdateChatMenuTreeReqChatMenuItemI18nNames ... +type UpdateChatMenuTreeReqChatMenuItemI18nNames struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文名示例值: "评审报名" + EnUs *string `json:"en_us,omitempty"` // 英文名示例值: "Sign up" + JaJp *string `json:"ja_jp,omitempty"` // 日文名示例值: "サインアップ" +} + // UpdateChatMenuTreeReqChatMenuItemRedirectLink ... type UpdateChatMenuTreeReqChatMenuItemRedirectLink struct { CommonURL *string `json:"common_url,omitempty"` // 公用跳转链接, 必须以 http/https 开头。示例值: "https://open.feishu.cn/" @@ -103,6 +110,13 @@ type UpdateChatMenuTreeRespChatMenuItem struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 菜单国际化名称 } +// UpdateChatMenuTreeRespChatMenuItemI18nNames ... +type UpdateChatMenuTreeRespChatMenuItemI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // UpdateChatMenuTreeRespChatMenuItemRedirectLink ... type UpdateChatMenuTreeRespChatMenuItemRedirectLink struct { CommonURL string `json:"common_url,omitempty"` // 公用跳转链接 diff --git a/api_chat_moderation_update.go b/api_chat_moderation_update.go index 2267634e..c22ebb66 100644 --- a/api_chat_moderation_update.go +++ b/api_chat_moderation_update.go @@ -75,7 +75,8 @@ type UpdateChatModerationReq struct { } // UpdateChatModerationResp ... -type UpdateChatModerationResp struct{} +type UpdateChatModerationResp struct { +} // updateChatModerationResp ... type updateChatModerationResp struct { diff --git a/api_chat_top_notice_delete.go b/api_chat_top_notice_delete.go index 3bd79e77..666fd97e 100644 --- a/api_chat_top_notice_delete.go +++ b/api_chat_top_notice_delete.go @@ -68,7 +68,8 @@ type DeleteChatTopNoticeReq struct { } // DeleteChatTopNoticeResp ... -type DeleteChatTopNoticeResp struct{} +type DeleteChatTopNoticeResp struct { +} // deleteChatTopNoticeResp ... type deleteChatTopNoticeResp struct { diff --git a/api_chat_top_notice_update.go b/api_chat_top_notice_update.go index 7dd8366d..1a574cbf 100644 --- a/api_chat_top_notice_update.go +++ b/api_chat_top_notice_update.go @@ -75,7 +75,8 @@ type UpdateChatTopNoticeReqChatTopNotice struct { } // UpdateChatTopNoticeResp ... -type UpdateChatTopNoticeResp struct{} +type UpdateChatTopNoticeResp struct { +} // updateChatTopNoticeResp ... type updateChatTopNoticeResp struct { diff --git a/api_chat_update.go b/api_chat_update.go index 889cebb1..3b8efb0d 100644 --- a/api_chat_update.go +++ b/api_chat_update.go @@ -91,6 +91,13 @@ type UpdateChatReq struct { HideMemberCountSetting *string `json:"hide_member_count_setting,omitempty"` // 隐藏群成员人数设置示例值: "all_members"可选值有: 所有群成员可见仅群主群管理员可见 } +// UpdateChatReqI18nNames ... +type UpdateChatReqI18nNames struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文名示例值: "群聊" + EnUs *string `json:"en_us,omitempty"` // 英文名示例值: "group chat" + JaJp *string `json:"ja_jp,omitempty"` // 日文名示例值: "グループチャット" +} + // UpdateChatReqRestrictedModeSetting ... type UpdateChatReqRestrictedModeSetting struct { Status *bool `json:"status,omitempty"` // 保密模式是否开启可选值有: true: 开启。设置为 ture 时, `screenshot_has_permission_setting`、`download_has_permission_setting`、`message_has_permission_setting` 不能全为 `all_members`。- false: 不开启。设置为 false 时, `screenshot_has_permission_setting`、`download_has_permission_setting`、`message_has_permission_setting` 不能存在 `not_anyone`。示例值: false @@ -100,7 +107,8 @@ type UpdateChatReqRestrictedModeSetting struct { } // UpdateChatResp ... -type UpdateChatResp struct{} +type UpdateChatResp struct { +} // updateChatResp ... type updateChatResp struct { diff --git a/api_compensation_archive_create.go b/api_compensation_archive_create.go new file mode 100644 index 00000000..754a2128 --- /dev/null +++ b/api_compensation_archive_create.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCompensationArchive - 该接口适用于员工入职定薪、调薪或者更正档案场景, 通过创建调薪任务的方式, 为员工生成对应薪资档案数据。 +// +// - 当员工在调薪生效日期存在档案数据时, 则是对该档案进行更正操作。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/archive/create +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/archive/create +func (r *CompensationService) CreateCompensationArchive(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) { + if r.cli.mock.mockCompensationCreateCompensationArchive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#CreateCompensationArchive mock enable") + return r.cli.mock.mockCompensationCreateCompensationArchive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "CreateCompensationArchive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/archives", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createCompensationArchiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationCreateCompensationArchive mock CompensationCreateCompensationArchive method +func (r *Mock) MockCompensationCreateCompensationArchive(f func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error)) { + r.mockCompensationCreateCompensationArchive = f +} + +// UnMockCompensationCreateCompensationArchive un-mock CompensationCreateCompensationArchive method +func (r *Mock) UnMockCompensationCreateCompensationArchive() { + r.mockCompensationCreateCompensationArchive = nil +} + +// CreateCompensationArchiveReq ... +type CreateCompensationArchiveReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UniqueID string `json:"unique_id,omitempty"` // 外部幂等id, 表示操作的唯一标识, 避免重复发起, 格式为标准的UUIDV4(32 个十六进制字符 + 4 个连字符)示例值: "123e4567-e89b-42d3-a456-426614174000" + OperatorID *string `json:"operator_id,omitempty"` // 操作人ID, 具体类型由入参中的 user_id_type 指定, 选择应用身份鉴权时, 该参数不能为空示例值: "7337149697626801708" + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: "7337149697626801708" + EffectiveTime string `json:"effective_time,omitempty"` // 生效时间, 日期格式为 YYYY-MM-DD, 字符长度为10示例值: "2024-11-12" + CurrencyID string `json:"currency_id,omitempty"` // 币种ID, 通过[查询货币信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search?appId=cli_a63f5fc01866100c)接口可获得示例值: "6863329932261459464" + PlanID string `json:"plan_id,omitempty"` // 薪资方案ID, 通过[批量查询薪资方案](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口可获得示例值: "7431430313074247212" + PlanTid string `json:"plan_tid,omitempty"` // 薪资方案TID, 通过[批量查询薪资方案](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)可获得示例值: "7431430313074279980" + ChangeReasonID string `json:"change_reason_id,omitempty"` // 调薪原因ID, 通过[批量查询定调薪原因](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/change_reason/list)接口可获得示例值: "7125907336899888684" + ItemValueLists []*CreateCompensationArchiveReqItemValueList `json:"item_value_lists,omitempty"` // --薪资项值集合, 所填薪资项信息必须是该方案中的薪资项- 仅需填写方案中可编辑的薪资项即可, 不可编辑的薪资项不能传入, 否则会校验报错。 - 根据参数plan_id, 可通过[批量查询薪资方案](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口获得对应的具体方案信息 长度范围: `0` ~ `2147483647` + Description *string `json:"description,omitempty"` // 调薪说明, 长度不超过1000字符示例值: "因2024年Q2绩效优秀, 对该同学调薪10%" + EditRemark *string `json:"edit_remark,omitempty"` // 更正说明, 长度不超过1000字符, 如果本次操作为更正员工薪资档案时, 该字段即为更正调薪的说明。示例值: "更正2024年Q2绩效调薪金额" +} + +// CreateCompensationArchiveReqItemValueList ... +type CreateCompensationArchiveReqItemValueList struct { + ItemID string `json:"item_id,omitempty"` // 薪资项ID, 具体值可通过接口查询[批量查询薪资项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)示例值: "7244131355509917228" + ItemValue string `json:"item_value,omitempty"` // --薪资项的值, 该值的单位取决于入参currency_id对应的币种- 字符串为数字格式, 且长度最大不超过18个字符, 最小长度为1个字符, 不支持负数, 不允许为空示例值: "200.00" + ItemValueRegular *string `json:"item_value_regular,omitempty"` // --员工转正后薪资项的值, 该值的单位取决于入参currency_id对应的币种。字符串为数字格式, 且长度不超过18个字符, 不支持负数- 当员工处于试用期且入参plan_id对应的薪资方案已开启试用期时, 才能填写该值。- 所有可编辑薪资项的转正值要么都为空, 要么都不为空, 否则会报错。示例值: "600.00" +} + +// CreateCompensationArchiveResp ... +type CreateCompensationArchiveResp struct { + UniqueID string `json:"unique_id,omitempty"` // 定调薪任务创建的唯一ID + ArchiveTid string `json:"archive_tid,omitempty"` // 薪资档案的TID +} + +// createCompensationArchiveResp ... +type createCompensationArchiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCompensationArchiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_lump_sum_payment_batch_create.go b/api_compensation_lump_sum_payment_batch_create.go new file mode 100644 index 00000000..7165d742 --- /dev/null +++ b/api_compensation_lump_sum_payment_batch_create.go @@ -0,0 +1,114 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateCompensationLumpSumPayment 通过传入的一次性支付记录数据, 校验并创建一次性支付记录, 并返回创建失败原因或创建成功数据的ID +// +// 本接口支持部分成功, 失败部分详细报错信息参考 `data.operate_results.code`。 +// - 当 `data.operate_results.code` 存在非 0 时, 响应体 code 仍可能返回 0 +// - 仅当出现非预期异常时, 响应体 code 才会为非 0 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/batch_create +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/lump_sum_payment/batch_create +func (r *CompensationService) BatchCreateCompensationLumpSumPayment(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchCreateCompensationLumpSumPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchCreateCompensationLumpSumPayment mock enable") + return r.cli.mock.mockCompensationBatchCreateCompensationLumpSumPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchCreateCompensationLumpSumPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/lump_sum_payment/batch_create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCreateCompensationLumpSumPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchCreateCompensationLumpSumPayment mock CompensationBatchCreateCompensationLumpSumPayment method +func (r *Mock) MockCompensationBatchCreateCompensationLumpSumPayment(f func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error)) { + r.mockCompensationBatchCreateCompensationLumpSumPayment = f +} + +// UnMockCompensationBatchCreateCompensationLumpSumPayment un-mock CompensationBatchCreateCompensationLumpSumPayment method +func (r *Mock) UnMockCompensationBatchCreateCompensationLumpSumPayment() { + r.mockCompensationBatchCreateCompensationLumpSumPayment = nil +} + +// BatchCreateCompensationLumpSumPaymentReq ... +type BatchCreateCompensationLumpSumPaymentReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Records []*BatchCreateCompensationLumpSumPaymentReqRecord `json:"records,omitempty"` // 要创建的一次性支付信息 长度范围: `0` ~ `500` +} + +// BatchCreateCompensationLumpSumPaymentReqRecord ... +type BatchCreateCompensationLumpSumPaymentReqRecord struct { + UniqueID string `json:"unique_id,omitempty"` // 外部幂等id, 由上游业务决定示例值: "7402510801304718380_7309316347007764012_7402523725868058156_1726070400000_10000" 长度范围: `0` ~ `255` 字符 + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: "7337149697626801708" 长度范围: `0` ~ `255` 字符 + TotalAmount int64 `json:"total_amount,omitempty"` // 总金额, 字符串表达的数字, 单位为入参中 currency_id 给定的币种示例值: "2000.00" 长度范围: `0` ~ `255` 字符 + BindingPeriod int64 `json:"binding_period,omitempty"` // 绑定期, 单位为月示例值: 2 取值范围: `0` ~ `2147483647` + CurrencyID string `json:"currency_id,omitempty"` // 币种 id(通过[【查询币种】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)) 接口进行查询)示例值: "6863329932261459464" 长度范围: `0` ~ `255` 字符 + IssuanceFrequency int64 `json:"issuance_frequency,omitempty"` // 发放次数, 必须与 details 的长度一致示例值: 3 取值范围: `0` ~ `2147483647` + ItemID string `json:"item_id,omitempty"` // 薪酬项 id(通过[【查询薪酬项】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)) 接口进行查询)示例值: "7411039006180312620" 长度范围: `0` ~ `255` 字符 + ReferencePeriodStartDate *string `json:"reference_period_start_date,omitempty"` // 所属期开始日期示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + ReferencePeriodEndDate *string `json:"reference_period_end_date,omitempty"` // 所属期结束日期示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + Details []*BatchCreateCompensationLumpSumPaymentReqRecordDetail `json:"details,omitempty"` // 发放明细列表 长度范围: `0` ~ `2147483647` + Remark *string `json:"remark,omitempty"` // 备注示例值: "该员工表现优异, 为其发放一笔奖金" 长度范围: `0` ~ `3000` 字符 +} + +// BatchCreateCompensationLumpSumPaymentReqRecordDetail ... +type BatchCreateCompensationLumpSumPaymentReqRecordDetail struct { + IssuanceAmount string `json:"issuance_amount,omitempty"` // 一次性支付明细发放金额, 可转数字的字符串, 单位为入参中 currency_id 给定的币种示例值: "2000.00" 长度范围: `0` ~ `255` 字符 + IssuanceStatus string `json:"issuance_status,omitempty"` // 发放状态示例值: "to_be_issued"可选值有: 应发放不发放 长度范围: `0` ~ `255` 字符 + IssuanceWay string `json:"issuance_way,omitempty"` // 发放方式示例值: "with_salary"可选值有: 随工资发放现金发放随年终奖发放 + IssuanceTime string `json:"issuance_time,omitempty"` // 发放时间示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + BelongTime string `json:"belong_time,omitempty"` // 申请发放日期示例值: "2025-01-20" 长度范围: `0` ~ `255` 字符 + IssuanceCountryRegionID *string `json:"issuance_country_region_id,omitempty"` // 发放国家ID(可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)进行查询)示例值: "6862995757234914824" 长度范围: `0` ~ `255` 字符 + IssuancePayGroupID *string `json:"issuance_pay_group_id,omitempty"` // 发放薪资组ID(可通过[获取薪资组基本信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)进行查询)示例值: "6862995757234914824" 长度范围: `0` ~ `255` 字符 +} + +// BatchCreateCompensationLumpSumPaymentResp ... +type BatchCreateCompensationLumpSumPaymentResp struct { + OperateResults []*BatchCreateCompensationLumpSumPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果。对于创建成功的记录, 会返回创建后的一次性支付记录id +} + +// BatchCreateCompensationLumpSumPaymentRespOperateResult ... +type BatchCreateCompensationLumpSumPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作的记录的 id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The bonus to be changed does not exist" 要更改的奖金不存在"Idempotent ID conflict" 幂等id冲突"The total amount format is incorrect" 总金额格式不正确"Only use the number of decimal places specified in the bonus item rules" 仅限使用奖金项规则中规定的小数位数"The sum of the bonus details does not equal the total amount" 奖金明细金额之和不等于总金额"issuance frequency not equal to size of details" 奖金明细总数不等于发放次数"The number of issuances is less than or equal to 0" 发放次数小于等于0"The currency is empty or does not exist" 币种为空或不存在"Notes are too long" 备注超长"The bonus details amount format is incorrect" 奖金明细金额格式不正确"The bonus details payment time format is incorrect" 奖金明细的发放时间格式不正确"The bonus details are issued in an illegal manner" 奖金明细的发放方式不合法"The bonus details are not in a valid payment status" 奖金明细的发放状态不合法"Employees are not covered by the bonus rules" 员工不在奖金项规则适用范围之内"The method of awarding bonus details is not covered by the bonus item rules" 奖金明细的发放方式不在奖金项规则适用范围之内"Bonus item rules do not support configuration of binding period" 奖金项规则不支持配置绑定期"The bonus details payment status is "paid", and cannot be modified" 奖金明细发放状态为「已发放」, 不支持修改"The bonus item rules already include the currency, and other currencies cannot be specified" 奖金项规则已包含币种, 不支持指定其他币种"The salary item does not exist" 薪酬项不存在"Employee does not exist" 员工不存在"The bonus details payment status is "paid", and deletion is not supported" 奖金明细发放状态为「已发放」, 不支持删除"Bonus rules do not allow multiple awards" 奖金项规则不允许多次发放"No data permission" 无数据权限"Only positive integers are allowed for the binding period" 绑定期只允许正整数"This bonus does not currently support custom binding periods. Please configure and write according to the rules for the binding period of the salary item" 该奖金暂不支持自定义绑定期, 请按照薪酬项绑定期规则配置写入"The application issuance date must not be later than the issuance date" 申请发放日期不得晚于发放日期"The application payment date format of the bonus details is incorrect" 奖金明细的申请发放日期格式不正确 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchCreateCompensationLumpSumPaymentResp ... +type batchCreateCompensationLumpSumPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateCompensationLumpSumPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_lump_sum_payment_batch_remove.go b/api_compensation_lump_sum_payment_batch_remove.go new file mode 100644 index 00000000..f0521b4d --- /dev/null +++ b/api_compensation_lump_sum_payment_batch_remove.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchRemoveCompensationLumpSumPayment 传入一次性支付记录ID, 删除ID对应的一次性支付记录 +// +// 一次性支付记录被删除后, 通过查询一次性支付授予明细接口或者查询一次性支付授予记录接口将查不到该数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/batch_remove +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/lump_sum_payment/batch_remove +func (r *CompensationService) BatchRemoveCompensationLumpSumPayment(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchRemoveCompensationLumpSumPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchRemoveCompensationLumpSumPayment mock enable") + return r.cli.mock.mockCompensationBatchRemoveCompensationLumpSumPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchRemoveCompensationLumpSumPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/lump_sum_payment/batch_remove", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchRemoveCompensationLumpSumPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchRemoveCompensationLumpSumPayment mock CompensationBatchRemoveCompensationLumpSumPayment method +func (r *Mock) MockCompensationBatchRemoveCompensationLumpSumPayment(f func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error)) { + r.mockCompensationBatchRemoveCompensationLumpSumPayment = f +} + +// UnMockCompensationBatchRemoveCompensationLumpSumPayment un-mock CompensationBatchRemoveCompensationLumpSumPayment method +func (r *Mock) UnMockCompensationBatchRemoveCompensationLumpSumPayment() { + r.mockCompensationBatchRemoveCompensationLumpSumPayment = nil +} + +// BatchRemoveCompensationLumpSumPaymentReq ... +type BatchRemoveCompensationLumpSumPaymentReq struct { + RecordIDs []string `json:"record_ids,omitempty"` // 要删除的一次性支付记录id(通过[【查询一次性支付记录】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/query) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + Reason *string `json:"reason,omitempty"` // 因重复提交删除示例值: "删除原因实例" +} + +// BatchRemoveCompensationLumpSumPaymentResp ... +type BatchRemoveCompensationLumpSumPaymentResp struct { + OperateResults []*BatchRemoveCompensationLumpSumPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果。对于创建成功的记录, 会返回创建后的一次性支付记录id +} + +// BatchRemoveCompensationLumpSumPaymentRespOperateResult ... +type BatchRemoveCompensationLumpSumPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作的记录的 id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The bonus to be changed does not exist" 要更改的奖金不存在"Idempotent ID conflict" 幂等id冲突"The total amount format is incorrect" 总金额格式不正确"Only use the number of decimal places specified in the bonus item rules" 仅限使用奖金项规则中规定的小数位数"The sum of the bonus details does not equal the total amount" 奖金明细金额之和不等于总金额"issuance frequency not equal to size of details" 奖金明细总数不等于发放次数"The number of issuances is less than or equal to 0" 发放次数小于等于0"The currency is empty or does not exist" 币种为空或不存在"Notes are too long" 备注超长"The bonus details amount format is incorrect" 奖金明细金额格式不正"The bonus details payment time format is incorrect" 奖金明细的发放时间格式不正确"The bonus details are issued in an illegal manner" 奖金明细的发放方式不合法"The bonus details are not in a valid payment status" 奖金明细的发放状态不合法"Employees are not covered by the bonus rules" 员工不在奖金项规则适用范围之内"The method of awarding bonus details is not covered by the bonus item rules" 奖金明细的发放方式不在奖金项规则适用范围之内"Bonus item rules do not support configuration of binding period" 奖金项规则不支持配置绑定期"The bonus details payment status is "paid", and cannot be modified" 奖金明细发放状态为「已发放」, 不支持修改"The bonus item rules already include the currency, and other currencies cannot be specified" 奖金项规则已包含币种, 不支持指定其他币种"The salary item does not exist" 薪酬项不存在"Employee does not exist" 员工不存在"The bonus details payment status is "paid", and deletion is not supported" 奖金明细发放状态为「已发放」, 不支持删除"Bonus rules do not allow multiple awards" 奖金项规则不允许多次发放"No data permission" 无数据权限"Only positive integers are allowed for the binding period" 绑定期只允许正整数"This bonus does not currently support custom binding periods. Please configure and write according to the rules for the binding period of the salary item" 该奖金暂不支持自定义绑定期, 请按照薪酬项绑定期规则配置写入"The application issuance date must not be later than the issuance date" 申请发放日期不得晚于发放日期"The application payment date format of the bonus details is incorrect" 奖金明细的申请发放日期格式不正确 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchRemoveCompensationLumpSumPaymentResp ... +type batchRemoveCompensationLumpSumPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchRemoveCompensationLumpSumPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_lump_sum_payment_batch_update.go b/api_compensation_lump_sum_payment_batch_update.go new file mode 100644 index 00000000..c774fd56 --- /dev/null +++ b/api_compensation_lump_sum_payment_batch_update.go @@ -0,0 +1,114 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchUpdateCompensationLumpSumPayment 通过传入的一次性支付记录数据, 校验并更正一次性支付记录, 并返回更正失败原因 +// +// 本接口支持部分成功, 失败部分详细报错信息参考 `data.operate_results.code`。 +// - 当 `data.operate_results.code` 存在非 0 时, 响应体 code 仍可能返回 0 +// - 仅当出现非预期异常时, 响应体 code 才会为非 0 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/batch_update +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/lump_sum_payment/batch_update +func (r *CompensationService) BatchUpdateCompensationLumpSumPayment(ctx context.Context, request *BatchUpdateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationLumpSumPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchUpdateCompensationLumpSumPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchUpdateCompensationLumpSumPayment mock enable") + return r.cli.mock.mockCompensationBatchUpdateCompensationLumpSumPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchUpdateCompensationLumpSumPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/lump_sum_payment/batch_update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchUpdateCompensationLumpSumPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchUpdateCompensationLumpSumPayment mock CompensationBatchUpdateCompensationLumpSumPayment method +func (r *Mock) MockCompensationBatchUpdateCompensationLumpSumPayment(f func(ctx context.Context, request *BatchUpdateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationLumpSumPaymentResp, *Response, error)) { + r.mockCompensationBatchUpdateCompensationLumpSumPayment = f +} + +// UnMockCompensationBatchUpdateCompensationLumpSumPayment un-mock CompensationBatchUpdateCompensationLumpSumPayment method +func (r *Mock) UnMockCompensationBatchUpdateCompensationLumpSumPayment() { + r.mockCompensationBatchUpdateCompensationLumpSumPayment = nil +} + +// BatchUpdateCompensationLumpSumPaymentReq ... +type BatchUpdateCompensationLumpSumPaymentReq struct { + Records []*BatchUpdateCompensationLumpSumPaymentReqRecord `json:"records,omitempty"` // 要更正的一次性支付记录列表 长度范围: `0` ~ `500` +} + +// BatchUpdateCompensationLumpSumPaymentReqRecord ... +type BatchUpdateCompensationLumpSumPaymentReqRecord struct { + ID *string `json:"id,omitempty"` // 一次性支付记录 id(通过[【查询一次性支付记录】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/query) 接口进行查询)示例值: "7397033607132351532" 长度范围: `0` ~ `255` 字符 + TotalAmount int64 `json:"total_amount,omitempty"` // 总金额, 字符串表达的数字, 单位为该一次性支付记录 currency_id 对应的币种示例值: "2000.00" 长度范围: `0` ~ `255` 字符 + BindingPeriod *int64 `json:"binding_period,omitempty"` // 绑定期, 单位为月示例值: 2 取值范围: `0` ~ `2147483647` + CurrencyID string `json:"currency_id,omitempty"` // 币种 id(通过[【查询币种】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)) 接口进行查询)示例值: "6863329932261459464" 长度范围: `0` ~ `255` 字符 + IssuanceFrequency int64 `json:"issuance_frequency,omitempty"` // 发放次数, 必须与 details 的长度一致示例值: 3 取值范围: `0` ~ `2147483647` + Remark *string `json:"remark,omitempty"` // 备注示例值: "该员工奖金数据不正确, 予以更正" 长度范围: `0` ~ `3000` 字符 + ReferencePeriodStartDate *string `json:"reference_period_start_date,omitempty"` // 所属期开始日期示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + ReferencePeriodEndDate *string `json:"reference_period_end_date,omitempty"` // 所属期结束日期示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + Details []*BatchUpdateCompensationLumpSumPaymentReqRecordDetail `json:"details,omitempty"` // 发放明细列表 长度范围: `0` ~ `2147483647` + BindingPeriodDecimal *string `json:"binding_period_decimal,omitempty"` // 绑定期带小数示例值: "12" 长度范围: `0` ~ `255` 字符 + OperationSource *string `json:"operation_source,omitempty"` // 操作来源示例值: "apaas_spot" 长度范围: `0` ~ `255` 字符 +} + +// BatchUpdateCompensationLumpSumPaymentReqRecordDetail ... +type BatchUpdateCompensationLumpSumPaymentReqRecordDetail struct { + ID *string `json:"id,omitempty"` // 一次性支付记录明细id, 若需要基于已有记录进行更正, 请传入(通过[【查询一次性支付记录】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/query) 接口进行查询)示例值: "7395133551102200876" 长度范围: `0` ~ `255` 字符 + IssuanceAmount *string `json:"issuance_amount,omitempty"` // 一次性支付明细发放金额, 可转数字的字符串, 单位为该一次性支付记录 currency_id 对应的币种示例值: "2000.00" 长度范围: `0` ~ `255` 字符 + IssuanceStatus *string `json:"issuance_status,omitempty"` // 发放状态示例值: "to_be_issued"可选值有: 应发放不发放 长度范围: `0` ~ `255` 字符 + IssuanceWay *string `json:"issuance_way,omitempty"` // 发放方式示例值: "with_salary"可选值有: 随工资发放现金发放随年终奖发放 + IssuanceTime *string `json:"issuance_time,omitempty"` // 发放时间示例值: "2024-08-20" 长度范围: `0` ~ `255` 字符 + BelongTime *string `json:"belong_time,omitempty"` // 申请发放日期示例值: "2025-01-20" 长度范围: `0` ~ `255` 字符 + IssuanceCountryRegionID *string `json:"issuance_country_region_id,omitempty"` // 发放国家ID(可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)进行查询)示例值: "6862995757234914824" 长度范围: `0` ~ `255` 字符 + IssuancePayGroupID *string `json:"issuance_pay_group_id,omitempty"` // 发放薪资组ID(可通过[获取薪资组基本信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)进行查询)示例值: "6862995757234914824" 长度范围: `0` ~ `255` 字符 +} + +// BatchUpdateCompensationLumpSumPaymentResp ... +type BatchUpdateCompensationLumpSumPaymentResp struct { + OperateResults []*BatchUpdateCompensationLumpSumPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果。对于创建成功的记录, 会返回创建后的一次性支付记录id +} + +// BatchUpdateCompensationLumpSumPaymentRespOperateResult ... +type BatchUpdateCompensationLumpSumPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作的记录的 id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The bonus to be changed does not exist" 要更改的奖金不存在"Idempotent ID conflict" 幂等id冲突"The total amount format is incorrect" 总金额格式不正确"Only use the number of decimal places specified in the bonus item rules" 仅限使用奖金项规则中规定的小数位数"The sum of the bonus details does not equal the total amount" 奖金明细金额之和不等于总金额"issuance frequency not equal to size of details" 奖金明细总数不等于发放次数"The number of issuances is less than or equal to 0" 发放次数小于等于0"The currency is empty or does not exist" 币种为空或不存在"Notes are too long" 备注超长"The bonus details amount format is incorrect" 奖金明细金额格式不正确"The bonus details payment time format is incorrect" 奖金明细的发放时间格式不正确"The bonus details are issued in an illegal manner" 奖金明细的发放方式不合法"The bonus details are not in a valid payment status" 奖金明细的发放状态不合法"Employees are not covered by the bonus rules" 员工不在奖金项规则适用范围之内"The method of awarding bonus details is not covered by the bonus item rules" 奖金明细的发放方式不在奖金项规则适用范围之内"Bonus item rules do not support configuration of binding period" 奖金项规则不支持配置绑定期"The bonus details payment status is "paid", and cannot be modified" 奖金明细发放状态为「已发放」, 不支持修改"The bonus item rules already include the currency, and other currencies cannot be specified" 奖金项规则已包含币种, 不支持指定其他币种"The salary item does not exist" 薪酬项不存在"Employee does not exist" 员工不存在"The bonus details payment status is "paid", and deletion is not supported" 奖金明细发放状态为「已发放」, 不支持删除"Bonus rules do not allow multiple awards" 奖金项规则不允许多次发放"No data permission" 无数据权限"Only positive integers are allowed for the binding period" 绑定期只允许正整数"This bonus does not currently support custom binding periods. Please configure and write according to the rules for the binding period of the salary item" 该奖金暂不支持自定义绑定期, 请按照薪酬项绑定期规则配置写入"The application issuance date must not be later than the issuance date" 申请发放日期不得晚于发放日期"The application payment date format of the bonus details is incorrect" 奖金明细的申请发放日期格式不正确"The binding period and the ownership period start and end dates do not match" 绑定期和所属期开始结束日期不匹配 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchUpdateCompensationLumpSumPaymentResp ... +type batchUpdateCompensationLumpSumPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchUpdateCompensationLumpSumPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_lump_sum_payment_query.go b/api_compensation_lump_sum_payment_query.go new file mode 100644 index 00000000..482a03a4 --- /dev/null +++ b/api_compensation_lump_sum_payment_query.go @@ -0,0 +1,146 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationLumpSumPayment 根据筛选条件查询一次性支付授予记录 +// +// 请求体中的多个筛选项为”且“的关系 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/lump_sum_payment/query +func (r *CompensationService) QueryCompensationLumpSumPayment(ctx context.Context, request *QueryCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationLumpSumPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationLumpSumPayment mock enable") + return r.cli.mock.mockCompensationQueryCompensationLumpSumPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationLumpSumPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/lump_sum_payment/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationLumpSumPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationLumpSumPayment mock CompensationQueryCompensationLumpSumPayment method +func (r *Mock) MockCompensationQueryCompensationLumpSumPayment(f func(ctx context.Context, request *QueryCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentResp, *Response, error)) { + r.mockCompensationQueryCompensationLumpSumPayment = f +} + +// UnMockCompensationQueryCompensationLumpSumPayment un-mock CompensationQueryCompensationLumpSumPayment method +func (r *Mock) UnMockCompensationQueryCompensationLumpSumPayment() { + r.mockCompensationQueryCompensationLumpSumPayment = nil +} + +// QueryCompensationLumpSumPaymentReq ... +type QueryCompensationLumpSumPaymentReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + IDs []string `json:"ids,omitempty"` // 一次性支付记录 id, 可通过本接口获取示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + UniqueIDs []string `json:"unique_ids,omitempty"` // 一次性支付记录 unique_id, unique_id 在创建时由上游指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + UserIDs []string `json:"user_ids,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ItemIDs []string `json:"item_ids,omitempty"` // 薪酬项 id(通过[【查询薪酬项】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + CreateTimeGte *string `json:"create_time_gte,omitempty"` // 创建时间大于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CreateTimeLte *string `json:"create_time_lte,omitempty"` // 创建时间小于等于(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeGte *string `json:"modify_time_gte,omitempty"` // 更新时间大于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeLte *string `json:"modify_time_lte,omitempty"` // 更新时间小于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CompanyIDs []string `json:"company_ids,omitempty"` // 合同主体 id(通过[【查询合同主体】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ServiceCompanyIDs []string `json:"service_company_ids,omitempty"` // 任职公司 id(通过[【查询任职公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 id(部门id仅支持people_corehr_department_id, 通过[【查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 id(通过 [【查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 id(通过 [【查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 id(通过 [【查询工作地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 员工类型 id(可通过 [【查询员工类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + OnboardDateGte *string `json:"onboard_date_gte,omitempty"` // 员工入职日期大于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OnboardDateLte *string `json:"onboard_date_lte,omitempty"` // 员工入职日期小于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateGte *string `json:"offboard_date_gte,omitempty"` // 员工离职日期大于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateLte *string `json:"offboard_date_lte,omitempty"` // 员工离职日期小于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 +} + +// QueryCompensationLumpSumPaymentResp ... +type QueryCompensationLumpSumPaymentResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Records []*QueryCompensationLumpSumPaymentRespRecord `json:"records,omitempty"` // 一次性支付记录列表 +} + +// QueryCompensationLumpSumPaymentRespRecord ... +type QueryCompensationLumpSumPaymentRespRecord struct { + ID string `json:"id,omitempty"` // 一次性支付记录id + UniqueID string `json:"unique_id,omitempty"` // 外部幂等id, 由上游业务自由决定 + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定 + TotalAmount int64 `json:"total_amount,omitempty"` // 总金额, 字符串表达的数字 + BindingPeriod int64 `json:"binding_period,omitempty"` // 绑定期, 单位为月 + CurrencyID string `json:"currency_id,omitempty"` // 币种id + IssuanceFrequency int64 `json:"issuance_frequency,omitempty"` // 发放次数 + ItemID string `json:"item_id,omitempty"` // 薪酬项id + Remark string `json:"remark,omitempty"` // 备注 + IssuanceDetailText *QueryCompensationLumpSumPaymentRespRecordIssuanceDetailText `json:"issuance_detail_text,omitempty"` // 发放规则描述文本 + ApplySource int64 `json:"apply_source,omitempty"` // 申请来源可选值有: Offer薪酬创建导入调级调薪创建填报创建开放平台创建招聘内推创建自动化规则创建 + ReturnAmountBeforeTax string `json:"return_amount_before_tax,omitempty"` // 应退回金额(税前)字段权限要求: 获取一次性支付的应退回金额(税前) + ReturnAmountAfterTax string `json:"return_amount_after_tax,omitempty"` // 应退回金额(税后)字段权限要求: 获取一次性支付的应退回金额(税后) + BindingPeriodOffboardingType string `json:"binding_period_offboarding_type,omitempty"` // 绑定期内离职类型可选值有: 绑定期内离职绑定期外离职无绑定期离职标识字段权限要求: 获取一次性支付的绑定期内离职信息 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + ModifyTime string `json:"modify_time,omitempty"` // 更新时间 + ReferencePeriodStartDate string `json:"reference_period_start_date,omitempty"` // 所属期开始日期 + ReferencePeriodEndDate string `json:"reference_period_end_date,omitempty"` // 所属期结束日期 + Details []*QueryCompensationLumpSumPaymentRespRecordDetail `json:"details,omitempty"` // 发放明细列表 +} + +// QueryCompensationLumpSumPaymentRespRecordDetail ... +type QueryCompensationLumpSumPaymentRespRecordDetail struct { + ID string `json:"id,omitempty"` // 一次性支付记录明细id + RecordID string `json:"record_id,omitempty"` // 一次性支付记录id + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定 + IssuanceAmount string `json:"issuance_amount,omitempty"` // 一次性支付明细发放金额, 可转数字的字符串 + IssuanceStatus string `json:"issuance_status,omitempty"` // 发放状态可选值有: 应发放不发放 + IssuanceWay string `json:"issuance_way,omitempty"` // 发放方式可选值有: 随工资发放现金发放随年终奖发放 + IssuanceTime string `json:"issuance_time,omitempty"` // 发放日期 + CurrencyID string `json:"currency_id,omitempty"` // 币种id + BelongTime string `json:"belong_time,omitempty"` // 申请发放日期字段权限要求: 获取一次性支付金额的申请发放日期 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + ModifyTime string `json:"modify_time,omitempty"` // 更新时间 + IssuanceCountryRegionID string `json:"issuance_country_region_id,omitempty"` // 发放国家ID(可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)进行查询) + IssuancePayGroupID string `json:"issuance_pay_group_id,omitempty"` // 发放薪资组ID(可通过[获取薪资组基本信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)进行查询) +} + +// QueryCompensationLumpSumPaymentRespRecordIssuanceDetailText ... +type QueryCompensationLumpSumPaymentRespRecordIssuanceDetailText struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// queryCompensationLumpSumPaymentResp ... +type queryCompensationLumpSumPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationLumpSumPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_lump_sum_payment_query_detail.go b/api_compensation_lump_sum_payment_query_detail.go new file mode 100644 index 00000000..67415e1e --- /dev/null +++ b/api_compensation_lump_sum_payment_query_detail.go @@ -0,0 +1,122 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationLumpSumPaymentDetail 根据筛选条件查询一次性授予明细 +// +// 一条一次性支付授予记录可能会存在多条明细, 明细与记录之间通过其他薪酬记录id关联在一起, 查询一次性授予记录接口也会返回授予明细 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/lump_sum_payment/query_detail +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/lump_sum_payment/query_detail +func (r *CompensationService) QueryCompensationLumpSumPaymentDetail(ctx context.Context, request *QueryCompensationLumpSumPaymentDetailReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentDetailResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationLumpSumPaymentDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationLumpSumPaymentDetail mock enable") + return r.cli.mock.mockCompensationQueryCompensationLumpSumPaymentDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationLumpSumPaymentDetail", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/lump_sum_payment/query_detail", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationLumpSumPaymentDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationLumpSumPaymentDetail mock CompensationQueryCompensationLumpSumPaymentDetail method +func (r *Mock) MockCompensationQueryCompensationLumpSumPaymentDetail(f func(ctx context.Context, request *QueryCompensationLumpSumPaymentDetailReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentDetailResp, *Response, error)) { + r.mockCompensationQueryCompensationLumpSumPaymentDetail = f +} + +// UnMockCompensationQueryCompensationLumpSumPaymentDetail un-mock CompensationQueryCompensationLumpSumPaymentDetail method +func (r *Mock) UnMockCompensationQueryCompensationLumpSumPaymentDetail() { + r.mockCompensationQueryCompensationLumpSumPaymentDetail = nil +} + +// QueryCompensationLumpSumPaymentDetailReq ... +type QueryCompensationLumpSumPaymentDetailReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + IDs []string `json:"ids,omitempty"` // 一次性支付明细 id, 可通过本接口获取示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + RecordIDs []string `json:"record_ids,omitempty"` // 一次性支付记录 id, 可通过本接口获取示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + RecordUniqueIDs []string `json:"record_unique_ids,omitempty"` // 一次性支付记录 unique_id, unique_id 在创建时由上游指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + IssuanceWays []string `json:"issuance_ways,omitempty"` // 发放方式示例值: ["with_salary"]可选值有: 随工资发放现金发放实物发放随年终奖发放 长度范围: `0` ~ `500` + IssuanceStatuses []string `json:"issuance_statuses,omitempty"` // 发放状态示例值: ["to_be_issued"]可选值有: 应发放不发放 长度范围: `0` ~ `500` + UserIDs []string `json:"user_ids,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ItemIDs []string `json:"item_ids,omitempty"` // 薪酬项 id(通过[【查询薪酬项】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + IssuanceDateGte *string `json:"issuance_date_gte,omitempty"` // 发放时间大于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + IssuanceDateLte *string `json:"issuance_date_lte,omitempty"` // 发放时间小于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + CreateTimeGte *string `json:"create_time_gte,omitempty"` // 创建时间大于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CreateTimeLte *string `json:"create_time_lte,omitempty"` // 创建时间小于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeGte *string `json:"modify_time_gte,omitempty"` // 更新时间大于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeLte *string `json:"modify_time_lte,omitempty"` // 更新时间小于等于值(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CompanyIDs []string `json:"company_ids,omitempty"` // 合同主体 id(通过[【查询合同主体】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ServiceCompanyIDs []string `json:"service_company_ids,omitempty"` // 任职公司 id(通过[【查询任职公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 id(部门id仅支持people_corehr_department_id, 通过[【查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 id(通过 [【查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 id(通过 [【查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 id(通过 [【查询工作地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 员工类型 id(可通过 [【查询员工类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + OnboardDateGte *string `json:"onboard_date_gte,omitempty"` // 员工入职日期大于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OnboardDateLte *string `json:"onboard_date_lte,omitempty"` // 员工入职日期小于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateGte *string `json:"offboard_date_gte,omitempty"` // 员工离职日期大于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateLte *string `json:"offboard_date_lte,omitempty"` // 员工离职日期小于等于值示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 +} + +// QueryCompensationLumpSumPaymentDetailResp ... +type QueryCompensationLumpSumPaymentDetailResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Records []*QueryCompensationLumpSumPaymentDetailRespRecord `json:"records,omitempty"` // 一次性支付授予明细列表 +} + +// QueryCompensationLumpSumPaymentDetailRespRecord ... +type QueryCompensationLumpSumPaymentDetailRespRecord struct { + ID string `json:"id,omitempty"` // 一次性支付记录明细id + RecordID string `json:"record_id,omitempty"` // 一次性支付记录id + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定 + IssuanceAmount string `json:"issuance_amount,omitempty"` // 一次性支付明细发放金额, 可转数字的字符串 + IssuanceStatus string `json:"issuance_status,omitempty"` // 发放状态可选值有: 应发放不发放 + IssuanceWay string `json:"issuance_way,omitempty"` // 发放方式可选值有: 随工资发放现金发放随年终奖发放 + IssuanceTime string `json:"issuance_time,omitempty"` // 发放日期 + CurrencyID string `json:"currency_id,omitempty"` // 币种id + BelongTime string `json:"belong_time,omitempty"` // 申请发放日期字段权限要求: 获取一次性支付金额的申请发放日期 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + ModifyTime string `json:"modify_time,omitempty"` // 更新时间 + IssuanceCountryRegionID string `json:"issuance_country_region_id,omitempty"` // 发放国家ID(可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)进行查询) + IssuancePayGroupID string `json:"issuance_pay_group_id,omitempty"` // 发放薪资组ID(可通过[获取薪资组基本信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)进行查询) +} + +// queryCompensationLumpSumPaymentDetailResp ... +type queryCompensationLumpSumPaymentDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationLumpSumPaymentDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_recurring_payment_batch_create.go b/api_compensation_recurring_payment_batch_create.go new file mode 100644 index 00000000..bee34b61 --- /dev/null +++ b/api_compensation_recurring_payment_batch_create.go @@ -0,0 +1,99 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateCompensationRecurringPayment 根据传入的参数, 校验并创建经常性支付记录, 返回创建失败的原因或创建成功的数据ID +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/recurring_payment/batch_create +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/recurring_payment/batch_create +func (r *CompensationService) BatchCreateCompensationRecurringPayment(ctx context.Context, request *BatchCreateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationRecurringPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchCreateCompensationRecurringPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchCreateCompensationRecurringPayment mock enable") + return r.cli.mock.mockCompensationBatchCreateCompensationRecurringPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchCreateCompensationRecurringPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/recurring_payment/batch_create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCreateCompensationRecurringPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchCreateCompensationRecurringPayment mock CompensationBatchCreateCompensationRecurringPayment method +func (r *Mock) MockCompensationBatchCreateCompensationRecurringPayment(f func(ctx context.Context, request *BatchCreateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationRecurringPaymentResp, *Response, error)) { + r.mockCompensationBatchCreateCompensationRecurringPayment = f +} + +// UnMockCompensationBatchCreateCompensationRecurringPayment un-mock CompensationBatchCreateCompensationRecurringPayment method +func (r *Mock) UnMockCompensationBatchCreateCompensationRecurringPayment() { + r.mockCompensationBatchCreateCompensationRecurringPayment = nil +} + +// BatchCreateCompensationRecurringPaymentReq ... +type BatchCreateCompensationRecurringPaymentReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Records []*BatchCreateCompensationRecurringPaymentReqRecord `json:"records,omitempty"` // 要创建的经常性支付记录 长度范围: `0` ~ `500` +} + +// BatchCreateCompensationRecurringPaymentReqRecord ... +type BatchCreateCompensationRecurringPaymentReqRecord struct { + UniqueID string `json:"unique_id,omitempty"` // 经常性支付记录 unique_id, unique_id 在创建时由上游指定示例值: "7402510801304718380_7309316347007764012_7402523725868058156_1726070400000_10000" 长度范围: `0` ~ `255` 字符 + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: "7337149697626801708" 长度范围: `0` ~ `255` 字符 + ItemID string `json:"item_id,omitempty"` // 薪酬项 id(通过[【查询薪酬项】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)) 接口进行查询)示例值: "7411039006180312620" 长度范围: `0` ~ `255` 字符 + EachAmount string `json:"each_amount,omitempty"` // 每次发放金额示例值: "20.00" 长度范围: `0` ~ `255` 字符 + StartDate string `json:"start_date,omitempty"` // 发放开始时间示例值: "2024-08-01" 长度范围: `0` ~ `255` 字符 + EndDate string `json:"end_date,omitempty"` // 发放结束时间示例值: "2025-08-01" 长度范围: `0` ~ `255` 字符 + CurrencyID string `json:"currency_id,omitempty"` // 币种 id(通过[【查询币种】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)) 接口进行查询)示例值: "6863329932261459464" 长度范围: `0` ~ `255` 字符 + IssuanceType string `json:"issuance_type,omitempty"` // 发放方式示例值: "with_salary"可选值有: 随工资发放现金发放实物发放随年终奖发放 + IssuancePeriod string `json:"issuance_period,omitempty"` // 发放频率示例值: "year"可选值有: 年半年季度双月月双周周天小时 + Remark *string `json:"remark,omitempty"` // 备注示例值: "这是个备注" 长度范围: `0` ~ `3000` 字符 + IssuanceCountryRegionID *string `json:"issuance_country_region_id,omitempty"` // 发放国家id(可通过 https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search进行查询)示例值: "6862995745046267400" 长度范围: `0` ~ `255` 字符 +} + +// BatchCreateCompensationRecurringPaymentResp ... +type BatchCreateCompensationRecurringPaymentResp struct { + OperateResults []*BatchCreateCompensationRecurringPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果。对于创建成功的记录, 会返回创建后的经常性支付记录id +} + +// BatchCreateCompensationRecurringPaymentRespOperateResult ... +type BatchCreateCompensationRecurringPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作记录的id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The format of the single payment amount is incorrect" 单次发放金额格式不正确"The format of the distribution start time is incorrect" 发放开始时间格式不正确"The format of the issuance end time is incorrect" 发放结束时间格式不正确"No permission for recurring payment record" 没有该经常性支付记录权限"The recurring payment type salary item does not exist" 经常性支付类型薪酬项不存在"The currency does not exist" 币种不存在"The distribution method does not exist" 发放方式不存在"The distribution start time is greater than the distribution end time" 发放开始时间大于发放结束时间"Employees are not covered by the remuneration rules" 员工不在薪酬项规则适用范围之内"The payment method does not match the salary item rules" 发放方式不匹配薪酬项规则"Currency mismatch compensation item rules" 币种不匹配薪酬项规则"The distribution start date is earlier than the current date and cannot be deleted" 发放开始日期早于当前日期不可删除"The recurring payment record does not exist" 该经常性支付记录不存在"Payment frequency does not match the salary item" 发放频率不匹配薪酬项"The distribution start date and end date overlap" 发放开始日期和结束日期有重叠"Issuing country is empty" 发放国家为空"Issuing country does not exist" 发放国家不存在"The single payment amount cannot be 0" 单次发放金额不允许为0 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchCreateCompensationRecurringPaymentResp ... +type batchCreateCompensationRecurringPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateCompensationRecurringPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_recurring_payment_batch_remove.go b/api_compensation_recurring_payment_batch_remove.go new file mode 100644 index 00000000..c5a8eeac --- /dev/null +++ b/api_compensation_recurring_payment_batch_remove.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchRemoveCompensationRecurringPayment 指定经常性支付记录ID, 删除ID对应的经常性支付记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/recurring_payment/batch_remove +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/recurring_payment/batch_remove +func (r *CompensationService) BatchRemoveCompensationRecurringPayment(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchRemoveCompensationRecurringPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchRemoveCompensationRecurringPayment mock enable") + return r.cli.mock.mockCompensationBatchRemoveCompensationRecurringPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchRemoveCompensationRecurringPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/recurring_payment/batch_remove", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchRemoveCompensationRecurringPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchRemoveCompensationRecurringPayment mock CompensationBatchRemoveCompensationRecurringPayment method +func (r *Mock) MockCompensationBatchRemoveCompensationRecurringPayment(f func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error)) { + r.mockCompensationBatchRemoveCompensationRecurringPayment = f +} + +// UnMockCompensationBatchRemoveCompensationRecurringPayment un-mock CompensationBatchRemoveCompensationRecurringPayment method +func (r *Mock) UnMockCompensationBatchRemoveCompensationRecurringPayment() { + r.mockCompensationBatchRemoveCompensationRecurringPayment = nil +} + +// BatchRemoveCompensationRecurringPaymentReq ... +type BatchRemoveCompensationRecurringPaymentReq struct { + RecordIDs []string `json:"record_ids,omitempty"` // 需要删除的记录ID(通过[【查询经常性支付记录】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/recurring_payment/query) 接口进行查询)示例值: ["7397033607132351532"] 长度范围: `0` ~ `500` + Reason *string `json:"reason,omitempty"` // 原因示例值: "删除错误创建的数据" +} + +// BatchRemoveCompensationRecurringPaymentResp ... +type BatchRemoveCompensationRecurringPaymentResp struct { + OperateResults []*BatchRemoveCompensationRecurringPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果 +} + +// BatchRemoveCompensationRecurringPaymentRespOperateResult ... +type BatchRemoveCompensationRecurringPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作记录的id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The format of the single payment amount is incorrect" 单次发放金额格式不正确"The format of the distribution start time is incorrect" 发放开始时间格式不正确"The format of the issuance end time is incorrect" 发放结束时间格式不正确"No permission for recurring payment record" 没有该经常性支付记录权限"The recurring payment type salary item does not exist" 经常性支付类型薪酬项不存在"The currency does not exist" 币种不存在"The distribution method does not exist" 发放方式不存在"The distribution start time is greater than the distribution end time" 发放开始时间大于发放结束时间"Employees are not covered by the remuneration rules" 员工不在薪酬项规则适用范围之内"The payment method does not match the salary item rules" 发放方式不匹配薪酬项规则"Currency mismatch compensation item rules" 币种不匹配薪酬项规则"The distribution start date is earlier than the current date and cannot be deleted" 发放开始日期早于当前日期不可删除"The recurring payment record does not exist" 该经常性支付记录不存在"Payment frequency does not match the salary item" 发放频率不匹配薪酬项 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchRemoveCompensationRecurringPaymentResp ... +type batchRemoveCompensationRecurringPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchRemoveCompensationRecurringPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_recurring_payment_batch_update.go b/api_compensation_recurring_payment_batch_update.go new file mode 100644 index 00000000..b537a43c --- /dev/null +++ b/api_compensation_recurring_payment_batch_update.go @@ -0,0 +1,96 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchUpdateCompensationRecurringPayment 批量更正经常性支付记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/recurring_payment/batch_update +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/recurring_payment/batch_update +func (r *CompensationService) BatchUpdateCompensationRecurringPayment(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationBatchUpdateCompensationRecurringPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#BatchUpdateCompensationRecurringPayment mock enable") + return r.cli.mock.mockCompensationBatchUpdateCompensationRecurringPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "BatchUpdateCompensationRecurringPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/recurring_payment/batch_update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchUpdateCompensationRecurringPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationBatchUpdateCompensationRecurringPayment mock CompensationBatchUpdateCompensationRecurringPayment method +func (r *Mock) MockCompensationBatchUpdateCompensationRecurringPayment(f func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error)) { + r.mockCompensationBatchUpdateCompensationRecurringPayment = f +} + +// UnMockCompensationBatchUpdateCompensationRecurringPayment un-mock CompensationBatchUpdateCompensationRecurringPayment method +func (r *Mock) UnMockCompensationBatchUpdateCompensationRecurringPayment() { + r.mockCompensationBatchUpdateCompensationRecurringPayment = nil +} + +// BatchUpdateCompensationRecurringPaymentReq ... +type BatchUpdateCompensationRecurringPaymentReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Records []*BatchUpdateCompensationRecurringPaymentReqRecord `json:"records,omitempty"` // 需更正的经常性支付记录 长度范围: `0` ~ `500` +} + +// BatchUpdateCompensationRecurringPaymentReqRecord ... +type BatchUpdateCompensationRecurringPaymentReqRecord struct { + ID string `json:"id,omitempty"` // 经常性支付记录id示例值: "7397033607132351532" 长度范围: `0` ~ `255` 字符 + EachAmount string `json:"each_amount,omitempty"` // 每次发放金额示例值: "10.00" 长度范围: `0` ~ `255` 字符 + StartDate string `json:"start_date,omitempty"` // 发放开始时间示例值: "2024-10-20" 长度范围: `0` ~ `255` 字符 + EndDate string `json:"end_date,omitempty"` // 发放结束时间示例值: "2025-03-20" 长度范围: `0` ~ `255` 字符 + CurrencyID string `json:"currency_id,omitempty"` // 币种 id(通过[【查询币种】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)) 接口进行查询)示例值: "6863329932261459464" 长度范围: `0` ~ `255` 字符 + IssuanceType string `json:"issuance_type,omitempty"` // 发放方式示例值: "with_salary"可选值有: 随工资发放现金发放实物发放随年终奖发放 + Remark *string `json:"remark,omitempty"` // 原因示例值: "这是个备注" 长度范围: `0` ~ `3000` 字符 + IssuanceCountryRegionID *string `json:"issuance_country_region_id,omitempty"` // 发放国家id(可通过 https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search进行查询)示例值: "6862995745046267400" 长度范围: `0` ~ `255` 字符 +} + +// BatchUpdateCompensationRecurringPaymentResp ... +type BatchUpdateCompensationRecurringPaymentResp struct { + OperateResults []*BatchUpdateCompensationRecurringPaymentRespOperateResult `json:"operate_results,omitempty"` // 每条记录的操作结果 +} + +// BatchUpdateCompensationRecurringPaymentRespOperateResult ... +type BatchUpdateCompensationRecurringPaymentRespOperateResult struct { + ID string `json:"id,omitempty"` // 操作记录的id + UniqueID string `json:"unique_id,omitempty"` // 操作的记录的 unique_id + Code int64 `json:"code,omitempty"` // 操作结果状态码可选值有: "Success" 操作成功"The format of the single payment amount is incorrect" 单次发放金额格式不正确"The format of the distribution start time is incorrect" 发放开始时间格式不正确"The format of the issuance end time is incorrect" 发放结束时间格式不正确"No permission for recurring payment record" 没有该经常性支付记录权限"The recurring payment type salary item does not exist" 经常性支付类型薪酬项不存在"The currency does not exist" 币种不存在"The distribution method does not exist" 发放方式不存在"The distribution start time is greater than the distribution end time" 发放开始时间大于发放结束时间"Employees are not covered by the remuneration rules" 员工不在薪酬项规则适用范围之内"The payment method does not match the salary item rules" 发放方式不匹配薪酬项规则"Currency mismatch compensation item rules" 币种不匹配薪酬项规则"The distribution start date is earlier than the current date and cannot be deleted" 发放开始日期早于当前日期不可删除"The recurring payment record does not exist" 该经常性支付记录不存在"Payment frequency does not match the salary item" 发放频率不匹配薪酬项"The distribution start date and end date overlap" 发放开始日期和结束日期有重叠"Issuing country is empty" 发放国家为空"Issuing country does not exist" 发放国家不存在"The single payment amount cannot be 0" 单次发放金额不允许为0 + Message string `json:"message,omitempty"` // 操作结果描述 +} + +// batchUpdateCompensationRecurringPaymentResp ... +type batchUpdateCompensationRecurringPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchUpdateCompensationRecurringPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_recurring_payment_query.go b/api_compensation_recurring_payment_query.go new file mode 100644 index 00000000..d9a1937e --- /dev/null +++ b/api_compensation_recurring_payment_query.go @@ -0,0 +1,118 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationRecurringPayment 通过筛选条件, 批量查询经常性支付记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/recurring_payment/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/recurring_payment/query +func (r *CompensationService) QueryCompensationRecurringPayment(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationRecurringPayment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationRecurringPayment mock enable") + return r.cli.mock.mockCompensationQueryCompensationRecurringPayment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationRecurringPayment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/recurring_payment/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationRecurringPaymentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationRecurringPayment mock CompensationQueryCompensationRecurringPayment method +func (r *Mock) MockCompensationQueryCompensationRecurringPayment(f func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error)) { + r.mockCompensationQueryCompensationRecurringPayment = f +} + +// UnMockCompensationQueryCompensationRecurringPayment un-mock CompensationQueryCompensationRecurringPayment method +func (r *Mock) UnMockCompensationQueryCompensationRecurringPayment() { + r.mockCompensationQueryCompensationRecurringPayment = nil +} + +// QueryCompensationRecurringPaymentReq ... +type QueryCompensationRecurringPaymentReq struct { + PageSize int64 `query:"page_size" json:"-"` // 示例值: 10 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + IDs []string `json:"ids,omitempty"` // 经常性支付记录id示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + UniqueIDs []string `json:"unique_ids,omitempty"` // 经常性支付记录 unique_id, unique_id 在创建时由上游指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + UserIDs []string `json:"user_ids,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ItemIDs []string `json:"item_ids,omitempty"` // 薪酬项 id(通过[【查询薪酬项】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + StartDateGte *string `json:"start_date_gte,omitempty"` // 发放开始日期大于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + StartDateLte *string `json:"start_date_lte,omitempty"` // 发放开始日期小于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + EndDateGte *string `json:"end_date_gte,omitempty"` // 发放结束日期大于等于示例值: "2025-04-01" 长度范围: `0` ~ `255` 字符 + EndDateLte *string `json:"end_date_lte,omitempty"` // 发放结束日期小于等于示例值: "2025-08-01" 长度范围: `0` ~ `255` 字符 + CreateTimeGte *string `json:"create_time_gte,omitempty"` // 创建时间大于等于(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CreateTimeLte *string `json:"create_time_lte,omitempty"` // 创建时间小于等于(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeGte *string `json:"modify_time_gte,omitempty"` // 更新时间大于等于(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + ModifyTimeLte *string `json:"modify_time_lte,omitempty"` // 更新时间小于等于(东八区)示例值: "2023-04-01 12:34:56" 长度范围: `0` ~ `255` 字符 + CompanyIDs []string `json:"company_ids,omitempty"` // 合同主体id属于(可通过 [批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + ServiceCompanyIDs []string `json:"service_company_ids,omitempty"` // 任职公司 id(通过[【查询任职公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 id(通过[【查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 id(通过 [【查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 id(通过 [【查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 id(通过 [【查询工作地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 员工类型 id(可通过 [【查询员工类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list) 接口进行查询)示例值: ["7337149697626801708"] 长度范围: `0` ~ `500` + OnboardDateGte *string `json:"onboard_date_gte,omitempty"` // 入职日期大于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OnboardDateLte *string `json:"onboard_date_lte,omitempty"` // 入职日期小于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateGte *string `json:"offboard_date_gte,omitempty"` // 离职日期大于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 + OffboardDateLte *string `json:"offboard_date_lte,omitempty"` // 离职日期小于等于示例值: "2023-04-01" 长度范围: `0` ~ `255` 字符 +} + +// QueryCompensationRecurringPaymentResp ... +type QueryCompensationRecurringPaymentResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Records []*QueryCompensationRecurringPaymentRespRecord `json:"records,omitempty"` // 经常性支付授予记录 +} + +// QueryCompensationRecurringPaymentRespRecord ... +type QueryCompensationRecurringPaymentRespRecord struct { + ID string `json:"id,omitempty"` // 经常性支付记录id + UniqueID string `json:"unique_id,omitempty"` // 外部幂等id, 由上游业务决定 + UserID string `json:"user_id,omitempty"` // 员工id, 具体类型由入参中的 user_id_type 指定 + ItemID string `json:"item_id,omitempty"` // 薪酬项id + IssuanceType string `json:"issuance_type,omitempty"` // 发放方式可选值有: 随工资发放现金发放实物发放随年终奖发放 + EachAmount string `json:"each_amount,omitempty"` // 单次发放金额 + StartDate string `json:"start_date,omitempty"` // 发放开始日期 + EndDate string `json:"end_date,omitempty"` // 发放结束日期 + IssuancePeriod string `json:"issuance_period,omitempty"` // 发放频率可选值有: 年半年季度双月月双周周日小时 + CurrencyID string `json:"currency_id,omitempty"` // 币种id + Remark string `json:"remark,omitempty"` // 备注 + IssuanceCountryRegionID string `json:"issuance_country_region_id,omitempty"` // 发放国家id(可通过 https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search进行查询) +} + +// queryCompensationRecurringPaymentResp ... +type queryCompensationRecurringPaymentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationRecurringPaymentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_social_archive_adjust_record_query.go b/api_compensation_social_archive_adjust_record_query.go new file mode 100644 index 00000000..a413c316 --- /dev/null +++ b/api_compensation_social_archive_adjust_record_query.go @@ -0,0 +1,139 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationSocialArchiveAdjustRecord 通过员工ID批量获取社保增减员记录 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_archive_adjust_record/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/social_archive/query-2 +func (r *CompensationService) QueryCompensationSocialArchiveAdjustRecord(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationSocialArchiveAdjustRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationSocialArchiveAdjustRecord mock enable") + return r.cli.mock.mockCompensationQueryCompensationSocialArchiveAdjustRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationSocialArchiveAdjustRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/social_archive_adjust_record/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationSocialArchiveAdjustRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationSocialArchiveAdjustRecord mock CompensationQueryCompensationSocialArchiveAdjustRecord method +func (r *Mock) MockCompensationQueryCompensationSocialArchiveAdjustRecord(f func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error)) { + r.mockCompensationQueryCompensationSocialArchiveAdjustRecord = f +} + +// UnMockCompensationQueryCompensationSocialArchiveAdjustRecord un-mock CompensationQueryCompensationSocialArchiveAdjustRecord method +func (r *Mock) UnMockCompensationQueryCompensationSocialArchiveAdjustRecord() { + r.mockCompensationQueryCompensationSocialArchiveAdjustRecord = nil +} + +// QueryCompensationSocialArchiveAdjustRecordReq ... +type QueryCompensationSocialArchiveAdjustRecordReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDList []string `json:"user_id_list,omitempty"` // 用户ID列表, 与入参 user_id_type 类型一致。ID可通过接口[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取示例值: ["7134995965475620396"] 长度范围: `0` ~ `200` + RecordType string `json:"record_type,omitempty"` // 增减员类型, increase: 增员; attrition: 减员示例值: "increase"可选值有: 增员减员 长度范围: `1` ~ `32` 字符 +} + +// QueryCompensationSocialArchiveAdjustRecordResp ... +type QueryCompensationSocialArchiveAdjustRecordResp struct { + Records []*QueryCompensationSocialArchiveAdjustRecordRespRecord `json:"records,omitempty"` // 增/减员记录 +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecord ... +type QueryCompensationSocialArchiveAdjustRecordRespRecord struct { + UserID string `json:"user_id,omitempty"` // 员工ID, 与入参 user_id_type 类型一致 + RecordType string `json:"record_type,omitempty"` // 类型, increase: 增员; attrition: 减员可选值有: 增员减员 + Details []*QueryCompensationSocialArchiveAdjustRecordRespRecordDetail `json:"details,omitempty"` // 员工增减员记录, 包括社保、公积金记录 +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecordDetail ... +type QueryCompensationSocialArchiveAdjustRecordRespRecordDetail struct { + Description *QueryCompensationSocialArchiveAdjustRecordRespRecordDetailDescription `json:"description,omitempty"` // 调整说明 + InsuranceType string `json:"insurance_type,omitempty"` // 类型。social_insurance: 社保; provident_fund: 公积金可选值有: 社保公积金 + InsuranceStatus string `json:"insurance_status,omitempty"` // 参保状态, 非「参保」状态下, 基数、险种数据等为空可选值有: 参保不参保停保 + ID string `json:"id,omitempty"` // 员工参保档案ID(返回为空, 增减员记录中无此数据) + Tid string `json:"tid,omitempty"` // 员工参保档案调整记录ID(返回为空, 增减员记录中无此数据) + PlanID string `json:"plan_id,omitempty"` // 参保方案ID, 详细信息可通过[查询参保方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_plan/query)接口获取。当record_type为attrition时, 不返回该数据 + PlanTid string `json:"plan_tid,omitempty"` // 参保方案版本ID。当record_type为attrition时, 不返回该数据 + LocationID string `json:"location_id,omitempty"` // 参保城市ID, 可通过[获取地点信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口查询详细信息。当record_type为attrition时, 不返回该数据 + CompanyID string `json:"company_id,omitempty"` // 社保缴纳主体ID, 可通过[获取公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)接口查询详细信息。当record_type为attrition时, 不返回该数据 + AccountType string `json:"account_type,omitempty"` // 社保账户类型。当record_type为attrition时, 不返回该数据 + InsuranceAccount string `json:"insurance_account,omitempty"` // 社保账号。当record_type为attrition时, 不返回该数据 + BaseSalary string `json:"base_salary,omitempty"` // 申报缴纳基数, 单位: 元。当record_type为attrition时, 不返回该数据 + InsuranceDetails []*QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetail `json:"insurance_details,omitempty"` // 险种数据详情。当record_type为attrition时, 不返回该数据 + EffectiveDate string `json:"effective_date,omitempty"` // 待增员参保年月/待减员停缴年月, HHHH-MM-DD +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecordDetailDescription ... +type QueryCompensationSocialArchiveAdjustRecordRespRecordDetailDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetail ... +type QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetail struct { + InsuranceID string `json:"insurance_id,omitempty"` // 险种ID, 可通过[获取险种配置列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_insurance/list)接口查询 + CompanyDeduction string `json:"company_deduction,omitempty"` // 企业缴纳金额, 单位: 元 + CompanySetting *QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailCompanySetting `json:"company_setting,omitempty"` // 企业缴纳配置 + PersonalDeduction string `json:"personal_deduction,omitempty"` // 个人缴纳金额, 单位: 元 + PersonalSetting *QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailPersonalSetting `json:"personal_setting,omitempty"` // 个人缴纳配置 + PaymentFrequency string `json:"payment_frequency,omitempty"` // 缴纳频率可选值有: 每年每月每季度 + PaymentMonths []int64 `json:"payment_months,omitempty"` // 缴纳月份, 1月~12月 +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailCompanySetting ... +type QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailCompanySetting struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailPersonalSetting ... +type QueryCompensationSocialArchiveAdjustRecordRespRecordDetailInsuranceDetailPersonalSetting struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// queryCompensationSocialArchiveAdjustRecordResp ... +type queryCompensationSocialArchiveAdjustRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationSocialArchiveAdjustRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_social_archive_query.go b/api_compensation_social_archive_query.go new file mode 100644 index 00000000..df1b29eb --- /dev/null +++ b/api_compensation_social_archive_query.go @@ -0,0 +1,138 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationSocialArchive 通过用户ID列表和生效日期查询 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_archive/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/social_archive/query +func (r *CompensationService) QueryCompensationSocialArchive(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationSocialArchive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationSocialArchive mock enable") + return r.cli.mock.mockCompensationQueryCompensationSocialArchive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationSocialArchive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/social_archive/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationSocialArchiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationSocialArchive mock CompensationQueryCompensationSocialArchive method +func (r *Mock) MockCompensationQueryCompensationSocialArchive(f func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error)) { + r.mockCompensationQueryCompensationSocialArchive = f +} + +// UnMockCompensationQueryCompensationSocialArchive un-mock CompensationQueryCompensationSocialArchive method +func (r *Mock) UnMockCompensationQueryCompensationSocialArchive() { + r.mockCompensationQueryCompensationSocialArchive = nil +} + +// QueryCompensationSocialArchiveReq ... +type QueryCompensationSocialArchiveReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDList []string `json:"user_id_list,omitempty"` // 用户ID列表, 与入参 user_id_type 类型一致, 最少1个, 最大200示例值: ["7023711013443944467"] 长度范围: `0` ~ `200` + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 查询在该日期生效的社保档案, 格式为 YYYY-mm-dd, 长度为 10 字符示例值: "2024-01-01" +} + +// QueryCompensationSocialArchiveResp ... +type QueryCompensationSocialArchiveResp struct { + Archives []*QueryCompensationSocialArchiveRespArchive `json:"archives,omitempty"` // 参保档案列表 +} + +// QueryCompensationSocialArchiveRespArchive ... +type QueryCompensationSocialArchiveRespArchive struct { + UserID string `json:"user_id,omitempty"` // 员工ID, 与入参 user_id_type 类型一致 + Details []*QueryCompensationSocialArchiveRespArchiveDetail `json:"details,omitempty"` // 员工参保档案, 包含社保、公积金档案 +} + +// QueryCompensationSocialArchiveRespArchiveDetail ... +type QueryCompensationSocialArchiveRespArchiveDetail struct { + Description *QueryCompensationSocialArchiveRespArchiveDetailDescription `json:"description,omitempty"` // 调整说明 + InsuranceType string `json:"insurance_type,omitempty"` // 类型。social_insurance: 社保; provident_fund: 公积金可选值有: 社保公积金 + InsuranceStatus string `json:"insurance_status,omitempty"` // 参保状态, 非「参保」状态下, 基数、险种数据等为空可选值有: 参保不参保停保 + ID string `json:"id,omitempty"` // 员工参保档案ID + Tid string `json:"tid,omitempty"` // 员工参保档案调整记录ID(根据档案生效时间查询对应年月的调整记录) + PlanID string `json:"plan_id,omitempty"` // 参保方案ID, 详细信息可通过[查询参保方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_plan/query)接口获取 + PlanTid string `json:"plan_tid,omitempty"` // 参保方案版本ID + LocationID string `json:"location_id,omitempty"` // 参保城市ID, 可通过[获取地点信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口查询详细信息 + CompanyID string `json:"company_id,omitempty"` // 社保缴纳主体ID, 可通过[获取公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)接口查询详细信息 + AccountType string `json:"account_type,omitempty"` // 社保账户类型 + InsuranceAccount string `json:"insurance_account,omitempty"` // 社保账号 + BaseSalary string `json:"base_salary,omitempty"` // 申报缴纳基数, 单位: 元 + InsuranceDetails []*QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetail `json:"insurance_details,omitempty"` // 险种数据详情 + EffectiveDate string `json:"effective_date,omitempty"` // 档案生效时间, yyyy-MM-dd +} + +// QueryCompensationSocialArchiveRespArchiveDetailDescription ... +type QueryCompensationSocialArchiveRespArchiveDetailDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 2024年社保基数调整 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetail ... +type QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetail struct { + InsuranceID string `json:"insurance_id,omitempty"` // 险种ID, 可通过[获取险种配置列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_insurance/list)接口查询 + CompanyDeduction string `json:"company_deduction,omitempty"` // 企业缴纳金额, 单位: 元 + CompanySetting *QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailCompanySetting `json:"company_setting,omitempty"` // 企业缴纳配置 + PersonalDeduction string `json:"personal_deduction,omitempty"` // 个人缴纳金额, 单位: 元 + PersonalSetting *QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailPersonalSetting `json:"personal_setting,omitempty"` // 个人缴纳配置 + PaymentFrequency string `json:"payment_frequency,omitempty"` // 缴纳频率可选值有: 每年每月每季度 + PaymentMonths []int64 `json:"payment_months,omitempty"` // 缴纳月份, 1月~12月 +} + +// QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailCompanySetting ... +type QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailCompanySetting struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailPersonalSetting ... +type QueryCompensationSocialArchiveRespArchiveDetailInsuranceDetailPersonalSetting struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// queryCompensationSocialArchiveResp ... +type queryCompensationSocialArchiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationSocialArchiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_social_insurance_list.go b/api_compensation_social_insurance_list.go new file mode 100644 index 00000000..d4a8540d --- /dev/null +++ b/api_compensation_social_insurance_list.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCompensationSocialInsurance 获取飞书人事系统中社保公积金设置下的险种配置详细列表, 包括险种名称、类型等信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_insurance/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/social_insurance/list +func (r *CompensationService) ListCompensationSocialInsurance(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) { + if r.cli.mock.mockCompensationListCompensationSocialInsurance != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#ListCompensationSocialInsurance mock enable") + return r.cli.mock.mockCompensationListCompensationSocialInsurance(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "ListCompensationSocialInsurance", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/social_insurances", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCompensationSocialInsuranceResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationListCompensationSocialInsurance mock CompensationListCompensationSocialInsurance method +func (r *Mock) MockCompensationListCompensationSocialInsurance(f func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error)) { + r.mockCompensationListCompensationSocialInsurance = f +} + +// UnMockCompensationListCompensationSocialInsurance un-mock CompensationListCompensationSocialInsurance method +func (r *Mock) UnMockCompensationListCompensationSocialInsurance() { + r.mockCompensationListCompensationSocialInsurance = nil +} + +// ListCompensationSocialInsuranceReq ... +type ListCompensationSocialInsuranceReq struct { +} + +// ListCompensationSocialInsuranceResp ... +type ListCompensationSocialInsuranceResp struct { + Items []*ListCompensationSocialInsuranceRespItem `json:"items,omitempty"` // 险种列表 +} + +// ListCompensationSocialInsuranceRespItem ... +type ListCompensationSocialInsuranceRespItem struct { + ID string `json:"id,omitempty"` // 险种唯一ID + Name *ListCompensationSocialInsuranceRespItemName `json:"name,omitempty"` // 险种名称 + InsuranceType string `json:"insurance_type,omitempty"` // 险种类型. social_insurance: 社保; provident_fund: 公积金可选值有: 社保公积金 + Active bool `json:"active,omitempty"` // 启用状态, true: 启用, false: 停用; + IsSystem bool `json:"is_system,omitempty"` // 是否为系统预置险种, true: 预置险种, false: 自定义险种 +} + +// ListCompensationSocialInsuranceRespItemName ... +type ListCompensationSocialInsuranceRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listCompensationSocialInsuranceResp ... +type listCompensationSocialInsuranceResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCompensationSocialInsuranceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_social_plan_list.go b/api_compensation_social_plan_list.go new file mode 100644 index 00000000..d1c1eb1e --- /dev/null +++ b/api_compensation_social_plan_list.go @@ -0,0 +1,147 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCompensationSocialPlan 通过生效日期effective_date参数过滤并分页返回结果 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_plan/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/social_plan/list +func (r *CompensationService) ListCompensationSocialPlan(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) { + if r.cli.mock.mockCompensationListCompensationSocialPlan != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#ListCompensationSocialPlan mock enable") + return r.cli.mock.mockCompensationListCompensationSocialPlan(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "ListCompensationSocialPlan", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/social_plans", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCompensationSocialPlanResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationListCompensationSocialPlan mock CompensationListCompensationSocialPlan method +func (r *Mock) MockCompensationListCompensationSocialPlan(f func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error)) { + r.mockCompensationListCompensationSocialPlan = f +} + +// UnMockCompensationListCompensationSocialPlan un-mock CompensationListCompensationSocialPlan method +func (r *Mock) UnMockCompensationListCompensationSocialPlan() { + r.mockCompensationListCompensationSocialPlan = nil +} + +// ListCompensationSocialPlanReq ... +type ListCompensationSocialPlanReq struct { + EffectiveDate string `query:"effective_date" json:"-"` // 生效日期, 查询在该日期生效的参保方案数据, 格式为 YYYY-mm-dd, 长度为 10 字符示例值: 2024-01-01 + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 默认100, 最大200示例值: 10默认值: `100` 取值范围: `10` ~ `200` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + InsuranceType *string `query:"insurance_type" json:"-"` // 社保方案/公积金方案示例值: social_insurance可选值有: 社保公积金 长度范围: `8` ~ `64` 字符 +} + +// ListCompensationSocialPlanResp ... +type ListCompensationSocialPlanResp struct { + Plans []*ListCompensationSocialPlanRespPlan `json:"plans,omitempty"` // 方案列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListCompensationSocialPlanRespPlan ... +type ListCompensationSocialPlanRespPlan struct { + PlanID string `json:"plan_id,omitempty"` // 参保方案ID + PlanTid string `json:"plan_tid,omitempty"` // 参保方案版本ID + Name *ListCompensationSocialPlanRespPlanName `json:"name,omitempty"` // 参保方案名称 + EffectiveDate string `json:"effective_date,omitempty"` // 生效时间, yyyy-MM-dd + Active bool `json:"active,omitempty"` // 是否启用 + InsuranceType string `json:"insurance_type,omitempty"` // 险种类型. social_insurance: 社保; provident_fund: 公积金可选值有: 社保公积金 + Scope *ListCompensationSocialPlanRespPlanScope `json:"scope,omitempty"` // 参保方案适用范围 + ItemDetail []*ListCompensationSocialPlanRespPlanItemDetail `json:"item_detail,omitempty"` // 参保信息 + Remark *ListCompensationSocialPlanRespPlanRemark `json:"remark,omitempty"` // 备注 +} + +// ListCompensationSocialPlanRespPlanItemDetail ... +type ListCompensationSocialPlanRespPlanItemDetail struct { + ItemID string `json:"item_id,omitempty"` // 险种ID, 可通过[获取险种配置列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_insurance/list)接口查询 + ItemName *ListCompensationSocialPlanRespPlanItemDetailItemName `json:"item_name,omitempty"` // 险种名 + ItemSettingOfPerson *ListCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson `json:"item_setting_of_person,omitempty"` // 个人缴纳配置 + ItemSettingOfCompany *ListCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany `json:"item_setting_of_company,omitempty"` // 企业缴纳配置 + PaymentFrequency string `json:"payment_frequency,omitempty"` // 缴纳频率可选值有: 每年每月每季度 + PaymentMonths []int64 `json:"payment_months,omitempty"` // 缴纳月份, 1月~12月 +} + +// ListCompensationSocialPlanRespPlanItemDetailItemName ... +type ListCompensationSocialPlanRespPlanItemDetailItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany ... +type ListCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// ListCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson ... +type ListCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// ListCompensationSocialPlanRespPlanName ... +type ListCompensationSocialPlanRespPlanName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListCompensationSocialPlanRespPlanRemark ... +type ListCompensationSocialPlanRespPlanRemark struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文备注 +} + +// ListCompensationSocialPlanRespPlanScope ... +type ListCompensationSocialPlanRespPlanScope struct { + IsAll bool `json:"is_all,omitempty"` // 是否适用于全部 + Rules [][]interface{} `json:"rules,omitempty"` // rules: 配置的条件规则。返回两层结构: [条件组[条件]]。多个 [条件组] 之间是 或 的关系, 一个条件组内的多个 [条件] 是 且 的关系。 比如: rules: [[1, 2], [3, 4]], 业务含义为: (1 and 2) or (3 and 4) rules [][]social_plan_condition 适用范围 - left_type int 可选值有: ``1``: 参保城市 ``2``: 缴纳主体 - operator int 可选值有: ``1``: 包含 - right_values []string --当left_type=1时, 是参保城市ID--当left_type=2时, 是缴纳主体ID +} + +// listCompensationSocialPlanResp ... +type listCompensationSocialPlanResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCompensationSocialPlanResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_compensation_social_plan_query.go b/api_compensation_social_plan_query.go new file mode 100644 index 00000000..aab88f4d --- /dev/null +++ b/api_compensation_social_plan_query.go @@ -0,0 +1,143 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCompensationSocialPlan 通过plan_ids列表和effective_date联合过滤数据库中的参保方案数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_plan/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/social_plan/query +func (r *CompensationService) QueryCompensationSocialPlan(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) { + if r.cli.mock.mockCompensationQueryCompensationSocialPlan != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Compensation#QueryCompensationSocialPlan mock enable") + return r.cli.mock.mockCompensationQueryCompensationSocialPlan(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Compensation", + API: "QueryCompensationSocialPlan", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/compensation/v1/social_plans/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCompensationSocialPlanResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCompensationQueryCompensationSocialPlan mock CompensationQueryCompensationSocialPlan method +func (r *Mock) MockCompensationQueryCompensationSocialPlan(f func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error)) { + r.mockCompensationQueryCompensationSocialPlan = f +} + +// UnMockCompensationQueryCompensationSocialPlan un-mock CompensationQueryCompensationSocialPlan method +func (r *Mock) UnMockCompensationQueryCompensationSocialPlan() { + r.mockCompensationQueryCompensationSocialPlan = nil +} + +// QueryCompensationSocialPlanReq ... +type QueryCompensationSocialPlanReq struct { + PlanIDs []string `json:"plan_ids,omitempty"` // 参保方案ID列表, 最少1个, 最大200, 可以通过[通过员工ID批量获取社保增减员记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_archive_adjust_record/query)或[批量获取员工参保档案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_archive/query)接口获取示例值: ["10001"] 长度范围: `0` ~ `200` + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 查询在该日期生效的参保方案数据, 日期格式为: YYYY-mm-dd, 长度为 10 字符示例值: "2024-01-01" +} + +// QueryCompensationSocialPlanResp ... +type QueryCompensationSocialPlanResp struct { + Plans []*QueryCompensationSocialPlanRespPlan `json:"plans,omitempty"` // 方案列表 +} + +// QueryCompensationSocialPlanRespPlan ... +type QueryCompensationSocialPlanRespPlan struct { + PlanID string `json:"plan_id,omitempty"` // 参保方案ID + PlanTid string `json:"plan_tid,omitempty"` // 参保方案版本ID + Name *QueryCompensationSocialPlanRespPlanName `json:"name,omitempty"` // 参保方案名称 + EffectiveDate string `json:"effective_date,omitempty"` // 生效时间, yyyy-MM-dd + Active bool `json:"active,omitempty"` // 是否启用 + InsuranceType string `json:"insurance_type,omitempty"` // 险种类型. social_insurance: 社保; provident_fund: 公积金可选值有: 社保公积金 + Scope *QueryCompensationSocialPlanRespPlanScope `json:"scope,omitempty"` // 参保方案适用范围 + ItemDetail []*QueryCompensationSocialPlanRespPlanItemDetail `json:"item_detail,omitempty"` // 参保信息 + Remark *QueryCompensationSocialPlanRespPlanRemark `json:"remark,omitempty"` // 备注 +} + +// QueryCompensationSocialPlanRespPlanItemDetail ... +type QueryCompensationSocialPlanRespPlanItemDetail struct { + ItemID string `json:"item_id,omitempty"` // 险种ID, 可通过[获取险种配置列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/social_insurance/list)接口查询 + ItemName *QueryCompensationSocialPlanRespPlanItemDetailItemName `json:"item_name,omitempty"` // 险种名 + ItemSettingOfPerson *QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson `json:"item_setting_of_person,omitempty"` // 个人缴纳配置 + ItemSettingOfCompany *QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany `json:"item_setting_of_company,omitempty"` // 企业缴纳配置 + PaymentFrequency string `json:"payment_frequency,omitempty"` // 缴纳频率可选值有: 每年每月每季度 + PaymentMonths []int64 `json:"payment_months,omitempty"` // 缴纳月份, 1月~12月 +} + +// QueryCompensationSocialPlanRespPlanItemDetailItemName ... +type QueryCompensationSocialPlanRespPlanItemDetailItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany ... +type QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfCompany struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0-6之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson ... +type QueryCompensationSocialPlanRespPlanItemDetailItemSettingOfPerson struct { + LowerLimit string `json:"lower_limit,omitempty"` // 基数下限, 浮点数, 保留二位小数, 单位: 元 + UpperLimit string `json:"upper_limit,omitempty"` // 基数上限, 浮点数, 保留二位小数, 单位: 元 + PaymentRatio string `json:"payment_ratio,omitempty"` // 缴纳比例, 浮点数, 默认填充到二位小数, 支持输入到四位, 单位为 % + PaymentRoundingRule string `json:"payment_rounding_rule,omitempty"` // 缴纳金舍入规则。rounding: 四舍五入; round_up: 向上舍入; round_down: 向下舍入可选值有: 四舍五入向上舍入向下舍入 + PaymentDecimals int64 `json:"payment_decimals,omitempty"` // 缴纳金小数位数, 0位小数-6位小数之间选择 + FixedPayment string `json:"fixed_payment,omitempty"` // 附加固定金额, 浮点数, 保留二位小数, 单位: 元 +} + +// QueryCompensationSocialPlanRespPlanName ... +type QueryCompensationSocialPlanRespPlanName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// QueryCompensationSocialPlanRespPlanRemark ... +type QueryCompensationSocialPlanRespPlanRemark struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// QueryCompensationSocialPlanRespPlanScope ... +type QueryCompensationSocialPlanRespPlanScope struct { + IsAll bool `json:"is_all,omitempty"` // 是否适用于全部 + Rules [][]interface{} `json:"rules,omitempty"` // rules: 配置的条件规则。返回两层结构: [条件组[条件]]。多个 [条件组] 之间是 或 的关系, 一个条件组内的多个 [条件] 是 且 的关系。 比如: rules: [[1, 2], [3, 4]], 业务含义为: (1 and 2) or (3 and 4) rules [][]social_plan_condition 适用范围 - left_type int 可选值有: ``1``: 参保城市 ``2``: 缴纳主体 - operator int 可选值有: ``1``: 包含 - right_values []string --当left_type=1时, 是参保城市ID--当left_type=2时, 是缴纳主体ID +} + +// queryCompensationSocialPlanResp ... +type queryCompensationSocialPlanResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCompensationSocialPlanResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_contact_department_delete.go b/api_contact_department_delete.go index 5f3a6004..8f0073d1 100644 --- a/api_contact_department_delete.go +++ b/api_contact_department_delete.go @@ -69,7 +69,8 @@ type DeleteDepartmentReq struct { } // DeleteDepartmentResp ... -type DeleteDepartmentResp struct{} +type DeleteDepartmentResp struct { +} // deleteDepartmentResp ... type deleteDepartmentResp struct { diff --git a/api_contact_department_department_id_update.go b/api_contact_department_department_id_update.go index 45118b40..98a60e31 100644 --- a/api_contact_department_department_id_update.go +++ b/api_contact_department_department_id_update.go @@ -67,7 +67,8 @@ type UpdateDepartmentIDReq struct { } // UpdateDepartmentIDResp ... -type UpdateDepartmentIDResp struct{} +type UpdateDepartmentIDResp struct { +} // updateDepartmentIDResp ... type updateDepartmentIDResp struct { diff --git a/api_contact_department_unbind_department_chat.go b/api_contact_department_unbind_department_chat.go index a0e45442..70cad0e8 100644 --- a/api_contact_department_unbind_department_chat.go +++ b/api_contact_department_unbind_department_chat.go @@ -66,7 +66,8 @@ type UnbindDepartmentChatReq struct { } // UnbindDepartmentChatResp ... -type UnbindDepartmentChatResp struct{} +type UnbindDepartmentChatResp struct { +} // unbindDepartmentChatResp ... type unbindDepartmentChatResp struct { diff --git a/api_contact_employee_type_enums_delete.go b/api_contact_employee_type_enums_delete.go index 7d4f7a4f..a63c8863 100644 --- a/api_contact_employee_type_enums_delete.go +++ b/api_contact_employee_type_enums_delete.go @@ -65,7 +65,8 @@ type DeleteEmployeeTypeEnumReq struct { } // DeleteEmployeeTypeEnumResp ... -type DeleteEmployeeTypeEnumResp struct{} +type DeleteEmployeeTypeEnumResp struct { +} // deleteEmployeeTypeEnumResp ... type deleteEmployeeTypeEnumResp struct { diff --git a/api_contact_functional_role_delete.go b/api_contact_functional_role_delete.go index 2f6dd04a..90687bcc 100644 --- a/api_contact_functional_role_delete.go +++ b/api_contact_functional_role_delete.go @@ -65,7 +65,8 @@ type DeleteContactFunctionalRoleReq struct { } // DeleteContactFunctionalRoleResp ... -type DeleteContactFunctionalRoleResp struct{} +type DeleteContactFunctionalRoleResp struct { +} // deleteContactFunctionalRoleResp ... type deleteContactFunctionalRoleResp struct { diff --git a/api_contact_functional_role_update.go b/api_contact_functional_role_update.go index 4d6bc221..ff18b5a2 100644 --- a/api_contact_functional_role_update.go +++ b/api_contact_functional_role_update.go @@ -63,7 +63,8 @@ type UpdateContactFunctionalRoleReq struct { } // UpdateContactFunctionalRoleResp ... -type UpdateContactFunctionalRoleResp struct{} +type UpdateContactFunctionalRoleResp struct { +} // updateContactFunctionalRoleResp ... type updateContactFunctionalRoleResp struct { diff --git a/api_contact_group_Delete.go b/api_contact_group_Delete.go index 1fcccbd0..dd274285 100644 --- a/api_contact_group_Delete.go +++ b/api_contact_group_Delete.go @@ -66,7 +66,8 @@ type DeleteContactGroupReq struct { } // DeleteContactGroupResp ... -type DeleteContactGroupResp struct{} +type DeleteContactGroupResp struct { +} // deleteContactGroupResp ... type deleteContactGroupResp struct { diff --git a/api_contact_group_member_add.go b/api_contact_group_member_add.go index 4a4acfeb..7f78e2f7 100644 --- a/api_contact_group_member_add.go +++ b/api_contact_group_member_add.go @@ -71,7 +71,8 @@ type AddContactGroupMemberReq struct { } // AddContactGroupMemberResp ... -type AddContactGroupMemberResp struct{} +type AddContactGroupMemberResp struct { +} // addContactGroupMemberResp ... type addContactGroupMemberResp struct { diff --git a/api_contact_group_member_delete.go b/api_contact_group_member_delete.go index 14ca6c62..f1f6a106 100644 --- a/api_contact_group_member_delete.go +++ b/api_contact_group_member_delete.go @@ -69,7 +69,8 @@ type DeleteContactGroupMemberReq struct { } // DeleteContactGroupMemberResp ... -type DeleteContactGroupMemberResp struct{} +type DeleteContactGroupMemberResp struct { +} // deleteContactGroupMemberResp ... type deleteContactGroupMemberResp struct { diff --git a/api_contact_group_member_delete_batch.go b/api_contact_group_member_delete_batch.go index dfc32797..dcea2ced 100644 --- a/api_contact_group_member_delete_batch.go +++ b/api_contact_group_member_delete_batch.go @@ -74,7 +74,8 @@ type BatchDeleteContactGroupMemberReqMember struct { } // BatchDeleteContactGroupMemberResp ... -type BatchDeleteContactGroupMemberResp struct{} +type BatchDeleteContactGroupMemberResp struct { +} // batchDeleteContactGroupMemberResp ... type batchDeleteContactGroupMemberResp struct { diff --git a/api_contact_group_update.go b/api_contact_group_update.go index 1b4ec1d9..f38fe57b 100644 --- a/api_contact_group_update.go +++ b/api_contact_group_update.go @@ -72,7 +72,8 @@ type UpdateContactGroupReq struct { } // UpdateContactGroupResp ... -type UpdateContactGroupResp struct{} +type UpdateContactGroupResp struct { +} // updateContactGroupResp ... type updateContactGroupResp struct { diff --git a/api_contact_job_family_delete.go b/api_contact_job_family_delete.go index d0ba40e0..8771b932 100644 --- a/api_contact_job_family_delete.go +++ b/api_contact_job_family_delete.go @@ -65,7 +65,8 @@ type DeleteContactJobFamilyReq struct { } // DeleteContactJobFamilyResp ... -type DeleteContactJobFamilyResp struct{} +type DeleteContactJobFamilyResp struct { +} // deleteContactJobFamilyResp ... type deleteContactJobFamilyResp struct { diff --git a/api_contact_job_level_delete.go b/api_contact_job_level_delete.go index 627cfb34..9165aa84 100644 --- a/api_contact_job_level_delete.go +++ b/api_contact_job_level_delete.go @@ -62,7 +62,8 @@ type DeleteContactJobLevelReq struct { } // DeleteContactJobLevelResp ... -type DeleteContactJobLevelResp struct{} +type DeleteContactJobLevelResp struct { +} // deleteContactJobLevelResp ... type deleteContactJobLevelResp struct { diff --git a/api_contact_unit_bind_department.go b/api_contact_unit_bind_department.go index 6059f06b..c5693497 100644 --- a/api_contact_unit_bind_department.go +++ b/api_contact_unit_bind_department.go @@ -70,7 +70,8 @@ type BindContactUnitDepartmentReq struct { } // BindContactUnitDepartmentResp ... -type BindContactUnitDepartmentResp struct{} +type BindContactUnitDepartmentResp struct { +} // bindContactUnitDepartmentResp ... type bindContactUnitDepartmentResp struct { diff --git a/api_contact_unit_delete.go b/api_contact_unit_delete.go index 17d88bc1..a8981814 100644 --- a/api_contact_unit_delete.go +++ b/api_contact_unit_delete.go @@ -65,7 +65,8 @@ type DeleteContactUnitReq struct { } // DeleteContactUnitResp ... -type DeleteContactUnitResp struct{} +type DeleteContactUnitResp struct { +} // deleteContactUnitResp ... type deleteContactUnitResp struct { diff --git a/api_contact_unit_unbind_department.go b/api_contact_unit_unbind_department.go index 881d4325..184600d5 100644 --- a/api_contact_unit_unbind_department.go +++ b/api_contact_unit_unbind_department.go @@ -67,7 +67,8 @@ type UnbindContactUnitDepartmentReq struct { } // UnbindContactUnitDepartmentResp ... -type UnbindContactUnitDepartmentResp struct{} +type UnbindContactUnitDepartmentResp struct { +} // unbindContactUnitDepartmentResp ... type unbindContactUnitDepartmentResp struct { diff --git a/api_contact_unit_update.go b/api_contact_unit_update.go index bea03b6f..456bf946 100644 --- a/api_contact_unit_update.go +++ b/api_contact_unit_update.go @@ -63,7 +63,8 @@ type UpdateContactUnitReq struct { } // UpdateContactUnitResp ... -type UpdateContactUnitResp struct{} +type UpdateContactUnitResp struct { +} // updateContactUnitResp ... type updateContactUnitResp struct { diff --git a/api_contact_user_delete.go b/api_contact_user_delete.go index 4c2e7477..c198c297 100644 --- a/api_contact_user_delete.go +++ b/api_contact_user_delete.go @@ -82,7 +82,8 @@ type DeleteUserReqEmailAcceptor struct { } // DeleteUserResp ... -type DeleteUserResp struct{} +type DeleteUserResp struct { +} // deleteUserResp ... type deleteUserResp struct { diff --git a/api_contact_user_id_update.go b/api_contact_user_id_update.go index 7e447ad0..b94a693d 100644 --- a/api_contact_user_id_update.go +++ b/api_contact_user_id_update.go @@ -67,7 +67,8 @@ type UpdateUserIDReq struct { } // UpdateUserIDResp ... -type UpdateUserIDResp struct{} +type UpdateUserIDResp struct { +} // updateUserIDResp ... type updateUserIDResp struct { diff --git a/api_contact_user_resurrect.go b/api_contact_user_resurrect.go index 771955ae..eea218ba 100644 --- a/api_contact_user_resurrect.go +++ b/api_contact_user_resurrect.go @@ -75,8 +75,16 @@ type ResurrectUserReq struct { SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 如果用户正常状态时分配了[席位](https://www.feishu.cn/hc/zh-CN/articles/548377434838), 则可以通过该参数指定恢复后分配的席位 ID。待分配席位 ID 获取方式参见[获取企业席位信息接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/tenant-v2/tenant-product_assign_info/query)。注意: 该字段需开通 分配用户席位 权限。示例值: ["23213213213123123"] } +// ResurrectUserReqDepartment ... +type ResurrectUserReqDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 排序信息对应的部门 ID。表示用户所在的、且需要排序的部门。部门 ID 类型与查询参数 `department_id_type` 保持一致。了解不同类型的部门 ID 以及获取部门 ID 的方式, 可参见 [部门 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)。示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" + UserOrder *int64 `json:"user_order,omitempty"` // 用户在其直属部门内的排序。数值越大, 排序越靠前。示例值: 0 + DepartmentOrder *int64 `json:"department_order,omitempty"` // 用户所属的多个部门之间的排序。数值越大, 排序越靠前。示例值: 0 +} + // ResurrectUserResp ... -type ResurrectUserResp struct{} +type ResurrectUserResp struct { +} // resurrectUserResp ... type resurrectUserResp struct { diff --git a/api_contact_v2_department_batch_add.go b/api_contact_v2_department_batch_add.go index f5d0e46d..3ce3ff90 100644 --- a/api_contact_v2_department_batch_add.go +++ b/api_contact_v2_department_batch_add.go @@ -67,6 +67,15 @@ type BatchAddContactV2DepartmentReq struct { Departments []string `json:"departments,omitempty"` // 所有要新增部门的集合。 } +// BatchAddContactV2DepartmentReqDepartment ... +type BatchAddContactV2DepartmentReqDepartment struct { + ID *string `json:"id,omitempty"` // 自定义部门 ID, 企业内必须唯一。只能在创建部门时指定, 不支持更新。 若不填该参数, 将自动生成。 不区分大小写, 长度为 1 ~ 64 个字符。只能由数字、字母和“_”、“-”、“@”、“.”四种特殊字符组成, 且第一个字符必须是数字或字母。 + Name string `json:"name,omitempty"` // 部门名称。 + ParentID string `json:"parent_id,omitempty"` // 父部门 ID。 当被添加的部门为企业一级部门时, 此字段填写“0”。 + LeaderUserID *string `json:"leader_user_id,omitempty"` // 部门负责人 ID, 支持通过 user_id 或 open_id 进行设置。 请求同时传递两个字段时只使用 leader_user_id, 忽略 leader_open_id。 + CreateGroupChat *bool `json:"create_group_chat,omitempty"` // 是否同时创建部门群, 默认为 false, 不创建部门群。 +} + // BatchAddContactV2DepartmentResp ... type BatchAddContactV2DepartmentResp struct { TaskID string `json:"task_id,omitempty"` // 生成的异步任务 ID, 参见 [查询批量任务执行状态](https://open.feishu.cn/document/ukTMukTMukTM/uUDOwUjL1gDM14SN4ATN) 接口。 diff --git a/api_contact_v2_role_list.go b/api_contact_v2_role_list.go new file mode 100644 index 00000000..43d61ebe --- /dev/null +++ b/api_contact_v2_role_list.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListContactV2Role :::html +// +// 该接口用于获取企业的用户角色列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uYzMwUjL2MDM14iNzATN +// new doc: https://open.feishu.cn/document/server-docs/historic-version//user/obtain-a-role-list +// +// Deprecated +func (r *ContactService) ListContactV2Role(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) { + if r.cli.mock.mockContactListContactV2Role != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Contact#ListContactV2Role mock enable") + return r.cli.mock.mockContactListContactV2Role(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Contact", + API: "ListContactV2Role", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/contact/v2/role/list", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listContactV2RoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockContactListContactV2Role mock ContactListContactV2Role method +func (r *Mock) MockContactListContactV2Role(f func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error)) { + r.mockContactListContactV2Role = f +} + +// UnMockContactListContactV2Role un-mock ContactListContactV2Role method +func (r *Mock) UnMockContactListContactV2Role() { + r.mockContactListContactV2Role = nil +} + +// ListContactV2RoleReq ... +type ListContactV2RoleReq struct { +} + +// ListContactV2RoleResp ... +type ListContactV2RoleResp struct { + RoleList []*ListContactV2RoleRespRole `json:"role_list,omitempty"` // 角色列表 +} + +// ListContactV2RoleRespRole ... +type ListContactV2RoleRespRole struct { + ID string `json:"id,omitempty"` // 角色 ID + Name string `json:"name,omitempty"` // 角色名称 +} + +// listContactV2RoleResp ... +type listContactV2RoleResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述 + Data *ListContactV2RoleResp `json:"data,omitempty"` // 返回业务数据 + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_contact_v2_task_get.go b/api_contact_v2_task_get.go index 585a8164..3ec7037d 100644 --- a/api_contact_v2_task_get.go +++ b/api_contact_v2_task_get.go @@ -62,7 +62,8 @@ func (r *Mock) UnMockContactGetContactV2Task() { } // GetContactV2TaskReq ... -type GetContactV2TaskReq struct{} +type GetContactV2TaskReq struct { +} // GetContactV2TaskResp ... type GetContactV2TaskResp struct { diff --git a/api_corehr_approval_groups_get.go b/api_corehr_approval_groups_get.go new file mode 100644 index 00000000..b82a047c --- /dev/null +++ b/api_corehr_approval_groups_get.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetCorehrApprovalGroups 用户通过『飞书人事-我的团队-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。 之后用户可通过流程的单据 ID, 查询到该审批进行的状态, 以及该流程中涉及到的 组织架构信息(包括部门变更、人员变更记录 ID、岗位变更记录 ID)。 +// +// 如需查询具体变更详情可按需调用以下独立的接口: +// - 部门变更: [批量查询部门变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_position_change_list_by_ids) +// - 岗位变更: [批量查询岗位调整内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_department_change_list_by_ids) +// - 员工变更: [批量查询员工变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_job_change_list_by_ids) +// - 用户使用该接口前需提前获取 组织架构调整流程信息 权限 +// - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get +// new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/get +func (r *CoreHRService) GetCorehrApprovalGroups(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCorehrApprovalGroups != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrApprovalGroups mock enable") + return r.cli.mock.mockCoreHRGetCorehrApprovalGroups(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "GetCorehrApprovalGroups", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approval_groups/:process_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getCorehrApprovalGroupsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRGetCorehrApprovalGroups mock CoreHRGetCorehrApprovalGroups method +func (r *Mock) MockCoreHRGetCorehrApprovalGroups(f func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error)) { + r.mockCoreHRGetCorehrApprovalGroups = f +} + +// UnMockCoreHRGetCorehrApprovalGroups un-mock CoreHRGetCorehrApprovalGroups method +func (r *Mock) UnMockCoreHRGetCorehrApprovalGroups() { + r.mockCoreHRGetCorehrApprovalGroups = nil +} + +// GetCorehrApprovalGroupsReq ... +type GetCorehrApprovalGroupsReq struct { + ProcessID string `path:"process_id" json:"-"` // 组织架构调整流程 ID, 用户通过『飞书人事-我的团队-组织架构』或『飞书 人事-人员管理-组织架构』 发起一个组织架构调整, 并提交审批后, 系统会根据管理员在审批流程中配置的规则, 生成 一个或多个审批单据。可通过「组织架构调整状态变更」的事件来获取示例值: "6893014062142064111" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetCorehrApprovalGroupsResp ... +type GetCorehrApprovalGroupsResp struct { + ApprovalGroup *GetCorehrApprovalGroupsRespApprovalGroup `json:"approval_group,omitempty"` // 组织架构调整流程信息 +} + +// GetCorehrApprovalGroupsRespApprovalGroup ... +type GetCorehrApprovalGroupsRespApprovalGroup struct { + ApprovalGroupID string `json:"approval_group_id,omitempty"` // 组织架构调整审批组 ID, 该 ID 和 process_id 一一对应 + ProcessID string `json:"process_id,omitempty"` // 组织架构调整对应的流程 ID, 与入参 process_id 对应。 + ApprovalGroupStatus string `json:"approval_group_status,omitempty"` // 组织架构调整流程状态, 枚举类型, 描述该审批单据的状态。【不推荐使用, 无法区分审批通过、执行失败和等待执行状态, 推荐使用approval_group_status_v2】可选值有: 待发起, 是指该审批单据还未成功发起。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。 审批通过, 该单据已通过审批, 调整记录等待写入。 一方面, 组织架构调整支持拆单功能, 同一个调整可能发起多个审批, 当前审批单可能依赖其他审批通过才能写入。已完成, 审批单中所有调整记录均写入完成。[该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件、部门变更事件 和 岗位变更事件 获取。 - 人员异动变更事件: [飞书人事-异动-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) - 部门变更事件: [飞书人事-组织管理-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已拒绝, 审批未通过。已撤销, 用户主动撤销审批, 流程会进入已撤销状态。 + ApprovalGroupStatusV2 int64 `json:"approval_group_status_v2,omitempty"` // 组织架构调整流程状态, 枚举类型, 描述该审批单据的状态。可选值有: 待发起, 是指该审批单据还未成功发起。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。 审批通过, 该单据已通过审批, 调整记录等待写入。 已完成, 审批单中所有调整记录均写入完成。[该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 、部门变更事件 和 岗位变更事件 获取。 - 人员异动变更事件: [飞书人事-异动-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) - 部门变更事件: [飞书人事-组织管理-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已拒绝, 审批未通过。已撤销, 用户主动撤销审批, 流程会进入已撤销状态。执行失败 或 等待执行。 - 该类型事件触发时机如下: - 商业化租户, 未配置拆分审批流(整单): - 审批单中存在执行失败的调整项, 此时审批单状态为【执行失败】, 会触发该类型事件发送。 - 商业化租户, 且配置拆分审批流(合单): - 审批单中存在执行失败的调整项, 此时审批单状态为【执行失败】, 会触发该类型事件发送。 - 审批单执行生效依赖另一个同时发起的还处于审批中状态审批单的执行结果, 此时审批单状态为【等待执行】, 会触发该类型事件发送。当被依赖审批单审批通过后, 该审批单会根据执行结果再次发送【已完成】或【执行失败】事件。 - 字节租户: - 审批单中存在执行失败的调整项, 此时审批单状态为【执行失败】, 会触发该类型事件发送。 - 包含人员异动的审批单, 审批通过时间早于审批单生效时间, 此时审批单状态为【等待执行】, 会触发该类型事件发送。到达审批单生效时间后, 会根据执行结果再次发送【已完成】或【执行失败】事件。 - 用户收到该事件后, 可通过以下接口查询审批单中包含调整记录的状态和变更详情: - 人员调整记录: [批量查询人员调整内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_job_change_list_by_ids) [调整记录状态待支持] - 部门调整记录: [批量查询部门调整内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_department_change_list_by_ids) - 岗位调整记录: 【飞书人事-组织架构调整-批量查询岗位调整内容】(岗位灰度内)[调整记录状态待支持] + Topic string `json:"topic,omitempty"` // 调整主题, 用户在『飞书人事-我的团队/人员管理 -组织架构-发起调整』填写的调整变更主题 + AdjustReason string `json:"adjust_reason,omitempty"` // 调整原因, 用户在『飞书人事-我的团队/人员管理 -组织架构-发起调整』填写的调整变更详细原因, 便于审批人批阅。 + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期- 日期格式: YYYY-MM-DD- 最小值: 1900-01-01- 最大值: 9999-12-31 + CreatedBy string `json:"created_by,omitempty"` // 发起人, 在『飞书人事-我的团队/人员管理 -组织架构-发起调整』填写的调整变更发起人。 + DraftID string `json:"draft_id,omitempty"` // 组织架构调整 ID, 用户在『飞书人事-我的团队/人员管理 -组织架构-发起调整』 时生成的唯一 ID。 + DraftStatus string `json:"draft_status,omitempty"` // 流程对应组织架构调整的状态: process_status 是发起审批后的状态, 而 draft_status 则是整个组织架构调整的状态。可选值有: 编辑中, [(流程中的组织架构调整不会是该状态)] 该状态是指用户在『飞书人事-我的团队/人员管理-组织架构-发起调整』 中进行编辑时的状态。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。已完成, [该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 和 部门变更事件获取。 - 人员异动变更事件: [飞书人事-异动-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) - 部门变更事件: [飞书人事-组织管理-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已撤销, 用户主动撤销审批, 流程会进入已撤销状态。 + DepartmentChanges []string `json:"department_changes,omitempty"` // 关联的部门调整记录 ID 列表。 - 部门变更详情可通过: [批量查询部门变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_department_change_list_by_ids)获取 + JobChanges []string `json:"job_changes,omitempty"` // 关联的人员调整记录 ID 列表, 组织架构调整仅允许调整系统已存在的人员, 当发起审批后会生成一个 job_change 的记录用于记录变更过程。- 员工变更: [批量查询员工变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_job_change_list_by_ids) + PositionChanges []string `json:"position_changes,omitempty"` // 关联的岗位调整记录 ID 列表。- 功能灰度中, 开通岗位功能后可通过接口【批量查询岗位变更接口】获取岗位变更详情 +} + +// getCorehrApprovalGroupsResp ... +type getCorehrApprovalGroupsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCorehrApprovalGroupsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_approver_list.go b/api_corehr_approver_list.go new file mode 100644 index 00000000..7da80c5f --- /dev/null +++ b/api_corehr_approver_list.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrApprover 审批任务依赖于流程节点实例存在, 每一个流程节点实例可能包含有一或多个审批任务, 每一个任务表明当前节点的审批人是谁, 该接口可获取指定人员的审批任务列表(此功能不受数据权限范围控制)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approver/list +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/list +func (r *CoreHRService) ListCorehrApprover(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrApprover != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrApprover mock enable") + return r.cli.mock.mockCoreHRListCorehrApprover(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrApprover", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approvers", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrApproverResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrApprover mock CoreHRListCorehrApprover method +func (r *Mock) MockCoreHRListCorehrApprover(f func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error)) { + r.mockCoreHRListCorehrApprover = f +} + +// UnMockCoreHRListCorehrApprover un-mock CoreHRListCorehrApprover method +func (r *Mock) UnMockCoreHRListCorehrApprover() { + r.mockCoreHRListCorehrApprover = nil +} + +// ListCorehrApproverReq ... +type ListCorehrApproverReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `20` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1默认值: `1` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserID string `query:"user_id" json:"-"` // 指定人员id, 按user_id_type类型传递。示例值: ou_91791271921729102012 + ApproverStatus *int64 `query:"approver_status" json:"-"` // 任务状态示例值: 1可选值有: 跳过(废弃, 不支持这个状态)发起未开始(废弃, 不支持这个状态)进行中已拒绝已通过被撤回(废弃, 不支持这个状态)抄送表单提交(不建议使用, 可通过状态3来查询)失败已回退发起撤销(废弃, 不支持这个状态) +} + +// ListCorehrApproverResp ... +type ListCorehrApproverResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + ApproverList []*ListCorehrApproverRespApprover `json:"approver_list,omitempty"` // 审批任务列表 +} + +// ListCorehrApproverRespApprover ... +type ListCorehrApproverRespApprover struct { + ApproverID string `json:"approver_id,omitempty"` // 审批任务id + ProcessID string `json:"process_id,omitempty"` // 流程id + ApproverStatus int64 `json:"approver_status,omitempty"` // 任务状态可选值有: 跳过发起未开始进行中已拒绝已通过被撤回抄送表单提交失败已回退发起撤销已干预 +} + +// listCorehrApproverResp ... +type listCorehrApproverResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrApproverResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_authorization_add_role_assign.go b/api_corehr_authorization_add_role_assign.go new file mode 100644 index 00000000..d0d9b037 --- /dev/null +++ b/api_corehr_authorization_add_role_assign.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// AddCorehrAuthorizationRoleAssign 为用户授权角色及管理范围 +// +// 对已被授权某个角色的用户继续授权, 将在原授权的数据范围基础上追加数据范围。 +// 暂时仅支持授权「按组织架构管理」的角色 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/add_role_assign +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/add_role_assign +func (r *CoreHRService) AddCorehrAuthorizationRoleAssign(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRAddCorehrAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCorehrAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRAddCorehrAuthorizationRoleAssign(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "AddCorehrAuthorizationRoleAssign", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/add_role_assign", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(addCorehrAuthorizationRoleAssignResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRAddCorehrAuthorizationRoleAssign mock CoreHRAddCorehrAuthorizationRoleAssign method +func (r *Mock) MockCoreHRAddCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRAddCorehrAuthorizationRoleAssign = f +} + +// UnMockCoreHRAddCorehrAuthorizationRoleAssign un-mock CoreHRAddCorehrAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRAddCorehrAuthorizationRoleAssign() { + r.mockCoreHRAddCorehrAuthorizationRoleAssign = nil +} + +// AddCorehrAuthorizationRoleAssignReq ... +type AddCorehrAuthorizationRoleAssignReq struct { + EmploymentID string `query:"employment_id" json:"-"` // 被授权用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + RoleID string `query:"role_id" json:"-"` // 被授权角色的 ID, 一次仅可授权一个角色。你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在角色详情中获取(URL 末的数字)示例值: 7358732070333613619 + AssignedOrganizationItems [][]interface{} `json:"assigned_organization_items,omitempty"` // 被授权角色的授权范围。你需要按照请求体示例构造结构体。 它是一个二维数组, 你可以使用它来授权具有多个管理维度的角色, 例如属地 HRBP。 - [org_key]: 管理维度。可选项有 - 部门: [department] - 工作地点: [work_location] - 公司: [company] - 成本中心: [organization_id_strand] - 社保城市: [social_security_location] - 入职地点: [onboarding_location] - 薪资组: [pay_group] - 人才池: [talent_pool] - 自定义组织: 可在「[飞书人事](https://people.feishu.cn/people/)-设置-组织设置」中相应的自定义组织目录下查看对应的组织类型编码, 例如[custom_org_01]、[custom_org_02]、[custom_org_03]、[custom_org_04]、[custom_org_05]- [org_ids]: 组织 ID。组织 ID 和组织编码只需要填写一个- [org_codes]: 组织编码。组织 ID 和组织编码只需要填写一个示例值: 67489937334909845 长度范围: `0` ~ `300` +} + +// AddCorehrAuthorizationRoleAssignResp ... +type AddCorehrAuthorizationRoleAssignResp struct { + AssignID string `json:"assign_id,omitempty"` // 授权id +} + +// addCorehrAuthorizationRoleAssignResp ... +type addCorehrAuthorizationRoleAssignResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *AddCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_authorization_get.go b/api_corehr_authorization_get.go index 90dad9bf..b7e53e1f 100644 --- a/api_corehr_authorization_get.go +++ b/api_corehr_authorization_get.go @@ -23,8 +23,8 @@ import ( // GetCoreHRAuthorization 查询[飞书人事管理后台](https://people.feishu.cn/people/)里 -「设置」-「权限设置」中的单个用户授权信息。授权信息中包括员工ID、被授权的角色等信息。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/query-user-authorization -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/authorization/query-user-authorization +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/get_by_param +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/get_by_param func (r *CoreHRService) GetCoreHRAuthorization(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRAuthorization != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRAuthorization mock enable") @@ -63,7 +63,8 @@ type GetCoreHRAuthorizationReq struct { } // GetCoreHRAuthorizationResp ... -type GetCoreHRAuthorizationResp struct{} +type GetCoreHRAuthorizationResp struct { +} // getCoreHRAuthorizationResp ... type getCoreHRAuthorizationResp struct { diff --git a/api_corehr_authorization_list.go b/api_corehr_authorization_list.go index 719258d8..ea81640f 100644 --- a/api_corehr_authorization_list.go +++ b/api_corehr_authorization_list.go @@ -23,8 +23,8 @@ import ( // GetCoreHRAuthorizationList 批量查询[飞书人事管理后台](https://people.feishu.cn/people/) -「设置」-「权限设置」中的用户授权信息。授权列表信息中包括员工ID、被授权的角色等信息。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/batch-query-user-authorization -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/authorization/batch-query-user-authorization +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/query +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/query-2 func (r *CoreHRService) GetCoreHRAuthorizationList(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRAuthorizationList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRAuthorizationList mock enable") diff --git a/api_corehr_authorization_remove_role_assign.go b/api_corehr_authorization_remove_role_assign.go new file mode 100644 index 00000000..e74c18ec --- /dev/null +++ b/api_corehr_authorization_remove_role_assign.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// RemoveCorehrAuthorizationRoleAssign 移除用户被授权的指定角色及授权范围, 已经存在授权可通过[查询单个用户授权](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/get_by_param)获得。或者在[飞书人事管理后台](https://people.feishu.cn/people/)里 -「设置」-「权限设置」中的查看已有用户授权信息。 +// +// 无法移除「按规则授权」的角色 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/remove_role_assign +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/remove_role_assign +func (r *CoreHRService) RemoveCorehrAuthorizationRoleAssign(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCorehrAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRRemoveCorehrAuthorizationRoleAssign(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "RemoveCorehrAuthorizationRoleAssign", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/remove_role_assign", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(removeCorehrAuthorizationRoleAssignResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRRemoveCorehrAuthorizationRoleAssign mock CoreHRRemoveCorehrAuthorizationRoleAssign method +func (r *Mock) MockCoreHRRemoveCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRRemoveCorehrAuthorizationRoleAssign = f +} + +// UnMockCoreHRRemoveCorehrAuthorizationRoleAssign un-mock CoreHRRemoveCorehrAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRRemoveCorehrAuthorizationRoleAssign() { + r.mockCoreHRRemoveCorehrAuthorizationRoleAssign = nil +} + +// RemoveCorehrAuthorizationRoleAssignReq ... +type RemoveCorehrAuthorizationRoleAssignReq struct { + EmploymentID string `query:"employment_id" json:"-"` // 用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + RoleID string `query:"role_id" json:"-"` // 移除的角色的 ID, 一次仅可移除一个角色。>你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在飞书人事角色详情页的url中获取(URL 末的数字)role_id。示例值: 7358732070333613619 +} + +// RemoveCorehrAuthorizationRoleAssignResp ... +type RemoveCorehrAuthorizationRoleAssignResp struct { + AssignID string `json:"assign_id,omitempty"` // 授权id +} + +// removeCorehrAuthorizationRoleAssignResp ... +type removeCorehrAuthorizationRoleAssignResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RemoveCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_authorization_update_role_assign.go b/api_corehr_authorization_update_role_assign.go new file mode 100644 index 00000000..60187d14 --- /dev/null +++ b/api_corehr_authorization_update_role_assign.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrAuthorizationRoleAssign 更新角色被授权的管理范围 +// +// 更新后的数据范围, 以本次提交的数据范围为准, 本次未提交的部分将被移除。 +// 暂时仅支持更新「按组织架构管理」角色的数据范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/update_role_assign +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/update_role_assign +func (r *CoreHRService) UpdateCorehrAuthorizationRoleAssign(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrAuthorizationRoleAssign(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrAuthorizationRoleAssign", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/update_role_assign", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrAuthorizationRoleAssignResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrAuthorizationRoleAssign mock CoreHRUpdateCorehrAuthorizationRoleAssign method +func (r *Mock) MockCoreHRUpdateCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRUpdateCorehrAuthorizationRoleAssign = f +} + +// UnMockCoreHRUpdateCorehrAuthorizationRoleAssign un-mock CoreHRUpdateCorehrAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRUpdateCorehrAuthorizationRoleAssign() { + r.mockCoreHRUpdateCorehrAuthorizationRoleAssign = nil +} + +// UpdateCorehrAuthorizationRoleAssignReq ... +type UpdateCorehrAuthorizationRoleAssignReq struct { + EmploymentID string `query:"employment_id" json:"-"` // 被授权用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + RoleID string `query:"role_id" json:"-"` // 被授权角色的 ID, 一次仅可授权一个角色。你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在角色详情中获取(URL 末的数字)示例值: 7358732070333613619 + AssignedOrganizationItems [][]interface{} `json:"assigned_organization_items,omitempty"` // 被授权角色的授权范围。你需要按照请求体示例构造结构体。 它是一个二维数组, 你可以使用它来授权具有多个管理维度的角色, 例如属地 HRBP。 - [org_key]: 管理维度。可选项有 - 部门: [department] - 工作地点: [work_location] - 公司: [company] - 成本中心: [organization_id_strand] - 社保城市: [social_security_location] - 入职地点: [onboarding_location] - 薪资组: [pay_group] - 人才池: [talent_pool] - 自定义组织: 可在「[飞书人事](https://people.feishu.cn/people/)-设置-组织设置」中相应的自定义组织目录下查看对应的组织类型编码, 例如[custom_org_01]、[custom_org_02]、[custom_org_03]、[custom_org_04]、[custom_org_05]- [org_ids]: 组织 ID。组织 ID 和组织编码只需要填写一个- [org_codes]: 组织编码。组织 ID 和组织编码只需要填写一个示例值: 67489937334909845 长度范围: `0` ~ `300` +} + +// UpdateCorehrAuthorizationRoleAssignResp ... +type UpdateCorehrAuthorizationRoleAssignResp struct { + AssignID string `json:"assign_id,omitempty"` // 授权id +} + +// updateCorehrAuthorizationRoleAssignResp ... +type updateCorehrAuthorizationRoleAssignResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_bank_branch_search.go b/api_corehr_bank_branch_search.go index 477c0ee3..b086e9b8 100644 --- a/api_corehr_bank_branch_search.go +++ b/api_corehr_bank_branch_search.go @@ -21,10 +21,9 @@ import ( "context" ) -// SearchCoreHRBankBranch 根据银行 ID、支行 ID 、支行名称、联行号, 支行状态、更新时间 查询银行信息 +// SearchCoreHRBankBranch 根据银行 ID、支行 ID 、支行名称查询银行信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search -// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-bank/search-2 func (r *CoreHRService) SearchCoreHRBankBranch(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRBankBranch != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBankBranch mock enable") @@ -58,20 +57,17 @@ func (r *Mock) UnMockCoreHRSearchCoreHRBankBranch() { // SearchCoreHRBankBranchReq ... type SearchCoreHRBankBranchReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: MDBK00000120 - BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 可通过[查询银行信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)列举, 或从[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_id_v2` 字段中获取示例值: ["MDBH00000080"] 最大长度: `100` - BankBranchIDList []string `json:"bank_branch_id_list,omitempty"` // 支行 ID 列表, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_branch_id_v2` 字段获取示例值: ["MDBK00061194"] 最大长度: `100` - BankBranchNameList []string `json:"bank_branch_name_list,omitempty"` // 支行名称列表, 支持对支行名称精确搜索示例值: ["招商银行北京分行"] 最大长度: `100` - CodeList []string `json:"code_list,omitempty"` // 金融分支机构编码(联行号)列表, 支持对金融分支机构编码精确搜索示例值: ["308100005019"] 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` - UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间示例值: "2020-01-01 00:00:00" - UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间示例值: "2024-01-01 00:00:00" + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 + BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 与「支行 ID 列表」、「支行名称列表」至少填写一项, 示例值: ["6891251722631891445"], 最大长度: `100` + BankBranchIDList []string `json:"bank_branch_id_list,omitempty"` // 支行 ID 列表, 示例值: ["6891251722631891415"], 最大长度: `100` + BankBranchNameList []string `json:"bank_branch_name_list,omitempty"` // 支行名称列表, 支持对支行名称精确搜索, 示例值: ["招商银行杭州未科支行"], 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` } // SearchCoreHRBankBranchResp ... type SearchCoreHRBankBranchResp struct { - Items []*SearchCoreHRBankBranchRespItem `json:"items,omitempty"` // 查询到的支行列表 + Items []*SearchCoreHRBankBranchRespItem `json:"items,omitempty"` // 查询的支行信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } @@ -81,26 +77,20 @@ type SearchCoreHRBankBranchRespItem struct { BankBranchID string `json:"bank_branch_id,omitempty"` // 支行 ID BankBranchName []*SearchCoreHRBankBranchRespItemBankBranchName `json:"bank_branch_name,omitempty"` // 支行名称 BankID string `json:"bank_id,omitempty"` // 所属银行 ID, 可通过[查询银行信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询 - Code string `json:"code,omitempty"` // 金融分支机构编码(即银行联行号) - SwiftCode string `json:"swift_code,omitempty"` // SWIFT 银行代码(ISO 9362) - Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 - BankBranchCode string `json:"bank_branch_code,omitempty"` // Bank Branch Code(特定国家地区使用) - RegisterPlace string `json:"register_place,omitempty"` // 注册地址 - BankAddress string `json:"bank_address,omitempty"` // 银行地址 - CreateTime string `json:"create_time,omitempty"` // 创建时间 - UpdateTime string `json:"update_time,omitempty"` // 更新时间 + Code string `json:"code,omitempty"` // 金融分支机构编码 + SwiftCode string `json:"swift_code,omitempty"` // 银行代码 + Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 } // SearchCoreHRBankBranchRespItemBankBranchName ... type SearchCoreHRBankBranchRespItemBankBranchName struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 } // searchCoreHRBankBranchResp ... type searchCoreHRBankBranchResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRBankBranchResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRBankBranchResp `json:"data,omitempty"` } diff --git a/api_corehr_bank_search.go b/api_corehr_bank_search.go index 302628d3..372bbb4f 100644 --- a/api_corehr_bank_search.go +++ b/api_corehr_bank_search.go @@ -21,10 +21,9 @@ import ( "context" ) -// SearchCoreHRBank 根据银行 ID 、银行名称, 查询银行信息 +// SearchCoreHRBank 根据银行 ID 、银行名称查询银行信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search -// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-bank/search func (r *CoreHRService) SearchCoreHRBank(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRBank != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBank mock enable") @@ -58,18 +57,16 @@ func (r *Mock) UnMockCoreHRSearchCoreHRBank() { // SearchCoreHRBankReq ... type SearchCoreHRBankReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: MDBH00000100 - BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_id_v2` 字段获取示例值: ["MDBH00000080"] 最大长度: `100` - BankNameList []string `json:"bank_name_list,omitempty"` // 银行名称列表, 支持对银行名称精确搜索示例值: ["招商银行"] 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` - UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间示例值: "2020-01-01 00:00:00" - UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间示例值: "2024-01-01 00:00:00" + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 + BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 与「银行名称列表」查询条件至少填写一项, 示例值: ["6891251722631891445"], 最大长度: `100` + BankNameList []string `json:"bank_name_list,omitempty"` // 银行名称列表, 支持对银行名称精确搜索, 示例值: ["招商银行"], 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` } // SearchCoreHRBankResp ... type SearchCoreHRBankResp struct { - Items []*SearchCoreHRBankRespItem `json:"items,omitempty"` // 查询到的银行列表 + Items []*SearchCoreHRBankRespItem `json:"items,omitempty"` // 查询的银行信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } @@ -80,21 +77,18 @@ type SearchCoreHRBankRespItem struct { BankName []*SearchCoreHRBankRespItemBankName `json:"bank_name,omitempty"` // 银行名称 BankCode string `json:"bank_code,omitempty"` // 总行代码 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search) 接口查询 - Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 - CreateTime string `json:"create_time,omitempty"` // 创建时间 - UpdateTime string `json:"update_time,omitempty"` // 更新时间 + Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 } // SearchCoreHRBankRespItemBankName ... type SearchCoreHRBankRespItemBankName struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 } // searchCoreHRBankResp ... type searchCoreHRBankResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRBankResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRBankResp `json:"data,omitempty"` } diff --git a/api_corehr_basic_info_language_search.go b/api_corehr_basic_info_language_search.go new file mode 100644 index 00000000..b1128906 --- /dev/null +++ b/api_corehr_basic_info_language_search.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchCorehrBasicInfoLanguage 根据语言 ID、状态, 批量查询语言信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-language/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-language/search +func (r *CoreHRService) SearchCorehrBasicInfoLanguage(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCorehrBasicInfoLanguage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrBasicInfoLanguage mock enable") + return r.cli.mock.mockCoreHRSearchCorehrBasicInfoLanguage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "SearchCorehrBasicInfoLanguage", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/basic_info/languages/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchCorehrBasicInfoLanguageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRSearchCorehrBasicInfoLanguage mock CoreHRSearchCorehrBasicInfoLanguage method +func (r *Mock) MockCoreHRSearchCorehrBasicInfoLanguage(f func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error)) { + r.mockCoreHRSearchCorehrBasicInfoLanguage = f +} + +// UnMockCoreHRSearchCorehrBasicInfoLanguage un-mock CoreHRSearchCorehrBasicInfoLanguage method +func (r *Mock) UnMockCoreHRSearchCorehrBasicInfoLanguage() { + r.mockCoreHRSearchCorehrBasicInfoLanguage = nil +} + +// SearchCorehrBasicInfoLanguageReq ... +type SearchCorehrBasicInfoLanguageReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6862995772275688974 + LanguageIDList []string `json:"language_id_list,omitempty"` // 语言 ID 列表, 如果为空, 返回所有数据示例值: ["6863323445740963342"] 长度范围: `0` ~ `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 长度范围: `0` ~ `2` +} + +// SearchCorehrBasicInfoLanguageResp ... +type SearchCorehrBasicInfoLanguageResp struct { + Items []*SearchCorehrBasicInfoLanguageRespItem `json:"items,omitempty"` // 查询到的语言列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// SearchCorehrBasicInfoLanguageRespItem ... +type SearchCorehrBasicInfoLanguageRespItem struct { + LanguageID string `json:"language_id,omitempty"` // 语言 ID + Name []*SearchCorehrBasicInfoLanguageRespItemName `json:"name,omitempty"` // 语言名称 + IetfLanguageTag string `json:"ietf_language_tag,omitempty"` // IETF 编码 + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 +} + +// SearchCorehrBasicInfoLanguageRespItemName ... +type SearchCorehrBasicInfoLanguageRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// searchCorehrBasicInfoLanguageResp ... +type searchCorehrBasicInfoLanguageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCorehrBasicInfoLanguageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_basic_info_time_zone_search.go b/api_corehr_basic_info_time_zone_search.go new file mode 100644 index 00000000..df1a20d1 --- /dev/null +++ b/api_corehr_basic_info_time_zone_search.go @@ -0,0 +1,95 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchCorehrBasicInfoTimeZone 根据时区 ID、状态, 批量查询时区信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-time_zone/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-time_zone/search +func (r *CoreHRService) SearchCorehrBasicInfoTimeZone(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCorehrBasicInfoTimeZone != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrBasicInfoTimeZone mock enable") + return r.cli.mock.mockCoreHRSearchCorehrBasicInfoTimeZone(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "SearchCorehrBasicInfoTimeZone", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/basic_info/time_zones/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchCorehrBasicInfoTimeZoneResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRSearchCorehrBasicInfoTimeZone mock CoreHRSearchCorehrBasicInfoTimeZone method +func (r *Mock) MockCoreHRSearchCorehrBasicInfoTimeZone(f func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error)) { + r.mockCoreHRSearchCorehrBasicInfoTimeZone = f +} + +// UnMockCoreHRSearchCorehrBasicInfoTimeZone un-mock CoreHRSearchCorehrBasicInfoTimeZone method +func (r *Mock) UnMockCoreHRSearchCorehrBasicInfoTimeZone() { + r.mockCoreHRSearchCorehrBasicInfoTimeZone = nil +} + +// SearchCorehrBasicInfoTimeZoneReq ... +type SearchCorehrBasicInfoTimeZoneReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6862995772275688974 + TimeZoneIDList []string `json:"time_zone_id_list,omitempty"` // 时区 ID 列表, 如果为空, 返回所有数据示例值: ["6862995813451171342"] 长度范围: `0` ~ `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 长度范围: `0` ~ `2` +} + +// SearchCorehrBasicInfoTimeZoneResp ... +type SearchCorehrBasicInfoTimeZoneResp struct { + Items []*SearchCorehrBasicInfoTimeZoneRespItem `json:"items,omitempty"` // 查询到的时区列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// SearchCorehrBasicInfoTimeZoneRespItem ... +type SearchCorehrBasicInfoTimeZoneRespItem struct { + TimeZoneID string `json:"time_zone_id,omitempty"` // 时区 ID + Name []*SearchCorehrBasicInfoTimeZoneRespItemName `json:"name,omitempty"` // 时区名称 + TimeZoneCode string `json:"time_zone_code,omitempty"` // 编码 + UtcOffset string `json:"utc_offset,omitempty"` // UTC 时区偏移量(分钟) + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 +} + +// SearchCorehrBasicInfoTimeZoneRespItemName ... +type SearchCorehrBasicInfoTimeZoneRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// searchCorehrBasicInfoTimeZoneResp ... +type searchCorehrBasicInfoTimeZoneResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCorehrBasicInfoTimeZoneResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_bp_by_employee_get_batch.go b/api_corehr_bp_by_employee_get_batch.go index b175a6ab..02d4e284 100644 --- a/api_corehr_bp_by_employee_get_batch.go +++ b/api_corehr_bp_by_employee_get_batch.go @@ -23,10 +23,9 @@ import ( // BatchGetCoreHrbpByEmployee 查询员工的 HRBP 和属地 BP, 包括来自上级部门的 HRBP 和属地 BP。 // -// 该接口会按照应用拥有的「员工资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限 - 飞书人事(企业版)数据权限范围」中已申请「员工资源」权限范围 +// 该接口会按照应用拥有的「员工资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请「员工资源」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-bp/batch_get -// new doc: https://open.feishu.cn/document/corehr-v1/authorization/batch_get func (r *CoreHRService) BatchGetCoreHrbpByEmployee(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) { if r.cli.mock.mockCoreHRBatchGetCoreHrbpByEmployee != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHrbpByEmployee mock enable") @@ -60,15 +59,15 @@ func (r *Mock) UnMockCoreHRBatchGetCoreHrbpByEmployee() { // BatchGetCoreHrbpByEmployeeReq ... type BatchGetCoreHrbpByEmployeeReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工ID, ID类型与user_id_type的取值意义一致。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: ["7140964208476371111"] 长度范围: `1` ~ `100` - GetAll *bool `json:"get_all,omitempty"` // 是否获取全部 BP, true 为获取员工所在部门及来自上级部门的全部 HRBP 和属地 BP, false 为仅获取员工的直属 HRBP 和属地 BP(当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP), 默认为 false示例值: true默认值: `false` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_corehr_id: 以飞书人事的 ID 来识别用户, 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工雇佣 ID, 示例值: ["7140964208476371111"], 长度范围: `1` ~ `100` + GetAll *bool `json:"get_all,omitempty"` // 是否获取全部 BP, true 为获取员工所在部门及来自上级部门的全部 HRBP 和属地 BP, false 为仅获取员工的直属 HRBP 和属地 BP(当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP), 默认为 false, 示例值: true, 默认值: `false` } // BatchGetCoreHrbpByEmployeeResp ... type BatchGetCoreHrbpByEmployeeResp struct { EmploymentDirectBps []*BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp `json:"employment_direct_bps,omitempty"` // 员工直属 BP 信息, 当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP - EmploymentAllBps []*BatchGetCoreHrbpByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息字段权限要求: 查看员工的全部 BP 信息 + EmploymentAllBps []*BatchGetCoreHrbpByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息, 字段权限要求: 查看员工的全部 BP 信息 } // BatchGetCoreHrbpByEmployeeRespEmploymentAllBp ... @@ -80,15 +79,14 @@ type BatchGetCoreHrbpByEmployeeRespEmploymentAllBp struct { // BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp ... type BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp struct { - EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID>可以使用[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search)接口获取员工其他信息。 + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID HrbpIDs []string `json:"hrbp_ids,omitempty"` // 员工直属 HRBP 雇佣 ID LocationBpIDs []string `json:"location_bp_ids,omitempty"` // 员工直属属地 BP 雇佣 ID } // batchGetCoreHrbpByEmployeeResp ... type batchGetCoreHrbpByEmployeeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCoreHrbpByEmployeeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCoreHrbpByEmployeeResp `json:"data,omitempty"` } diff --git a/api_corehr_common_data_id_convert.go b/api_corehr_common_data_id_convert.go new file mode 100644 index 00000000..bcb3d9d4 --- /dev/null +++ b/api_corehr_common_data_id_convert.go @@ -0,0 +1,85 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCommonDataIDConvert 该接口用来进行飞书人事和飞书通讯录、people admin 的各种 ID 转换(仅适用于飞书人事新链路租户) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert +// new doc: https://open.feishu.cn/document/corehr-v1/common_data-id/convert +func (r *CoreHRService) CreateCorehrCommonDataIDConvert(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCommonDataIDConvert != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCommonDataIDConvert mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCommonDataIDConvert(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCommonDataIDConvert", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/id/convert", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCommonDataIDConvertResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCommonDataIDConvert mock CoreHRCreateCorehrCommonDataIDConvert method +func (r *Mock) MockCoreHRCreateCorehrCommonDataIDConvert(f func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error)) { + r.mockCoreHRCreateCorehrCommonDataIDConvert = f +} + +// UnMockCoreHRCreateCorehrCommonDataIDConvert un-mock CoreHRCreateCorehrCommonDataIDConvert method +func (r *Mock) UnMockCoreHRCreateCorehrCommonDataIDConvert() { + r.mockCoreHRCreateCorehrCommonDataIDConvert = nil +} + +// CreateCorehrCommonDataIDConvertReq ... +type CreateCorehrCommonDataIDConvertReq struct { + IDTransformType int64 `query:"id_transform_type" json:"-"` // ID 转换类型示例值: 1可选值有: 飞书人事 -> 飞书通讯录飞书通讯录 -> 飞书人事people admin -> 飞书通讯录people admin -> 飞书人事 + IDType IDType `query:"id_type" json:"-"` // 要转换的ID类型示例值: user_id可选值有: 员工ID, 当选择 user_id 且 id_transform_type 为 1、2、4 时, feishu_user_id_type 必填部门ID, 当选择 department_id 且 id_transform_type 为 1、2、4 时, feishu_department_id_type 必填职级ID序列ID人员类型ID, people admin 的人员类型ID 即为飞书通讯录人员类型的 enum_value, 因此id_transform_type 为 3 时无须转换 + FeishuUserIDType *IDType `query:"feishu_user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + FeishuDepartmentIDType *DepartmentIDType `query:"feishu_department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门默认值: `open_department_id` + IDs []string `json:"ids,omitempty"` // ID 列表(最多传入 100 个 ID, ID 长度限制 50 个字符)示例值: ["6891251722631891445"] 长度范围: `1` ~ `100` +} + +// CreateCorehrCommonDataIDConvertResp ... +type CreateCorehrCommonDataIDConvertResp struct { + Items []*CreateCorehrCommonDataIDConvertRespItem `json:"items,omitempty"` // ID 信息列表 +} + +// CreateCorehrCommonDataIDConvertRespItem ... +type CreateCorehrCommonDataIDConvertRespItem struct { + ID string `json:"id,omitempty"` // 传入的 ID + TargetID string `json:"target_id,omitempty"` // 目标 ID 值 +} + +// createCorehrCommonDataIDConvertResp ... +type createCorehrCommonDataIDConvertResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCommonDataIDConvertResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_common_data_meta_data_add_enum_option.go b/api_corehr_common_data_meta_data_add_enum_option.go new file mode 100644 index 00000000..fd6a8495 --- /dev/null +++ b/api_corehr_common_data_meta_data_add_enum_option.go @@ -0,0 +1,116 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// AddCorehrCommonDataMetaDataEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可在字段中批量新增可选项 +// +// 本接口当前允许修改的系统预置字段如下: +// - person(个人信息): gender(性别)、marital_status(婚姻状态) +// - address(地址): address_type(地址类型) +// - national_id(证件): national_id_type(证件类型) +// - education(教育经历): degree(学位)、level_of_education(学历) +// - person_info_chn (个人附加信息) : hukou_type(户口类型) +// - emergency_contact(紧急联系人): relationship(关系) +// - dependent(家庭成员): relationship_with_dependent(关系) +// - job_data (任职信息): employee_type (人员类型) +// - probation (试用期对象): final_assessment_grade (试用期最终考核等级) +// - department(部门): subtype(部门类型) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-meta_data/add_enum_option +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/custom_field/add_enum_option +func (r *CoreHRService) AddCorehrCommonDataMetaDataEnumOption(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) { + if r.cli.mock.mockCoreHRAddCorehrCommonDataMetaDataEnumOption != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCorehrCommonDataMetaDataEnumOption mock enable") + return r.cli.mock.mockCoreHRAddCorehrCommonDataMetaDataEnumOption(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "AddCorehrCommonDataMetaDataEnumOption", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/meta_data/add_enum_option", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(addCorehrCommonDataMetaDataEnumOptionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRAddCorehrCommonDataMetaDataEnumOption mock CoreHRAddCorehrCommonDataMetaDataEnumOption method +func (r *Mock) MockCoreHRAddCorehrCommonDataMetaDataEnumOption(f func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error)) { + r.mockCoreHRAddCorehrCommonDataMetaDataEnumOption = f +} + +// UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption un-mock CoreHRAddCorehrCommonDataMetaDataEnumOption method +func (r *Mock) UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption() { + r.mockCoreHRAddCorehrCommonDataMetaDataEnumOption = nil +} + +// AddCorehrCommonDataMetaDataEnumOptionReq ... +type AddCorehrCommonDataMetaDataEnumOptionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 用户若希望避免重试导致多次重复请求, 可填写随机字符串, 系统根据 client_token 是否一致来判断是否为同一请求示例值: 6727817538283013641 + ObjectApiName string `json:"object_api_name,omitempty"` // 所属对象 API name, 可通过[获取飞书人事对象列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/list_object_api_name)接口中返回的 `object_api_name` 字段获取示例值: "probation_management" + EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name, 可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口中返回的 `custom_api_name` 字段获取示例值: "final_assessment_grade" + EnumFieldOptions []*AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption `json:"enum_field_options,omitempty"` // 新增枚举选项列表 最小长度: `1` +} + +// AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption ... +type AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption struct { + OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识, 创建后无法修改。由用户自拟, 需以英文字母开头, 并仅允许包含小写英文字母、数字和下划线示例值: "grade_e" 长度范围: `1` ~ `100` 字符 + Name *AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) +} + +// AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName ... +type AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "cn" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "en" +} + +// AddCorehrCommonDataMetaDataEnumOptionResp ... +type AddCorehrCommonDataMetaDataEnumOptionResp struct { + EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name + EnumFieldOptions []*AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 +} + +// AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption ... +type AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption struct { + OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识 + Active bool `json:"active,omitempty"` // 是否启用 + Name *AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) +} + +// AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName ... +type AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// addCorehrCommonDataMetaDataEnumOptionResp ... +type addCorehrCommonDataMetaDataEnumOptionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *AddCorehrCommonDataMetaDataEnumOptionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_common_data_meta_data_edit_enum_option.go b/api_corehr_common_data_meta_data_edit_enum_option.go new file mode 100644 index 00000000..3f665e2f --- /dev/null +++ b/api_corehr_common_data_meta_data_edit_enum_option.go @@ -0,0 +1,117 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCommonDataMetaDataEditEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可修改字段中已有可选项的展示名称、停启用状态 +// +// 本接口当前允许修改的系统预置字段如下: +// - person(个人信息): gender(性别)、marital_status(婚姻状态) +// - address(地址): address_type(地址类型) +// - national_id(证件): national_id_type(证件类型) +// - education(教育经历): degree(学位)、level_of_education(学历) +// - person_info_chn (个人附加信息) : hukou_type(户口类型) +// - emergency_contact(紧急联系人): relationship(关系) +// - dependent(家庭成员): relationship_with_dependent(关系) +// - job_data (任职信息): employee_type (人员类型) +// - probation (试用期对象): final_assessment_grade (试用期最终考核等级) +// - department(部门): subtype(部门类型) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-meta_data/edit_enum_option +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/custom_field/edit_enum_option +func (r *CoreHRService) CreateCorehrCommonDataMetaDataEditEnumOption(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCommonDataMetaDataEditEnumOption mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCommonDataMetaDataEditEnumOption", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/meta_data/edit_enum_option", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCommonDataMetaDataEditEnumOptionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption mock CoreHRCreateCorehrCommonDataMetaDataEditEnumOption method +func (r *Mock) MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(f func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error)) { + r.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption = f +} + +// UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption un-mock CoreHRCreateCorehrCommonDataMetaDataEditEnumOption method +func (r *Mock) UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption() { + r.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption = nil +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionReq ... +type CreateCorehrCommonDataMetaDataEditEnumOptionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 用户若希望避免重试导致多次重复请求, 可填写随机字符串, 系统根据 client_token 是否一致来判断是否为同一请求示例值: 6727817538283013641 + ObjectApiName string `json:"object_api_name,omitempty"` // 所属对象 API name, 可通过[获取飞书人事对象列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/list_object_api_name)接口中返回的 `object_api_name` 字段获取示例值: "probation_management" + EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name, 可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口中返回的 `custom_api_name` 字段获取示例值: "final_assessment_grade" + EnumFieldOption *CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption `json:"enum_field_option,omitempty"` // 枚举选项 +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption ... +type CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption struct { + OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识示例值: "grade_e" 长度范围: `1` ~ `100` 字符 + Active bool `json:"active,omitempty"` // 是否启用示例值: true + Name *CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName ... +type CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "cn" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "en" +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionResp ... +type CreateCorehrCommonDataMetaDataEditEnumOptionResp struct { + EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name + EnumFieldOptions []*CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption ... +type CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption struct { + OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识 + Active bool `json:"active,omitempty"` // 是否启用 + Name *CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) +} + +// CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName ... +type CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// createCorehrCommonDataMetaDataEditEnumOptionResp ... +type createCorehrCommonDataMetaDataEditEnumOptionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCommonDataMetaDataEditEnumOptionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_company_active.go b/api_corehr_company_active.go new file mode 100644 index 00000000..78815282 --- /dev/null +++ b/api_corehr_company_active.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCompanyActive 对公司进行启用或停用操作 +// +// 停用公司时请确认有无在职员工、异动单据、待入职单据关联此公司, 如有会导致停用失败。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/active +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/active +func (r *CoreHRService) CreateCorehrCompanyActive(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCompanyActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCompanyActive mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCompanyActive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCompanyActive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/active", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCompanyActiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCompanyActive mock CoreHRCreateCorehrCompanyActive method +func (r *Mock) MockCoreHRCreateCorehrCompanyActive(f func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error)) { + r.mockCoreHRCreateCorehrCompanyActive = f +} + +// UnMockCoreHRCreateCorehrCompanyActive un-mock CoreHRCreateCorehrCompanyActive method +func (r *Mock) UnMockCoreHRCreateCorehrCompanyActive() { + r.mockCoreHRCreateCorehrCompanyActive = nil +} + +// CreateCorehrCompanyActiveReq ... +type CreateCorehrCompanyActiveReq struct { + CompanyID string `json:"company_id,omitempty"` // 公司 ID- 可从 [批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)的 id 字段中获取。示例值: "1616161616" + EffectiveTime string `json:"effective_time,omitempty"` // 公司启用/停用生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" + Active bool `json:"active,omitempty"` // 启用/停用状态。- active 传 true 代表启用- active 传 false 代表停用示例值: true + OperationReason string `json:"operation_reason,omitempty"` // 操作原因示例值: "业务操作" +} + +// CreateCorehrCompanyActiveResp ... +type CreateCorehrCompanyActiveResp struct { +} + +// createCorehrCompanyActiveResp ... +type createCorehrCompanyActiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCompanyActiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_company_delete.go b/api_corehr_company_delete.go index 6bf0c6d6..031f407e 100644 --- a/api_corehr_company_delete.go +++ b/api_corehr_company_delete.go @@ -65,7 +65,8 @@ type DeleteCoreHRCompanyReq struct { } // DeleteCoreHRCompanyResp ... -type DeleteCoreHRCompanyResp struct{} +type DeleteCoreHRCompanyResp struct { +} // deleteCoreHRCompanyResp ... type deleteCoreHRCompanyResp struct { diff --git a/api_corehr_company_query_multi_timeline.go b/api_corehr_company_query_multi_timeline.go new file mode 100644 index 00000000..92401e0d --- /dev/null +++ b/api_corehr_company_query_multi_timeline.go @@ -0,0 +1,329 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrCompanyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// +// - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) +// 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/query_multi_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/query_multi_timeline +func (r *CoreHRService) QueryCorehrCompanyMultiTimeline(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrCompanyMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCompanyMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCorehrCompanyMultiTimeline(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrCompanyMultiTimeline", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/query_multi_timeline", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrCompanyMultiTimelineResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrCompanyMultiTimeline mock CoreHRQueryCorehrCompanyMultiTimeline method +func (r *Mock) MockCoreHRQueryCorehrCompanyMultiTimeline(f func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCorehrCompanyMultiTimeline = f +} + +// UnMockCoreHRQueryCorehrCompanyMultiTimeline un-mock CoreHRQueryCorehrCompanyMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCorehrCompanyMultiTimeline() { + r.mockCoreHRQueryCorehrCompanyMultiTimeline = nil +} + +// QueryCorehrCompanyMultiTimelineReq ... +type QueryCorehrCompanyMultiTimelineReq struct { + CompanyIDs []string `json:"company_ids,omitempty"` // 公司ID。ID获取方式: 调用[【创建公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/create)[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)等接口可以返回公司ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` + StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["company_name", "code", "active", "parent_company", "description", "effective_date", "expiration_date", "type", "industry_list", "legal_representative", "post_code", "tax_payer_id", "confidential", "sub_type_list", "branch_company", "primary_manager", "currency", "phone", "fax", "registered_office_address", "office_address", "registered_office_address_info", "office_address_info"]示例值: ["company_name"] 长度范围: `0` ~ `100` +} + +// QueryCorehrCompanyMultiTimelineResp ... +type QueryCorehrCompanyMultiTimelineResp struct { + Items []*QueryCorehrCompanyMultiTimelineRespItem `json:"items,omitempty"` // 公司信息 +} + +// QueryCorehrCompanyMultiTimelineRespItem ... +type QueryCorehrCompanyMultiTimelineRespItem struct { + CompanyVersionData []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData `json:"company_version_data,omitempty"` // 公司版本信息 + Type *QueryCorehrCompanyMultiTimelineRespItemType `json:"type,omitempty"` // 公司性质- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=company;custom_api_name=type。 + IndustryList []*QueryCorehrCompanyMultiTimelineRespItemIndustry `json:"industry_list,omitempty"` // 所在行业- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=industry + LegalRepresentative []*QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative `json:"legal_representative,omitempty"` // 法定代表人 + PostCode string `json:"post_code,omitempty"` // 邮编 + TaxPayerID string `json:"tax_payer_id,omitempty"` // 纳税人识别号 + Confidential bool `json:"confidential,omitempty"` // 是否保密 + SubTypeList []*QueryCorehrCompanyMultiTimelineRespItemSubType `json:"sub_type_list,omitempty"` // 公司主体类型- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=subtype + BranchCompany bool `json:"branch_company,omitempty"` // 是否为分公司 + PrimaryManager []*QueryCorehrCompanyMultiTimelineRespItemPrimaryManager `json:"primary_manager,omitempty"` // 主要负责人 + Currency *QueryCorehrCompanyMultiTimelineRespItemCurrency `json:"currency,omitempty"` // 默认币种 + Phone *QueryCorehrCompanyMultiTimelineRespItemPhone `json:"phone,omitempty"` // 电话 + Fax *QueryCorehrCompanyMultiTimelineRespItemFax `json:"fax,omitempty"` // 传真 + RegisteredOfficeAddress []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres `json:"registered_office_address,omitempty"` // 完整注册地址 + OfficeAddress []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddres `json:"office_address,omitempty"` // 完整办公地址 + RegisteredOfficeAddressInfo *QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo `json:"registered_office_address_info,omitempty"` // 注册地址 + OfficeAddressInfo *QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo `json:"office_address_info,omitempty"` // 办公地址 +} + +// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData ... +type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData struct { + CompanyID string `json:"company_id,omitempty"` // 公司 ID + CompanyVersionID string `json:"company_version_id,omitempty"` // 公司版本 ID + CompanyNames []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName `json:"company_names,omitempty"` // 公司名称 + ParentCompanyID string `json:"parent_company_id,omitempty"` // 上级公司 ID- 若查询的是一级公司, 则该字段不展示 + EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + Active bool `json:"active,omitempty"` // 是否启用 + Descriptions []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Code string `json:"code,omitempty"` // 编码 +} + +// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName ... +type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription ... +type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文: en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemCurrency ... +type QueryCorehrCompanyMultiTimelineRespItemCurrency struct { + CurrencyID string `json:"currency_id,omitempty"` // 货币 ID- 调用[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口返回货币详细信息 + CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 货币所属国家/地区 ID 列表- 详细信息可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + CurrencyName []*QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName `json:"currency_name,omitempty"` // 货币名称 + NumericCode int64 `json:"numeric_code,omitempty"` // 数字代码(ISO 4217), 对应币种的指代代码, 通过系统内部查找, 通过[查询货币信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)查询获取。 + CurrencyAlpha3Code string `json:"currency_alpha_3_code,omitempty"` // 法定货币对应代码, 如CNY、USD等, 通过[查询货币信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)查询获取。 + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 +} + +// QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName ... +type QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemFax ... +type QueryCorehrCompanyMultiTimelineRespItemFax struct { + AreaCode *QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode `json:"area_code,omitempty"` // 传真区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 + PhoneNumber string `json:"phone_number,omitempty"` // 号码 +} + +// QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode ... +type QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemIndustry ... +type QueryCorehrCompanyMultiTimelineRespItemIndustry struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative ... +type QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemOfficeAddres ... +type QueryCorehrCompanyMultiTimelineRespItemOfficeAddres struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo ... +type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID- 各国家/地区填写字段可参考[地址填写规则](https://bytedance.larkoffice.com/wiki/GoL4wAKAXis3OWku72YcEjTxnKe?sheet=0sMjoP)查询。可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)查询获取。 + RegionID string `json:"region_id,omitempty"` // 主要行政区 ID- 可通过[查询省份/主要行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)查询获取。 + CityID string `json:"city_id,omitempty"` // 城市 ID- 调用[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口返回城市详细信息 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 ID- 调用[【查询区县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口返回区县详细信息 + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 +} + +// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType ... +type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemPhone ... +type QueryCorehrCompanyMultiTimelineRespItemPhone struct { + AreaCode *QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode `json:"area_code,omitempty"` // 电话区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 + PhoneNumber string `json:"phone_number,omitempty"` // 号码 +} + +// QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode ... +type QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemPrimaryManager ... +type QueryCorehrCompanyMultiTimelineRespItemPrimaryManager struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres ... +type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo ... +type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID- 各国家/地区填写字段可参考[地址填写规则](https://bytedance.larkoffice.com/wiki/GoL4wAKAXis3OWku72YcEjTxnKe?sheet=0sMjoP)查询。可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)查询获取。 + RegionID string `json:"region_id,omitempty"` // 主要行政区 ID- 可通过[查询省份/主要行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)查询获取。 + CityID string `json:"city_id,omitempty"` // 城市 ID- 调用[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口返回城市详细信息 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 ID- 调用[【查询区县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口返回区县详细信息 + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 +} + +// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType ... +type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 + Display []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemSubType ... +type QueryCorehrCompanyMultiTimelineRespItemSubType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCompanyMultiTimelineRespItemType ... +type QueryCorehrCompanyMultiTimelineRespItemType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrCompanyMultiTimelineRespItemTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrCompanyMultiTimelineRespItemTypeDisplay ... +type QueryCorehrCompanyMultiTimelineRespItemTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrCompanyMultiTimelineResp ... +type queryCorehrCompanyMultiTimelineResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrCompanyMultiTimelineResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_company_query_recent_change.go b/api_corehr_company_query_recent_change.go new file mode 100644 index 00000000..613792d8 --- /dev/null +++ b/api_corehr_company_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrCompanyRecentChange 查询指定时间范围内当前生效信息发生变更的公司, 即只有公司当前生效版本的生效时间在查询时间范围内, 才返回该公司id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建公司 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/query_recent_change +func (r *CoreHRService) QueryCorehrCompanyRecentChange(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrCompanyRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCompanyRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrCompanyRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrCompanyRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrCompanyRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrCompanyRecentChange mock CoreHRQueryCorehrCompanyRecentChange method +func (r *Mock) MockCoreHRQueryCorehrCompanyRecentChange(f func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrCompanyRecentChange = f +} + +// UnMockCoreHRQueryCorehrCompanyRecentChange un-mock CoreHRQueryCorehrCompanyRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrCompanyRecentChange() { + r.mockCoreHRQueryCorehrCompanyRecentChange = nil +} + +// QueryCorehrCompanyRecentChangeReq ... +type QueryCorehrCompanyRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 100 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。 查询结束时间应大于开始时间。示例值: 2024-01-10 02:10:00 +} + +// QueryCorehrCompanyRecentChangeResp ... +type QueryCorehrCompanyRecentChangeResp struct { + CompanyIDs []string `json:"company_ids,omitempty"` // 公司 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 或者[通过 ID 批量查询公司信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get) 或者[查询单个公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedCompanyIDs []string `json:"deleted_company_ids,omitempty"` // 目标查询时间范围内被删除的公司列表, 该列表是 company_ids 的子集, 便于获取在指定的[start_date, end_date) 的范围内被删除的公司IDs。- 由于对应的公司已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrCompanyRecentChangeResp ... +type queryCorehrCompanyRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrCompanyRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_compensation_archive_query.go b/api_corehr_compensation_archive_query.go index dd3ad071..b753ae9b 100644 --- a/api_corehr_compensation_archive_query.go +++ b/api_corehr_compensation_archive_query.go @@ -25,7 +25,8 @@ import ( // // 该接口会按照应用拥有的「薪资档案资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请「薪资档案资源」权限范围 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/archive/query +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/archive/query +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/archive/query func (r *CoreHRService) QueryCoreHRCompensationArchive(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) { if r.cli.mock.mockCoreHRQueryCoreHRCompensationArchive != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCompensationArchive mock enable") @@ -60,12 +61,13 @@ func (r *Mock) UnMockCoreHRQueryCoreHRCompensationArchive() { // QueryCoreHRCompensationArchiveReq ... type QueryCoreHRCompensationArchiveReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 231432433 - UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - UserIDList []string `json:"user_id_list,omitempty"` // 用户ID列表, 示例值: ["7117649868058789407"], 长度范围: `1` ~ `100` - EffectiveStartDate *string `json:"effective_start_date,omitempty"` // 生效开始时间, 示例值: "2022-05-10" - EffectiveEndDate *string `json:"effective_end_date,omitempty"` // 生效结束时间, 示例值: "2023-05-15" + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 231432433 + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_corehr_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDList []string `json:"user_id_list,omitempty"` // 用户ID列表, 获取方式可参考查询参数中的「user_id_type」字段示例值: ["7117649868058789407"] 长度范围: `1` ~ `100` + TidList []string `json:"tid_list,omitempty"` // 档案Tid列表示例值: ["141541351"] 长度范围: `1` ~ `100` + EffectiveStartDate *string `json:"effective_start_date,omitempty"` // 生效开始时间示例值: "2022-05-10" + EffectiveEndDate *string `json:"effective_end_date,omitempty"` // 生效结束时间示例值: "2023-05-15" } // QueryCoreHRCompensationArchiveResp ... @@ -77,18 +79,21 @@ type QueryCoreHRCompensationArchiveResp struct { // QueryCoreHRCompensationArchiveRespItem ... type QueryCoreHRCompensationArchiveRespItem struct { - UserID string `json:"user_id,omitempty"` // 员工ID + UserID string `json:"user_id,omitempty"` // 员工ID, 返回的ID类型与查询参数中的「user_id_type」的取值一致 ID string `json:"id,omitempty"` // 员工薪资档案ID Tid string `json:"tid,omitempty"` // 员工薪资档案版本ID, 薪资档案唯一标识 - PlanID string `json:"plan_id,omitempty"` // 关联薪资方案ID, 详细信息可以通过[批量查询薪资方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口查询获得, 字段权限要求: 获取薪资档案的关联方案 - PlanTid string `json:"plan_tid,omitempty"` // 关联薪资方案版本ID, 薪资方案唯一标识, 详细信息可以通过[批量查询薪资方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口查询获得, 字段权限要求: 获取薪资档案的关联方案 + PlanID string `json:"plan_id,omitempty"` // 关联薪资方案ID, 详细信息可以通过[批量查询薪资方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口查询获得字段权限要求: 获取薪资档案的关联方案 + PlanTid string `json:"plan_tid,omitempty"` // 关联薪资方案版本ID, 薪资方案唯一标识, 详细信息可以通过[批量查询薪资方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list)接口查询获得字段权限要求: 获取薪资档案的关联方案 CurrencyID string `json:"currency_id,omitempty"` // 档案币种ID, 详细信息可以通过[查询货币信息v2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得 ChangeReasonID string `json:"change_reason_id,omitempty"` // 调薪原因ID, 详细信息可以通过[批量查询定调薪原因](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/change_reason/list)接口查询获得 - ChangeDescription string `json:"change_description,omitempty"` // 调薪说明, 字段权限要求: 获取薪资档案的调薪说明 + ChangeDescription string `json:"change_description,omitempty"` // 调薪说明字段权限要求: 获取薪资档案的调薪说明 EffectiveDate string `json:"effective_date,omitempty"` // 生效时间 - SalaryLevelID string `json:"salary_level_id,omitempty"` // 薪级薪等ID, 字段权限要求: 获取薪资档案的关联薪级薪等 - ArchiveItems []*QueryCoreHRCompensationArchiveRespItemArchiveItem `json:"archive_items,omitempty"` // 档案关联的薪资项, 字段权限要求: 获取薪资档案的关联薪资项 - ArchiveIndicators []*QueryCoreHRCompensationArchiveRespItemArchiveIndicator `json:"archive_indicators,omitempty"` // 档案关联的薪资指标, 字段权限要求: 获取薪资档案的关联薪资指标 + ExpirationDate string `json:"expiration_date,omitempty"` // 失效时间 + SalaryLevelID string `json:"salary_level_id,omitempty"` // 薪级薪等ID字段权限要求: 获取薪资档案的关联薪级薪等 + CreatedTime string `json:"created_time,omitempty"` // 创建时间 + UpdatedTime string `json:"updated_time,omitempty"` // 更新时间 + ArchiveItems []*QueryCoreHRCompensationArchiveRespItemArchiveItem `json:"archive_items,omitempty"` // 档案关联的薪资项字段权限要求: 获取薪资档案的关联薪资项 + ArchiveIndicators []*QueryCoreHRCompensationArchiveRespItemArchiveIndicator `json:"archive_indicators,omitempty"` // 档案关联的薪资指标字段权限要求: 获取薪资档案的关联薪资指标 } // QueryCoreHRCompensationArchiveRespItemArchiveIndicator ... @@ -101,8 +106,8 @@ type QueryCoreHRCompensationArchiveRespItemArchiveIndicator struct { // QueryCoreHRCompensationArchiveRespItemArchiveItem ... type QueryCoreHRCompensationArchiveRespItemArchiveItem struct { ItemID string `json:"item_id,omitempty"` // 薪资项ID, 详细信息可以通过[批量查询薪资项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)接口查询获得 - ItemResult string `json:"item_result,omitempty"` // 档案关联薪资项数值 - ItemResultRegular string `json:"item_result_regular,omitempty"` // 档案关联薪资项转正后数值 + ItemResult string `json:"item_result,omitempty"` // 档案关联薪酬项数值 + ItemResultRegular string `json:"item_result_regular,omitempty"` // 档案关联薪酬项转正后数值 } // queryCoreHRCompensationArchiveResp ... diff --git a/api_corehr_compensation_change_reason_list.go b/api_corehr_compensation_change_reason_list.go index cefc2815..9712dfab 100644 --- a/api_corehr_compensation_change_reason_list.go +++ b/api_corehr_compensation_change_reason_list.go @@ -23,7 +23,8 @@ import ( // GetCoreHRCompensationChangeReasonList 批量查询定调薪原因 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/change_reason/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/change_reason/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/compensation-setting-and-adjustment/list func (r *CoreHRService) GetCoreHRCompensationChangeReasonList(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCompensationChangeReasonList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCompensationChangeReasonList mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockCoreHRGetCoreHRCompensationChangeReasonList() { // GetCoreHRCompensationChangeReasonListReq ... type GetCoreHRCompensationChangeReasonListReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 12314342 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 12314342 } // GetCoreHRCompensationChangeReasonListResp ... @@ -73,7 +74,7 @@ type GetCoreHRCompensationChangeReasonListRespItem struct { ID string `json:"id,omitempty"` // 调薪原因ID Name string `json:"name,omitempty"` // 调薪原因名称 Note string `json:"note,omitempty"` // 调薪原因备注 - ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态, 可选值有: 1: 启用, 0: 禁用 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用禁用 I18nNames []*GetCoreHRCompensationChangeReasonListRespItemI18nName `json:"i18n_names,omitempty"` // 多语言名称 I18nNotes []*GetCoreHRCompensationChangeReasonListRespItemI18nNote `json:"i18n_notes,omitempty"` // 多语言描述 } diff --git a/api_corehr_compensation_indicator_list.go b/api_corehr_compensation_indicator_list.go index e042eeb8..942309d3 100644 --- a/api_corehr_compensation_indicator_list.go +++ b/api_corehr_compensation_indicator_list.go @@ -23,7 +23,8 @@ import ( // GetCoreHRCompensationIndicatorList 批量查询薪资统计指标 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/indicator/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/indicator/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/compensation-component-and-metric/list-3 func (r *CoreHRService) GetCoreHRCompensationIndicatorList(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCompensationIndicatorList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCompensationIndicatorList mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockCoreHRGetCoreHRCompensationIndicatorList() { // GetCoreHRCompensationIndicatorListReq ... type GetCoreHRCompensationIndicatorListReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 123423321 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 123423321 } // GetCoreHRCompensationIndicatorListResp ... @@ -72,8 +73,8 @@ type GetCoreHRCompensationIndicatorListResp struct { type GetCoreHRCompensationIndicatorListRespItem struct { ID string `json:"id,omitempty"` // 薪资统计指标ID Name string `json:"name,omitempty"` // 薪资统计指标名称 - ValueType string `json:"value_type,omitempty"` // 薪资统计指标数值类型, 可选值有: money: 金额, number: 数值, percent: 百分比 - ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态, 可选值有: 1: 启用, 0: 禁用 + ValueType string `json:"value_type,omitempty"` // 薪资统计指标数值类型可选值有: 金额数值百分比 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用禁用 I18nNames []*GetCoreHRCompensationIndicatorListRespItemI18nName `json:"i18n_names,omitempty"` // 多语言名称 } diff --git a/api_corehr_compensation_item_category_list.go b/api_corehr_compensation_item_category_list.go index fed966a5..4d1cbb49 100644 --- a/api_corehr_compensation_item_category_list.go +++ b/api_corehr_compensation_item_category_list.go @@ -23,7 +23,8 @@ import ( // GetCoreHRCompensationItemCategoryList 批量获取薪资项分类信息 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item_category/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item_category/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/compensation-component-and-metric/list func (r *CoreHRService) GetCoreHRCompensationItemCategoryList(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCompensationItemCategoryList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCompensationItemCategoryList mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockCoreHRGetCoreHRCompensationItemCategoryList() { // GetCoreHRCompensationItemCategoryListReq ... type GetCoreHRCompensationItemCategoryListReq struct { - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 231412341234 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 231412341234 } // GetCoreHRCompensationItemCategoryListResp ... diff --git a/api_corehr_compensation_item_list.go b/api_corehr_compensation_item_list.go index 7622114e..fba8066a 100644 --- a/api_corehr_compensation_item_list.go +++ b/api_corehr_compensation_item_list.go @@ -23,7 +23,8 @@ import ( // GetCoreHRCompensationItemList 批量查询薪资项 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/compensation-component-and-metric/list-2 func (r *CoreHRService) GetCoreHRCompensationItemList(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCompensationItemList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCompensationItemList mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockCoreHRGetCoreHRCompensationItemList() { // GetCoreHRCompensationItemListReq ... type GetCoreHRCompensationItemListReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 5234233214 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 5234233214 } // GetCoreHRCompensationItemListResp ... @@ -74,10 +75,10 @@ type GetCoreHRCompensationItemListRespItem struct { Name string `json:"name,omitempty"` // 薪资项名称 Description string `json:"description,omitempty"` // 薪资项描述 CategoryID string `json:"category_id,omitempty"` // 薪资项分类ID, 详细信息可以通过[批量获取薪资项分类信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item_category/list)接口查询获得 - ValueType string `json:"value_type,omitempty"` // 薪资项数值类型, 可选值有: money: 金额, number: 数值, percent: 百分比 - PayOffFrequencyType string `json:"pay_off_frequency_type,omitempty"` // 发放频率, 可选值有: year: 年, half_year: 半年, quarterly: 季度, bimonthly: 双月, month: 月, biweekly: 双周, week: 周, day: 日, hour: 小时 + ValueType string `json:"value_type,omitempty"` // 薪资项数值类型可选值有: 金额数值百分比 + PayOffFrequencyType string `json:"pay_off_frequency_type,omitempty"` // 发放频率可选值有: 年半年季度双月月双周周日小时 DecimalPlaces int64 `json:"decimal_places,omitempty"` // 小数位数 - ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态, 可选值有: 1: 启用, 0: 禁用 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用禁用 I18nNames []*GetCoreHRCompensationItemListRespItemI18nName `json:"i18n_names,omitempty"` // 多语言名称 I18nDescriptions []*GetCoreHRCompensationItemListRespItemI18nDescription `json:"i18n_descriptions,omitempty"` // 多语言描述 } diff --git a/api_corehr_compensation_plan_list.go b/api_corehr_compensation_plan_list.go index 7c24928a..dc0b31ae 100644 --- a/api_corehr_compensation_plan_list.go +++ b/api_corehr_compensation_plan_list.go @@ -21,9 +21,10 @@ import ( "context" ) -// GetCoreHRCompensationPlanList 批量查询薪资方案 +// GetCoreHRCompensationPlanList - 此接口将返回全部薪资方案信息, 包括薪资方案 ID、生效日期、薪资项/薪资统计指标等 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/plan/list +// new doc: https://open.feishu.cn/document/corehr-v1/basic-compensation/plan/list func (r *CoreHRService) GetCoreHRCompensationPlanList(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCompensationPlanList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCompensationPlanList mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockCoreHRGetCoreHRCompensationPlanList() { // GetCoreHRCompensationPlanListReq ... type GetCoreHRCompensationPlanListReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 100, 默认值: `100`, 取值范围: `1` ~ `500` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 213432123 + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 213432123 } // GetCoreHRCompensationPlanListResp ... @@ -76,10 +77,10 @@ type GetCoreHRCompensationPlanListRespItem struct { Description string `json:"description,omitempty"` // 薪资方案描述 EffectiveDate string `json:"effective_date,omitempty"` // 薪资方案生效时间 PlanScope *GetCoreHRCompensationPlanListRespItemPlanScope `json:"plan_scope,omitempty"` // 薪资方案适用范围 - CurrencyID string `json:"currency_id,omitempty"` // 币种ID + CurrencyID string `json:"currency_id,omitempty"` // 币种ID, 可通过接口[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)获取 ProbationSalaryStatus bool `json:"probation_salary_status,omitempty"` // 开启试用期薪酬状态 - PlanItems []*GetCoreHRCompensationPlanListRespItemPlanItem `json:"plan_items,omitempty"` // 方案关联的薪资项, 字段权限要求: 获取薪资方案的关联薪资项 - PlanIndicators []*GetCoreHRCompensationPlanListRespItemPlanIndicator `json:"plan_indicators,omitempty"` // 方案关联的薪资统计指标, 字段权限要求: 获取薪资方案的关联薪资指标 + PlanItems []*GetCoreHRCompensationPlanListRespItemPlanItem `json:"plan_items,omitempty"` // 方案关联的薪资项字段权限要求: 获取薪资方案的关联薪资项 + PlanIndicators []*GetCoreHRCompensationPlanListRespItemPlanIndicator `json:"plan_indicators,omitempty"` // 方案关联的薪资统计指标字段权限要求: 获取薪资方案的关联薪资指标 I18nNames []*GetCoreHRCompensationPlanListRespItemI18nName `json:"i18n_names,omitempty"` // 多语言名称 I18nDescriptions []*GetCoreHRCompensationPlanListRespItemI18nDescription `json:"i18n_descriptions,omitempty"` // 多语言描述 } @@ -116,16 +117,16 @@ type GetCoreHRCompensationPlanListRespItemPlanIndicatorPlanIndicatorLogicFormula // GetCoreHRCompensationPlanListRespItemPlanIndicatorPlanIndicatorLogicFormulaFormulaParam ... type GetCoreHRCompensationPlanListRespItemPlanIndicatorPlanIndicatorLogicFormulaFormulaParam struct { - RefType int64 `json:"ref_type,omitempty"` // 引用类型, 可选值有: 1: 引用薪资项, 2: 引用薪资指标 + RefType int64 `json:"ref_type,omitempty"` // 引用类型可选值有: 引用薪资项引用薪资指标 ID string `json:"id,omitempty"` // 引用类型ID } // GetCoreHRCompensationPlanListRespItemPlanItem ... type GetCoreHRCompensationPlanListRespItemPlanItem struct { - AdjustmentType string `json:"adjustment_type,omitempty"` // 定薪方式, 可选值有: manual: 手动输入, formula: 公式计算, fixed: 固定值 + AdjustmentType string `json:"adjustment_type,omitempty"` // 定薪方式可选值有: 手动输入公式计算固定值 ItemID string `json:"item_id,omitempty"` // 薪资项ID, 详细信息可以通过[批量查询薪资项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/compensation-v1/item/list)接口查询获得 PlanItemLogic *GetCoreHRCompensationPlanListRespItemPlanItemPlanItemLogic `json:"plan_item_logic,omitempty"` // 方案关联薪资项逻辑配置 - ProbationDiscountType string `json:"probation_discount_type,omitempty"` // 试用期薪酬类型, 可选值有: percentum: 百分比, manual_input: 手动输入, none: 不区分试用期和转正薪酬, fixed: 固定值, formula: 公式计算, not_set: 未设置试用期 + ProbationDiscountType string `json:"probation_discount_type,omitempty"` // 试用期薪酬类型可选值有: 百分比手动输入不区分试用期和转正薪酬固定值公式计算未设置试用期 ProbationDiscountPercentum string `json:"probation_discount_percentum,omitempty"` // 试用期薪酬百分比 } @@ -143,7 +144,7 @@ type GetCoreHRCompensationPlanListRespItemPlanItemPlanItemLogicFormula struct { // GetCoreHRCompensationPlanListRespItemPlanItemPlanItemLogicFormulaFormulaParam ... type GetCoreHRCompensationPlanListRespItemPlanItemPlanItemLogicFormulaFormulaParam struct { - RefType int64 `json:"ref_type,omitempty"` // 引用类型, 可选值有: 1: 引用薪资项, 2: 引用薪资指标 + RefType int64 `json:"ref_type,omitempty"` // 引用类型可选值有: 引用薪资项引用薪资指标 ID string `json:"id,omitempty"` // 引用类型ID } @@ -155,9 +156,9 @@ type GetCoreHRCompensationPlanListRespItemPlanScope struct { // GetCoreHRCompensationPlanListRespItemPlanScopePlanCondition ... type GetCoreHRCompensationPlanListRespItemPlanScopePlanCondition struct { - LeftType int64 `json:"left_type,omitempty"` // 适用范围左值, 可选值有: 1: 部门, 2: 部门(包含下级部门), 3: 工作地点, 4: 工作地点(包含下级地点), 5: 公司, 6: 公司(包含下级公司), 7: 序列, 8: 序列(包含子序列), 9: 职务, 10: 职级, 11: 人员类型, 12: 招聘类型, 13: 国家/地区, 14: 职等 - Operator int64 `json:"operator,omitempty"` // 适用范围操作, 可选值有: 1: 包含, 2: 不包含 - RightValue []string `json:"right_value,omitempty"` // 部门ID, 详细信息可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询获得, 工作地点ID, 详细信息可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口查询获得, 成本中心ID, 详细信息可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得, 职务ID, 详细信息可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口查询获得, 职级ID, 详细信息可以通过[通过职级 ID 批量获取职级信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)接口查询获得, 序列ID, 详细信息可以通过[通过序列 ID 批量获取序列信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)接口查询获得, 人员类型ID, 详细信息可以通过[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口查询获得 + LeftType int64 `json:"left_type,omitempty"` // 适用范围左值可选值有: 部门部门(包含下级部门)工作地点工作地点(包含下级地点)公司公司(包含下级公司)序列序列(包含子序列)职务职级人员类型招聘类型国家/地区职等 + Operator int64 `json:"operator,omitempty"` // 适用范围操作可选值有: 包含不包含 + RightValue []string `json:"right_value,omitempty"` // --适用范围左值为: 部门、部门(包含下级部门), 返回: 部门ID, 详细信息可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询获得- 适用范围左值为: 工作地点、工作地点(包含下级工作地点), 返回: 工作地点ID, 详细信息可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口查询获得- 适用范围左值为: 公司、公司(包含下级公司), 返回: 公司ID, 详细信息可以通过[通过公司 ID 批量获取公司信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)接口查询获得- 适用范围左值为: 序列、序列(包含子序列), 返回: 序列ID, 详细信息可以通过[通过序列 ID 批量获取序列信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)接口查询获得- 适用范围左值为: 职务, 返回: 职务ID, 详细信息可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口查询获得- 适用范围左值为: 职级, 返回: 职级ID, 详细信息可以通过[通过职级 ID 批量获取职级信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)接口查询获得- 适用范围左值为: 人员类型, 返回: 人员类型ID, 详细信息可以通过[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口查询获得- 适用范围左值为: 招聘类型, 返回: 招聘类型- 适用范围左值为: 国家/地区, 返回: 国家/地区- 适用范围左值为: 职等, 返回: 职等ID, 详细信息可以通过[查询职等](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口查询获得 } // getCoreHRCompensationPlanListResp ... diff --git a/api_corehr_compensation_standard_match.go b/api_corehr_compensation_standard_match.go index 970b79c8..b5fe3ce0 100644 --- a/api_corehr_compensation_standard_match.go +++ b/api_corehr_compensation_standard_match.go @@ -27,7 +27,8 @@ import ( // - 此接口将返回员工可匹配到的薪资标准全部信息, 包括薪资标准表 ID、薪级薪等、薪资带宽、薪资标准值等 // 该接口会按照应用拥有的「薪资标准资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中已申请「薪资标准资源」权限范围 // -// doc: https://open.feishu.cn/document/server-docs/corehr-v1/compensation_standard/match +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/compensation_standard/match +// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/compensation_standard/match func (r *CoreHRService) MatchCoreHRCompensationStandard(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) { if r.cli.mock.mockCoreHRMatchCoreHRCompensationStandard != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#MatchCoreHRCompensationStandard mock enable") diff --git a/api_corehr_contract_delete.go b/api_corehr_contract_delete.go index 5b06eddd..87929841 100644 --- a/api_corehr_contract_delete.go +++ b/api_corehr_contract_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHRContractReq struct { } // DeleteCoreHRContractResp ... -type DeleteCoreHRContractResp struct{} +type DeleteCoreHRContractResp struct { +} // deleteCoreHRContractResp ... type deleteCoreHRContractResp struct { diff --git a/api_corehr_cost_allocation_batch_query.go b/api_corehr_cost_allocation_batch_query.go new file mode 100644 index 00000000..88f08905 --- /dev/null +++ b/api_corehr_cost_allocation_batch_query.go @@ -0,0 +1,104 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryCorehrCostAllocation 查询成本分摊 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query +// new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/batch_query +func (r *CoreHRService) BatchQueryCorehrCostAllocation(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCorehrCostAllocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrCostAllocation mock enable") + return r.cli.mock.mockCoreHRBatchQueryCorehrCostAllocation(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchQueryCorehrCostAllocation", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryCorehrCostAllocationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchQueryCorehrCostAllocation mock CoreHRBatchQueryCorehrCostAllocation method +func (r *Mock) MockCoreHRBatchQueryCorehrCostAllocation(f func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error)) { + r.mockCoreHRBatchQueryCorehrCostAllocation = f +} + +// UnMockCoreHRBatchQueryCorehrCostAllocation un-mock CoreHRBatchQueryCorehrCostAllocation method +func (r *Mock) UnMockCoreHRBatchQueryCorehrCostAllocation() { + r.mockCoreHRBatchQueryCorehrCostAllocation = nil +} + +// BatchQueryCorehrCostAllocationReq ... +type BatchQueryCorehrCostAllocationReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工ID列表-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: ["4692446793125560154"] 长度范围: `1` ~ `100` +} + +// BatchQueryCorehrCostAllocationResp ... +type BatchQueryCorehrCostAllocationResp struct { + Items []*BatchQueryCorehrCostAllocationRespItem `json:"items,omitempty"` // 查询到的成本分摊信息 +} + +// BatchQueryCorehrCostAllocationRespItem ... +type BatchQueryCorehrCostAllocationRespItem struct { + EmploymentID string `json:"employment_id,omitempty"` // 员工ID + CostAllocations []*BatchQueryCorehrCostAllocationRespItemCostAllocation `json:"cost_allocations,omitempty"` // 成本分摊信息 +} + +// BatchQueryCorehrCostAllocationRespItemCostAllocation ... +type BatchQueryCorehrCostAllocationRespItemCostAllocation struct { + WkID string `json:"wk_id,omitempty"` // 成本分摊ID + EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期 + ExpirationTime string `json:"expiration_time,omitempty"` // 分摊失效日期 + JobDataCostCenterID []*BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 + JobDataID *BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID `json:"job_data_id,omitempty"` // 任职ID + Reason string `json:"reason,omitempty"` // 变更原因 +} + +// BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID ... +type BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 +} + +// BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID ... +type BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID struct { + WkID string `json:"wk_id,omitempty"` // 记录ID +} + +// batchQueryCorehrCostAllocationResp ... +type batchQueryCorehrCostAllocationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCorehrCostAllocationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_cost_allocation_create_version.go b/api_corehr_cost_allocation_create_version.go new file mode 100644 index 00000000..da939c52 --- /dev/null +++ b/api_corehr_cost_allocation_create_version.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCostAllocationVersion 创建成本分摊 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/create_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/create_version +func (r *CoreHRService) CreateCorehrCostAllocationVersion(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCostAllocationVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCostAllocationVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/create_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCostAllocationVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCostAllocationVersion mock CoreHRCreateCorehrCostAllocationVersion method +func (r *Mock) MockCoreHRCreateCorehrCostAllocationVersion(f func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRCreateCorehrCostAllocationVersion = f +} + +// UnMockCoreHRCreateCorehrCostAllocationVersion un-mock CoreHRCreateCorehrCostAllocationVersion method +func (r *Mock) UnMockCoreHRCreateCorehrCostAllocationVersion() { + r.mockCoreHRCreateCorehrCostAllocationVersion = nil +} + +// CreateCorehrCostAllocationVersionReq ... +type CreateCorehrCostAllocationVersionReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" + CostAllocation *CreateCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 +} + +// CreateCorehrCostAllocationVersionReqCostAllocation ... +type CreateCorehrCostAllocationVersionReqCostAllocation struct { + EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2024-12-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2024-12-02" + JobDataCostCenterID []*CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `1` ~ `50` + Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" +} + +// CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID ... +type CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。示例值: "6950635856373745165" + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// CreateCorehrCostAllocationVersionResp ... +type CreateCorehrCostAllocationVersionResp struct { + CostAllocationID string `json:"cost_allocation_id,omitempty"` // 成本分摊ID +} + +// createCorehrCostAllocationVersionResp ... +type createCorehrCostAllocationVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCostAllocationVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_cost_allocation_remove_version.go b/api_corehr_cost_allocation_remove_version.go new file mode 100644 index 00000000..5397bab2 --- /dev/null +++ b/api_corehr_cost_allocation_remove_version.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// RemoveCorehrCostAllocationVersion 删除成本分摊 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/remove_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/remove_version +func (r *CoreHRService) RemoveCorehrCostAllocationVersion(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCorehrCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRRemoveCorehrCostAllocationVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "RemoveCorehrCostAllocationVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/remove_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(removeCorehrCostAllocationVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRRemoveCorehrCostAllocationVersion mock CoreHRRemoveCorehrCostAllocationVersion method +func (r *Mock) MockCoreHRRemoveCorehrCostAllocationVersion(f func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRRemoveCorehrCostAllocationVersion = f +} + +// UnMockCoreHRRemoveCorehrCostAllocationVersion un-mock CoreHRRemoveCorehrCostAllocationVersion method +func (r *Mock) UnMockCoreHRRemoveCorehrCostAllocationVersion() { + r.mockCoreHRRemoveCorehrCostAllocationVersion = nil +} + +// RemoveCorehrCostAllocationVersionReq ... +type RemoveCorehrCostAllocationVersionReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + EmploymentID string `json:"employment_id,omitempty"` // 员工ID, 删除时必填-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "7862995757234914824" + CostAllocation *RemoveCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 +} + +// RemoveCorehrCostAllocationVersionReqCostAllocation ... +type RemoveCorehrCostAllocationVersionReqCostAllocation struct { + WkID string `json:"wk_id,omitempty"` // wk_id, 删除时必填-可以调用[【查询成本分摊】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query)接口, 获取对应成本分摊信息的成本分摊ID。示例值: "703912325303191204" +} + +// RemoveCorehrCostAllocationVersionResp ... +type RemoveCorehrCostAllocationVersionResp struct { +} + +// removeCorehrCostAllocationVersionResp ... +type removeCorehrCostAllocationVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RemoveCorehrCostAllocationVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_cost_allocation_update_version.go b/api_corehr_cost_allocation_update_version.go new file mode 100644 index 00000000..5c9622fa --- /dev/null +++ b/api_corehr_cost_allocation_update_version.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrCostAllocationVersion 更新成本分摊 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/update_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/update_version +func (r *CoreHRService) UpdateCorehrCostAllocationVersion(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrCostAllocationVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrCostAllocationVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/update_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrCostAllocationVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrCostAllocationVersion mock CoreHRUpdateCorehrCostAllocationVersion method +func (r *Mock) MockCoreHRUpdateCorehrCostAllocationVersion(f func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRUpdateCorehrCostAllocationVersion = f +} + +// UnMockCoreHRUpdateCorehrCostAllocationVersion un-mock CoreHRUpdateCorehrCostAllocationVersion method +func (r *Mock) UnMockCoreHRUpdateCorehrCostAllocationVersion() { + r.mockCoreHRUpdateCorehrCostAllocationVersion = nil +} + +// UpdateCorehrCostAllocationVersionReq ... +type UpdateCorehrCostAllocationVersionReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" + CostAllocation *UpdateCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 +} + +// UpdateCorehrCostAllocationVersionReqCostAllocation ... +type UpdateCorehrCostAllocationVersionReqCostAllocation struct { + WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询成本分摊】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query)接口, 获取对应成本分摊信息的成本分摊ID。示例值: "703912325303191204" + EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2024-12-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2024-12-02" + JobDataCostCenterID []*UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `0` ~ `10000` + Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" +} + +// UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID ... +type UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。示例值: "6950635856373745165" + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// UpdateCorehrCostAllocationVersionResp ... +type UpdateCorehrCostAllocationVersionResp struct { +} + +// updateCorehrCostAllocationVersionResp ... +type updateCorehrCostAllocationVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrCostAllocationVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_cost_center_delete.go b/api_corehr_cost_center_delete.go index 145bdf73..28ffe5ba 100644 --- a/api_corehr_cost_center_delete.go +++ b/api_corehr_cost_center_delete.go @@ -66,7 +66,8 @@ type DeleteCoreHRCostCenterReq struct { } // DeleteCoreHRCostCenterResp ... -type DeleteCoreHRCostCenterResp struct{} +type DeleteCoreHRCostCenterResp struct { +} // deleteCoreHRCostCenterResp ... type deleteCoreHRCostCenterResp struct { diff --git a/api_corehr_cost_center_query_recent_change.go b/api_corehr_cost_center_query_recent_change.go new file mode 100644 index 00000000..5ee11455 --- /dev/null +++ b/api_corehr_cost_center_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrCostCenterRecentChange 查询指定时间范围内当前生效信息发生变更的成本中心, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该成本中心id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建成本中心 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/cost_center/query_recent_change +func (r *CoreHRService) QueryCorehrCostCenterRecentChange(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrCostCenterRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCostCenterRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrCostCenterRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrCostCenterRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_centers/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrCostCenterRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrCostCenterRecentChange mock CoreHRQueryCorehrCostCenterRecentChange method +func (r *Mock) MockCoreHRQueryCorehrCostCenterRecentChange(f func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrCostCenterRecentChange = f +} + +// UnMockCoreHRQueryCorehrCostCenterRecentChange un-mock CoreHRQueryCorehrCostCenterRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrCostCenterRecentChange() { + r.mockCoreHRQueryCorehrCostCenterRecentChange = nil +} + +// QueryCorehrCostCenterRecentChangeReq ... +type QueryCorehrCostCenterRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrCostCenterRecentChangeResp ... +type QueryCorehrCostCenterRecentChangeResp struct { + CostCenterIDs []string `json:"cost_center_ids,omitempty"` // 成本中心 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedCostCenterIDs []string `json:"deleted_cost_center_ids,omitempty"` // 目标查询时间范围内被删除的成本中心列表, 该列表是 cost_center_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的成本中心 IDs。- 由于对应的成本中心已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrCostCenterRecentChangeResp ... +type queryCorehrCostCenterRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrCostCenterRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_cost_center_version_delete.go b/api_corehr_cost_center_version_delete.go index 70ad53ad..ef1264ab 100644 --- a/api_corehr_cost_center_version_delete.go +++ b/api_corehr_cost_center_version_delete.go @@ -66,7 +66,8 @@ type DeleteCoreHRCostCenterVersionReq struct { } // DeleteCoreHRCostCenterVersionResp ... -type DeleteCoreHRCostCenterVersionResp struct{} +type DeleteCoreHRCostCenterVersionResp struct { +} // deleteCoreHRCostCenterVersionResp ... type deleteCoreHRCostCenterVersionResp struct { diff --git a/api_corehr_country_region_get.go b/api_corehr_country_region_get.go index dbf1b313..1586a240 100644 --- a/api_corehr_country_region_get.go +++ b/api_corehr_country_region_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/country_region/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/get -// -// Deprecated func (r *CoreHRService) GetCoreHRCountryRegion(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCountryRegion != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCountryRegion mock enable") diff --git a/api_corehr_country_region_list.go b/api_corehr_country_region_list.go index c6c6362f..89a0e574 100644 --- a/api_corehr_country_region_list.go +++ b/api_corehr_country_region_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/country_region/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/list -// -// Deprecated func (r *CoreHRService) GetCoreHRCountryRegionList(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCountryRegionList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCountryRegionList mock enable") diff --git a/api_corehr_currency_get.go b/api_corehr_currency_get.go index 14187a13..01c17993 100644 --- a/api_corehr_currency_get.go +++ b/api_corehr_currency_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/currency/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/currency/get -// -// Deprecated func (r *CoreHRService) GetCoreHRCurrency(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCurrency != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCurrency mock enable") diff --git a/api_corehr_currency_list.go b/api_corehr_currency_list.go index d61d4401..101d1068 100644 --- a/api_corehr_currency_list.go +++ b/api_corehr_currency_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/currency/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/currency/list -// -// Deprecated func (r *CoreHRService) GetCoreHRCurrencyList(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRCurrencyList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRCurrencyList mock enable") diff --git a/api_corehr_custom_org_active.go b/api_corehr_custom_org_active.go new file mode 100644 index 00000000..40444829 --- /dev/null +++ b/api_corehr_custom_org_active.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCustomOrgActive 对自定义组织进行启用或停用操作 +// +// - 停用自定义组织时请确认有无在职员工、异动单据、待入职单据关联此自定义组织, 如有会导致停用失败。 +// - 若启/停用的生效时间当天不存在版本则会自动生成一个版本。 +// - 若启/停用的生效时间当天存在版本则会修改该版本。 +// - 如果该自定义组织设置了自动匹配规则, 该规则也会同时被停用。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/active +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/active +func (r *CoreHRService) CreateCorehrCustomOrgActive(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCustomOrgActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCustomOrgActive mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCustomOrgActive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCustomOrgActive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/active", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCustomOrgActiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCustomOrgActive mock CoreHRCreateCorehrCustomOrgActive method +func (r *Mock) MockCoreHRCreateCorehrCustomOrgActive(f func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error)) { + r.mockCoreHRCreateCorehrCustomOrgActive = f +} + +// UnMockCoreHRCreateCorehrCustomOrgActive un-mock CoreHRCreateCorehrCustomOrgActive method +func (r *Mock) UnMockCoreHRCreateCorehrCustomOrgActive() { + r.mockCoreHRCreateCorehrCustomOrgActive = nil +} + +// CreateCorehrCustomOrgActiveReq ... +type CreateCorehrCustomOrgActiveReq struct { + OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914823" + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织配置」中相应的自定义组织目录下查看示例值: "custom_org_01" + Active bool `json:"active,omitempty"` // 启用/停用状态。- active 传 true 代表启用- active 传 false 代表停用示例值: true + EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` +} + +// CreateCorehrCustomOrgActiveResp ... +type CreateCorehrCustomOrgActiveResp struct { +} + +// createCorehrCustomOrgActiveResp ... +type createCorehrCustomOrgActiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCustomOrgActiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_create.go b/api_corehr_custom_org_create.go new file mode 100644 index 00000000..fe3ba314 --- /dev/null +++ b/api_corehr_custom_org_create.go @@ -0,0 +1,126 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrCustomOrg 使用指定信息创建自定义组织, 接口内会做相关规则校验。 +// +// - 每种自定义组织都可以通过此接口创建, 不同种自定义组织通过不同 object_api_name 区分。 +// - 非必填字段, 不传时默认为空。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/create +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/create +func (r *CoreHRService) CreateCorehrCustomOrg(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCustomOrg mock enable") + return r.cli.mock.mockCoreHRCreateCorehrCustomOrg(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrCustomOrg", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrCustomOrgResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrCustomOrg mock CoreHRCreateCorehrCustomOrg method +func (r *Mock) MockCoreHRCreateCorehrCustomOrg(f func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error)) { + r.mockCoreHRCreateCorehrCustomOrg = f +} + +// UnMockCoreHRCreateCorehrCustomOrg un-mock CoreHRCreateCorehrCustomOrg method +func (r *Mock) UnMockCoreHRCreateCorehrCustomOrg() { + r.mockCoreHRCreateCorehrCustomOrg = nil +} + +// CreateCorehrCustomOrgReq ... +type CreateCorehrCustomOrgReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id` 长度范围: `0` ~ `64` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" 长度范围: `1` ~ `128` 字符 + Names []*CreateCorehrCustomOrgReqName `json:"names,omitempty"` // 自定义组织的名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` + Code *string `json:"code,omitempty"` // 自定义组织编码 (不能与其他记录的编码重复)- 开启自动编码时, 如果不传值会自动生成编码, 否则以传入值为准- 未开启自动编码时, 不传值不会自动生成编码示例值: "000001(格式和配置的匹配规则相关)" 长度范围: `0` ~ `128` 字符 + ParentID *string `json:"parent_id,omitempty"` // 上级自定义组织 ID- 上级自定义组织的状态必须是启用的。- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" + ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表。- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取, ID 为返回值中的 [employment_id]示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` + Description []*CreateCorehrCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` + EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + OrgRoles []*CreateCorehrCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` + MatchRuleGroups []*CreateCorehrCustomOrgReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个]match_rule_groups[之间是并集关系- 各个]match_rules[之间是交集关系 长度范围: `0` ~ `16` + CustomFields []*CreateCorehrCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` +} + +// CreateCorehrCustomOrgReqCustomField ... +type CreateCorehrCustomOrgReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "\"231\"" +} + +// CreateCorehrCustomOrgReqDescription ... +type CreateCorehrCustomOrgReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// CreateCorehrCustomOrgReqMatchRuleGroup ... +type CreateCorehrCustomOrgReqMatchRuleGroup struct { + MatchRules []*CreateCorehrCustomOrgReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` +} + +// CreateCorehrCustomOrgReqMatchRuleGroupMatchRule ... +type CreateCorehrCustomOrgReqMatchRuleGroupMatchRule struct { + LeftValue string `json:"left_value,omitempty"` // 左值示例值: "department"可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 + Operator string `json:"operator,omitempty"` // 操作符示例值: "contains"可选值有: 包含不包含 + RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- ]department[和]department_hierarchy[: 详细 ID 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得, ID 类型需要为 ]people_corehr_department_id[。- ]work_location[和]work_location_hierarchy[: 详细 ID 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得。- ]cost_center[和]cost_center_hierarchy[: 详细 ID 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得。- ]job[: 详细 ID 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)接口获得。- ]job_level[: 详细 ID 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)接口获得。- ]job_family[和]job_family_hierarchy[: 详细 ID 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得。- ]employee_type==: 详细 ID 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)接口获得。示例值: ["6862995757234914824"] 长度范围: `0` ~ `10000` +} + +// CreateCorehrCustomOrgReqName ... +type CreateCorehrCustomOrgReqName struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容。示例值: "飞书人事" +} + +// CreateCorehrCustomOrgReqOrgRole ... +type CreateCorehrCustomOrgReqOrgRole struct { + ApiName *string `json:"api_name,omitempty"` // 角色key - api_name、security_group_id必须填一个 - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取示例值: "hcm_corehr_xxxxxx" + SecurityGroupID *string `json:"security_group_id,omitempty"` // 角色ID - api_name、security_group_id必须填一个 - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type [ 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name示例值: "7034393015968122400" + EmploymentIDs []string `json:"employment_ids,omitempty"` // 被授权的员工 ID 列表- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` +} + +// CreateCorehrCustomOrgResp ... +type CreateCorehrCustomOrgResp struct { + OrgID string `json:"org_id,omitempty"` // 自定义组织的 ID +} + +// createCorehrCustomOrgResp ... +type createCorehrCustomOrgResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrCustomOrgResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_delete_org.go b/api_corehr_custom_org_delete_org.go new file mode 100644 index 00000000..770f87cc --- /dev/null +++ b/api_corehr_custom_org_delete_org.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrCustomOrg 根据传入的自定义组织 ID 删除相应自定义组织 +// +// - 删除后无法恢复, 并且在系统中无法搜索到对应自定义组织信息, 请谨慎操作。 +// - 删除自定义组织时请确认有无员工、异动单据、待入职单据关联此自定义组织, 如有会导致删除失败。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/delete_org +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/delete_org +func (r *CoreHRService) DeleteCorehrCustomOrg(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrCustomOrg mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrCustomOrg(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrCustomOrg", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/delete_org", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrCustomOrgResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrCustomOrg mock CoreHRDeleteCorehrCustomOrg method +func (r *Mock) MockCoreHRDeleteCorehrCustomOrg(f func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error)) { + r.mockCoreHRDeleteCorehrCustomOrg = f +} + +// UnMockCoreHRDeleteCorehrCustomOrg un-mock CoreHRDeleteCorehrCustomOrg method +func (r *Mock) UnMockCoreHRDeleteCorehrCustomOrg() { + r.mockCoreHRDeleteCorehrCustomOrg = nil +} + +// DeleteCorehrCustomOrgReq ... +type DeleteCorehrCustomOrgReq struct { + OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" +} + +// DeleteCorehrCustomOrgResp ... +type DeleteCorehrCustomOrgResp struct { +} + +// deleteCorehrCustomOrgResp ... +type deleteCorehrCustomOrgResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrCustomOrgResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_query.go b/api_corehr_custom_org_query.go new file mode 100644 index 00000000..399b3e28 --- /dev/null +++ b/api_corehr_custom_org_query.go @@ -0,0 +1,155 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrCustomOrg 根据传入的筛选条件批量查询自定义组织信息。不传任何筛选条件, 默认获得该租户下所有的自定义组织数据。 +// +// - 该接口只返回当前生效的自定义组织, 未来生效的自定义组织不返回 +// - 请求体入参不填写默认为空, 不参与筛选 +// - 所有筛选项可一起使用, 之间为 AND 关系 +// - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建自定义组织后 2s 内调用此接口可能查询不到数据。 +// - 在筛选 ID 和 查询字段对象个数过多时, 可能出现超时现象, 请减少筛选项和字段对象个数。阻塞性问题请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query +func (r *CoreHRService) QueryCorehrCustomOrg(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCustomOrg mock enable") + return r.cli.mock.mockCoreHRQueryCorehrCustomOrg(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrCustomOrg", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrCustomOrgResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrCustomOrg mock CoreHRQueryCorehrCustomOrg method +func (r *Mock) MockCoreHRQueryCorehrCustomOrg(f func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error)) { + r.mockCoreHRQueryCorehrCustomOrg = f +} + +// UnMockCoreHRQueryCorehrCustomOrg un-mock CoreHRQueryCorehrCustomOrg method +func (r *Mock) UnMockCoreHRQueryCorehrCustomOrg() { + r.mockCoreHRQueryCorehrCustomOrg = nil +} + +// QueryCorehrCustomOrgReq ... +type QueryCorehrCustomOrgReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" + OrgFields []string `json:"org_fields,omitempty"` // 需要返回的字段列表。字段可填写的列表如下: names- code- parent_id- manager_ids- description- effective_time- org_roles- active- org_id- custom_fields(自定义字段, 需传入具体的"custom_api_name")详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c"示例值: ["names"] 长度范围: `0` ~ `200` + OrgRoleFields []string `json:"org_role_fields,omitempty"` // 需要返回的组织角色授权信息的列表。- org_role_fields 可选两种值 - 角色key, 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取 - 角色ID, 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type [ 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name示例值: ["hcm_corehr_xxxx"] 长度范围: `0` ~ `200` + OrgIDs []string `json:"org_ids,omitempty"` // 需要查询的组织 ID 列表。- ID 为 [获取自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)返回的 org_id 字段。- 不传不做 ID 相关限制示例值: ["7140964208476371111"] 长度范围: `0` ~ `200` + Code *string `json:"code,omitempty"` // 只返回和传入编码相同的自定义组织数据。- 编码为[获取自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)返回的 code 字段。- 不传默认不做这个限制示例值: "MDPD00000023" + ParentID *string `json:"parent_id,omitempty"` // 只返回 parent_id = 传入值 的自定义组织数据。- parent_id 为[获取自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)返回的 org_id 字段。- 不传默认不做这个限制- 自定义组织 ID 类型需要为 ]people_corehr_id[示例值: "7140964208476371111" + Active *bool `json:"active,omitempty"` // 只返回启用/停用的自定义组织数据。- 不传默认不做这个限制示例值: true + NeedMatchRule *bool `json:"need_match_rule,omitempty"` // 是否返回匹配规则。- 为 true 返回 ]match_rule_groups[ 字段, 否则不返回。示例值: false +} + +// QueryCorehrCustomOrgResp ... +type QueryCorehrCustomOrgResp struct { + Items []*QueryCorehrCustomOrgRespItem `json:"items,omitempty"` // 自定义组织信息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// QueryCorehrCustomOrgRespItem ... +type QueryCorehrCustomOrgRespItem struct { + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码 + Names []*QueryCorehrCustomOrgRespItemName `json:"names,omitempty"` // 组织名称 + Code string `json:"code,omitempty"` // 编码 + ParentID string `json:"parent_id,omitempty"` // 上级自定义组织 ID- 若查询的是一级自定义组织, 则该字段不展示 + ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表- 返回的 ID 类型为 ]employment_id[- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 + Description []*QueryCorehrCustomOrgRespItemDescription `json:"description,omitempty"` // 自定义组织描述 + EffectiveTime string `json:"effective_time,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + OrgRoles []*QueryCorehrCustomOrgRespItemOrgRole `json:"org_roles,omitempty"` // 组织角色列表 + MatchRuleGroups []*QueryCorehrCustomOrgRespItemMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 此字段才会返回相关值。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 + Active bool `json:"active,omitempty"` // 自定义组织是否启用 + OrgID string `json:"org_id,omitempty"` // 自定义组织 ID + CustomFields []*QueryCorehrCustomOrgRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) +} + +// QueryCorehrCustomOrgRespItemCustomField ... +type QueryCorehrCustomOrgRespItemCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识 + Name *QueryCorehrCustomOrgRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("123", "123.23", "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")``` +} + +// QueryCorehrCustomOrgRespItemCustomFieldName ... +type QueryCorehrCustomOrgRespItemCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrCustomOrgRespItemDescription ... +type QueryCorehrCustomOrgRespItemDescription struct { + Lang string `json:"lang,omitempty"` // 语言, 中文值是 zh-CN, 英文值是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCustomOrgRespItemMatchRuleGroup ... +type QueryCorehrCustomOrgRespItemMatchRuleGroup struct { + MatchRules []*QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 +} + +// QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule ... +type QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule struct { + LeftValue string `json:"left_value,omitempty"` // 左值可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 + Operator string `json:"operator,omitempty"` // 操作符可选值有: 包含不包含 + RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- [department]和[department_hierarchy]: 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详情, ID 类型需要为 [people_corehr_department_id]。- [work_location]和[work_location_hierarchy]: 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。- [cost_center]和[cost_center_hierarchy]: 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。- [job]: 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详情。- [job_level]: 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详情。- [job_family]和[job_family_hierarchy]: 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详情。- [employee_type]: 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情。 +} + +// QueryCorehrCustomOrgRespItemName ... +type QueryCorehrCustomOrgRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言, 中文值是 zh-CN, 英文值是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrCustomOrgRespItemOrgRole ... +type QueryCorehrCustomOrgRespItemOrgRole struct { + ApiName string `json:"api_name,omitempty"` // 角色key - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取 + SecurityGroupID string `json:"security_group_id,omitempty"` // 角色ID - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type ] 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name + EmploymentIDs []string `json:"employment_ids,omitempty"` // 直接授权的员工 ID 列表- 返回的 ID 类型为 [people_corehr_id]- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 + InheritEmploymentIDs []string `json:"inherit_employment_ids,omitempty"` // 由于有上级组织权限而自动获取下级组织权限的员工 ID 列表- 返回的 ID 类型为 [people_corehr_id]- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 +} + +// queryCorehrCustomOrgResp ... +type queryCorehrCustomOrgResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrCustomOrgResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_query_recent_change.go b/api_corehr_custom_org_query_recent_change.go new file mode 100644 index 00000000..5d6ff9ea --- /dev/null +++ b/api_corehr_custom_org_query_recent_change.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrCustomOrgRecentChange 查询指定时间范围内当前生效信息发生变更的自定义组织, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该自定义组织id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建自定义组织 1月10日生效, 则1月10日凌晨 1点之后可查询到。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query_recent_change +func (r *CoreHRService) QueryCorehrCustomOrgRecentChange(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrCustomOrgRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCustomOrgRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrCustomOrgRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrCustomOrgRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrCustomOrgRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrCustomOrgRecentChange mock CoreHRQueryCorehrCustomOrgRecentChange method +func (r *Mock) MockCoreHRQueryCorehrCustomOrgRecentChange(f func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrCustomOrgRecentChange = f +} + +// UnMockCoreHRQueryCorehrCustomOrgRecentChange un-mock CoreHRQueryCorehrCustomOrgRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrCustomOrgRecentChange() { + r.mockCoreHRQueryCorehrCustomOrgRecentChange = nil +} + +// QueryCorehrCustomOrgRecentChangeReq ... +type QueryCorehrCustomOrgRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + ObjectApiName string `query:"object_api_name" json:"-"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: custom_org_01 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrCustomOrgRecentChangeResp ... +type QueryCorehrCustomOrgRecentChangeResp struct { + CustomOrgIDs []string `json:"custom_org_ids,omitempty"` // 自定义组织 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[查询自定义组织信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query) 获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedCustomOrgIDs []string `json:"deleted_custom_org_ids,omitempty"` // 目标查询时间范围内被删除的自定义组织列表, 该列表是 department_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的自定义组织 IDs。- 由于对应的自定义组织已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrCustomOrgRecentChangeResp ... +type queryCorehrCustomOrgRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrCustomOrgRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_update.go b/api_corehr_custom_org_update.go new file mode 100644 index 00000000..7ce240cb --- /dev/null +++ b/api_corehr_custom_org_update.go @@ -0,0 +1,115 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrCustomOrg 更新一个自定义组织基础信息, 不支持更新自动匹配规则, 如需更新自动匹配规则请使用[更新匹配规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/update_rule) +// +// - 非必填字段, 不传时即不做变更。 +// - 如果传入生效时间当天不存在版本则会自动生成一个版本。 +// - 如果传入生效时间当天存在版本则会修改该版本。 +// 如果是新建版本时, 会将停用版本更新为启用版本 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/patch +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/patch +func (r *CoreHRService) UpdateCorehrCustomOrg(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCustomOrg mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrCustomOrg(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrCustomOrg", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/:org_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrCustomOrgResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrCustomOrg mock CoreHRUpdateCorehrCustomOrg method +func (r *Mock) MockCoreHRUpdateCorehrCustomOrg(f func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error)) { + r.mockCoreHRUpdateCorehrCustomOrg = f +} + +// UnMockCoreHRUpdateCorehrCustomOrg un-mock CoreHRUpdateCorehrCustomOrg method +func (r *Mock) UnMockCoreHRUpdateCorehrCustomOrg() { + r.mockCoreHRUpdateCorehrCustomOrg = nil +} + +// UpdateCorehrCustomOrgReq ... +type UpdateCorehrCustomOrgReq struct { + OrgID string `path:"org_id" json:"-"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" 长度范围: `1` ~ `128` 字符 + Names []*UpdateCorehrCustomOrgReqName `json:"names,omitempty"` // 组织名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` + Code *string `json:"code,omitempty"` // 自定义组织编码 (不能与其他记录的编码重复)- 开启自动编码时, 如果不传值会自动生成编码, 否则以传入值为准- 未开启自动编码时, 不传值不会自动生成编码示例值: "MDPD00000023" + ParentID *string `json:"parent_id,omitempty"` // 上级组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" + ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表。- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取, ID 为返回值中的 [employment_id]示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` + Description []*UpdateCorehrCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` + EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + OrgRoles []*UpdateCorehrCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` + CustomFields []*UpdateCorehrCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` +} + +// UpdateCorehrCustomOrgReqCustomField ... +type UpdateCorehrCustomOrgReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "\"231\"" +} + +// UpdateCorehrCustomOrgReqDescription ... +type UpdateCorehrCustomOrgReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// UpdateCorehrCustomOrgReqName ... +type UpdateCorehrCustomOrgReqName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 具体内容示例值: "中文示例" +} + +// UpdateCorehrCustomOrgReqOrgRole ... +type UpdateCorehrCustomOrgReqOrgRole struct { + ApiName *string `json:"api_name,omitempty"` // 角色key - api_name、security_group_id必须填一个 - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取示例值: "hcm_corehr_xxxxxx" + SecurityGroupID *string `json:"security_group_id,omitempty"` // 角色ID - api_name、security_group_id必须填一个 - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type == 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name示例值: "7034393015968122400" + EmploymentIDs []string `json:"employment_ids,omitempty"` // 被授权的员工 ID 列表- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` +} + +// UpdateCorehrCustomOrgResp ... +type UpdateCorehrCustomOrgResp struct { +} + +// updateCorehrCustomOrgResp ... +type updateCorehrCustomOrgResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrCustomOrgResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_custom_org_update_rule.go b/api_corehr_custom_org_update_rule.go new file mode 100644 index 00000000..71951175 --- /dev/null +++ b/api_corehr_custom_org_update_rule.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrCustomOrgRule 更新自定义组织的匹配规则。仅开启了「为组织设置自动匹配规则」的自定义组织类型可用。如需更新自定义组织基本信息可使用[更新自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/patch) +// +// - 自定义组织规则无生效时间概念, 规则变更不会生成相应版本。 +// - 自定义组织规则变更后不会自动生效, 需要在「飞书人事-组织管理-对应自定义组织」页面右上角点击「立即计算匹配规则」按钮才会生效。或者每天 0 点自动生效。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/update_rule +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/update_rule +func (r *CoreHRService) UpdateCorehrCustomOrgRule(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrCustomOrgRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCustomOrgRule mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrCustomOrgRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrCustomOrgRule", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/update_rule", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrCustomOrgRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrCustomOrgRule mock CoreHRUpdateCorehrCustomOrgRule method +func (r *Mock) MockCoreHRUpdateCorehrCustomOrgRule(f func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error)) { + r.mockCoreHRUpdateCorehrCustomOrgRule = f +} + +// UnMockCoreHRUpdateCorehrCustomOrgRule un-mock CoreHRUpdateCorehrCustomOrgRule method +func (r *Mock) UnMockCoreHRUpdateCorehrCustomOrgRule() { + r.mockCoreHRUpdateCorehrCustomOrgRule = nil +} + +// UpdateCorehrCustomOrgRuleReq ... +type UpdateCorehrCustomOrgRuleReq struct { + ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" + OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" + MatchRuleGroups []*UpdateCorehrCustomOrgRuleReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 长度范围: `0` ~ `16` +} + +// UpdateCorehrCustomOrgRuleReqMatchRuleGroup ... +type UpdateCorehrCustomOrgRuleReqMatchRuleGroup struct { + MatchRules []*UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` +} + +// UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule ... +type UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule struct { + LeftValue string `json:"left_value,omitempty"` // 左值示例值: "department"可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 + Operator string `json:"operator,omitempty"` // 操作符示例值: "contains"可选值有: 包含不包含 + RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- [department]和[department_hierarchy]: 详细 ID 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得, ID 类型需要为 [people_corehr_department_id]。- [work_location]和[work_location_hierarchy]: 详细 ID 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得。- [cost_center]和[cost_center_hierarchy]: 详细 ID 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得。- [job]: 详细 ID 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)接口获得。- [job_level]: 详细 ID 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)接口获得。- [job_family]和[job_family_hierarchy]: 详细 ID 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得。- [employee_type]: 详细 ID 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)接口获得。示例值: ["6862995757234914824"] 长度范围: `0` ~ `10000` +} + +// UpdateCorehrCustomOrgRuleResp ... +type UpdateCorehrCustomOrgRuleResp struct { +} + +// updateCorehrCustomOrgRuleResp ... +type updateCorehrCustomOrgRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrCustomOrgRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_default_cost_center_batch_query.go b/api_corehr_default_cost_center_batch_query.go new file mode 100644 index 00000000..fcefc852 --- /dev/null +++ b/api_corehr_default_cost_center_batch_query.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryCorehrDefaultCostCenter 查询默认成本中心 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query +// new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/batch_query +func (r *CoreHRService) BatchQueryCorehrDefaultCostCenter(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCorehrDefaultCostCenter != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrDefaultCostCenter mock enable") + return r.cli.mock.mockCoreHRBatchQueryCorehrDefaultCostCenter(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchQueryCorehrDefaultCostCenter", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryCorehrDefaultCostCenterResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchQueryCorehrDefaultCostCenter mock CoreHRBatchQueryCorehrDefaultCostCenter method +func (r *Mock) MockCoreHRBatchQueryCorehrDefaultCostCenter(f func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error)) { + r.mockCoreHRBatchQueryCorehrDefaultCostCenter = f +} + +// UnMockCoreHRBatchQueryCorehrDefaultCostCenter un-mock CoreHRBatchQueryCorehrDefaultCostCenter method +func (r *Mock) UnMockCoreHRBatchQueryCorehrDefaultCostCenter() { + r.mockCoreHRBatchQueryCorehrDefaultCostCenter = nil +} + +// BatchQueryCorehrDefaultCostCenterReq ... +type BatchQueryCorehrDefaultCostCenterReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工雇佣 ID 列表--可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: ["7140964208476371111"] 长度范围: `1` ~ `100` +} + +// BatchQueryCorehrDefaultCostCenterResp ... +type BatchQueryCorehrDefaultCostCenterResp struct { + Items []*BatchQueryCorehrDefaultCostCenterRespItem `json:"items,omitempty"` // 员工默认成本中心列表 +} + +// BatchQueryCorehrDefaultCostCenterRespItem ... +type BatchQueryCorehrDefaultCostCenterRespItem struct { + EmploymentID string `json:"employment_id,omitempty"` // 用户ID + DefaultCostCenters []*BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter `json:"default_cost_centers,omitempty"` // 默认成本中心信息 +} + +// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter ... +type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter struct { + WkID string `json:"wk_id,omitempty"` // 默认成本中心ID + WkTid string `json:"wk_tid,omitempty"` // 默认成本中心版本ID + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心ID + JobDataID string `json:"job_data_id,omitempty"` // 任职ID + IsInherit bool `json:"is_inherit,omitempty"` // 是否继承自岗位/部门的默认成本中心 + InheritSource *BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource `json:"inherit_source,omitempty"` // 继承来源 + Reason string `json:"reason,omitempty"` // 变更原因 +} + +// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource ... +type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay ... +type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// batchQueryCorehrDefaultCostCenterResp ... +type batchQueryCorehrDefaultCostCenterResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCorehrDefaultCostCenterResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_default_cost_center_create_version.go b/api_corehr_default_cost_center_create_version.go new file mode 100644 index 00000000..e87c5e53 --- /dev/null +++ b/api_corehr_default_cost_center_create_version.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrDefaultCostCenterVersion 添加默认成本中心 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/create_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/create_version +func (r *CoreHRService) CreateCorehrDefaultCostCenterVersion(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRCreateCorehrDefaultCostCenterVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrDefaultCostCenterVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/create_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrDefaultCostCenterVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrDefaultCostCenterVersion mock CoreHRCreateCorehrDefaultCostCenterVersion method +func (r *Mock) MockCoreHRCreateCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRCreateCorehrDefaultCostCenterVersion = f +} + +// UnMockCoreHRCreateCorehrDefaultCostCenterVersion un-mock CoreHRCreateCorehrDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRCreateCorehrDefaultCostCenterVersion() { + r.mockCoreHRCreateCorehrDefaultCostCenterVersion = nil +} + +// CreateCorehrDefaultCostCenterVersionReq ... +type CreateCorehrDefaultCostCenterVersionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" + DefaultCostCenter *CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 +} + +// CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter ... +type CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期示例值: "2024-12-01" + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取成本中心信息中的成本中心ID。示例值: "7039123253031711012" + IsInherit *bool `json:"is_inherit,omitempty"` // 是否继承自岗位/部门的默认成本中心示例值: false + Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" +} + +// CreateCorehrDefaultCostCenterVersionResp ... +type CreateCorehrDefaultCostCenterVersionResp struct { + WkID string `json:"wk_id,omitempty"` // 默认成本中心id + WkTid string `json:"wk_tid,omitempty"` // 默认成本中心版本id +} + +// createCorehrDefaultCostCenterVersionResp ... +type createCorehrDefaultCostCenterVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_default_cost_center_remove_version.go b/api_corehr_default_cost_center_remove_version.go new file mode 100644 index 00000000..f6abe097 --- /dev/null +++ b/api_corehr_default_cost_center_remove_version.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// RemoveCorehrDefaultCostCenterVersion 删除默认成本中心 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/remove_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/remove_version +func (r *CoreHRService) RemoveCorehrDefaultCostCenterVersion(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCorehrDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRRemoveCorehrDefaultCostCenterVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "RemoveCorehrDefaultCostCenterVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/remove_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(removeCorehrDefaultCostCenterVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRRemoveCorehrDefaultCostCenterVersion mock CoreHRRemoveCorehrDefaultCostCenterVersion method +func (r *Mock) MockCoreHRRemoveCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRRemoveCorehrDefaultCostCenterVersion = f +} + +// UnMockCoreHRRemoveCorehrDefaultCostCenterVersion un-mock CoreHRRemoveCorehrDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRRemoveCorehrDefaultCostCenterVersion() { + r.mockCoreHRRemoveCorehrDefaultCostCenterVersion = nil +} + +// RemoveCorehrDefaultCostCenterVersionReq ... +type RemoveCorehrDefaultCostCenterVersionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" + DefaultCostCenter *RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 +} + +// RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter ... +type RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { + WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心ID。示例值: "703912325303191204" + WkTid string `json:"wk_tid,omitempty"` // wk_tid-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心版本ID。示例值: "703912321231239801" +} + +// RemoveCorehrDefaultCostCenterVersionResp ... +type RemoveCorehrDefaultCostCenterVersionResp struct { +} + +// removeCorehrDefaultCostCenterVersionResp ... +type removeCorehrDefaultCostCenterVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RemoveCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_default_cost_center_update_version.go b/api_corehr_default_cost_center_update_version.go new file mode 100644 index 00000000..3f26e1b0 --- /dev/null +++ b/api_corehr_default_cost_center_update_version.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrDefaultCostCenterVersion 更新默认成本中心 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/update_version +// new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/update_version +func (r *CoreHRService) UpdateCorehrDefaultCostCenterVersion(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrDefaultCostCenterVersion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrDefaultCostCenterVersion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/update_version", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrDefaultCostCenterVersionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrDefaultCostCenterVersion mock CoreHRUpdateCorehrDefaultCostCenterVersion method +func (r *Mock) MockCoreHRUpdateCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRUpdateCorehrDefaultCostCenterVersion = f +} + +// UnMockCoreHRUpdateCorehrDefaultCostCenterVersion un-mock CoreHRUpdateCorehrDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRUpdateCorehrDefaultCostCenterVersion() { + r.mockCoreHRUpdateCorehrDefaultCostCenterVersion = nil +} + +// UpdateCorehrDefaultCostCenterVersionReq ... +type UpdateCorehrDefaultCostCenterVersionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" + DefaultCostCenter *UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 +} + +// UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter ... +type UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { + WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心ID。示例值: "703912325303191204" + WkTid string `json:"wk_tid,omitempty"` // wk_tid-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心版本ID。示例值: "703912321231239801" + EffectiveTime *string `json:"effective_time,omitempty"` // 生效日期示例值: "2024-12-01" + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。示例值: "7039123253031711012" + IsInherit *bool `json:"is_inherit,omitempty"` // 是否继承自岗位/部门的默认成本中心示例值: false + Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" +} + +// UpdateCorehrDefaultCostCenterVersionResp ... +type UpdateCorehrDefaultCostCenterVersionResp struct { +} + +// updateCorehrDefaultCostCenterVersionResp ... +type updateCorehrDefaultCostCenterVersionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_department_delete.go b/api_corehr_department_delete.go index b398ce9b..6465d61c 100644 --- a/api_corehr_department_delete.go +++ b/api_corehr_department_delete.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/delete // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/delete -// -// Deprecated func (r *CoreHRService) DeleteCoreHRDepartment(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) { if r.cli.mock.mockCoreHRDeleteCoreHRDepartment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRDepartment mock enable") @@ -67,7 +65,8 @@ type DeleteCoreHRDepartmentReq struct { } // DeleteCoreHRDepartmentResp ... -type DeleteCoreHRDepartmentResp struct{} +type DeleteCoreHRDepartmentResp struct { +} // deleteCoreHRDepartmentResp ... type deleteCoreHRDepartmentResp struct { diff --git a/api_corehr_department_delete_v2.go b/api_corehr_department_delete_v2.go new file mode 100644 index 00000000..165a7de2 --- /dev/null +++ b/api_corehr_department_delete_v2.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrDepartment 可以通过该接口通过部门ID删除一个部门记录, 带数据行权限判权 +// +// 该接口为 V2 版本接口。要查看旧版 V1 接口, 参考: [【删除部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/delete) +// 删除后无法恢复, 并且在系统中无法查看到对应部门信息, 请谨慎操作。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/delete +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/delete +func (r *CoreHRService) DeleteCorehrDepartment(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrDepartment mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrDepartment", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrDepartment mock CoreHRDeleteCorehrDepartment method +func (r *Mock) MockCoreHRDeleteCorehrDepartment(f func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error)) { + r.mockCoreHRDeleteCorehrDepartment = f +} + +// UnMockCoreHRDeleteCorehrDepartment un-mock CoreHRDeleteCorehrDepartment method +func (r *Mock) UnMockCoreHRDeleteCorehrDepartment() { + r.mockCoreHRDeleteCorehrDepartment = nil +} + +// DeleteCorehrDepartmentReq ... +type DeleteCorehrDepartmentReq struct { + DepartmentID string `path:"department_id" json:"-"` // 需要删除的部门 ID, 可通过[【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口查询获得示例值: "1616161616" + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` +} + +// DeleteCorehrDepartmentResp ... +type DeleteCorehrDepartmentResp struct { +} + +// deleteCorehrDepartmentResp ... +type deleteCorehrDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_department_get.go b/api_corehr_department_get.go index a13bd432..ff5c6fc9 100644 --- a/api_corehr_department_get.go +++ b/api_corehr_department_get.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/get -// -// Deprecated func (r *CoreHRService) GetCoreHRDepartment(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRDepartment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRDepartment mock enable") diff --git a/api_corehr_department_query_operation_logs.go b/api_corehr_department_query_operation_logs.go new file mode 100644 index 00000000..f84c567a --- /dev/null +++ b/api_corehr_department_query_operation_logs.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrDepartmentOperationLogs 批量查询指定时间范围内的部门操作日志 +// +// - 默认排序条件: 默认以操作时间倒序排序 +// - 仅支持查询部门基础字段变更的操作日志, 对于角色字段变更的操作日志查询功能待上线 +// - 时间窗支持大范围查询, 限定查询范围在366天以内, 例如要查询2020年1月1日至2023年1月1日的数据, 建议分成两次查询, 分别为2020年1月1日至2021年1月1日, 2022年1月2日至2023年1月1日, 不建议查询大时间范围数据 +// - 支持查询批量部门的操作日志, 限定查询最大部门数为100, 查询部门数量大于100时, 建议分批查询 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_operation_logs +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_operation_logs +func (r *CoreHRService) QueryCorehrDepartmentOperationLogs(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrDepartmentOperationLogs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrDepartmentOperationLogs mock enable") + return r.cli.mock.mockCoreHRQueryCorehrDepartmentOperationLogs(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrDepartmentOperationLogs", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/query_operation_logs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrDepartmentOperationLogsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrDepartmentOperationLogs mock CoreHRQueryCorehrDepartmentOperationLogs method +func (r *Mock) MockCoreHRQueryCorehrDepartmentOperationLogs(f func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error)) { + r.mockCoreHRQueryCorehrDepartmentOperationLogs = f +} + +// UnMockCoreHRQueryCorehrDepartmentOperationLogs un-mock CoreHRQueryCorehrDepartmentOperationLogs method +func (r *Mock) UnMockCoreHRQueryCorehrDepartmentOperationLogs() { + r.mockCoreHRQueryCorehrDepartmentOperationLogs = nil +} + +// QueryCorehrDepartmentOperationLogsReq ... +type QueryCorehrDepartmentOperationLogsReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 1000示例值: 100 取值范围: `1` ~ `1000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 2 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门ID列表, ID获取方式: 调用[【创建部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/create)、[【搜索部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口可以返回部门ID- 也可以通过[【事件】创建部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created)、[【事件】更新部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/updated) 获取部门ID示例值: ["7094136522860922222"] 长度范围: `1` ~ `100` + StartDate string `json:"start_date,omitempty"` // 查询的起始操作日期, 格式 "YYYY-MM-DD", 不带时分秒, 包含start_date传入的时间, 系统会以start_date的00:00:00为开始时间进行查询示例值: "2023-01-01" + EndDate string `json:"end_date,omitempty"` // 查询的截止操作日期, 注意事项: 格式 "YYYY-MM-DD", 不带时分秒, 包含end_date传入的时间, 系统会以end_date的23:59:59为截止时间进行查询。- 查询截止日期end_date应大于起始日期start_date, 起止日期跨度最大为366天示例值: "2024-01-01" +} + +// QueryCorehrDepartmentOperationLogsResp ... +type QueryCorehrDepartmentOperationLogsResp struct { + OpLogs []*QueryCorehrDepartmentOperationLogsRespOpLog `json:"op_logs,omitempty"` // 操作日志列表 + NextPageToken string `json:"next_page_token,omitempty"` // 下一页token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// QueryCorehrDepartmentOperationLogsRespOpLog ... +type QueryCorehrDepartmentOperationLogsRespOpLog struct { + ObjectID string `json:"object_id,omitempty"` // 部门ID + Changes []*QueryCorehrDepartmentOperationLogsRespOpLogChange `json:"changes,omitempty"` // 字段变化列表 + Operator string `json:"operator,omitempty"` // 操作人工号, 更多详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 + OperationType int64 `json:"operation_type,omitempty"` // 操作类型。现有如下类型: `10`: 新建部门记录- `20`: 新建/复制部门版本- `50`: 编辑部门版本- `60`: 撤销部门版本- `70`: 停用部门- `80`: 启用部门- `90`: 删除部门记录- `100`: 自定义部门排序- `110`: 更新部门- `120`: 编辑部门关联规则 + OperationTime string `json:"operation_time,omitempty"` // 操作时间, 带时分秒。示例值: 2023-11-15 19:25:45 + EffectiveTime string `json:"effective_time,omitempty"` // 操作生效时间, 表示被操作的部门版本的生效日期。示例值: 2023-10-28 + OperationReason string `json:"operation_reason,omitempty"` // 操作原因说明 + ChangeReasons []string `json:"change_reasons,omitempty"` // 调整原因列表 +} + +// QueryCorehrDepartmentOperationLogsRespOpLogChange ... +type QueryCorehrDepartmentOperationLogsRespOpLogChange struct { + Field string `json:"field,omitempty"` // 变更字段 + Before string `json:"before,omitempty"` // 旧值 + After string `json:"after,omitempty"` // 新值 +} + +// queryCorehrDepartmentOperationLogsResp ... +type queryCorehrDepartmentOperationLogsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrDepartmentOperationLogsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_department_query_recent_change.go b/api_corehr_department_query_recent_change.go new file mode 100644 index 00000000..fc84f056 --- /dev/null +++ b/api_corehr_department_query_recent_change.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrDepartmentRecentChange 查询指定时间范围内当前生效信息发生变更的部门, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该部门id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建部门 1月10日生效, 则1月10日凌晨 1点之后可查询到。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_recent_change +func (r *CoreHRService) QueryCorehrDepartmentRecentChange(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrDepartmentRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrDepartmentRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrDepartmentRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrDepartmentRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrDepartmentRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrDepartmentRecentChange mock CoreHRQueryCorehrDepartmentRecentChange method +func (r *Mock) MockCoreHRQueryCorehrDepartmentRecentChange(f func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrDepartmentRecentChange = f +} + +// UnMockCoreHRQueryCorehrDepartmentRecentChange un-mock CoreHRQueryCorehrDepartmentRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrDepartmentRecentChange() { + r.mockCoreHRQueryCorehrDepartmentRecentChange = nil +} + +// QueryCorehrDepartmentRecentChangeReq ... +type QueryCorehrDepartmentRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大支持单次 2000 条变更示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。 示例值: 2024-06-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。 查询结束时间应大于开始时间。示例值: 2024-08-01 02:10:10 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` +} + +// QueryCorehrDepartmentRecentChangeResp ... +type QueryCorehrDepartmentRecentChangeResp struct { + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 + DeletedDepartmentIDs []string `json:"deleted_department_ids,omitempty"` // 目标查询时间范围内被删除的部门列表, 该列表是 department_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的部门 IDs。- 由于对应的部门已经被删除, 无法通过 ID 查询到历史数据。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// queryCorehrDepartmentRecentChangeResp ... +type queryCorehrDepartmentRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrDepartmentRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_department_timeline_batch_query.go b/api_corehr_department_timeline_batch_query.go index ba895fa6..1d8b123d 100644 --- a/api_corehr_department_timeline_batch_query.go +++ b/api_corehr_department_timeline_batch_query.go @@ -21,9 +21,12 @@ import ( "context" ) -// BatchQueryCoreHRDepartmentTimeline 批量查询部门版本信息 +// BatchQueryCoreHRDepartmentTimeline 根据部门ID列表, 批量查询开始结束时间内的所有部门版本信息, 含部门名称、部门类型、上级、编码、负责人、是否启用、描述等信息 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_multi_timeline +// - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建部门后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_multi_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_multi_timeline func (r *CoreHRService) BatchQueryCoreHRDepartmentTimeline(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) { if r.cli.mock.mockCoreHRBatchQueryCoreHRDepartmentTimeline != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHRDepartmentTimeline mock enable") @@ -57,14 +60,14 @@ func (r *Mock) UnMockCoreHRBatchQueryCoreHRDepartmentTimeline() { // BatchQueryCoreHRDepartmentTimelineReq ... type BatchQueryCoreHRDepartmentTimelineReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: people_corehr_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_corehr_id: 以飞书人事的 ID 来识别用户, 默认值: `people_corehr_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 示例值: people_corehr_department_id, 可选值有: open_department_id: [飞书]用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。, department_id: [飞书]用来标识租户内一个唯一的部门。, people_corehr_department_id: [飞书人事]用来标识「飞书人事」中的部门。, 默认值: `people_corehr_department_id` - DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 可请求[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)获取, 示例值: ["7094136522860922111"], 长度范围: `1` ~ `10` - EffectiveDateStart *string `json:"effective_date_start,omitempty"` // 生效日期开始(包含), 示例值: "2024-01-01", 长度范围: `10` ~ `10` 字符, 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - EffectiveDateEnd *string `json:"effective_date_end,omitempty"` // 生效日期结束(包含), 示例值: "2024-12-31", 长度范围: `10` ~ `10` 字符, 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["department_name", "code", "active", "parent_department_id", "manager", "description", "effective_date"], 以及自定义字段field_name, 示例值: ["department_name"], 长度范围: `0` ~ `100` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 可请求[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)获取。示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` + EffectiveDateStart *string `json:"effective_date_start,omitempty"` // 生效日期开始(包含)示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + EffectiveDateEnd *string `json:"effective_date_end,omitempty"` // 生效日期结束(包含)示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 需要返回的字段列表, 字段可填写的列表如下: department_name- sub_type- code- active- parent_department_id- manager- description- effective_date- expiration_date- custom_fields(自定义字段需传入具体的"custom_api_name"详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c)示例值: ["department_name"] 长度范围: `0` ~ `100` } // BatchQueryCoreHRDepartmentTimelineResp ... @@ -79,20 +82,22 @@ type BatchQueryCoreHRDepartmentTimelineRespItem struct { ID string `json:"id,omitempty"` // 部门 ID VersionID string `json:"version_id,omitempty"` // 部门版本 ID Names []*BatchQueryCoreHRDepartmentTimelineRespItemName `json:"names,omitempty"` // 部门名称 - ParentDepartmentID string `json:"parent_department_id,omitempty"` // 上级部门 ID, 字段权限要求: 获取部门组织架构信息 - Manager string `json:"manager,omitempty"` // 部门负责人雇佣 ID, 枚举值及详细信息可通过[查询员工信息]接口查询获得, 字段权限要求: 获取部门负责人信息 + SubType *BatchQueryCoreHRDepartmentTimelineRespItemSubType `json:"sub_type,omitempty"` // 部门类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 上级部门 ID - 详细信息可通过[【查询单个部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得- 若查询的是一级部门, 则该字段不展示字段权限要求: 获取部门组织架构信息 + Manager string `json:"manager,omitempty"` // 部门负责人雇佣 ID, 枚举值及详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口查询获得字段权限要求: 获取部门负责人信息 Code string `json:"code,omitempty"` // 编码 - EffectiveDate string `json:"effective_date,omitempty"` // 生效日期 + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01~9999-12-31 Active bool `json:"active,omitempty"` // 是否启用 Descriptions []*BatchQueryCoreHRDepartmentTimelineRespItemDescription `json:"descriptions,omitempty"` // 描述 - CustomFields []*BatchQueryCoreHRDepartmentTimelineRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段, 字段权限要求: 获取部门自定义字段 + CustomFields []*BatchQueryCoreHRDepartmentTimelineRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 字段权限要求: 获取部门自定义字段 + ExpirationDate string `json:"expiration_date,omitempty"` // 失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 } // BatchQueryCoreHRDepartmentTimelineRespItemCustomField ... type BatchQueryCoreHRDepartmentTimelineRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *BatchQueryCoreHRDepartmentTimelineRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -105,13 +110,25 @@ type BatchQueryCoreHRDepartmentTimelineRespItemCustomFieldName struct { // BatchQueryCoreHRDepartmentTimelineRespItemDescription ... type BatchQueryCoreHRDepartmentTimelineRespItemDescription struct { Lang string `json:"lang,omitempty"` // 语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 内容 + Value string `json:"value,omitempty"` // 文本内容 } // BatchQueryCoreHRDepartmentTimelineRespItemName ... type BatchQueryCoreHRDepartmentTimelineRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCoreHRDepartmentTimelineRespItemSubType ... +type BatchQueryCoreHRDepartmentTimelineRespItemSubType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*BatchQueryCoreHRDepartmentTimelineRespItemSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// BatchQueryCoreHRDepartmentTimelineRespItemSubTypeDisplay ... +type BatchQueryCoreHRDepartmentTimelineRespItemSubTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // batchQueryCoreHRDepartmentTimelineResp ... diff --git a/api_corehr_department_timeline_query.go b/api_corehr_department_timeline_query.go index d2783e68..da7839ef 100644 --- a/api_corehr_department_timeline_query.go +++ b/api_corehr_department_timeline_query.go @@ -21,9 +21,12 @@ import ( "context" ) -// QueryCoreHRDepartmentTimeline 查询指定生效的部门基本信息, 含部门名称、上级、编码、负责人、是否启用、描述等信息 +// QueryCoreHRDepartmentTimeline 查询指定生效的部门基本信息, 含部门名称、部门类型、上级、编码、负责人、是否启用、描述等信息 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_timeline +// 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建部门后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_timeline func (r *CoreHRService) QueryCoreHRDepartmentTimeline(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) { if r.cli.mock.mockCoreHRQueryCoreHRDepartmentTimeline != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRDepartmentTimeline mock enable") @@ -57,11 +60,11 @@ func (r *Mock) UnMockCoreHRQueryCoreHRDepartmentTimeline() { // QueryCoreHRDepartmentTimelineReq ... type QueryCoreHRDepartmentTimelineReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: people_corehr_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_corehr_id: 以飞书人事的 ID 来识别用户, 默认值: `people_corehr_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 示例值: people_corehr_department_id, 可选值有: open_department_id: [飞书]用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。, department_id: [飞书]用来标识租户内一个唯一的部门。, people_corehr_department_id: [飞书人事]用来标识「飞书人事」中的部门。, 默认值: `people_corehr_department_id` - DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 可请求[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)获取, 示例值: ["7094136522860922111"], 长度范围: `0` ~ `100` - EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 示例值: "2020-01-01", 长度范围: `10` ~ `10` 字符, 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["department_name", "code", "active", "parent_department_id", "manager", "description", "effective_date"], 示例值: ["department_name"], 长度范围: `0` ~ `100` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情示例值: ["7094136522860922111"] 长度范围: `0` ~ `100` + EffectiveDate string `json:"effective_date,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01~9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 需要返回的字段列表, 字段可填写的列表如下: department_name- sub_type- code- active- parent_department_id- manager- description- effective_date- expiration_date- custom_fields(自定义字段需传入具体的"custom_api_name"详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c)示例值: ["department_name"] 长度范围: `0` ~ `100` } // QueryCoreHRDepartmentTimelineResp ... @@ -74,20 +77,22 @@ type QueryCoreHRDepartmentTimelineRespItem struct { ID string `json:"id,omitempty"` // 部门 ID VersionID string `json:"version_id,omitempty"` // 部门版本 ID Names []*QueryCoreHRDepartmentTimelineRespItemName `json:"names,omitempty"` // 部门名称 - ParentDepartmentID string `json:"parent_department_id,omitempty"` // 上级部门 ID, 字段权限要求: 获取部门组织架构信息 - Manager string `json:"manager,omitempty"` // 部门负责人雇佣 ID, 枚举值及详细信息可通过[查询员工信息]接口查询获得, 字段权限要求: 获取部门负责人信息 + SubType *QueryCoreHRDepartmentTimelineRespItemSubType `json:"sub_type,omitempty"` // 部门类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 上级部门 ID - 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情- 若查询的是一级部门, 则该字段不展示字段权限要求: 获取部门组织架构信息 + Manager string `json:"manager,omitempty"` // 部门负责人, 填写员工的雇佣ID- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取字段权限要求: 获取部门负责人信息 Code string `json:"code,omitempty"` // 编码 - EffectiveDate string `json:"effective_date,omitempty"` // 生效日期 + EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01~9999-12-31 Active bool `json:"active,omitempty"` // 是否启用 Descriptions []*QueryCoreHRDepartmentTimelineRespItemDescription `json:"descriptions,omitempty"` // 描述 - CustomFields []*QueryCoreHRDepartmentTimelineRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段, 字段权限要求: 获取部门自定义字段 + CustomFields []*QueryCoreHRDepartmentTimelineRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 字段权限要求: 获取部门自定义字段 + ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围: 1900-01-01 ~9999-12-31 } // QueryCoreHRDepartmentTimelineRespItemCustomField ... type QueryCoreHRDepartmentTimelineRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *QueryCoreHRDepartmentTimelineRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -99,14 +104,26 @@ type QueryCoreHRDepartmentTimelineRespItemCustomFieldName struct { // QueryCoreHRDepartmentTimelineRespItemDescription ... type QueryCoreHRDepartmentTimelineRespItemDescription struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 } // QueryCoreHRDepartmentTimelineRespItemName ... type QueryCoreHRDepartmentTimelineRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCoreHRDepartmentTimelineRespItemSubType ... +type QueryCoreHRDepartmentTimelineRespItemSubType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCoreHRDepartmentTimelineRespItemSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCoreHRDepartmentTimelineRespItemSubTypeDisplay ... +type QueryCoreHRDepartmentTimelineRespItemSubTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // queryCoreHRDepartmentTimelineResp ... diff --git a/api_corehr_department_tree.go b/api_corehr_department_tree.go new file mode 100644 index 00000000..ba20da40 --- /dev/null +++ b/api_corehr_department_tree.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrDepartmentTree 支持传入部门ID(不传默认根部门), 任意日期(不传默认当前日期)。从给定部门ID开始广度遍历, 每页最多返回2000行数据 +// +// - 延迟说明: 该数据同步延迟 10s 以内, 即: 直接创建/更新对象后10s内调用此接口可能查询不到数据, 部门上下级关系变化10s内可能查询不到最新数据。 +// - 如果对数据延迟较为敏感的场景, 可以考虑定期or延迟调用该接口, 或者走[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 逐级查询组织架构 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/tree +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/tree +func (r *CoreHRService) CreateCorehrDepartmentTree(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrDepartmentTree != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrDepartmentTree mock enable") + return r.cli.mock.mockCoreHRCreateCorehrDepartmentTree(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrDepartmentTree", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/tree", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrDepartmentTreeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrDepartmentTree mock CoreHRCreateCorehrDepartmentTree method +func (r *Mock) MockCoreHRCreateCorehrDepartmentTree(f func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error)) { + r.mockCoreHRCreateCorehrDepartmentTree = f +} + +// UnMockCoreHRCreateCorehrDepartmentTree un-mock CoreHRCreateCorehrDepartmentTree method +func (r *Mock) UnMockCoreHRCreateCorehrDepartmentTree() { + r.mockCoreHRCreateCorehrDepartmentTree = nil +} + +// CreateCorehrDepartmentTreeReq ... +type CreateCorehrDepartmentTreeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 默认根部门示例值: "6893014062142064111" + NeedInactive *bool `json:"need_inactive,omitempty"` // 是否包含失效部门, 默认false示例值: false + EffectiveDate *string `json:"effective_date,omitempty"` // 日期, 格式yyyy-mm-dd, 默认当前日期- 传2024-01-01, 即为返回2024-01-01的组织架构示例值: "2024-01-01" 最大长度: `10` 字符 +} + +// CreateCorehrDepartmentTreeResp ... +type CreateCorehrDepartmentTreeResp struct { + Items []*CreateCorehrDepartmentTreeRespItem `json:"items,omitempty"` // 部门树节点 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// CreateCorehrDepartmentTreeRespItem ... +type CreateCorehrDepartmentTreeRespItem struct { + ID string `json:"id,omitempty"` // 部门 ID- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 + Level int64 `json:"level,omitempty"` // 部门绝对层级, 根部门层级为0, 根部门的子部门层级为1, 依次类推 + Children []string `json:"children,omitempty"` // 下级部门 ID 列表- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 +} + +// createCorehrDepartmentTreeResp ... +type createCorehrDepartmentTreeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrDepartmentTreeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_department_update.go b/api_corehr_department_update.go index 8a53c7d3..9f1f511e 100644 --- a/api_corehr_department_update.go +++ b/api_corehr_department_update.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/patch // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/patch -// -// Deprecated func (r *CoreHRService) UpdateCoreHRDepartment(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) { if r.cli.mock.mockCoreHRUpdateCoreHRDepartment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRDepartment mock enable") diff --git a/api_corehr_department_update_v2.go b/api_corehr_department_update_v2.go new file mode 100644 index 00000000..df47a4c6 --- /dev/null +++ b/api_corehr_department_update_v2.go @@ -0,0 +1,127 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrDepartment 更新部门, 支持数据行权限判权 +// +// - 停用部门时, 请确认是否有与该部门关联的现任员工、变更文件、待入职。如果是这样, 停用将失败。 +// - 如果启动/停止生效日期没有版本, 将自动生成版本。 +// - 如果启动/停用生效日期存在版本, 则该版本将被修改。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/patch +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/patch +func (r *CoreHRService) UpdateCorehrDepartment(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrDepartment mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrDepartment", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrDepartment mock CoreHRUpdateCorehrDepartment method +func (r *Mock) MockCoreHRUpdateCorehrDepartment(f func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error)) { + r.mockCoreHRUpdateCorehrDepartment = f +} + +// UnMockCoreHRUpdateCorehrDepartment un-mock CoreHRUpdateCorehrDepartment method +func (r *Mock) UnMockCoreHRUpdateCorehrDepartment() { + r.mockCoreHRUpdateCorehrDepartment = nil +} + +// UpdateCorehrDepartmentReq ... +type UpdateCorehrDepartmentReq struct { + DepartmentID string `path:"department_id" json:"-"` // 需要更新的部门 ID示例值: "1616161616" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + ID *string `json:"id,omitempty"` // 该字段暂时无效, 可忽略示例值: "4719456877659520852" + SubType *UpdateCorehrDepartmentReqSubType `json:"sub_type,omitempty"` // 部门类型, 通过[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 + Manager *string `json:"manager,omitempty"` // 部门负责人 ID详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: "6893013238632416776" + IsConfidential *bool `json:"is_confidential,omitempty"` // 是否保密(该字段暂不支持, 可忽略)示例值: true + HiberarchyCommon *UpdateCorehrDepartmentReqHiberarchyCommon `json:"hiberarchy_common,omitempty"` // 组织实体公共字段, 包括名称、描述、上级、启停用状态、生效日期、编码等基础信息 + EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD 00:00:00(系统会自动将时分秒改为00:00:00)- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 00:00:00~9999-12-31 23:59:59示例值: "2020-05-01 00:00:00" + CustomFields []*UpdateCorehrDepartmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取 长度范围: `0` ~ `100` + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息示例值: "7142384817131652652" + StaffingModel *UpdateCorehrDepartmentReqStaffingModel `json:"staffing_model,omitempty"` // 岗职管理模式- 详细枚举类型请查看[枚举场景](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)中关于staffing_model定义 +} + +// UpdateCorehrDepartmentReqCustomField ... +type UpdateCorehrDepartmentReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "Sandy" +} + +// UpdateCorehrDepartmentReqHiberarchyCommon ... +type UpdateCorehrDepartmentReqHiberarchyCommon struct { + ParentID *string `json:"parent_id,omitempty"` // 上级组织示例值: "4719168654814483759" + Name []*UpdateCorehrDepartmentReqHiberarchyCommonName `json:"name,omitempty"` // 部门名称- 名称不能包含「/」「;」「;」「\」「'」字符。- 中英文名称会有重名校验规则(依赖租户配置规则) + Active *bool `json:"active,omitempty"` // 部门启用状态, true为启用, false为停用示例值: true + Code *string `json:"code,omitempty"` // 部门编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" + Description []*UpdateCorehrDepartmentReqHiberarchyCommonDescription `json:"description,omitempty"` // 描述 +} + +// UpdateCorehrDepartmentReqHiberarchyCommonDescription ... +type UpdateCorehrDepartmentReqHiberarchyCommonDescription struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// UpdateCorehrDepartmentReqHiberarchyCommonName ... +type UpdateCorehrDepartmentReqHiberarchyCommonName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// UpdateCorehrDepartmentReqStaffingModel ... +type UpdateCorehrDepartmentReqStaffingModel struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值: job、position、non_job示例值: "job" +} + +// UpdateCorehrDepartmentReqSubType ... +type UpdateCorehrDepartmentReqSubType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "department" +} + +// UpdateCorehrDepartmentResp ... +type UpdateCorehrDepartmentResp struct { +} + +// updateCorehrDepartmentResp ... +type updateCorehrDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_draft_get.go b/api_corehr_draft_get.go new file mode 100644 index 00000000..7baf4b43 --- /dev/null +++ b/api_corehr_draft_get.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetCorehrDraft 用户通过『飞书人事-我的团队/人员管理-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。之后用户可以通过组织架构调整 ID 查询对应的流程ID, 以及审批流状态。如需查询单个审批的详情数据, 可通过[根据流程 ID 查询组织架构调整记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get)获取。 +// +// - 用户使用该接口前需提前获取 根据组织架构调整 ID 获取组织架构调整流程信息 权限 +// - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/draft/get +// new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/get-2 +func (r *CoreHRService) GetCorehrDraft(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCorehrDraft != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrDraft mock enable") + return r.cli.mock.mockCoreHRGetCorehrDraft(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "GetCorehrDraft", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/drafts/:draft_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getCorehrDraftResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRGetCorehrDraft mock CoreHRGetCorehrDraft method +func (r *Mock) MockCoreHRGetCorehrDraft(f func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error)) { + r.mockCoreHRGetCorehrDraft = f +} + +// UnMockCoreHRGetCorehrDraft un-mock CoreHRGetCorehrDraft method +func (r *Mock) UnMockCoreHRGetCorehrDraft() { + r.mockCoreHRGetCorehrDraft = nil +} + +// GetCorehrDraftReq ... +type GetCorehrDraftReq struct { + DraftID string `path:"draft_id" json:"-"` // 组织架构调整 ID。用户在「飞书人事-我的团队/人员管理 -组织架构-发起调整」时生成的唯一 ID, 可通过「组织架构调整状态变更事件」的事件获取示例值: "6893014062142064111" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetCorehrDraftResp ... +type GetCorehrDraftResp struct { + DraftID string `json:"draft_id,omitempty"` // 组织架构调整 ID + DraftStatus string `json:"draft_status,omitempty"` // 组织架构调整状态可选值有: 编辑中, [(流程中的组织架构调整不会是该状态)] 该状态是指用户在『飞书人事-我的团队/人员管理-组织架构-发起调整』 中进行编辑时的状态。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。已完成, [该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 和 部门变更事件获取。 - 人员异动变更事件:[飞书人事-异动-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/job-change-events) - 部门变更事件: [飞书人事-组织管理-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已撤销, 用户主动撤销审批, 流程会进入已撤销状态。单次调整中的所有流程均为撤销态时, 调整才会流转为撤销态。 + ProcessInfos []*GetCorehrDraftRespProcessInfo `json:"process_infos,omitempty"` // 组织架构调整流程信息列表 +} + +// GetCorehrDraftRespProcessInfo ... +type GetCorehrDraftRespProcessInfo struct { + ProcessID string `json:"process_id,omitempty"` // 组织架构调整流程 ID。详情数据可通过[根据流程 ID 查询组织架构调整记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get)获取。 + ApprovalGroupStatus string `json:"approval_group_status,omitempty"` // 组织架构调整流程状态 [(不建议使用, 推荐使用draft_status)]可选值有: 待发起, 是指该审批单据还未成功发起。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。 审批通过, 该单据已通过审批, 调整记录等待写入。 一方面, 组织架构调整支持拆单功能, 同一个调整可能发起多个审批, 当前审批单可能依赖其他审批通过才能写入。已完成, [该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 和 部门变更事件获取。 - 人员异动变更事件: [飞书人事-异动-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/job-change-events) - 部门变更事件: [飞书人事-组织管理-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已拒绝: 审批未通过。已撤销, 用户主动撤销审批, 流程会进入已撤销状态。 +} + +// getCorehrDraftResp ... +type getCorehrDraftResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCorehrDraftResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employee_create.go b/api_corehr_employee_create.go new file mode 100644 index 00000000..a006e79f --- /dev/null +++ b/api_corehr_employee_create.go @@ -0,0 +1,706 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrEmployee 支持在单个接口中进行人员全信息添加, 包括人员的基本信息, 雇佣信息, 入职任职记录及其他分组信息 +// +// - 此接口参数校验规则与【人事系统-人员档案配置】的校验规则一致, 字段是否必填以【人事系统-人员档案配置】为准。建议参照【飞书人事-我的团队-添加人员】页面来传参 +// - 若开启工号自动编码规则则无需输入人员“工号”, 系统将自动进行工号生成;若手动输入工号, 则会按照手动输入工号内容进行人员档案建立 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/create +// new doc: https://open.feishu.cn/document/corehr-v1/employee/create +func (r *CoreHRService) CreateCorehrEmployee(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployee mock enable") + return r.cli.mock.mockCoreHRCreateCorehrEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrEmployee", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrEmployee mock CoreHRCreateCorehrEmployee method +func (r *Mock) MockCoreHRCreateCorehrEmployee(f func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error)) { + r.mockCoreHRCreateCorehrEmployee = f +} + +// UnMockCoreHRCreateCorehrEmployee un-mock CoreHRCreateCorehrEmployee method +func (r *Mock) UnMockCoreHRCreateCorehrEmployee() { + r.mockCoreHRCreateCorehrEmployee = nil +} + +// CreateCorehrEmployeeReq ... +type CreateCorehrEmployeeReq struct { + ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等的进行更新操作, 格式为标准的 UUIDV4。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作。示例值: fe599b60-450f-46ff-b2ef-9f6675625b97 长度范围: `1` ~ `100` 字符 + Rehire *bool `query:"rehire" json:"-"` // 是否为离职重聘- false: 系统直接标为非离职重聘人员, 不再做重复判断- true: 要求 rehire_employment_id示例值: true + RehireEmploymentID *string `query:"rehire_employment_id" json:"-"` // 离职重聘员工雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: 7140964208476371111 + ForceSubmit *bool `query:"force_submit" json:"-"` // 是否强制提交- true: 是, 跳过超编等校验- false: 否, 被拦截报错示例值: false默认值: `false` + IgnoreWorkingHoursTypeRule *bool `query:"ignore_working_hours_type_rule" json:"-"` // 是否忽略工时制度自动生成规则- 值为 false 时, 以下字段必填: - emp_contract_record.first_party - employment_record.work_location - employment_record.employee_type - employment_record.job_family - employment_record.job - employment_record.job_level - employment_record.department示例值: true默认值: `false` + PersonalInfo *CreateCorehrEmployeeReqPersonalInfo `json:"personal_info,omitempty"` // 个人信息 + EmploymentInfo *CreateCorehrEmployeeReqEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 + Career *CreateCorehrEmployeeReqCareer `json:"career,omitempty"` // 履历信息 + DataAttachment *CreateCorehrEmployeeReqDataAttachment `json:"data_attachment,omitempty"` // 资料附件 +} + +// CreateCorehrEmployeeReqCareer ... +type CreateCorehrEmployeeReqCareer struct { + Educations []*EHREducation `json:"educations,omitempty"` // 教育经历 长度范围: `0` ~ `100` + WorkExperiences []*CreateCorehrEmployeeReqCareerWorkExperience `json:"work_experiences,omitempty"` // 工作经历 长度范围: `0` ~ `100` + CustomGroups []*CreateCorehrEmployeeReqCareerCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqCareerCustomGroup ... +type CreateCorehrEmployeeReqCareerCustomGroup struct { + GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" + Items []*CreateCorehrEmployeeReqCareerCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` +} + +// CreateCorehrEmployeeReqCareerCustomGroupItem ... +type CreateCorehrEmployeeReqCareerCustomGroupItem struct { + CustomFields []*CreateCorehrEmployeeReqCareerCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqCareerCustomGroupItemCustomField ... +type CreateCorehrEmployeeReqCareerCustomGroupItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqCareerEducation ... +type CreateCorehrEmployeeReqCareerEducation struct { + School *string `json:"school,omitempty"` // 学校示例值: "北京大学" + SchoolEnum *string `json:"school_enum,omitempty"` // 学校枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education" - custom_api_name = "school_name"示例值: "school-177" + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" + LevelOfEducation *string `json:"level_of_education,omitempty"` // 学历枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education" - custom_api_name = "level_of_education"示例值: "masters_degree" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "软件工程" + Degree *string `json:"degree,omitempty"` // 学位枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education" - custom_api_name = "degree"示例值: "bachelors_degree" + FieldOfStudyEnum *string `json:"field_of_study_enum,omitempty"` // 专业枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education"- custom_api_name = "field_of_study_name"示例值: "field_of_study-2" + CustomFields []*CreateCorehrEmployeeReqCareerEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqCareerEducationCustomField ... +type CreateCorehrEmployeeReqCareerEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqCareerWorkExperience ... +type CreateCorehrEmployeeReqCareerWorkExperience struct { + CompanyOrganization *CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department *CreateCorehrEmployeeReqCareerWorkExperienceDepartment `json:"department,omitempty"` // 部门 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-02-01" + Job *CreateCorehrEmployeeReqCareerWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description *CreateCorehrEmployeeReqCareerWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + CustomFields []*CreateCorehrEmployeeReqCareerWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization ... +type CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" +} + +// CreateCorehrEmployeeReqCareerWorkExperienceCustomField ... +type CreateCorehrEmployeeReqCareerWorkExperienceCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqCareerWorkExperienceDepartment ... +type CreateCorehrEmployeeReqCareerWorkExperienceDepartment struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" +} + +// CreateCorehrEmployeeReqCareerWorkExperienceDescription ... +type CreateCorehrEmployeeReqCareerWorkExperienceDescription struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" +} + +// CreateCorehrEmployeeReqCareerWorkExperienceJob ... +type CreateCorehrEmployeeReqCareerWorkExperienceJob struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" +} + +// CreateCorehrEmployeeReqDataAttachment ... +type CreateCorehrEmployeeReqDataAttachment struct { + PersonalRecords []*CreateCorehrEmployeeReqDataAttachmentPersonalRecord `json:"personal_records,omitempty"` // 资料附件记录 长度范围: `0` ~ `100` + CustomGroups []*CreateCorehrEmployeeReqDataAttachmentCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqDataAttachmentCustomGroup ... +type CreateCorehrEmployeeReqDataAttachmentCustomGroup struct { + GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" + Items []*CreateCorehrEmployeeReqDataAttachmentCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` +} + +// CreateCorehrEmployeeReqDataAttachmentCustomGroupItem ... +type CreateCorehrEmployeeReqDataAttachmentCustomGroupItem struct { + CustomFields []*CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField ... +type CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqDataAttachmentPersonalRecord ... +type CreateCorehrEmployeeReqDataAttachmentPersonalRecord struct { + ProfileType *string `json:"profile_type,omitempty"` // 资料类型- 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name = "personal_profile" - custom_api_name = "profile_type"- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用示例值: "profile_type_1" + Files []*CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile `json:"files,omitempty"` // 文件列表 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile ... +type CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile struct { + FileID *string `json:"file_id,omitempty"` // 文件 ID- 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口获取- 只传该字段即可, 大小、类型等字段可以不传递示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" + MimeType *string `json:"mime_type,omitempty"` // 文件 MIME 类型示例值: "zip" + Name *string `json:"name,omitempty"` // 文件名示例值: "附件.zip" + Size *string `json:"size,omitempty"` // 文件大小(KB)示例值: "1000" + Token *string `json:"token,omitempty"` // 文件 Token示例值: "0a423bc7ea7c4a439d066bf070616782" +} + +// CreateCorehrEmployeeReqEmploymentInfo ... +type CreateCorehrEmployeeReqEmploymentInfo struct { + BasicInfo *CreateCorehrEmployeeReqEmploymentInfoBasicInfo `json:"basic_info,omitempty"` // 基本信息 + ProbationInfo *CreateCorehrEmployeeReqEmploymentInfoProbationInfo `json:"probation_info,omitempty"` // 试用期信息 + EmploymentRecord *CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord `json:"employment_record,omitempty"` // 任职记录 + EmpContractRecord *CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord `json:"emp_contract_record,omitempty"` // 合同记录 + CustomGroups []*CreateCorehrEmployeeReqEmploymentInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` + CustomOrgGroups []*CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup `json:"custom_org_groups,omitempty"` // 自定义组织记录 + SeniorityAdjustInformations []*CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_informations,omitempty"` // 司龄调整信息 长度范围: `0` ~ `100` + DefaultCostCenter *CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心 + CostAllocation *CreateCorehrEmployeeReqEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 +} + +// CreateCorehrEmployeeReqEmploymentInfoBasicInfo ... +type CreateCorehrEmployeeReqEmploymentInfoBasicInfo struct { + EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号示例值: "1000000" + EffectiveTime *string `json:"effective_time,omitempty"` // 入职日期示例值: "2021-01-01" + RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期示例值: "2021-02-01" + SeniorityDate *string `json:"seniority_date,omitempty"` // 资历起算日期示例值: "2020-01-01" + WorkEmail *string `json:"work_email,omitempty"` // 工作邮箱示例值: "12456@test.com" + Phone *CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone `json:"phone,omitempty"` // 工作电话 + UserGeo *string `json:"user_geo,omitempty"` // 数据驻留地开通了飞书数据驻留服务的企业, 该字段为必填示例值: "cn" + CustomFields []*CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField ... +type CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "123" +} + +// CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone ... +type CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone struct { + InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" + PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了工作电话对象, 则该字段必填示例值: "13000000000" +} + +// CreateCorehrEmployeeReqEmploymentInfoCostAllocation ... +type CreateCorehrEmployeeReqEmploymentInfoCostAllocation struct { + EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" + CostCenterRates []*CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` +} + +// CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate ... +type CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// CreateCorehrEmployeeReqEmploymentInfoCustomGroup ... +type CreateCorehrEmployeeReqEmploymentInfoCustomGroup struct { + GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" + Items []*CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` +} + +// CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem ... +type CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem struct { + CustomFields []*CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField ... +type CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup ... +type CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup struct { + EffectiveTime string `json:"effective_time,omitempty"` // 生效时间示例值: "2024-07-02" + StartReason *string `json:"start_reason,omitempty"` // 原因示例值: "新增人员" 最大长度: `1000` 字符 + CustomOrgWithRates []*CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate `json:"custom_org_with_rates,omitempty"` // 自定义组织列表 长度范围: `1` ~ `100` + ObjectApiName string `json:"object_api_name,omitempty"` // 自定义组织类型示例值: "custom_org_01" +} + +// CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate ... +type CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate struct { + ID string `json:"id,omitempty"` // 自定义组织ID示例值: "7260357352426782739" + Rate *float64 `json:"rate,omitempty"` // 比例 如果是非比例的可不填写示例值: 50.1 取值范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter ... +type CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter struct { + Reason *string `json:"reason,omitempty"` // 变更原因示例值: "默认成本中心变更" + IsInherit *bool `json:"is_inherit,omitempty"` // 是否继承示例值: true + CostCenterID *CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID `json:"cost_center_id,omitempty"` // 默认成本中心 +} + +// CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID ... +type CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID struct { + WkID *string `json:"wk_id,omitempty"` // 成本中心示例值: "7382048365313261588" +} + +// CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord ... +type CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord struct { + ContractNumber *string `json:"contract_number,omitempty"` // 合同协议编号示例值: "6919737965274990093" + ContractType *string `json:"contract_type,omitempty"` // 合同类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "contract" - custom_api_name = "contract_type"示例值: "labor_contract" + FirstParty *string `json:"first_party,omitempty"` // 甲方公司 ID引用 Company 的 ID, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6892686614112241165" + EffectiveTime *string `json:"effective_time,omitempty"` // 合同开始日期如果填写了合同对象, 则该字段必填示例值: "2006-01-02" + DurationType *string `json:"duration_type,omitempty"` // 期限类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "contract" - custom_api_name = "duration_type"示例值: "fixed_term" + ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期示例值: "2050-01-01" +} + +// CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord ... +type CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord struct { + EmployeeType *EmployeeType `json:"employee_type,omitempty"` // 人员类型 ID可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "6890452208593372679" + Department *string `json:"department,omitempty"` // 部门 ID可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6890452208593372679" + DirectManager *string `json:"direct_manager,omitempty"` // 直属上级雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6893014062142064135" + WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度 ID可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6890452208593372600" + CostCenters []*CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter `json:"cost_centers,omitempty"` // 成本中心分摊信息 长度范围: `0` ~ `100` + DirectManagerEffectiveTime *string `json:"direct_manager_effective_time,omitempty"` // 直属上级入职日期示例值: "2020-01-01" + DottedLineManager *string `json:"dotted_line_manager,omitempty"` // 虚线上级雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6893014062142064136" + DottedLineManagerEffectiveTime *string `json:"dotted_line_manager_effective_time,omitempty"` // 虚线上级入职日期示例值: "2020-01-01" + Job *string `json:"job,omitempty"` // 职务 ID可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6890452208593372679" + JobFamily *string `json:"job_family,omitempty"` // 序列 ID可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6890452208593372680" + JobLevel *string `json:"job_level,omitempty"` // 职级 ID可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6890452208593372681" + JobGrade *string `json:"job_grade,omitempty"` // 职等 ID可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "6890452208593372682" + WorkLocation *string `json:"work_location,omitempty"` // 工作地点 ID可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6890452208593372683" + WeeklyWorkingHours *int64 `json:"weekly_working_hours,omitempty"` // 周工作时长示例值: 100 取值范围: `0` ~ `168` + Position *string `json:"position,omitempty"` // 岗位ID示例值: "6890452208593372684" + Pathway *string `json:"pathway,omitempty"` // 通道ID示例值: "6890452208593372684" +} + +// CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter ... +type CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter struct { + ID *string `json:"id,omitempty"` // 支持的成本中心 ID, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例示例值: 100 取值范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqEmploymentInfoProbationInfo ... +type CreateCorehrEmployeeReqEmploymentInfoProbationInfo struct { + ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期示例值: "2021-01-01" + ProbationExpectedEndDate *string `json:"probation_expected_end_date,omitempty"` // 试用期预计结束日期示例值: "2021-02-01" + ActualProbationEndDate *string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期示例值: "2021-02-01" +} + +// CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation ... +type CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation struct { + SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "increase"可选值有: 增加减少 + StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" + ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 调整原因示例值: "工厂停产需要减去半年工龄" + SeniorityAdjustment float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年示例值: 1.01 取值范围: `0` ~ `100` + CustomFields []*CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` +} + +// CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField ... +type CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考【操作手册】如何通过 OpenAPI 维护自定义字段示例值: "[\"custom_enum_0__c\"]" +} + +// CreateCorehrEmployeeReqPersonalInfo ... +type CreateCorehrEmployeeReqPersonalInfo struct { + PersonalBasicInfo *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo `json:"personal_basic_info,omitempty"` // 基本信息 + EmergencyContacts []*EHREmergencyContact `json:"emergency_contacts,omitempty"` // 紧急联系人 长度范围: `0` ~ `100` + BankAccounts []*CreateCorehrEmployeeReqPersonalInfoBankAccount `json:"bank_accounts,omitempty"` // 银行账户 长度范围: `0` ~ `100` + Nationals []*CreateCorehrEmployeeReqPersonalInfoNational `json:"nationals,omitempty"` // 证件 长度范围: `0` ~ `100` + ResidentTaxes []*CreateCorehrEmployeeReqPersonalInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息 长度范围: `0` ~ `100` + Dependents []*CreateCorehrEmployeeReqPersonalInfoDependent `json:"dependents,omitempty"` // 家庭成员 长度范围: `0` ~ `100` + Hukou *CreateCorehrEmployeeReqPersonalInfoHukou `json:"hukou,omitempty"` // 户口 + ContactAddresses []*CreateCorehrEmployeeReqPersonalInfoContactAddresse `json:"contact_addresses,omitempty"` // 联系地址 长度范围: `0` ~ `100` + CustomGroups []*CreateCorehrEmployeeReqPersonalInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` + CitizenshipStatuses []*CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse `json:"citizenship_statuses,omitempty"` // 公民身份列表 +} + +// CreateCorehrEmployeeReqPersonalInfoBankAccount ... +type CreateCorehrEmployeeReqPersonalInfoBankAccount struct { + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + AccountHolder *string `json:"account_holder,omitempty"` // 开户人姓名如果填写了银行账号对象, 则该字段必填示例值: "孟十五" + BankAccountNumber *string `json:"bank_account_number,omitempty"` // 银行账号如果填写了银行账号对象, 则该字段必填示例值: "6231200000001223" + BankAccountUsages []string `json:"bank_account_usages,omitempty"` // 银行卡用途枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "bank_account" - custom_api_name = "bank_account_usage"示例值: ["payment"] 长度范围: `1` ~ `100` + BankAccountType *string `json:"bank_account_type,omitempty"` // 银行卡类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "bank_account" - custom_api_name = "bank_account_type"示例值: "savings" + BankID *string `json:"bank_id,omitempty"` // 银行 ID可通过[【查询银行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口获取示例值: "6862995757234914832" + BranchID *string `json:"branch_id,omitempty"` // 银行支行 ID可通过[【查询支行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search)接口获取示例值: "6862995757234914833" + PaymentType *string `json:"payment_type,omitempty"` // 分配方式, 枚举值示例值: "percent, balance, amount"可选值有: 按比例分配按金额分配默认卡 + PaymentRate *string `json:"payment_rate,omitempty"` // 分配比例, 0~100, 保留两位小数示例值: "80.28" + PaymentAmount *string `json:"payment_amount,omitempty"` // 分配金额, 保留两位小数示例值: "5000" + Priority *string `json:"priority,omitempty"` // 优先级, 不能低于0示例值: "1" +} + +// CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse ... +type CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse struct { + CountryRegion *string `json:"country_region,omitempty"` // 国家/地区ID示例值: "7324333990030034476" + CitizenshipStatus *string `json:"citizenship_status,omitempty"` // 公民身份类型示例值: "公民" +} + +// CreateCorehrEmployeeReqPersonalInfoContactAddresse ... +type CreateCorehrEmployeeReqPersonalInfoContactAddresse struct { + AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了地址对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" + RegionSubdivision1 *string `json:"region_subdivision_1,omitempty"` // 主要行政区往下细分 1 层的行政区示例值: "行政区 1" + RegionSubdivision2 *string `json:"region_subdivision_2,omitempty"` // 主要行政区往下细分 2 层的行政区示例值: "行政区 2" + CityV2 *string `json:"city_v2,omitempty"` // 城市 V2 ID可通过[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口获取示例值: "6862995757234914829" + CityText *string `json:"city_text,omitempty"` // 城市(文本)示例值: "北京市" + LocalCityText *string `json:"local_city_text,omitempty"` // 城市(仅文本, 非拉丁语系的本地文字)示例值: "北京市" + CitySubdivision1 *string `json:"city_subdivision_1,omitempty"` // 城市往下细分 1 层的行政区示例值: "行政区 1" + CitySubdivision2 *string `json:"city_subdivision_2,omitempty"` // 城市往下细分 2 层的行政区示例值: "行政区 2" + DistrictV2 *string `json:"district_v2,omitempty"` // 区/县 V2 ID可通过[【查询区/县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口获取示例值: "6862995757234914831" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressLine1 *string `json:"address_line_1,omitempty"` // 地址行 1如果填写了地址对象, 则该字段必填示例值: "丹佛测试地址 - 纽埃时区" + LocalAddressLine1 *string `json:"local_address_line_1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址 - 纽埃时区" + AddressLine2 *string `json:"address_line_2,omitempty"` // 地址行 2示例值: "PoewH" + LocalAddressLine2 *string `json:"local_address_line_2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine3 *string `json:"address_line_3,omitempty"` // 地址行 3示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line_3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine4 *string `json:"address_line_4,omitempty"` // 地址行 4示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line_5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine6 *string `json:"address_line_6,omitempty"` // 地址行 6示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line_6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine7 *string `json:"address_line_7,omitempty"` // 地址行 7示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line_7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine8 *string `json:"address_line_8,omitempty"` // 地址行 8示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line_8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + AddressLine9 *string `json:"address_line_9,omitempty"` // 地址行 9示例值: "McPRG" + LocalAddressLine9 *string `json:"local_address_line_9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + LocalAddressLine4 *string `json:"local_address_line_4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" +} + +// CreateCorehrEmployeeReqPersonalInfoCustomGroup ... +type CreateCorehrEmployeeReqPersonalInfoCustomGroup struct { + GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" + Items []*CreateCorehrEmployeeReqPersonalInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` +} + +// CreateCorehrEmployeeReqPersonalInfoCustomGroupItem ... +type CreateCorehrEmployeeReqPersonalInfoCustomGroupItem struct { + CustomFields []*CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField ... +type CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoDependent ... +type CreateCorehrEmployeeReqPersonalInfoDependent struct { + LegalName *string `json:"legal_name,omitempty"` // 姓名示例值: "王大帅" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2006-01-02" + RelationshipWithDependent *string `json:"relationship_with_dependent,omitempty"` // 关系如果填写了家庭成员对象, 则该字段必填枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "dependent" - custom_api_name ="relationship_with_dependent"示例值: "parent" + Gender *string `json:"gender,omitempty"` // 性别枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "dependent" - custom_api_name = "gender"示例值: "female" + Phone *CreateCorehrEmployeeReqPersonalInfoDependentPhone `json:"phone,omitempty"` // 电话 + Job *string `json:"job,omitempty"` // 岗位示例值: "岗位" + ChildBirthCertificates []*CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate `json:"child_birth_certificates,omitempty"` // 出生证明 长度范围: `0` ~ `100` + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "飞书" + CustomFields []*CreateCorehrEmployeeReqPersonalInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + Address *CreateCorehrEmployeeReqPersonalInfoDependentAddress `json:"address,omitempty"` // 联系地址 +} + +// CreateCorehrEmployeeReqPersonalInfoDependentAddress ... +type CreateCorehrEmployeeReqPersonalInfoDependentAddress struct { + AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" + RegionSubdivision1 *string `json:"region_subdivision_1,omitempty"` // 主要行政区往下细分 1 层的行政区示例值: "行政区 1" + RegionSubdivision2 *string `json:"region_subdivision_2,omitempty"` // 主要行政区往下细分 2 层的行政区示例值: "行政区 2" + CityV2 *string `json:"city_v2,omitempty"` // 城市 V2 ID可通过[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口获取示例值: "6862995757234914829" + CityText *string `json:"city_text,omitempty"` // 城市(文本)示例值: "北京市" + LocalCityText *string `json:"local_city_text,omitempty"` // 城市(仅文本, 非拉丁语系的本地文字)示例值: "北京市" + CitySubdivision1 *string `json:"city_subdivision_1,omitempty"` // 城市往下细分 1 层的行政区示例值: "行政区 1" + CitySubdivision2 *string `json:"city_subdivision_2,omitempty"` // 城市往下细分 2 层的行政区示例值: "行政区 2" + DistrictV2 *string `json:"district_v2,omitempty"` // 区/县 V2 ID可通过[【查询区/县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口获取示例值: "6862995757234914831" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressLine1 *string `json:"address_line_1,omitempty"` // 地址行 1示例值: "丹佛测试地址 - 纽埃时区" + LocalAddressLine1 *string `json:"local_address_line_1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址 - 纽埃时区" + AddressLine2 *string `json:"address_line_2,omitempty"` // 地址行 2示例值: "PoewH" + LocalAddressLine2 *string `json:"local_address_line_2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine3 *string `json:"address_line_3,omitempty"` // 地址行 3示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line_3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine4 *string `json:"address_line_4,omitempty"` // 地址行 4示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line_5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine6 *string `json:"address_line_6,omitempty"` // 地址行 6示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line_6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine7 *string `json:"address_line_7,omitempty"` // 地址行 7示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line_7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine8 *string `json:"address_line_8,omitempty"` // 地址行 8示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line_8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + AddressLine9 *string `json:"address_line_9,omitempty"` // 地址行 9示例值: "McPRG" + LocalAddressLine9 *string `json:"local_address_line_9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + LocalAddressLine4 *string `json:"local_address_line_4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" +} + +// CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate ... +type CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate struct { + FileID *string `json:"file_id,omitempty"` // 文件 ID- 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口获取- 只传该字段即可, 大小、类型等字段可以不传递示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" + MimeType *string `json:"mime_type,omitempty"` // 文件 MIME 类型示例值: "zip" + Name *string `json:"name,omitempty"` // 文件名示例值: "附件.zip" + Size *string `json:"size,omitempty"` // 文件大小(KB)示例值: "1000" + Token *string `json:"token,omitempty"` // 文件 Token示例值: "0a423bc7ea7c4a439d066bf070616782" +} + +// CreateCorehrEmployeeReqPersonalInfoDependentCustomField ... +type CreateCorehrEmployeeReqPersonalInfoDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoDependentPhone ... +type CreateCorehrEmployeeReqPersonalInfoDependentPhone struct { + InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" + PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码示例值: "13000000000" +} + +// CreateCorehrEmployeeReqPersonalInfoEmergencyContact ... +type CreateCorehrEmployeeReqPersonalInfoEmergencyContact struct { + LegalName *string `json:"legal_name,omitempty"` // 姓名示例值: "王大帅" + Relationship *string `json:"relationship,omitempty"` // 关系枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "emergency_contact" - custom_api_name = "relationship"示例值: "parent" + IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人示例值: true + Phone *CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone `json:"phone,omitempty"` // 电话 + Email *string `json:"email,omitempty"` // 邮箱示例值: "1234567@example.feishu.cn" + Address *CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress `json:"address,omitempty"` // 地址 + CustomFields []*CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress ... +type CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress struct { + AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了地址对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" + RegionSubdivision1 *string `json:"region_subdivision_1,omitempty"` // 主要行政区往下细分 1 层的行政区示例值: "行政区1" + RegionSubdivision2 *string `json:"region_subdivision_2,omitempty"` // 主要行政区往下细分 2 层的行政区示例值: "行政区2" + CityV2 *string `json:"city_v2,omitempty"` // 城市V2 ID可通过[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口获取示例值: "6862995757234914829" + CityText *string `json:"city_text,omitempty"` // 城市(文本)示例值: "北京市" + LocalCityText *string `json:"local_city_text,omitempty"` // 城市(仅文本, 非拉丁语系的本地文字)示例值: "北京市" + CitySubdivision1 *string `json:"city_subdivision_1,omitempty"` // 城市往下细分 1 层的行政区示例值: "行政区 1" + CitySubdivision2 *string `json:"city_subdivision_2,omitempty"` // 城市往下细分 2 层的行政区示例值: "行政区 2" + DistrictV2 *string `json:"district_v2,omitempty"` // 区/县 V2 ID可通过[【查询区/县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口获取示例值: "6862995757234914831" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressLine1 *string `json:"address_line_1,omitempty"` // 地址行 1如果填写了地址对象, 则该字段必填示例值: "丹佛测试地址 - 纽埃时区" + LocalAddressLine1 *string `json:"local_address_line_1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址 - 纽埃时区" + AddressLine2 *string `json:"address_line_2,omitempty"` // 地址行 2示例值: "PoewH" + LocalAddressLine2 *string `json:"local_address_line_2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine3 *string `json:"address_line_3,omitempty"` // 地址行 3示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line_3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + AddressLine4 *string `json:"address_line_4,omitempty"` // 地址行 4示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line_5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine6 *string `json:"address_line_6,omitempty"` // 地址行 6示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line_6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine7 *string `json:"address_line_7,omitempty"` // 地址行 7示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line_7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine8 *string `json:"address_line_8,omitempty"` // 地址行 8示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line_8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + AddressLine9 *string `json:"address_line_9,omitempty"` // 地址行 9示例值: "McPRG" + LocalAddressLine9 *string `json:"local_address_line_9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + LocalAddressLine4 *string `json:"local_address_line_4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" +} + +// CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField ... +type CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone ... +type CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone struct { + InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" + PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了电话对象, 则该字段必填示例值: "13000000000" +} + +// CreateCorehrEmployeeReqPersonalInfoHukou ... +type CreateCorehrEmployeeReqPersonalInfoHukou struct { + HukouType *string `json:"hukou_type,omitempty"` // 户口类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_info_chn" - custom_api_name = "hukou_type"示例值: "local_urban_residence" + HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京" + CustomFields []*CreateCorehrEmployeeReqPersonalInfoHukouCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqPersonalInfoHukouCustomField ... +type CreateCorehrEmployeeReqPersonalInfoHukouCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoNational ... +type CreateCorehrEmployeeReqPersonalInfoNational struct { + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了证件对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + NationalIDType *string `json:"national_id_type,omitempty"` // 国家证件类型 ID如果填写了证件对象, 则该字段必填可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获取示例值: "6863330041896371725" + NationalIDNumber *string `json:"national_id_number,omitempty"` // 证件号码如果填写了证件对象, 则该字段必填示例值: "1231131333" + IssuedDate *string `json:"issued_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CustomFields []*CreateCorehrEmployeeReqPersonalInfoNationalCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqPersonalInfoNationalCustomField ... +type CreateCorehrEmployeeReqPersonalInfoNationalCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo ... +type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo struct { + LegalName *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName `json:"legal_name,omitempty"` // 法定姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) + PreferredName *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName `json:"preferred_name,omitempty"` // 常用姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) + AdditionalName *string `json:"additional_name,omitempty"` // 别名示例值: "王帅" + Gender *string `json:"gender,omitempty"` // 性别枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "gender"示例值: "female" + NationalityV2 *string `json:"nationality_v2,omitempty"` // 国籍 ID可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914826" + EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "ethnicity_race"示例值: "han" + Phone *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone `json:"phone,omitempty"` // 个人电话 + Email *string `json:"email,omitempty"` // 个人邮箱示例值: "1234567@example.feishu.cn" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2006-01-02" + MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "marital_status"示例值: "married" + IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: false + DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号is_disabled 为 true 时必填示例值: "92838277746172888312" + IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否为烈属示例值: false + MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号is_martyr_family 为 true 时必填示例值: "00001" + IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否为孤老示例值: false + BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区示例值: "6862995757234914825" + PoliticalAffiliation *string `json:"political_affiliation,omitempty"` // 政治面貌枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_info_chn" - custom_api_name = "political_affiliation"示例值: "other" + NativeRegion *string `json:"native_region,omitempty"` // 籍贯(省份/行政区 ID)可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6862995757234914827" + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2006-01-02" + FirstEntryTime *string `json:"first_entry_time,omitempty"` // 首次入境日期示例值: "2006-01-02" + LeaveTime *string `json:"leave_time,omitempty"` // 预计离境日期示例值: "2006-01-02" + CustomFields []*CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + AdditionalNationalities []string `json:"additional_nationalities,omitempty"` // 其他国籍(地区)ID示例值: ["6862995757234914827"] +} + +// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField ... +type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName ... +type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName struct { + AdditionalNameType *string `json:"additional_name_type,omitempty"` // 补充姓名类型枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name"- custom_api_name = "additional_name_type"示例值: "emergency_contact_name" + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了法定姓名对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *string `json:"social,omitempty"` // 尊称枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "social"示例值: "ii" + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + Title *string `json:"title,omitempty"` // 头衔枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "title"示例值: "Mr" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 自定义姓名(本地文字)示例值: "王大帅" + CustomWesternName *string `json:"custom_western_name,omitempty"` // 自定义姓名(西方文字)示例值: "王大帅" + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" +} + +// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone ... +type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone struct { + InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" + PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了个人电话对象, 则该字段必填示例值: "13000000000" +} + +// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName ... +type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName struct { + AdditionalNameType *string `json:"additional_name_type,omitempty"` // 补充姓名类型枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "additional_name_type"示例值: "emergency_contact_name" + CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了常用姓名对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *string `json:"social,omitempty"` // 尊称枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "social"示例值: "ii" + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + Title *string `json:"title,omitempty"` // 头衔枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "title"示例值: "mr" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 自定义姓名(本地文字)示例值: "王大帅" + CustomWesternName *string `json:"custom_western_name,omitempty"` // 自定义姓名(西方文字)示例值: "王大帅" + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" +} + +// CreateCorehrEmployeeReqPersonalInfoResidentTaxe ... +type CreateCorehrEmployeeReqPersonalInfoResidentTaxe struct { + YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度如果填写了居民身份信息对象, 则该字段必填示例值: "2006-01-02" + TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区 ID如果填写了居民身份信息对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "resident_tax" - custom_api_name = "resident_status"示例值: "tax_residence" + CustomFields []*CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +} + +// CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField ... +type CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" + Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" +} + +// CreateCorehrEmployeeResp ... +type CreateCorehrEmployeeResp struct { + EmploymentID string `json:"employment_id,omitempty"` // 雇佣信息 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取详细信息 + ContractID string `json:"contract_id,omitempty"` // 合同 ID可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 + JobDataID string `json:"job_data_id,omitempty"` // 任职信息 ID可通过[【批量查询员工任职信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-job_data/batch_get)接口获取详细信息 +} + +// createCorehrEmployeeResp ... +type createCorehrEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employee_type_delete.go b/api_corehr_employee_type_delete.go index 03f9bd81..1d20407a 100644 --- a/api_corehr_employee_type_delete.go +++ b/api_corehr_employee_type_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHREmployeeTypeReq struct { } // DeleteCoreHREmployeeTypeResp ... -type DeleteCoreHREmployeeTypeResp struct{} +type DeleteCoreHREmployeeTypeResp struct { +} // deleteCoreHREmployeeTypeResp ... type deleteCoreHREmployeeTypeResp struct { diff --git a/api_corehr_employees_additional_job_batch_query.go b/api_corehr_employees_additional_job_batch_query.go new file mode 100644 index 00000000..f1622a08 --- /dev/null +++ b/api_corehr_employees_additional_job_batch_query.go @@ -0,0 +1,150 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryCorehrEmployeesAdditionalJob 批量查询兼职信息, 包括开始日期、职务、序列、上级、薪资类型等信息。 +// +// 支持全量遍历和筛选查询。 +// - 本接口会按照「员工资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 +// - 延迟说明: 搜索同步延迟 10s 以内, 即: 直接创建、更新对象后10s内调用此接口可能查询不到最新数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/batch +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/batch +func (r *CoreHRService) BatchQueryCorehrEmployeesAdditionalJob(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrEmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchQueryCorehrEmployeesAdditionalJob", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/batch", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryCorehrEmployeesAdditionalJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchQueryCorehrEmployeesAdditionalJob mock CoreHRBatchQueryCorehrEmployeesAdditionalJob method +func (r *Mock) MockCoreHRBatchQueryCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob = f +} + +// UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob un-mock CoreHRBatchQueryCorehrEmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob() { + r.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob = nil +} + +// BatchQueryCorehrEmployeesAdditionalJobReq ... +type BatchQueryCorehrEmployeesAdditionalJobReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `100` 取值范围: `0` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: Njg5MTI1MTcyMjYzMTg5MDQ0NQ[ + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个 department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` + EmploymentIDs []string `json:"employment_ids,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致示例值: ["7140964208476371111"] 长度范围: `0` ~ `100` + AdditionalJobIDs []string `json:"additional_job_ids,omitempty"` // 兼职 ID- 指定兼职记录 ID 查询时, 请将 page_size 设为最大值, 不返回 has_more 参数示例值: ["7140964208476371111"] 长度范围: `0` ~ `100` + StartDate *BatchQueryCorehrEmployeesAdditionalJobReqStartDate `json:"start_date,omitempty"` // 开始日期- 无默认值 + EndDate *BatchQueryCorehrEmployeesAdditionalJobReqEndDate `json:"end_date,omitempty"` // 结束日期- 无默认值 + DataDate *string `json:"data_date,omitempty"` // 查看数据日期, 默认当天- 与时间范围筛选为 AND 关系示例值: "2024-01-02" + IsEffective *bool `json:"is_effective,omitempty"` // 仅查询在【data_date】当天为生效中的兼职- 默认为 false, 即 【data_date】不生效示例值: true +} + +// BatchQueryCorehrEmployeesAdditionalJobReqEndDate ... +type BatchQueryCorehrEmployeesAdditionalJobReqEndDate struct { + Start string `json:"start,omitempty"` // 开始示例值: "2024-01-01" + End string `json:"end,omitempty"` // 结束示例值: "2024-01-01" +} + +// BatchQueryCorehrEmployeesAdditionalJobReqStartDate ... +type BatchQueryCorehrEmployeesAdditionalJobReqStartDate struct { + Start string `json:"start,omitempty"` // 开始示例值: "2024-01-01" + End string `json:"end,omitempty"` // 结束示例值: "2024-01-01" +} + +// BatchQueryCorehrEmployeesAdditionalJobResp ... +type BatchQueryCorehrEmployeesAdditionalJobResp struct { + Items []*BatchQueryCorehrEmployeesAdditionalJobRespItem `json:"items,omitempty"` // 兼职信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchQueryCorehrEmployeesAdditionalJobRespItem ... +type BatchQueryCorehrEmployeesAdditionalJobRespItem struct { + ID string `json:"id,omitempty"` // 兼职记录 ID + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 + WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点 ID, 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取详细信息- 类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求(满足任一): 获取兼职的职务信息读写兼职的职务信息 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息字段权限要求(满足任一): 获取兼职的职级信息读写兼职的职级信息 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + StartDate string `json:"start_date,omitempty"` // 兼职开始日期 + EndDate string `json:"end_date,omitempty"` // 兼职结束日期- 判断兼职已结束: 结束日期小于当天日期 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + WorkShift *BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求(满足任一): 获取兼职的排班信息读写兼职的排班信息 + CompensationType *BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求(满足任一): 获取兼职的薪资类型读写兼职的薪资类型 + ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求(满足任一): 获取兼职的任职公司读写兼职的任职公司 + WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息 + PositionID string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求(满足任一): 读取兼职的岗位读写兼职的岗位 + EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) +} + +// BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType ... +type BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay ... +type BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift ... +type BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay ... +type BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// batchQueryCorehrEmployeesAdditionalJobResp ... +type batchQueryCorehrEmployeesAdditionalJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_additional_job_create.go b/api_corehr_employees_additional_job_create.go new file mode 100644 index 00000000..67eeda03 --- /dev/null +++ b/api_corehr_employees_additional_job_create.go @@ -0,0 +1,154 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrEmployeesAdditionalJob 创建员工的兼职 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/create +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/create +func (r *CoreHRService) CreateCorehrEmployeesAdditionalJob(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrEmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRCreateCorehrEmployeesAdditionalJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrEmployeesAdditionalJob", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrEmployeesAdditionalJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrEmployeesAdditionalJob mock CoreHRCreateCorehrEmployeesAdditionalJob method +func (r *Mock) MockCoreHRCreateCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRCreateCorehrEmployeesAdditionalJob = f +} + +// UnMockCoreHRCreateCorehrEmployeesAdditionalJob un-mock CoreHRCreateCorehrEmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRCreateCorehrEmployeesAdditionalJob() { + r.mockCoreHRCreateCorehrEmployeesAdditionalJob = nil +} + +// CreateCorehrEmployeesAdditionalJobReq ... +type CreateCorehrEmployeesAdditionalJobReq struct { + ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等校验, 格式为标准的 UUIDV4。请求成功时, 重复的 client_token 不会再创建、变更数据。示例值: 12454646 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个 department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6890452208593372679" + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)获取详细信息示例值: "6890452208593372679" + WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点 ID- 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获取详细信息, 并选择【地点用途】为工作地点(business_site)的记录示例值: "6890452208593372679" + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取详细信息类型与 department_id_type 一致示例值: "6890452208593372679" + JobID *string `json:"job_id,omitempty"` // 职务 ID, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取详细信息示例值: "6890452208593372679" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获取详细信息示例值: "6890452208593372679" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取详细信息示例值: "1245678" + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6893014062142064135" + StartDate string `json:"start_date,omitempty"` // 兼职开始日期示例值: "2020-05-01" + EndDate *string `json:"end_date,omitempty"` // 兼职结束日期, 不可清空示例值: "2020-05-02" + DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" + WorkShift *CreateCorehrEmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" + CompensationType *CreateCorehrEmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" + ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取详细信息示例值: "6890452208593372680" + WeeklyWorkingHours *string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】示例值: "5" + WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息示例值: "6890452208593372680" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID示例值: "6890452208593372680" + EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID示例值: "6890452208593372680" +} + +// CreateCorehrEmployeesAdditionalJobReqCompensationType ... +type CreateCorehrEmployeesAdditionalJobReqCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// CreateCorehrEmployeesAdditionalJobReqWorkShift ... +type CreateCorehrEmployeesAdditionalJobReqWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// CreateCorehrEmployeesAdditionalJobResp ... +type CreateCorehrEmployeesAdditionalJobResp struct { + AdditionalJob *CreateCorehrEmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 +} + +// CreateCorehrEmployeesAdditionalJobRespAdditionalJob ... +type CreateCorehrEmployeesAdditionalJobRespAdditionalJob struct { + ID string `json:"id,omitempty"` // 兼职记录 ID + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 + WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点 ID, 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取详细信息类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求: 读写兼职的职务信息 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息字段权限要求: 读写兼职的职级信息 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + StartDate string `json:"start_date,omitempty"` // 兼职开始日期 + EndDate string `json:"end_date,omitempty"` // 兼职结束日期 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + WorkShift *CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 + CompensationType *CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 + ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写兼职的任职公司 + WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取 + PositionID string `json:"position_id,omitempty"` // 岗位 ID字段权限要求: 读写兼职的岗位 + EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID +} + +// CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType ... +type CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... +type CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift ... +type CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... +type CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// createCorehrEmployeesAdditionalJobResp ... +type createCorehrEmployeesAdditionalJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_additional_job_delete.go b/api_corehr_employees_additional_job_delete.go new file mode 100644 index 00000000..727bcad5 --- /dev/null +++ b/api_corehr_employees_additional_job_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrEmployeesAdditionalJob 删除一条指定的员工兼职 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/delete +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/delete +func (r *CoreHRService) DeleteCorehrEmployeesAdditionalJob(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrEmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrEmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrEmployeesAdditionalJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrEmployeesAdditionalJob", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/:additional_job_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrEmployeesAdditionalJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrEmployeesAdditionalJob mock CoreHRDeleteCorehrEmployeesAdditionalJob method +func (r *Mock) MockCoreHRDeleteCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRDeleteCorehrEmployeesAdditionalJob = f +} + +// UnMockCoreHRDeleteCorehrEmployeesAdditionalJob un-mock CoreHRDeleteCorehrEmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRDeleteCorehrEmployeesAdditionalJob() { + r.mockCoreHRDeleteCorehrEmployeesAdditionalJob = nil +} + +// DeleteCorehrEmployeesAdditionalJobReq ... +type DeleteCorehrEmployeesAdditionalJobReq struct { + AdditionalJobID string `path:"additional_job_id" json:"-"` // 兼职记录 ID示例值: "654637829201" +} + +// DeleteCorehrEmployeesAdditionalJobResp ... +type DeleteCorehrEmployeesAdditionalJobResp struct { +} + +// deleteCorehrEmployeesAdditionalJobResp ... +type deleteCorehrEmployeesAdditionalJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_additional_job_update.go b/api_corehr_employees_additional_job_update.go new file mode 100644 index 00000000..ad3fac52 --- /dev/null +++ b/api_corehr_employees_additional_job_update.go @@ -0,0 +1,154 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrEmployeesAdditionalJob 更新员工的兼职 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/patch +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/patch +func (r *CoreHRService) UpdateCorehrEmployeesAdditionalJob(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrEmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrEmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrEmployeesAdditionalJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrEmployeesAdditionalJob", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/:additional_job_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrEmployeesAdditionalJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrEmployeesAdditionalJob mock CoreHRUpdateCorehrEmployeesAdditionalJob method +func (r *Mock) MockCoreHRUpdateCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRUpdateCorehrEmployeesAdditionalJob = f +} + +// UnMockCoreHRUpdateCorehrEmployeesAdditionalJob un-mock CoreHRUpdateCorehrEmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRUpdateCorehrEmployeesAdditionalJob() { + r.mockCoreHRUpdateCorehrEmployeesAdditionalJob = nil +} + +// UpdateCorehrEmployeesAdditionalJobReq ... +type UpdateCorehrEmployeesAdditionalJobReq struct { + AdditionalJobID string `path:"additional_job_id" json:"-"` // 兼职记录 ID示例值: "12454646" + ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等校验, 格式为标准的 UUIDV4。请求成功时, 重复的 client_token 不会再创建、变更数据。示例值: 12454646 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个 department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6890452208593372679" + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)获取详细信息示例值: "6890452208593372679" + WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点 ID- 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获取详细信息, 并选择【地点用途】为工作地点(business_site)的记录示例值: "6890452208593372679" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取详细信息类型与 department_id_type 一致示例值: "6890452208593372679" + JobID *string `json:"job_id,omitempty"` // 职务 ID, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取详细信息示例值: "6890452208593372679" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获取详细信息示例值: "6890452208593372679" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取详细信息示例值: "1245678" + StartDate *string `json:"start_date,omitempty"` // 兼职开始日期示例值: "2020-05-01" + EndDate *string `json:"end_date,omitempty"` // 兼职结束日期, 不可清空示例值: "2020-05-02" + DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" + WorkShift *UpdateCorehrEmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" + CompensationType *UpdateCorehrEmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" + ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取详细信息示例值: "6890452208593372680" + WeeklyWorkingHours *string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】示例值: "5" + WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "6890452208593372680" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID示例值: "6890452208593372680" + EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID示例值: "6890452208593372680" +} + +// UpdateCorehrEmployeesAdditionalJobReqCompensationType ... +type UpdateCorehrEmployeesAdditionalJobReqCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// UpdateCorehrEmployeesAdditionalJobReqWorkShift ... +type UpdateCorehrEmployeesAdditionalJobReqWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// UpdateCorehrEmployeesAdditionalJobResp ... +type UpdateCorehrEmployeesAdditionalJobResp struct { + AdditionalJob *UpdateCorehrEmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 +} + +// UpdateCorehrEmployeesAdditionalJobRespAdditionalJob ... +type UpdateCorehrEmployeesAdditionalJobRespAdditionalJob struct { + ID string `json:"id,omitempty"` // 兼职记录 ID + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 + WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点 ID, 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取详细信息类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求: 读写兼职的职务信息 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息字段权限要求: 读写兼职的职级信息 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + StartDate string `json:"start_date,omitempty"` // 兼职开始日期 + EndDate string `json:"end_date,omitempty"` // 兼职结束日期 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 + WorkShift *UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 + CompensationType *UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 + ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写兼职的任职公司 + WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息 + PositionID string `json:"position_id,omitempty"` // 岗位 ID字段权限要求: 读写兼职的岗位 + EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID +} + +// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType ... +type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... +type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift ... +type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... +type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// updateCorehrEmployeesAdditionalJobResp ... +type updateCorehrEmployeesAdditionalJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_international_assignment_create.go b/api_corehr_employees_international_assignment_create.go new file mode 100644 index 00000000..a740ab72 --- /dev/null +++ b/api_corehr_employees_international_assignment_create.go @@ -0,0 +1,195 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrEmployeesInternationalAssignment 为员工添加外派记录, 包括外派信息、任职信息 +// +// - 文档中的必填字段, 不可为空。 +// - 部门岗职模式, 会影响岗位、职务等字段的必填校验 +// - 外派信息相关字段, 会基于【飞书人事-人员档案配置】进行必填校验 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/create +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/create +func (r *CoreHRService) CreateCorehrEmployeesInternationalAssignment(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrEmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRCreateCorehrEmployeesInternationalAssignment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrEmployeesInternationalAssignment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrEmployeesInternationalAssignmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrEmployeesInternationalAssignment mock CoreHRCreateCorehrEmployeesInternationalAssignment method +func (r *Mock) MockCoreHRCreateCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRCreateCorehrEmployeesInternationalAssignment = f +} + +// UnMockCoreHRCreateCorehrEmployeesInternationalAssignment un-mock CoreHRCreateCorehrEmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRCreateCorehrEmployeesInternationalAssignment() { + r.mockCoreHRCreateCorehrEmployeesInternationalAssignment = nil +} + +// CreateCorehrEmployeesInternationalAssignmentReq ... +type CreateCorehrEmployeesInternationalAssignmentReq struct { + ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略 client_token 重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获取, 并选择【地点用途】为外派地点(international_assignment)的记录示例值: "7127921432117937708" + ServiceCompany *string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取示例值: "7127921432117937708" + WorkShift *string `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift示例值: "work_shift" + WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长- 限制两位小数示例值: 8 取值范围: `0` ~ `168` + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)获取示例值: "7127921432117937708" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "7127921432117937708" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID- 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取- 类型与 department_id_type 一致示例值: "7127921432117937708" + JobID *string `json:"job_id,omitempty"` // 职务 ID- 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取示例值: "7127921432117937708" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取示例值: "7127921432117937708" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获取示例值: "7127921432117937708" + JobGradeID *string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取示例值: "7127921432117937708" + CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type示例值: "daily" + DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: "7127921432117937708" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: "7127921432117937708" + WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "7127921432117937708" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7127921432117937708" + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致- 需要是在职人员的雇佣 ID示例值: "7127921432117937708" + CustomFields []*CreateCorehrEmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` + InternationalAssignmentReason *string `json:"international_assignment_reason,omitempty"` // 外派原因说明示例值: "xxx 项目派遣" 长度范围: `0` ~ `5000` 字符 + Description *string `json:"description,omitempty"` // 备注示例值: "xxx 项目" 长度范围: `0` ~ `10000` 字符 + InternationalAssignmentExpectedEndDate *string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" + InternationalAssignmentType string `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type示例值: "global_assignment" + EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-01-02" + ExpirationTime *string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" +} + +// CreateCorehrEmployeesInternationalAssignmentReqCustomField ... +type CreateCorehrEmployeesInternationalAssignmentReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// CreateCorehrEmployeesInternationalAssignmentResp ... +type CreateCorehrEmployeesInternationalAssignmentResp struct { + InternationalAssignment *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment struct { + WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求: 读写外派地点 + ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写外派公司 + WorkShift *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求: 读写外派工时制度 + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求: 读写外派周工作时长 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID- 可通过[【查询单个部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详细信息- 类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID- 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求: 读写外派职务 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求: 读写外派职级 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 + JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求: 读写外派职等 + CompensationType *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求: 读写外派工作日历 + PositionID string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 读写外派岗位 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + CustomFields []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 + InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 + Description string `json:"description,omitempty"` // 备注 + InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd + InternationalAssignmentStatus *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd + ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 + ID string `json:"id,omitempty"` // 外派ID +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... +type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// createCorehrEmployeesInternationalAssignmentResp ... +type createCorehrEmployeesInternationalAssignmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_international_assignment_delete.go b/api_corehr_employees_international_assignment_delete.go new file mode 100644 index 00000000..9ea2b7db --- /dev/null +++ b/api_corehr_employees_international_assignment_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrEmployeesInternationalAssignment 删除某一条外派信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/delete +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/delete +func (r *CoreHRService) DeleteCorehrEmployeesInternationalAssignment(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrEmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrEmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrEmployeesInternationalAssignment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrEmployeesInternationalAssignment", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments/:international_assignment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrEmployeesInternationalAssignmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrEmployeesInternationalAssignment mock CoreHRDeleteCorehrEmployeesInternationalAssignment method +func (r *Mock) MockCoreHRDeleteCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRDeleteCorehrEmployeesInternationalAssignment = f +} + +// UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment un-mock CoreHRDeleteCorehrEmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment() { + r.mockCoreHRDeleteCorehrEmployeesInternationalAssignment = nil +} + +// DeleteCorehrEmployeesInternationalAssignmentReq ... +type DeleteCorehrEmployeesInternationalAssignmentReq struct { + InternationalAssignmentID string `path:"international_assignment_id" json:"-"` // 外派ID- 可通过[批量查询外派](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list)获取示例值: "7127921432117937708" +} + +// DeleteCorehrEmployeesInternationalAssignmentResp ... +type DeleteCorehrEmployeesInternationalAssignmentResp struct { +} + +// deleteCorehrEmployeesInternationalAssignmentResp ... +type deleteCorehrEmployeesInternationalAssignmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_international_assignment_list.go b/api_corehr_employees_international_assignment_list.go new file mode 100644 index 00000000..7eda8220 --- /dev/null +++ b/api_corehr_employees_international_assignment_list.go @@ -0,0 +1,194 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrEmployeesInternationalAssignment 查询员工的外派信息: 外派类型、外派地点、职务、职级、上级等。 +// +// - 本接口会按照「员工资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 +// - 字段未返回请检查: 字段权限、用户该字段有值, 以及「飞书人事-人员档案设置」中字段是否启用 +// - 数据按照外派 ID 降序返回 +// - 关于自定义字段格式, 本接口已升级, 不需要复杂转义了, 可参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)-入职 +// - 延迟说明: 搜索同步延迟 10s 以内, 即: 直接创建、更新对象后 10s 内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/list +func (r *CoreHRService) ListCorehrEmployeesInternationalAssignment(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrEmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrEmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRListCorehrEmployeesInternationalAssignment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrEmployeesInternationalAssignment", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrEmployeesInternationalAssignmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrEmployeesInternationalAssignment mock CoreHRListCorehrEmployeesInternationalAssignment method +func (r *Mock) MockCoreHRListCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRListCorehrEmployeesInternationalAssignment = f +} + +// UnMockCoreHRListCorehrEmployeesInternationalAssignment un-mock CoreHRListCorehrEmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRListCorehrEmployeesInternationalAssignment() { + r.mockCoreHRListCorehrEmployeesInternationalAssignment = nil +} + +// ListCorehrEmployeesInternationalAssignmentReq ... +type ListCorehrEmployeesInternationalAssignmentReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `200` 取值范围: `1` ~ `200` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 123456 + EmploymentIDs []string `query:"employment_ids" json:"-"` // 雇佣ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型必须与 user_id_type 一致示例值: 7127921432117937708 长度范围: `0` ~ `100` + InternationalAssignmentIDs []string `query:"international_assignment_ids" json:"-"` // 外派 ID- 指定外派记录 ID 查询时, 请将 page_size 设为最大值, 不返回 has_more 参数示例值: 7127921432117937708 长度范围: `0` ~ `100` + EffectiveTime *string `query:"effective_time" json:"-"` // 外派开始日期- 范围筛选, 格式: yyyy-mm-dd~yyyy-mm-dd示例值: "2024-01-01~2024-02-02"- "~2024-02-02"- "2024-01-01~" + ExpirationTime *string `query:"expiration_time" json:"-"` // 外派结束日期- 范围筛选, 格式: yyyy-mm-dd~yyyy-mm-dd示例值: "2024-01-01~2024-02-02"- "~2024-02-02"- "2024-01-01~" + EmploymentStatusList []string `query:"employment_status_list" json:"-"` // 雇佣状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: employment - custom_api_name: employment_status示例值: hired 长度范围: `0` ~ `100` + WorkLocationIDList []string `query:"work_location_id_list" json:"-"` // 外派工作地点- 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获取- 需要以下权限点之一: - 读取外派地点 - 读写外派地点示例值: 7127921432117937708 长度范围: `0` ~ `100` + DepartmentIDList []string `query:"department_id_list" json:"-"` // 外派部门- 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取- 类型与 department_id_type 一致示例值: 7127921432117937708 长度范围: `0` ~ `100` + DirectManagerIDList []string `query:"direct_manager_id_list" json:"-"` // 外派直属上级- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: 7127921432117937708 长度范围: `0` ~ `100` + DottedLineManagerIDList []string `query:"dotted_line_manager_id_list" json:"-"` // 外派虚线上级- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: 7127921432117937708 长度范围: `0` ~ `100` + PositionIDList []string `query:"position_id_list" json:"-"` // 外派岗位- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- 需要以下权限点之一: - 读取外派岗位 - 读写外派岗位示例值: 7127921432117937708 长度范围: `0` ~ `100` + JobIDList []string `query:"job_id_list" json:"-"` // 外派职务- 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取- 需要以下权限点之一: - 读取外派职务 - 读写外派职务示例值: 7127921432117937708 长度范围: `0` ~ `100` + JobFamilyIDList []string `query:"job_family_id_list" json:"-"` // 外派序列- 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取示例值: 7127921432117937708 长度范围: `0` ~ `100` + JobLevelIDList []string `query:"job_level_id_list" json:"-"` // 外派职级- 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获取- 需要以下权限点之一: - 读取外派职级 - 读写外派职级示例值: 7127921432117937708 长度范围: `0` ~ `100` + JobGradeIDList []string `query:"job_grade_id_list" json:"-"` // 外派职等- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取- 需要以下权限点之一: - 读取外派职等 - 读写外派职等示例值: 7127921432117937708 长度范围: `0` ~ `100` + WorkingHoursTypeIDList []string `query:"working_hours_type_id_list" json:"-"` // 外派工时制度- 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)获取- 需要以下权限点之一: - 读取外派工时制度 - 读写外派工时制度示例值: 7293840937989473836 长度范围: `0` ~ `100` + ServiceCompanyList []string `query:"service_company_list" json:"-"` // 外派任职公司- 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取- 需要以下权限点之一: - 读取外派公司 - 读写外派公司示例值: 7293840937989473836 长度范围: `0` ~ `100` + WeeklyWorkingHoursV2 *float64 `query:"weekly_working_hours_v2" json:"-"` // 外派周工作时长- 限制两位小数- 需要以下权限点之一: - 读取外派周工作时长 - 读写外派周工作时长示例值: 10 取值范围: `0` ~ `168` + WorkShiftList []string `query:"work_shift_list" json:"-"` // 外派排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift- 需要以下权限点之一: - 读取外派排班类型 - 读写外派排班类型示例值: work_shift 长度范围: `0` ~ `100` + CompensationTypeList []string `query:"compensation_type_list" json:"-"` // 外派薪资类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type- 需要以下权限点之一: - 读取外派薪资类型 - 读写外派薪资类型示例值: hourly 长度范围: `0` ~ `100` + InternationalAssignmentExpectedEndDate *string `query:"international_assignment_expected_end_date" json:"-"` // 外派预计结束日期- 范围筛选, 格式: yyyy-mm-dd~yyyy-mm-dd示例值: "2024-01-01~2024-02-02"- "~2024-02-02"- "2024-01-01~" + InternationalAssignmentStatusList []string `query:"international_assignment_status_list" json:"-"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status示例值: on_assignment 长度范围: `0` ~ `100` + InternationalAssignmentTypeList []string `query:"international_assignment_type_list" json:"-"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type示例值: global_assignment 长度范围: `0` ~ `100` + WorkCalendarIDList []string `query:"work_calendar_id_list" json:"-"` // 外派工作日历- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息- 需要以下权限点之一: - 读取外派工作日历 - 读写外派工作日历示例值: 7293840937989473836 长度范围: `0` ~ `100` +} + +// ListCorehrEmployeesInternationalAssignmentResp ... +type ListCorehrEmployeesInternationalAssignmentResp struct { + Items []*ListCorehrEmployeesInternationalAssignmentRespItem `json:"items,omitempty"` // 外派信息 + NoAuthorityIDs []string `json:"no_authority_ids,omitempty"` // 无权限的雇佣ID- 在指定雇佣ID【employment_ids】查询时该参数生效- 类型与 user_id_type 一致 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListCorehrEmployeesInternationalAssignmentRespItem ... +type ListCorehrEmployeesInternationalAssignmentRespItem struct { + WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求(满足任一): 读取外派地点读写外派地点 + ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求(满足任一): 读取外派公司读写外派公司 + WorkShift *ListCorehrEmployeesInternationalAssignmentRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求(满足任一): 读取外派排班类型读写外派排班类型 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求(满足任一): 读取外派工时制度读写外派工时制度 + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求(满足任一): 读取外派周工作时长读写外派周工作时长 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID- 可通过[【查询单个部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详细信息- 类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID- 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求(满足任一): 读取外派职务读写外派职务 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求(满足任一): 读取外派职级读写外派职级 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 + JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求(满足任一): 读取外派职等读写外派职等 + CompensationType *ListCorehrEmployeesInternationalAssignmentRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求(满足任一): 读取外派薪资类型读写外派薪资类型 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求(满足任一): 读取外派工作日历读写外派工作日历 + PositionID string `json:"position_id,omitempty"` // 岗位 ID- 尚未支持, 预留字段字段权限要求(满足任一): 读取外派岗位读写外派岗位 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + CustomFields []*ListCorehrEmployeesInternationalAssignmentRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 读取外派自定义字段读写外派自定义字段 + InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 + Description string `json:"description,omitempty"` // 备注 + InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd + InternationalAssignmentStatus *ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd + ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 + ID string `json:"id,omitempty"` // 外派ID +} + +// ListCorehrEmployeesInternationalAssignmentRespItemCompensationType ... +type ListCorehrEmployeesInternationalAssignmentRespItemCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay ... +type ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemCustomField ... +type ListCorehrEmployeesInternationalAssignmentRespItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同- 该返回值是将原始值 `json.Marshal` 后返回, 使用 `json.Unmarshal` 解析到指定对象即可 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus ... +type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay ... +type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType ... +type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay ... +type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemWorkShift ... +type ListCorehrEmployeesInternationalAssignmentRespItemWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay ... +type ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// listCorehrEmployeesInternationalAssignmentResp ... +type listCorehrEmployeesInternationalAssignmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employees_international_assignment_update.go b/api_corehr_employees_international_assignment_update.go new file mode 100644 index 00000000..637974cf --- /dev/null +++ b/api_corehr_employees_international_assignment_update.go @@ -0,0 +1,194 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrEmployeesInternationalAssignment 更新指定的外派信息 +// +// - 部门岗职模式, 会影响岗位、职务等字段的必填校验 +// - 外派信息相关字段, 会基于【飞书人事-人员档案配置】进行必填校验 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/patch +// new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/patch +func (r *CoreHRService) UpdateCorehrEmployeesInternationalAssignment(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrEmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrEmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrEmployeesInternationalAssignment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrEmployeesInternationalAssignment", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments/:international_assignment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrEmployeesInternationalAssignmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrEmployeesInternationalAssignment mock CoreHRUpdateCorehrEmployeesInternationalAssignment method +func (r *Mock) MockCoreHRUpdateCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRUpdateCorehrEmployeesInternationalAssignment = f +} + +// UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment un-mock CoreHRUpdateCorehrEmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment() { + r.mockCoreHRUpdateCorehrEmployeesInternationalAssignment = nil +} + +// UpdateCorehrEmployeesInternationalAssignmentReq ... +type UpdateCorehrEmployeesInternationalAssignmentReq struct { + InternationalAssignmentID string `path:"international_assignment_id" json:"-"` // 外派ID- 可通过[批量查询外派](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list)获取示例值: "7127921432117937708" + ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + WorkLocationID *string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获取, 并选择【地点用途】为外派地点(international_assignment)的记录 - 该字段可不传, 但不可传空值示例值: "7127921432117937708" + ServiceCompany *string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取示例值: "7127921432117937708" + WorkShift *string `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift示例值: "work_shift" + WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长- 限制两位小数示例值: 8 取值范围: `0` ~ `168` + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)获取示例值: "7127921432117937708" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "7127921432117937708" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID- 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获取- 类型与 department_id_type 一致示例值: "7127921432117937708" + JobID *string `json:"job_id,omitempty"` // 职务 ID- 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取示例值: "7127921432117937708" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取示例值: "7127921432117937708" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获取示例值: "7127921432117937708" + JobGradeID *string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取示例值: "7127921432117937708" + CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type示例值: "daily" + DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: "7127921432117937708" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: "7127921432117937708" + WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "7127921432117937708" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7127921432117937708" + CustomFields []*UpdateCorehrEmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` + InternationalAssignmentReason *string `json:"international_assignment_reason,omitempty"` // 外派原因说明示例值: "xxx 项目派遣" 长度范围: `0` ~ `5000` 字符 + Description *string `json:"description,omitempty"` // 备注示例值: "xxx 项目" 长度范围: `0` ~ `10000` 字符 + InternationalAssignmentExpectedEndDate *string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" + InternationalAssignmentType *string `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type示例值: "global_assignment" + EffectiveTime *string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-01-02" + ExpirationTime *string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" +} + +// UpdateCorehrEmployeesInternationalAssignmentReqCustomField ... +type UpdateCorehrEmployeesInternationalAssignmentReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrEmployeesInternationalAssignmentResp ... +type UpdateCorehrEmployeesInternationalAssignmentResp struct { + InternationalAssignment *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment struct { + WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求: 读写外派地点 + ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写外派公司 + WorkShift *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求: 读写外派工时制度 + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 + WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求: 读写外派周工作时长 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID- 可通过[【查询单个部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详细信息- 类型与 department_id_type 一致 + JobID string `json:"job_id,omitempty"` // 职务 ID- 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息字段权限要求: 读写外派职务 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求: 读写外派职级 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 + JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求: 读写外派职等 + CompensationType *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 + DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求: 读写外派工作日历 + PositionID string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 读写外派岗位 + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 + CustomFields []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 + InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 + Description string `json:"description,omitempty"` // 备注 + InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd + InternationalAssignmentStatus *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd + ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 + ID string `json:"id,omitempty"` // 外派ID +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... +type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// updateCorehrEmployeesInternationalAssignmentResp ... +type updateCorehrEmployeesInternationalAssignmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_employment_delete.go b/api_corehr_employment_delete.go index d35121d1..596f497f 100644 --- a/api_corehr_employment_delete.go +++ b/api_corehr_employment_delete.go @@ -63,7 +63,8 @@ type DeleteCoreHREmploymentReq struct { } // DeleteCoreHREmploymentResp ... -type DeleteCoreHREmploymentResp struct{} +type DeleteCoreHREmploymentResp struct { +} // deleteCoreHREmploymentResp ... type deleteCoreHREmploymentResp struct { diff --git a/api_corehr_enum_search.go b/api_corehr_enum_search.go new file mode 100644 index 00000000..2a2fd27e --- /dev/null +++ b/api_corehr_enum_search.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchCorehrEnum 根据枚举的APIName查询枚举详细信息, 用于BPM等场景获取枚举选项。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/enum/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/enum/search +func (r *CoreHRService) SearchCorehrEnum(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCorehrEnum != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrEnum mock enable") + return r.cli.mock.mockCoreHRSearchCorehrEnum(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "SearchCorehrEnum", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/enums/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchCorehrEnumResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRSearchCorehrEnum mock CoreHRSearchCorehrEnum method +func (r *Mock) MockCoreHRSearchCorehrEnum(f func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error)) { + r.mockCoreHRSearchCorehrEnum = f +} + +// UnMockCoreHRSearchCorehrEnum un-mock CoreHRSearchCorehrEnum method +func (r *Mock) UnMockCoreHRSearchCorehrEnum() { + r.mockCoreHRSearchCorehrEnum = nil +} + +// SearchCorehrEnumReq ... +type SearchCorehrEnumReq struct { + EnumApinameLists []string `json:"enum_apiname_lists,omitempty"` // 枚举apiname列表(不传值查询结果为空)示例值: ["overtime_date_type"] 长度范围: `0` ~ `500` +} + +// SearchCorehrEnumResp ... +type SearchCorehrEnumResp struct { + Enums []*SearchCorehrEnumRespEnum `json:"enums,omitempty"` // 查询的枚举信息 +} + +// SearchCorehrEnumRespEnum ... +type SearchCorehrEnumRespEnum struct { + EnumApiname string `json:"enum_apiname,omitempty"` // 枚举名称 + EnumItems []*SearchCorehrEnumRespEnumEnumItem `json:"enum_items,omitempty"` // 枚举值 +} + +// SearchCorehrEnumRespEnumEnumItem ... +type SearchCorehrEnumRespEnumEnumItem struct { + ApiName string `json:"api_name,omitempty"` // ApiName + Name []*SearchCorehrEnumRespEnumEnumItemName `json:"name,omitempty"` // 枚举值名 + Description []*SearchCorehrEnumRespEnumEnumItemDescription `json:"description,omitempty"` // 枚举值描述 + EnumApiName string `json:"enum_api_name,omitempty"` // 所属枚举常量ApiName + Order int64 `json:"order,omitempty"` // 顺序 + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 +} + +// SearchCorehrEnumRespEnumEnumItemDescription ... +type SearchCorehrEnumRespEnumEnumItemDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrEnumRespEnumEnumItemName ... +type SearchCorehrEnumRespEnumEnumItemName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// searchCorehrEnumResp ... +type searchCorehrEnumResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCorehrEnumResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_batch_get.go b/api_corehr_job_batch_get.go new file mode 100644 index 00000000..fe9b6925 --- /dev/null +++ b/api_corehr_job_batch_get.go @@ -0,0 +1,126 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchGetCorehrJob 根据传入的职务ID或职务Code批量获取当前生效版本职务信息。 +// +// - 本接口会按照「职务资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 +// - 申请数据权限后须配置[职务可访问的数据范围], 否则接口无法正常查询数据。可以在「开发者后台 - 权限管理 - 可访问的数据范围」中配置。 +// - 职务ID和职务Code可一起使用, 之间为 AND 关系 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/batch_get +func (r *CoreHRService) BatchGetCorehrJob(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchGetCorehrJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCorehrJob mock enable") + return r.cli.mock.mockCoreHRBatchGetCorehrJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchGetCorehrJob", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/batch_get", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchGetCorehrJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchGetCorehrJob mock CoreHRBatchGetCorehrJob method +func (r *Mock) MockCoreHRBatchGetCorehrJob(f func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error)) { + r.mockCoreHRBatchGetCorehrJob = f +} + +// UnMockCoreHRBatchGetCorehrJob un-mock CoreHRBatchGetCorehrJob method +func (r *Mock) UnMockCoreHRBatchGetCorehrJob() { + r.mockCoreHRBatchGetCorehrJob = nil +} + +// BatchGetCorehrJobReq ... +type BatchGetCorehrJobReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + JobIDs []string `json:"job_ids,omitempty"` // 职务 ID 列表。职务ID列表和职务 Code 列表至少有一项有值, 否则接口将调用失败。示例值: ["1522315"] 长度范围: `0` ~ `100` + JobCodes []string `json:"job_codes,omitempty"` // 职务 Code 列表。职务ID列表和职务 Code 列表至少有一项有值, 否则接口将调用失败。示例值: ["1332715"] 长度范围: `0` ~ `100` + Fields []string `json:"fields,omitempty"` // 需要查询的字段列表, 默认返回id。可选以下预置字段及自定义字段: 可选值有: "job_name": 名称- "code": 编码- "active": 启用状态- "description": 描述- "job_title": 职务头衔- "pathway": 通道ID- "working_hours_type": 工时制度- "job_level": 关联的职级- "job_family": 关联的序列- "effective_date": 当前版本生效日期- "expiration_date": 当前版本失效日期- "created_time": 创建时间- "updated_time": 更新时间- "created_by": 创建人- "updated_by": 更新人- "custom_fields": 自定义字段(需传入具体的"custom_api_name")详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c"示例值: ["job_name"] 长度范围: `0` ~ `100` +} + +// BatchGetCorehrJobResp ... +type BatchGetCorehrJobResp struct { + Items []*BatchGetCorehrJobRespItem `json:"items,omitempty"` // 查询的职务信息 +} + +// BatchGetCorehrJobRespItem ... +type BatchGetCorehrJobRespItem struct { + ID string `json:"id,omitempty"` // 职务ID + Code string `json:"code,omitempty"` // 编码 + Name []*BatchGetCorehrJobRespItemName `json:"name,omitempty"` // 名称 + Description []*BatchGetCorehrJobRespItemDescription `json:"description,omitempty"` // 描述 + Active bool `json:"active,omitempty"` // 启用状态, true为启用, false为停用 + JobTitle []*BatchGetCorehrJobRespItemJobTitle `json:"job_title,omitempty"` // 职务头衔 + PathwayID string `json:"pathway_id,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) + JobFamilyIDList []string `json:"job_family_id_list,omitempty"` // 关联的序列ID列表- 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 + JobLevelIDList []string `json:"job_level_id_list,omitempty"` // 关联的职级ID列表- 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情字段权限要求: 获取职务中的职级信息 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 枚举值及详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得 + EffectiveTime string `json:"effective_time,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 + ExpirationTime string `json:"expiration_time,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 + CustomFields []*BatchGetCorehrJobRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段, 格式参考: [【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)岗位、职务、自定义组织模块 + CreatedBy string `json:"created_by,omitempty"` // 创建人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取 + CreatedTime string `json:"created_time,omitempty"` // 当前版本创建日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 + UpdatedBy string `json:"updated_by,omitempty"` // 更新人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取 + UpdatedTime string `json:"updated_time,omitempty"` // 当前版本更新日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 +} + +// BatchGetCorehrJobRespItemCustomField ... +type BatchGetCorehrJobRespItemCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// BatchGetCorehrJobRespItemDescription ... +type BatchGetCorehrJobRespItemDescription struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchGetCorehrJobRespItemJobTitle ... +type BatchGetCorehrJobRespItemJobTitle struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchGetCorehrJobRespItemName ... +type BatchGetCorehrJobRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// batchGetCorehrJobResp ... +type batchGetCorehrJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCorehrJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_change_create_v2.go b/api_corehr_job_change_create_v2.go new file mode 100644 index 00000000..81e7a309 --- /dev/null +++ b/api_corehr_job_change_create_v2.go @@ -0,0 +1,293 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrJobChange 该接口用于发起员工异动(变更员工雇佣信息), 若发起成功, 会生成一条员工的异动数据 +// +// 本接口会产生事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) +// 该接口会按照应用拥有的「异动记录资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中申请了「异动记录资源」权限范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/create +// new doc: https://open.feishu.cn/document/corehr-v1/job_change/create-2 +func (r *CoreHRService) CreateCorehrJobChange(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrJobChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobChange mock enable") + return r.cli.mock.mockCoreHRCreateCorehrJobChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrJobChange", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_changes", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrJobChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrJobChange mock CoreHRCreateCorehrJobChange method +func (r *Mock) MockCoreHRCreateCorehrJobChange(f func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error)) { + r.mockCoreHRCreateCorehrJobChange = f +} + +// UnMockCoreHRCreateCorehrJobChange un-mock CoreHRCreateCorehrJobChange method +func (r *Mock) UnMockCoreHRCreateCorehrJobChange() { + r.mockCoreHRCreateCorehrJobChange = nil +} + +// CreateCorehrJobChangeReq ... +type CreateCorehrJobChangeReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + TransferMode int64 `json:"transfer_mode,omitempty"` // 异动方式示例值: 2可选值有: 直接异动(无审批)正常异动(完整流程) + EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, ID 类型与查询参数 user_id_type 的取值一致。- 当user_id_type=user_id时, 该字段取员工的user_id, 取值参考user_id_type部分。- 当user_id_type=people_corehr_id时, 则取该员工的人事雇佣ID, 可从[雇佣ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 不支持仅在特殊场景使用的异动类型, 如组织架构调整、职责转交和试用期转正, 不会校验是否停用。 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取示例值: "internal_transfer" + FlowID *string `json:"flow_id,omitempty"` // 关联流程唯一标识符, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取注意: 当transfer_mode(异动方式)为2时, 该字段为必填示例值: "people_6963913041981490725_6983885526583627531" + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 格式: "YYYY-MM-DD"示例值: "2022-03-01" + TransferInfo *CreateCorehrJobChangeReqTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息, 以下参数如不传, 无默认值, 代表对应数据无异动 + TransferKey *string `json:"transfer_key,omitempty"` // 异动记录标识符, 发起失败可以重新用此标志继续请求示例值: "transfer_3627531" + InitiatorID *string `json:"initiator_id,omitempty"` // 异动发起人 ID示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferReasonUniqueIdentifier *string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因唯一标识示例值: "involuntary_transfer" +} + +// CreateCorehrJobChangeReqTransferInfo ... +type CreateCorehrJobChangeReqTransferInfo struct { + Remark *string `json:"remark,omitempty"` // 备注示例值: "异动详情" + OfferInfo *string `json:"offer_info,omitempty"` // offer信息。格式为 json 转义: {\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}。resume_id 为投递ID示例值: "{\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}" + TargetDottedManagerClean *bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。示例值: false + ProbationExist *bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。示例值: true + TargetDepartment *string `json:"target_department,omitempty"` // 新部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" + TargetWorkLocation *string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" + TargetDirectManager *string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013619729281713671" + TargetDottedManager *string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013328578351842852" + TargetJob *string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469557836760606" + TargetJobFamily *string `json:"target_job_family,omitempty"` // 新序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" + TargetJobLevel *string `json:"target_job_level,omitempty"` // 新职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" + TargetWorkforceType *string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "7036268995372303885" + TargetEmployeeSubtype *string `json:"target_employee_subtype,omitempty"` // 新人员子类型, 请填与工作地点和人员类型匹配的人员子类型。示例值: "7036268995372303885" + TargetCompany *string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" + TargetContractNumber *string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55333" + TargetContractType *string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" + TargetDurationType *string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" + TargetSigningType *string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" + TargetContractStartDate *string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" + TargetContractEndDate *string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" + TargetWorkingHoursType *string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" + TargetWorkingCalendar *string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" + TargetProbationEndDate *string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" + TargetWeeklyWorkingHours *string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长。取值范围1-168, 单位是小时。示例值: "160" + TargetWorkShift *string `json:"target_work_shift,omitempty"` // 新排班示例值: "non_work_shift" + TargetCostCenterRates []*CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate `json:"target_cost_center_rates,omitempty"` // 新成本中心分摊方式 长度范围: `0` ~ `100` + TargetEmploymentChange *CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 + TargetJobGrade *string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" + TargetCompensationType *string `json:"target_compensation_type,omitempty"` // 新薪资类型示例值: "salary" + TargetServiceCompany *string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693368" + TargetPosition *string `json:"target_position,omitempty"` // 新岗位示例值: "7289005963599693367" + TargetSocialSecurityCity *string `json:"target_social_security_city,omitempty"` // 新社保城市示例值: "7289005963599693367" + IsTransferWithWorkforce *bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整示例值: false + TargetPathway *string `json:"target_pathway,omitempty"` // 新通道示例值: "7289005963599693368" +} + +// CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate ... +type CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 +} + +// CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange ... +type CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange struct { + RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" + SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" + EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "1111111" + CustomFields []*CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField ... +type CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识。可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")注意: 1.枚举字段值可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name示例值: "\"231\"" +} + +// CreateCorehrJobChangeResp ... +type CreateCorehrJobChangeResp struct { + JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id + Status string `json:"status,omitempty"` // 异动状态可选值有: 审批中审批通过已异动已拒绝已撤销无需审批 + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型 + TransferReasonUniqueIdentifier string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因 + ProcessID string `json:"process_id,omitempty"` // 异动流程 id + EffectiveDate string `json:"effective_date,omitempty"` // 生效时间 + CreatedTime string `json:"created_time,omitempty"` // 创建时间 + TransferInfo *CreateCorehrJobChangeRespTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 + IsAdjustSalary bool `json:"is_adjust_salary,omitempty"` // 是否调整薪酬字段权限要求: 获取异动单据是否调薪字段 + CustomFields []*CreateCorehrJobChangeRespCustomField `json:"custom_fields,omitempty"` // 异动自定义字段字段权限要求: 获取员工异动自定义字段信息 +} + +// CreateCorehrJobChangeRespCustomField ... +type CreateCorehrJobChangeRespCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCorehrJobChangeRespCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// CreateCorehrJobChangeRespCustomFieldName ... +type CreateCorehrJobChangeRespCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// CreateCorehrJobChangeRespTransferInfo ... +type CreateCorehrJobChangeRespTransferInfo struct { + Remark string `json:"remark,omitempty"` // 备注字段权限要求: 获取异动流程备注信息 + OfferInfo string `json:"offer_info,omitempty"` // offer信息 + TargetDottedManagerClean bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。 + ProbationExist bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。 + OriginalDepartment string `json:"original_department,omitempty"` // 原部门 + TargetDepartment string `json:"target_department,omitempty"` // 新部门 + OriginalWorkLocation string `json:"original_work_location,omitempty"` // 原工作地点 + TargetWorkLocation string `json:"target_work_location,omitempty"` // 新工作地点 + OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级 + TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级 + OriginalDottedManager string `json:"original_dotted_manager,omitempty"` // 原虚线上级 + TargetDottedManager string `json:"target_dotted_manager,omitempty"` // 新虚线上级 + OriginalJob string `json:"original_job,omitempty"` // 原职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + TargetJob string `json:"target_job,omitempty"` // 新职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + OriginalJobFamily string `json:"original_job_family,omitempty"` // 原序列 + TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列 + OriginalJobLevel string `json:"original_job_level,omitempty"` // 原级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + TargetJobLevel string `json:"target_job_level,omitempty"` // 新级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + OriginalWorkforceType string `json:"original_workforce_type,omitempty"` // 原人员类型 + TargetWorkforceType string `json:"target_workforce_type,omitempty"` // 新人员类型 + OriginalEmployeeSubtype string `json:"original_employee_subtype,omitempty"` // 原人员子类型 + TargetEmployeeSubtype string `json:"target_employee_subtype,omitempty"` // 新人员子类型 + OriginalCompany string `json:"original_company,omitempty"` // 原公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + TargetCompany string `json:"target_company,omitempty"` // 新公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + OriginalContractNumber string `json:"original_contract_number,omitempty"` // 原合同编号 + TargetContractNumber string `json:"target_contract_number,omitempty"` // 新合同编号 + OriginalContractType string `json:"original_contract_type,omitempty"` // 原合同类型 + TargetContractType string `json:"target_contract_type,omitempty"` // 新合同类型 + OriginalDurationType string `json:"original_duration_type,omitempty"` // 原期限类型 + TargetDurationType string `json:"target_duration_type,omitempty"` // 新期限类型 + OriginalSigningType string `json:"original_signing_type,omitempty"` // 原签订类型 + TargetSigningType string `json:"target_signing_type,omitempty"` // 新签订类型 + OriginalContractStartDate string `json:"original_contract_start_date,omitempty"` // 原合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractStartDate string `json:"target_contract_start_date,omitempty"` // 新合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalContractEndDate string `json:"original_contract_end_date,omitempty"` // 原合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractEndDate string `json:"target_contract_end_date,omitempty"` // 新合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalWorkingHoursType string `json:"original_working_hours_type,omitempty"` // 原工时制度 + TargetWorkingHoursType string `json:"target_working_hours_type,omitempty"` // 新工时制度 + OriginalWorkingCalendar string `json:"original_working_calendar,omitempty"` // 原工作日历 + TargetWorkingCalendar string `json:"target_working_calendar,omitempty"` // 新工作日历 + OriginalProbationEndDate string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期 + TargetProbationEndDate string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期 + OriginalWeeklyWorkingHours string `json:"original_weekly_working_hours,omitempty"` // 原周工作时长 + TargetWeeklyWorkingHours string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长 + OriginalWorkShift string `json:"original_work_shift,omitempty"` // 原排班 + TargetWorkShift string `json:"target_work_shift,omitempty"` // 新排班 + OriginalCostCenterRate []*CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 + TargetCostCenterRate []*CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 + OriginalEmploymentChange *CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange `json:"original_employment_change,omitempty"` // 原工作信息 + TargetEmploymentChange *CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 + OriginalJobGrade string `json:"original_job_grade,omitempty"` // 原职等字段权限要求(满足任一): 获取职等信息读写职等信息 + TargetJobGrade string `json:"target_job_grade,omitempty"` // 新职等字段权限要求(满足任一): 获取职等信息读写职等信息 + OriginalCompensationType string `json:"original_compensation_type,omitempty"` // 原薪资类型字段权限要求: 获取薪资类型 + TargetCompensationType string `json:"target_compensation_type,omitempty"` // 新薪资类型字段权限要求: 获取薪资类型 + OriginalServiceCompany string `json:"original_service_company,omitempty"` // 原任职公司字段权限要求: 获取任职公司 + TargetServiceCompany string `json:"target_service_company,omitempty"` // 新任职公司字段权限要求: 获取任职公司 + OriginalPosition string `json:"original_position,omitempty"` // 原岗位 + TargetPosition string `json:"target_position,omitempty"` // 新岗位 + OriginalSocialSecurityCity string `json:"original_social_security_city,omitempty"` // 原社保城市字段权限要求: 获取异动单据社保字段 + TargetSocialSecurityCity string `json:"target_social_security_city,omitempty"` // 新社保城市字段权限要求: 获取异动单据社保字段 + OriginalPathway string `json:"original_pathway,omitempty"` // 原通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + TargetPathway string `json:"target_pathway,omitempty"` // 新通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + IsTransferWithWorkforce bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整 +} + +// CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate ... +type CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) +} + +// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange ... +type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange struct { + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 + CustomFields []*CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 +} + +// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField ... +type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName ... +type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate ... +type CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) +} + +// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange ... +type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange struct { + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 + CustomFields []*CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 +} + +// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField ... +type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName ... +type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// createCorehrJobChangeResp ... +type createCorehrJobChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrJobChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_change_revoke.go b/api_corehr_job_change_revoke.go new file mode 100644 index 00000000..205024ea --- /dev/null +++ b/api_corehr_job_change_revoke.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrJobChangeRevoke 该接口用于撤销员工异动, 若发起成功, 会撤销一条已发起、待生效或已生效的异动数据, 同时产生相应的事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/events/updated)。该接口无法撤销批量发起的多人异动。使用时需指定操作人, 关联了流程的异动需要流程管理员和审批单管理员权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/revoke +// new doc: https://open.feishu.cn/document/corehr-v1/job_change/revoke +func (r *CoreHRService) CreateCorehrJobChangeRevoke(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrJobChangeRevoke != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobChangeRevoke mock enable") + return r.cli.mock.mockCoreHRCreateCorehrJobChangeRevoke(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrJobChangeRevoke", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_changes/:job_change_id/revoke", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrJobChangeRevokeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrJobChangeRevoke mock CoreHRCreateCorehrJobChangeRevoke method +func (r *Mock) MockCoreHRCreateCorehrJobChangeRevoke(f func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error)) { + r.mockCoreHRCreateCorehrJobChangeRevoke = f +} + +// UnMockCoreHRCreateCorehrJobChangeRevoke un-mock CoreHRCreateCorehrJobChangeRevoke method +func (r *Mock) UnMockCoreHRCreateCorehrJobChangeRevoke() { + r.mockCoreHRCreateCorehrJobChangeRevoke = nil +} + +// CreateCorehrJobChangeRevokeReq ... +type CreateCorehrJobChangeRevokeReq struct { + JobChangeID string `path:"job_change_id" json:"-"` // 异动id, [【搜索异动信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search) 获取ID示例值: "7402156992338658860" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OperatorID string `json:"operator_id,omitempty"` // 操作人id, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 获取ID。关联了流程的异动需要操作人有流程管理员和审批单管理员权限。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" +} + +// CreateCorehrJobChangeRevokeResp ... +type CreateCorehrJobChangeRevokeResp struct { + Result bool `json:"result,omitempty"` // 撤销结果 + Message string `json:"message,omitempty"` // 撤销信息 +} + +// createCorehrJobChangeRevokeResp ... +type createCorehrJobChangeRevokeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrJobChangeRevokeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_data_delete.go b/api_corehr_job_data_delete.go index 72eb5c71..6c41c2e9 100644 --- a/api_corehr_job_data_delete.go +++ b/api_corehr_job_data_delete.go @@ -64,7 +64,8 @@ type DeleteCoreHRJobDataReq struct { } // DeleteCoreHRJobDataResp ... -type DeleteCoreHRJobDataResp struct{} +type DeleteCoreHRJobDataResp struct { +} // deleteCoreHRJobDataResp ... type deleteCoreHRJobDataResp struct { diff --git a/api_corehr_job_delete.go b/api_corehr_job_delete.go index e555ecdd..a13ce3f6 100644 --- a/api_corehr_job_delete.go +++ b/api_corehr_job_delete.go @@ -65,7 +65,8 @@ type DeleteCoreHRJobReq struct { } // DeleteCoreHRJobResp ... -type DeleteCoreHRJobResp struct{} +type DeleteCoreHRJobResp struct { +} // deleteCoreHRJobResp ... type deleteCoreHRJobResp struct { diff --git a/api_corehr_job_family_delete.go b/api_corehr_job_family_delete.go index e38cb57c..407d706c 100644 --- a/api_corehr_job_family_delete.go +++ b/api_corehr_job_family_delete.go @@ -65,7 +65,8 @@ type DeleteCoreHRJobFamilyReq struct { } // DeleteCoreHRJobFamilyResp ... -type DeleteCoreHRJobFamilyResp struct{} +type DeleteCoreHRJobFamilyResp struct { +} // deleteCoreHRJobFamilyResp ... type deleteCoreHRJobFamilyResp struct { diff --git a/api_corehr_job_family_get_batch.go b/api_corehr_job_family_get_batch.go index 554b268e..0d775ae3 100644 --- a/api_corehr_job_family_get_batch.go +++ b/api_corehr_job_family_get_batch.go @@ -21,14 +21,9 @@ import ( "context" ) -// BatchGetCoreHRJobFamily 通过序列 ID 或序列 Code 批量查询当前生效版本序列的详情信息, 包括序列名称、启用状态、上级序列等。 -// -// - 如果你只需要单一序列查询场景, 建议通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取序列信息。 -// - 序列ID和序列Code可一起使用, 之间为 AND 关系 -// - 数据库主从延迟 2s 以内, 即: 直接创建序列后2s内调用此接口可能查询不到数据。 +// BatchGetCoreHRJobFamily 通过序列 ID 批量获取序列信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get -// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/batch_get func (r *CoreHRService) BatchGetCoreHRJobFamily(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) { if r.cli.mock.mockCoreHRBatchGetCoreHRJobFamily != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHRJobFamily mock enable") @@ -62,8 +57,7 @@ func (r *Mock) UnMockCoreHRBatchGetCoreHRJobFamily() { // BatchGetCoreHRJobFamilyReq ... type BatchGetCoreHRJobFamilyReq struct { - JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID列表。- 序列 ID 列表和序列 Code 列表至少有一项有值, 否则接口将调用失败。- 未设置时表示不筛选该条件- ID获取方式: 调用[【创建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列ID示例值: ["1554548"] 长度范围: `0` ~ `100` - JobFamilyCodes []string `json:"job_family_codes,omitempty"` // 序列 Code 列表。- 序列 ID 列表和序列 Code 列表至少有一项有值, 否则接口将调用失败。- 未设置时表示不筛选该条件- Code获取方式: 调用[【创建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列Code示例值: ["122348"] 长度范围: `0` ~ `100` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 示例值: ["1554548"], 长度范围: `1` ~ `100` } // BatchGetCoreHRJobFamilyResp ... @@ -75,22 +69,19 @@ type BatchGetCoreHRJobFamilyResp struct { type BatchGetCoreHRJobFamilyRespItem struct { JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID Name []*BatchGetCoreHRJobFamilyRespItemName `json:"name,omitempty"` // 名称 - Active bool `json:"active,omitempty"` // 启用状态, 启用为true, 停用为false - Selectable bool `json:"selectable,omitempty"` // 是否可被使用, true为可被使用, false为不可被使用 - ParentID string `json:"parent_id,omitempty"` // 上级序列 ID, 详细信息可通过[【查询单个序列】](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口查询获得(若查询的是一级序列, 则该字段不展示) - PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) - EffectiveTime string `json:"effective_time,omitempty"` // 生效时间, 返回格式: YYYY-MM-DD 00:00:00(最小单位到日) - ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间, 返回格式: YYYY-MM-DD 00:00:00(最小单位到日) - Code string `json:"code,omitempty"` // 编码 (不能与其他记录的编码重复) - Description []*BatchGetCoreHRJobFamilyRespItemDescription `json:"description,omitempty"` // 描述 - CustomFields []*BatchGetCoreHRJobFamilyRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段(该字段暂时不支持) + Active bool `json:"active,omitempty"` // 启用 + ParentID string `json:"parent_id,omitempty"` // 上级序列 + EffectiveTime string `json:"effective_time,omitempty"` // 生效时间 + ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间 + Code string `json:"code,omitempty"` // 编码 + CustomFields []*BatchGetCoreHRJobFamilyRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // BatchGetCoreHRJobFamilyRespItemCustomField ... type BatchGetCoreHRJobFamilyRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *BatchGetCoreHRJobFamilyRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型- 自定义字段详细见[【获取自定义字段列表】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) + Type int64 `json:"type,omitempty"` // 自定义字段类型 Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -100,22 +91,15 @@ type BatchGetCoreHRJobFamilyRespItemCustomFieldName struct { EnUs string `json:"en_us,omitempty"` // 英文 } -// BatchGetCoreHRJobFamilyRespItemDescription ... -type BatchGetCoreHRJobFamilyRespItemDescription struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - // BatchGetCoreHRJobFamilyRespItemName ... type BatchGetCoreHRJobFamilyRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 } // batchGetCoreHRJobFamilyResp ... type batchGetCoreHRJobFamilyResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCoreHRJobFamilyResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCoreHRJobFamilyResp `json:"data,omitempty"` } diff --git a/api_corehr_job_family_query_multi_timeline.go b/api_corehr_job_family_query_multi_timeline.go new file mode 100644 index 00000000..6dde1a5d --- /dev/null +++ b/api_corehr_job_family_query_multi_timeline.go @@ -0,0 +1,114 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobFamilyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本 +// +// - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) +// - 适用于需要回顾某段时间内对象版本变化的场景 +// 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/query_multi_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/query_multi_timeline +func (r *CoreHRService) QueryCorehrJobFamilyMultiTimeline(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobFamilyMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobFamilyMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobFamilyMultiTimeline(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobFamilyMultiTimeline", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_families/query_multi_timeline", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobFamilyMultiTimelineResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobFamilyMultiTimeline mock CoreHRQueryCorehrJobFamilyMultiTimeline method +func (r *Mock) MockCoreHRQueryCorehrJobFamilyMultiTimeline(f func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobFamilyMultiTimeline = f +} + +// UnMockCoreHRQueryCorehrJobFamilyMultiTimeline un-mock CoreHRQueryCorehrJobFamilyMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCorehrJobFamilyMultiTimeline() { + r.mockCoreHRQueryCorehrJobFamilyMultiTimeline = nil +} + +// QueryCorehrJobFamilyMultiTimelineReq ... +type QueryCorehrJobFamilyMultiTimelineReq struct { + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID。ID获取方式: 调用[【新建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【查询租户的序列信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` + StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)- start_date 不能大于 end_date- 必填字段, 无默认值示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)- 必填字段, 无默认值示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["job_family_name", "code", "active", "parent_job_family", "selectable", "pathway", "description", "effective_date", "expiration_date"]- 无默认值, 为空时只能查询到ID示例值: ["job_family_name"] 长度范围: `0` ~ `100` +} + +// QueryCorehrJobFamilyMultiTimelineResp ... +type QueryCorehrJobFamilyMultiTimelineResp struct { + Items []*QueryCorehrJobFamilyMultiTimelineRespItem `json:"items,omitempty"` // 序列信息 +} + +// QueryCorehrJobFamilyMultiTimelineRespItem ... +type QueryCorehrJobFamilyMultiTimelineRespItem struct { + JobFamilyVersionData []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData `json:"job_family_version_data,omitempty"` // 序列版本信息 +} + +// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData ... +type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData struct { + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID + JobFamilyVersionID string `json:"job_family_version_id,omitempty"` // 序列版本 ID + JobFamilyNames []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName `json:"job_family_names,omitempty"` // 序列名称 + EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + Active bool `json:"active,omitempty"` // 是否启用 + Descriptions []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Selectable bool `json:"selectable,omitempty"` // 是否可被使用, true为可被使用, false为不可被使用 + ParentJobFamilyID string `json:"parent_job_family_id,omitempty"` // 上级序列 ID, 详细信息可通过[【查询单个序列】](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口查询获得(若查询的是一级序列, 则该字段不展示) + PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) + Code string `json:"code,omitempty"` // 编码 +} + +// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription ... +type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName ... +type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrJobFamilyMultiTimelineResp ... +type queryCorehrJobFamilyMultiTimelineResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobFamilyMultiTimelineResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_family_query_recent_change.go b/api_corehr_job_family_query_recent_change.go new file mode 100644 index 00000000..4e7fdfe1 --- /dev/null +++ b/api_corehr_job_family_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobFamilyRecentChange 查询指定时间范围内当前生效信息发生变更的序列, 即只有序列前生效版本的生效时间在查询时间范围内, 才返回该序列id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建序列 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/query_recent_change +func (r *CoreHRService) QueryCorehrJobFamilyRecentChange(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobFamilyRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobFamilyRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobFamilyRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobFamilyRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_families/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobFamilyRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobFamilyRecentChange mock CoreHRQueryCorehrJobFamilyRecentChange method +func (r *Mock) MockCoreHRQueryCorehrJobFamilyRecentChange(f func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobFamilyRecentChange = f +} + +// UnMockCoreHRQueryCorehrJobFamilyRecentChange un-mock CoreHRQueryCorehrJobFamilyRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrJobFamilyRecentChange() { + r.mockCoreHRQueryCorehrJobFamilyRecentChange = nil +} + +// QueryCorehrJobFamilyRecentChangeReq ... +type QueryCorehrJobFamilyRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrJobFamilyRecentChangeResp ... +type QueryCorehrJobFamilyRecentChangeResp struct { + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedJobFamilyIDs []string `json:"deleted_job_family_ids,omitempty"` // 目标查询时间范围内被删除的序列列表, 该列表是 job_family_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的序列 IDs。- 由于对应的序列已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrJobFamilyRecentChangeResp ... +type queryCorehrJobFamilyRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobFamilyRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_get.go b/api_corehr_job_get.go index da5e60fd..305adc56 100644 --- a/api_corehr_job_get.go +++ b/api_corehr_job_get.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/get -// -// Deprecated func (r *CoreHRService) GetCoreHRJob(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRJob != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRJob mock enable") diff --git a/api_corehr_job_grade_create.go b/api_corehr_job_grade_create.go new file mode 100644 index 00000000..d8181cc7 --- /dev/null +++ b/api_corehr_job_grade_create.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrJobGrade 创建职等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/create +func (r *CoreHRService) CreateCorehrJobGrade(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobGrade mock enable") + return r.cli.mock.mockCoreHRCreateCorehrJobGrade(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrJobGrade", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrJobGradeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrJobGrade mock CoreHRCreateCorehrJobGrade method +func (r *Mock) MockCoreHRCreateCorehrJobGrade(f func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error)) { + r.mockCoreHRCreateCorehrJobGrade = f +} + +// UnMockCoreHRCreateCorehrJobGrade un-mock CoreHRCreateCorehrJobGrade method +func (r *Mock) UnMockCoreHRCreateCorehrJobGrade() { + r.mockCoreHRCreateCorehrJobGrade = nil +} + +// CreateCorehrJobGradeReq ... +type CreateCorehrJobGradeReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + GradeOrder int64 `json:"grade_order,omitempty"` // 职等数值示例值: 9999 取值范围: `0` ~ `99999` + Code *string `json:"code,omitempty"` // 编码示例值: "A01234" + Names []*CreateCorehrJobGradeReqName `json:"names,omitempty"` // 名称- 名称不能包含「/」「;」「;」「\」、「'」字符 长度范围: `0` ~ `2` + Descriptions []*CreateCorehrJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` +} + +// CreateCorehrJobGradeReqDescription ... +type CreateCorehrJobGradeReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// CreateCorehrJobGradeReqName ... +type CreateCorehrJobGradeReqName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// CreateCorehrJobGradeResp ... +type CreateCorehrJobGradeResp struct { + GradeID string `json:"grade_id,omitempty"` // 职等ID +} + +// createCorehrJobGradeResp ... +type createCorehrJobGradeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrJobGradeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_grade_delete.go b/api_corehr_job_grade_delete.go new file mode 100644 index 00000000..f6f20fa6 --- /dev/null +++ b/api_corehr_job_grade_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrJobGrade 删除职等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/delete +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/delete +func (r *CoreHRService) DeleteCorehrJobGrade(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrJobGrade mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrJobGrade(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrJobGrade", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/:job_grade_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrJobGradeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrJobGrade mock CoreHRDeleteCorehrJobGrade method +func (r *Mock) MockCoreHRDeleteCorehrJobGrade(f func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error)) { + r.mockCoreHRDeleteCorehrJobGrade = f +} + +// UnMockCoreHRDeleteCorehrJobGrade un-mock CoreHRDeleteCorehrJobGrade method +func (r *Mock) UnMockCoreHRDeleteCorehrJobGrade() { + r.mockCoreHRDeleteCorehrJobGrade = nil +} + +// DeleteCorehrJobGradeReq ... +type DeleteCorehrJobGradeReq struct { + JobGradeID string `path:"job_grade_id" json:"-"` // 需要删除的职等ID。ID获取方式: 调用[【创建职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create)[【查询租户的职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)等接口可以返回职等ID示例值: "1616161616" +} + +// DeleteCorehrJobGradeResp ... +type DeleteCorehrJobGradeResp struct { +} + +// deleteCorehrJobGradeResp ... +type deleteCorehrJobGradeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrJobGradeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_grade_query.go b/api_corehr_job_grade_query.go index 6cdb7c34..047ce8d5 100644 --- a/api_corehr_job_grade_query.go +++ b/api_corehr_job_grade_query.go @@ -23,7 +23,12 @@ import ( // QueryCoreHRJobGrade 查询职等的详细信息。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query +// - 每次最多传 100 个职等 ID 和 Code, 如果不传则默认无筛选条件, 返回全部列表 +// - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建职等后2s内调用此接口可能查询不到数据。 +// - 所有筛选项可一起使用, 之间为 AND 关系 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/query func (r *CoreHRService) QueryCoreHRJobGrade(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) { if r.cli.mock.mockCoreHRQueryCoreHRJobGrade != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobGrade mock enable") @@ -57,11 +62,11 @@ func (r *Mock) UnMockCoreHRQueryCoreHRJobGrade() { // QueryCoreHRJobGradeReq ... type QueryCoreHRJobGradeReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - IDs []string `json:"ids,omitempty"` // 职等ID列表, 不填写则返回全部列表, 示例值: ["7140964208476371111"], 长度范围: `0` ~ `100` - Codes []string `json:"codes,omitempty"` // 职等code列表, 不填写则返回全部列表, 示例值: ["714096420847637222"], 长度范围: `0` ~ `100` - Active *bool `json:"active,omitempty"` // 是否启用, 不填写则返回全部列表, 示例值: true + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + IDs []string `json:"ids,omitempty"` // 职等 ID 列表, 不填写则返回全部列表示例值: ["7140964208476371111"] 长度范围: `0` ~ `100` + Codes []string `json:"codes,omitempty"` // 职等 code 列表, 不填写则返回全部列表示例值: ["A1234"] 长度范围: `0` ~ `100` + Active *bool `json:"active,omitempty"` // 是否启用, 不填写则不作为过滤条件示例值: true } // QueryCoreHRJobGradeResp ... diff --git a/api_corehr_job_grade_query_recent_change.go b/api_corehr_job_grade_query_recent_change.go new file mode 100644 index 00000000..ff8228f1 --- /dev/null +++ b/api_corehr_job_grade_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobGradeRecentChange 查询指定时间范围内当前生效信息发生变更的职等, 即只有职等当前生效版本的生效时间在查询时间范围内, 才返回该地点id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建职等 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/query_recent_change +func (r *CoreHRService) QueryCorehrJobGradeRecentChange(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobGradeRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobGradeRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobGradeRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobGradeRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobGradeRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobGradeRecentChange mock CoreHRQueryCorehrJobGradeRecentChange method +func (r *Mock) MockCoreHRQueryCorehrJobGradeRecentChange(f func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobGradeRecentChange = f +} + +// UnMockCoreHRQueryCorehrJobGradeRecentChange un-mock CoreHRQueryCorehrJobGradeRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrJobGradeRecentChange() { + r.mockCoreHRQueryCorehrJobGradeRecentChange = nil +} + +// QueryCorehrJobGradeRecentChangeReq ... +type QueryCorehrJobGradeRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrJobGradeRecentChangeResp ... +type QueryCorehrJobGradeRecentChangeResp struct { + JobGradeIDs []string `json:"job_grade_ids,omitempty"` // 职等 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[【批量查询职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedJobGradeIDs []string `json:"deleted_job_grade_ids,omitempty"` // 目标查询时间范围内被删除的职等列表, 该列表是 job_grade_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职等 IDs。- 由于对应的职等已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrJobGradeRecentChangeResp ... +type queryCorehrJobGradeRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobGradeRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_grade_update.go b/api_corehr_job_grade_update.go new file mode 100644 index 00000000..169ad427 --- /dev/null +++ b/api_corehr_job_grade_update.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrJobGrade 更新职等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/patch +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/patch +func (r *CoreHRService) UpdateCorehrJobGrade(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrJobGrade mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrJobGrade(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrJobGrade", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/:job_grade_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrJobGradeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrJobGrade mock CoreHRUpdateCorehrJobGrade method +func (r *Mock) MockCoreHRUpdateCorehrJobGrade(f func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error)) { + r.mockCoreHRUpdateCorehrJobGrade = f +} + +// UnMockCoreHRUpdateCorehrJobGrade un-mock CoreHRUpdateCorehrJobGrade method +func (r *Mock) UnMockCoreHRUpdateCorehrJobGrade() { + r.mockCoreHRUpdateCorehrJobGrade = nil +} + +// UpdateCorehrJobGradeReq ... +type UpdateCorehrJobGradeReq struct { + JobGradeID string `path:"job_grade_id" json:"-"` // 职等ID。ID获取方式: 调用[【创建职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create)[【查询租户的职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)等接口可以返回职等ID示例值: "6862995757234914824" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + GradeOrder *int64 `json:"grade_order,omitempty"` // 职等数值示例值: 9999 取值范围: `0` ~ `99999` + Code *string `json:"code,omitempty"` // 编码示例值: "A01234" + Names []*UpdateCorehrJobGradeReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCorehrJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Active *bool `json:"active,omitempty"` // 启用示例值: true +} + +// UpdateCorehrJobGradeReqDescription ... +type UpdateCorehrJobGradeReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" +} + +// UpdateCorehrJobGradeReqName ... +type UpdateCorehrJobGradeReqName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" +} + +// UpdateCorehrJobGradeResp ... +type UpdateCorehrJobGradeResp struct { +} + +// updateCorehrJobGradeResp ... +type updateCorehrJobGradeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrJobGradeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_level_delete.go b/api_corehr_job_level_delete.go index cc1daf87..d06d09a0 100644 --- a/api_corehr_job_level_delete.go +++ b/api_corehr_job_level_delete.go @@ -65,7 +65,8 @@ type DeleteCoreHRJobLevelReq struct { } // DeleteCoreHRJobLevelResp ... -type DeleteCoreHRJobLevelResp struct{} +type DeleteCoreHRJobLevelResp struct { +} // deleteCoreHRJobLevelResp ... type deleteCoreHRJobLevelResp struct { diff --git a/api_corehr_job_level_query_recent_change.go b/api_corehr_job_level_query_recent_change.go new file mode 100644 index 00000000..4aa9514c --- /dev/null +++ b/api_corehr_job_level_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobLevelRecentChange 查询指定时间范围内当前生效信息发生变更的职级, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该职级id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建职级 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_level/query_recent_change +func (r *CoreHRService) QueryCorehrJobLevelRecentChange(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobLevelRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobLevelRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobLevelRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobLevelRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_levels/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobLevelRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobLevelRecentChange mock CoreHRQueryCorehrJobLevelRecentChange method +func (r *Mock) MockCoreHRQueryCorehrJobLevelRecentChange(f func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobLevelRecentChange = f +} + +// UnMockCoreHRQueryCorehrJobLevelRecentChange un-mock CoreHRQueryCorehrJobLevelRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrJobLevelRecentChange() { + r.mockCoreHRQueryCorehrJobLevelRecentChange = nil +} + +// QueryCorehrJobLevelRecentChangeReq ... +type QueryCorehrJobLevelRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrJobLevelRecentChangeResp ... +type QueryCorehrJobLevelRecentChangeResp struct { + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedJobLevelIDs []string `json:"deleted_job_level_ids,omitempty"` // 目标查询时间范围内被删除的职级列表, 该列表是 job_level_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职级 IDs。- 由于对应的职级已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrJobLevelRecentChangeResp ... +type queryCorehrJobLevelRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobLevelRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_list.go b/api_corehr_job_list.go index 0a768dc0..7cc23f6f 100644 --- a/api_corehr_job_list.go +++ b/api_corehr_job_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/list -// -// Deprecated func (r *CoreHRService) GetCoreHRJobList(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRJobList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRJobList mock enable") diff --git a/api_corehr_job_query_multi_timeline.go b/api_corehr_job_query_multi_timeline.go new file mode 100644 index 00000000..4530b05e --- /dev/null +++ b/api_corehr_job_query_multi_timeline.go @@ -0,0 +1,121 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// +// - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) +// 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/query_multi_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/query_multi_timeline +func (r *CoreHRService) QueryCorehrJobMultiTimeline(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobMultiTimeline(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobMultiTimeline", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/query_multi_timeline", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobMultiTimelineResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobMultiTimeline mock CoreHRQueryCorehrJobMultiTimeline method +func (r *Mock) MockCoreHRQueryCorehrJobMultiTimeline(f func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobMultiTimeline = f +} + +// UnMockCoreHRQueryCorehrJobMultiTimeline un-mock CoreHRQueryCorehrJobMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCorehrJobMultiTimeline() { + r.mockCoreHRQueryCorehrJobMultiTimeline = nil +} + +// QueryCorehrJobMultiTimelineReq ... +type QueryCorehrJobMultiTimelineReq struct { + JobIDs []string `json:"job_ids,omitempty"` // 职务 ID 列表- 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` + StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含), 注意事项: start_date 不能大于 end_date- 必填字段, 无默认值示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含), 注意事项: 必填字段, 无默认值示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["job_name", "code", "active", "parent_job", "description", "effective_date", "expiration_date", "job_title", "job_family", "job_level", "pathway", "working_hours_type"]注意事项: 为空时只能查询到ID示例值: ["job_name"] 长度范围: `0` ~ `100` +} + +// QueryCorehrJobMultiTimelineResp ... +type QueryCorehrJobMultiTimelineResp struct { + Items []*QueryCorehrJobMultiTimelineRespItem `json:"items,omitempty"` // 职务信息 +} + +// QueryCorehrJobMultiTimelineRespItem ... +type QueryCorehrJobMultiTimelineRespItem struct { + JobVersionData []*QueryCorehrJobMultiTimelineRespItemJobVersionData `json:"job_version_data,omitempty"` // 职务版本信息 +} + +// QueryCorehrJobMultiTimelineRespItemJobVersionData ... +type QueryCorehrJobMultiTimelineRespItemJobVersionData struct { + JobID string `json:"job_id,omitempty"` // 职务 ID + JobVersionID string `json:"job_version_id,omitempty"` // 职务版本 ID + JobNames []*QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName `json:"job_names,omitempty"` // 职务名称 + EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + Active bool `json:"active,omitempty"` // 是否启用 + Descriptions []*QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Code string `json:"code,omitempty"` // 编码 + JobTitles []*QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle `json:"job_titles,omitempty"` // 职务头衔 + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID- 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级ID- 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情字段权限要求: 获取职务中的职级信息 + PathwayID string `json:"pathway_id,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得 +} + +// QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription ... +type QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName ... +type QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle ... +type QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrJobMultiTimelineResp ... +type queryCorehrJobMultiTimelineResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobMultiTimelineResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_job_query_recent_change.go b/api_corehr_job_query_recent_change.go new file mode 100644 index 00000000..38ce3050 --- /dev/null +++ b/api_corehr_job_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrJobRecentChange 查询指定时间范围内当前生效信息发生变更的职务, 即只有职务当前生效版本的生效时间在查询时间范围内, 才返回该职务id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建职务 1月10日生效, 则1月10日凌晨 1点之后可查询到。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/query_recent_change +func (r *CoreHRService) QueryCorehrJobRecentChange(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrJobRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrJobRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrJobRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrJobRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrJobRecentChange mock CoreHRQueryCorehrJobRecentChange method +func (r *Mock) MockCoreHRQueryCorehrJobRecentChange(f func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrJobRecentChange = f +} + +// UnMockCoreHRQueryCorehrJobRecentChange un-mock CoreHRQueryCorehrJobRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrJobRecentChange() { + r.mockCoreHRQueryCorehrJobRecentChange = nil +} + +// QueryCorehrJobRecentChangeReq ... +type QueryCorehrJobRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"。- 限定查询范围在90天以内示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"。- 限定查询范围在90天以内示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrJobRecentChangeResp ... +type QueryCorehrJobRecentChangeResp struct { + JobIDs []string `json:"job_ids,omitempty"` // 职务ID 列表, 其中包含新建、更新以及删除的 ID 列表- 非删除的数据, 可通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get) 获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedJobIDs []string `json:"deleted_job_ids,omitempty"` // 目标查询时间范围内被删除的职务列表, 该列表是 job_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职务 IDs。- 由于对应的职务已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrJobRecentChangeResp ... +type queryCorehrJobRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrJobRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_leave_calendar_by_scope.go b/api_corehr_leave_calendar_by_scope.go new file mode 100644 index 00000000..ea60e82f --- /dev/null +++ b/api_corehr_leave_calendar_by_scope.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetCorehrLeaveCalendarByScope 根据日历的适用范围, 获取工作日历 ID。适用范围包含工作地点, 工时制度等。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/calendar_by_scope +// new doc: https://open.feishu.cn/document/corehr-v1/leave/calendar_by_scope +func (r *CoreHRService) GetCorehrLeaveCalendarByScope(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCorehrLeaveCalendarByScope != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrLeaveCalendarByScope mock enable") + return r.cli.mock.mockCoreHRGetCorehrLeaveCalendarByScope(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "GetCorehrLeaveCalendarByScope", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/calendar_by_scope", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getCorehrLeaveCalendarByScopeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRGetCorehrLeaveCalendarByScope mock CoreHRGetCorehrLeaveCalendarByScope method +func (r *Mock) MockCoreHRGetCorehrLeaveCalendarByScope(f func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error)) { + r.mockCoreHRGetCorehrLeaveCalendarByScope = f +} + +// UnMockCoreHRGetCorehrLeaveCalendarByScope un-mock CoreHRGetCorehrLeaveCalendarByScope method +func (r *Mock) UnMockCoreHRGetCorehrLeaveCalendarByScope() { + r.mockCoreHRGetCorehrLeaveCalendarByScope = nil +} + +// GetCorehrLeaveCalendarByScopeReq ... +type GetCorehrLeaveCalendarByScopeReq struct { + WkDepartmentID *string `query:"wk_department_id" json:"-"` // 用户所属部门的ID列表。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list)获取所属部门的 ID示例值: "6722331851580982798" + WkCountryRegionID *string `query:"wk_country_region_id" json:"-"` // 国家/地区 ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取所属国家/地区 ID示例值: "6722331851580982798" + WkEmployeeTypeID *string `query:"wk_employee_type_id" json:"-"` // 人员类型ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取所属人员类型ID示例值: "6722331851580982798" + WkWorkLocationID *string `query:"wk_work_location_id" json:"-"` // 工作地点ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取工作地点ID示例值: "6722331851580982798" + WkWorkingHoursTypeID *string `query:"wk_working_hours_type_id" json:"-"` // 工时制度ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取工时制度ID示例值: "6722331851124982728" + WkJobFamilyID *string `query:"wk_job_family_id" json:"-"` // 职务序列ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取职务序列ID。示例值: "8234534456354534546" + WkCompanyID *string `query:"wk_company_id" json:"-"` // 公司 ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list)获取公司 ID示例值: "6235435355464465434" +} + +// GetCorehrLeaveCalendarByScopeResp ... +type GetCorehrLeaveCalendarByScopeResp struct { + CalendarWkID string `json:"calendar_wk_id,omitempty"` // 工作日历id +} + +// getCorehrLeaveCalendarByScopeResp ... +type getCorehrLeaveCalendarByScopeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCorehrLeaveCalendarByScopeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_leave_granting_record_delete.go b/api_corehr_leave_granting_record_delete.go index 651cd41c..13c50e94 100644 --- a/api_corehr_leave_granting_record_delete.go +++ b/api_corehr_leave_granting_record_delete.go @@ -64,7 +64,8 @@ type DeleteCoreHRLeaveGrantingRecordReq struct { } // DeleteCoreHRLeaveGrantingRecordResp ... -type DeleteCoreHRLeaveGrantingRecordResp struct{} +type DeleteCoreHRLeaveGrantingRecordResp struct { +} // deleteCoreHRLeaveGrantingRecordResp ... type deleteCoreHRLeaveGrantingRecordResp struct { diff --git a/api_corehr_leave_work_calendar.go b/api_corehr_leave_work_calendar.go new file mode 100644 index 00000000..f90b87c2 --- /dev/null +++ b/api_corehr_leave_work_calendar.go @@ -0,0 +1,110 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrLeaveWorkCalendar 获取工作日历信息, 如名称, 状态等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar +// new doc: https://open.feishu.cn/document/corehr-v1/leave/work_calendar +func (r *CoreHRService) CreateCorehrLeaveWorkCalendar(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendar != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLeaveWorkCalendar mock enable") + return r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendar(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrLeaveWorkCalendar", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/work_calendar", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrLeaveWorkCalendarResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrLeaveWorkCalendar mock CoreHRCreateCorehrLeaveWorkCalendar method +func (r *Mock) MockCoreHRCreateCorehrLeaveWorkCalendar(f func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error)) { + r.mockCoreHRCreateCorehrLeaveWorkCalendar = f +} + +// UnMockCoreHRCreateCorehrLeaveWorkCalendar un-mock CoreHRCreateCorehrLeaveWorkCalendar method +func (r *Mock) UnMockCoreHRCreateCorehrLeaveWorkCalendar() { + r.mockCoreHRCreateCorehrLeaveWorkCalendar = nil +} + +// CreateCorehrLeaveWorkCalendarReq ... +type CreateCorehrLeaveWorkCalendarReq struct { + WkCalendarIDs []string `json:"wk_calendar_ids,omitempty"` // 工作日历ID列表, 第一次传入时可以传入空数组, 形如[]示例值: ["71369144159575915967136914415957591596"] + WkCalendarIDGt *string `json:"wk_calendar_id_gt,omitempty"` // 工作日历ID大于示例值: "7136914415957591596" + WkOption *CreateCorehrLeaveWorkCalendarReqWkOption `json:"wk_option,omitempty"` // 分页、排序等选项, 如未填写将赋默认值 + OnlyEnable *bool `json:"only_enable,omitempty"` // 是否只返回启用的工作日历。(暂不支持, 目前只返回启用状态的工作日历)示例值: true默认值: `true` +} + +// CreateCorehrLeaveWorkCalendarReqWkOption ... +type CreateCorehrLeaveWorkCalendarReqWkOption struct { + Count *bool `json:"count,omitempty"` // 是否返回符合条件的工作日历总数, 默认值为true示例值: false + Offset *int64 `json:"offset,omitempty"` // 分页查询的位移, 从0开始, 默认值为0示例值: 0 + Limit int64 `json:"limit,omitempty"` // 分页查询单次查询数量, 默认值为2000示例值: 20 取值范围: `1` ~ `2000` + SortOptions []*CreateCorehrLeaveWorkCalendarReqWkOptionSortOption `json:"sort_options,omitempty"` // 排序 长度范围: `0` ~ `50` +} + +// CreateCorehrLeaveWorkCalendarReqWkOptionSortOption ... +type CreateCorehrLeaveWorkCalendarReqWkOptionSortOption struct { + SortField *string `json:"sort_field,omitempty"` // 排序字段示例值: "wk_id" + SortOrder *int64 `json:"sort_order,omitempty"` // 排序顺序示例值: 0可选值有: 升序降序 取值范围: `0` ~ `1` + SortI18n *int64 `json:"sort_i18n,omitempty"` // 0=中文关键字;1=英文关键字;2=拼音示例值: 1可选值有: 中文关键字英文关键字拼音 取值范围: `0` ~ `2` + SortByStrandLength *bool `json:"sort_by_strand_length,omitempty"` // 按某个字段的层级深度排序示例值: false + SortByPinyin *bool `json:"sort_by_pinyin,omitempty"` // 是否按照拼音排序示例值: false + SortByEnumValueOrder *bool `json:"sort_by_enum_value_order,omitempty"` // 是否按照枚举类型 value_order 排序示例值: true +} + +// CreateCorehrLeaveWorkCalendarResp ... +type CreateCorehrLeaveWorkCalendarResp struct { + WorkCalendars []*CreateCorehrLeaveWorkCalendarRespWorkCalendar `json:"work_calendars,omitempty"` // 工作日历列表, 对应入参的wk_calendar_ids + Count int64 `json:"count,omitempty"` // 入参count=true, 则返回符合条件的工作日历总数 +} + +// CreateCorehrLeaveWorkCalendarRespWorkCalendar ... +type CreateCorehrLeaveWorkCalendarRespWorkCalendar struct { + CalendarID string `json:"calendar_id,omitempty"` // 工作日历ID + CalendarName *CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName `json:"calendar_name,omitempty"` // 工作日历名称 + Enable bool `json:"enable,omitempty"` // 工作日历是否启用 +} + +// CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName ... +type CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// createCorehrLeaveWorkCalendarResp ... +type createCorehrLeaveWorkCalendarResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrLeaveWorkCalendarResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_leave_work_calendar_date.go b/api_corehr_leave_work_calendar_date.go new file mode 100644 index 00000000..0a9cc029 --- /dev/null +++ b/api_corehr_leave_work_calendar_date.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrLeaveWorkCalendarDate 获取工作日历每一天的日期详情, 如日期、日期类型等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar_date +// new doc: https://open.feishu.cn/document/corehr-v1/leave/work_calendar_date +func (r *CoreHRService) CreateCorehrLeaveWorkCalendarDate(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendarDate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLeaveWorkCalendarDate mock enable") + return r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendarDate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrLeaveWorkCalendarDate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/work_calendar_date", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createCorehrLeaveWorkCalendarDateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrLeaveWorkCalendarDate mock CoreHRCreateCorehrLeaveWorkCalendarDate method +func (r *Mock) MockCoreHRCreateCorehrLeaveWorkCalendarDate(f func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error)) { + r.mockCoreHRCreateCorehrLeaveWorkCalendarDate = f +} + +// UnMockCoreHRCreateCorehrLeaveWorkCalendarDate un-mock CoreHRCreateCorehrLeaveWorkCalendarDate method +func (r *Mock) UnMockCoreHRCreateCorehrLeaveWorkCalendarDate() { + r.mockCoreHRCreateCorehrLeaveWorkCalendarDate = nil +} + +// CreateCorehrLeaveWorkCalendarDateReq ... +type CreateCorehrLeaveWorkCalendarDateReq struct { + WkCalendarIDs []string `json:"wk_calendar_ids,omitempty"` // 工作日历ID列表, 最多100;可以通过[获取工作日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar) 获取工作日历ID示例值: ["7390282135276635692"] 长度范围: `1` ~ `100` + Dates []string `json:"dates,omitempty"` // 日期, 格式: "2006-01-02", 最多50个;注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: ["2006-01-02"] 长度范围: `1` ~ `50` + BeginDate *string `json:"begin_date,omitempty"` // 日期范围-开始日期, 格式: "2006-01-02";需要和end_date一起使用;注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: "2006-01-02" + EndDate *string `json:"end_date,omitempty"` // 日期范围-结束日期(含), 格式: "2006-01-02";需要和begin_date一起使用示例值: "2006-01-02" + Offset *int64 `json:"offset,omitempty"` // 分页示例值: 0 + Limit *int64 `json:"limit,omitempty"` // 分页大小示例值: 10 + IDs []string `json:"ids,omitempty"` // 日期id, 可使用响应体中的data.calendar_dates.id注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: ["7390282135276635692"] 长度范围: `0` ~ `1000` +} + +// CreateCorehrLeaveWorkCalendarDateResp ... +type CreateCorehrLeaveWorkCalendarDateResp struct { + CalendarDates []*CreateCorehrLeaveWorkCalendarDateRespCalendarDate `json:"calendar_dates,omitempty"` // 日期列表 +} + +// CreateCorehrLeaveWorkCalendarDateRespCalendarDate ... +type CreateCorehrLeaveWorkCalendarDateRespCalendarDate struct { + CalendarID string `json:"calendar_id,omitempty"` // 工作日历ID + Date string `json:"date,omitempty"` // 日期, 格式: "2006-01-02" + DateType string `json:"date_type,omitempty"` // 日期类型可选值有: 休息日公共假日工作日 + ID string `json:"id,omitempty"` // 日期id +} + +// createCorehrLeaveWorkCalendarDateResp ... +type createCorehrLeaveWorkCalendarDateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrLeaveWorkCalendarDateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_active.go b/api_corehr_location_active.go new file mode 100644 index 00000000..d6930d24 --- /dev/null +++ b/api_corehr_location_active.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrLocationActive 启用/停用地点 +// +// - 停用地点时请确认有无在职员工、异动单据、待入职单据关联此地点, 如有会导致停用失败。 +// - 若启/停用的生效时间当天不存在版本则会自动生成一个版本。 +// - 若启/停用的生效时间当天存在版本则会修改该版本。 +// - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/active +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/active +func (r *CoreHRService) CreateCorehrLocationActive(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrLocationActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLocationActive mock enable") + return r.cli.mock.mockCoreHRCreateCorehrLocationActive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrLocationActive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/active", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrLocationActiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrLocationActive mock CoreHRCreateCorehrLocationActive method +func (r *Mock) MockCoreHRCreateCorehrLocationActive(f func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error)) { + r.mockCoreHRCreateCorehrLocationActive = f +} + +// UnMockCoreHRCreateCorehrLocationActive un-mock CoreHRCreateCorehrLocationActive method +func (r *Mock) UnMockCoreHRCreateCorehrLocationActive() { + r.mockCoreHRCreateCorehrLocationActive = nil +} + +// CreateCorehrLocationActiveReq ... +type CreateCorehrLocationActiveReq struct { + LocationID string `json:"location_id,omitempty"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: "1616161616" + EffectiveTime string `json:"effective_time,omitempty"` // 地点启用/停用生效日期- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01~9999-12-31- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version)示例值: "2020-01-01" + Active bool `json:"active,omitempty"` // 地点启用/停用状态- true 为启用- false 为停用示例值: true + OperationReason string `json:"operation_reason,omitempty"` // 操作原因示例值: "业务操作" +} + +// CreateCorehrLocationActiveResp ... +type CreateCorehrLocationActiveResp struct { +} + +// createCorehrLocationActiveResp ... +type createCorehrLocationActiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrLocationActiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_address_create.go b/api_corehr_location_address_create.go new file mode 100644 index 00000000..c8a43dbc --- /dev/null +++ b/api_corehr_location_address_create.go @@ -0,0 +1,108 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrLocationAddress 添加地点地址 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/create +func (r *CoreHRService) CreateCorehrLocationAddress(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLocationAddress mock enable") + return r.cli.mock.mockCoreHRCreateCorehrLocationAddress(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrLocationAddress", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrLocationAddressResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrLocationAddress mock CoreHRCreateCorehrLocationAddress method +func (r *Mock) MockCoreHRCreateCorehrLocationAddress(f func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error)) { + r.mockCoreHRCreateCorehrLocationAddress = f +} + +// UnMockCoreHRCreateCorehrLocationAddress un-mock CoreHRCreateCorehrLocationAddress method +func (r *Mock) UnMockCoreHRCreateCorehrLocationAddress() { + r.mockCoreHRCreateCorehrLocationAddress = nil +} + +// CreateCorehrLocationAddressReq ... +type CreateCorehrLocationAddressReq struct { + LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 + NeedCustomLatinAddress *bool `query:"need_custom_latin_address" json:"-"` // 是否需要自定义传入国际化拉丁语系地址。如果传入true能够自定义传入address_line_xx的值, 否则address_line_xx跟随local_address_line_xx的值示例值: true + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID- 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + RegionID string `json:"region_id,omitempty"` // 主要行政区 ID- 可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326264296474119" + CityID string `json:"city_id,omitempty"` // 城市ID。- 详情调用[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取示例值: "6863333555859097096" + DistinctID string `json:"distinct_id,omitempty"` // 区/县ID- 详情可通过[【查询区县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口获取示例值: "6863333556291110408" + AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" + AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" + AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" + AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" + AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" + AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" + AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" + AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" + AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []*CreateCorehrLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` + IsPrimary *bool `json:"is_primary,omitempty"` // 是否主要地址, 一个地点只能存在一个主要地址, 添加主要地址会将取消原主要地址- true 表示地址是主要地址- false 表示地址不是主要地址示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否公开地址- true 表示地址是公开地址- false 表示地址不是公开地址示例值: true +} + +// CreateCorehrLocationAddressReqAddressType ... +type CreateCorehrLocationAddressReqAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// CreateCorehrLocationAddressResp ... +type CreateCorehrLocationAddressResp struct { + AddressID string `json:"address_id,omitempty"` // 地址 ID +} + +// createCorehrLocationAddressResp ... +type createCorehrLocationAddressResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrLocationAddressResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_address_delete.go b/api_corehr_location_address_delete.go new file mode 100644 index 00000000..c91532f6 --- /dev/null +++ b/api_corehr_location_address_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrLocationAddress 删除地点地址 +// +// 删除地点地址时请确认是否为主要地址或是否为最后一个地址, 如有会导致删除失败。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/delete +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/delete +func (r *CoreHRService) DeleteCorehrLocationAddress(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrLocationAddress mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrLocationAddress(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrLocationAddress", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses/:address_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrLocationAddressResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrLocationAddress mock CoreHRDeleteCorehrLocationAddress method +func (r *Mock) MockCoreHRDeleteCorehrLocationAddress(f func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error)) { + r.mockCoreHRDeleteCorehrLocationAddress = f +} + +// UnMockCoreHRDeleteCorehrLocationAddress un-mock CoreHRDeleteCorehrLocationAddress method +func (r *Mock) UnMockCoreHRDeleteCorehrLocationAddress() { + r.mockCoreHRDeleteCorehrLocationAddress = nil +} + +// DeleteCorehrLocationAddressReq ... +type DeleteCorehrLocationAddressReq struct { + LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" + AddressID string `path:"address_id" json:"-"` // 地址 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)[【添加地点地址】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create)等接口可以返回地址 ID示例值: "1515151515" +} + +// DeleteCorehrLocationAddressResp ... +type DeleteCorehrLocationAddressResp struct { +} + +// deleteCorehrLocationAddressResp ... +type deleteCorehrLocationAddressResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrLocationAddressResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_address_update.go b/api_corehr_location_address_update.go new file mode 100644 index 00000000..7dde96fa --- /dev/null +++ b/api_corehr_location_address_update.go @@ -0,0 +1,108 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrLocationAddress 更新地点地址 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/patch +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/patch +func (r *CoreHRService) UpdateCorehrLocationAddress(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrLocationAddress mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrLocationAddress(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrLocationAddress", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses/:address_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrLocationAddressResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrLocationAddress mock CoreHRUpdateCorehrLocationAddress method +func (r *Mock) MockCoreHRUpdateCorehrLocationAddress(f func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error)) { + r.mockCoreHRUpdateCorehrLocationAddress = f +} + +// UnMockCoreHRUpdateCorehrLocationAddress un-mock CoreHRUpdateCorehrLocationAddress method +func (r *Mock) UnMockCoreHRUpdateCorehrLocationAddress() { + r.mockCoreHRUpdateCorehrLocationAddress = nil +} + +// UpdateCorehrLocationAddressReq ... +type UpdateCorehrLocationAddressReq struct { + LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" + AddressID string `path:"address_id" json:"-"` // 地址 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)[【添加地点地址】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create)等接口可以返回地址 ID示例值: "1515151515" + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 + NeedCustomLatinAddress *bool `query:"need_custom_latin_address" json:"-"` // 是否需要自定义传入国际化拉丁语系地址。如果传入true能够自定义传入address_line_xx的值, 否则address_line_xx跟随local_address_line_xx的值示例值: true + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家 / 地区 ID- 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区 ID- 可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326264296474119" + CityID *string `json:"city_id,omitempty"` // 城市ID。- 详情调用[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取示例值: "6863333555859097096" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县ID- 详情可通过[【查询区县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口获取示例值: "6863333556291110408" + AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" + AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" + AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" + AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" + AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" + AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" + AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" + AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" + AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []*UpdateCorehrLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` + IsPrimary *bool `json:"is_primary,omitempty"` // 是否主要地址, 一个地点只能存在一个主要地址, 更新地址为主要地址会取消原主要地址, 无法更新主要地址为非主要地址- true 表示地址是主要地址- false 表示地址不是主要地址示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否公开地址- true 表示地址是公开地址- false 表示地址不是公开地址示例值: true +} + +// UpdateCorehrLocationAddressReqAddressType ... +type UpdateCorehrLocationAddressReqAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// UpdateCorehrLocationAddressResp ... +type UpdateCorehrLocationAddressResp struct { +} + +// updateCorehrLocationAddressResp ... +type updateCorehrLocationAddressResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrLocationAddressResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_delete.go b/api_corehr_location_delete.go index 27a8c7bc..24590821 100644 --- a/api_corehr_location_delete.go +++ b/api_corehr_location_delete.go @@ -65,7 +65,8 @@ type DeleteCoreHRLocationReq struct { } // DeleteCoreHRLocationResp ... -type DeleteCoreHRLocationResp struct{} +type DeleteCoreHRLocationResp struct { +} // deleteCoreHRLocationResp ... type deleteCoreHRLocationResp struct { diff --git a/api_corehr_location_query_multi_timeline.go b/api_corehr_location_query_multi_timeline.go new file mode 100644 index 00000000..5562953e --- /dev/null +++ b/api_corehr_location_query_multi_timeline.go @@ -0,0 +1,186 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrLocationMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// +// - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) +// 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/query_multi_timeline +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/query_multi_timeline +func (r *CoreHRService) QueryCorehrLocationMultiTimeline(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrLocationMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrLocationMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCorehrLocationMultiTimeline(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrLocationMultiTimeline", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/query_multi_timeline", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrLocationMultiTimelineResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrLocationMultiTimeline mock CoreHRQueryCorehrLocationMultiTimeline method +func (r *Mock) MockCoreHRQueryCorehrLocationMultiTimeline(f func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCorehrLocationMultiTimeline = f +} + +// UnMockCoreHRQueryCorehrLocationMultiTimeline un-mock CoreHRQueryCorehrLocationMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCorehrLocationMultiTimeline() { + r.mockCoreHRQueryCorehrLocationMultiTimeline = nil +} + +// QueryCorehrLocationMultiTimelineReq ... +type QueryCorehrLocationMultiTimelineReq struct { + LocationIDs []string `json:"location_ids,omitempty"` // 地点ID。ID获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` + StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["location_name", "code", "active", "parent_location", "description", "effective_date", "expiration_date", "location_usage", "working_hours_type", "locale", "time_zone", "display_language", "address"]示例值: ["location_name"] 长度范围: `0` ~ `100` +} + +// QueryCorehrLocationMultiTimelineResp ... +type QueryCorehrLocationMultiTimelineResp struct { + Items []*QueryCorehrLocationMultiTimelineRespItem `json:"items,omitempty"` // 地点信息 +} + +// QueryCorehrLocationMultiTimelineRespItem ... +type QueryCorehrLocationMultiTimelineRespItem struct { + LocationVersionData []*QueryCorehrLocationMultiTimelineRespItemLocationVersionData `json:"location_version_data,omitempty"` // 地点版本信息 + Address []*QueryCorehrLocationMultiTimelineRespItemAddres `json:"address,omitempty"` // 地址信息 +} + +// QueryCorehrLocationMultiTimelineRespItemAddres ... +type QueryCorehrLocationMultiTimelineRespItemAddres struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID。ID获取方式: 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取 + RegionID string `json:"region_id,omitempty"` // 主要行政区 ID。ID获取方式: 可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取 + CityID string `json:"city_id,omitempty"` // 城市ID。ID获取方式: 调用[【查询城市信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)接口可以返回城市ID + DistinctID string `json:"distinct_id,omitempty"` // 区县ID。ID获取方式: 调用[【查询区县信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)接口可以返回区县ID + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrLocationMultiTimelineRespItemAddresAddressType `json:"address_type_list,omitempty"` // 地址类型 - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=address;custom_api_name=address_type + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 +} + +// QueryCorehrLocationMultiTimelineRespItemAddresAddressType ... +type QueryCorehrLocationMultiTimelineRespItemAddresAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay ... +type QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionData ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionData struct { + LocationID string `json:"location_id,omitempty"` // 地点ID + LocationVersionID string `json:"location_version_id,omitempty"` // 地点版本ID + LocationNames []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName `json:"location_names,omitempty"` // 地点名称 + ParentLocationID string `json:"parent_location_id,omitempty"` // 上级地点ID- 若查询的是一级地点, 则该字段不展示 + EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) + Active bool `json:"active,omitempty"` // 是否启用 + Descriptions []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Code string `json:"code,omitempty"` // 编码 + LocationUsages []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage `json:"location_usages,omitempty"` // 地点用途, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage + Locale *QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale `json:"locale,omitempty"` // 区域设置ID - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale + TimeZoneID string `json:"time_zone_id,omitempty"` // 时区 ID - 详细信息可通过[【查询时区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-time_zone/search)接口查询获得。 + DisplayLanguageID string `json:"display_language_id,omitempty"` // 默认语言 ID - 详细信息可通过[【查询语言信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-language/search)。 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID- 详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list) +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay ... +type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrLocationMultiTimelineResp ... +type queryCorehrLocationMultiTimelineResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrLocationMultiTimelineResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_query_recent_change.go b/api_corehr_location_query_recent_change.go new file mode 100644 index 00000000..b125b5fd --- /dev/null +++ b/api_corehr_location_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrLocationRecentChange 查询指定时间范围内当前生效信息发生变更的地点, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该地点id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建地点 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/query_recent_change +func (r *CoreHRService) QueryCorehrLocationRecentChange(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrLocationRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrLocationRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrLocationRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrLocationRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrLocationRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrLocationRecentChange mock CoreHRQueryCorehrLocationRecentChange method +func (r *Mock) MockCoreHRQueryCorehrLocationRecentChange(f func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrLocationRecentChange = f +} + +// UnMockCoreHRQueryCorehrLocationRecentChange un-mock CoreHRQueryCorehrLocationRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrLocationRecentChange() { + r.mockCoreHRQueryCorehrLocationRecentChange = nil +} + +// QueryCorehrLocationRecentChangeReq ... +type QueryCorehrLocationRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrLocationRecentChangeResp ... +type QueryCorehrLocationRecentChangeResp struct { + LocationIDs []string `json:"location_ids,omitempty"` // 地点 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedLocationIDs []string `json:"deleted_location_ids,omitempty"` // 目标查询时间范围内被删除的地点列表, 该列表是 location_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的部门 IDs。- 由于对应的地点已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrLocationRecentChangeResp ... +type queryCorehrLocationRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrLocationRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_location_update.go b/api_corehr_location_update.go new file mode 100644 index 00000000..afcff5ff --- /dev/null +++ b/api_corehr_location_update.go @@ -0,0 +1,111 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrLocation 更新地点 +// +// - 如果传入生效时间当天不存在版本则会自动生成一个版本。 +// - 如果传入生效时间当天存在版本则会修改该版本。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/patch +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/patch +func (r *CoreHRService) UpdateCorehrLocation(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrLocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrLocation mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrLocation(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrLocation", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrLocationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrLocation mock CoreHRUpdateCorehrLocation method +func (r *Mock) MockCoreHRUpdateCorehrLocation(f func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error)) { + r.mockCoreHRUpdateCorehrLocation = f +} + +// UnMockCoreHRUpdateCorehrLocation un-mock CoreHRUpdateCorehrLocation method +func (r *Mock) UnMockCoreHRUpdateCorehrLocation() { + r.mockCoreHRUpdateCorehrLocation = nil +} + +// UpdateCorehrLocationReq ... +type UpdateCorehrLocationReq struct { + LocationID string `path:"location_id" json:"-"` // 地点ID。ID获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: "1616161616" + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 + ParentID *string `json:"parent_id,omitempty"` // 上级地点, 在创建场景下, 该字段必填, 枚举值及详细信息可通过[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)查询获得示例值: "4719168654814483759" + Names []*UpdateCorehrLocationReqName `json:"names,omitempty"` // 地点名称- 名称不能包含「/」「;」「;」「\」「'」字符- 地点中英文名称会有全局唯一校验 长度范围: `0` ~ `5` + Active *bool `json:"active,omitempty"` // 地点启用/停用状态- true 为启用- false 为停用示例值: true + EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01~9999-12-31- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version)示例值: "2020-05-02" + Code *string `json:"code,omitempty"` // 地点编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" + Descriptions []*UpdateCorehrLocationReqDescription `json:"descriptions,omitempty"` // 地点描述 长度范围: `0` ~ `5` + LocationUsages []*UpdateCorehrLocationReqLocationUsage `json:"location_usages,omitempty"` // 地点用途 ID, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage 长度范围: `0` ~ `10` + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 枚举值及详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得示例值: "4690238309151997779" + Locale *UpdateCorehrLocationReqLocale `json:"locale,omitempty"` // 区域设置 ID, 枚举值及详细信息可通过[【批量查询枚举信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale示例值: zh_cn + TimeZoneID *string `json:"time_zone_id,omitempty"` // 时区 ID示例值: "123456789" + DisplayLanguageID *string `json:"display_language_id,omitempty"` // 默认显示语言 ID示例值: "123456789" +} + +// UpdateCorehrLocationReqDescription ... +type UpdateCorehrLocationReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 描述内容示例值: "中文示例" +} + +// UpdateCorehrLocationReqLocale ... +type UpdateCorehrLocationReqLocale struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// UpdateCorehrLocationReqLocationUsage ... +type UpdateCorehrLocationReqLocationUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" +} + +// UpdateCorehrLocationReqName ... +type UpdateCorehrLocationReqName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称内容示例值: "中文示例" +} + +// UpdateCorehrLocationResp ... +type UpdateCorehrLocationResp struct { +} + +// updateCorehrLocationResp ... +type updateCorehrLocationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrLocationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_national_id_type_delete.go b/api_corehr_national_id_type_delete.go index a536281e..cf67d6de 100644 --- a/api_corehr_national_id_type_delete.go +++ b/api_corehr_national_id_type_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHRNationalIDTypeReq struct { } // DeleteCoreHRNationalIDTypeResp ... -type DeleteCoreHRNationalIDTypeResp struct{} +type DeleteCoreHRNationalIDTypeResp struct { +} // deleteCoreHRNationalIDTypeResp ... type deleteCoreHRNationalIDTypeResp struct { diff --git a/api_corehr_nationality_search.go b/api_corehr_nationality_search.go index bc4bda82..3da861ce 100644 --- a/api_corehr_nationality_search.go +++ b/api_corehr_nationality_search.go @@ -21,10 +21,9 @@ import ( "context" ) -// SearchCoreHRNationality 根据国籍 ID、国家 ID, 查询国籍信息 +// SearchCoreHRNationality 根据国家 ID、国籍 ID 查询国籍信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search -// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-nationality/search func (r *CoreHRService) SearchCoreHRNationality(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRNationality != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRNationality mock enable") @@ -58,41 +57,40 @@ func (r *Mock) UnMockCoreHRSearchCoreHRNationality() { // SearchCoreHRNationalityReq ... type SearchCoreHRNationalityReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 7075702743846897196 - NationalityIDList []string `json:"nationality_id_list,omitempty"` // 国籍 ID 列表, 可从[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口返回的 `person_info.nationality_id_v2` 等字段中获取, 不填则返回全部示例值: ["7075702743923361324"] 最大长度: `100` - CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 国家 / 地区 ID 列表, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询, 不填则返回全部示例值: ["6862995791674344967"] 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 + NationalityIDList []string `json:"nationality_id_list,omitempty"` // 国籍 ID 列表, 示例值: ["6891251722631891445"], 最大长度: `100` + CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 国家 / 地区 ID 列表, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询, 示例值: ["6891251722631891441"], 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` } // SearchCoreHRNationalityResp ... type SearchCoreHRNationalityResp struct { - Items []*SearchCoreHRNationalityRespItem `json:"items,omitempty"` // 查询到的国籍列表 + Items []*SearchCoreHRNationalityRespItem `json:"items,omitempty"` // 查询的国籍信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } // SearchCoreHRNationalityRespItem ... type SearchCoreHRNationalityRespItem struct { - NationalityID string `json:"nationality_id,omitempty"` // 国籍 ID, 对应[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口返回的 `person_info.nationality_id_v2` 字段 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 ID(对应其他查询结果的 nationality_id_v2 字段) Name []*SearchCoreHRNationalityRespItemName `json:"name,omitempty"` // 名称 - Alpha2Code string `json:"alpha_2_code,omitempty"` // 国家/地区两位字母编码(ISO 3166-1) - Alpha3Code string `json:"alpha_3_code,omitempty"` // 国家/地区三位字母编码(ISO 3166-1) + Alpha2Code string `json:"alpha_2_code,omitempty"` // 二字码 + Alpha3Code string `json:"alpha_3_code,omitempty"` // 三字码 NumericCode int64 `json:"numeric_code,omitempty"` // 数字代码 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询 - Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 + Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 } // SearchCoreHRNationalityRespItemName ... type SearchCoreHRNationalityRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 } // searchCoreHRNationalityResp ... type searchCoreHRNationalityResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRNationalityResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRNationalityResp `json:"data,omitempty"` } diff --git a/api_corehr_offboarding_create.go b/api_corehr_offboarding_create.go index 15359b79..8b6b7c0b 100644 --- a/api_corehr_offboarding_create.go +++ b/api_corehr_offboarding_create.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/submit // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/offboarding/submit -// -// Deprecated func (r *CoreHRService) CreateCoreHROffboarding(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) { if r.cli.mock.mockCoreHRCreateCoreHROffboarding != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHROffboarding mock enable") diff --git a/api_corehr_offboarding_edit.go b/api_corehr_offboarding_edit.go new file mode 100644 index 00000000..b6d69414 --- /dev/null +++ b/api_corehr_offboarding_edit.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrOffboardingEdit 该接口用于编辑飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持的字段包括离职日期、离职原因、离职申请发起时间和离职申请审批通过时间等等, 同时也支持编辑离职的自定义字段(附件字段除外)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// +// 注意: 该接口会按照应用拥有的「员工数据」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请了「员工资源」权限范围。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/edit +// new doc: https://open.feishu.cn/document/corehr-v1/offboarding/edit +func (r *CoreHRService) CreateCorehrOffboardingEdit(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrOffboardingEdit != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingEdit mock enable") + return r.cli.mock.mockCoreHRCreateCorehrOffboardingEdit(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrOffboardingEdit", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/edit", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrOffboardingEditResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrOffboardingEdit mock CoreHRCreateCorehrOffboardingEdit method +func (r *Mock) MockCoreHRCreateCorehrOffboardingEdit(f func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error)) { + r.mockCoreHRCreateCorehrOffboardingEdit = f +} + +// UnMockCoreHRCreateCorehrOffboardingEdit un-mock CoreHRCreateCorehrOffboardingEdit method +func (r *Mock) UnMockCoreHRCreateCorehrOffboardingEdit() { + r.mockCoreHRCreateCorehrOffboardingEdit = nil +} + +// CreateCorehrOffboardingEditReq ... +type CreateCorehrOffboardingEditReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录ID, 不允许为空。可以通过[搜索离职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/search)获取, 取值于接口返回的data > items > offboarding_id示例值: "7095671727698478604" + OperatorID *string `json:"operator_id,omitempty"` // 操作人雇佣 ID(employment_id), ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 为空时, 默认系统操作人示例值: "6982509313466189341" + UpdateData []*CreateCorehrOffboardingEditReqUpdateData `json:"update_data,omitempty"` // 编辑字段数据信息, 不允许为空。 长度范围: `0` ~ `10000` +} + +// CreateCorehrOffboardingEditReqUpdateData ... +type CreateCorehrOffboardingEditReqUpdateData struct { + FieldName string `json:"field_name,omitempty"` // 字段唯一标识(api_name)注意: 1.该字段取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中各字段的字段编码2.自定义字段也可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取3.不可编辑的字段api_name范围:wk_id-wk_tenant_id-employment-process_id-flow_id-node_id-initiator_id-status-checklist_status-checklist_process_id-type, hrbp_ids-hrbp_list-probation_id-wk_created_at-wk_created_by-wk_updated_at-wk_updated_by-wk_deleted_at-wk_is_deleted-noncompete_agreement_id-social_insurance_end_date-provident_fund_end_date-sign_type示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同, 例如:文本类型(1):"文本"-布尔类型(2):"true"-数字类型(3):"123"-单值枚举类型(4):"option_1"-多值枚举类型(4): "[\"option_1\", \"option_2\"]"-日期类型(7):"2024-06-30"注意: 1.枚举字段的枚举值取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 对应字段选项集的选项编码。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.人员字段目前只支持传入员工的雇佣ID。先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。4.暂不支持填写附件类型字段。示例值: "Sandy" +} + +// CreateCorehrOffboardingEditResp ... +type CreateCorehrOffboardingEditResp struct { + Data []*CreateCorehrOffboardingEditRespData `json:"data,omitempty"` // 编辑字段数据信息 +} + +// CreateCorehrOffboardingEditRespData ... +type CreateCorehrOffboardingEditRespData struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// createCorehrOffboardingEditResp ... +type createCorehrOffboardingEditResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrOffboardingEditResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_offboarding_revoke.go b/api_corehr_offboarding_revoke.go new file mode 100644 index 00000000..e1a331c9 --- /dev/null +++ b/api_corehr_offboarding_revoke.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrOffboardingRevoke 通过离职ID撤销飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// +// 注意: 该接口会限制应用拥有的「员工数据」的权限范围撤销离职信息, 请先在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请「员工资源」权限范围。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/revoke +// new doc: https://open.feishu.cn/document/corehr-v1/offboarding/revoke +func (r *CoreHRService) CreateCorehrOffboardingRevoke(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrOffboardingRevoke != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingRevoke mock enable") + return r.cli.mock.mockCoreHRCreateCorehrOffboardingRevoke(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrOffboardingRevoke", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/revoke", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrOffboardingRevokeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrOffboardingRevoke mock CoreHRCreateCorehrOffboardingRevoke method +func (r *Mock) MockCoreHRCreateCorehrOffboardingRevoke(f func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error)) { + r.mockCoreHRCreateCorehrOffboardingRevoke = f +} + +// UnMockCoreHRCreateCorehrOffboardingRevoke un-mock CoreHRCreateCorehrOffboardingRevoke method +func (r *Mock) UnMockCoreHRCreateCorehrOffboardingRevoke() { + r.mockCoreHRCreateCorehrOffboardingRevoke = nil +} + +// CreateCorehrOffboardingRevokeReq ... +type CreateCorehrOffboardingRevokeReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录ID, 不允许为空。可以通过[搜索离职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/search)获取, 取值于接口返回的data > items > offboarding_id示例值: "7095671727698478604" + OperatorID *string `json:"operator_id,omitempty"` // 操作人雇佣 ID(employment_id), ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 为空时, 默认系统操作人示例值: "6982509313466189341" +} + +// CreateCorehrOffboardingRevokeResp ... +type CreateCorehrOffboardingRevokeResp struct { +} + +// createCorehrOffboardingRevokeResp ... +type createCorehrOffboardingRevokeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrOffboardingRevokeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_offboarding_submit_v2.go b/api_corehr_offboarding_submit_v2.go new file mode 100644 index 00000000..0d43dc6a --- /dev/null +++ b/api_corehr_offboarding_submit_v2.go @@ -0,0 +1,105 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrOffboardingSubmitV2 该接口用于发起飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持填写离职日期、离职原因、屏蔽名单和自定义字段(附件字段除外)等。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// +// 注意, 与[操作员工离职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/submit)相比: +// 1、该接口会限制应用拥有的「员工数据」的权限范围发起离职信息, 请先在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请「员工资源」权限范围。 +// 2、该接口还支持发起离职审批流程。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/submit_v2 +// new doc: https://open.feishu.cn/document/corehr-v1/offboarding/submit_v2 +func (r *CoreHRService) CreateCorehrOffboardingSubmitV2(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrOffboardingSubmitV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingSubmitV2 mock enable") + return r.cli.mock.mockCoreHRCreateCorehrOffboardingSubmitV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrOffboardingSubmitV2", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/submit_v2", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrOffboardingSubmitV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrOffboardingSubmitV2 mock CoreHRCreateCorehrOffboardingSubmitV2 method +func (r *Mock) MockCoreHRCreateCorehrOffboardingSubmitV2(f func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error)) { + r.mockCoreHRCreateCorehrOffboardingSubmitV2 = f +} + +// UnMockCoreHRCreateCorehrOffboardingSubmitV2 un-mock CoreHRCreateCorehrOffboardingSubmitV2 method +func (r *Mock) UnMockCoreHRCreateCorehrOffboardingSubmitV2() { + r.mockCoreHRCreateCorehrOffboardingSubmitV2 = nil +} + +// CreateCorehrOffboardingSubmitV2Req ... +type CreateCorehrOffboardingSubmitV2Req struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OffboardingMode int64 `json:"offboarding_mode,omitempty"` // 离职方式示例值: 1可选值有: 直接离职发起离职审批 + EmploymentID string `json:"employment_id,omitempty"` // 离职员工 ID(employment_id)不允许为空。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。示例值: "6982509313466189342" + OffboardingDate string `json:"offboarding_date,omitempty"` // 离职日期, 不允许为空, 填写时需要符合YYYY-MM-DD的日期格式。注意: 按员工离职当天的工作地点时区24点生效。假设员工离职日期为2024-12-01, 如果员工在中国大陆, 则生效时间为东八区的2024-12-01 23:59:59。如果员工在华盛顿, 则生效时间为东八区的2024-12-02 12:59:59, 对应西五区的2024-12-01 23:59:59。示例值: "2022-05-18" + OffboardingReasonUniqueIdentifier string `json:"offboarding_reason_unique_identifier,omitempty"` // 离职原因, 不允许为空, 可通过接口[查询员工离职原因列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/query)获取。示例值: "reason_for_offboarding_option8" + OffboardingReasonExplanation *string `json:"offboarding_reason_explanation,omitempty"` // 离职原因说明, 选填, 最大长度6000。示例值: "离职原因说明" + InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID。这个发起人需要有飞书账号, 能够登录系统。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 1.只有发起人可以撤销流程2.为空时, 默认系统发起人示例值: "6982509313466189341" + AddBlockList *bool `json:"add_block_list,omitempty"` // 是否加入离职屏蔽名单注意: 1.取值为true时, 屏蔽原因(block_reason)为必填。2.取值为false时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。3.取值为空时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。4.操作离职时如果选择加入屏蔽名单, 只有当员工离职生效后才会进入到屏蔽名单。示例值: false + BlockReason *string `json:"block_reason,omitempty"` // 屏蔽原因注意: 1.该字段取值于 [人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 的屏蔽原因字段选项集。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.该字段是否必填取决于是否加入离职屏蔽名单(add_block_list)示例值: "红线" + BlockReasonExplanation *string `json:"block_reason_explanation,omitempty"` // 屏蔽原因说明, 选填, 最大长度6000。示例值: "xx 年 xx 月 xx 日因 xx 原因红线" + CustomFields []*CreateCorehrOffboardingSubmitV2ReqCustomField `json:"custom_fields,omitempty"` // 离职自定义字段。注意: 可填写的字段范围参考[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中的自定义字段 长度范围: `0` ~ `10000` + RetainAccount *bool `json:"retain_account,omitempty"` // 离职是否保留飞书账号示例值: false +} + +// CreateCorehrOffboardingSubmitV2ReqCustomField ... +type CreateCorehrOffboardingSubmitV2ReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段唯一标识注意: 1.该字段取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中各字段的字段编码2.该字段也可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "custom_field_1__c" + Value string `json:"value,omitempty"` // 自定义字段值, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")。注意: 1.枚举字段的枚举值取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 对应字段选项集的选项编码。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.人员字段目前只支持传入员工的雇佣ID。员工的人事雇佣ID需要先获取User ID后, 通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取4.暂不支持填写附件类型字段。示例值: "Sandy" +} + +// CreateCorehrOffboardingSubmitV2Resp ... +type CreateCorehrOffboardingSubmitV2Resp struct { + OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录 id + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id + OffboardingReasonUniqueIdentifier string `json:"offboarding_reason_unique_identifier,omitempty"` // 离职原因 + OffboardingDate string `json:"offboarding_date,omitempty"` // 离职日期 + OffboardingReasonExplanation string `json:"offboarding_reason_explanation,omitempty"` // 离职原因说明 + AddBlockList bool `json:"add_block_list,omitempty"` // 是否加入离职屏蔽名单 + BlockReason string `json:"block_reason,omitempty"` // 屏蔽原因 + BlockReasonExplanation string `json:"block_reason_explanation,omitempty"` // 屏蔽原因说明 + CreatedTime string `json:"created_time,omitempty"` // 创建时间 + RetainAccount bool `json:"retain_account,omitempty"` // 离职是否保留飞书账号 +} + +// createCorehrOffboardingSubmitV2Resp ... +type createCorehrOffboardingSubmitV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrOffboardingSubmitV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pathway_active.go b/api_corehr_pathway_active.go new file mode 100644 index 00000000..6e1d49d0 --- /dev/null +++ b/api_corehr_pathway_active.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPathwayActive 对通道进行 启用 或 停用 操作 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/active +func (r *CoreHRService) CreateCorehrPathwayActive(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPathwayActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPathwayActive mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPathwayActive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPathwayActive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/active", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPathwayActiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPathwayActive mock CoreHRCreateCorehrPathwayActive method +func (r *Mock) MockCoreHRCreateCorehrPathwayActive(f func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error)) { + r.mockCoreHRCreateCorehrPathwayActive = f +} + +// UnMockCoreHRCreateCorehrPathwayActive un-mock CoreHRCreateCorehrPathwayActive method +func (r *Mock) UnMockCoreHRCreateCorehrPathwayActive() { + r.mockCoreHRCreateCorehrPathwayActive = nil +} + +// CreateCorehrPathwayActiveReq ... +type CreateCorehrPathwayActiveReq struct { + PathwayID string `json:"pathway_id,omitempty"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914823" + Active bool `json:"active,omitempty"` // 停启用状态;true: 启用, false: 停用示例值: true +} + +// CreateCorehrPathwayActiveResp ... +type CreateCorehrPathwayActiveResp struct { +} + +// createCorehrPathwayActiveResp ... +type createCorehrPathwayActiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPathwayActiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pathway_batch_get.go b/api_corehr_pathway_batch_get.go new file mode 100644 index 00000000..a8b708e0 --- /dev/null +++ b/api_corehr_pathway_batch_get.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchGetCorehrPathway 根据通道的ID批量获取通道的名称、编码、描述信息 +// +// 延迟说明: 数据库主从延迟2s以内, 即: 创建通道后2s内调用此接口可能查询不到数据。 +// 由于该接口为ByID批量查询接口, 当请求参数中的某个通道ID错误或者被删除时, 接口不会报错。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get +func (r *CoreHRService) BatchGetCorehrPathway(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchGetCorehrPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCorehrPathway mock enable") + return r.cli.mock.mockCoreHRBatchGetCorehrPathway(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchGetCorehrPathway", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/batch_get", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchGetCorehrPathwayResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchGetCorehrPathway mock CoreHRBatchGetCorehrPathway method +func (r *Mock) MockCoreHRBatchGetCorehrPathway(f func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error)) { + r.mockCoreHRBatchGetCorehrPathway = f +} + +// UnMockCoreHRBatchGetCorehrPathway un-mock CoreHRBatchGetCorehrPathway method +func (r *Mock) UnMockCoreHRBatchGetCorehrPathway() { + r.mockCoreHRBatchGetCorehrPathway = nil +} + +// BatchGetCorehrPathwayReq ... +type BatchGetCorehrPathwayReq struct { + PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道 ID 列表。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: ["4692446793125560154"] 长度范围: `1` ~ `100` +} + +// BatchGetCorehrPathwayResp ... +type BatchGetCorehrPathwayResp struct { + Items []*BatchGetCorehrPathwayRespItem `json:"items,omitempty"` // 查询的通道信息 +} + +// BatchGetCorehrPathwayRespItem ... +type BatchGetCorehrPathwayRespItem struct { + PathwayID string `json:"pathway_id,omitempty"` // 通道 ID + Code string `json:"code,omitempty"` // 编码 + Names []*BatchGetCorehrPathwayRespItemName `json:"names,omitempty"` // 名称 + Descriptions []*BatchGetCorehrPathwayRespItemDescription `json:"descriptions,omitempty"` // 描述 + Active bool `json:"active,omitempty"` // 停启用状态;true: 启用, false: 停用 +} + +// BatchGetCorehrPathwayRespItemDescription ... +type BatchGetCorehrPathwayRespItemDescription struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchGetCorehrPathwayRespItemName ... +type BatchGetCorehrPathwayRespItemName struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// batchGetCorehrPathwayResp ... +type batchGetCorehrPathwayResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCorehrPathwayResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pathway_create.go b/api_corehr_pathway_create.go new file mode 100644 index 00000000..7efc846e --- /dev/null +++ b/api_corehr_pathway_create.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPathway 创建通道, 可以定义通道的名称、编码和描述信息 +// +// 非必填字段, 不传时默认为空 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/create +func (r *CoreHRService) CreateCorehrPathway(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPathway mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPathway(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPathway", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPathwayResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPathway mock CoreHRCreateCorehrPathway method +func (r *Mock) MockCoreHRCreateCorehrPathway(f func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error)) { + r.mockCoreHRCreateCorehrPathway = f +} + +// UnMockCoreHRCreateCorehrPathway un-mock CoreHRCreateCorehrPathway method +func (r *Mock) UnMockCoreHRCreateCorehrPathway() { + r.mockCoreHRCreateCorehrPathway = nil +} + +// CreateCorehrPathwayReq ... +type CreateCorehrPathwayReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + Code *string `json:"code,omitempty"` // 编码示例值: "A01234" + Names []*CreateCorehrPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*CreateCorehrPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` +} + +// CreateCorehrPathwayReqDescription ... +type CreateCorehrPathwayReqDescription struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容, 最长支持2000个字符示例值: "中文示例" +} + +// CreateCorehrPathwayReqName ... +type CreateCorehrPathwayReqName struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // --文本内容, 最长支持255个字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" +} + +// CreateCorehrPathwayResp ... +type CreateCorehrPathwayResp struct { + PathwayID string `json:"pathway_id,omitempty"` // 通道ID +} + +// createCorehrPathwayResp ... +type createCorehrPathwayResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPathwayResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pathway_delete.go b/api_corehr_pathway_delete.go new file mode 100644 index 00000000..7e5737da --- /dev/null +++ b/api_corehr_pathway_delete.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrPathway 根据传入的通道 ID 删除一个相应的通道信息 +// +// 删除对象时请确认有无在职员工、待入职单据、职务、职级、序列等数据关联此对象, 如有会导致删除失败。 +// 删除后无法恢复, 并且在系统中无法搜索到对应通道信息, 请谨慎操作。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/delete +func (r *CoreHRService) DeleteCorehrPathway(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrPathway mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrPathway(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrPathway", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/:pathway_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrPathwayResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrPathway mock CoreHRDeleteCorehrPathway method +func (r *Mock) MockCoreHRDeleteCorehrPathway(f func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error)) { + r.mockCoreHRDeleteCorehrPathway = f +} + +// UnMockCoreHRDeleteCorehrPathway un-mock CoreHRDeleteCorehrPathway method +func (r *Mock) UnMockCoreHRDeleteCorehrPathway() { + r.mockCoreHRDeleteCorehrPathway = nil +} + +// DeleteCorehrPathwayReq ... +type DeleteCorehrPathwayReq struct { + PathwayID string `path:"pathway_id" json:"-"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914824" +} + +// DeleteCorehrPathwayResp ... +type DeleteCorehrPathwayResp struct { +} + +// deleteCorehrPathwayResp ... +type deleteCorehrPathwayResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrPathwayResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pathway_update.go b/api_corehr_pathway_update.go new file mode 100644 index 00000000..667a63e5 --- /dev/null +++ b/api_corehr_pathway_update.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrPathway 更新通道, 可以根据通道的ID更新通道的名称、编码、描述信息 +// +// 非必填字段, 不传时即不做变更 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/patch +func (r *CoreHRService) UpdateCorehrPathway(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPathway mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrPathway(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrPathway", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/:pathway_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrPathwayResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrPathway mock CoreHRUpdateCorehrPathway method +func (r *Mock) MockCoreHRUpdateCorehrPathway(f func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error)) { + r.mockCoreHRUpdateCorehrPathway = f +} + +// UnMockCoreHRUpdateCorehrPathway un-mock CoreHRUpdateCorehrPathway method +func (r *Mock) UnMockCoreHRUpdateCorehrPathway() { + r.mockCoreHRUpdateCorehrPathway = nil +} + +// UpdateCorehrPathwayReq ... +type UpdateCorehrPathwayReq struct { + PathwayID string `path:"pathway_id" json:"-"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914824" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + Code *string `json:"code,omitempty"` // 编码示例值: "A01234" + Names []*UpdateCorehrPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCorehrPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` +} + +// UpdateCorehrPathwayReqDescription ... +type UpdateCorehrPathwayReqDescription struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容, 最长支持2000个字符示例值: "中文示例" +} + +// UpdateCorehrPathwayReqName ... +type UpdateCorehrPathwayReqName struct { + Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // --文本内容, 最长支持255个字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" +} + +// UpdateCorehrPathwayResp ... +type UpdateCorehrPathwayResp struct { +} + +// updateCorehrPathwayResp ... +type updateCorehrPathwayResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrPathwayResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_person_create_v1.go b/api_corehr_person_create_v1.go new file mode 100644 index 00000000..7e048512 --- /dev/null +++ b/api_corehr_person_create_v1.go @@ -0,0 +1,1631 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPerson 创建人员的个人信息。 +// +// 接口已升级, 推荐使用: [创建个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/create +// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/create +func (r *CoreHRService) CreateCorehrPerson(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPerson != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPerson mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPerson(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPerson", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPersonResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPerson mock CoreHRCreateCorehrPerson method +func (r *Mock) MockCoreHRCreateCorehrPerson(f func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error)) { + r.mockCoreHRCreateCorehrPerson = f +} + +// UnMockCoreHRCreateCorehrPerson un-mock CoreHRCreateCorehrPerson method +func (r *Mock) UnMockCoreHRCreateCorehrPerson() { + r.mockCoreHRCreateCorehrPerson = nil +} + +// CreateCorehrPersonReq ... +type CreateCorehrPersonReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*CreateCorehrPersonReqName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCorehrPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *CreateCorehrPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCorehrPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCorehrPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCorehrPersonReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCorehrPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCorehrPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCorehrPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCorehrPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCorehrPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCorehrPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCorehrPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*CreateCorehrPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*CreateCorehrPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// CreateCorehrPersonReqAddress ... +type CreateCorehrPersonReqAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + CustomFields []*CreateCorehrPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqAddressCustomField ... +type CreateCorehrPersonReqAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqBankAccount ... +type CreateCorehrPersonReqBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + Bank *CreateCorehrPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*CreateCorehrPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*CreateCorehrPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCorehrPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +} + +// CreateCorehrPersonReqBankAccountBank ... +type CreateCorehrPersonReqBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqBankAccountBankAccountType ... +type CreateCorehrPersonReqBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqBankAccountBankAccountUsage ... +type CreateCorehrPersonReqBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqBankAccountCustomField ... +type CreateCorehrPersonReqBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqCustomField ... +type CreateCorehrPersonReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqDependent ... +type CreateCorehrPersonReqDependent struct { + Name *CreateCorehrPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCorehrPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCorehrPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" + NationalIDList []*CreateCorehrPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *CreateCorehrPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + CustomFields []*CreateCorehrPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位示例值: "保安" + Phone *CreateCorehrPersonReqDependentPhone `json:"phone,omitempty"` // 电话 + Address *CreateCorehrPersonReqDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *CreateCorehrPersonReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// CreateCorehrPersonReqDependentAddress ... +type CreateCorehrPersonReqDependentAddress struct { + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*CreateCorehrPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG +} + +// CreateCorehrPersonReqDependentAddressCustomField ... +type CreateCorehrPersonReqDependentAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// CreateCorehrPersonReqDependentBirthCertificateOfChild ... +type CreateCorehrPersonReqDependentBirthCertificateOfChild struct { + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" +} + +// CreateCorehrPersonReqDependentCustomField ... +type CreateCorehrPersonReqDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqDependentGender ... +type CreateCorehrPersonReqDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentName ... +type CreateCorehrPersonReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCorehrPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCorehrPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCorehrPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCorehrPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCorehrPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqDependentNameAdditionalNameType ... +type CreateCorehrPersonReqDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentNameCustomField ... +type CreateCorehrPersonReqDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqDependentNameNameType ... +type CreateCorehrPersonReqDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentNameSocial ... +type CreateCorehrPersonReqDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentNameTitle ... +type CreateCorehrPersonReqDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentNationalID ... +type CreateCorehrPersonReqDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*CreateCorehrPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqDependentNationalIDCustomField ... +type CreateCorehrPersonReqDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqDependentPhone ... +type CreateCorehrPersonReqDependentPhone struct { + InternationalAreaCode *CreateCorehrPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCorehrPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqDependentPhoneCustomField ... +type CreateCorehrPersonReqDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqDependentPhoneInternationalAreaCode ... +type CreateCorehrPersonReqDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentRelationship ... +type CreateCorehrPersonReqDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqDependentSpousesWorkingStatus ... +type CreateCorehrPersonReqDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEducation ... +type CreateCorehrPersonReqEducation struct { + School []*CreateCorehrPersonReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCorehrPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" + FieldOfStudy []*CreateCorehrPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCorehrPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCorehrPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCorehrPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" + ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" + CustomFields []*CreateCorehrPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqEducationCustomField ... +type CreateCorehrPersonReqEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqEducationDegree ... +type CreateCorehrPersonReqEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEducationFieldOfStudy ... +type CreateCorehrPersonReqEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonReqEducationFieldOfStudyName ... +type CreateCorehrPersonReqEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEducationLevelOfEducation ... +type CreateCorehrPersonReqEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEducationSchool ... +type CreateCorehrPersonReqEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonReqEducationSchoolName ... +type CreateCorehrPersonReqEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmail ... +type CreateCorehrPersonReqEmail struct { + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*CreateCorehrPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqEmailCustomField ... +type CreateCorehrPersonReqEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqEmergencyContact ... +type CreateCorehrPersonReqEmergencyContact struct { + Name *CreateCorehrPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCorehrPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCorehrPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCorehrPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" +} + +// CreateCorehrPersonReqEmergencyContactCustomField ... +type CreateCorehrPersonReqEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqEmergencyContactName ... +type CreateCorehrPersonReqEmergencyContactName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCorehrPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCorehrPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCorehrPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCorehrPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCorehrPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqEmergencyContactNameAdditionalNameType ... +type CreateCorehrPersonReqEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmergencyContactNameCustomField ... +type CreateCorehrPersonReqEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqEmergencyContactNameNameType ... +type CreateCorehrPersonReqEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmergencyContactNameSocial ... +type CreateCorehrPersonReqEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmergencyContactNameTitle ... +type CreateCorehrPersonReqEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmergencyContactPhoneIst ... +type CreateCorehrPersonReqEmergencyContactPhoneIst struct { + InternationalAreaCode *CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCorehrPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqEmergencyContactPhoneIstCustomField ... +type CreateCorehrPersonReqEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode ... +type CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqEmergencyContactRelationship ... +type CreateCorehrPersonReqEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqGender ... +type CreateCorehrPersonReqGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqMaritalStatus ... +type CreateCorehrPersonReqMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqName ... +type CreateCorehrPersonReqName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCorehrPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCorehrPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCorehrPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCorehrPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCorehrPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqNameAdditionalNameType ... +type CreateCorehrPersonReqNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqNameCustomField ... +type CreateCorehrPersonReqNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqNameNameType ... +type CreateCorehrPersonReqNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqNameSocial ... +type CreateCorehrPersonReqNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqNameTitle ... +type CreateCorehrPersonReqNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqNationalID ... +type CreateCorehrPersonReqNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*CreateCorehrPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqNationalIDCustomField ... +type CreateCorehrPersonReqNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqPersonalProfile ... +type CreateCorehrPersonReqPersonalProfile struct { + PersonalProfileType *CreateCorehrPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*CreateCorehrPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +} + +// CreateCorehrPersonReqPersonalProfileFile ... +type CreateCorehrPersonReqPersonalProfileFile struct { + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" +} + +// CreateCorehrPersonReqPersonalProfilePersonalProfileType ... +type CreateCorehrPersonReqPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqPhone ... +type CreateCorehrPersonReqPhone struct { + InternationalAreaCode *CreateCorehrPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *CreateCorehrPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCorehrPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*CreateCorehrPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqPhoneCustomField ... +type CreateCorehrPersonReqPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqPhoneDeviceType ... +type CreateCorehrPersonReqPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqPhoneInternationalAreaCode ... +type CreateCorehrPersonReqPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqPhonePhoneUsage ... +type CreateCorehrPersonReqPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqRace ... +type CreateCorehrPersonReqRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCorehrPersonReqWorkExperience ... +type CreateCorehrPersonReqWorkExperience struct { + CompanyOrganization []*CreateCorehrPersonReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*CreateCorehrPersonReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*CreateCorehrPersonReqWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*CreateCorehrPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" + CustomFields []*CreateCorehrPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonReqWorkExperienceCompanyOrganization ... +type CreateCorehrPersonReqWorkExperienceCompanyOrganization struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonReqWorkExperienceCustomField ... +type CreateCorehrPersonReqWorkExperienceCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCorehrPersonReqWorkExperienceDepartment ... +type CreateCorehrPersonReqWorkExperienceDepartment struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonReqWorkExperienceDescription ... +type CreateCorehrPersonReqWorkExperienceDescription struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonReqWorkExperienceJob ... +type CreateCorehrPersonReqWorkExperienceJob struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// CreateCorehrPersonResp ... +type CreateCorehrPersonResp struct { + Person *CreateCorehrPersonRespPerson `json:"person,omitempty"` // 创建成功返回Person信息 +} + +// CreateCorehrPersonRespPerson ... +type CreateCorehrPersonRespPerson struct { + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*CreateCorehrPersonRespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCorehrPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *CreateCorehrPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCorehrPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCorehrPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCorehrPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCorehrPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCorehrPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCorehrPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCorehrPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCorehrPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCorehrPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCorehrPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*CreateCorehrPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *CreateCorehrPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *CreateCorehrPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*CreateCorehrPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// CreateCorehrPersonRespPersonAddress ... +type CreateCorehrPersonRespPersonAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + CustomFields []*CreateCorehrPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonAddressCustomField ... +type CreateCorehrPersonRespPersonAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonBankAccount ... +type CreateCorehrPersonRespPersonBankAccount struct { + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *CreateCorehrPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName string `json:"branch_name,omitempty"` // 支行名称 + CustomFields []*CreateCorehrPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*CreateCorehrPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCorehrPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id +} + +// CreateCorehrPersonRespPersonBankAccountBank ... +type CreateCorehrPersonRespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonBankAccountBankAccountType ... +type CreateCorehrPersonRespPersonBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay ... +type CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonBankAccountBankAccountUsage ... +type CreateCorehrPersonRespPersonBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay ... +type CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonBankAccountBankDisplay ... +type CreateCorehrPersonRespPersonBankAccountBankDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonBankAccountCustomField ... +type CreateCorehrPersonRespPersonBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonCustomField ... +type CreateCorehrPersonRespPersonCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonDependent ... +type CreateCorehrPersonRespPersonDependent struct { + Name *CreateCorehrPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCorehrPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCorehrPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 + NationalIDList []*CreateCorehrPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *CreateCorehrPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 + IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 + CustomFields []*CreateCorehrPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 + Employer string `json:"employer,omitempty"` // 工作单位 + Job string `json:"job,omitempty"` // 岗位 + Phone *CreateCorehrPersonRespPersonDependentPhone `json:"phone,omitempty"` // 电话 + Address *CreateCorehrPersonRespPersonDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *CreateCorehrPersonRespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// CreateCorehrPersonRespPersonDependentAddress ... +type CreateCorehrPersonRespPersonDependentAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*CreateCorehrPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) +} + +// CreateCorehrPersonRespPersonDependentAddressCustomField ... +type CreateCorehrPersonRespPersonDependentAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// CreateCorehrPersonRespPersonDependentBirthCertificateOfChild ... +type CreateCorehrPersonRespPersonDependentBirthCertificateOfChild struct { + ID string `json:"id,omitempty"` // 上传文件ID +} + +// CreateCorehrPersonRespPersonDependentCustomField ... +type CreateCorehrPersonRespPersonDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonDependentGender ... +type CreateCorehrPersonRespPersonDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentGenderDisplay ... +type CreateCorehrPersonRespPersonDependentGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentName ... +type CreateCorehrPersonRespPersonDependentName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCorehrPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCorehrPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCorehrPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCorehrPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCorehrPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonDependentNameAdditionalNameType ... +type CreateCorehrPersonRespPersonDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay ... +type CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentNameCustomField ... +type CreateCorehrPersonRespPersonDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonDependentNameNameType ... +type CreateCorehrPersonRespPersonDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentNameNameTypeDisplay ... +type CreateCorehrPersonRespPersonDependentNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentNameSocial ... +type CreateCorehrPersonRespPersonDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentNameSocialDisplay ... +type CreateCorehrPersonRespPersonDependentNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentNameTitle ... +type CreateCorehrPersonRespPersonDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentNameTitleDisplay ... +type CreateCorehrPersonRespPersonDependentNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentNationalID ... +type CreateCorehrPersonRespPersonDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*CreateCorehrPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonDependentNationalIDCustomField ... +type CreateCorehrPersonRespPersonDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonDependentPhone ... +type CreateCorehrPersonRespPersonDependentPhone struct { + InternationalAreaCode *CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*CreateCorehrPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonDependentPhoneCustomField ... +type CreateCorehrPersonRespPersonDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode ... +type CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... +type CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentRelationship ... +type CreateCorehrPersonRespPersonDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentRelationshipDisplay ... +type CreateCorehrPersonRespPersonDependentRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonDependentSpousesWorkingStatus ... +type CreateCorehrPersonRespPersonDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay ... +type CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducation ... +type CreateCorehrPersonRespPersonEducation struct { + School []*CreateCorehrPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCorehrPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCorehrPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCorehrPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCorehrPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCorehrPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCorehrPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonEducationCustomField ... +type CreateCorehrPersonRespPersonEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonEducationDegree ... +type CreateCorehrPersonRespPersonEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEducationDegreeDisplay ... +type CreateCorehrPersonRespPersonEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducationFieldOfStudy ... +type CreateCorehrPersonRespPersonEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducationFieldOfStudyName ... +type CreateCorehrPersonRespPersonEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay ... +type CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducationLevelOfEducation ... +type CreateCorehrPersonRespPersonEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay ... +type CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducationSchool ... +type CreateCorehrPersonRespPersonEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEducationSchoolName ... +type CreateCorehrPersonRespPersonEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEducationSchoolNameDisplay ... +type CreateCorehrPersonRespPersonEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmail ... +type CreateCorehrPersonRespPersonEmail struct { + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*CreateCorehrPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonEmailCustomField ... +type CreateCorehrPersonRespPersonEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonEmergencyContact ... +type CreateCorehrPersonRespPersonEmergencyContact struct { + Name *CreateCorehrPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCorehrPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCorehrPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCorehrPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 +} + +// CreateCorehrPersonRespPersonEmergencyContactCustomField ... +type CreateCorehrPersonRespPersonEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonEmergencyContactName ... +type CreateCorehrPersonRespPersonEmergencyContactName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCorehrPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCorehrPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCorehrPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCorehrPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType ... +type CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameCustomField ... +type CreateCorehrPersonRespPersonEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonEmergencyContactNameNameType ... +type CreateCorehrPersonRespPersonEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameSocial ... +type CreateCorehrPersonRespPersonEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameTitle ... +type CreateCorehrPersonRespPersonEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmergencyContactPhoneIst ... +type CreateCorehrPersonRespPersonEmergencyContactPhoneIst struct { + InternationalAreaCode *CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + CustomFields []*CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField ... +type CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... +type CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonEmergencyContactRelationship ... +type CreateCorehrPersonRespPersonEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay ... +type CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonGender ... +type CreateCorehrPersonRespPersonGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonGenderDisplay ... +type CreateCorehrPersonRespPersonGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducation ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducation struct { + School []*CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... +type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducation ... +type CreateCorehrPersonRespPersonHighestLevelOfEducation struct { + School []*CreateCorehrPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCorehrPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationDegree ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationSchool ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... +type CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonMaritalStatus ... +type CreateCorehrPersonRespPersonMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonMaritalStatusDisplay ... +type CreateCorehrPersonRespPersonMaritalStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonName ... +type CreateCorehrPersonRespPersonName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCorehrPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCorehrPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCorehrPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCorehrPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCorehrPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonNameAdditionalNameType ... +type CreateCorehrPersonRespPersonNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay ... +type CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonNameCustomField ... +type CreateCorehrPersonRespPersonNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonNameNameType ... +type CreateCorehrPersonRespPersonNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonNameNameTypeDisplay ... +type CreateCorehrPersonRespPersonNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonNameSocial ... +type CreateCorehrPersonRespPersonNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonNameSocialDisplay ... +type CreateCorehrPersonRespPersonNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonNameTitle ... +type CreateCorehrPersonRespPersonNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonNameTitleDisplay ... +type CreateCorehrPersonRespPersonNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonNationalID ... +type CreateCorehrPersonRespPersonNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*CreateCorehrPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonNationalIDCustomField ... +type CreateCorehrPersonRespPersonNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonPersonalProfile ... +type CreateCorehrPersonRespPersonPersonalProfile struct { + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*CreateCorehrPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +} + +// CreateCorehrPersonRespPersonPersonalProfileFile ... +type CreateCorehrPersonRespPersonPersonalProfileFile struct { + ID string `json:"id,omitempty"` // 上传文件ID +} + +// CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType ... +type CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... +type CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonPhone ... +type CreateCorehrPersonRespPersonPhone struct { + InternationalAreaCode *CreateCorehrPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *CreateCorehrPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCorehrPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*CreateCorehrPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonPhoneCustomField ... +type CreateCorehrPersonRespPersonPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonPhoneDeviceType ... +type CreateCorehrPersonRespPersonPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay ... +type CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonPhoneInternationalAreaCode ... +type CreateCorehrPersonRespPersonPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay ... +type CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonPhonePhoneUsage ... +type CreateCorehrPersonRespPersonPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonPhonePhoneUsageDisplay ... +type CreateCorehrPersonRespPersonPhonePhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonRace ... +type CreateCorehrPersonRespPersonRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrPersonRespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrPersonRespPersonRaceDisplay ... +type CreateCorehrPersonRespPersonRaceDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonWorkExperience ... +type CreateCorehrPersonRespPersonWorkExperience struct { + CompanyOrganization []*CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*CreateCorehrPersonRespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*CreateCorehrPersonRespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*CreateCorehrPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*CreateCorehrPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization ... +type CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonWorkExperienceCustomField ... +type CreateCorehrPersonRespPersonWorkExperienceCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// CreateCorehrPersonRespPersonWorkExperienceDepartment ... +type CreateCorehrPersonRespPersonWorkExperienceDepartment struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonWorkExperienceDescription ... +type CreateCorehrPersonRespPersonWorkExperienceDescription struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCorehrPersonRespPersonWorkExperienceJob ... +type CreateCorehrPersonRespPersonWorkExperienceJob struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// createCorehrPersonResp ... +type createCorehrPersonResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPersonResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_person_delete.go b/api_corehr_person_delete.go index 97f1c6b4..f19ae513 100644 --- a/api_corehr_person_delete.go +++ b/api_corehr_person_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHRPersonReq struct { } // DeleteCoreHRPersonResp ... -type DeleteCoreHRPersonResp struct{} +type DeleteCoreHRPersonResp struct { +} // deleteCoreHRPersonResp ... type deleteCoreHRPersonResp struct { diff --git a/api_corehr_person_get.go b/api_corehr_person_get.go index 32a023ab..cf03f123 100644 --- a/api_corehr_person_get.go +++ b/api_corehr_person_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/get -// -// Deprecated func (r *CoreHRService) GetCoreHRPerson(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRPerson != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRPerson mock enable") diff --git a/api_corehr_person_update_v1.go b/api_corehr_person_update_v1.go new file mode 100644 index 00000000..b1c31f20 --- /dev/null +++ b/api_corehr_person_update_v1.go @@ -0,0 +1,1633 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrPerson 更新个人信息。 +// +// 接口已升级, 推荐使用: [更新个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/patch +// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/patch +func (r *CoreHRService) UpdateCorehrPerson(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrPerson != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPerson mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrPerson(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrPerson", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons/:person_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrPersonResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrPerson mock CoreHRUpdateCorehrPerson method +func (r *Mock) MockCoreHRUpdateCorehrPerson(f func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error)) { + r.mockCoreHRUpdateCorehrPerson = f +} + +// UnMockCoreHRUpdateCorehrPerson un-mock CoreHRUpdateCorehrPerson method +func (r *Mock) UnMockCoreHRUpdateCorehrPerson() { + r.mockCoreHRUpdateCorehrPerson = nil +} + +// UpdateCorehrPersonReq ... +type UpdateCorehrPersonReq struct { + PersonID string `path:"person_id" json:"-"` // person的ID示例值: "6969828847931885087" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*UpdateCorehrPersonReqName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCorehrPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *UpdateCorehrPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCorehrPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCorehrPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCorehrPersonReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCorehrPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCorehrPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCorehrPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCorehrPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCorehrPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCorehrPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCorehrPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*UpdateCorehrPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*UpdateCorehrPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// UpdateCorehrPersonReqAddress ... +type UpdateCorehrPersonReqAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + CustomFields []*UpdateCorehrPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqAddressCustomField ... +type UpdateCorehrPersonReqAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqBankAccount ... +type UpdateCorehrPersonReqBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + Bank *UpdateCorehrPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*UpdateCorehrPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*UpdateCorehrPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCorehrPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +} + +// UpdateCorehrPersonReqBankAccountBank ... +type UpdateCorehrPersonReqBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqBankAccountBankAccountType ... +type UpdateCorehrPersonReqBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqBankAccountBankAccountUsage ... +type UpdateCorehrPersonReqBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqBankAccountCustomField ... +type UpdateCorehrPersonReqBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqCustomField ... +type UpdateCorehrPersonReqCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqDependent ... +type UpdateCorehrPersonReqDependent struct { + Name *UpdateCorehrPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCorehrPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCorehrPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" + NationalIDList []*UpdateCorehrPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *UpdateCorehrPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + CustomFields []*UpdateCorehrPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位示例值: "保安" + Phone *UpdateCorehrPersonReqDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCorehrPersonReqDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *UpdateCorehrPersonReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// UpdateCorehrPersonReqDependentAddress ... +type UpdateCorehrPersonReqDependentAddress struct { + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*UpdateCorehrPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG +} + +// UpdateCorehrPersonReqDependentAddressCustomField ... +type UpdateCorehrPersonReqDependentAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPersonReqDependentBirthCertificateOfChild ... +type UpdateCorehrPersonReqDependentBirthCertificateOfChild struct { + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" +} + +// UpdateCorehrPersonReqDependentCustomField ... +type UpdateCorehrPersonReqDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqDependentGender ... +type UpdateCorehrPersonReqDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentName ... +type UpdateCorehrPersonReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCorehrPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCorehrPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCorehrPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCorehrPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCorehrPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqDependentNameAdditionalNameType ... +type UpdateCorehrPersonReqDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentNameCustomField ... +type UpdateCorehrPersonReqDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqDependentNameNameType ... +type UpdateCorehrPersonReqDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentNameSocial ... +type UpdateCorehrPersonReqDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentNameTitle ... +type UpdateCorehrPersonReqDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentNationalID ... +type UpdateCorehrPersonReqDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCorehrPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqDependentNationalIDCustomField ... +type UpdateCorehrPersonReqDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqDependentPhone ... +type UpdateCorehrPersonReqDependentPhone struct { + InternationalAreaCode *UpdateCorehrPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCorehrPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqDependentPhoneCustomField ... +type UpdateCorehrPersonReqDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqDependentPhoneInternationalAreaCode ... +type UpdateCorehrPersonReqDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentRelationship ... +type UpdateCorehrPersonReqDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqDependentSpousesWorkingStatus ... +type UpdateCorehrPersonReqDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEducation ... +type UpdateCorehrPersonReqEducation struct { + School []*UpdateCorehrPersonReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCorehrPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" + FieldOfStudy []*UpdateCorehrPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCorehrPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCorehrPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCorehrPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" + ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" + CustomFields []*UpdateCorehrPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqEducationCustomField ... +type UpdateCorehrPersonReqEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqEducationDegree ... +type UpdateCorehrPersonReqEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEducationFieldOfStudy ... +type UpdateCorehrPersonReqEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonReqEducationFieldOfStudyName ... +type UpdateCorehrPersonReqEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEducationLevelOfEducation ... +type UpdateCorehrPersonReqEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEducationSchool ... +type UpdateCorehrPersonReqEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonReqEducationSchoolName ... +type UpdateCorehrPersonReqEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmail ... +type UpdateCorehrPersonReqEmail struct { + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*UpdateCorehrPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqEmailCustomField ... +type UpdateCorehrPersonReqEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqEmergencyContact ... +type UpdateCorehrPersonReqEmergencyContact struct { + Name *UpdateCorehrPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCorehrPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCorehrPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCorehrPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" +} + +// UpdateCorehrPersonReqEmergencyContactCustomField ... +type UpdateCorehrPersonReqEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqEmergencyContactName ... +type UpdateCorehrPersonReqEmergencyContactName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCorehrPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCorehrPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCorehrPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCorehrPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType ... +type UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmergencyContactNameCustomField ... +type UpdateCorehrPersonReqEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqEmergencyContactNameNameType ... +type UpdateCorehrPersonReqEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmergencyContactNameSocial ... +type UpdateCorehrPersonReqEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmergencyContactNameTitle ... +type UpdateCorehrPersonReqEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmergencyContactPhoneIst ... +type UpdateCorehrPersonReqEmergencyContactPhoneIst struct { + InternationalAreaCode *UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField ... +type UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode ... +type UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqEmergencyContactRelationship ... +type UpdateCorehrPersonReqEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqGender ... +type UpdateCorehrPersonReqGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqMaritalStatus ... +type UpdateCorehrPersonReqMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqName ... +type UpdateCorehrPersonReqName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCorehrPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCorehrPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCorehrPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCorehrPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCorehrPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqNameAdditionalNameType ... +type UpdateCorehrPersonReqNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqNameCustomField ... +type UpdateCorehrPersonReqNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqNameNameType ... +type UpdateCorehrPersonReqNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqNameSocial ... +type UpdateCorehrPersonReqNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqNameTitle ... +type UpdateCorehrPersonReqNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqNationalID ... +type UpdateCorehrPersonReqNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCorehrPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqNationalIDCustomField ... +type UpdateCorehrPersonReqNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqPersonalProfile ... +type UpdateCorehrPersonReqPersonalProfile struct { + PersonalProfileType *UpdateCorehrPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*UpdateCorehrPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +} + +// UpdateCorehrPersonReqPersonalProfileFile ... +type UpdateCorehrPersonReqPersonalProfileFile struct { + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" +} + +// UpdateCorehrPersonReqPersonalProfilePersonalProfileType ... +type UpdateCorehrPersonReqPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqPhone ... +type UpdateCorehrPersonReqPhone struct { + InternationalAreaCode *UpdateCorehrPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *UpdateCorehrPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCorehrPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*UpdateCorehrPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqPhoneCustomField ... +type UpdateCorehrPersonReqPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqPhoneDeviceType ... +type UpdateCorehrPersonReqPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqPhoneInternationalAreaCode ... +type UpdateCorehrPersonReqPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqPhonePhoneUsage ... +type UpdateCorehrPersonReqPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqRace ... +type UpdateCorehrPersonReqRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCorehrPersonReqWorkExperience ... +type UpdateCorehrPersonReqWorkExperience struct { + CompanyOrganization []*UpdateCorehrPersonReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*UpdateCorehrPersonReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*UpdateCorehrPersonReqWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*UpdateCorehrPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" + CustomFields []*UpdateCorehrPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonReqWorkExperienceCompanyOrganization ... +type UpdateCorehrPersonReqWorkExperienceCompanyOrganization struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonReqWorkExperienceCustomField ... +type UpdateCorehrPersonReqWorkExperienceCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCorehrPersonReqWorkExperienceDepartment ... +type UpdateCorehrPersonReqWorkExperienceDepartment struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonReqWorkExperienceDescription ... +type UpdateCorehrPersonReqWorkExperienceDescription struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonReqWorkExperienceJob ... +type UpdateCorehrPersonReqWorkExperienceJob struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" +} + +// UpdateCorehrPersonResp ... +type UpdateCorehrPersonResp struct { + Person *UpdateCorehrPersonRespPerson `json:"person,omitempty"` // 个人信息 +} + +// UpdateCorehrPersonRespPerson ... +type UpdateCorehrPersonRespPerson struct { + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*UpdateCorehrPersonRespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCorehrPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *UpdateCorehrPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCorehrPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCorehrPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCorehrPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCorehrPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCorehrPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCorehrPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCorehrPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCorehrPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCorehrPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCorehrPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*UpdateCorehrPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *UpdateCorehrPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *UpdateCorehrPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*UpdateCorehrPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// UpdateCorehrPersonRespPersonAddress ... +type UpdateCorehrPersonRespPersonAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + CustomFields []*UpdateCorehrPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonAddressCustomField ... +type UpdateCorehrPersonRespPersonAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonBankAccount ... +type UpdateCorehrPersonRespPersonBankAccount struct { + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *UpdateCorehrPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName string `json:"branch_name,omitempty"` // 支行名称 + CustomFields []*UpdateCorehrPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*UpdateCorehrPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCorehrPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id +} + +// UpdateCorehrPersonRespPersonBankAccountBank ... +type UpdateCorehrPersonRespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonBankAccountBankAccountType ... +type UpdateCorehrPersonRespPersonBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay ... +type UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonBankAccountBankAccountUsage ... +type UpdateCorehrPersonRespPersonBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay ... +type UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonBankAccountBankDisplay ... +type UpdateCorehrPersonRespPersonBankAccountBankDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonBankAccountCustomField ... +type UpdateCorehrPersonRespPersonBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonCustomField ... +type UpdateCorehrPersonRespPersonCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonDependent ... +type UpdateCorehrPersonRespPersonDependent struct { + Name *UpdateCorehrPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCorehrPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCorehrPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 + NationalIDList []*UpdateCorehrPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 + IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 + CustomFields []*UpdateCorehrPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 + Employer string `json:"employer,omitempty"` // 工作单位 + Job string `json:"job,omitempty"` // 岗位 + Phone *UpdateCorehrPersonRespPersonDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCorehrPersonRespPersonDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// UpdateCorehrPersonRespPersonDependentAddress ... +type UpdateCorehrPersonRespPersonDependentAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*UpdateCorehrPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) +} + +// UpdateCorehrPersonRespPersonDependentAddressCustomField ... +type UpdateCorehrPersonRespPersonDependentAddressCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild ... +type UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild struct { + ID string `json:"id,omitempty"` // 上传文件ID +} + +// UpdateCorehrPersonRespPersonDependentCustomField ... +type UpdateCorehrPersonRespPersonDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonDependentGender ... +type UpdateCorehrPersonRespPersonDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentGenderDisplay ... +type UpdateCorehrPersonRespPersonDependentGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentName ... +type UpdateCorehrPersonRespPersonDependentName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCorehrPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCorehrPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCorehrPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCorehrPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCorehrPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonDependentNameAdditionalNameType ... +type UpdateCorehrPersonRespPersonDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay ... +type UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentNameCustomField ... +type UpdateCorehrPersonRespPersonDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonDependentNameNameType ... +type UpdateCorehrPersonRespPersonDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay ... +type UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentNameSocial ... +type UpdateCorehrPersonRespPersonDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentNameSocialDisplay ... +type UpdateCorehrPersonRespPersonDependentNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentNameTitle ... +type UpdateCorehrPersonRespPersonDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentNameTitleDisplay ... +type UpdateCorehrPersonRespPersonDependentNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentNationalID ... +type UpdateCorehrPersonRespPersonDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*UpdateCorehrPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonDependentNationalIDCustomField ... +type UpdateCorehrPersonRespPersonDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonDependentPhone ... +type UpdateCorehrPersonRespPersonDependentPhone struct { + InternationalAreaCode *UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*UpdateCorehrPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonDependentPhoneCustomField ... +type UpdateCorehrPersonRespPersonDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode ... +type UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... +type UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentRelationship ... +type UpdateCorehrPersonRespPersonDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentRelationshipDisplay ... +type UpdateCorehrPersonRespPersonDependentRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus ... +type UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay ... +type UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducation ... +type UpdateCorehrPersonRespPersonEducation struct { + School []*UpdateCorehrPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCorehrPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCorehrPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCorehrPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCorehrPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCorehrPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCorehrPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonEducationCustomField ... +type UpdateCorehrPersonRespPersonEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonEducationDegree ... +type UpdateCorehrPersonRespPersonEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEducationDegreeDisplay ... +type UpdateCorehrPersonRespPersonEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducationFieldOfStudy ... +type UpdateCorehrPersonRespPersonEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducationFieldOfStudyName ... +type UpdateCorehrPersonRespPersonEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay ... +type UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducationLevelOfEducation ... +type UpdateCorehrPersonRespPersonEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay ... +type UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducationSchool ... +type UpdateCorehrPersonRespPersonEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEducationSchoolName ... +type UpdateCorehrPersonRespPersonEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEducationSchoolNameDisplay ... +type UpdateCorehrPersonRespPersonEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmail ... +type UpdateCorehrPersonRespPersonEmail struct { + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*UpdateCorehrPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonEmailCustomField ... +type UpdateCorehrPersonRespPersonEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonEmergencyContact ... +type UpdateCorehrPersonRespPersonEmergencyContact struct { + Name *UpdateCorehrPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCorehrPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 +} + +// UpdateCorehrPersonRespPersonEmergencyContactCustomField ... +type UpdateCorehrPersonRespPersonEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonEmergencyContactName ... +type UpdateCorehrPersonRespPersonEmergencyContactName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCorehrPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCorehrPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCorehrPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType ... +type UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameCustomField ... +type UpdateCorehrPersonRespPersonEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameNameType ... +type UpdateCorehrPersonRespPersonEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameSocial ... +type UpdateCorehrPersonRespPersonEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameTitle ... +type UpdateCorehrPersonRespPersonEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmergencyContactPhoneIst ... +type UpdateCorehrPersonRespPersonEmergencyContactPhoneIst struct { + InternationalAreaCode *UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField ... +type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... +type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonEmergencyContactRelationship ... +type UpdateCorehrPersonRespPersonEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay ... +type UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonGender ... +type UpdateCorehrPersonRespPersonGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonGenderDisplay ... +type UpdateCorehrPersonRespPersonGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducation ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducation struct { + School []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... +type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducation ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducation struct { + School []*UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... +type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonMaritalStatus ... +type UpdateCorehrPersonRespPersonMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonMaritalStatusDisplay ... +type UpdateCorehrPersonRespPersonMaritalStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonName ... +type UpdateCorehrPersonRespPersonName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCorehrPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCorehrPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCorehrPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCorehrPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCorehrPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonNameAdditionalNameType ... +type UpdateCorehrPersonRespPersonNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay ... +type UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonNameCustomField ... +type UpdateCorehrPersonRespPersonNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonNameNameType ... +type UpdateCorehrPersonRespPersonNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonNameNameTypeDisplay ... +type UpdateCorehrPersonRespPersonNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonNameSocial ... +type UpdateCorehrPersonRespPersonNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonNameSocialDisplay ... +type UpdateCorehrPersonRespPersonNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonNameTitle ... +type UpdateCorehrPersonRespPersonNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonNameTitleDisplay ... +type UpdateCorehrPersonRespPersonNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonNationalID ... +type UpdateCorehrPersonRespPersonNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*UpdateCorehrPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonNationalIDCustomField ... +type UpdateCorehrPersonRespPersonNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonPersonalProfile ... +type UpdateCorehrPersonRespPersonPersonalProfile struct { + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*UpdateCorehrPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +} + +// UpdateCorehrPersonRespPersonPersonalProfileFile ... +type UpdateCorehrPersonRespPersonPersonalProfileFile struct { + ID string `json:"id,omitempty"` // 上传文件ID +} + +// UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType ... +type UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... +type UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonPhone ... +type UpdateCorehrPersonRespPersonPhone struct { + InternationalAreaCode *UpdateCorehrPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *UpdateCorehrPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCorehrPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*UpdateCorehrPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonPhoneCustomField ... +type UpdateCorehrPersonRespPersonPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonPhoneDeviceType ... +type UpdateCorehrPersonRespPersonPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay ... +type UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonPhoneInternationalAreaCode ... +type UpdateCorehrPersonRespPersonPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay ... +type UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonPhonePhoneUsage ... +type UpdateCorehrPersonRespPersonPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay ... +type UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonRace ... +type UpdateCorehrPersonRespPersonRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCorehrPersonRespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCorehrPersonRespPersonRaceDisplay ... +type UpdateCorehrPersonRespPersonRaceDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonWorkExperience ... +type UpdateCorehrPersonRespPersonWorkExperience struct { + CompanyOrganization []*UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*UpdateCorehrPersonRespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*UpdateCorehrPersonRespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*UpdateCorehrPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*UpdateCorehrPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization ... +type UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonWorkExperienceCustomField ... +type UpdateCorehrPersonRespPersonWorkExperienceCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +} + +// UpdateCorehrPersonRespPersonWorkExperienceDepartment ... +type UpdateCorehrPersonRespPersonWorkExperienceDepartment struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonWorkExperienceDescription ... +type UpdateCorehrPersonRespPersonWorkExperienceDescription struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCorehrPersonRespPersonWorkExperienceJob ... +type UpdateCorehrPersonRespPersonWorkExperienceJob struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// updateCorehrPersonResp ... +type updateCorehrPersonResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrPersonResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_active.go b/api_corehr_position_active.go new file mode 100644 index 00000000..b8e32fb0 --- /dev/null +++ b/api_corehr_position_active.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPositionActive 对岗位进行启用或停用操作 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/active +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/active +func (r *CoreHRService) CreateCorehrPositionActive(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPositionActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPositionActive mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPositionActive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPositionActive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/active", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPositionActiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPositionActive mock CoreHRCreateCorehrPositionActive method +func (r *Mock) MockCoreHRCreateCorehrPositionActive(f func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error)) { + r.mockCoreHRCreateCorehrPositionActive = f +} + +// UnMockCoreHRCreateCorehrPositionActive un-mock CoreHRCreateCorehrPositionActive method +func (r *Mock) UnMockCoreHRCreateCorehrPositionActive() { + r.mockCoreHRCreateCorehrPositionActive = nil +} + +// CreateCorehrPositionActiveReq ... +type CreateCorehrPositionActiveReq struct { + PositionID string `json:"position_id,omitempty"` // 岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914823" + Active bool `json:"active,omitempty"` // 可选值: true(启用)、false(停用)示例值: true + EffectiveTime string `json:"effective_time,omitempty"` // 生效时间示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` +} + +// CreateCorehrPositionActiveResp ... +type CreateCorehrPositionActiveResp struct { +} + +// createCorehrPositionActiveResp ... +type createCorehrPositionActiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPositionActiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_create.go b/api_corehr_position_create.go new file mode 100644 index 00000000..5c0170df --- /dev/null +++ b/api_corehr_position_create.go @@ -0,0 +1,113 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPosition 创建岗位, 可定义岗位关联的职务、职级、序列, 以及岗位描述等 +// +// 非必填字段, 不传时默认为空 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/create +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/create +func (r *CoreHRService) CreateCorehrPosition(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPosition mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPosition(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPosition", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPositionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPosition mock CoreHRCreateCorehrPosition method +func (r *Mock) MockCoreHRCreateCorehrPosition(f func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error)) { + r.mockCoreHRCreateCorehrPosition = f +} + +// UnMockCoreHRCreateCorehrPosition un-mock CoreHRCreateCorehrPosition method +func (r *Mock) UnMockCoreHRCreateCorehrPosition() { + r.mockCoreHRCreateCorehrPosition = nil +} + +// CreateCorehrPositionReq ... +type CreateCorehrPositionReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + Code *string `json:"code,omitempty"` // 岗位编码 (不能与其他记录的编码重复)- 开启自动编码时, 以自动生成的编码值为准, 传入值不生效- 未开启自动编码时, 编码字段值以传入值为准示例值: "A01234" + Names []*CreateCorehrPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*CreateCorehrPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息示例值: "4719519211875096301" + JobID string `json:"job_id,omitempty"` // 职务, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息示例值: "4719519211875096301" + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 ID 列表, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 人员类型 ID 列表, 可通过文档[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获得详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + JobGradeIDs []string `json:"job_grade_ids,omitempty"` // 职等 ID 列表, 可通过 [【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 ID 列表, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID 列表, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)查询详细信息示例值: "4719519211875096301" + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 详细信息可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得- ID 类型必须与查询参数 department_id_type 的取值一致示例值: "4719519211875096301" + DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" + DottedLineLeaderID *string `json:"dotted_line_leader_id,omitempty"` // 虚线上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" + IsKeyPosition *bool `json:"is_key_position,omitempty"` // 是否关键岗位示例值: true + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期, 输入日期格式的字符串示例值: "2020-05-01" 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + CustomFields []*CreateCorehrPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` +} + +// CreateCorehrPositionReqCustomField ... +type CreateCorehrPositionReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识, 由租户自定义, 可通过 [查询岗位信息] (/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query) 获取- 最多传入 200 个自定义字段示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")示例值: "\"231\"" +} + +// CreateCorehrPositionReqDescription ... +type CreateCorehrPositionReqDescription struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 支持 zh-CN 和 en-US, 最大长度为 255 字符示例值: "岗位的描述" +} + +// CreateCorehrPositionReqName ... +type CreateCorehrPositionReqName struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // --支持 zh-CN 和 en-US, 最大长度为 255 字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "高级产品经理" +} + +// CreateCorehrPositionResp ... +type CreateCorehrPositionResp struct { + PositionID string `json:"position_id,omitempty"` // 岗位ID +} + +// createCorehrPositionResp ... +type createCorehrPositionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPositionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_del.go b/api_corehr_position_del.go new file mode 100644 index 00000000..8d209a66 --- /dev/null +++ b/api_corehr_position_del.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPositionDelPosition 删除整条岗位记录 +// +// 删除后不可恢复, 请谨慎操作 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/del_position +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/del_position +func (r *CoreHRService) CreateCorehrPositionDelPosition(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPositionDelPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPositionDelPosition mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPositionDelPosition(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPositionDelPosition", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/del_position", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPositionDelPositionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPositionDelPosition mock CoreHRCreateCorehrPositionDelPosition method +func (r *Mock) MockCoreHRCreateCorehrPositionDelPosition(f func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error)) { + r.mockCoreHRCreateCorehrPositionDelPosition = f +} + +// UnMockCoreHRCreateCorehrPositionDelPosition un-mock CoreHRCreateCorehrPositionDelPosition method +func (r *Mock) UnMockCoreHRCreateCorehrPositionDelPosition() { + r.mockCoreHRCreateCorehrPositionDelPosition = nil +} + +// CreateCorehrPositionDelPositionReq ... +type CreateCorehrPositionDelPositionReq struct { + PositionID string `json:"position_id,omitempty"` // 岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914824" +} + +// CreateCorehrPositionDelPositionResp ... +type CreateCorehrPositionDelPositionResp struct { +} + +// createCorehrPositionDelPositionResp ... +type createCorehrPositionDelPositionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPositionDelPositionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_query.go b/api_corehr_position_query.go new file mode 100644 index 00000000..37c69592 --- /dev/null +++ b/api_corehr_position_query.go @@ -0,0 +1,144 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrPosition 支持通过岗位 ID、部门 ID 查询岗位的详细信息, 例如岗位关联的职务、职级、序列, 以及岗位描述, 是否关键岗位等 +// +// #### 前提条件: +// - 本接口会按照「岗位资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 +// #### 限制说明: +// - 在筛选 ID 和 查询字段对象个数过多时, 可能出现超时现象, 请减少筛选项和字段对象个数。阻塞性问题请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) +// - 所有筛选项可一起使用, 之间为 AND 关系 +// - 请求体入参不填写默认为空, 不参与筛选 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/query +func (r *CoreHRService) QueryCorehrPosition(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPosition mock enable") + return r.cli.mock.mockCoreHRQueryCorehrPosition(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrPosition", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrPositionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrPosition mock CoreHRQueryCorehrPosition method +func (r *Mock) MockCoreHRQueryCorehrPosition(f func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error)) { + r.mockCoreHRQueryCorehrPosition = f +} + +// UnMockCoreHRQueryCorehrPosition un-mock CoreHRQueryCorehrPosition method +func (r *Mock) UnMockCoreHRQueryCorehrPosition() { + r.mockCoreHRQueryCorehrPosition = nil +} + +// QueryCorehrPositionReq ... +type QueryCorehrPositionReq struct { + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631897745 + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表- department_ids参数的ID类型需与department_id_type参数取值一致- 可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: ["7094136522860922111"] 长度范围: `0` ~ `100` + EffectiveTime *string `json:"effective_time,omitempty"` // 生效日期, 格式是 YYYY-MM-DD示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + Active *bool `json:"active,omitempty"` // 启停用状态: true 为启用, false 为停用, 不传则默认都返回示例值: true + Fields []string `json:"fields,omitempty"` // 需要查询的字段列表, 为空时仅返回 wk_id。可选以下预置字段及自定义字段: "wk_id": 岗位 ID- "name": 名称- "code": 编码- "active": 状态- "department": 所属部门- "cost_center": 岗位默认成本中心- "job": 职务- "job_family": 序列- "job_level": 职级- "job_grade": 职等- "work_location": 工作地点- "employee_type": 人员类型- "working_hours_type": 工时制度- "direct_leader": 直属上级- "dotted_line_leader": 虚线上级- "is_key_position": 是否关键岗位- "description": 描述- "effective_time": 版本生效日期- "expiration_time": 版本过期时间- "created_by": 创建人- "custom_fields": 自定义字段(需传入具体的"custom_api_name")详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c"示例值: ["name"] 长度范围: `0` ~ `100` + PositionIDs []string `json:"position_ids,omitempty"` // 岗位 ID 列表示例值: ["7094136582860923111"] 长度范围: `0` ~ `200` + PositionCodes []string `json:"position_codes,omitempty"` // 岗位 Code 列表示例值: ["42232132221241561"] 长度范围: `0` ~ `200` +} + +// QueryCorehrPositionResp ... +type QueryCorehrPositionResp struct { + Items []*QueryCorehrPositionRespItem `json:"items,omitempty"` // 岗位信息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// QueryCorehrPositionRespItem ... +type QueryCorehrPositionRespItem struct { + PositionID string `json:"position_id,omitempty"` // 岗位 ID + Code string `json:"code,omitempty"` // 编码 + Names []*QueryCorehrPositionRespItemName `json:"names,omitempty"` // 名称 + Descriptions []*QueryCorehrPositionRespItemDescription `json:"descriptions,omitempty"` // 描述 + Active bool `json:"active,omitempty"` // 状态, true表示启用, false表示停用 + JobFamilyIDList []string `json:"job_family_id_list,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得 + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 + JobID string `json:"job_id,omitempty"` // 职务, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息 + JobLevelIDList []string `json:"job_level_id_list,omitempty"` // 职级 ID 列表, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 + EmployeeTypeIDList []string `json:"employee_type_id_list,omitempty"` // 人员类型 ID 列表, 可通过文档[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获得详细信息 + JobGradeIDList []string `json:"job_grade_id_list,omitempty"` // 职等 ID 列表, 可通过 [【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息 + WorkLocationIDList []string `json:"work_location_id_list,omitempty"` // 工作地点 ID 列表, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得 + WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID 列表, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)查询详细信息 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 详细信息可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得- 类型与 department_id_type 一致 + DirectLeaderID string `json:"direct_leader_id,omitempty"` // 直属上级岗位 ID, 可通过本接口查询详细信息- 若查询的是一级岗位, 则该字段不展示 + DottedLineLeaderID string `json:"dotted_line_leader_id,omitempty"` // 虚线上级岗位 ID, 可通过本接口查询详细信息 + IsKeyPosition bool `json:"is_key_position,omitempty"` // 是否关键岗位 + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 + ExpirationTime string `json:"expiration_time,omitempty"` // 失效日期 + CustomFields []*QueryCorehrPositionRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CreatedBy string `json:"created_by,omitempty"` // 创建人 +} + +// QueryCorehrPositionRespItemCustomField ... +type QueryCorehrPositionRespItemCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPositionRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPositionRespItemCustomFieldName ... +type QueryCorehrPositionRespItemCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPositionRespItemDescription ... +type QueryCorehrPositionRespItemDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPositionRespItemName ... +type QueryCorehrPositionRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrPositionResp ... +type queryCorehrPositionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrPositionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_query_recent_change.go b/api_corehr_position_query_recent_change.go new file mode 100644 index 00000000..3d889114 --- /dev/null +++ b/api_corehr_position_query_recent_change.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrPositionRecentChange 查询指定时间范围内信息发生变更的岗位, 仅当岗位当前生效版本的生效时间在查询时间范围内, 才返回该岗位id +// +// - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 +// - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 +// - 时间窗支持大范围查询, 限定查询范围在90天以内, 例如要查询2020年1月1日至2020年6月30日的数据, 建议分成两次查询, 分别为2020年1月1日至2020年3月31日, 2020年4月1日至2020年6月30日, 不建议查询大时间范围数据 +// - 未来生效的版本数据, 会在生效日期当天凌晨产生变更事件。例如: 今天为1月1日, 新建岗位 1月10日生效, 则1月10日凌晨 1点之后可查询到 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query_recent_change +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/query_recent_change +func (r *CoreHRService) QueryCorehrPositionRecentChange(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrPositionRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPositionRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCorehrPositionRecentChange(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrPositionRecentChange", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/query_recent_change", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrPositionRecentChangeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrPositionRecentChange mock CoreHRQueryCorehrPositionRecentChange method +func (r *Mock) MockCoreHRQueryCorehrPositionRecentChange(f func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCorehrPositionRecentChange = f +} + +// UnMockCoreHRQueryCorehrPositionRecentChange un-mock CoreHRQueryCorehrPositionRecentChange method +func (r *Mock) UnMockCoreHRQueryCorehrPositionRecentChange() { + r.mockCoreHRQueryCorehrPositionRecentChange = nil +} + +// QueryCorehrPositionRecentChangeReq ... +type QueryCorehrPositionRecentChangeReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 + EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS", 必须晚于start_date(查询的开始时间)示例值: 2024-04-01 00:00:00 +} + +// QueryCorehrPositionRecentChangeResp ... +type QueryCorehrPositionRecentChangeResp struct { + PositionIDs []string `json:"position_ids,omitempty"` // 岗位 ID 列表, 其中包含新建、更新以及删除的ID列表。- 可通过[【查询岗位信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)获取详情 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + DeletedPositionIDs []string `json:"deleted_position_ids,omitempty"` // 目标查询时间范围内被删除的岗位列表, 该列表是 position_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的岗位 IDs。- 由于对应的岗位已经被删除, 无法通过 ID 查询到历史数据。 +} + +// queryCorehrPositionRecentChangeResp ... +type queryCorehrPositionRecentChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrPositionRecentChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_position_update.go b/api_corehr_position_update.go new file mode 100644 index 00000000..15895136 --- /dev/null +++ b/api_corehr_position_update.go @@ -0,0 +1,116 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrPosition 更新岗位的版本信息, 例如岗位关联的职务、职级、序列, 以及岗位描述等 +// +// - 非必填字段, 不传时即不做变更 +// - 如果传入生效时间当天不存在版本则会自动生成一个版本。 +// - 如果传入生效时间当天存在版本则会修改该版本。 +// 岗位在关联人员、异动、入职对象信息及建立自身上下级关系后, 不允许更新部门 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/patch +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/patch +func (r *CoreHRService) UpdateCorehrPosition(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPosition mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrPosition(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrPosition", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/:position_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrPositionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrPosition mock CoreHRUpdateCorehrPosition method +func (r *Mock) MockCoreHRUpdateCorehrPosition(f func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error)) { + r.mockCoreHRUpdateCorehrPosition = f +} + +// UnMockCoreHRUpdateCorehrPosition un-mock CoreHRUpdateCorehrPosition method +func (r *Mock) UnMockCoreHRUpdateCorehrPosition() { + r.mockCoreHRUpdateCorehrPosition = nil +} + +// UpdateCorehrPositionReq ... +type UpdateCorehrPositionReq struct { + PositionID string `path:"position_id" json:"-"` // 岗位 ID 列表, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914824" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + Code *string `json:"code,omitempty"` // 编码 (不能与其他记录的编码重复)- 如果开启了岗位自动编码, 此字段传入不生效示例值: "A01234" + Names []*UpdateCorehrPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCorehrPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息示例值: "4719519211875096301" + JobID *string `json:"job_id,omitempty"` // 职务, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息示例值: "4719519211875096301" + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 ID 列表, 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 人员类型 ID 列表, 可通过文档[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获得详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + JobGradeIDs []string `json:"job_grade_ids,omitempty"` // 职等 ID 列表, 可通过 [【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 ID 列表, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` + WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID 列表, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)查询详细信息示例值: "4719519211875096301" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 详细信息可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得- 类型与 department_id_type 一致示例值: "4719519211875096301" + DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" + DottedLineLeaderID *string `json:"dotted_line_leader_id,omitempty"` // 虚线上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" + IsKeyPosition *bool `json:"is_key_position,omitempty"` // 是否关键岗位示例值: true + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期示例值: "2020-05-01" 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` + CustomFields []*UpdateCorehrPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` +} + +// UpdateCorehrPositionReqCustomField ... +type UpdateCorehrPositionReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")示例值: "\"231\"" +} + +// UpdateCorehrPositionReqDescription ... +type UpdateCorehrPositionReqDescription struct { + Lang string `json:"lang,omitempty"` // 语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 支持 zh-CN 和 en-US, 最大长度为 255 字符示例值: "张三" +} + +// UpdateCorehrPositionReqName ... +type UpdateCorehrPositionReqName struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // --支持 zh-CN 和 en-US, 最大长度为 255 字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "张三" +} + +// UpdateCorehrPositionResp ... +type UpdateCorehrPositionResp struct { +} + +// updateCorehrPositionResp ... +type updateCorehrPositionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrPositionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_complete.go b/api_corehr_pre_hire_complete.go new file mode 100644 index 00000000..8716e097 --- /dev/null +++ b/api_corehr_pre_hire_complete.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPreHireComplete 操作待入职员工完成入职, 正式入职建立员工和公司/组织的雇佣关系 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/complete +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/complete +func (r *CoreHRService) CreateCorehrPreHireComplete(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPreHireComplete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireComplete mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPreHireComplete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPreHireComplete", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id/complete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPreHireCompleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPreHireComplete mock CoreHRCreateCorehrPreHireComplete method +func (r *Mock) MockCoreHRCreateCorehrPreHireComplete(f func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error)) { + r.mockCoreHRCreateCorehrPreHireComplete = f +} + +// UnMockCoreHRCreateCorehrPreHireComplete un-mock CoreHRCreateCorehrPreHireComplete method +func (r *Mock) UnMockCoreHRCreateCorehrPreHireComplete() { + r.mockCoreHRCreateCorehrPreHireComplete = nil +} + +// CreateCorehrPreHireCompleteReq ... +type CreateCorehrPreHireCompleteReq struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" +} + +// CreateCorehrPreHireCompleteResp ... +type CreateCorehrPreHireCompleteResp struct { + Success bool `json:"success,omitempty"` // 是否成功完成入职 +} + +// createCorehrPreHireCompleteResp ... +type createCorehrPreHireCompleteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPreHireCompleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_create.go b/api_corehr_pre_hire_create.go index 7a8f3753..a91e1cf9 100644 --- a/api_corehr_pre_hire_create.go +++ b/api_corehr_pre_hire_create.go @@ -212,6 +212,23 @@ type CreateCoreHRPreHireReqBasicInfoDependentCustomField struct { Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } +// CreateCoreHRPreHireReqBasicInfoDependentNationalID ... +type CreateCoreHRPreHireReqBasicInfoDependentNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可以通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期, 格式: "YYYY-MM-DD"示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期, 格式: "YYYY-MM-DD"示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*CreateCoreHRPreHireReqBasicInfoDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPreHireReqBasicInfoDependentNationalIDCustomField ... +type CreateCoreHRPreHireReqBasicInfoDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + // CreateCoreHRPreHireReqBasicInfoDependentPhone ... type CreateCoreHRPreHireReqBasicInfoDependentPhone struct { InternationalAreaCode string `json:"international_area_code,omitempty"` // 手机区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" diff --git a/api_corehr_pre_hire_delete.go b/api_corehr_pre_hire_delete.go index 6dd8e09d..218bb4d8 100644 --- a/api_corehr_pre_hire_delete.go +++ b/api_corehr_pre_hire_delete.go @@ -64,7 +64,8 @@ type DeleteCoreHRPreHireReq struct { } // DeleteCoreHRPreHireResp ... -type DeleteCoreHRPreHireResp struct{} +type DeleteCoreHRPreHireResp struct { +} // deleteCoreHRPreHireResp ... type deleteCoreHRPreHireResp struct { diff --git a/api_corehr_pre_hire_delete_v2.go b/api_corehr_pre_hire_delete_v2.go new file mode 100644 index 00000000..09c64c6f --- /dev/null +++ b/api_corehr_pre_hire_delete_v2.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteCorehrPreHire 删除待入职人员, 删除后无法搜索到待入职人员信息, 请谨慎操作 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/delete +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/delete +func (r *CoreHRService) DeleteCorehrPreHire(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCorehrPreHire != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrPreHire mock enable") + return r.cli.mock.mockCoreHRDeleteCorehrPreHire(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DeleteCorehrPreHire", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteCorehrPreHireResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDeleteCorehrPreHire mock CoreHRDeleteCorehrPreHire method +func (r *Mock) MockCoreHRDeleteCorehrPreHire(f func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error)) { + r.mockCoreHRDeleteCorehrPreHire = f +} + +// UnMockCoreHRDeleteCorehrPreHire un-mock CoreHRDeleteCorehrPreHire method +func (r *Mock) UnMockCoreHRDeleteCorehrPreHire() { + r.mockCoreHRDeleteCorehrPreHire = nil +} + +// DeleteCorehrPreHireReq ... +type DeleteCorehrPreHireReq struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可通过[搜索接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取示例值: "7345005664477775407" +} + +// DeleteCorehrPreHireResp ... +type DeleteCorehrPreHireResp struct { +} + +// deleteCorehrPreHireResp ... +type deleteCorehrPreHireResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCorehrPreHireResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_get.go b/api_corehr_pre_hire_get.go index 57c647be..60adcff0 100644 --- a/api_corehr_pre_hire_get.go +++ b/api_corehr_pre_hire_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/pre_hire/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/pre_hire/get -// -// Deprecated func (r *CoreHRService) GetCoreHRPreHire(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRPreHire != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRPreHire mock enable") diff --git a/api_corehr_pre_hire_list.go b/api_corehr_pre_hire_list.go index 757a396d..b3da681b 100644 --- a/api_corehr_pre_hire_list.go +++ b/api_corehr_pre_hire_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/pre_hire/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/pre_hire/list -// -// Deprecated func (r *CoreHRService) GetCoreHRPreHireList(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRPreHireList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRPreHireList mock enable") diff --git a/api_corehr_pre_hire_query.go b/api_corehr_pre_hire_query.go new file mode 100644 index 00000000..b0b84159 --- /dev/null +++ b/api_corehr_pre_hire_query.go @@ -0,0 +1,1854 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrPreHire 该接口用于根据待入职人员 ID(支持批量)查询待入职人员信息, 信息包含姓名、手机号等个人信息和任职信息。 +// +// - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建待入职后2s内调用此接口可能查询不到数据。 +// - 性能说明: 本接口返回数据量较多, 查询时请控制每批次数量(<10)和适当减少查询字段数(<50) +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/query +func (r *CoreHRService) QueryCorehrPreHire(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrPreHire != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPreHire mock enable") + return r.cli.mock.mockCoreHRQueryCorehrPreHire(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrPreHire", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrPreHireResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrPreHire mock CoreHRQueryCorehrPreHire method +func (r *Mock) MockCoreHRQueryCorehrPreHire(f func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error)) { + r.mockCoreHRQueryCorehrPreHire = f +} + +// UnMockCoreHRQueryCorehrPreHire un-mock CoreHRQueryCorehrPreHire method +func (r *Mock) UnMockCoreHRQueryCorehrPreHire() { + r.mockCoreHRQueryCorehrPreHire = nil +} + +// QueryCorehrPreHireReq ... +type QueryCorehrPreHireReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 10示例值: 10 取值范围: `1` ~ `10` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + PreHireIDs []string `json:"pre_hire_ids,omitempty"` // 待入职人员 ID 列表示例值: ["7094136522860922112"] 长度范围: `0` ~ `10` + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 填写方式: 为空时只返回 pre_hire_id- 不为空时按照传入的字段返回数据, 数据结构可以参考response的数据结构, 格式示例如下: - person_info(个人信息) 字段: person_info.gender, person_info.age - employment_info(雇佣信息) 字段: employment_info.department - onboarding_info(入职信息) 字段: onboarding_info.onboarding_date - probation_info(试用期信息) 字段: probation_info.probation_period - contract_info(合同信息) 字段: contract_info.contract_type- 如果要返回所有下级, 只用传上级结构体名称, 例如 person_info- 返回数据越多, 查询接口性能越慢, 请按需填写返回字段示例值: ["employment_info.department"] 长度范围: `0` ~ `100` +} + +// QueryCorehrPreHireResp ... +type QueryCorehrPreHireResp struct { + Items []*QueryCorehrPreHireRespItem `json:"items,omitempty"` // 查询待入职的信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// QueryCorehrPreHireRespItem ... +type QueryCorehrPreHireRespItem struct { + PersonInfo *QueryCorehrPreHireRespItemPersonInfo `json:"person_info,omitempty"` // 个人信息 + EmploymentInfo *QueryCorehrPreHireRespItemEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 + OnboardingInfo *QueryCorehrPreHireRespItemOnboardingInfo `json:"onboarding_info,omitempty"` // 入职信息 + ProbationInfo *QueryCorehrPreHireRespItemProbationInfo `json:"probation_info,omitempty"` // 试用期信息 + ContractInfo *QueryCorehrPreHireRespItemContractInfo `json:"contract_info,omitempty"` // 合同信息 + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 id +} + +// QueryCorehrPreHireRespItemContractInfo ... +type QueryCorehrPreHireRespItemContractInfo struct { + ContractStartDate string `json:"contract_start_date,omitempty"` // 合同开始日期, 时间格式为 2023-09-01字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + ContractEndDate string `json:"contract_end_date,omitempty"` // 合同结束日期, 时间格式为 2023-09-01字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + ContractType string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = contract_type + DurationType string `json:"duration_type,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = duration_type + SigningType string `json:"signing_type,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = signing_type + ContractFileIDs []string `json:"contract_file_ids,omitempty"` // 合同文件字段权限要求: 待入职员工合同文件ID +} + +// QueryCorehrPreHireRespItemEmploymentInfo ... +type QueryCorehrPreHireRespItemEmploymentInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可以通过[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口获取详情ID转换: 支持根据department_id_type进行ID转换, 返回department_id_type对应的类型的ID。 + CostCenterRates []*QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + OfficeLocationID string `json:"office_location_id,omitempty"` // 办公地点 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 + WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点id, 可通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取详情 + WorkStation string `json:"work_station,omitempty"` // 工位 + WorkerID string `json:"worker_id,omitempty"` // 工号 + CompensationType *QueryCorehrPreHireRespItemEmploymentInfoCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: compensation_type - object_api_name: pre_hire字段权限要求(满足任一): 查看员工的薪资类型信息读写员工的薪资类型信息 + DirectLeaderID string `json:"direct_leader_id,omitempty"` // 直属上级雇佣 ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID, 可以通过【搜索员工信息】接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。字段权限要求: 获取待入职人员虚线上级 + JobID string `json:"job_id,omitempty"` // 职务 ID, 可以通过[查询职务](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/get)接口获取详情字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[查询序列](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_family/get)接口获取详情 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[查询职级](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_level/get)接口获取详情字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID字段权限要求(满足任一): 获取职等信息读写职等信息 + JobTitle string `json:"job_title,omitempty"` // 职务头衔字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过招聘[查询人员类型](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/employee_type/get)接口获取详情 + EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID + EmploymentType string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type + WorkEmail string `json:"work_email,omitempty"` // 工作邮箱 + CompanyID string `json:"company_id,omitempty"` // 公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + SocialSecurityCityID string `json:"social_security_city_id,omitempty"` // 社保城市 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 + NonCompeteCovenant bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款字段权限要求(满足任一): 查看竞业状态读写竞业状态 + WeeklyWorkingHours int64 `json:"weekly_working_hours,omitempty"` // 周工作时长(单位: 小时) + Rehire string `json:"rehire,omitempty"` // 是否离职重聘可选值有: 待确认, 系统会判断该员工是否存在历史雇佣记录, 如果存在且需要二次确认时会调用失败, 并返回历史雇佣记录否, 系统直接标为非离职重聘人员, 不再做重复判断是, 要求历史雇佣信息 ID 必填 + RehireEmploymentID string `json:"rehire_employment_id,omitempty"` // 历史雇佣信息 ID, 雇佣信息详细信息可以通过[查询单个雇佣信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/get) 获得, 系统会检验当前雇佣信息的合法性, 要求: 雇佣信息为该人员最后一次雇佣记录 - 雇佣信息的雇员状态 = "terminated" - 该人员不存在其他待入职记录 + WorkingHoursType string `json:"working_hours_type,omitempty"` // 工时制度 ID, 可通过[查询单个工时制度](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/working_hours_type/get)接口获取详情 + WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长v2(单位: 小时)浮点类型 + OfficeAddress *QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress `json:"office_address,omitempty"` // 办公地址字段权限要求: 获取办公地址 + WorkingCalendarID string `json:"working_calendar_id,omitempty"` // 工作日历ID, 可以通过[查询工作日历](https://open.larkoffice.com/document/server-docs/calendar-v4/calendar/get)接口获取详情字段权限要求: 获取工作日历 + UpdatedAt string `json:"updated_at,omitempty"` // 更新时间, 时间格式为 2023-09-01 13:21:12 + SuspectedRehiring bool `json:"suspected_rehiring,omitempty"` // 是否疑似重聘字段权限要求: 获取是否疑似重聘 + ConditionWorker bool `json:"condition_worker,omitempty"` // 是否外部人员 + CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取雇佣信息自定义字段信息 + PositionID string `json:"position_id,omitempty"` // 岗位 ID, 可以通过[查询岗位信息]接口获取详情- 部门的岗职模式会影响岗位数据, 在职务模式和岗位模式下, 岗位id是必填- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求(满足任一): 获取员工的岗位信息读写员工的岗位信息 + CompanyManualUpdated bool `json:"company_manual_updated,omitempty"` // 公司主体是否被手动修改字段权限要求: 查看待入职是否被更新过公司主体 + PayGroup *QueryCorehrPreHireRespItemEmploymentInfoPayGroup `json:"pay_group,omitempty"` // 薪资组信息字段权限要求: 获取薪资组信息 + WhetherTheInformationIsAbnormal bool `json:"whether_the_information_is_abnormal,omitempty"` // 是否信息异常字段权限要求: 获取待入职的异常信息 + AbnormalReason []*QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason `json:"abnormal_reason,omitempty"` // 异常原因列表字段权限要求: 获取待入职的异常信息 + HasOfferSalary bool `json:"has_offer_salary,omitempty"` // 是否有 Offer 薪酬字段权限要求: 查看是否有 Offer 薪酬 + RecruitmentProjectID string `json:"recruitment_project_id,omitempty"` // 招聘项目 ID字段权限要求: 查看待入职的招聘项目 + WorkShift *QueryCorehrPreHireRespItemEmploymentInfoWorkShift `json:"work_shift,omitempty"` // 排班类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: work_shift- object_api_name: pre_hire字段权限要求: 获取排班信息 + CreatedAt string `json:"created_at,omitempty"` // 创建时间, 时间格式为 2023-09-01 13:21:12 + CreatedBy string `json:"created_by,omitempty"` // 待入职信息 创建人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + UpdatedBy string `json:"updated_by,omitempty"` // 待入职信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + BackgroundCheckOrderID string `json:"background_check_order_id,omitempty"` // 背调订单ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调订单ID + BackgroundCheckOrderName string `json:"background_check_order_name,omitempty"` // 背调名称- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调名称 + BackgroundCheckOrderPackageName string `json:"background_check_order_package_name,omitempty"` // 背调套餐- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调套餐 + BackgroundCheckOrderResult string `json:"background_check_order_result,omitempty"` // 背调结果- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调结果 + BackgroundCheckOrderSupplierName string `json:"background_check_order_supplier_name,omitempty"` // 背调供应商- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调供应商 + BackgroundCheckOrderAccountName string `json:"background_check_order_account_name,omitempty"` // 背调账号名称- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调账号名称 + BackgroundCheckOrderStartTime string `json:"background_check_order_start_time,omitempty"` // 背调开始时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调开始时间 + BackgroundCheckOrderCompleteTime string `json:"background_check_order_complete_time,omitempty"` // 背调完成时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调完成时间 + BackgroundCheckOrderStatus *QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus `json:"background_check_order_status,omitempty"` // 背调状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = background_check_order_status- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调状态 + SeniorityAdjustInformationList []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveVoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationInvoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveInvoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + WorkingHoursTypeManualUpdated bool `json:"working_hours_type_manual_updated,omitempty"` // 工时制度是否被手动修改 + IsOverDue bool `json:"is_over_due,omitempty"` // 入职任务是否逾期 + TaskCompleted bool `json:"task_completed,omitempty"` // 入职任务是否完成, 暂不推荐使用 + ExpectedGraduateDate string `json:"expected_graduate_date,omitempty"` // 预计毕业日期 + ServiceCompany string `json:"service_company,omitempty"` // 任职公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得 + Pathway string `json:"pathway,omitempty"` // 通道 + DefaultCostCenter *QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *QueryCorehrPreHireRespItemEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReuseFeishuAccount string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReusedFeishuAccountID string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 返回Lark Union ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) +} + +// QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason ... +type QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason struct { + Descriptions []*QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription `json:"descriptions,omitempty"` // 异常信息描述 +} + +// QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription ... +type QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus ... +type QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay ... +type QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCompensationType ... +type QueryCorehrPreHireRespItemEmploymentInfoCompensationType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay ... +type QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCostAllocation ... +type QueryCorehrPreHireRespItemEmploymentInfoCostAllocation struct { + EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期 + ExpirationTime string `json:"expiration_time,omitempty"` // 分摊失效日期 + CostCenterRates []*QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate ... +type QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate ... +type QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 +} + +// QueryCorehrPreHireRespItemEmploymentInfoCustomField ... +type QueryCorehrPreHireRespItemEmploymentInfoCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName ... +type QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter ... +type QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 + IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心 + InheritSource string `json:"inherit_source,omitempty"` // 继承来源 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName `json:"name,omitempty"` // 名称 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName `json:"name,omitempty"` // 名称 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName `json:"name,omitempty"` // 名称 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName `json:"name,omitempty"` // 名称 +} + +// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName ... +type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress ... +type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + RegionID string `json:"region_id,omitempty"` // 主要行政区ID 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 + CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType ... +type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay ... +type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField ... +type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName ... +type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemEmploymentInfoPayGroup ... +type QueryCorehrPreHireRespItemEmploymentInfoPayGroup struct { + Name []*QueryCorehrPreHireRespItemEmploymentInfoPayGroupName `json:"name,omitempty"` // 薪资组名称 + ID string `json:"id,omitempty"` // 薪资组 ID +} + +// QueryCorehrPreHireRespItemEmploymentInfoPayGroupName ... +type QueryCorehrPreHireRespItemEmploymentInfoPayGroupName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation ... +type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation struct { + SeniorityAdjustment float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年 + SeniorityAdjustmentType *QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type + ReasonsForSeniorityAdjustment string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField ... +type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName ... +type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType ... +type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay ... +type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemEmploymentInfoWorkShift ... +type QueryCorehrPreHireRespItemEmploymentInfoWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay ... +type QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemOnboardingInfo ... +type QueryCorehrPreHireRespItemOnboardingInfo struct { + OfferID string `json:"offer_id,omitempty"` // Offer ID, 可以通过招聘[获取 Offer 列表](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/offer/list)接口获取详情 + OfferHRID string `json:"offer_hr_id,omitempty"` // Offer HR 的 雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型ID转换: 不支持根据user_id_type进行ID转换, 返回people_corehr_id 类型的ID。 + OfferHRIDV2 string `json:"offer_hr_id_v2,omitempty"` // Offer hr 的 雇佣 ID, ID可以根据user_id_type转换成对应ID + EntryMode string `json:"entry_mode,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire - custom_api_name = onboarding_method + OnboardingDate string `json:"onboarding_date,omitempty"` // 入职日期, 时间格式为 2023-09-01 + AtsApplicationID string `json:"ats_application_id,omitempty"` // 招聘投递 ID, 详细信息可以通过招聘[获取投递信息](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/get)接口查询获得详情 + RecruitmentType string `json:"recruitment_type,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type + OnboardingLocationID string `json:"onboarding_location_id,omitempty"` // 入职地点 ID, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 + CompanySponsoredVisa bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证字段权限要求: 查看签证要求 + OnboardingStatus string `json:"onboarding_status,omitempty"` // 入职状态可选值有: 待入职已删除准备就绪已撤销已完成 + OnboardingTaskList []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask `json:"onboarding_task_list,omitempty"` // 入职任务列表 + OnboardingAddress *QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress `json:"onboarding_address,omitempty"` // 入职地址字段权限要求: 获取入职地址 + FlowName []*QueryCorehrPreHireRespItemOnboardingInfoFlowName `json:"flow_name,omitempty"` // 入职流程字段权限要求: 获取入职流程 + FlowID string `json:"flow_id,omitempty"` // 入职流程 ID字段权限要求: 获取入职流程 + CheckInTime string `json:"check_in_time,omitempty"` // 签到时间, 时间格式为 2023-09-01 13:21:12字段权限要求: 获取待入职人员的签到数据 + CheckInMethod *QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod `json:"check_in_method,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: check_in_method- object_api_name: pre_hire字段权限要求: 获取待入职人员的签到数据 +} + +// QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod ... +type QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay ... +type QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemOnboardingInfoFlowName ... +type QueryCorehrPreHireRespItemOnboardingInfoFlowName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + RegionID string `json:"region_id,omitempty"` // 主要行政区ID 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 + CustomFields []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask ... +type QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask struct { + TaskName string `json:"task_name,omitempty"` // 任务名称 + TaskStatus string `json:"task_status,omitempty"` // 任务状态可选值有: 发起中已终止异常进行中未开始已跳过未初始化已失败审核中已退回已完成 + OperatorID string `json:"operator_id,omitempty"` // 当前操作人雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + TaskCode string `json:"task_code,omitempty"` // 任务code +} + +// QueryCorehrPreHireRespItemPersonInfo ... +type QueryCorehrPreHireRespItemPersonInfo struct { + PersonID string `json:"person_id,omitempty"` // 个人信息 ID + PhoneNumber string `json:"phone_number,omitempty"` // 个人电话字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 + LegalName string `json:"legal_name,omitempty"` // 法定姓名字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 + PreferredLocalFullName string `json:"preferred_local_full_name,omitempty"` // 常用本地全名 + PreferredEnglishFullName string `json:"preferred_english_full_name,omitempty"` // 常用英文全名 + NameList []*QueryCorehrPreHireRespItemPersonInfoName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 + Gender *QueryCorehrPreHireRespItemPersonInfoGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gendar)枚举定义获得字段权限要求(满足任一): 获取性别信息读写性别信息 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期字段权限要求(满足任一): 获取生日信息读写生日信息 + NationalityIDV2 string `json:"nationality_id_v2,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取字段权限要求(满足任一): 获取国籍信息读写国籍信息 + Race *QueryCorehrPreHireRespItemPersonInfoRace `json:"race,omitempty"` // 民族, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义获得字段权限要求: 获取民族/种族信息 + MaritalStatus *QueryCorehrPreHireRespItemPersonInfoMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义获得字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 + PhoneList []*QueryCorehrPreHireRespItemPersonInfoPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 + AddressList []*QueryCorehrPreHireRespItemPersonInfoAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 + EmailList []*QueryCorehrPreHireRespItemPersonInfoEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 + WorkExperienceList []*QueryCorehrPreHireRespItemPersonInfoWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 + EducationList []*QueryCorehrPreHireRespItemPersonInfoEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + BankAccountList []*QueryCorehrPreHireRespItemPersonInfoBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 + NationalIDList []*QueryCorehrPreHireRespItemPersonInfoNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 + DependentList []*QueryCorehrPreHireRespItemPersonInfoDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 + EmergencyContactList []*QueryCorehrPreHireRespItemPersonInfoEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期字段权限要求(满足任一): 获取参加工作日期读写参加工作日期 + WorkingYears int64 `json:"working_years,omitempty"` // 工龄 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + EmailAddress string `json:"email_address,omitempty"` // 邮箱地址字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 + Age int64 `json:"age,omitempty"` // 年龄字段权限要求(满足任一): 获取生日信息读写生日信息 + HighestLevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + HighestDegreeOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + PersonalProfile []*QueryCorehrPreHireRespItemPersonInfoPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 + TalentID string `json:"talent_id,omitempty"` // 人才 ID + CustomFields []*QueryCorehrPreHireRespItemPersonInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 + NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码字段权限要求(满足任一): 获取证件信息读写证件信息 + FamilyAddress string `json:"family_address,omitempty"` // 家庭地址字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 + PersonInfoChns []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChn `json:"person_info_chns,omitempty"` // 个人附加信息 + BornCountryRegion string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情字段权限要求(满足任一): 获取出生国家/地区信息读写出生国家/地区信息 + IsDisabled bool `json:"is_disabled,omitempty"` // 是否残疾字段权限要求(满足任一): 获取残疾信息读写残疾信息 + DisableCardNumber string `json:"disable_card_number,omitempty"` // 残疾证号字段权限要求(满足任一): 获取残疾信息读写残疾信息 + IsMartyrFamily bool `json:"is_martyr_family,omitempty"` // 是否烈属字段权限要求(满足任一): 获取烈属信息读写烈属信息 + MartyrCardNumber string `json:"martyr_card_number,omitempty"` // 烈属证号字段权限要求(满足任一): 获取烈属信息读写烈属信息 + IsOldAlone bool `json:"is_old_alone,omitempty"` // 是否孤老字段权限要求(满足任一): 获取孤老信息读写孤老信息 + ResidentTaxes []*QueryCorehrPreHireRespItemPersonInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 + Religion *QueryCorehrPreHireRespItemPersonInfoReligion `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: religion- object_api_name: person字段权限要求(满足任一): 查看宗教信仰信息读写宗教信仰信息 + WorkingYearsV2 float64 `json:"working_years_v2,omitempty"` // 工龄 (单位: 年)浮点类型 + CreatedAt string `json:"created_at,omitempty"` // 个人信息 创建时间, 时间格式为 2023-09-01 13:21:12 + UpdatedAt string `json:"updated_at,omitempty"` // 个人信息 更新时间, 时间格式为 2023-09-01 13:21:12 + CreatedBy string `json:"created_by,omitempty"` // 个人信息 创建人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + UpdatedBy string `json:"updated_by,omitempty"` // 个人信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行卡号字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 + PassportNumber string `json:"passport_number,omitempty"` // 护照号码字段权限要求: 获取护照号码 + FormerEmployer []*QueryCorehrPreHireRespItemPersonInfoFormerEmployer `json:"former_employer,omitempty"` // 上家公司字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 +} + +// QueryCorehrPreHireRespItemPersonInfoAddress ... +type QueryCorehrPreHireRespItemPersonInfoAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + RegionID string `json:"region_id,omitempty"` // 主要行政区ID 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + CityIDV2 string `json:"city_id_v2,omitempty"` // 城市, 可以通过接口[查询城市信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取详情 + DistrictIDV2 string `json:"district_id_v2,omitempty"` // 区/县, 可以通过接口[查询区/县信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)获取详情 + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrPreHireRespItemPersonInfoAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoAddressAddressType ... +type QueryCorehrPreHireRespItemPersonInfoAddressAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoAddressCustomField ... +type QueryCorehrPreHireRespItemPersonInfoAddressCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccount ... +type QueryCorehrPreHireRespItemPersonInfoBankAccount struct { + BankName string `json:"bank_name,omitempty"` // 银行名称 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + BranchName string `json:"branch_name,omitempty"` // 支行名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + BankAccountUsage []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义获得 + BankAccountType *QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义获得 + PaymentType *QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType `json:"payment_type,omitempty"` // 分配方式, 枚举值可通过文档【飞书人事枚举常量】分配方式(Payment Type)枚举定义部分获得 + PaymentRate string `json:"payment_rate,omitempty"` // 分配比例 + PaymentAmount string `json:"payment_amount,omitempty"` // 分配金额 + Priority int64 `json:"priority,omitempty"` // 分配优先级 + CurrencyID string `json:"currency_id,omitempty"` // 货币id + CustomFields []*QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoCustomField ... +type QueryCorehrPreHireRespItemPersonInfoCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoDependent ... +type QueryCorehrPreHireRespItemPersonInfoDependent struct { + ID string `json:"id,omitempty"` // ID + Name *QueryCorehrPreHireRespItemPersonInfoDependentName `json:"name,omitempty"` // 姓名 + Relationship *QueryCorehrPreHireRespItemPersonInfoDependentRelationship `json:"relationship,omitempty"` // 关系 + Gender *QueryCorehrPreHireRespItemPersonInfoDependentGender `json:"gender,omitempty"` // 性别 + DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 + NationalIDList []*QueryCorehrPreHireRespItemPersonInfoDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态 + IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 + IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 + Employer string `json:"employer,omitempty"` // 工作单位 + Job string `json:"job,omitempty"` // 岗位 + Phone *QueryCorehrPreHireRespItemPersonInfoDependentPhone `json:"phone,omitempty"` // 电话 + Address *QueryCorehrPreHireRespItemPersonInfoDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentAddress ... +type QueryCorehrPreHireRespItemPersonInfoDependentAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + AddressID string `json:"address_id,omitempty"` // 地址 ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + RegionID string `json:"region_id,omitempty"` // 主要行政区ID 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + AddressTypeList []*QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 + IsPublic bool `json:"is_public,omitempty"` // 公开地址 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType ... +type QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField ... +type QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild ... +type QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild struct { + ID string `json:"id,omitempty"` // 上传文件ID + Name string `json:"name,omitempty"` // 文件名 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentCustomField ... +type QueryCorehrPreHireRespItemPersonInfoDependentCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentGender ... +type QueryCorehrPreHireRespItemPersonInfoDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentName ... +type QueryCorehrPreHireRespItemPersonInfoDependentName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + NameType *QueryCorehrPreHireRespItemPersonInfoDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Social *QueryCorehrPreHireRespItemPersonInfoDependentNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCorehrPreHireRespItemPersonInfoDependentNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameNameType ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameSocial ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameTitle ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNationalID ... +type QueryCorehrPreHireRespItemPersonInfoDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField ... +type QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhone ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhone struct { + InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 + IsPublic bool `json:"is_public,omitempty"` // 公开电话 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentRelationship ... +type QueryCorehrPreHireRespItemPersonInfoDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus ... +type QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay ... +type QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducation ... +type QueryCorehrPreHireRespItemPersonInfoEducation struct { + School []*QueryCorehrPreHireRespItemPersonInfoEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 + FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCorehrPreHireRespItemPersonInfoEducationDegree `json:"degree,omitempty"` // 学位 + SchoolName *QueryCorehrPreHireRespItemPersonInfoEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationCustomField ... +type QueryCorehrPreHireRespItemPersonInfoEducationCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationDegree ... +type QueryCorehrPreHireRespItemPersonInfoEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy ... +type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName ... +type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation ... +type QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationSchool ... +type QueryCorehrPreHireRespItemPersonInfoEducationSchool struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationSchoolName ... +type QueryCorehrPreHireRespItemPersonInfoEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmail ... +type QueryCorehrPreHireRespItemPersonInfoEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱 + EmailUsage *QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)邮箱用途(email_usage)枚举定义获得 +} + +// QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage ... +type QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContact ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContact struct { + ID string `json:"id,omitempty"` // ID + Name *QueryCorehrPreHireRespItemPersonInfoEmergencyContactName `json:"name,omitempty"` // 姓名 + Relationship *QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship `json:"relationship,omitempty"` // 关系 + PhoneIst []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 + PhoneList []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + IsPrimary bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactName ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + NameType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Social *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone struct { + InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 + IsPublic bool `json:"is_public,omitempty"` // 公开电话 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst struct { + InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 + IsPublic bool `json:"is_public,omitempty"` // 公开电话 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay ... +type QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoFormerEmployer ... +type QueryCorehrPreHireRespItemPersonInfoFormerEmployer struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoGender ... +type QueryCorehrPreHireRespItemPersonInfoGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoGenderDisplay ... +type QueryCorehrPreHireRespItemPersonInfoGenderDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation struct { + School []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 + FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation struct { + School []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 + FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay ... +type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoMaritalStatus ... +type QueryCorehrPreHireRespItemPersonInfoMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay ... +type QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoName ... +type QueryCorehrPreHireRespItemPersonInfoName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + NameType *QueryCorehrPreHireRespItemPersonInfoNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Social *QueryCorehrPreHireRespItemPersonInfoNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCorehrPreHireRespItemPersonInfoNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) +} + +// QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType ... +type QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoNameNameType ... +type QueryCorehrPreHireRespItemPersonInfoNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoNameSocial ... +type QueryCorehrPreHireRespItemPersonInfoNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay ... +type QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoNameTitle ... +type QueryCorehrPreHireRespItemPersonInfoNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay ... +type QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoNationalID ... +type QueryCorehrPreHireRespItemPersonInfoNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField ... +type QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonInfoChn ... +type QueryCorehrPreHireRespItemPersonInfoPersonInfoChn struct { + NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情字段权限要求(满足任一): 获取籍贯信息读写籍贯信息 + HukouType *QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)户口类型(hukou_type)枚举定义获得字段权限要求(满足任一): 获取户口信息读写户口信息 + HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地字段权限要求(满足任一): 获取户口信息读写户口信息 + PoliticalAffiliations []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)政治面貌(political_affiliation)枚举定义获得字段权限要求: 获取政治面貌信息 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType ... +type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation ... +type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonalProfile ... +type QueryCorehrPreHireRespItemPersonInfoPersonalProfile struct { + PersonalProfileType *QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: profile_type- object_api_name: personal_profile + Files []*QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile `json:"files,omitempty"` // 文件列表 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile ... +type QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile struct { + ID string `json:"id,omitempty"` // 文件ID, 文件内容可通过[下载文件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get)接口获取 + Name string `json:"name,omitempty"` // 文件名 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType ... +type QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoPhone ... +type QueryCorehrPreHireRespItemPersonInfoPhone struct { + InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 + IsPublic bool `json:"is_public,omitempty"` // 公开电话 +} + +// QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType ... +type QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode ... +type QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage ... +type QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay ... +type QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoRace ... +type QueryCorehrPreHireRespItemPersonInfoRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoRaceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoRaceDisplay ... +type QueryCorehrPreHireRespItemPersonInfoRaceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoReligion ... +type QueryCorehrPreHireRespItemPersonInfoReligion struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoReligionDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoReligionDisplay ... +type QueryCorehrPreHireRespItemPersonInfoReligionDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoResidentTaxe ... +type QueryCorehrPreHireRespItemPersonInfoResidentTaxe struct { + YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度 + ResidentStatus *QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus `json:"resident_status,omitempty"` // resident_status居民身份, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: resident_status- object_api_name: resident_tax + TaxCountryRegionID string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 +} + +// QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField ... +type QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus ... +type QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay ... +type QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperience ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperience struct { + CompanyOrganization []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 + CustomFields []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob ... +type QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// QueryCorehrPreHireRespItemProbationInfo ... +type QueryCorehrPreHireRespItemProbationInfo struct { + ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期, 时间格式为 2023-09-01 + ProbationEndDate string `json:"probation_end_date,omitempty"` // 试用期结束日期, 时间格式为 2023-09-01 + ProbationPeriod int64 `json:"probation_period,omitempty"` // 试用期时长(单位: 天) +} + +// queryCorehrPreHireResp ... +type queryCorehrPreHireResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrPreHireResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_restore_flow_instance.go b/api_corehr_pre_hire_restore_flow_instance.go new file mode 100644 index 00000000..20d2079a --- /dev/null +++ b/api_corehr_pre_hire_restore_flow_instance.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPreHireRestoreFlowInstance 通过本接口对指定已撤销的待入职员工执行恢复入职操作, 对应入职管理页面恢复入职按钮 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/restore_flow_instance +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/restore_flow_instance +func (r *CoreHRService) CreateCorehrPreHireRestoreFlowInstance(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPreHireRestoreFlowInstance != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireRestoreFlowInstance mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPreHireRestoreFlowInstance(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPreHireRestoreFlowInstance", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/restore_flow_instance", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPreHireRestoreFlowInstanceResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPreHireRestoreFlowInstance mock CoreHRCreateCorehrPreHireRestoreFlowInstance method +func (r *Mock) MockCoreHRCreateCorehrPreHireRestoreFlowInstance(f func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error)) { + r.mockCoreHRCreateCorehrPreHireRestoreFlowInstance = f +} + +// UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance un-mock CoreHRCreateCorehrPreHireRestoreFlowInstance method +func (r *Mock) UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance() { + r.mockCoreHRCreateCorehrPreHireRestoreFlowInstance = nil +} + +// CreateCorehrPreHireRestoreFlowInstanceReq ... +type CreateCorehrPreHireRestoreFlowInstanceReq struct { + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" + ConfirmWorkforce *bool `json:"confirm_workforce,omitempty"` // 是否强制占编;true为强制占编;false为非强制占编示例值: false +} + +// CreateCorehrPreHireRestoreFlowInstanceResp ... +type CreateCorehrPreHireRestoreFlowInstanceResp struct { + Success bool `json:"success,omitempty"` // 是否成功恢复入职 +} + +// createCorehrPreHireRestoreFlowInstanceResp ... +type createCorehrPreHireRestoreFlowInstanceResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPreHireRestoreFlowInstanceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_search.go b/api_corehr_pre_hire_search.go index 6fb60b47..6939ac0a 100644 --- a/api_corehr_pre_hire_search.go +++ b/api_corehr_pre_hire_search.go @@ -21,11 +21,14 @@ import ( "context" ) -// SearchCoreHRPreHire 搜索待入职人员信息。 +// SearchCoreHRPreHire 该接口用于根据工号/待入职人员 ID /入职地点等查询条件搜索待入职人员信息。 // -// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请「待入职人员」权限范围 +// - 查询的待入职数量及字段越多, 耗时越久, 使用时建议细化指定需要的字段。 +// - 创建待入职后, 会有5秒内的数据延迟导致搜索不到数据 +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/search func (r *CoreHRService) SearchCoreHRPreHire(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRPreHire != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRPreHire mock enable") @@ -59,28 +62,33 @@ func (r *Mock) UnMockCoreHRSearchCoreHRPreHire() { // SearchCoreHRPreHireReq ... type SearchCoreHRPreHireReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_corehr_id: 以飞书人事的 ID 来识别用户, 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 示例值: open_department_id, 可选值有: open_department_id: 以 open_department_id 来标识部门, department_id: 以 department_id 来标识部门, people_corehr_department_id: 以 people_corehr_department_id 来标识部门, 默认值: `open_department_id` - WorkerIDs []string `json:"worker_ids,omitempty"` // 待入职人员工号列表, 示例值: ["A55045"], 最大长度: `100` - PreHireIDs []string `json:"pre_hire_ids,omitempty"` // 待入职人员 ID 列表, 示例值: ["7094136522860922112"], 最大长度: `100` - OnboardingDateStart *string `json:"onboarding_date_start,omitempty"` // 入职日期-搜索范围开始, 需要与搜索范围结束一同使用, 示例值: "2006-01-02" - OnboardingDateEnd *string `json:"onboarding_date_end,omitempty"` // 入职日期-搜索范围结束, 示例值: "2006-01-02" - OnboardingLocationIDs []string `json:"onboarding_location_ids,omitempty"` // 入职地点 ID 列表, 示例值: ["7094136522860922112"], 最大长度: `100` - OnboardingStatus *string `json:"onboarding_status,omitempty"` // 入职状态, 示例值: "preboarding", 可选值有: preboarding: 待入职, deleted: 已删除, day_one: 准备就绪, withdrawn: 已撤销, completed: 已完成 - DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 示例值: ["7094136522860922111"], 最大长度: `100` - DirectManagerIDs []string `json:"direct_manager_ids,omitempty"` // 直接上级的雇佣 ID 列表, 示例值: ["7094136522860922111"], 最大长度: `100` - EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 人员类型 ID 列表, 示例值: ["7094136522860922111"], 最大长度: `100` - JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 示例值: ["7094136522860922111"], 最大长度: `100` - KeyWord *string `json:"key_word,omitempty"` // 搜索关键字, 支持对常用名模糊搜索 + 工号精确搜索, 示例值: "张三" - Rehire *string `json:"rehire,omitempty"` // 是否离职重聘, 示例值: "张三", 可选值有: to_be_confirmed: 待确认, 系统会判断该员工是否存在历史雇佣记录, 如果存在且需要二次确认时会调用失败, 并返回历史雇佣记录, no: 否, 系统直接标为非离职重聘人员, 不再做重复判断, yes: 是, 要求历史雇佣信息 ID 必填 - Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 填写方式: 为空时只返回 pre_hire_id, 不为空时按照传入的字段返回数据, 格式如下: person_info 字段: person_info.gender, person_info.age, employment_info 字段: employment_info.department, onboarding_info 字段: onboarding_info.onboarding_date, probation_info 字段: probation_info.probation_period, contract_info 字段: contract_info.contract_type, 如果要返回所有下级, 只用传上级结构体名称, 例如 person_info, 返回数据越多, 查询接口性能越慢, 请按需填写返回字段, 示例值: ["employment_info.department"], 最大长度: `100` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + WorkerIDs []string `json:"worker_ids,omitempty"` // 待入职人员工号列表, 如果不填写, 则不根据工号过滤待入职数据。示例值: ["A55045"] 最大长度: `100` + PreHireIDs []string `json:"pre_hire_ids,omitempty"` // 待入职人员 ID 列表, 如果不填写, 则搜索全部待入职。示例值: ["7094136522860922112"] 最大长度: `100` + PersonIDs []string `json:"person_ids,omitempty"` // 个人信息 ID 列表, 可以通过[【事件】更新个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/events/updated)获取示例值: ["7094136522860922112"] 最大长度: `100` + OnboardingDateStart *string `json:"onboarding_date_start,omitempty"` // 入职日期(搜索的起始时间), 需要与入职日期(onboarding_date_end)一同使用, 不填写则不根据入职日期过滤。示例值: "2006-01-02" + OnboardingDateEnd *string `json:"onboarding_date_end,omitempty"` // 入职日期(搜索的结束时间), 需要与入职日期(onboarding_date_start)一同使用, 不填写则不根据入职日期过滤。示例值: "2006-01-02" + UpdatedDateStart *string `json:"updated_date_start,omitempty"` // 待入职数据更新时间(搜索的起始时间), 需要与更新时间(updated_date_end)一同使用, 不填写则不根据数据更新时间过滤。示例值: "2006-01-02" + UpdatedDateEnd *string `json:"updated_date_end,omitempty"` // 待入职数据更新时间(搜索的结束时间), 需要与更新时间(updated_date_start)一同使用, 不填写则不根据数据更新时间过滤。示例值: "2006-01-02" + OnboardingLocationIDs []string `json:"onboarding_location_ids,omitempty"` // 入职地点 ID 列表, 可通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: ["7094136522860922112"] 最大长度: `100` + OnboardingStatus *string `json:"onboarding_status,omitempty"` // 入职状态, 不填写则搜索全部入职状态的数据。示例值: "preboarding"可选值有: 待入职已删除准备就绪已撤销已完成 + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, ID类型与查询参数 department_id_type的取值保持一致, ID值可以通过[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口获取ID转换: 支持根据department_id_type进行ID转换, 返回department_id_type对应的类型的ID。示例值: ["7094136522860922111"] 最大长度: `100` + DirectManagerIDs []string `json:"direct_manager_ids,omitempty"` // 直接上级的雇佣 ID 列表, ID类型与查询参数user_id_type的取值保持一致, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。示例值: ["7094136522860922111"] 最大长度: `100` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 人员类型 ID 列表, 可以通过接口[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: ["7094136522860922111"] 最大长度: `100` + EmployeeSubtypeIDs []string `json:"employee_subtype_ids,omitempty"` // 人员子类型 ID 列表示例值: ["7094136522860922111"] 最大长度: `100` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 可以通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: ["7094136522860922111"] 最大长度: `100` + KeyWord *string `json:"key_word,omitempty"` // 搜索关键字, 支持对常用名模糊搜索 + 工号精确搜索, 不填写则搜索全部数据。示例值: "张三" + ConditionWorker *bool `json:"condition_worker,omitempty"` // 是否外部人员示例值: true + Rehire *string `json:"rehire,omitempty"` // 是否离职重聘, 不填写则搜索全部数据。示例值: "to_be_confirmed"可选值有: 待确认否是 + Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 填写方式: 为空时只返回 pre_hire_id- 不为空时按照传入的字段返回数据, 格式如下: - person_info 字段: person_info.gender, person_info.age - employment_info 字段: employment_info.department - onboarding_info 字段: onboarding_info.onboarding_date - probation_info 字段: probation_info.probation_period - contract_info 字段: contract_info.contract_type- 如果要返回所有下级, 只用传上级结构体名称, 例如 person_info- 返回数据越多, 查询接口性能越慢, 请按需填写返回字段示例值: ["employment_info.department"] 最大长度: `100` } // SearchCoreHRPreHireResp ... type SearchCoreHRPreHireResp struct { - Items []*SearchCoreHRPreHireRespItem `json:"items,omitempty"` // 查询的部门信息 + Items []*SearchCoreHRPreHireRespItem `json:"items,omitempty"` // 查询的待入职信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } @@ -97,44 +105,107 @@ type SearchCoreHRPreHireRespItem struct { // SearchCoreHRPreHireRespItemContractInfo ... type SearchCoreHRPreHireRespItemContractInfo struct { - ContractStartDate string `json:"contract_start_date,omitempty"` // 合同开始日期, 字段权限要求(满足任一): 获取合同期限信息, 读写合同期限信息 - ContractEndDate string `json:"contract_end_date,omitempty"` // 合同结束日期, 字段权限要求(满足任一): 获取合同期限信息, 读写合同期限信息 - ContractType string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = contract_type - DurationType string `json:"duration_type,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = duration_type - SigningType string `json:"signing_type,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = signing_type + ContractStartDate string `json:"contract_start_date,omitempty"` // 合同开始日期, 时间格式为 2022-01-02字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + ContractEndDate string `json:"contract_end_date,omitempty"` // 合同结束日期, 时间格式为 2022-01-02字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + ContractType string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = contract_type + DurationType string `json:"duration_type,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = duration_type + SigningType string `json:"signing_type,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = signing_type + ContractFileIDs []string `json:"contract_file_ids,omitempty"` // 合同文件字段权限要求: 待入职员工合同文件ID } // SearchCoreHRPreHireRespItemEmploymentInfo ... type SearchCoreHRPreHireRespItemEmploymentInfo struct { - DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可以通过[搜索部门信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/search)接口获取 - CostCenterRates []*SearchCoreHRPreHireRespItemEmploymentInfoCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息 - OfficeLocationID string `json:"office_location_id,omitempty"` // 办公地点 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 - WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点id, 详细信息可通过[批量查询地点]接口获得 - WorkStation string `json:"work_station,omitempty"` // 工位 - WorkerID string `json:"worker_id,omitempty"` // 工号 - CompensationType *SearchCoreHRPreHireRespItemEmploymentInfoCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: compensation_type, object_api_name: pre_hire, 字段权限要求(满足任一): 查看员工的薪资类型信息, 读写员工的薪资类型信息 - DirectLeaderID string `json:"direct_leader_id,omitempty"` // 直属上级雇佣 ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取 - JobID string `json:"job_id,omitempty"` // 职务 ID, 可以通过[查询职务](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/get)接口获取, 字段权限要求(满足任一): 获取员工的职务信息, 获取职务级别信息, 读写员工的职务级别信息 - JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[查询序列](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_family/get)接口获取 - JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[查询职级](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_level/get)接口获取, 字段权限要求(满足任一): 获取职务级别信息, 读写员工的职务级别信息 - JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID, 字段权限要求(满足任一): 获取职等信息, 读写职等信息 - JobTitle string `json:"job_title,omitempty"` // 职务头衔, 字段权限要求(满足任一): 获取职务级别信息, 读写员工的职务级别信息 - EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过招聘[查询人员类型](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/employee_type/get)接口获取 - EmploymentType string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = employment_type - WorkEmail string `json:"work_email,omitempty"` // 工作邮箱 - CompanyID string `json:"company_id,omitempty"` // 公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得, 字段权限要求(满足任一): 获取合同主体信息, 读写合同主体信息 - SocialSecurityCityID string `json:"social_security_city_id,omitempty"` // 社保城市 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 - NonCompeteCovenant bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款, 字段权限要求(满足任一): 查看竞业状态, 读写竞业状态 - WeeklyWorkingHours int64 `json:"weekly_working_hours,omitempty"` // 周工作时长(单位: 小时) - Rehire string `json:"rehire,omitempty"` // 是否离职重聘, 可选值有: to_be_confirmed: 待确认, 系统会判断该员工是否存在历史雇佣记录, 如果存在且需要二次确认时会调用失败, 并返回历史雇佣记录, no: 否, 系统直接标为非离职重聘人员, 不再做重复判断, yes: 是, 要求历史雇佣信息 ID 必填 - RehireEmploymentID string `json:"rehire_employment_id,omitempty"` // 历史雇佣信息 ID, 雇佣信息详细信息可以通过[查询单个雇佣信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/get) 获得, 系统会检验当前雇佣信息的合法性, 要求: 雇佣信息为该人员最后一次雇佣记录, 雇佣信息的雇员状态 = "terminated", 该人员不存在其他待入职记录 - WorkingHoursType string `json:"working_hours_type,omitempty"` // 工时制度 ID, 可通过[查询单个工时制度](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/working_hours_type/get)接口获取 - WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长v2(单位: 小时) - OfficeAddress *SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddress `json:"office_address,omitempty"` // 办公地址, 字段权限要求: 获取办公地址 - WorkingCalendarID string `json:"working_calendar_id,omitempty"` // 工作日历, 字段权限要求: 获取工作日历 - UpdatedAt string `json:"updated_at,omitempty"` // 更新时间 - SuspectedRehiring bool `json:"suspected_rehiring,omitempty"` // 是否疑似重聘, 字段权限要求: 获取是否疑似重聘 - CustomFields []*SearchCoreHRPreHireRespItemEmploymentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段, 字段权限要求: 获取雇佣信息自定义字段信息 + DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可以通过[搜索部门信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/search)接口获取详情, department_id_type使用people_corehr_department_id类型 + CostCenterRates []*SearchCoreHRPreHireRespItemEmploymentInfoCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + OfficeLocationID string `json:"office_location_id,omitempty"` // 办公地点 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 + WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点id, 可通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取详情 + WorkStation string `json:"work_station,omitempty"` // 工位 + WorkerID string `json:"worker_id,omitempty"` // 工号 + CompensationType *SearchCoreHRPreHireRespItemEmploymentInfoCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: compensation_type - object_api_name: pre_hire字段权限要求(满足任一): 查看员工的薪资类型信息读写员工的薪资类型信息 + DirectLeaderID string `json:"direct_leader_id,omitempty"` // 直属上级雇佣 ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。 + DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。字段权限要求: 获取待入职人员虚线上级 + JobID string `json:"job_id,omitempty"` // 职务 ID, 可以通过[查询职务](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/get)接口获取详情字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[查询序列](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_family/get)接口获取详情 + JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[查询职级](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job_level/get)接口获取详情字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID字段权限要求(满足任一): 获取职等信息读写职等信息 + JobTitle string `json:"job_title,omitempty"` // 职务头衔字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过招聘[查询人员类型](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/employee_type/get)接口获取详情 + EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID + EmploymentType string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type + WorkEmail string `json:"work_email,omitempty"` // 工作邮箱 + CompanyID string `json:"company_id,omitempty"` // 公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + SocialSecurityCityID string `json:"social_security_city_id,omitempty"` // 社保城市 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 + NonCompeteCovenant bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款字段权限要求(满足任一): 查看竞业状态读写竞业状态 + WeeklyWorkingHours int64 `json:"weekly_working_hours,omitempty"` // 周工作时长(单位: 小时) + Rehire string `json:"rehire,omitempty"` // 是否离职重聘可选值有: 待确认, 系统会判断该员工是否存在历史雇佣记录, 如果存在且需要二次确认时会调用失败, 并返回历史雇佣记录否, 系统直接标为非离职重聘人员, 不再做重复判断是, 要求历史雇佣信息 ID 必填 + RehireEmploymentID string `json:"rehire_employment_id,omitempty"` // 历史雇佣信息 ID, 雇佣信息详细信息可以通过[查询单个雇佣信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/get) 获得, 系统会检验当前雇佣信息的合法性, 要求: 雇佣信息为该人员最后一次雇佣记录 - 雇佣信息的雇员状态 = "terminated" - 该人员不存在其他待入职记录 + WorkingHoursType string `json:"working_hours_type,omitempty"` // 工时制度 ID, 可通过[查询单个工时制度](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/working_hours_type/get)接口获取详情 + WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长v2(单位: 小时)浮点类型 + OfficeAddress *SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddress `json:"office_address,omitempty"` // 办公地址字段权限要求: 获取办公地址 + WorkingCalendarID string `json:"working_calendar_id,omitempty"` // 工作日历ID, 可以通过[查询工作日历](https://open.larkoffice.com/document/server-docs/calendar-v4/calendar/get)接口获取详情字段权限要求: 获取工作日历 + UpdatedAt string `json:"updated_at,omitempty"` // 更新时间, 时间格式为 2023-09-01 13:21:12 + SuspectedRehiring bool `json:"suspected_rehiring,omitempty"` // 是否疑似重聘字段权限要求: 获取是否疑似重聘 + ConditionWorker bool `json:"condition_worker,omitempty"` // 是否外部人员 + CustomFields []*SearchCoreHRPreHireRespItemEmploymentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取雇佣信息自定义字段信息 + PositionID string `json:"position_id,omitempty"` // 岗位 ID, 可以通过[查询岗位信息]接口获取详情- 部门的岗职模式会影响岗位数据, 在职务模式和岗位模式下, 岗位id是必填- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求(满足任一): 获取员工的岗位信息读写员工的岗位信息 + CompanyManualUpdated bool `json:"company_manual_updated,omitempty"` // 公司主体是否被手动修改字段权限要求: 查看待入职是否被更新过公司主体 + PayGroup *SearchCoreHRPreHireRespItemEmploymentInfoPayGroup `json:"pay_group,omitempty"` // 薪资组信息字段权限要求: 获取薪资组信息 + WhetherTheInformationIsAbnormal bool `json:"whether_the_information_is_abnormal,omitempty"` // 是否信息异常字段权限要求: 获取待入职的异常信息 + AbnormalReason []*SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReason `json:"abnormal_reason,omitempty"` // 异常原因列表字段权限要求: 获取待入职的异常信息 + HasOfferSalary bool `json:"has_offer_salary,omitempty"` // 是否有 Offer 薪酬字段权限要求: 查看是否有 Offer 薪酬 + RecruitmentProjectID string `json:"recruitment_project_id,omitempty"` // 招聘项目 ID字段权限要求: 查看待入职的招聘项目 + WorkShift *SearchCoreHRPreHireRespItemEmploymentInfoWorkShift `json:"work_shift,omitempty"` // 排班类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: work_shift- object_api_name: pre_hire字段权限要求: 获取排班信息 + CreatedAt string `json:"created_at,omitempty"` // 创建时间, 时间格式为 2023-09-01 13:21:12 + CreatedBy string `json:"created_by,omitempty"` // 待入职信息 创建人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + UpdatedBy string `json:"updated_by,omitempty"` // 待入职信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + BackgroundCheckOrderID string `json:"background_check_order_id,omitempty"` // 背调订单ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调订单ID + BackgroundCheckOrderName string `json:"background_check_order_name,omitempty"` // 背调名称- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调名称 + BackgroundCheckOrderPackageName string `json:"background_check_order_package_name,omitempty"` // 背调套餐- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调套餐 + BackgroundCheckOrderResult string `json:"background_check_order_result,omitempty"` // 背调结果字段权限要求: 获取待入职人员背调结果 + BackgroundCheckOrderSupplierName string `json:"background_check_order_supplier_name,omitempty"` // 背调供应商- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调供应商 + BackgroundCheckOrderAccountName string `json:"background_check_order_account_name,omitempty"` // 背调账号名称- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调账号名称 + BackgroundCheckOrderStartTime string `json:"background_check_order_start_time,omitempty"` // 背调开始时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调开始时间 + BackgroundCheckOrderCompleteTime string `json:"background_check_order_complete_time,omitempty"` // 背调完成时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调完成时间 + BackgroundCheckOrderStatus *SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus `json:"background_check_order_status,omitempty"` // 背调状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = background_check_order_status- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调状态 + SeniorityAdjustInformationList []*SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveVoluntary *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationInvoluntary *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveInvoluntary *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + WorkingHoursTypeManualUpdated bool `json:"working_hours_type_manual_updated,omitempty"` // 工时制度是否被手动修改 + IsOverDue bool `json:"is_over_due,omitempty"` // 入职任务是否逾期 + TaskCompleted bool `json:"task_completed,omitempty"` // 入职任务是否完成, 暂不推荐使用 + ExpectedGraduateDate string `json:"expected_graduate_date,omitempty"` // 预计毕业日期 + ServiceCompany string `json:"service_company,omitempty"` // 任职公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得 + Pathway string `json:"pathway,omitempty"` // 通道 + DefaultCostCenter *SearchCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *SearchCoreHRPreHireRespItemEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReuseFeishuAccount string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReusedFeishuAccountID string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 返回Lark Union ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) +} + +// SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReason ... +type SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReason struct { + Descriptions []*SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription `json:"descriptions,omitempty"` // 异常信息描述 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription ... +type SearchCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus ... +type SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay ... +type SearchCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemEmploymentInfoCompensationType ... @@ -145,21 +216,36 @@ type SearchCoreHRPreHireRespItemEmploymentInfoCompensationType struct { // SearchCoreHRPreHireRespItemEmploymentInfoCompensationTypeDisplay ... type SearchCoreHRPreHireRespItemEmploymentInfoCompensationTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoCostAllocation ... +type SearchCoreHRPreHireRespItemEmploymentInfoCostAllocation struct { + EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期 + ExpirationTime string `json:"expiration_time,omitempty"` // 分摊失效日期 + CostCenterRates []*SearchCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate ... +type SearchCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 } // SearchCoreHRPreHireRespItemEmploymentInfoCostCenterRate ... type SearchCoreHRPreHireRespItemEmploymentInfoCostCenterRate struct { - CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息 - Rate int64 `json:"rate,omitempty"` // 分摊比例 + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) + NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 } // SearchCoreHRPreHireRespItemEmploymentInfoCustomField ... type SearchCoreHRPreHireRespItemEmploymentInfoCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemEmploymentInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -169,15 +255,88 @@ type SearchCoreHRPreHireRespItemEmploymentInfoCustomFieldName struct { EnUs string `json:"en_us,omitempty"` // 英文 } +// SearchCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter ... +type SearchCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 + EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 + IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心 + InheritSource string `json:"inherit_source,omitempty"` // 继承来源 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName `json:"name,omitempty"` // 名称 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName `json:"name,omitempty"` // 名称 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName `json:"name,omitempty"` // 名称 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary struct { + WkID string `json:"wk_id,omitempty"` // ID + Value int64 `json:"value,omitempty"` // 数值 + ValueUnit string `json:"value_unit,omitempty"` // 单位 + Name *SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName `json:"name,omitempty"` // 名称 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName ... +type SearchCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + // SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddress ... type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityIDV2 string `json:"city_id_v2,omitempty"` // 城市 - DistrictIDV2 string `json:"district_id_v2,omitempty"` // 区/县 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 + RegionID string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/主要行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取详情 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -188,7 +347,7 @@ type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType `json:"address_type_list,omitempty"` // 地址类型 + AddressTypeList []*SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 CustomFields []*SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 @@ -202,15 +361,15 @@ type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType struct { // SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay ... type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField ... type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -220,26 +379,102 @@ type SearchCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName struc EnUs string `json:"en_us,omitempty"` // 英文 } +// SearchCoreHRPreHireRespItemEmploymentInfoPayGroup ... +type SearchCoreHRPreHireRespItemEmploymentInfoPayGroup struct { + Name []*SearchCoreHRPreHireRespItemEmploymentInfoPayGroupName `json:"name,omitempty"` // 薪资组名称 + ID string `json:"id,omitempty"` // 薪资组 ID +} + +// SearchCoreHRPreHireRespItemEmploymentInfoPayGroupName ... +type SearchCoreHRPreHireRespItemEmploymentInfoPayGroupName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation ... +type SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation struct { + SeniorityAdjustment float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年 + SeniorityAdjustmentType *SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type + ReasonsForSeniorityAdjustment string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField ... +type SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName ... +type SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType ... +type SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay ... +type SearchCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoWorkShift ... +type SearchCoreHRPreHireRespItemEmploymentInfoWorkShift struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay ... +type SearchCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + // SearchCoreHRPreHireRespItemOnboardingInfo ... type SearchCoreHRPreHireRespItemOnboardingInfo struct { - OfferID string `json:"offer_id,omitempty"` // Offer ID, 可以通过招聘[获取 Offer 列表](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/offer/list)接口获取 - OfferHRID string `json:"offer_hr_id,omitempty"` // Offer HR 的 雇佣 ID - EntryMode string `json:"entry_mode,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = onboarding_method + OfferID string `json:"offer_id,omitempty"` // Offer ID, 可以通过招聘[获取 Offer 列表](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/offer/list)接口获取详情 + OfferHRID string `json:"offer_hr_id,omitempty"` // Offer HR 的 雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型ID转换: 不支持根据user_id_type进行ID转换, 返回people_corehr_id 类型的ID。 + OfferHRIDV2 string `json:"offer_hr_id_v2,omitempty"` // Offer hr 的 雇佣 ID, ID可以根据user_id_type转换成对应ID + EntryMode string `json:"entry_mode,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire - custom_api_name = onboarding_method OnboardingDate string `json:"onboarding_date,omitempty"` // 入职日期 - AtsApplicationID string `json:"ats_application_id,omitempty"` // 招聘投递 ID, 详细信息可以通过招聘[获取投递信息](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/get)接口查询获得 - RecruitmentType string `json:"recruitment_type,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire, custom_api_name = recruitment_type + AtsApplicationID string `json:"ats_application_id,omitempty"` // 招聘投递 ID, 详细信息可以通过招聘[获取投递信息](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/get)接口查询获得详情 + RecruitmentType string `json:"recruitment_type,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type OnboardingLocationID string `json:"onboarding_location_id,omitempty"` // 入职地点 ID, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 - CompanySponsoredVisa bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证, 字段权限要求: 查看签证要求 - OnboardingStatus string `json:"onboarding_status,omitempty"` // 入职状态, 可选值有: preboarding: 待入职, deleted: 已删除, day_one: 准备就绪, withdrawn: 已撤销, completed: 已完成 + CompanySponsoredVisa bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证字段权限要求: 查看签证要求 + OnboardingStatus string `json:"onboarding_status,omitempty"` // 入职状态可选值有: 待入职已删除准备就绪已撤销已完成 OnboardingTaskList []*SearchCoreHRPreHireRespItemOnboardingInfoOnboardingTask `json:"onboarding_task_list,omitempty"` // 入职任务列表 - OnboardingAddress *SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddress `json:"onboarding_address,omitempty"` // 入职地址, 字段权限要求: 获取入职地址 - FlowName []*SearchCoreHRPreHireRespItemOnboardingInfoFlowName `json:"flow_name,omitempty"` // 入职流程, 字段权限要求: 获取入职流程 + OnboardingAddress *SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddress `json:"onboarding_address,omitempty"` // 入职地址字段权限要求: 获取入职地址 + FlowName []*SearchCoreHRPreHireRespItemOnboardingInfoFlowName `json:"flow_name,omitempty"` // 入职流程字段权限要求: 获取入职流程 + FlowID string `json:"flow_id,omitempty"` // 入职流程 ID字段权限要求: 获取入职流程 + CheckInTime string `json:"check_in_time,omitempty"` // 签到时间, 时间格式为 2023-09-01 13:21:12字段权限要求: 获取待入职人员的签到数据 + CheckInMethod *SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethod `json:"check_in_method,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: check_in_method- object_api_name: pre_hire字段权限要求: 获取待入职人员的签到数据 +} + +// SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethod ... +type SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethod struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay ... +type SearchCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemOnboardingInfoFlowName ... type SearchCoreHRPreHireRespItemOnboardingInfoFlowName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddress ... @@ -247,10 +482,19 @@ type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityIDV2 string `json:"city_id_v2,omitempty"` // 城市 - DistrictIDV2 string `json:"district_id_v2,omitempty"` // 区/县 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -275,15 +519,15 @@ type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressType struc // SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay ... type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomField ... type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -296,49 +540,63 @@ type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName s // SearchCoreHRPreHireRespItemOnboardingInfoOnboardingTask ... type SearchCoreHRPreHireRespItemOnboardingInfoOnboardingTask struct { TaskName string `json:"task_name,omitempty"` // 任务名称 - TaskStatus string `json:"task_status,omitempty"` // 任务名称, 可选值有: initiating: 发起中, terminated: 已终止, exception: 异常, in_progress: 进行中, not_started: 未开始, skipped: 已跳过, uninitialized: 未初始化, failed: 已失败, in_review: 审核中, rejected: 已退回, completed: 已完成 - OperatorID string `json:"operator_id,omitempty"` // 当前操作人雇佣 ID + TaskStatus string `json:"task_status,omitempty"` // 任务状态可选值有: 发起中已终止异常进行中未开始已跳过未初始化已失败审核中已退回已完成 + OperatorID string `json:"operator_id,omitempty"` // 当前操作人雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 TaskCode string `json:"task_code,omitempty"` // 任务code } // SearchCoreHRPreHireRespItemPersonInfo ... type SearchCoreHRPreHireRespItemPersonInfo struct { PersonID string `json:"person_id,omitempty"` // 个人信息 ID - PhoneNumber string `json:"phone_number,omitempty"` // 个人电话, 字段权限要求(满足任一): 获取个人手机号信息, 读写个人手机号信息 - LegalName string `json:"legal_name,omitempty"` // 法定姓名, 字段权限要求(满足任一): 获取法定姓名信息, 读写法定姓名信息 + PhoneNumber string `json:"phone_number,omitempty"` // 个人电话字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 + LegalName string `json:"legal_name,omitempty"` // 法定姓名字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 PreferredName string `json:"preferred_name,omitempty"` // 常用名 PreferredLocalFullName string `json:"preferred_local_full_name,omitempty"` // 常用本地全名 PreferredEnglishFullName string `json:"preferred_english_full_name,omitempty"` // 常用英文全名 - NameList []*SearchCoreHRPreHireRespItemPersonInfoName `json:"name_list,omitempty"` // 姓名列表, 字段权限要求(满足任一): 获取法定姓名信息, 读写法定姓名信息 - Gender *SearchCoreHRPreHireRespItemPersonInfoGender `json:"gender,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: gender, object_api_name: person, 字段权限要求(满足任一): 获取性别信息, 读写性别信息 - DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期, 字段权限要求(满足任一): 获取生日信息, 读写生日信息 - Race *SearchCoreHRPreHireRespItemPersonInfoRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: ethnicity_race, object_api_name: person, 字段权限要求: 获取民族/种族信息 - MaritalStatus *SearchCoreHRPreHireRespItemPersonInfoMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: marital_status, object_api_name: person, 字段权限要求(满足任一): 获取婚姻状况信息, 读写婚姻状况信息 - PhoneList []*SearchCoreHRPreHireRespItemPersonInfoPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见, 字段权限要求(满足任一): 获取个人手机号信息, 读写个人手机号信息 - AddressList []*SearchCoreHRPreHireRespItemPersonInfoAddress `json:"address_list,omitempty"` // 地址列表, 字段权限要求(满足任一): 读取个人地址信息, 读写个人地址信息 - EmailList []*SearchCoreHRPreHireRespItemPersonInfoEmail `json:"email_list,omitempty"` // 邮箱列表, 字段权限要求(满足任一): 获取个人邮箱信息, 读写个人邮箱信息 - WorkExperienceList []*SearchCoreHRPreHireRespItemPersonInfoWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表, 字段权限要求(满足任一): 获取工作履历信息, 读写工作履历信息 - EducationList []*SearchCoreHRPreHireRespItemPersonInfoEducation `json:"education_list,omitempty"` // 教育经历列表, 字段权限要求(满足任一): 获取教育经历信息, 读写教育经历信息 - BankAccountList []*SearchCoreHRPreHireRespItemPersonInfoBankAccount `json:"bank_account_list,omitempty"` // 银行账户, 字段权限要求(满足任一): 获取银行账号列表信息, 读写银行账号信息 - NationalIDList []*SearchCoreHRPreHireRespItemPersonInfoNationalID `json:"national_id_list,omitempty"` // 证件, 字段权限要求(满足任一): 获取证件信息, 读写证件信息 - DependentList []*SearchCoreHRPreHireRespItemPersonInfoDependent `json:"dependent_list,omitempty"` // 家庭成员列表, 字段权限要求(满足任一): 获取家庭成员信息, 读写家庭成员信息 - EmergencyContactList []*SearchCoreHRPreHireRespItemPersonInfoEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表, 字段权限要求(满足任一): 获取紧急联系人信息, 读写紧急联系人信息 - DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期, 字段权限要求(满足任一): 获取参加工作日期, 读写参加工作日期 + NameList []*SearchCoreHRPreHireRespItemPersonInfoName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 + Gender *SearchCoreHRPreHireRespItemPersonInfoGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gendar)枚举定义获得字段权限要求(满足任一): 获取性别信息读写性别信息 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期字段权限要求(满足任一): 获取生日信息读写生日信息 + NationalityIDV2 string `json:"nationality_id_v2,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取字段权限要求(满足任一): 获取国籍信息读写国籍信息 + Race *SearchCoreHRPreHireRespItemPersonInfoRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: 按如下参数查询即可: custom_api_name: ethnicity_race - object_api_name: person字段权限要求: 获取民族/种族信息 + MaritalStatus *SearchCoreHRPreHireRespItemPersonInfoMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: marital_status - object_api_name: person字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 + PhoneList []*SearchCoreHRPreHireRespItemPersonInfoPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 + AddressList []*SearchCoreHRPreHireRespItemPersonInfoAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 + EmailList []*SearchCoreHRPreHireRespItemPersonInfoEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 + WorkExperienceList []*SearchCoreHRPreHireRespItemPersonInfoWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 + EducationList []*SearchCoreHRPreHireRespItemPersonInfoEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + BankAccountList []*SearchCoreHRPreHireRespItemPersonInfoBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 + NationalIDList []*SearchCoreHRPreHireRespItemPersonInfoNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 + DependentList []*SearchCoreHRPreHireRespItemPersonInfoDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 + EmergencyContactList []*SearchCoreHRPreHireRespItemPersonInfoEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期字段权限要求(满足任一): 获取参加工作日期读写参加工作日期 + WorkingYears int64 `json:"working_years,omitempty"` // 工龄 ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID - EmailAddress string `json:"email_address,omitempty"` // 邮箱地址, 字段权限要求(满足任一): 获取个人邮箱信息, 读写个人邮箱信息 - Age int64 `json:"age,omitempty"` // 年龄, 字段权限要求(满足任一): 获取生日信息, 读写生日信息 - HighestLevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历, 字段权限要求(满足任一): 获取教育经历信息, 读写教育经历信息 - HighestDegreeOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历, 字段权限要求(满足任一): 获取教育经历信息, 读写教育经历信息 - PersonalProfile []*SearchCoreHRPreHireRespItemPersonInfoPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件, 字段权限要求(满足任一): 获取个人资料信息, 读写个人资料信息 - NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 字段权限要求(满足任一): 获取籍贯信息, 读写籍贯信息 - HukouType *SearchCoreHRPreHireRespItemPersonInfoHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/server-docs/corehr-v1/feishu-people-enum-constant)户口类型(hukou_type)枚举定义部分获得, 字段权限要求(满足任一): 获取户口信息, 读写户口信息 - HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地, 字段权限要求(满足任一): 获取户口信息, 读写户口信息 + EmailAddress string `json:"email_address,omitempty"` // 邮箱地址字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 + Age int64 `json:"age,omitempty"` // 年龄字段权限要求(满足任一): 获取生日信息读写生日信息 + HighestLevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + HighestDegreeOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + PersonalProfile []*SearchCoreHRPreHireRespItemPersonInfoPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 TalentID string `json:"talent_id,omitempty"` // 人才 ID - CustomFields []*SearchCoreHRPreHireRespItemPersonInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段, 字段权限要求(满足任一): 获取个人信息自定义字段信息, 读写个人信息中的自定义字段信息 - NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码, 字段权限要求(满足任一): 获取证件信息, 读写证件信息 - FamilyAddress string `json:"family_address,omitempty"` // 家庭地址, 字段权限要求(满足任一): 读取个人地址信息, 读写个人地址信息 + CustomFields []*SearchCoreHRPreHireRespItemPersonInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 + NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码字段权限要求(满足任一): 获取证件信息读写证件信息 + FamilyAddress string `json:"family_address,omitempty"` // 家庭地址字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 PersonInfoChns []*SearchCoreHRPreHireRespItemPersonInfoPersonInfoChn `json:"person_info_chns,omitempty"` // 个人附加信息 - Religion *SearchCoreHRPreHireRespItemPersonInfoReligion `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person, custom_api_name: religion, 字段权限要求(满足任一): 查看宗教信仰信息, 读写宗教信仰信息 + BornCountryRegion string `json:"born_country_region,omitempty"` // 出生国家/地区, 详细信息可通过[查询国家/地区信息](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得字段权限要求(满足任一): 获取出生国家/地区信息读写出生国家/地区信息 + IsDisabled bool `json:"is_disabled,omitempty"` // 是否残疾字段权限要求(满足任一): 获取残疾信息读写残疾信息 + DisableCardNumber string `json:"disable_card_number,omitempty"` // 残疾证号字段权限要求(满足任一): 获取残疾信息读写残疾信息 + IsMartyrFamily bool `json:"is_martyr_family,omitempty"` // 是否烈属字段权限要求(满足任一): 获取烈属信息读写烈属信息 + MartyrCardNumber string `json:"martyr_card_number,omitempty"` // 烈属证号字段权限要求(满足任一): 获取烈属信息读写烈属信息 + IsOldAlone bool `json:"is_old_alone,omitempty"` // 是否孤老字段权限要求(满足任一): 获取孤老信息读写孤老信息 + ResidentTaxes []*SearchCoreHRPreHireRespItemPersonInfoResidentTaxe `json:"resident_taxes,omitempty"` // 纳税身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 + Religion *SearchCoreHRPreHireRespItemPersonInfoReligion `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person - custom_api_name: religion字段权限要求(满足任一): 查看宗教信仰信息读写宗教信仰信息 + WorkingYearsV2 float64 `json:"working_years_v2,omitempty"` // 工龄 (单位: 年)浮点类型 + CreatedAt string `json:"created_at,omitempty"` // 个人信息 创建时间, 时间格式为 2023-09-01 13:21:12 + UpdatedAt string `json:"updated_at,omitempty"` // 个人信息 更新时间, 时间格式为 2023-09-01 13:21:12 + CreatedBy string `json:"created_by,omitempty"` // 个人信息 创建人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + UpdatedBy string `json:"updated_by,omitempty"` // 个人信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行卡号字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 + PassportNumber string `json:"passport_number,omitempty"` // 护照号码字段权限要求: 获取护照号码 + FormerEmployer []*SearchCoreHRPreHireRespItemPersonInfoFormerEmployer `json:"former_employer,omitempty"` // 上家公司字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 } // SearchCoreHRPreHireRespItemPersonInfoAddress ... @@ -346,8 +604,21 @@ type SearchCoreHRPreHireRespItemPersonInfoAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 + RegionID string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/主要行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + CityIDV2 string `json:"city_id_v2,omitempty"` // 城市, 可以通过接口[查询城市信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取详情 + DistrictIDV2 string `json:"district_id_v2,omitempty"` // 区/县, 可以通过接口[查询区/县信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)获取详情 + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -358,7 +629,7 @@ type SearchCoreHRPreHireRespItemPersonInfoAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*SearchCoreHRPreHireRespItemPersonInfoAddressAddressType `json:"address_type_list,omitempty"` // 地址类型 + AddressTypeList []*SearchCoreHRPreHireRespItemPersonInfoAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 @@ -372,15 +643,15 @@ type SearchCoreHRPreHireRespItemPersonInfoAddressAddressType struct { // SearchCoreHRPreHireRespItemPersonInfoAddressAddressTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoAddressCustomField ... type SearchCoreHRPreHireRespItemPersonInfoAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -396,10 +667,14 @@ type SearchCoreHRPreHireRespItemPersonInfoBankAccount struct { BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 BranchName string `json:"branch_name,omitempty"` // 支行名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[查询国家/地区信息](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得 - BankAccountUsage []*SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/server-docs/corehr-v1/feishu-people-enum-constant)银行卡用途(Bank Account Usage)枚举定义部分获得 - BankAccountType *SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/server-docs/corehr-v1/feishu-people-enum-constant)银行卡类型(Bank Account Type)枚举定义部分获得 - CurrencyID string `json:"currency_id,omitempty"` // 货币id + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 + BankAccountUsage []*SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义获得 + BankAccountType *SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义获得 + PaymentType *SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentType `json:"payment_type,omitempty"` // 分配方式, 枚举值可通过文档【飞书人事枚举常量】分配方式(Payment Type)枚举定义部分获得 + PaymentRate string `json:"payment_rate,omitempty"` // 分配比例 + PaymentAmount string `json:"payment_amount,omitempty"` // 分配金额 + Priority int64 `json:"priority,omitempty"` // 分配优先级 + CurrencyID string `json:"currency_id,omitempty"` // 货币id, 详细信息可通过[查询货币信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 } @@ -411,8 +686,8 @@ type SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType struct { // SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage ... @@ -423,15 +698,15 @@ type SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage struct { // SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoBankAccountCustomField ... type SearchCoreHRPreHireRespItemPersonInfoBankAccountCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -441,11 +716,23 @@ type SearchCoreHRPreHireRespItemPersonInfoBankAccountCustomFieldName struct { EnUs string `json:"en_us,omitempty"` // 英文 } +// SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentType ... +type SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay ... +type SearchCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + // SearchCoreHRPreHireRespItemPersonInfoCustomField ... type SearchCoreHRPreHireRespItemPersonInfoCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -457,18 +744,19 @@ type SearchCoreHRPreHireRespItemPersonInfoCustomFieldName struct { // SearchCoreHRPreHireRespItemPersonInfoDependent ... type SearchCoreHRPreHireRespItemPersonInfoDependent struct { + ID string `json:"id,omitempty"` // 家庭成员数据ID Name *SearchCoreHRPreHireRespItemPersonInfoDependentName `json:"name,omitempty"` // 姓名 - Relationship *SearchCoreHRPreHireRespItemPersonInfoDependentRelationship `json:"relationship,omitempty"` // 关系 - Gender *SearchCoreHRPreHireRespItemPersonInfoDependentGender `json:"gender,omitempty"` // 性别 + Relationship *SearchCoreHRPreHireRespItemPersonInfoDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *SearchCoreHRPreHireRespItemPersonInfoDependentGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)性别(gendar)枚举定义获得 DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 NationalIDList []*SearchCoreHRPreHireRespItemPersonInfoDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态 + SpousesWorkingStatus *SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 枚举值可查询[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: spouses_working_status- object_api_name: dependent IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 Employer string `json:"employer,omitempty"` // 工作单位 - Job string `json:"job,omitempty"` // 岗位 + Job string `json:"job,omitempty"` // 工作描述 Phone *SearchCoreHRPreHireRespItemPersonInfoDependentPhone `json:"phone,omitempty"` // 电话 Address *SearchCoreHRPreHireRespItemPersonInfoDependentAddress `json:"address,omitempty"` // 联系地址 BirthCertificateOfChild *SearchCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 @@ -479,8 +767,19 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[查询国家/地区信息](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得 + RegionID string `json:"region_id,omitempty"` // 主要行政区ID 详细信息可通过[查询省份/行政区信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search接口查询获得 + CityID string `json:"city_id,omitempty"` // 城市(该字段待作废, 请勿使用) + DistinctID string `json:"distinct_id,omitempty"` // 区/县(该字段待作废, 请勿使用) + AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 + AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 + AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 + AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 + AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 + AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 + AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 + AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 + AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -491,7 +790,7 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*SearchCoreHRPreHireRespItemPersonInfoDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型 + AddressTypeList []*SearchCoreHRPreHireRespItemPersonInfoDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 @@ -505,15 +804,15 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentAddressAddressType struct { // SearchCoreHRPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentAddressCustomField ... type SearchCoreHRPreHireRespItemPersonInfoDependentAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -525,14 +824,15 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentAddressCustomFieldName struct // SearchCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild ... type SearchCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild struct { - ID string `json:"id,omitempty"` // 上传文件ID + ID string `json:"id,omitempty"` // 文件ID, 文件内容可通过[下载文件](https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/get-2)接口获取 + Name string `json:"name,omitempty"` // 文件名 } // SearchCoreHRPreHireRespItemPersonInfoDependentCustomField ... type SearchCoreHRPreHireRespItemPersonInfoDependentCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -550,19 +850,20 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentGender struct { // SearchCoreHRPreHireRespItemPersonInfoDependentGenderDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentName ... type SearchCoreHRPreHireRespItemPersonInfoDependentName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *SearchCoreHRPreHireRespItemPersonInfoDependentNameNameType `json:"name_type,omitempty"` // 姓名类型 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 + NameType *SearchCoreHRPreHireRespItemPersonInfoDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // additional_name_type补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -571,9 +872,9 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentName struct { MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *SearchCoreHRPreHireRespItemPersonInfoDependentNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *SearchCoreHRPreHireRespItemPersonInfoDependentNameTitle `json:"title,omitempty"` // 头衔 + Social *SearchCoreHRPreHireRespItemPersonInfoDependentNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *SearchCoreHRPreHireRespItemPersonInfoDependentNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -589,8 +890,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType struct // SearchCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentNameNameType ... @@ -601,8 +902,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNameNameType struct { // SearchCoreHRPreHireRespItemPersonInfoDependentNameNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentNameSocial ... @@ -613,8 +914,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNameSocial struct { // SearchCoreHRPreHireRespItemPersonInfoDependentNameSocialDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentNameTitle ... @@ -625,17 +926,17 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNameTitle struct { // SearchCoreHRPreHireRespItemPersonInfoDependentNameTitleDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentNationalID ... type SearchCoreHRPreHireRespItemPersonInfoDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型ID, 详细信息可通过[查询单个国家证件类型](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/national_id_type/get)接口查询获得 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[查询国家/地区信息](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } @@ -644,7 +945,7 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNationalID struct { type SearchCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -656,11 +957,11 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomFieldName str // SearchCoreHRPreHireRespItemPersonInfoDependentPhone ... type SearchCoreHRPreHireRespItemPersonInfoDependentPhone struct { - InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号 + InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *SearchCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *SearchCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } @@ -673,8 +974,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType struct { // SearchCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode ... @@ -685,8 +986,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode st // SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage ... @@ -697,8 +998,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage struct { // SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentRelationship ... @@ -709,8 +1010,8 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentRelationship struct { // SearchCoreHRPreHireRespItemPersonInfoDependentRelationshipDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus ... @@ -721,21 +1022,21 @@ type SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus struct { // SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay ... type SearchCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducation ... type SearchCoreHRPreHireRespItemPersonInfoEducation struct { School []*SearchCoreHRPreHireRespItemPersonInfoEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *SearchCoreHRPreHireRespItemPersonInfoEducationDegree `json:"degree,omitempty"` // 学位 - SchoolName *SearchCoreHRPreHireRespItemPersonInfoEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID + LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 + FieldOfStudy []*SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业名称 + Degree *SearchCoreHRPreHireRespItemPersonInfoEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *SearchCoreHRPreHireRespItemPersonInfoEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } @@ -744,7 +1045,7 @@ type SearchCoreHRPreHireRespItemPersonInfoEducation struct { type SearchCoreHRPreHireRespItemPersonInfoEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -762,14 +1063,14 @@ type SearchCoreHRPreHireRespItemPersonInfoEducationDegree struct { // SearchCoreHRPreHireRespItemPersonInfoEducationDegreeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy ... type SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName ... @@ -780,8 +1081,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName struct { // SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation ... @@ -792,14 +1093,14 @@ type SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation struct { // SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducationDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducationSchool ... type SearchCoreHRPreHireRespItemPersonInfoEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEducationSchoolName ... @@ -810,8 +1111,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEducationSchoolName struct { // SearchCoreHRPreHireRespItemPersonInfoEducationSchoolNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmail ... @@ -819,7 +1120,7 @@ type SearchCoreHRPreHireRespItemPersonInfoEmail struct { Email string `json:"email,omitempty"` // 邮箱地址 IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱 IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱 - EmailUsage *SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/server-docs/corehr-v1/feishu-people-enum-constant)邮箱用途(email_usage)枚举定义获得 + EmailUsage *SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)邮箱用途(email_usage)枚举定义获得 } // SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsage ... @@ -830,25 +1131,27 @@ type SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsage struct { // SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmailEmailUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContact ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContact struct { + ID string `json:"id,omitempty"` // 紧急联系人ID Name *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactName `json:"name,omitempty"` // 姓名 Relationship *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship `json:"relationship,omitempty"` // 关系 PhoneIst []*SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 PhoneList []*SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 LegalName string `json:"legal_name,omitempty"` // 法定姓名 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + IsPrimary bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -862,11 +1165,12 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactCustomFieldName struct type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[查询国家/地区信息](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得 + NameType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.larkoffice.com/document/server-docs/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -875,9 +1179,9 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactName struct { MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle `json:"title,omitempty"` // 头衔 + Social *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial `json:"social,omitempty"` // 尊称- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: social + Title *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle `json:"title,omitempty"` // 头衔- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: title LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -893,8 +1197,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType ... @@ -905,8 +1209,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType struct { // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial ... @@ -917,8 +1221,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial struct { // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle ... @@ -929,17 +1233,17 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle struct { // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhone ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhone struct { - InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号 + InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } @@ -952,8 +1256,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType struct // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode ... @@ -964,17 +1268,17 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalArea // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst struct { - InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号 + InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } @@ -987,8 +1291,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType str // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode ... @@ -999,8 +1303,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalA // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage ... @@ -1011,8 +1315,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage str // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage ... @@ -1023,8 +1327,8 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage struct // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship ... @@ -1035,8 +1339,14 @@ type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship struct { // SearchCoreHRPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay ... type SearchCoreHRPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemPersonInfoFormerEmployer ... +type SearchCoreHRPreHireRespItemPersonInfoFormerEmployer struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoGender ... @@ -1047,20 +1357,20 @@ type SearchCoreHRPreHireRespItemPersonInfoGender struct { // SearchCoreHRPreHireRespItemPersonInfoGenderDisplay ... type SearchCoreHRPreHireRespItemPersonInfoGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation struct { School []*SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 + LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 FieldOfStudy []*SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位 - SchoolName *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + Degree *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 @@ -1070,7 +1380,7 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation struct { type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -1088,14 +1398,14 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree struct // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName ... @@ -1106,8 +1416,8 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNa // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation ... @@ -1118,14 +1428,14 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducati // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName ... @@ -1136,21 +1446,21 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName str // SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation struct { School []*SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 + LevelOfEducation *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 FieldOfStudy []*SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位 - SchoolName *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + Degree *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } @@ -1159,7 +1469,7 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation struct { type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -1177,14 +1487,14 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree struct { // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName ... @@ -1195,8 +1505,8 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNam // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation ... @@ -1207,14 +1517,14 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducatio // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName ... @@ -1225,20 +1535,8 @@ type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName stru // SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay ... type SearchCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 -} - -// SearchCoreHRPreHireRespItemPersonInfoHukouType ... -type SearchCoreHRPreHireRespItemPersonInfoHukouType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCoreHRPreHireRespItemPersonInfoHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// SearchCoreHRPreHireRespItemPersonInfoHukouTypeDisplay ... -type SearchCoreHRPreHireRespItemPersonInfoHukouTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoMaritalStatus ... @@ -1249,19 +1547,20 @@ type SearchCoreHRPreHireRespItemPersonInfoMaritalStatus struct { // SearchCoreHRPreHireRespItemPersonInfoMaritalStatusDisplay ... type SearchCoreHRPreHireRespItemPersonInfoMaritalStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoName ... type SearchCoreHRPreHireRespItemPersonInfoName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *SearchCoreHRPreHireRespItemPersonInfoNameNameType `json:"name_type,omitempty"` // 姓名类型 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 + NameType *SearchCoreHRPreHireRespItemPersonInfoNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型 + AdditionalName string `json:"additional_name,omitempty"` // 别名 + AdditionalNameType *SearchCoreHRPreHireRespItemPersonInfoNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -1270,9 +1569,9 @@ type SearchCoreHRPreHireRespItemPersonInfoName struct { MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *SearchCoreHRPreHireRespItemPersonInfoNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *SearchCoreHRPreHireRespItemPersonInfoNameTitle `json:"title,omitempty"` // 头衔 + Social *SearchCoreHRPreHireRespItemPersonInfoNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *SearchCoreHRPreHireRespItemPersonInfoNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -1288,8 +1587,8 @@ type SearchCoreHRPreHireRespItemPersonInfoNameAdditionalNameType struct { // SearchCoreHRPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoNameNameType ... @@ -1300,8 +1599,8 @@ type SearchCoreHRPreHireRespItemPersonInfoNameNameType struct { // SearchCoreHRPreHireRespItemPersonInfoNameNameTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoNameSocial ... @@ -1312,8 +1611,8 @@ type SearchCoreHRPreHireRespItemPersonInfoNameSocial struct { // SearchCoreHRPreHireRespItemPersonInfoNameSocialDisplay ... type SearchCoreHRPreHireRespItemPersonInfoNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoNameTitle ... @@ -1324,17 +1623,17 @@ type SearchCoreHRPreHireRespItemPersonInfoNameTitle struct { // SearchCoreHRPreHireRespItemPersonInfoNameTitleDisplay ... type SearchCoreHRPreHireRespItemPersonInfoNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoNationalID ... type SearchCoreHRPreHireRespItemPersonInfoNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型ID, 详细信息可通过[查询单个国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/get)接口查询获得 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } @@ -1343,7 +1642,7 @@ type SearchCoreHRPreHireRespItemPersonInfoNationalID struct { type SearchCoreHRPreHireRespItemPersonInfoNationalIDCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -1355,9 +1654,10 @@ type SearchCoreHRPreHireRespItemPersonInfoNationalIDCustomFieldName struct { // SearchCoreHRPreHireRespItemPersonInfoPersonInfoChn ... type SearchCoreHRPreHireRespItemPersonInfoPersonInfoChn struct { - NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 字段权限要求(满足任一): 获取籍贯信息, 读写籍贯信息 - HukouType *SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: hukou_type, object_api_name: person_info_chn, 字段权限要求(满足任一): 获取户口信息, 读写户口信息 - HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地, 字段权限要求(满足任一): 获取户口信息, 读写户口信息 + NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情字段权限要求(满足任一): 获取籍贯信息读写籍贯信息 + HukouType *SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: hukou_type - object_api_name: person_info_chn字段权限要求(满足任一): 获取户口信息读写户口信息 + HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地字段权限要求(满足任一): 获取户口信息读写户口信息 + PoliticalAffiliations []*SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)政治面貌(political_affiliation)枚举定义获得字段权限要求: 获取政治面貌信息 } // SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType ... @@ -1368,8 +1668,20 @@ type SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType struct { // SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation ... +type SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay ... +type SearchCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoPersonalProfile ... @@ -1380,7 +1692,8 @@ type SearchCoreHRPreHireRespItemPersonInfoPersonalProfile struct { // SearchCoreHRPreHireRespItemPersonInfoPersonalProfileFile ... type SearchCoreHRPreHireRespItemPersonInfoPersonalProfileFile struct { - ID string `json:"id,omitempty"` // 上传文件ID + ID string `json:"id,omitempty"` // 文件ID, 文件内容可通过[下载文件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get)接口获取 + Name string `json:"name,omitempty"` // 文件名 } // SearchCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileType ... @@ -1391,17 +1704,17 @@ type SearchCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileType str // SearchCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoPhone ... type SearchCoreHRPreHireRespItemPersonInfoPhone struct { - InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号 + InternationalAreaCode *SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *SearchCoreHRPreHireRespItemPersonInfoPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *SearchCoreHRPreHireRespItemPersonInfoPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } @@ -1414,8 +1727,8 @@ type SearchCoreHRPreHireRespItemPersonInfoPhoneDeviceType struct { // SearchCoreHRPreHireRespItemPersonInfoPhoneDeviceTypeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode ... @@ -1426,8 +1739,8 @@ type SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode struct { // SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay ... type SearchCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsage ... @@ -1438,8 +1751,8 @@ type SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsage struct { // SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsageDisplay ... type SearchCoreHRPreHireRespItemPersonInfoPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoRace ... @@ -1450,8 +1763,8 @@ type SearchCoreHRPreHireRespItemPersonInfoRace struct { // SearchCoreHRPreHireRespItemPersonInfoRaceDisplay ... type SearchCoreHRPreHireRespItemPersonInfoRaceDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoReligion ... @@ -1462,32 +1775,58 @@ type SearchCoreHRPreHireRespItemPersonInfoReligion struct { // SearchCoreHRPreHireRespItemPersonInfoReligionDisplay ... type SearchCoreHRPreHireRespItemPersonInfoReligionDisplay struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCoreHRPreHireRespItemPersonInfoResidentTaxe ... +type SearchCoreHRPreHireRespItemPersonInfoResidentTaxe struct { + YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度 + ResidentStatus *SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus `json:"resident_status,omitempty"` // 居民身份, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: resident_status- object_api_name: resident_tax + TaxCountryRegionID string `json:"tax_country_region_id,omitempty"` // 国家/地区, 详细信息可通过[查询国家/地区信息](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/location_data/get)接口查询获得 + CustomFields []*SearchCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 +} + +// SearchCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField ... +type SearchCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) +} + +// SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus ... +type SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay ... +type SearchCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoWorkExperience ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperience struct { CompanyOrganization []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 Department []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceJob `json:"job,omitempty"` // 岗位 + Job []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceJob `json:"job,omitempty"` // 工作描述 Description []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 + StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 + EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 CustomFields []*SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -1499,26 +1838,26 @@ type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceCustomFieldName struct { // SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDescription ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceDescription struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemPersonInfoWorkExperienceJob ... type SearchCoreHRPreHireRespItemPersonInfoWorkExperienceJob struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // SearchCoreHRPreHireRespItemProbationInfo ... type SearchCoreHRPreHireRespItemProbationInfo struct { - ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期 - ProbationEndDate string `json:"probation_end_date,omitempty"` // 试用期结束日期 + ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期, 时间格式为 2022-01-02 + ProbationEndDate string `json:"probation_end_date,omitempty"` // 试用期结束日期, 时间格式为 2022-01-02 ProbationPeriod int64 `json:"probation_period,omitempty"` // 试用期时长(单位: 天) } diff --git a/api_corehr_pre_hire_transform_onboarding_task.go b/api_corehr_pre_hire_transform_onboarding_task.go new file mode 100644 index 00000000..947f3f23 --- /dev/null +++ b/api_corehr_pre_hire_transform_onboarding_task.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPreHireTransformOnboardingTask 处于进行中的入职流程, 可通过本接口实现手动开启、提交或审批入职任务 +// +// - 当任务处于「手动开启」时, 可通过本接口手动开启任务, 将任务状态流转到「进行中」 +// - 当任务处于「进行中」时, 可通过本接口提交任务, 将任务流转到「审批中」或「已完成」 +// - 当任务处于「审批中」时, 可通过本接口审批任务, 将任务流转到「已完成」或「已拒绝」 +// - 当任务处于「已拒绝」时, 可通过本接口提交任务, 将任务流转到「审批中」 +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/transform_onboarding_task +func (r *CoreHRService) CreateCorehrPreHireTransformOnboardingTask(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPreHireTransformOnboardingTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireTransformOnboardingTask mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPreHireTransformOnboardingTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPreHireTransformOnboardingTask", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/transform_onboarding_task", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPreHireTransformOnboardingTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPreHireTransformOnboardingTask mock CoreHRCreateCorehrPreHireTransformOnboardingTask method +func (r *Mock) MockCoreHRCreateCorehrPreHireTransformOnboardingTask(f func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error)) { + r.mockCoreHRCreateCorehrPreHireTransformOnboardingTask = f +} + +// UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask un-mock CoreHRCreateCorehrPreHireTransformOnboardingTask method +func (r *Mock) UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask() { + r.mockCoreHRCreateCorehrPreHireTransformOnboardingTask = nil +} + +// CreateCorehrPreHireTransformOnboardingTaskReq ... +type CreateCorehrPreHireTransformOnboardingTaskReq struct { + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775407" + TaskCode string `json:"task_code,omitempty"` // 任务标识码。- 对于系统内置的任务, 标识码与任务名称的对应关系如下所示: > 其中 创建账户SSO 为隐藏的任务节点, 在 个人信息 前自动执行。 - 1: 职位信息 - 2: 个人信息 - 3: 创建账户SSO - 4: 签到 - 9: 签署入职文件- 对于自定义的任务节点(如: 3095697a-065f-4627-a47c-46fe958a6754), 名称的获取方式如下所示: 1. 通过 `pre_hire_id` 调用[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口或[查询待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query) 2. 查询字段 `fields` 中添加 `onboarding_info.onboarding_task_list` 查询后返回的 onboarding_task_list 结构体中包含标识码和任务名字的对应关系, 示例如下所示: ```json{ "onboarding_task_list": [ { "task_code": "3095697a-065f-4627-a47c-46fe958a6754", "task_name": "修改入职日期", "task_status": "uninitialized" }, { "task_code": "d37b9d7c-232d-4a55-98fa-541318234ede", "task_name": "工签补充任务", "task_status": "uninitialized" } ]}```示例值: "27691344-699b-47fb-a352-7b41e992a536" + TransformType string `json:"transform_type,omitempty"` // 流转类型, 当任务处于不同的状态时, 通过该字段指定任务做何种类型的流转。入职任务状态: uninitialized: 任务未初始化- not_started: 任务未开始- in_progress: 任务进行中- in_review: 任务审批中- rejected: 任务已拒绝- failed: 任务失败- skipped: 任务自动跳过- completed: 任务完成- exception: 任务异常- terminated: 任务终止- initiating: 任务发起中- manual_skipped: 任务手动跳过任务流转类型: manual_start_task: 手动开启任务> 当任务处于未开始状态时, 可通过指定该类型手动开启任务- submit_task: 提交任务> 当任务处于进行中和已拒绝时, 可以通过指定该类型提交任务。创建账户(`task_code: 3`)、签到(`task_code: 4`)和电子签(`task_code: 9`)任务不支持提交- review_task: 审批任务> 当任务处于审批中时, 可以通过指定该类型审批任务。通过本接口审批任务时, 会忽略多个审批人审批的场景。示例值: "review_task" + ReviewDecision *string `json:"review_decision,omitempty"` // 审批结果, 当`transform_type`为`review_task`时, 该字段需要传值, 否则报错。审批结果: approve: 通过- reject: 拒绝, 示例值: "approve" + Reason *string `json:"reason,omitempty"` // 审批原因, 审批任务时, 如果`review_decision`传参为`approve`时, 审批原因可以不填;如果`review_decision`传参为`reject`时, 审批原因必填。> 审批原因长度需小于3000字节示例值: "信息填写完整, 允许通过" +} + +// CreateCorehrPreHireTransformOnboardingTaskResp ... +type CreateCorehrPreHireTransformOnboardingTaskResp struct { + Success bool `json:"success,omitempty"` // 是否成功流转任务, 流转成功时返回true, 流转失败时返回false +} + +// createCorehrPreHireTransformOnboardingTaskResp ... +type createCorehrPreHireTransformOnboardingTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPreHireTransformOnboardingTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_transit_task.go b/api_corehr_pre_hire_transit_task.go new file mode 100644 index 00000000..4ea95f93 --- /dev/null +++ b/api_corehr_pre_hire_transit_task.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPreHireTransitTask 配置入职流程后, 可通过本接口流转进行中的任务 +// +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/transit_task +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/transit_task +func (r *CoreHRService) CreateCorehrPreHireTransitTask(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPreHireTransitTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireTransitTask mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPreHireTransitTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPreHireTransitTask", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id/transit_task", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPreHireTransitTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPreHireTransitTask mock CoreHRCreateCorehrPreHireTransitTask method +func (r *Mock) MockCoreHRCreateCorehrPreHireTransitTask(f func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error)) { + r.mockCoreHRCreateCorehrPreHireTransitTask = f +} + +// UnMockCoreHRCreateCorehrPreHireTransitTask un-mock CoreHRCreateCorehrPreHireTransitTask method +func (r *Mock) UnMockCoreHRCreateCorehrPreHireTransitTask() { + r.mockCoreHRCreateCorehrPreHireTransitTask = nil +} + +// CreateCorehrPreHireTransitTaskReq ... +type CreateCorehrPreHireTransitTaskReq struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" + TaskID string `json:"task_id,omitempty"` // 任务标识码。- 对于系统内置的任务, 标识码与任务名称的对应关系如下所示: > 其中 创建账户SSO 为隐藏的任务节点, 在 个人信息 前自动执行。 - 1: 职位信息 - 2: 个人信息 - 3: 创建账户SSO - 4: 签到 - 9: 签署入职文件- 对于自定义的任务节点(如: 3095697a-065f-4627-a47c-46fe958a6754), 名称的获取方式如下所示: 1. 通过 `pre_hire_id` 调用[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口或[查询待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query) 2. 查询字段 `fields` 中添加 `onboarding_info.onboarding_task_list` 查询后返回的 onboarding_task_list 结构体中包含标识码和任务名字的对应关系, 示例如下所示: ```json{ "onboarding_task_list": [ { "task_code": "3095697a-065f-4627-a47c-46fe958a6754", "task_name": "修改入职日期", "task_status": "uninitialized" }, { "task_code": "d37b9d7c-232d-4a55-98fa-541318234ede", "task_name": "工签补充任务", "task_status": "uninitialized" } ]}```示例值: "1" +} + +// CreateCorehrPreHireTransitTaskResp ... +type CreateCorehrPreHireTransitTaskResp struct { + Success bool `json:"success,omitempty"` // 是否成功流转任务 +} + +// createCorehrPreHireTransitTaskResp ... +type createCorehrPreHireTransitTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPreHireTransitTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_update_v2.go b/api_corehr_pre_hire_update_v2.go new file mode 100644 index 00000000..225e5579 --- /dev/null +++ b/api_corehr_pre_hire_update_v2.go @@ -0,0 +1,556 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrPreHire 通过指定系统字段和自定义字段以更新待入职数据 +// +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/patch +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/patch +func (r *CoreHRService) UpdateCorehrPreHire(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrPreHire != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPreHire mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrPreHire(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrPreHire", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrPreHireResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrPreHire mock CoreHRUpdateCorehrPreHire method +func (r *Mock) MockCoreHRUpdateCorehrPreHire(f func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error)) { + r.mockCoreHRUpdateCorehrPreHire = f +} + +// UnMockCoreHRUpdateCorehrPreHire un-mock CoreHRUpdateCorehrPreHire method +func (r *Mock) UnMockCoreHRUpdateCorehrPreHire() { + r.mockCoreHRUpdateCorehrPreHire = nil +} + +// UpdateCorehrPreHireReq ... +type UpdateCorehrPreHireReq struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775411" + BasicInfoUpdate *UpdateCorehrPreHireReqBasicInfoUpdate `json:"basic_info_update,omitempty"` // 更新个人(person)信息 + OfferInfoUpdate *UpdateCorehrPreHireReqOfferInfoUpdate `json:"offer_info_update,omitempty"` // 更新待入职(prehire)信息 + StandardUpdateFields []string `json:"standard_update_fields,omitempty"` // 指定需要更新的系统字段, 只支持最多下钻一层, 格式如下: basic_info_update字段: basic_info_update.names(对name整体进行覆盖更新);basic_info_update.emails(对邮箱整体进行更新) - offer_info_update字段: offer_info_update.onboarding_method注意, 如果指定了要更新的系统字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["basic_info_update.names"] + CustomUpdateFields []string `json:"custom_update_fields,omitempty"` // 指定需要更新的pre_hire对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] + PersonCustomUpdateFields []string `json:"person_custom_update_fields,omitempty"` // 指定需要更新的person对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] +} + +// UpdateCorehrPreHireReqBasicInfoUpdate ... +type UpdateCorehrPreHireReqBasicInfoUpdate struct { + Names []*UpdateCorehrPreHireReqBasicInfoUpdateName `json:"names,omitempty"` // 姓名, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Phones []*UpdateCorehrPreHireReqBasicInfoUpdatePhone `json:"phones,omitempty"` // 电话, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Emails []*UpdateCorehrPreHireReqBasicInfoUpdateEmail `json:"emails,omitempty"` // 邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + NationalityV2ID *string `json:"nationality_v2_id,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914824" + AdditionalNationalityIDList []string `json:"additional_nationality_id_list,omitempty"` // 其他国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: ["6862995757234914824"] + ResidentTaxList []*UpdateCorehrPreHireReqBasicInfoUpdateResidentTax `json:"resident_tax_list,omitempty"` // 纳税身份信息, 该值是一个list, 会全量更新 + BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true + DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "身份证号+残疾类型(1-7)+ 残疾程度分级(1-4)+[补发编号]" + IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true + IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true + MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "00001" + DependentList []*UpdateCorehrPreHireReqBasicInfoUpdateDependent `json:"dependent_list,omitempty"` // 家庭成员 + Religion *string `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: religion示例值: "buddism" + BankAccountList []*UpdateCorehrPreHireReqBasicInfoUpdateBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCorehrPreHireReqBasicInfoUpdateNationalID `json:"national_id_list,omitempty"` // 证件账号 + PersonalProfileList []*UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile `json:"personal_profile_list,omitempty"` // 个人资料 + EmergencyContactList []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人 + AddressList []*UpdateCorehrPreHireReqBasicInfoUpdateAddress `json:"address_list,omitempty"` // 联系地址 + MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: marital_status示例值: "single" + EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: ethnicity_race示例值: "han" + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + NativeRegion *string `json:"native_region,omitempty"` // 籍贯, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6862995757234914824" + HukouType *string `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person_info_chn- custom_api_name: hukou_type示例值: "local_urban_residence" + HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京市海淀区北三环西路" + GenderID *string `json:"gender_id,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2011-99-99" + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2100-09-09" + ExpectedGraduateDate *string `json:"expected_graduate_date,omitempty"` // 预计毕业日期示例值: "2023-01-10" + CitizenshipStatusIDList []string `json:"citizenship_status_id_list,omitempty"` // 公民身份示例值: ["6862995757234914824"] + WorkExperience []*UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience `json:"work_experience,omitempty"` // 工作履历 + EducationInfo []*UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo `json:"education_info,omitempty"` // 教育经历 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateAddress ... +type UpdateCorehrPreHireReqBasicInfoUpdateAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateBankAccount ... +type UpdateCorehrPreHireReqBasicInfoUpdateBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200xxxx01223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区 ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995745889322510" + BankAccountUsages []string `json:"bank_account_usages,omitempty"` // 银行卡用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_usage示例值: ["payment"] 长度范围: `0` ~ `100` + BankAccountType *string `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_type示例值: "checking" + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05)示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependent ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependent struct { + Relationship string `json:"relationship,omitempty"` // 关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: relationship_with_dependent示例值: "parent" + Gender *string `json:"gender,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalIDs []string `json:"national_ids,omitempty"` // 证件号码 长度范围: `1` ~ `1000` + SpousesWorkingStatus *string `json:"spouses_working_status,omitempty"` // 配偶工作状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: spouses_working_status示例值: "working" + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "王冰" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位信息描述示例值: "保安" + Phone *UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress `json:"address,omitempty"` // 联系地址 + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalID ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333xxxx222" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone ... +type UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: phone_usage示例值: "home" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo ... +type UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo struct { + SchoolName *string `json:"school_name,omitempty"` // 学校名称示例值: "长安大学" + Education *string `json:"education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得示例值: "phd" + StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2017-04-01" + EndTime *string `json:"end_time,omitempty"` // 结束时间示例值: "2018-04-01" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "医学影像技术" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmail ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact struct { + LegalName *string `json:"legal_name,omitempty"` // 紧急联系人姓名示例值: "王冰" + Relationship *string `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: emergency_contact- custom_api_name: relationship示例值: "parent" + Phones []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone `json:"phones,omitempty"` // 电话 长度范围: `0` ~ `1000` + Address *UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress `json:"address,omitempty"` // 地址 + Email *UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail `json:"email,omitempty"` // 邮箱 + IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true示例值: true + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: email- custom_api_name: email_usage示例值: "work" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone ... +type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: phone_usage示例值: "home" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCorehrPreHireReqBasicInfoUpdateName ... +type UpdateCorehrPreHireReqBasicInfoUpdateName struct { + FullName *string `json:"full_name,omitempty"` // 全名示例值: "李一一" + FirstName *string `json:"first_name,omitempty"` // 名示例值: "一" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "一" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "李" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "一" + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "一" + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "李" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 自定义姓名(本地文字)示例值: "李一一" + CustomWesternName *string `json:"custom_western_name,omitempty"` // 自定义姓名(西方文字)示例值: "YiyiLi" + CountryRegion string `json:"country_region,omitempty"` // 国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + NameType string `json:"name_type,omitempty"` // 姓名类型, 枚举值如下: legal_name: 法定姓名- preferred_name: 常用名- former_name: 曾用名- additional_name: 别名示例值: "legal_name" + AdditionalName *string `json:"additional_name,omitempty"` // 别名示例值: "别名" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateNationalID ... +type UpdateCorehrPreHireReqBasicInfoUpdateNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile ... +type UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile struct { + PersonalProfileType *string `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: personal_profile- custom_api_name: profile_type示例值: "profile_type_1_101_101011" + Files []*UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile `json:"files,omitempty"` // 资料文件列表 长度范围: `0` ~ `1000` +} + +// UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile ... +type UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile struct { + ID *string `json:"id,omitempty"` // 文件ID, 通过[上传文件](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口上传文件后, 获取文件ID示例值: "6655aa1b2ec326f983b91f9d_f9974583040c4b05ae71f92f5df16bbc" +} + +// UpdateCorehrPreHireReqBasicInfoUpdatePhone ... +type UpdateCorehrPreHireReqBasicInfoUpdatePhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 电话区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1234" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = phone_usage示例值: "work" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCorehrPreHireReqBasicInfoUpdateResidentTax ... +type UpdateCorehrPreHireReqBasicInfoUpdateResidentTax struct { + TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份示例值: "tax_residence" + TaxAddress *UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress `json:"tax_address,omitempty"` // 纳税地址 + ResidentStatusSpecification *string `json:"resident_status_specification,omitempty"` // 居民纳税身份说明示例值: "文本内容, 对纳税身份的补充说明信息" + YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度示例值: "2006-01-01" + CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField ... +type UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress ... +type UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市, 可以通过接口[查询城市信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取详情示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县, 可以通过接口[查询区/县信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)获取详情示例值: "6863333516579440141" +} + +// UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience ... +type UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience struct { + CompanyName *string `json:"company_name,omitempty"` // 公司名称示例值: "猎豹" + StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2015-02-01" + EndTime *string `json:"end_time,omitempty"` // 结束时间示例值: "2017-02-01" + JobTitle *string `json:"job_title,omitempty"` // 岗位示例值: "产品经理" + Description *string `json:"description,omitempty"` // 工作描述示例值: "app" + Department *string `json:"department,omitempty"` // 部门示例值: "部门名称" +} + +// UpdateCorehrPreHireReqOfferInfoUpdate ... +type UpdateCorehrPreHireReqOfferInfoUpdate struct { + OnboardingDate *string `json:"onboarding_date,omitempty"` // 入职日期示例值: "2022-10-08" + AtsApplicationID *string `json:"ats_application_id,omitempty"` // 招聘应用 ID, 仅支持飞书招聘 ID, 可以通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "7140946969586010376" + OnboardingLocationID *string `json:"onboarding_location_id,omitempty"` // 入职地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OnboardingAddressID *string `json:"onboarding_address_id,omitempty"` // 入职地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OfficeLocationID *string `json:"office_location_id,omitempty"` // 办公地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + OfficeAddressID *string `json:"office_address_id,omitempty"` // 办公地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + EmploymentType *string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type示例值: "employee" + OnboardingMethod *string `json:"onboarding_method,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = onboarding_method示例值: "onsite" + WorkEmails []*UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail `json:"work_emails,omitempty"` // 工作邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + CostCenterRates []*UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + CustomFields []*UpdateCorehrPreHireReqOfferInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + PositionID *string `json:"position_id,omitempty"` // 岗位id, 如需获取具体值, 请联系人员档案管理员示例值: "697797668735092768" + ProbationPeriod *int64 `json:"probation_period,omitempty"` // 试用期时长示例值: 6 + ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期, 格式: "YYYY-MM-DD"示例值: "2022-07-29" + ProbationEndDate *string `json:"probation_end_date,omitempty"` // 试用期结束日期, 格式: "YYYY-MM-DD"示例值: "2023-04-07" + ContractStartDate *string `json:"contract_start_date,omitempty"` // 合同开始日期, 格式: "YYYY-MM-DD"示例值: "2022-10-08" + ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期, 格式: "YYYY-MM-DD"示例值: "2025-10-07" + ContractType *string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: contract_type示例值: "internship_agreement" + DurationTypeID *string `json:"duration_type_id,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: duration_type示例值: "fixed_term" + SigningTypeID *string `json:"signing_type_id,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: signing_type示例值: "new" + WorkerID *string `json:"worker_id,omitempty"` // 工号示例值: "DDD00001" + CheckInTime *string `json:"check_in_time,omitempty"` // 签到日期, 格式: "YYYY-MM-DD"示例值: "2024-12-31" + CheckInMethod *string `json:"check_in_method,omitempty"` // 签到方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: onboarding_method示例值: "onsite" + Company *string `json:"company,omitempty"` // 公司主体, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + WorkShift *string `json:"work_shift,omitempty"` // 排班, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = work_shift示例值: "work_shift" + RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 招聘类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type示例值: "experienced_professionals" + CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = compensation_type示例值: "hourly" + PayGroupID *string `json:"pay_group_id,omitempty"` // 薪资组, 如需获取具体值, 请联系人员档案管理员示例值: "6977976687350924833" + OfferHRID *string `json:"offer_hr_id,omitempty"` // Offer HR 雇佣ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + JobID *string `json:"job_id,omitempty"` // 职务 ID, 可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6977976735715378724" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6977972856625939999" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6977971894960145950" + JobGradeID *string `json:"job_grade_id,omitempty"` // 职等ID, 可以通过[查询职等](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "6738317738688661772" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过接口[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6977973225846343171" + EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型示例值: "xxx" + DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "xxx" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "7147562782945478177" + SocialSecurityCity *string `json:"social_security_city,omitempty"` // 社保城市ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkingCalendar *string `json:"working_calendar,omitempty"` // 工作日历, 可以通过[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得示例值: "6890452208593372141" + WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度, 可以通过[批量查询工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获得示例值: "6890452208593372679" + SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期示例值: "2022-10-08" + SeniorityAdjustInformationList []*UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodProbationInvoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveVoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveInvoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + ConditionWorker *bool `json:"condition_worker,omitempty"` // 是否外部人员示例值: true + CompanySponsoredVisa *bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证示例值: true + WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长(单位: 小时)示例值: 8.5 + WorkStation *string `json:"work_station,omitempty"` // 工位示例值: "5-1-2" + ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + NonCompeteCovenant *bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款示例值: true + Pathway *string `json:"pathway,omitempty"` // 通道示例值: "7460865381179115052" + DefaultCostCenter *UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReuseFeishuAccount *string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号, 支持传入“reuse”或者“not_resue”, 当字段为“reuse”时, 需要传入reused_feishu_account_id- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "reuse" + ReusedFeishuAccountID *string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 仅支持Lark Union ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/search)接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "on_773dd2c4d14c5c980a4d89a2da5c86d3" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation ... +type UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation struct { + EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" + CostCenterRates []*UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` +} + +// UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate ... +type UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate ... +type UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例, 大于0小于等于100的正整数示例值: 100 + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// UpdateCorehrPreHireReqOfferInfoUpdateCustomField ... +type UpdateCorehrPreHireReqOfferInfoUpdateCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 该值是一个 string list 经转义后的字符串, 具体参考请求体示例示例值: "[\"Sandy\"]" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter ... +type UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心示例值: false +} + +// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary ... +type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary ... +type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary ... +type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary ... +type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation ... +type UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation struct { + SeniorityAdjustment *float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年- 自动计算逻辑: 如果这个值为空, 司龄调整的开始日期和结束日期均不为空, 会自动计算出调整值示例值: 0.5 取值范围: `0` ~ `100` + SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "增加"可选值有: 减少增加 + ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因示例值: "工厂停产需要减去半年工龄" + StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-05-19" + EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-11-18" + CustomFields []*UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField ... +type UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail ... +type UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" +} + +// UpdateCorehrPreHireResp ... +type UpdateCorehrPreHireResp struct { + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID +} + +// updateCorehrPreHireResp ... +type updateCorehrPreHireResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrPreHireResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_pre_hire_withdraw_onboarding.go b/api_corehr_pre_hire_withdraw_onboarding.go new file mode 100644 index 00000000..5de5ceee --- /dev/null +++ b/api_corehr_pre_hire_withdraw_onboarding.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrPreHireWithdrawOnboarding 通过本接口对指定待入职, 入职准备就绪的员工执行撤销入职操作, 对应入职管理页面撤销入职按钮 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/withdraw_onboarding +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/withdraw_onboarding +func (r *CoreHRService) CreateCorehrPreHireWithdrawOnboarding(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrPreHireWithdrawOnboarding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireWithdrawOnboarding mock enable") + return r.cli.mock.mockCoreHRCreateCorehrPreHireWithdrawOnboarding(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrPreHireWithdrawOnboarding", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/withdraw_onboarding", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrPreHireWithdrawOnboardingResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrPreHireWithdrawOnboarding mock CoreHRCreateCorehrPreHireWithdrawOnboarding method +func (r *Mock) MockCoreHRCreateCorehrPreHireWithdrawOnboarding(f func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error)) { + r.mockCoreHRCreateCorehrPreHireWithdrawOnboarding = f +} + +// UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding un-mock CoreHRCreateCorehrPreHireWithdrawOnboarding method +func (r *Mock) UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding() { + r.mockCoreHRCreateCorehrPreHireWithdrawOnboarding = nil +} + +// CreateCorehrPreHireWithdrawOnboardingReq ... +type CreateCorehrPreHireWithdrawOnboardingReq struct { + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775407" + WithdrawReason string `json:"withdraw_reason,omitempty"` // 撤销原因, 上限为500字示例值: "withdraw reason" +} + +// CreateCorehrPreHireWithdrawOnboardingResp ... +type CreateCorehrPreHireWithdrawOnboardingResp struct { + Success bool `json:"success,omitempty"` // 是否成功撤销入职 +} + +// createCorehrPreHireWithdrawOnboardingResp ... +type createCorehrPreHireWithdrawOnboardingResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrPreHireWithdrawOnboardingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_probation_assessment_delete.go b/api_corehr_probation_assessment_delete.go index b54a7ca0..7e124122 100644 --- a/api_corehr_probation_assessment_delete.go +++ b/api_corehr_probation_assessment_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHRProbationAssessmentReq struct { } // DeleteCoreHRProbationAssessmentResp ... -type DeleteCoreHRProbationAssessmentResp struct{} +type DeleteCoreHRProbationAssessmentResp struct { +} // deleteCoreHRProbationAssessmentResp ... type deleteCoreHRProbationAssessmentResp struct { diff --git a/api_corehr_probation_assessment_enable_disable.go b/api_corehr_probation_assessment_enable_disable.go index d0e0bc60..59f64912 100644 --- a/api_corehr_probation_assessment_enable_disable.go +++ b/api_corehr_probation_assessment_enable_disable.go @@ -63,7 +63,8 @@ type EnableDisableCoreHRProbationAssessmentReq struct { } // EnableDisableCoreHRProbationAssessmentResp ... -type EnableDisableCoreHRProbationAssessmentResp struct{} +type EnableDisableCoreHRProbationAssessmentResp struct { +} // enableDisableCoreHRProbationAssessmentResp ... type enableDisableCoreHRProbationAssessmentResp struct { diff --git a/api_corehr_probation_assessment_update.go b/api_corehr_probation_assessment_update.go index 26d89875..443bdbe2 100644 --- a/api_corehr_probation_assessment_update.go +++ b/api_corehr_probation_assessment_update.go @@ -70,7 +70,8 @@ type UpdateCoreHRProbationAssessmentReq struct { } // UpdateCoreHRProbationAssessmentResp ... -type UpdateCoreHRProbationAssessmentResp struct{} +type UpdateCoreHRProbationAssessmentResp struct { +} // updateCoreHRProbationAssessmentResp ... type updateCoreHRProbationAssessmentResp struct { diff --git a/api_corehr_probation_submit.go b/api_corehr_probation_submit.go new file mode 100644 index 00000000..462df9f8 --- /dev/null +++ b/api_corehr_probation_submit.go @@ -0,0 +1,196 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrProbationSubmit 通过本接口可以为员工发起转正 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/probation/submit +// new doc: https://open.feishu.cn/document/corehr-v1/probation/submit +func (r *CoreHRService) CreateCorehrProbationSubmit(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrProbationSubmit != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProbationSubmit mock enable") + return r.cli.mock.mockCoreHRCreateCorehrProbationSubmit(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrProbationSubmit", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/probation/submit", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrProbationSubmitResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrProbationSubmit mock CoreHRCreateCorehrProbationSubmit method +func (r *Mock) MockCoreHRCreateCorehrProbationSubmit(f func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error)) { + r.mockCoreHRCreateCorehrProbationSubmit = f +} + +// UnMockCoreHRCreateCorehrProbationSubmit un-mock CoreHRCreateCorehrProbationSubmit method +func (r *Mock) UnMockCoreHRCreateCorehrProbationSubmit() { + r.mockCoreHRCreateCorehrProbationSubmit = nil +} + +// CreateCorehrProbationSubmitReq ... +type CreateCorehrProbationSubmitReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 6822122262122064111 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 试用期人员的雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" + ConversionMode int64 `json:"conversion_mode,omitempty"` // 转正方式示例值: 1可选值有: 直接转正发起转正 + ActualProbationEndDate *string `json:"actual_probation_end_date,omitempty"` // 实际结束日期, 如果为空则默认填入试用期预计结束日期, 填入日期需满足: 试用期开始时间 <= 实际结束日期 <= 试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2022-05-20" + SubmissionType string `json:"submission_type,omitempty"` // 发起方示例值: "system"可选值有: 员工系统HR + InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID, 当发起方为 HR 时填写, 为其他发起方时该字段会自动计算, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" + Notes *string `json:"notes,omitempty"` // 备注, 当为直接转正时必填示例值: "符合预期" + SelfReview *string `json:"self_review,omitempty"` // 员工自评示例值: "符合预期" + CustomFields []*CreateCorehrProbationSubmitReqCustomField `json:"custom_fields,omitempty"` // 自定义字段(试用期中如果有附件自定义字段, 当前不支持使用「上传文件」接口写入) +} + +// CreateCorehrProbationSubmitReqCustomField ... +type CreateCorehrProbationSubmitReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" + Name *CreateCorehrProbationSubmitReqCustomFieldName `json:"name,omitempty"` // 自定义字段名称(无需填写) + Type *int64 `json:"type,omitempty"` // 自定义字段类型(无需填写)示例值: 1 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01"示例值: "231" +} + +// CreateCorehrProbationSubmitReqCustomFieldName ... +type CreateCorehrProbationSubmitReqCustomFieldName struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "自定义姓名" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "Custom Name" +} + +// CreateCorehrProbationSubmitResp ... +type CreateCorehrProbationSubmitResp struct { + ProbationInfo *CreateCorehrProbationSubmitRespProbationInfo `json:"probation_info,omitempty"` // 试用期信息 +} + +// CreateCorehrProbationSubmitRespProbationInfo ... +type CreateCorehrProbationSubmitRespProbationInfo struct { + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID + ProbationID string `json:"probation_id,omitempty"` // 试用期信息 ID + ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期 + ProbationExpectedEndDate string `json:"probation_expected_end_date,omitempty"` // 试用期预计结束日期 + ActualProbationEndDate string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期 + InitiatingTime string `json:"initiating_time,omitempty"` // 转正发起日期 + SubmissionType *CreateCorehrProbationSubmitRespProbationInfoSubmissionType `json:"submission_type,omitempty"` // 发起方 + InitiatorID string `json:"initiator_id,omitempty"` // 转正发起人的雇佣 ID, 当系统发起转正时该字段为空 + ProbationStatus *CreateCorehrProbationSubmitRespProbationInfoProbationStatus `json:"probation_status,omitempty"` // 试用期状态 + SelfReview string `json:"self_review,omitempty"` // 员工自评字段权限要求(满足任一): 读取员工自评信息读写员工自评信息 + Notes string `json:"notes,omitempty"` // 备注字段权限要求(满足任一): 读取试用期备注信息读写试用期备注信息 + ProcessID string `json:"process_id,omitempty"` // 流程实例 ID + ConvertedViaBpm bool `json:"converted_via_bpm,omitempty"` // 是否通过 BPM 转正 + CustomFields []*CreateCorehrProbationSubmitRespProbationInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取试用期自定义字段信息读写试用期自定义字段信息 + FinalAssessmentStatus *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus `json:"final_assessment_status,omitempty"` // 试用期考核最终状态 + FinalAssessmentResult *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult `json:"final_assessment_result,omitempty"` // 试用期考核最终结果 + FinalAssessmentScore float64 `json:"final_assessment_score,omitempty"` // 试用期考核最终得分字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentGrade *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade `json:"final_assessment_grade,omitempty"` // 试用期考核最终等级字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentComment string `json:"final_assessment_comment,omitempty"` // 试用期考核最终评语字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentDetail string `json:"final_assessment_detail,omitempty"` // 最终考核结果页面超链接字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 +} + +// CreateCorehrProbationSubmitRespProbationInfoCustomField ... +type CreateCorehrProbationSubmitRespProbationInfoCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCorehrProbationSubmitRespProbationInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01" +} + +// CreateCorehrProbationSubmitRespProbationInfoCustomFieldName ... +type CreateCorehrProbationSubmitRespProbationInfoCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay ... +type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// CreateCorehrProbationSubmitRespProbationInfoProbationStatus ... +type CreateCorehrProbationSubmitRespProbationInfoProbationStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay ... +type CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// CreateCorehrProbationSubmitRespProbationInfoSubmissionType ... +type CreateCorehrProbationSubmitRespProbationInfoSubmissionType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay ... +type CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// createCorehrProbationSubmitResp ... +type createCorehrProbationSubmitResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrProbationSubmitResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_probation_withdraw.go b/api_corehr_probation_withdraw.go new file mode 100644 index 00000000..135f49dd --- /dev/null +++ b/api_corehr_probation_withdraw.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrProbationWithdraw 可通过本接口撤销对员工之前发起的转正 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/probation/withdraw +// new doc: https://open.feishu.cn/document/corehr-v1/probation/withdraw +func (r *CoreHRService) CreateCorehrProbationWithdraw(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrProbationWithdraw != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProbationWithdraw mock enable") + return r.cli.mock.mockCoreHRCreateCorehrProbationWithdraw(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrProbationWithdraw", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/probation/withdraw", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrProbationWithdrawResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrProbationWithdraw mock CoreHRCreateCorehrProbationWithdraw method +func (r *Mock) MockCoreHRCreateCorehrProbationWithdraw(f func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error)) { + r.mockCoreHRCreateCorehrProbationWithdraw = f +} + +// UnMockCoreHRCreateCorehrProbationWithdraw un-mock CoreHRCreateCorehrProbationWithdraw method +func (r *Mock) UnMockCoreHRCreateCorehrProbationWithdraw() { + r.mockCoreHRCreateCorehrProbationWithdraw = nil +} + +// CreateCorehrProbationWithdrawReq ... +type CreateCorehrProbationWithdrawReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 6822122262122064111 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 试用期人员的雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" +} + +// CreateCorehrProbationWithdrawResp ... +type CreateCorehrProbationWithdrawResp struct { +} + +// createCorehrProbationWithdrawResp ... +type createCorehrProbationWithdrawResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrProbationWithdrawResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_approver_update.go b/api_corehr_process_approver_update.go new file mode 100644 index 00000000..d6b7e57a --- /dev/null +++ b/api_corehr_process_approver_update.go @@ -0,0 +1,167 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrProcessApprover 对于单个审批任务进行通过(提交)或拒绝操作。对于多人或签节点, 一个审批任务通过则整个节点通过;对于多人会签节点, 所有审批任务通过则节点通过。在通过(提交)时, 若表单中有必填字段, 支持写入表单字段。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-approver/update +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update +func (r *CoreHRService) UpdateCorehrProcessApprover(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrProcessApprover != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessApprover mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrProcessApprover(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrProcessApprover", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/approvers/:approver_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrProcessApproverResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrProcessApprover mock CoreHRUpdateCorehrProcessApprover method +func (r *Mock) MockCoreHRUpdateCorehrProcessApprover(f func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error)) { + r.mockCoreHRUpdateCorehrProcessApprover = f +} + +// UnMockCoreHRUpdateCorehrProcessApprover un-mock CoreHRUpdateCorehrProcessApprover method +func (r *Mock) UnMockCoreHRUpdateCorehrProcessApprover() { + r.mockCoreHRUpdateCorehrProcessApprover = nil +} + +// UpdateCorehrProcessApproverReq ... +type UpdateCorehrProcessApproverReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7328345170959681068" + ApproverID string `path:"approver_id" json:"-"` // 标识流程中一个审批节点的一个审批人的审批任务。同一个审批节点如果有多个审批人, 不同审批人的 approver_id 不同。可通过 [获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)接口获取流程中各审批任务的 approver_id。示例值: "7381468648050787884" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + Status int64 `json:"status,omitempty"` // 将审批任务修改为同意/拒绝示例值: 2可选值有: 拒绝通过 + UserID *string `json:"user_id,omitempty"` // 用户id, 按user_id_type类型传递。如果system_approval为false, 则必填审批任务“approver_id”对应的原审批人的user_id;为true时非必填。示例值: "ou_91791271921729102012" + SystemApproval *bool `json:"system_approval,omitempty"` // 是否为系统身份审批。true - 使用系统身份审批, 若使用系统身份, 将代替approver_id对应的原审批人进行审批, 原审批人将失去审批任务的查看权限;false - 按照所传的人员身份审批示例值: true默认值: `false` + Reason *string `json:"reason,omitempty"` // 通过/拒绝原因, 当拒绝时原因必填默认值: ""示例值: "原因自定义字符串" 最大长度: `1000` 字符 + FieldValuesV2 []*UpdateCorehrProcessApproverReqFieldValuesV2 `json:"field_values_v2,omitempty"` // 表单数据 长度范围: `0` ~ `100000` +} + +// UpdateCorehrProcessApproverReqFieldValuesV2 ... +type UpdateCorehrProcessApproverReqFieldValuesV2 struct { + VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识, 可通过[获取流程表单数据](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get)查询变量示例值: "custom123" + VariableValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*UpdateCorehrProcessApproverReqFieldValuesV2SubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` +} + +// UpdateCorehrProcessApproverReqFieldValuesV2SubValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2SubValue struct { + Key *string `json:"key,omitempty"` // 用于关联list_values和record_values类型变量值中的key示例值: "key1" + Value *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue `json:"value,omitempty"` // 变量值 +} + +// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue struct { + TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" + BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true + NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" + EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" + DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" + DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" + I18nValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" + EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。示例值: "ou_c57053dad6eea0aea4696c48433d8562" + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应sub_values中的key示例值: ["key1"] 长度范围: `0` ~ `10000` + FileValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 +} + +// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue struct { + OpenFileID *string `json:"open_file_id,omitempty"` // 通过在[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)上传文件后获得的ID示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" + FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" + Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` +} + +// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" + EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" +} + +// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue struct { + WkID *string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get)示例值: "6863326263210149383" + WkApiName *string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口示例值: "country_region_subdivision" +} + +// UpdateCorehrProcessApproverReqFieldValuesV2VariableValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2VariableValue struct { + TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" + BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true + NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" + EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" + DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" + DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" + I18nValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue `json:"object_value,omitempty"` // 对象值示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" + EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。示例值: "ou_c57053dad6eea0aea4696c48433d8562" + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应sub_values中的key示例值: ["key1"] 长度范围: `0` ~ `10000` + FileValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 +} + +// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue struct { + OpenFileID *string `json:"open_file_id,omitempty"` // 通过在[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)上传文件后获得的ID示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" + FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" + Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` +} + +// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" + EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" +} + +// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue ... +type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue struct { + WkID *string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get)示例值: "6863326263210149383" + WkApiName *string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口示例值: "country_region_subdivision" +} + +// UpdateCorehrProcessApproverResp ... +type UpdateCorehrProcessApproverResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 +} + +// updateCorehrProcessApproverResp ... +type updateCorehrProcessApproverResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrProcessApproverResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_extra_update.go b/api_corehr_process_extra_update.go new file mode 100644 index 00000000..70ffa32f --- /dev/null +++ b/api_corehr_process_extra_update.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrProcessExtra 给单个流程中的节点或审批任务加签, 加签方式有前加签、并加签、后加签三种。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-extra/update +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update-3 +func (r *CoreHRService) UpdateCorehrProcessExtra(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrProcessExtra != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessExtra mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrProcessExtra(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrProcessExtra", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/extra", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrProcessExtraResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrProcessExtra mock CoreHRUpdateCorehrProcessExtra method +func (r *Mock) MockCoreHRUpdateCorehrProcessExtra(f func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error)) { + r.mockCoreHRUpdateCorehrProcessExtra = f +} + +// UnMockCoreHRUpdateCorehrProcessExtra un-mock CoreHRUpdateCorehrProcessExtra method +func (r *Mock) UnMockCoreHRUpdateCorehrProcessExtra() { + r.mockCoreHRUpdateCorehrProcessExtra = nil +} + +// UpdateCorehrProcessExtraReq ... +type UpdateCorehrProcessExtraReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7410664363763172908" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Operator *string `json:"operator,omitempty"` // 操作人, 按user_id_type类型传递;如果system_user为true, 则此字段可以不填示例值: "7184703091806602796" + NodeID *string `json:"node_id,omitempty"` // 流程节点id, 与approver_id二选一传入, 都传以node_id为准示例值: "7414045453433439788" + ApproverID *string `json:"approver_id,omitempty"` // 标识流程中一个审批节点的一个审批人的审批任务。同一个审批节点如果有多个审批人, 不同审批人的 approver_id 不同。可通过 [获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)接口获取流程中各审批任务的 approver_id。与node_id二选一传入, 都传以node_id为准示例值: "7424452160928106028" + ExtraType int64 `json:"extra_type,omitempty"` // 加签方式示例值: 1可选值有: 前加签并加签后加签 + ApprovalType *int64 `json:"approval_type,omitempty"` // 多人加签时的审批方式, 需要注意当extra_type为并加签时, 此处只能选择会签示例值: 1可选值有: 或签会签 + ExtraUserIDs []string `json:"extra_user_ids,omitempty"` // 加签人员id列表示例值: ["7184703091806602796"] 长度范围: `1` ~ `20` + Remark *string `json:"remark,omitempty"` // 备注示例值: "备注" + SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为false, 则operator必填示例值: true默认值: `false` +} + +// UpdateCorehrProcessExtraResp ... +type UpdateCorehrProcessExtraResp struct { +} + +// updateCorehrProcessExtraResp ... +type updateCorehrProcessExtraResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrProcessExtraResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_flow_variable_data.go b/api_corehr_process_flow_variable_data.go new file mode 100644 index 00000000..269d7f99 --- /dev/null +++ b/api_corehr_process_flow_variable_data.go @@ -0,0 +1,189 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetCorehrProcessFlowVariableData 根据流程实例 id(process_id)获取流程字段数据, 包括业务字段和自定义字段, 还有流程的数据(比如流程发起人、发起时间等), 仅支持飞书人事、假勤相关业务流程。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/flow_variable_data +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/flow_variable_data +func (r *CoreHRService) GetCorehrProcessFlowVariableData(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCorehrProcessFlowVariableData != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrProcessFlowVariableData mock enable") + return r.cli.mock.mockCoreHRGetCorehrProcessFlowVariableData(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "GetCorehrProcessFlowVariableData", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/flow_variable_data", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getCorehrProcessFlowVariableDataResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRGetCorehrProcessFlowVariableData mock CoreHRGetCorehrProcessFlowVariableData method +func (r *Mock) MockCoreHRGetCorehrProcessFlowVariableData(f func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error)) { + r.mockCoreHRGetCorehrProcessFlowVariableData = f +} + +// UnMockCoreHRGetCorehrProcessFlowVariableData un-mock CoreHRGetCorehrProcessFlowVariableData method +func (r *Mock) UnMockCoreHRGetCorehrProcessFlowVariableData() { + r.mockCoreHRGetCorehrProcessFlowVariableData = nil +} + +// GetCorehrProcessFlowVariableDataReq ... +type GetCorehrProcessFlowVariableDataReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取示例值: "7341373094948242956" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 department_id 来标识部门默认值: `people_corehr_department_id` + VariableKeys []string `query:"variable_keys" json:"-"` // 需要查询变量key示例值: changer +} + +// GetCorehrProcessFlowVariableDataResp ... +type GetCorehrProcessFlowVariableDataResp struct { + FieldVariableValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 流程数据 + ProcessID string `json:"process_id,omitempty"` // 流程实例id +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableName *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 + VariableValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key + Value *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + UserValue string `json:"user_value,omitempty"` // 用户id, 根据user_type选择对应的用户id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + RecordValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的数组下标 + FileValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据文件下载接口的id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 + WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + UserValue string `json:"user_value,omitempty"` // 用户id, 根据user_type选择对应的用户id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + RecordValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的数组下标 + FileValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据文件下载接口的id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 + WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 +} + +// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue ... +type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// getCorehrProcessFlowVariableDataResp ... +type getCorehrProcessFlowVariableDataResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCorehrProcessFlowVariableDataResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_form_variable_data_get.go b/api_corehr_process_form_variable_data_get.go index 283971fb..7c8f7250 100644 --- a/api_corehr_process_form_variable_data_get.go +++ b/api_corehr_process_form_variable_data_get.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/process-form_variable_data/get -// -// Deprecated func (r *CoreHRService) GetCoreHRProcessFormVariableData(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRProcessFormVariableData != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRProcessFormVariableData mock enable") diff --git a/api_corehr_process_form_variable_data_get_v2.go b/api_corehr_process_form_variable_data_get_v2.go new file mode 100644 index 00000000..71c06d0b --- /dev/null +++ b/api_corehr_process_form_variable_data_get_v2.go @@ -0,0 +1,190 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetCorehrProcessFormVariableData 根据流程实例 id(process_id)获取流程表单字段数据, 包括表单里的业务字段和自定义字段。仅支持飞书人事、假勤相关业务流程。 +// +// 注: [旧版 API](https://open.larkoffice.com/document/server-docs/corehr-v1/process-form_variable_data/get) 文档已移动到【历史版本】目录。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/get-2 +func (r *CoreHRService) GetCorehrProcessFormVariableData(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCorehrProcessFormVariableData != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrProcessFormVariableData mock enable") + return r.cli.mock.mockCoreHRGetCorehrProcessFormVariableData(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "GetCorehrProcessFormVariableData", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/form_variable_data", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getCorehrProcessFormVariableDataResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRGetCorehrProcessFormVariableData mock CoreHRGetCorehrProcessFormVariableData method +func (r *Mock) MockCoreHRGetCorehrProcessFormVariableData(f func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error)) { + r.mockCoreHRGetCorehrProcessFormVariableData = f +} + +// UnMockCoreHRGetCorehrProcessFormVariableData un-mock CoreHRGetCorehrProcessFormVariableData method +func (r *Mock) UnMockCoreHRGetCorehrProcessFormVariableData() { + r.mockCoreHRGetCorehrProcessFormVariableData = nil +} + +// GetCorehrProcessFormVariableDataReq ... +type GetCorehrProcessFormVariableDataReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7341373094948242956" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` +} + +// GetCorehrProcessFormVariableDataResp ... +type GetCorehrProcessFormVariableDataResp struct { + FieldVariableValues []*GetCorehrProcessFormVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 表单数据 + ProcessID string `json:"process_id,omitempty"` // 流程实例id +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableName *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 + VariableValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在 list_values 和 record_values 中引用的变量 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联 list 和 record 类型变量值中的 key + Value *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)接口的id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) + WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数示例值: 19688 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载接口的入参id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) + WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 +} + +// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue ... +type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// getCorehrProcessFormVariableDataResp ... +type getCorehrProcessFormVariableDataResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCorehrProcessFormVariableDataResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_query_flow_data_template_create.go b/api_corehr_process_query_flow_data_template_create.go new file mode 100644 index 00000000..7af55497 --- /dev/null +++ b/api_corehr_process_query_flow_data_template_create.go @@ -0,0 +1,178 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrProcessQueryFlowDataTemplate 通过传入流程定义 ID 和变量的 ApiName, 获取 process_form_variable_v2[] 类型参数模板。 +// +// 该接口用于帮助开发人员理解 process_form_variable_v2[] 的数据结构, 业务生产环境不建议使用。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-query_flow_data_template/create +func (r *CoreHRService) CreateCorehrProcessQueryFlowDataTemplate(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProcessQueryFlowDataTemplate mock enable") + return r.cli.mock.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrProcessQueryFlowDataTemplate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/query_flow_data_template", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrProcessQueryFlowDataTemplateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrProcessQueryFlowDataTemplate mock CoreHRCreateCorehrProcessQueryFlowDataTemplate method +func (r *Mock) MockCoreHRCreateCorehrProcessQueryFlowDataTemplate(f func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error)) { + r.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate = f +} + +// UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate un-mock CoreHRCreateCorehrProcessQueryFlowDataTemplate method +func (r *Mock) UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate() { + r.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate = nil +} + +// CreateCorehrProcessQueryFlowDataTemplateReq ... +type CreateCorehrProcessQueryFlowDataTemplateReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义ID。获取方式: 管理员在设置侧配置的流程, 浏览器 URL 为 `https://{域名}/people/approvals/flow-builder/people_7023711013443944467_7554571297192562476`, 其中 `people_7023711013443944467_7554571297192562476` 为当前流程的流程定义 ID。示例值: "people_7023711013443944467_7437160904904494892" + VariableApiNames []string `json:"variable_api_names,omitempty"` // 需要传入的变量的ApiName。如果是多级下钻变量用"."分割。字段的ApiName查询方式: 1. 进入飞书人事 -> 设置 -> 流程设置 -> 流程管理。2. 点击flow_definition_id对应的流程的"编辑"按钮, 点击右上角"下一步", 进入"2. 流程设计"页面3. 点击左侧的“变量”, 找到你需要查询的变量, 点击变量右侧的“API”按钮, 复制变量的ApiName。多级下钻变量举例, 例如“批量异动.新部门”, 分别按上面的步骤找到"批量异动"的ApiName为"batch_job_change", 新部门的ApiName为"target_department", 并用"."分割, 则传参为"batch_job_change.target_department"。示例值: ["custome3adb7eb040.custom_field_2__c"] 长度范围: `1` ~ `1000` +} + +// CreateCorehrProcessQueryFlowDataTemplateResp ... +type CreateCorehrProcessQueryFlowDataTemplateResp struct { + FieldValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValue `json:"field_values,omitempty"` // 流程参数模板 + ErrorInfo string `json:"error_info,omitempty"` // 错误信息。说明如下: 1. "variableAPIName [custome3adb7eb040] is invalid, record type cannot assign value, must assign record's drill down apiName", 表示custome3adb7eb040 这个 Record 类型变量未传下钻变量值2. "variableAPIName [custome3adb7eb040.custom_field_3__c] is invalid, not found drill down apiName [custom_field_3__c]", 表示 custom_field_3__c 这个下钻变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试3. "variableAPIName [customc17e5b301ef] is invalid, not found root apiName [customc17e5b301ef]", 表示 customc17e5b301ef 这个变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试4. "variableAPIName [customc17e5b301ea.custom1dddafc864a] is invalid, [customc17e5b301ea] cannot drill down", 表示 customc17e5b301ea 不是Record 类型变量, 不可下钻 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key + Value *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue `json:"value,omitempty"` // 变量值 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key + FileValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 主数据的文件id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 + WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key + FileValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 主数据的文件id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 + WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 +} + +// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue ... +type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID +} + +// createCorehrProcessQueryFlowDataTemplateResp ... +type createCorehrProcessQueryFlowDataTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrProcessQueryFlowDataTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_revoke_update.go b/api_corehr_process_revoke_update.go new file mode 100644 index 00000000..760a4842 --- /dev/null +++ b/api_corehr_process_revoke_update.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrProcessRevoke 撤销单个流程, 状态为已完成的流程能够进行撤销, 使用时需指定操作人, 目前支持流程管理员和审批单管理员。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_revoke/update +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/update-2 +func (r *CoreHRService) UpdateCorehrProcessRevoke(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrProcessRevoke != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessRevoke mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrProcessRevoke(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrProcessRevoke", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_revoke/:process_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrProcessRevokeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrProcessRevoke mock CoreHRUpdateCorehrProcessRevoke method +func (r *Mock) MockCoreHRUpdateCorehrProcessRevoke(f func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error)) { + r.mockCoreHRUpdateCorehrProcessRevoke = f +} + +// UnMockCoreHRUpdateCorehrProcessRevoke un-mock CoreHRUpdateCorehrProcessRevoke method +func (r *Mock) UnMockCoreHRUpdateCorehrProcessRevoke() { + r.mockCoreHRUpdateCorehrProcessRevoke = nil +} + +// UpdateCorehrProcessRevokeReq ... +type UpdateCorehrProcessRevokeReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例 ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取 示例值: "7328345170959681068" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)people corehr系统的用户id默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserID *string `json:"user_id,omitempty"` // 按照查询参数中指定的用户ID类型传递对应的用户ID, 默认为Open ID。示例值: "ou_91791271921729102012" + Reason *string `json:"reason,omitempty"` // 原因示例值: "原因自定义字符串" 最大长度: `500` 字符 + SystemUser *bool `json:"system_user,omitempty"` // true-系统身份操作示例值: true默认值: `false` +} + +// UpdateCorehrProcessRevokeResp ... +type UpdateCorehrProcessRevokeResp struct { +} + +// updateCorehrProcessRevokeResp ... +type updateCorehrProcessRevokeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrProcessRevokeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_start_create.go b/api_corehr_process_start_create.go new file mode 100644 index 00000000..0b01d639 --- /dev/null +++ b/api_corehr_process_start_create.go @@ -0,0 +1,179 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrProcessStart 发起一个流程实例, 目前只支持发起自定义业务类型的流程。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_start/create +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/create +func (r *CoreHRService) CreateCorehrProcessStart(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrProcessStart != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProcessStart mock enable") + return r.cli.mock.mockCoreHRCreateCorehrProcessStart(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrProcessStart", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_start", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrProcessStartResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrProcessStart mock CoreHRCreateCorehrProcessStart method +func (r *Mock) MockCoreHRCreateCorehrProcessStart(f func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error)) { + r.mockCoreHRCreateCorehrProcessStart = f +} + +// UnMockCoreHRCreateCorehrProcessStart un-mock CoreHRCreateCorehrProcessStart method +func (r *Mock) UnMockCoreHRCreateCorehrProcessStart() { + r.mockCoreHRCreateCorehrProcessStart = nil +} + +// CreateCorehrProcessStartReq ... +type CreateCorehrProcessStartReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` + FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义id示例值: "people_7023711013443944467_7437160904904494892" + InitiatorID *string `json:"initiator_id,omitempty"` // 发起人用户ID, 按user_id_type类型传递。如果system_initiator为false, 则必填;为true时非必填。示例值: "ou_91791271921729102012" + SystemInitiator *bool `json:"system_initiator,omitempty"` // 是否为系统身份发起流程, 如果为false, 则initiator_id必填示例值: true + FlowData []*CreateCorehrProcessStartReqFlowData `json:"flow_data,omitempty"` // 业务数据 长度范围: `0` ~ `100000` +} + +// CreateCorehrProcessStartReqFlowData ... +type CreateCorehrProcessStartReqFlowData struct { + VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "custom123" + VariableValue *CreateCorehrProcessStartReqFlowDataVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*CreateCorehrProcessStartReqFlowDataSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` +} + +// CreateCorehrProcessStartReqFlowDataSubValue ... +type CreateCorehrProcessStartReqFlowDataSubValue struct { + Key *string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key示例值: "key1" + Value *CreateCorehrProcessStartReqFlowDataSubValueValue `json:"value,omitempty"` // 变量值 +} + +// CreateCorehrProcessStartReqFlowDataSubValueValue ... +type CreateCorehrProcessStartReqFlowDataSubValueValue struct { + TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" + BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true + NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" + EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" + DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" + DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" + I18nValue *CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" + EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id示例值: "ou_c57053dad6eea0aea4696c48433d8562" + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key示例值: ["key1"] 长度范围: `0` ~ `10000` + FileValue *CreateCorehrProcessStartReqFlowDataSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +} + +// CreateCorehrProcessStartReqFlowDataSubValueValueFileValue ... +type CreateCorehrProcessStartReqFlowDataSubValueValueFileValue struct { + OpenFileID *string `json:"open_file_id,omitempty"` // 通过[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)获得的id示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" + FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" + Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` +} + +// CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue ... +type CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" + EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" +} + +// CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue ... +type CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue struct { + WkID *string `json:"wk_id,omitempty"` // wukong的对象唯一标识示例值: "6863326263210149383" + WkApiName *string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识示例值: "country_region_subdivision" +} + +// CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue ... +type CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue struct { + VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "city_v2" + SubValueKey *string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key示例值: "key1" + RecordID *string `json:"record_id,omitempty"` // 记录唯一ID示例值: "6863326263210149383" +} + +// CreateCorehrProcessStartReqFlowDataVariableValue ... +type CreateCorehrProcessStartReqFlowDataVariableValue struct { + TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" + BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true + NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" + EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" + DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" + DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" + I18nValue *CreateCorehrProcessStartReqFlowDataVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *CreateCorehrProcessStartReqFlowDataVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" + EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id示例值: "ou_c57053dad6eea0aea4696c48433d8562" + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key示例值: ["key1"] 长度范围: `0` ~ `10000` + FileValue *CreateCorehrProcessStartReqFlowDataVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCorehrProcessStartReqFlowDataVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +} + +// CreateCorehrProcessStartReqFlowDataVariableValueFileValue ... +type CreateCorehrProcessStartReqFlowDataVariableValueFileValue struct { + OpenFileID *string `json:"open_file_id,omitempty"` // 通过[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)获得的id示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" + FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" + Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` +} + +// CreateCorehrProcessStartReqFlowDataVariableValueI18nValue ... +type CreateCorehrProcessStartReqFlowDataVariableValueI18nValue struct { + ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" + EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" +} + +// CreateCorehrProcessStartReqFlowDataVariableValueObjectValue ... +type CreateCorehrProcessStartReqFlowDataVariableValueObjectValue struct { + WkID *string `json:"wk_id,omitempty"` // wukong的对象唯一标识示例值: "6863326263210149383" + WkApiName *string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识示例值: "country_region_subdivision" +} + +// CreateCorehrProcessStartReqFlowDataVariableValueRecordValue ... +type CreateCorehrProcessStartReqFlowDataVariableValueRecordValue struct { + VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "city_v2" + SubValueKey *string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key示例值: "key1" + RecordID *string `json:"record_id,omitempty"` // 记录唯一ID示例值: "6863326263210149383" +} + +// CreateCorehrProcessStartResp ... +type CreateCorehrProcessStartResp struct { + ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 +} + +// createCorehrProcessStartResp ... +type createCorehrProcessStartResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrProcessStartResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_transfer_update.go b/api_corehr_process_transfer_update.go new file mode 100644 index 00000000..81a4c8b7 --- /dev/null +++ b/api_corehr_process_transfer_update.go @@ -0,0 +1,80 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrProcessTransfer 对于单个审批任务进行转交操作。转交后审批流程流转给被转交人。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-transfer/update +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update-2 +func (r *CoreHRService) UpdateCorehrProcessTransfer(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrProcessTransfer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessTransfer mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrProcessTransfer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrProcessTransfer", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/transfer", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrProcessTransferResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrProcessTransfer mock CoreHRUpdateCorehrProcessTransfer method +func (r *Mock) MockCoreHRUpdateCorehrProcessTransfer(f func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error)) { + r.mockCoreHRUpdateCorehrProcessTransfer = f +} + +// UnMockCoreHRUpdateCorehrProcessTransfer un-mock CoreHRUpdateCorehrProcessTransfer method +func (r *Mock) UnMockCoreHRUpdateCorehrProcessTransfer() { + r.mockCoreHRUpdateCorehrProcessTransfer = nil +} + +// UpdateCorehrProcessTransferReq ... +type UpdateCorehrProcessTransferReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7410664363763172908" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Operator *string `json:"operator,omitempty"` // 操作人, 按user_id_type类型传递;如果system_user为true, 则此字段可以不填示例值: "7184703091806602796" + ToUserID string `json:"to_user_id,omitempty"` // 被转交人, 按user_id_type类型传递示例值: "7184703091806602796" + ApproverIDs []string `json:"approver_ids,omitempty"` // 待转交审批任务id列表同一个审批节点如果有多个审批人, 不同审批人的 approver_id 不同。可通过 [获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)接口获取流程中各审批任务的 approver_id。示例值: ["7424452160928106028"] 长度范围: `1` ~ `20` + Remark *string `json:"remark,omitempty"` // 备注示例值: "备注" + SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为fasle, 则operator必填示例值: true默认值: `false` +} + +// UpdateCorehrProcessTransferResp ... +type UpdateCorehrProcessTransferResp struct { +} + +// updateCorehrProcessTransferResp ... +type updateCorehrProcessTransferResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrProcessTransferResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_process_withdraw_update.go b/api_corehr_process_withdraw_update.go new file mode 100644 index 00000000..d85a4155 --- /dev/null +++ b/api_corehr_process_withdraw_update.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateCorehrProcessWithdraw 对状态为“审批中”的单个审批实例进行撤回操作, 撤回后审批流程结束 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_withdraw/update +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/update +func (r *CoreHRService) UpdateCorehrProcessWithdraw(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCorehrProcessWithdraw != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessWithdraw mock enable") + return r.cli.mock.mockCoreHRUpdateCorehrProcessWithdraw(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "UpdateCorehrProcessWithdraw", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_withdraw/:process_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateCorehrProcessWithdrawResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRUpdateCorehrProcessWithdraw mock CoreHRUpdateCorehrProcessWithdraw method +func (r *Mock) MockCoreHRUpdateCorehrProcessWithdraw(f func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error)) { + r.mockCoreHRUpdateCorehrProcessWithdraw = f +} + +// UnMockCoreHRUpdateCorehrProcessWithdraw un-mock CoreHRUpdateCorehrProcessWithdraw method +func (r *Mock) UnMockCoreHRUpdateCorehrProcessWithdraw() { + r.mockCoreHRUpdateCorehrProcessWithdraw = nil +} + +// UpdateCorehrProcessWithdrawReq ... +type UpdateCorehrProcessWithdrawReq struct { + ProcessID string `path:"process_id" json:"-"` // 流程实例ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取示例值: "7328345170959681068" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)people corehr系统的用户id默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserID *string `json:"user_id,omitempty"` // 按照查询参数中指定的用户ID类型传递对应的用户ID, 默认为Open ID。如果system_user为true, 此字段可不填示例值: "ou_91791271921729102012" + Reason *string `json:"reason,omitempty"` // 原因示例值: "原因自定义字符串" 最大长度: `500` 字符 + SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为false, 则user_id必填示例值: true默认值: `false` +} + +// UpdateCorehrProcessWithdrawResp ... +type UpdateCorehrProcessWithdrawResp struct { +} + +// updateCorehrProcessWithdrawResp ... +type updateCorehrProcessWithdrawResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCorehrProcessWithdrawResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_report_detail_row_batchdelete.go b/api_corehr_report_detail_row_batchdelete.go new file mode 100644 index 00000000..a68dba49 --- /dev/null +++ b/api_corehr_report_detail_row_batchdelete.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrReportDetailRowBatchdelete 批量删除填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 +// +// 批量删除填报行说明: 同批次操作场景下, 禁止重复删除同一行。 +// 删除填报行的时候请注意: 底层是将编制规划与预估在职人数清0, 如果被删除行的预增人员、预减人员不为0, 该行依旧会显示在页面上。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/report_detail_row/batchDelete +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchDelete +func (r *CoreHRService) CreateCorehrReportDetailRowBatchdelete(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchdelete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrReportDetailRowBatchdelete mock enable") + return r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchdelete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrReportDetailRowBatchdelete", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/report_detail_row/batchDelete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrReportDetailRowBatchdeleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrReportDetailRowBatchdelete mock CoreHRCreateCorehrReportDetailRowBatchdelete method +func (r *Mock) MockCoreHRCreateCorehrReportDetailRowBatchdelete(f func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error)) { + r.mockCoreHRCreateCorehrReportDetailRowBatchdelete = f +} + +// UnMockCoreHRCreateCorehrReportDetailRowBatchdelete un-mock CoreHRCreateCorehrReportDetailRowBatchdelete method +func (r *Mock) UnMockCoreHRCreateCorehrReportDetailRowBatchdelete() { + r.mockCoreHRCreateCorehrReportDetailRowBatchdelete = nil +} + +// CreateCorehrReportDetailRowBatchdeleteReq ... +type CreateCorehrReportDetailRowBatchdeleteReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" + Items []*CreateCorehrReportDetailRowBatchdeleteReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +} + +// CreateCorehrReportDetailRowBatchdeleteReqItem ... +type CreateCorehrReportDetailRowBatchdeleteReqItem struct { + Dimensions []*CreateCorehrReportDetailRowBatchdeleteReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" +} + +// CreateCorehrReportDetailRowBatchdeleteReqItemDimension ... +type CreateCorehrReportDetailRowBatchdeleteReqItemDimension struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" + DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" +} + +// CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail ... +type CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail struct { + Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和集中填报页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" + EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" +} + +// CreateCorehrReportDetailRowBatchdeleteResp ... +type CreateCorehrReportDetailRowBatchdeleteResp struct { +} + +// createCorehrReportDetailRowBatchdeleteResp ... +type createCorehrReportDetailRowBatchdeleteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrReportDetailRowBatchdeleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_report_detail_row_batchsave.go b/api_corehr_report_detail_row_batchsave.go new file mode 100644 index 00000000..970bdc6c --- /dev/null +++ b/api_corehr_report_detail_row_batchsave.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrReportDetailRowBatchsave 批量创建/更新填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 +// +// 批量创建/更新填报行说明: 同批次操作场景下, 禁止创建/更新重复行, 与此同时, 创建时若填报行已存在于系统中, 则会在底层自动触发更新机制;建议不要录入编制规划值和预估在职人数均为零值的填报行, 系统会对全0填报行进行过滤, 从而在页面上不显示该行, 可能会导致用户误以为填报行不存在。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/report_detail_row/batchSave +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchSave-2 +func (r *CoreHRService) CreateCorehrReportDetailRowBatchsave(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchsave != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrReportDetailRowBatchsave mock enable") + return r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchsave(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrReportDetailRowBatchsave", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/report_detail_row/batchSave", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrReportDetailRowBatchsaveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrReportDetailRowBatchsave mock CoreHRCreateCorehrReportDetailRowBatchsave method +func (r *Mock) MockCoreHRCreateCorehrReportDetailRowBatchsave(f func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error)) { + r.mockCoreHRCreateCorehrReportDetailRowBatchsave = f +} + +// UnMockCoreHRCreateCorehrReportDetailRowBatchsave un-mock CoreHRCreateCorehrReportDetailRowBatchsave method +func (r *Mock) UnMockCoreHRCreateCorehrReportDetailRowBatchsave() { + r.mockCoreHRCreateCorehrReportDetailRowBatchsave = nil +} + +// CreateCorehrReportDetailRowBatchsaveReq ... +type CreateCorehrReportDetailRowBatchsaveReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" + Items []*CreateCorehrReportDetailRowBatchsaveReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +} + +// CreateCorehrReportDetailRowBatchsaveReqItem ... +type CreateCorehrReportDetailRowBatchsaveReqItem struct { + Dimensions []*CreateCorehrReportDetailRowBatchsaveReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" + MultiPeriodValues []*CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` +} + +// CreateCorehrReportDetailRowBatchsaveReqItemDimension ... +type CreateCorehrReportDetailRowBatchsaveReqItemDimension struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" + DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" +} + +// CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail ... +type CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail struct { + Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和集中填报页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" + EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" +} + +// CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue ... +type CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue struct { + PeriodDate *string `json:"period_date,omitempty"` // 周期的最后一天。注意需要在填报选择的周期范围内。示例值: "2022-10-31" + WorkforcePlan *string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值。编制规划值需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12.00" + IndividualsToBeAdded *string `json:"individuals_to_be_added,omitempty"` // 对应自然周期预增员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" + IndividualsToBeRemoved *string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期预减员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" +} + +// CreateCorehrReportDetailRowBatchsaveResp ... +type CreateCorehrReportDetailRowBatchsaveResp struct { +} + +// createCorehrReportDetailRowBatchsaveResp ... +type createCorehrReportDetailRowBatchsaveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrReportDetailRowBatchsaveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_file_download.go b/api_corehr_signature_file_download.go new file mode 100644 index 00000000..4beb6ecd --- /dev/null +++ b/api_corehr_signature_file_download.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" + "io" +) + +// DownloadCorehrSignatureFile 该接口用于下载电子签文件 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/download +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/download +func (r *CoreHRService) DownloadCorehrSignatureFile(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRDownloadCorehrSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DownloadCorehrSignatureFile mock enable") + return r.cli.mock.mockCoreHRDownloadCorehrSignatureFile(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "DownloadCorehrSignatureFile", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/:signature_file_id/download", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(downloadCorehrSignatureFileResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRDownloadCorehrSignatureFile mock CoreHRDownloadCorehrSignatureFile method +func (r *Mock) MockCoreHRDownloadCorehrSignatureFile(f func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error)) { + r.mockCoreHRDownloadCorehrSignatureFile = f +} + +// UnMockCoreHRDownloadCorehrSignatureFile un-mock CoreHRDownloadCorehrSignatureFile method +func (r *Mock) UnMockCoreHRDownloadCorehrSignatureFile() { + r.mockCoreHRDownloadCorehrSignatureFile = nil +} + +// DownloadCorehrSignatureFileReq ... +type DownloadCorehrSignatureFileReq struct { + SignatureFileID string `path:"signature_file_id" json:"-"` // 电子签文件id, [【获取电子签文件列表】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)示例值: "6891251722631890445" +} + +// downloadCorehrSignatureFileResp ... +type downloadCorehrSignatureFileResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *DownloadCorehrSignatureFileResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} + +func (r *downloadCorehrSignatureFileResp) SetReader(file io.Reader) { + if r.Data == nil { + r.Data = &DownloadCorehrSignatureFileResp{} + } + r.Data.File = file +} + +// DownloadCorehrSignatureFileResp ... +type DownloadCorehrSignatureFileResp struct { + File io.Reader `json:"file,omitempty"` +} diff --git a/api_corehr_signature_file_list.go b/api_corehr_signature_file_list.go new file mode 100644 index 00000000..2f64a4f4 --- /dev/null +++ b/api_corehr_signature_file_list.go @@ -0,0 +1,116 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrSignatureFile 该接口用于获取电子签文件列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list +func (r *CoreHRService) ListCorehrSignatureFile(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureFile mock enable") + return r.cli.mock.mockCoreHRListCorehrSignatureFile(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrSignatureFile", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listCorehrSignatureFileResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrSignatureFile mock CoreHRListCorehrSignatureFile method +func (r *Mock) MockCoreHRListCorehrSignatureFile(f func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error)) { + r.mockCoreHRListCorehrSignatureFile = f +} + +// UnMockCoreHRListCorehrSignatureFile un-mock CoreHRListCorehrSignatureFile method +func (r *Mock) UnMockCoreHRListCorehrSignatureFile() { + r.mockCoreHRListCorehrSignatureFile = nil +} + +// ListCorehrSignatureFileReq ... +type ListCorehrSignatureFileReq struct { + SignatureFileID *string `query:"signature_file_id" json:"-"` // 电子签文件ID示例值: 6891251722631890445 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: {"cn":"[\"7371387495822411308\"]"} + States []string `query:"states" json:"-"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)的signature_file_state枚举定义部分获得注意: 多个状态之间为「或」的关系;示例值: sign_finished 长度范围: `0` ~ `30` + UpdateTimeStart *string `query:"update_time_start" json:"-"` // 更新时间早于等于某个时间点, 按照东八区时区示例值: 2022-01-01 00:00:00 + UpdateTimeEnd *string `query:"update_time_end" json:"-"` // 更新时间晚于等于某个时间点, 按照东八区时区示例值: 2022-01-01 00:00:00 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TemplateIDs []string `query:"template_ids" json:"-"` // 根据电子签模板id列表筛选电子签文件, 返回的电子签文件使用的模板id在该list中示例值: 7282756156156560940 长度范围: `0` ~ `4294967296` +} + +// ListCorehrSignatureFileResp ... +type ListCorehrSignatureFileResp struct { + Items []*ListCorehrSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListCorehrSignatureFileRespItem ... +type ListCorehrSignatureFileRespItem struct { + SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID, [【查询电子签文件详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query) + Names []*ListCorehrSignatureFileRespItemName `json:"names,omitempty"` // 名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 格式: YYYY-MM-DD 00:00:00 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 格式: YYYY-MM-DD 00:00:00 + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) + SignatureFileState *ListCorehrSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key + EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期, 格式: YYYY-MM-DD + TemplateID string `json:"template_id,omitempty"` // 电子签模板ID, [【查询模板内容】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search) +} + +// ListCorehrSignatureFileRespItemName ... +type ListCorehrSignatureFileRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureFileRespItemSignatureFileState ... +type ListCorehrSignatureFileRespItemSignatureFileState struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrSignatureFileRespItemSignatureFileStateDisplay ... +type ListCorehrSignatureFileRespItemSignatureFileStateDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// listCorehrSignatureFileResp ... +type listCorehrSignatureFileResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrSignatureFileResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_file_list_by_biz_id.go b/api_corehr_signature_file_list_by_biz_id.go new file mode 100644 index 00000000..9d1576f8 --- /dev/null +++ b/api_corehr_signature_file_list_by_biz_id.go @@ -0,0 +1,112 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrSignatureFileByBizID 该接口可以根据传入的业务类型和流程ID获取该流程中签署的电子签文件信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list_by_biz_id +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list_by_biz_id +func (r *CoreHRService) ListCorehrSignatureFileByBizID(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrSignatureFileByBizID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureFileByBizID mock enable") + return r.cli.mock.mockCoreHRListCorehrSignatureFileByBizID(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrSignatureFileByBizID", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/list_by_biz_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrSignatureFileByBizIDResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrSignatureFileByBizID mock CoreHRListCorehrSignatureFileByBizID method +func (r *Mock) MockCoreHRListCorehrSignatureFileByBizID(f func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error)) { + r.mockCoreHRListCorehrSignatureFileByBizID = f +} + +// UnMockCoreHRListCorehrSignatureFileByBizID un-mock CoreHRListCorehrSignatureFileByBizID method +func (r *Mock) UnMockCoreHRListCorehrSignatureFileByBizID() { + r.mockCoreHRListCorehrSignatureFileByBizID = nil +} + +// ListCorehrSignatureFileByBizIDReq ... +type ListCorehrSignatureFileByBizIDReq struct { + BizProcessID string `query:"biz_process_id" json:"-"` // 业务自定义流程ID, 唯一不重复, 不要超过100字符示例值: 129b83f5-c023-4e85-b2c7-80ce777e57fd + BizType string `query:"biz_type" json:"-"` // 业务类型, 开放平台发起的流程传OpenAPI, BPM发起的流程传入Bpm, 目前只支持这两种业务类型示例值: OpenAPI、Bpm + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + SelectSignURL *bool `query:"select_sign_url" json:"-"` // 是否需要返回签署链接示例值: true +} + +// ListCorehrSignatureFileByBizIDResp ... +type ListCorehrSignatureFileByBizIDResp struct { + SignatureFiles []*ListCorehrSignatureFileByBizIDRespSignatureFile `json:"signature_files,omitempty"` // 返回的流程关联的电子签文件列表 + BatchSignURL string `json:"batch_sign_url,omitempty"` // 批量签署链接 +} + +// ListCorehrSignatureFileByBizIDRespSignatureFile ... +type ListCorehrSignatureFileByBizIDRespSignatureFile struct { + SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID + Names []*ListCorehrSignatureFileByBizIDRespSignatureFileName `json:"names,omitempty"` // 名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 格式: YYYY-MM-DD 00:00:00 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 格式: YYYY-MM-DD 00:00:00 + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣ID;可以通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取该员工详细信息 + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[【搜索待入职人员信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)搜索该待入职人员详细信息 + SignatureFileState *ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key + EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期 + TemplateID string `json:"template_id,omitempty"` // 电子签模板ID, 可以通过[【根据ID获取电子签模板】](/ssl:ttdc/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search)获取电子签模板详情信息 + SignURL string `json:"sign_url,omitempty"` // 签署链接 +} + +// ListCorehrSignatureFileByBizIDRespSignatureFileName ... +type ListCorehrSignatureFileByBizIDRespSignatureFileName struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState ... +type ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay `json:"display,omitempty"` // 枚举值多语展示 +} + +// ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay ... +type ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// listCorehrSignatureFileByBizIDResp ... +type listCorehrSignatureFileByBizIDResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrSignatureFileByBizIDResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_file_query.go b/api_corehr_signature_file_query.go new file mode 100644 index 00000000..c228b85d --- /dev/null +++ b/api_corehr_signature_file_query.go @@ -0,0 +1,117 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryCorehrSignatureFile 该接口可用于批量查询电子签文件列表, 并且支持根据文件ID、更新时间范围、文件状态、模板ID等条件检索 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/query +func (r *CoreHRService) QueryCorehrSignatureFile(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCorehrSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrSignatureFile mock enable") + return r.cli.mock.mockCoreHRQueryCorehrSignatureFile(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "QueryCorehrSignatureFile", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryCorehrSignatureFileResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRQueryCorehrSignatureFile mock CoreHRQueryCorehrSignatureFile method +func (r *Mock) MockCoreHRQueryCorehrSignatureFile(f func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error)) { + r.mockCoreHRQueryCorehrSignatureFile = f +} + +// UnMockCoreHRQueryCorehrSignatureFile un-mock CoreHRQueryCorehrSignatureFile method +func (r *Mock) UnMockCoreHRQueryCorehrSignatureFile() { + r.mockCoreHRQueryCorehrSignatureFile = nil +} + +// QueryCorehrSignatureFileReq ... +type QueryCorehrSignatureFileReq struct { + SignatureFileID *string `query:"signature_file_id" json:"-"` // 电子签文件ID, 查询结果会返回满足所有筛选条件 signature_file_id 、states、template_ids的文件示例值: 6891251722631890445 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10范围: 0~100 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: {"eu_nc":"[1724438210000, \"7405949343401772554\"]"} + UpdateTimeStart *string `query:"update_time_start" json:"-"` // 更新时间早于等于某个时间点, 按照东八区时区示例值: 2022-01-01 00:00:00 + UpdateTimeEnd *string `query:"update_time_end" json:"-"` // 更新时间晚于等于某个时间点, 按照东八区时区示例值: 2022-01-02 00:00:00 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + States []string `json:"states,omitempty"` // 电子签文件状态状态列表, 多个状态之间为「或」的关系;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得示例值: ["sign_finished", "pending_seal"] 长度范围: `0` ~ `100` + TemplateIDs []string `json:"template_ids,omitempty"` // 电子签模板ID列表, 返回的电子签文件使用的模板在该数组中;可以通过[【获取电子签模板内容】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search)接口获取模板ID注意: 多个模板ID之间是或的关系示例值: ["7282756156156560940", "7282756156156560945"] 长度范围: `0` ~ `100` +} + +// QueryCorehrSignatureFileResp ... +type QueryCorehrSignatureFileResp struct { + Items []*QueryCorehrSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// QueryCorehrSignatureFileRespItem ... +type QueryCorehrSignatureFileRespItem struct { + SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID, [【查询电子签文件信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query) + Names []*QueryCorehrSignatureFileRespItemName `json:"names,omitempty"` // 名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + UpdateTime string `json:"update_time,omitempty"` // 更新时间 + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 id + SignatureFileState *QueryCorehrSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态状态列表, 多个状态之间为「或」的关系;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key + EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期, 格式: yyyy-MM-dd + TemplateID string `json:"template_id,omitempty"` // 电子签模板ID + SignURL string `json:"sign_url,omitempty"` // 签署链接 +} + +// QueryCorehrSignatureFileRespItemName ... +type QueryCorehrSignatureFileRespItemName struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// QueryCorehrSignatureFileRespItemSignatureFileState ... +type QueryCorehrSignatureFileRespItemSignatureFileState struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*QueryCorehrSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// QueryCorehrSignatureFileRespItemSignatureFileStateDisplay ... +type QueryCorehrSignatureFileRespItemSignatureFileStateDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// queryCorehrSignatureFileResp ... +type queryCorehrSignatureFileResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCorehrSignatureFileResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_file_terminate.go b/api_corehr_signature_file_terminate.go new file mode 100644 index 00000000..196ee497 --- /dev/null +++ b/api_corehr_signature_file_terminate.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrSignatureFileTerminate 该接口用于终止在签署流程中的电子签文件, 不再执行后续的签署流程 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/terminate +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/terminate +func (r *CoreHRService) CreateCorehrSignatureFileTerminate(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrSignatureFileTerminate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrSignatureFileTerminate mock enable") + return r.cli.mock.mockCoreHRCreateCorehrSignatureFileTerminate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrSignatureFileTerminate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/terminate", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrSignatureFileTerminateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrSignatureFileTerminate mock CoreHRCreateCorehrSignatureFileTerminate method +func (r *Mock) MockCoreHRCreateCorehrSignatureFileTerminate(f func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error)) { + r.mockCoreHRCreateCorehrSignatureFileTerminate = f +} + +// UnMockCoreHRCreateCorehrSignatureFileTerminate un-mock CoreHRCreateCorehrSignatureFileTerminate method +func (r *Mock) UnMockCoreHRCreateCorehrSignatureFileTerminate() { + r.mockCoreHRCreateCorehrSignatureFileTerminate = nil +} + +// CreateCorehrSignatureFileTerminateReq ... +type CreateCorehrSignatureFileTerminateReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + IDs []string `json:"ids,omitempty"` // 欲终止的电子签文件id列表, 文件ID可以通过调用「获取电子签文件列表」接口获取示例值: ["7410063506638112300"] 长度范围: `0` ~ `100` + Operator string `json:"operator,omitempty"` // 操作人ID, ID的格式取决于query传参中传入的user_id_type字段;ID获取方式见「查询参数」示例值: "7386593105085988xxx" + TerminateReason string `json:"terminate_reason,omitempty"` // 终止原因, 不得超过300字符示例值: "请求流程发生变化, 需要重新签署, 因此终止签署流程中的文件" +} + +// CreateCorehrSignatureFileTerminateResp ... +type CreateCorehrSignatureFileTerminateResp struct { + TotalCount int64 `json:"total_count,omitempty"` // 欲终止的文件总数量 + SuccessCount int64 `json:"success_count,omitempty"` // 成功总数量 + FailCount int64 `json:"fail_count,omitempty"` // 失败总数量 + SuccessFileIDList []string `json:"success_file_id_list,omitempty"` // 终止成功的文件id列表, 可以通过[【获取电子签文件列表】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)接口获取文件详情信息 + FailFileIDAndReasons []*CreateCorehrSignatureFileTerminateRespFailFileIDAndReason `json:"fail_file_id_and_reasons,omitempty"` // 终止失败的文件id和对应的原因列表 +} + +// CreateCorehrSignatureFileTerminateRespFailFileIDAndReason ... +type CreateCorehrSignatureFileTerminateRespFailFileIDAndReason struct { + SignatureFileID string `json:"signature_file_id,omitempty"` // 终止操作失败的文件ID, 可以通过[【获取电子签文件列表】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)接口获取文件详情信息 + FailReason string `json:"fail_reason,omitempty"` // 终止失败的原因 +} + +// createCorehrSignatureFileTerminateResp ... +type createCorehrSignatureFileTerminateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrSignatureFileTerminateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_node_list_by_file_id.go b/api_corehr_signature_node_list_by_file_id.go new file mode 100644 index 00000000..19c64195 --- /dev/null +++ b/api_corehr_signature_node_list_by_file_id.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrSignatureNodeByFileID 该接口可以通过电子签文件ID查询到该电子签文件的签署流程的各个节点信息, 包括签署节点、盖章节点、审阅节点等, 各个节点有对应的内容、完成时间、审阅人、盖章人等信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_node/list_by_file_id +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list_by_file_id +func (r *CoreHRService) ListCorehrSignatureNodeByFileID(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrSignatureNodeByFileID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureNodeByFileID mock enable") + return r.cli.mock.mockCoreHRListCorehrSignatureNodeByFileID(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrSignatureNodeByFileID", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_nodes/list_by_file_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrSignatureNodeByFileIDResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrSignatureNodeByFileID mock CoreHRListCorehrSignatureNodeByFileID method +func (r *Mock) MockCoreHRListCorehrSignatureNodeByFileID(f func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error)) { + r.mockCoreHRListCorehrSignatureNodeByFileID = f +} + +// UnMockCoreHRListCorehrSignatureNodeByFileID un-mock CoreHRListCorehrSignatureNodeByFileID method +func (r *Mock) UnMockCoreHRListCorehrSignatureNodeByFileID() { + r.mockCoreHRListCorehrSignatureNodeByFileID = nil +} + +// ListCorehrSignatureNodeByFileIDReq ... +type ListCorehrSignatureNodeByFileIDReq struct { + FileID string `query:"file_id" json:"-"` // 电子签文件ID, 可以通过[【批量获取电子签文件】](/ssl:ttdc/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)获取示例值: 7149088311624091180 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListCorehrSignatureNodeByFileIDResp ... +type ListCorehrSignatureNodeByFileIDResp struct { + SignatureNodes []*ListCorehrSignatureNodeByFileIDRespSignatureNode `json:"signature_nodes,omitempty"` // 电子签文件签署流程各个节点列表信息 +} + +// ListCorehrSignatureNodeByFileIDRespSignatureNode ... +type ListCorehrSignatureNodeByFileIDRespSignatureNode struct { + UserInfos []*ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo `json:"user_infos,omitempty"` // 节点相关的角色信息 + State string `json:"state,omitempty"` // 节点状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + FinishTime string `json:"finish_time,omitempty"` // 节点完成时间 + UpdatedTime string `json:"updated_time,omitempty"` // 节点最近更新时间 + IsOngoing bool `json:"is_ongoing,omitempty"` // 当前节点是否为正在处理的节点 + RoleLabel *ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel `json:"role_label,omitempty"` // 当前节点操作名称 + SignRole string `json:"sign_role,omitempty"` // 操作人类型, 如: 发起人、审阅人、签字人枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件流程节点签署角色(signature_node_sign_role)枚举定义部分获得 +} + +// ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel ... +type ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel struct { + Zh string `json:"zh,omitempty"` // 当前节点的操作名称中文展示, 如: 发起 + En string `json:"en,omitempty"` // 当前节点的操作名称英文展示, 如: Initiate +} + +// ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo ... +type ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo struct { + ID string `json:"id,omitempty"` // 员工雇佣ID, 可以通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取员工详细信息 +} + +// listCorehrSignatureNodeByFileIDResp ... +type listCorehrSignatureNodeByFileIDResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrSignatureNodeByFileIDResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_template_info_with_thumbnail_list.go b/api_corehr_signature_template_info_with_thumbnail_list.go new file mode 100644 index 00000000..6811aded --- /dev/null +++ b/api_corehr_signature_template_info_with_thumbnail_list.go @@ -0,0 +1,184 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrSignatureTemplateInfoWithThumbnail 该接口用于批量获取电子签模板信息, 包括模板类别、用途、适用区域等。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template_info_with_thumbnail/list +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_template_info_with_thumbnail/list +func (r *CoreHRService) ListCorehrSignatureTemplateInfoWithThumbnail(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureTemplateInfoWithThumbnail mock enable") + return r.cli.mock.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrSignatureTemplateInfoWithThumbnail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_template_info_with_thumbnails", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrSignatureTemplateInfoWithThumbnailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail mock CoreHRListCorehrSignatureTemplateInfoWithThumbnail method +func (r *Mock) MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(f func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error)) { + r.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail = f +} + +// UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail un-mock CoreHRListCorehrSignatureTemplateInfoWithThumbnail method +func (r *Mock) UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail() { + r.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail = nil +} + +// ListCorehrSignatureTemplateInfoWithThumbnailReq ... +type ListCorehrSignatureTemplateInfoWithThumbnailReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小;如果不填, 默认为10示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 0 + Name *string `query:"name" json:"-"` // 模版名示例值: 入职模板 + CategoryApiname *string `query:"category_apiname" json:"-"` // 模版类别, 多个类别之间请使用英文逗号分隔;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得示例值: contract_agreement, certificate + UsageApiname *string `query:"usage_apiname" json:"-"` // 模板用途, 多个用途之间使用英文逗号分隔;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板用途(signature_template_usage)枚举定义部分获得示例值: dispatch, general + Active *bool `query:"active" json:"-"` // 是否停用示例值: false + ApplicabilityApinames []string `query:"applicability_apinames" json:"-"` // 电子签模板适用范围, 多个用途之间使用英文逗号分隔;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板适用范围(signature_template_applicability)枚举定义部分获得示例值: document_print, 文件打印 长度范围: `0` ~ `4294967296` +} + +// ListCorehrSignatureTemplateInfoWithThumbnailResp ... +type ListCorehrSignatureTemplateInfoWithThumbnailResp struct { + Items []*ListCorehrSignatureTemplateInfoWithThumbnailRespItem `json:"items,omitempty"` // 电子签模板列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Count int64 `json:"count,omitempty"` // 数据总数 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItem ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItem struct { + ID string `json:"id,omitempty"` // id + Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel `json:"label,omitempty"` // 名称 支持多语 + Category *HelpdeskCategory `json:"category,omitempty"` // 模版类别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得 + Usage *ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage `json:"usage,omitempty"` // 模版用途;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得 + CreateTime string `json:"create_time,omitempty"` // 创建日期 + ModifyTime string `json:"modify_time,omitempty"` // 修改日期 + CreatedBy *ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy `json:"created_by,omitempty"` // 创建人 + UpdatedBy *ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy `json:"updated_by,omitempty"` // 修改人 + ThumbnailURL string `json:"thumbnail_url,omitempty"` // 缩略图url + SignatoryLabels []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署人标签 + TemplateCode string `json:"template_code,omitempty"` // 模板编码 + TemplateDesc string `json:"template_desc,omitempty"` // 模板描述 + TemplateRegionInfo *ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategory ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategory struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy struct { + ID string `json:"id,omitempty"` // 雇佣ID, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel struct { + TemplateSignatoryType *ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签订人类型 + Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel `json:"label,omitempty"` // 中英文描述 + Apiname string `json:"apiname,omitempty"` // 主数据apiname +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo struct { + IsGlobalScope string `json:"is_global_scope,omitempty"` // 是否全球适用 + MetaInfos []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo struct { + ApiName string `json:"api_name,omitempty"` // 元数据api_name + WkID string `json:"wk_id,omitempty"` // wukong id + Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy struct { + ID string `json:"id,omitempty"` // 雇佣ID, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay ... +type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 内容 +} + +// listCorehrSignatureTemplateInfoWithThumbnailResp ... +type listCorehrSignatureTemplateInfoWithThumbnailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrSignatureTemplateInfoWithThumbnailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_signature_template_search.go b/api_corehr_signature_template_search.go new file mode 100644 index 00000000..0a81bc49 --- /dev/null +++ b/api_corehr_signature_template_search.go @@ -0,0 +1,442 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchCorehrSignatureTemplate 根据多个模板ID获取电子签模板基本信息和内容列表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search +// new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_template_info_with_thumbnail/search +func (r *CoreHRService) SearchCorehrSignatureTemplate(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCorehrSignatureTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrSignatureTemplate mock enable") + return r.cli.mock.mockCoreHRSearchCorehrSignatureTemplate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "SearchCorehrSignatureTemplate", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_templates/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchCorehrSignatureTemplateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRSearchCorehrSignatureTemplate mock CoreHRSearchCorehrSignatureTemplate method +func (r *Mock) MockCoreHRSearchCorehrSignatureTemplate(f func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error)) { + r.mockCoreHRSearchCorehrSignatureTemplate = f +} + +// UnMockCoreHRSearchCorehrSignatureTemplate un-mock CoreHRSearchCorehrSignatureTemplate method +func (r *Mock) UnMockCoreHRSearchCorehrSignatureTemplate() { + r.mockCoreHRSearchCorehrSignatureTemplate = nil +} + +// SearchCorehrSignatureTemplateReq ... +type SearchCorehrSignatureTemplateReq struct { + TemplateIDs []string `query:"template_ids" json:"-"` // 电子签模板ids, 用英文逗号分隔;如果不传 则返回所有电子签模版信息示例值: 7223256427270260268, 7182520625066475540 + SelectCustomField *bool `query:"select_custom_field" json:"-"` // 是否需要模板自定义字段, 如果不需要, 则默认只返回模板的系统字段。示例值: true +} + +// SearchCorehrSignatureTemplateResp ... +type SearchCorehrSignatureTemplateResp struct { + SignatureTemplates []*SearchCorehrSignatureTemplateRespSignatureTemplate `json:"signature_templates,omitempty"` // 返回的电子签模板列表 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplate ... +type SearchCorehrSignatureTemplateRespSignatureTemplate struct { + ID string `json:"id,omitempty"` // 电子签模板id + BriefInfo *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo `json:"brief_info,omitempty"` // 模板基本信息 + ContentInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo `json:"content_info,omitempty"` // 模板内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo struct { + ID string `json:"id,omitempty"` // 电子签模板id + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel `json:"label,omitempty"` // 模板名称 + Category *HelpdeskCategory `json:"category,omitempty"` // 电子签模板分类, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类型(signature_template_category)枚举定义部分获得 + Usage *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage `json:"usage,omitempty"` // 电子签模板用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板用途(signature_template_usage)枚举定义部分获得 + SignatoryLabels []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署对象 + Active bool `json:"active,omitempty"` // 是否激活 + CreateBy string `json:"create_by,omitempty"` // 创建人的雇佣ID, 详细信息可通过[【查询员工信息接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取 + ModifyBy string `json:"modify_by,omitempty"` // 修改人的雇佣ID, 详细信息可通过[【查询员工信息接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取 + Applicability *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability `json:"applicability,omitempty"` // 电子签模板适用范围, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板适用范围(signature_template_applicability)枚举定义部分 + CreationMethod string `json:"creation_method,omitempty"` // 模板创建方式 + Version string `json:"version,omitempty"` // 版本 + UpdateTime string `json:"update_time,omitempty"` // 更新时间 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + TemplateSetting *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting `json:"template_setting,omitempty"` // 模板设置 + TemplateRegionInfo *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 + TemplateCode string `json:"template_code,omitempty"` // 模板编码 + TemplateDesc []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc `json:"template_desc,omitempty"` // 模板描述 支持多语 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability struct { + EnumName string `json:"enum_name,omitempty"` // 模板适用范围枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategory ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategory struct { + EnumName string `json:"enum_name,omitempty"` // 模板类别名称 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay `json:"display,omitempty"` // 模板类别对应的多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 中文 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 模板名 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel struct { + TemplateSignatoryType *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签署对象类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板签署对象类型(signature_template_signatory_type)枚举定义部分获得 + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel `json:"label,omitempty"` // 字段多语展示 + Apiname string `json:"apiname,omitempty"` // 模板签署类型名 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType struct { + EnumName string `json:"enum_name,omitempty"` // 模板签署对象类型对应的枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 中文 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo struct { + IsGlobalScope string `json:"is_global_scope,omitempty"` // 是否全球适用 + MetaInfos []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo struct { + ApiName string `json:"api_name,omitempty"` // 区域名称apiName + WkID string `json:"wk_id,omitempty"` // 区域对应的唯一ID + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting struct { + PageSealTypes []string `json:"page_seal_types,omitempty"` // 骑缝章类型 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage struct { + EnumName string `json:"enum_name,omitempty"` // 模板用途名称 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay `json:"display,omitempty"` // 模板用途的多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 人事合同 / 协议 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo struct { + Contents []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent `json:"contents,omitempty"` // 【已废弃, 无需关注】 + CustomFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段列表 + FilterFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField `json:"filter_fields,omitempty"` // 【已废弃, 无需关注】 + UsingFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField `json:"using_fields,omitempty"` // 【已废弃, 无需关注】 + SystemSettingFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField `json:"system_setting_fields,omitempty"` // 系统字段列表 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent struct { + ContentType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType `json:"content_type,omitempty"` // 电子签模版内容的类型 + FilterApiname string `json:"filter_apiname,omitempty"` // 显示规则左值 + Content string `json:"content,omitempty"` // 模版内容 + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel `json:"label,omitempty"` // 中英文描述 + ContentDesc string `json:"content_desc,omitempty"` // 内容描述 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField struct { + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel `json:"label,omitempty"` // 中英文描述 + Apiname string `json:"apiname,omitempty"` // 字段名 + CustomFieldType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType `json:"custom_field_type,omitempty"` // 用户自定义字段类型 + Used bool `json:"used,omitempty"` // 是否使用到 + IsRequired bool `json:"is_required,omitempty"` // 是否需要 + CustomDesc string `json:"custom_desc,omitempty"` // 自定义描述 + CommonInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo `json:"common_info,omitempty"` // 电子签模版公共字段信息 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo struct { + Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" + Apiname string `json:"apiname,omitempty"` // 主数据apiname +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField struct { + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel `json:"label,omitempty"` // 双语描述 + Apiname string `json:"apiname,omitempty"` // 主数据apiname + Filters []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter `json:"filters,omitempty"` // 过滤条件列表 + Logic *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic `json:"logic,omitempty"` // 多个生效条件的logic + IsChecked bool `json:"is_checked,omitempty"` // 是否被校验 + FilterDesc string `json:"filter_desc,omitempty"` // 过滤条件描述 + CriterionList string `json:"criterion_list,omitempty"` // 过滤条件列表, 使用string类型描述list的原因是为了避免循环引用问题, 因为该list的item类型就是这个数据类型 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter struct { + Left string `json:"left,omitempty"` // 左值 + Rights []string `json:"rights,omitempty"` // 右值列表 + Op *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp `json:"op,omitempty"` // 操作符 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField struct { + FieldType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType `json:"field_type,omitempty"` // 模板字段值类型枚举 + Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel `json:"label,omitempty"` // 双语描述 + CommonInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo `json:"common_info,omitempty"` // 【无需关注】通用字段信息 + CombinationInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo `json:"combination_info,omitempty"` // 【无需关注】组合字段信息 + Children string `json:"children,omitempty"` // 【无需关注】子模板配置信息列表对应的string, 避免循环引用问题 + CombinationInfoV2 *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 `json:"combination_info_v2,omitempty"` // 弃用, 无需关注 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo struct { + TotalApiname int64 `json:"total_apiname,omitempty"` // 【无需关注】组合字段名 + Apiname string `json:"apiname,omitempty"` // 字段名 + Title []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle `json:"title,omitempty"` // 中英文描述 + Contents [][]interface{} `json:"contents,omitempty"` // 适用区域名称 + Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource `json:"source,omitempty"` // 【无需关注】电子签模板字段源类型 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 struct { + TotalApiname int64 `json:"total_apiname,omitempty"` // 弃用, 无需关注 + Apiname string `json:"apiname,omitempty"` // 弃用, 无需关注 + Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source `json:"source,omitempty"` // 弃用, 无需关注 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo struct { + Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型- System- MainData + Apiname string `json:"apiname,omitempty"` // 字段名称 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel struct { + Lang string `json:"lang,omitempty"` // 语言 + Value string `json:"value,omitempty"` // 文本内容 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField struct { + Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" + Apiname string `json:"apiname,omitempty"` // 字段名 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay ... +type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// searchCorehrSignatureTemplateResp ... +type searchCorehrSignatureTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCorehrSignatureTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_subdivision_get.go b/api_corehr_subdivision_get.go index 7a60a183..27e61ee9 100644 --- a/api_corehr_subdivision_get.go +++ b/api_corehr_subdivision_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/subdivision/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/get-2 -// -// Deprecated func (r *CoreHRService) GetCoreHRSubdivision(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRSubdivision != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRSubdivision mock enable") diff --git a/api_corehr_subdivision_list.go b/api_corehr_subdivision_list.go index 8eeab583..6a702393 100644 --- a/api_corehr_subdivision_list.go +++ b/api_corehr_subdivision_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/subdivision/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/list-2 -// -// Deprecated func (r *CoreHRService) GetCoreHRSubdivisionList(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRSubdivisionList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRSubdivisionList mock enable") diff --git a/api_corehr_subregion_get.go b/api_corehr_subregion_get.go index 9147aca8..2b8686ad 100644 --- a/api_corehr_subregion_get.go +++ b/api_corehr_subregion_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/subregion/get // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/get-3 -// -// Deprecated func (r *CoreHRService) GetCoreHRSubregion(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRSubregion != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRSubregion mock enable") diff --git a/api_corehr_subregion_list.go b/api_corehr_subregion_list.go index 354d10c1..51a770c3 100644 --- a/api_corehr_subregion_list.go +++ b/api_corehr_subregion_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/subregion/list // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/location_data/list-3 -// -// Deprecated func (r *CoreHRService) GetCoreHRSubregionList(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRSubregionList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRSubregionList mock enable") diff --git a/api_corehr_workforce_plan_detail_batch_query.go b/api_corehr_workforce_plan_detail_batch_query.go new file mode 100644 index 00000000..b529dd44 --- /dev/null +++ b/api_corehr_workforce_plan_detail_batch_query.go @@ -0,0 +1,202 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryCorehrWorkforcePlanDetail 查询编制规划明细, 包括维度信息、编制数和预估在职人数 +// +// - 本接口可查询编制规划或集中填报明细信息。 +// - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 +// - 所有筛选项可一起使用, 之间为 AND 关系。如部门 + 人员类型, 则返回同时满足部门及人员类型的编制规划明细数据。 +// - 本接口不支持自定义组织, 如需使用自定义组织, 可调用[查询编制规划明细信息(支持自定义组织)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail/batch_v2)。 +// 延迟说明: 搜索同步延迟 10s 以内, 即: 直接创建编制明细后 10s 内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail/batch +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batch +func (r *CoreHRService) BatchQueryCorehrWorkforcePlanDetail(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCorehrWorkforcePlanDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrWorkforcePlanDetail mock enable") + return r.cli.mock.mockCoreHRBatchQueryCorehrWorkforcePlanDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchQueryCorehrWorkforcePlanDetail", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_details/batch", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryCorehrWorkforcePlanDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchQueryCorehrWorkforcePlanDetail mock CoreHRBatchQueryCorehrWorkforcePlanDetail method +func (r *Mock) MockCoreHRBatchQueryCorehrWorkforcePlanDetail(f func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error)) { + r.mockCoreHRBatchQueryCorehrWorkforcePlanDetail = f +} + +// UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail un-mock CoreHRBatchQueryCorehrWorkforcePlanDetail method +func (r *Mock) UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail() { + r.mockCoreHRBatchQueryCorehrWorkforcePlanDetail = nil +} + +// BatchQueryCorehrWorkforcePlanDetailReq ... +type BatchQueryCorehrWorkforcePlanDetailReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: ["123456"] + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` + WorkforcePlanID *string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID, ID及详细信息可通过[获取编制规划方案列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list)接口查询获得。查询编制规划明细信息时, 编制规划方案 ID 必填。示例值: "781234834512" + IsCentralizedReportingProject *bool `json:"is_centralized_reporting_project,omitempty"` // 是否为集中填报项目。如果租户未使用集中填报功能, 将此参数置空即可。字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: false默认值: `false` + CentralizedReportingProjectID *string `json:"centralized_reporting_project_id,omitempty"` // 编制规划集中填报项目 ID。ID可根据集中填报链接获取。如果租户未使用集中填报功能, 将此参数置空即可。查询集中填报信息时, 将以集中填报ID为准, 无需填写编制规划方案 ID。字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: "7140964208476371111" 长度范围: `0` ~ `1000` 字符 + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门ID列表。ID获取方式: 调用[【创建部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/create)[【搜索部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)等接口可以返回部门ID- 也可以通过[【事件】创建部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created)[【事件】更新部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/updated) 获取部门ID信息示例值: ["7210266650427033132"] 长度范围: `0` ~ `1000` + EmployeeTypeIDs []string `json:"employee_type_ids,omitempty"` // 人员类型 ID 列表- 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情。示例值: ["7210608972695520812"] 长度范围: `0` ~ `1000` + WorkLocationIDs []string `json:"work_location_ids,omitempty"` // 工作地点 ID 列表。ID获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: ["7210608972695520813"] 长度范围: `0` ~ `1000` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表。ID获取方式: 调用[【新建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【查询租户的序列信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列ID示例值: ["7210608972695520814"] 长度范围: `0` ~ `1000` + JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级ID。ID获取方式: 调用[【新建职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/create)[【查询租户的职级信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)等接口可以返回职级ID示例值: ["7210608972695520815"] 长度范围: `0` ~ `1000` + JobIDs []string `json:"job_ids,omitempty"` // 职务ID。ID获取方式: 调用[【创建职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/create)[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)等可以返回职务ID- 也可以通过[【事件】创建职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/events/created) [【事件】更新职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/events/updated) 获取ID示例值: ["7210608972695520816"] 长度范围: `0` ~ `1000` + CostCenterIDs []string `json:"cost_center_ids,omitempty"` // 成本中心 ID 列表。ID获取方式: 调用[【创建成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/create)[【搜索成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)等接口可以返回成本中心ID示例值: ["7210608972695520817"] 长度范围: `0` ~ `1000` + IncludeMissingDimensionRows *bool `json:"include_missing_dimension_rows,omitempty"` // 是否包含缺维度明细行数据, true为包含缺维度明细行数据, false为仅获取所有维度都有值的明细行数据, 默认为 false示例值: false +} + +// BatchQueryCorehrWorkforcePlanDetailResp ... +type BatchQueryCorehrWorkforcePlanDetailResp struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报项目 ID + Items []*BatchQueryCorehrWorkforcePlanDetailRespItem `json:"items,omitempty"` // 编制规划明细信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItem ... +type BatchQueryCorehrWorkforcePlanDetailRespItem struct { + WorkforcePlanDetailID string `json:"workforce_plan_detail_id,omitempty"` // 编制规划明细 ID + Department *BatchQueryCorehrWorkforcePlanDetailRespItemDepartment `json:"department,omitempty"` // 部门信息 + EmployeeType *BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType `json:"employee_type,omitempty"` // 人员类型信息 + WorkLocation *BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation `json:"work_location,omitempty"` // 工作地点信息 + JobFamily *BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily `json:"job_family,omitempty"` // 序列信息 + JobLevel *BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel `json:"job_level,omitempty"` // 职级信息 + Job *BatchQueryCorehrWorkforcePlanDetailRespItemJob `json:"job,omitempty"` // 职务信息 + CostCenter *BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter `json:"cost_center,omitempty"` // 成本中心信息 + WorkforcePlan string `json:"workforce_plan,omitempty"` // 编制规划值 + EstimatedActiveIndividualsDetail []*BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_detail,omitempty"` // 预估在职人数明细 + IsMissingDimension bool `json:"is_missing_dimension,omitempty"` // 是否为缺维度的明细行, true为缺维度明细行, false为非缺维度明细行 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter ... +type BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter struct { + ID string `json:"id,omitempty"` // 成本中心ID- 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemDepartment ... +type BatchQueryCorehrWorkforcePlanDetailRespItemDepartment struct { + ID string `json:"id,omitempty"` // 部门ID。可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType ... +type BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType struct { + ID string `json:"id,omitempty"` // 人员类型 ID - 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情。 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail ... +type BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail struct { + Date string `json:"date,omitempty"` // 预估月份 + EstimatedActiveIndividuals string `json:"estimated_active_individuals,omitempty"` // 预估在职人数 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJob ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJob struct { + ID string `json:"id,omitempty"` // 职务 ID- 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详情。 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily struct { + ID string `json:"id,omitempty"` // 序列ID- 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID- 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemJobName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemJobName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation ... +type BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation struct { + ID string `json:"id,omitempty"` // 地点ID- 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。 + Name []*BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName `json:"name,omitempty"` // 维度名称 +} + +// BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName ... +type BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US + Value string `json:"value,omitempty"` // 文本内容 +} + +// batchQueryCorehrWorkforcePlanDetailResp ... +type batchQueryCorehrWorkforcePlanDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCorehrWorkforcePlanDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_workforce_plan_detail_batch_v2.go b/api_corehr_workforce_plan_detail_batch_v2.go new file mode 100644 index 00000000..3b403769 --- /dev/null +++ b/api_corehr_workforce_plan_detail_batch_v2.go @@ -0,0 +1,144 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCorehrWorkforcePlanDetailV2 查询编制规划明细, 包括维度信息、编制数、预估在职人数、在职人数和预增/预减人数。 +// +// - 本接口可查询编制规划或集中填报明细信息。 +// - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 +// - 所有筛选项可一起使用, 之间为 AND 关系。如部门 + 人员类型, 则返回同时满足部门及人员类型的编制规划明细数据。 +// - 本接口支持自定义组织(自定义组织功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW))。 +// 延迟说明: 搜索同步延迟 10s 以内, 即: 直接创建编制明细后 10s 内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail/batch_v2 +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batch_v2 +func (r *CoreHRService) BatchCorehrWorkforcePlanDetailV2(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRBatchCorehrWorkforcePlanDetailV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchCorehrWorkforcePlanDetailV2 mock enable") + return r.cli.mock.mockCoreHRBatchCorehrWorkforcePlanDetailV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "BatchCorehrWorkforcePlanDetailV2", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_details/batch_v2", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchCorehrWorkforcePlanDetailV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRBatchCorehrWorkforcePlanDetailV2 mock CoreHRBatchCorehrWorkforcePlanDetailV2 method +func (r *Mock) MockCoreHRBatchCorehrWorkforcePlanDetailV2(f func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error)) { + r.mockCoreHRBatchCorehrWorkforcePlanDetailV2 = f +} + +// UnMockCoreHRBatchCorehrWorkforcePlanDetailV2 un-mock CoreHRBatchCorehrWorkforcePlanDetailV2 method +func (r *Mock) UnMockCoreHRBatchCorehrWorkforcePlanDetailV2() { + r.mockCoreHRBatchCorehrWorkforcePlanDetailV2 = nil +} + +// BatchCorehrWorkforcePlanDetailV2Req ... +type BatchCorehrWorkforcePlanDetailV2Req struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: ["123456"] + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` + WorkforcePlanID *string `json:"workforce_plan_id,omitempty"` // 编制规划方案ID, ID及详细信息可通过[获取编制规划方案列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list)接口查询获得。查询编制规划明细信息时, 编制规划方案ID必填, 是否为集中填报项目设置为false, 不填写集中填报项目ID(是否填写不影响返回结果)示例值: "781234834512" + IsCentralizedReportingProject *bool `json:"is_centralized_reporting_project,omitempty"` // 是否为集中填报项目。如果租户未使用集中填报功能, 将此参数置空即可。如果查询集中填报明细, 将此参数设置为true。字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: false默认值: `false` + CentralizedReportingProjectID *string `json:"centralized_reporting_project_id,omitempty"` // 编制规划集中填报项目ID, ID可通过访问集中填报页面, 从URL中提取report_id参数。如果租户未使用集中填报功能, 将此参数置空即可。查询集中填报信息时, 集中填报项目ID必填, 是否为集中填报项目设置为true, 不填写编制规划方案ID(是否填写不影响返回结果)字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: "7140964208476371111" + DimensionIDInDatas []*BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData `json:"dimension_id_in_datas,omitempty"` // 维度筛选 长度范围: `0` ~ `100` + IncludeMissingDimensionRows *bool `json:"include_missing_dimension_rows,omitempty"` // 是否包含缺维度的明细行数据, true为包含缺维度明细行数据, false为仅获取所有维度都有值的明细行数据, 默认为 false示例值: false + FilterAllZeroValueRows *bool `json:"filter_all_zero_value_rows,omitempty"` // 是否过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true为过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false为不过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, 默认为 false示例值: false +} + +// BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData ... +type BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData struct { + DimensionKey *string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" + DimensionIDs []string `json:"dimension_ids,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: ["7210266650427033132"] 长度范围: `0` ~ `1000` +} + +// BatchCorehrWorkforcePlanDetailV2Resp ... +type BatchCorehrWorkforcePlanDetailV2Resp struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报项目 ID + Items []*BatchCorehrWorkforcePlanDetailV2RespItem `json:"items,omitempty"` // 编制规划明细信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchCorehrWorkforcePlanDetailV2RespItem ... +type BatchCorehrWorkforcePlanDetailV2RespItem struct { + WorkforcePlanDetailID string `json:"workforce_plan_detail_id,omitempty"` // 编制规划明细 ID + DimensionInfoDatas []*BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData `json:"dimension_info_datas,omitempty"` // 维度信息 + WorkforcePlan string `json:"workforce_plan,omitempty"` // 编制规划值 + ActiveIndividuals string `json:"active_individuals,omitempty"` // 在职人数 + IndividualsToBeAdded string `json:"individuals_to_be_added,omitempty"` // 预增员数量 + IndividualsToBeRemoved string `json:"individuals_to_be_removed,omitempty"` // 预减员数量 + EstimatedActiveIndividualsDetails []*BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_details,omitempty"` // 预估在职人数明细 + MultiPeriodValues []*BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + IsMissingDimension bool `json:"is_missing_dimension,omitempty"` // 是否为缺维度的明细行, true为缺维度明细行, false为非缺维度明细行 + IsAllZeroValue bool `json:"is_all_zero_value,omitempty"` // 是否在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true代表在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false代表在职、预增/预减人员、编制数、预估在职人数不全为0的明细行 +} + +// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData ... +type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度 key- "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05" + DimensionInfo *BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo `json:"dimension_info,omitempty"` // 维度信息 +} + +// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo ... +type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo struct { + ID string `json:"id,omitempty"` // 维度id- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + Name []*BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName `json:"name,omitempty"` // 维度名称 +} + +// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName ... +type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + +// BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail ... +type BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail struct { + Date string `json:"date,omitempty"` // 预估月份 + EstimatedActiveIndividuals string `json:"estimated_active_individuals,omitempty"` // 预估在职人数 +} + +// BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue ... +type BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue struct { + PeriodDate string `json:"period_date,omitempty"` // 自然周期的最后一天 + WorkforcePlan string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值 + IndividualsToBeAdded string `json:"individuals_to_be_added,omitempty"` // 对应自然周期的预增员数量 + IndividualsToBeRemoved string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期的预减员数量 +} + +// batchCorehrWorkforcePlanDetailV2Resp ... +type batchCorehrWorkforcePlanDetailV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCorehrWorkforcePlanDetailV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_workforce_plan_detail_row_batchdelete.go b/api_corehr_workforce_plan_detail_row_batchdelete.go new file mode 100644 index 00000000..949c4bcb --- /dev/null +++ b/api_corehr_workforce_plan_detail_row_batchdelete.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrWorkforcePlanDetailRowBatchdelete 批量删除明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看明细行是否被删除。 +// +// 批量删除明细行说明: 同批次操作场景下, 禁止重复删除同一行。 +// 删除明细行的时候请注意: 底层是将编制规划与预估在职人数清0, 如果被删除行的预增人员、预减人员不为0, 该行依旧会显示在页面上。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail_row/batchDelete +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchDelete-2 +func (r *CoreHRService) CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrWorkforcePlanDetailRowBatchdelete mock enable") + return r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrWorkforcePlanDetailRowBatchdelete", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_detail_row/batchDelete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrWorkforcePlanDetailRowBatchdeleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete method +func (r *Mock) MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(f func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error)) { + r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete = f +} + +// UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete un-mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete method +func (r *Mock) UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete() { + r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete = nil +} + +// CreateCorehrWorkforcePlanDetailRowBatchdeleteReq ... +type CreateCorehrWorkforcePlanDetailRowBatchdeleteReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + Items []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +} + +// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem ... +type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem struct { + Dimensions []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" +} + +// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension ... +type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" + DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" +} + +// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail ... +type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail struct { + Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和编制规划页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" + EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" +} + +// CreateCorehrWorkforcePlanDetailRowBatchdeleteResp ... +type CreateCorehrWorkforcePlanDetailRowBatchdeleteResp struct { +} + +// createCorehrWorkforcePlanDetailRowBatchdeleteResp ... +type createCorehrWorkforcePlanDetailRowBatchdeleteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrWorkforcePlanDetailRowBatchdeleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_workforce_plan_detail_row_batchsave.go b/api_corehr_workforce_plan_detail_row_batchsave.go new file mode 100644 index 00000000..506eeda9 --- /dev/null +++ b/api_corehr_workforce_plan_detail_row_batchsave.go @@ -0,0 +1,105 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateCorehrWorkforcePlanDetailRowBatchsave 批量创建/更新明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看。 +// +// 批量创建/更新明细行说明: 同批次操作场景下, 禁止创建/更新重复行, 与此同时, 创建时若明细行已存在于系统中, 则会在底层自动触发更新机制;建议不要录入编制规划值和预估在职人数均为零值的明细行, 系统会对全0明细行进行过滤, 从而在页面上不显示该行, 可能会导致用户误以为该明细行不存在。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail_row/batchSave +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchSave +func (r *CoreHRService) CreateCorehrWorkforcePlanDetailRowBatchsave(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrWorkforcePlanDetailRowBatchsave mock enable") + return r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "CreateCorehrWorkforcePlanDetailRowBatchsave", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_detail_row/batchSave", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createCorehrWorkforcePlanDetailRowBatchsaveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchsave method +func (r *Mock) MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(f func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error)) { + r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave = f +} + +// UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave un-mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchsave method +func (r *Mock) UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave() { + r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave = nil +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveReq ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + Items []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem struct { + Dimensions []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" + MultiPeriodValues []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" + DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7322790168290739756" +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail struct { + Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和编制规划页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" + EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue struct { + PeriodDate *string `json:"period_date,omitempty"` // 周期的最后一天示例值: "2022-10-31" + WorkforcePlan *string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值。编制规划值需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12.00" + IndividualsToBeAdded *string `json:"individuals_to_be_added,omitempty"` // 对应自然周期的预增员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" + IndividualsToBeRemoved *string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期的预减员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" +} + +// CreateCorehrWorkforcePlanDetailRowBatchsaveResp ... +type CreateCorehrWorkforcePlanDetailRowBatchsaveResp struct { +} + +// createCorehrWorkforcePlanDetailRowBatchsaveResp ... +type createCorehrWorkforcePlanDetailRowBatchsaveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCorehrWorkforcePlanDetailRowBatchsaveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_workforce_plan_list.go b/api_corehr_workforce_plan_list.go new file mode 100644 index 00000000..c19d2043 --- /dev/null +++ b/api_corehr_workforce_plan_list.go @@ -0,0 +1,96 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListCorehrWorkforcePlan 根据传入的筛选项获取编制规划的方案列表 +// +// - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 +// - 所有筛选项可一起使用, 之间为 AND 关系。 +// - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建编制规划方案后 2s 内调用此接口可能查询不到数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list +// new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/list +func (r *CoreHRService) ListCorehrWorkforcePlan(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) { + if r.cli.mock.mockCoreHRListCorehrWorkforcePlan != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrWorkforcePlan mock enable") + return r.cli.mock.mockCoreHRListCorehrWorkforcePlan(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "CoreHR", + API: "ListCorehrWorkforcePlan", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plans", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listCorehrWorkforcePlanResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockCoreHRListCorehrWorkforcePlan mock CoreHRListCorehrWorkforcePlan method +func (r *Mock) MockCoreHRListCorehrWorkforcePlan(f func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error)) { + r.mockCoreHRListCorehrWorkforcePlan = f +} + +// UnMockCoreHRListCorehrWorkforcePlan un-mock CoreHRListCorehrWorkforcePlan method +func (r *Mock) UnMockCoreHRListCorehrWorkforcePlan() { + r.mockCoreHRListCorehrWorkforcePlan = nil +} + +// ListCorehrWorkforcePlanReq ... +type ListCorehrWorkforcePlanReq struct { + GetAllPlan *bool `query:"get_all_plan" json:"-"` // 是否获取所有编制规划方案, 默认为 false。- true 所有编制规划方案列表。- false 为仅获取当前生效的编制规划方案。示例值: false + Active *bool `query:"active" json:"-"` // 是否只获取已启用的方案, 默认为 true。- true 获取已启用编制规划方案- false 获取所有编制规划方案, 示例值: false +} + +// ListCorehrWorkforcePlanResp ... +type ListCorehrWorkforcePlanResp struct { + Items []*ListCorehrWorkforcePlanRespItem `json:"items,omitempty"` // 编制规划方案列表 + Total int64 `json:"total,omitempty"` // 满足条件的方案总数 +} + +// ListCorehrWorkforcePlanRespItem ... +type ListCorehrWorkforcePlanRespItem struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID + WorkforcePlanName []*ListCorehrWorkforcePlanRespItemWorkforcePlanName `json:"workforce_plan_name,omitempty"` // 编制规划方案名称 + StartDate string `json:"start_date,omitempty"` // 开始日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01 ~ 9999-12-31 + EndDate string `json:"end_date,omitempty"` // 结束日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01 ~ 9999-12-31 + Active bool `json:"active,omitempty"` // 是否启用- true 表示启用- false 表示停用 +} + +// ListCorehrWorkforcePlanRespItemWorkforcePlanName ... +type ListCorehrWorkforcePlanRespItemWorkforcePlanName struct { + Lang string `json:"lang,omitempty"` // 语言信息, 中文为 zh-CN, 英文为 en-US + Value string `json:"value,omitempty"` // 内容 +} + +// listCorehrWorkforcePlanResp ... +type listCorehrWorkforcePlanResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListCorehrWorkforcePlanResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_corehr_working_hours_type_delete.go b/api_corehr_working_hours_type_delete.go index 6539d52d..b07ed8c7 100644 --- a/api_corehr_working_hours_type_delete.go +++ b/api_corehr_working_hours_type_delete.go @@ -62,7 +62,8 @@ type DeleteCoreHRWorkingHoursTypeReq struct { } // DeleteCoreHRWorkingHoursTypeResp ... -type DeleteCoreHRWorkingHoursTypeResp struct{} +type DeleteCoreHRWorkingHoursTypeResp struct { +} // deleteCoreHRWorkingHoursTypeResp ... type deleteCoreHRWorkingHoursTypeResp struct { diff --git a/api_directory_collaboration_rule_create.go b/api_directory_collaboration_rule_create.go new file mode 100644 index 00000000..4b2886af --- /dev/null +++ b/api_directory_collaboration_rule_create.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryCollaborationRule 管理员视角新增可搜可见规则。用户需具备关联组织管理员权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/create +// new doc: https://open.feishu.cn/document/trust_party-v1/searchable-and-visible-rules/create +func (r *DirectoryService) CreateDirectoryCollaborationRule(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryCollaborationRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryCollaborationRule mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryCollaborationRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryCollaborationRule", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/collaboration_rules", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryCollaborationRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryCollaborationRule mock DirectoryCreateDirectoryCollaborationRule method +func (r *Mock) MockDirectoryCreateDirectoryCollaborationRule(f func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error)) { + r.mockDirectoryCreateDirectoryCollaborationRule = f +} + +// UnMockDirectoryCreateDirectoryCollaborationRule un-mock DirectoryCreateDirectoryCollaborationRule method +func (r *Mock) UnMockDirectoryCreateDirectoryCollaborationRule() { + r.mockDirectoryCreateDirectoryCollaborationRule = nil +} + +// CreateDirectoryCollaborationRuleReq ... +type CreateDirectoryCollaborationRuleReq struct { + TargetTenantKey string `query:"target_tenant_key" json:"-"` // 对方组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: test_key + Subjects *CreateDirectoryCollaborationRuleReqSubjects `json:"subjects,omitempty"` // 实体数量之和需要小于100 + Objects *CreateDirectoryCollaborationRuleReqObjects `json:"objects,omitempty"` // 实体数量之和需要小于100 +} + +// CreateDirectoryCollaborationRuleReqObjects ... +type CreateDirectoryCollaborationRuleReqObjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id, 可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-112121"] 长度范围: `0` ~ `100` + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员;可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-12121212"] 长度范围: `0` ~ `100` + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id;可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-12121"] 长度范围: `0` ~ `100` +} + +// CreateDirectoryCollaborationRuleReqSubjects ... +type CreateDirectoryCollaborationRuleReqSubjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id, 可以从我方通讯录/组织架构接口中获得示例值: ["od-112121"] 长度范围: `0` ~ `100` + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员, 可以从我方通讯录/组织架构接口中获得示例值: ["od-12121212"] 长度范围: `0` ~ `100` + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id, 可以从我方通讯录/组织架构接口中获得示例值: ["od-12121"] 长度范围: `0` ~ `100` +} + +// CreateDirectoryCollaborationRuleResp ... +type CreateDirectoryCollaborationRuleResp struct { + AddRuleID string `json:"add_rule_id,omitempty"` // 添加的规则ID +} + +// createDirectoryCollaborationRuleResp ... +type createDirectoryCollaborationRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryCollaborationRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_collaboration_rule_delete.go b/api_directory_collaboration_rule_delete.go new file mode 100644 index 00000000..b467ebfc --- /dev/null +++ b/api_directory_collaboration_rule_delete.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteDirectoryCollaborationRule 管理员视角删除可搜可见规则。用户需具备关联组织管理员权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/delete +// new doc: https://open.feishu.cn/document/trust_party-v1/searchable-and-visible-rules/delete +func (r *DirectoryService) DeleteDirectoryCollaborationRule(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) { + if r.cli.mock.mockDirectoryDeleteDirectoryCollaborationRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#DeleteDirectoryCollaborationRule mock enable") + return r.cli.mock.mockDirectoryDeleteDirectoryCollaborationRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "DeleteDirectoryCollaborationRule", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/collaboration_rules/:collaboration_rule_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteDirectoryCollaborationRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryDeleteDirectoryCollaborationRule mock DirectoryDeleteDirectoryCollaborationRule method +func (r *Mock) MockDirectoryDeleteDirectoryCollaborationRule(f func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error)) { + r.mockDirectoryDeleteDirectoryCollaborationRule = f +} + +// UnMockDirectoryDeleteDirectoryCollaborationRule un-mock DirectoryDeleteDirectoryCollaborationRule method +func (r *Mock) UnMockDirectoryDeleteDirectoryCollaborationRule() { + r.mockDirectoryDeleteDirectoryCollaborationRule = nil +} + +// DeleteDirectoryCollaborationRuleReq ... +type DeleteDirectoryCollaborationRuleReq struct { + CollaborationRuleID string `path:"collaboration_rule_id" json:"-"` // 规则ID, 可通过[查询可搜可见规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/list)获得示例值: "2121" + TargetTenantKey string `query:"target_tenant_key" json:"-"` // 对方组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: test_key +} + +// DeleteDirectoryCollaborationRuleResp ... +type DeleteDirectoryCollaborationRuleResp struct { +} + +// deleteDirectoryCollaborationRuleResp ... +type deleteDirectoryCollaborationRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteDirectoryCollaborationRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_collaboration_rule_list.go b/api_directory_collaboration_rule_list.go new file mode 100644 index 00000000..245df2ee --- /dev/null +++ b/api_directory_collaboration_rule_list.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListDirectoryCollaborationRule 管理员视角查询可搜可见规则。用户需具备关联组织管理员权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/list +// new doc: https://open.feishu.cn/document/trust_party-v1/searchable-and-visible-rules/list +func (r *DirectoryService) ListDirectoryCollaborationRule(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) { + if r.cli.mock.mockDirectoryListDirectoryCollaborationRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#ListDirectoryCollaborationRule mock enable") + return r.cli.mock.mockDirectoryListDirectoryCollaborationRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "ListDirectoryCollaborationRule", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/collaboration_rules", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listDirectoryCollaborationRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryListDirectoryCollaborationRule mock DirectoryListDirectoryCollaborationRule method +func (r *Mock) MockDirectoryListDirectoryCollaborationRule(f func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error)) { + r.mockDirectoryListDirectoryCollaborationRule = f +} + +// UnMockDirectoryListDirectoryCollaborationRule un-mock DirectoryListDirectoryCollaborationRule method +func (r *Mock) UnMockDirectoryListDirectoryCollaborationRule() { + r.mockDirectoryListDirectoryCollaborationRule = nil +} + +// ListDirectoryCollaborationRuleReq ... +type ListDirectoryCollaborationRuleReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `100` 取值范围: `0` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + TargetTenantKey string `query:"target_tenant_key" json:"-"` // 对方组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: test_key +} + +// ListDirectoryCollaborationRuleResp ... +type ListDirectoryCollaborationRuleResp struct { + Items []*ListDirectoryCollaborationRuleRespItem `json:"items,omitempty"` // 规则列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListDirectoryCollaborationRuleRespItem ... +type ListDirectoryCollaborationRuleRespItem struct { + RuleID string `json:"rule_id,omitempty"` // 规则ID + Subjects *ListDirectoryCollaborationRuleRespItemSubjects `json:"subjects,omitempty"` // 实体数量之和需要小于100 + SubjectIsValid bool `json:"subject_is_valid,omitempty"` // 是否生效, 如果规则主体超出了分享的范围, 则is_valid为false, 规则主体将不返回 + Objects *ListDirectoryCollaborationRuleRespItemObjects `json:"objects,omitempty"` // 实体数量之和需要小于100 + ObjectIsValid bool `json:"object_is_valid,omitempty"` // 是否生效, 如果规则客体超出了分享的范围, 则is_valid为false, 规则客体将不返回 +} + +// ListDirectoryCollaborationRuleRespItemObjects ... +type ListDirectoryCollaborationRuleRespItemObjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员 + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id +} + +// ListDirectoryCollaborationRuleRespItemSubjects ... +type ListDirectoryCollaborationRuleRespItemSubjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员 + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id +} + +// listDirectoryCollaborationRuleResp ... +type listDirectoryCollaborationRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListDirectoryCollaborationRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_collaboration_rule_update.go b/api_directory_collaboration_rule_update.go new file mode 100644 index 00000000..f9461e42 --- /dev/null +++ b/api_directory_collaboration_rule_update.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateDirectoryCollaborationRule 管理员视角更新可搜可见规则。用户需具备关联组织管理员权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/update +// new doc: https://open.feishu.cn/document/trust_party-v1/searchable-and-visible-rules/update +func (r *DirectoryService) UpdateDirectoryCollaborationRule(ctx context.Context, request *UpdateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*UpdateDirectoryCollaborationRuleResp, *Response, error) { + if r.cli.mock.mockDirectoryUpdateDirectoryCollaborationRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#UpdateDirectoryCollaborationRule mock enable") + return r.cli.mock.mockDirectoryUpdateDirectoryCollaborationRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "UpdateDirectoryCollaborationRule", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/collaboration_rules/:collaboration_rule_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateDirectoryCollaborationRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryUpdateDirectoryCollaborationRule mock DirectoryUpdateDirectoryCollaborationRule method +func (r *Mock) MockDirectoryUpdateDirectoryCollaborationRule(f func(ctx context.Context, request *UpdateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*UpdateDirectoryCollaborationRuleResp, *Response, error)) { + r.mockDirectoryUpdateDirectoryCollaborationRule = f +} + +// UnMockDirectoryUpdateDirectoryCollaborationRule un-mock DirectoryUpdateDirectoryCollaborationRule method +func (r *Mock) UnMockDirectoryUpdateDirectoryCollaborationRule() { + r.mockDirectoryUpdateDirectoryCollaborationRule = nil +} + +// UpdateDirectoryCollaborationRuleReq ... +type UpdateDirectoryCollaborationRuleReq struct { + CollaborationRuleID string `path:"collaboration_rule_id" json:"-"` // 规则ID, 可通过[查询可搜可见规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_rule/list)获得示例值: "12121" + TargetTenantKey string `query:"target_tenant_key" json:"-"` // 对方组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: test_key + Subjects *UpdateDirectoryCollaborationRuleReqSubjects `json:"subjects,omitempty"` // 实体数量之和需要小于100 + Objects *UpdateDirectoryCollaborationRuleReqObjects `json:"objects,omitempty"` // 实体数量之和需要小于100 +} + +// UpdateDirectoryCollaborationRuleReqObjects ... +type UpdateDirectoryCollaborationRuleReqObjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id, 可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-112121"] 长度范围: `0` ~ `100` + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员;可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-12121212"] 长度范围: `0` ~ `100` + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id, 可以使用[获取关联组织双方共享成员范围](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list)和[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)来组合获取我方想要设置的关联组织部门/用户组和人员示例值: ["od-12121"] 长度范围: `0` ~ `100` +} + +// UpdateDirectoryCollaborationRuleReqSubjects ... +type UpdateDirectoryCollaborationRuleReqSubjects struct { + OpenUserIDs []string `json:"open_user_ids,omitempty"` // 用户 open id, 可以使用通讯录/组织架构接口获取我方ID示例值: ["od-112121"] 长度范围: `0` ~ `100` + OpenDepartmentIDs []string `json:"open_department_ids,omitempty"` // 部门 open id, 0代表全部成员。可以使用通讯录/组织架构接口获取我方ID示例值: ["od-12121212"] 长度范围: `0` ~ `100` + OpenGroupIDs []string `json:"open_group_ids,omitempty"` // 用户组 open id, 可以使用通讯录/组织架构接口获取我方ID示例值: ["od-12121"] 长度范围: `0` ~ `100` +} + +// UpdateDirectoryCollaborationRuleResp ... +type UpdateDirectoryCollaborationRuleResp struct { +} + +// updateDirectoryCollaborationRuleResp ... +type updateDirectoryCollaborationRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateDirectoryCollaborationRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_collaboration_tenant_list.go b/api_directory_collaboration_tenant_list.go new file mode 100644 index 00000000..134b342e --- /dev/null +++ b/api_directory_collaboration_tenant_list.go @@ -0,0 +1,109 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListDirectoryCollaborationTenant 在创建规则时, 需要知道对方组织的tenant key, 可通过该接口获取有效的tenant key。只允许关联组织管理员权限调用。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/list-2 +func (r *DirectoryService) ListDirectoryCollaborationTenant(ctx context.Context, request *ListDirectoryCollaborationTenantReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationTenantResp, *Response, error) { + if r.cli.mock.mockDirectoryListDirectoryCollaborationTenant != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#ListDirectoryCollaborationTenant mock enable") + return r.cli.mock.mockDirectoryListDirectoryCollaborationTenant(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "ListDirectoryCollaborationTenant", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/collaboration_tenants", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listDirectoryCollaborationTenantResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryListDirectoryCollaborationTenant mock DirectoryListDirectoryCollaborationTenant method +func (r *Mock) MockDirectoryListDirectoryCollaborationTenant(f func(ctx context.Context, request *ListDirectoryCollaborationTenantReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationTenantResp, *Response, error)) { + r.mockDirectoryListDirectoryCollaborationTenant = f +} + +// UnMockDirectoryListDirectoryCollaborationTenant un-mock DirectoryListDirectoryCollaborationTenant method +func (r *Mock) UnMockDirectoryListDirectoryCollaborationTenant() { + r.mockDirectoryListDirectoryCollaborationTenant = nil +} + +// ListDirectoryCollaborationTenantReq ... +type ListDirectoryCollaborationTenantReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `100` 取值范围: `0` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: g102aggaEYLRMSHU6DENYI4HMBAJB75XOQN2CUTV +} + +// ListDirectoryCollaborationTenantResp ... +type ListDirectoryCollaborationTenantResp struct { + Items []*ListDirectoryCollaborationTenantRespItem `json:"items,omitempty"` // 对方的关联组织信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListDirectoryCollaborationTenantRespItem ... +type ListDirectoryCollaborationTenantRespItem struct { + TenantKey string `json:"tenant_key,omitempty"` // 关联组织列表 + ConnectTime int64 `json:"connect_time,omitempty"` // 建联时间 + Avatar *ListDirectoryCollaborationTenantRespItemAvatar `json:"avatar,omitempty"` // 租户头像 + Brand string `json:"brand,omitempty"` // 租户品牌 + Name *ListDirectoryCollaborationTenantRespItemName `json:"name,omitempty"` // i18n文本 + ShortName *ListDirectoryCollaborationTenantRespItemShortName `json:"short_name,omitempty"` // i18n文本 +} + +// ListDirectoryCollaborationTenantRespItemAvatar ... +type ListDirectoryCollaborationTenantRespItemAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// ListDirectoryCollaborationTenantRespItemName ... +type ListDirectoryCollaborationTenantRespItemName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// ListDirectoryCollaborationTenantRespItemShortName ... +type ListDirectoryCollaborationTenantRespItemShortName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// listDirectoryCollaborationTenantResp ... +type listDirectoryCollaborationTenantResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListDirectoryCollaborationTenantResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_collboration_share_entity_list.go b/api_directory_collboration_share_entity_list.go new file mode 100644 index 00000000..7b6035bb --- /dev/null +++ b/api_directory_collboration_share_entity_list.go @@ -0,0 +1,130 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListDirectoryCollborationShareEntity 在创建规则时, 需要获取本组织以及对方组织人员、部门和用户组的ID, 且这些实体都应该在关联组织的共享范围内。本接口可获取关联组织双方的共享范围下的人员、部门和用户组。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collboration_share_entity/list +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/list-3 +func (r *DirectoryService) ListDirectoryCollborationShareEntity(ctx context.Context, request *ListDirectoryCollborationShareEntityReq, options ...MethodOptionFunc) (*ListDirectoryCollborationShareEntityResp, *Response, error) { + if r.cli.mock.mockDirectoryListDirectoryCollborationShareEntity != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#ListDirectoryCollborationShareEntity mock enable") + return r.cli.mock.mockDirectoryListDirectoryCollborationShareEntity(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "ListDirectoryCollborationShareEntity", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/share_entities", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listDirectoryCollborationShareEntityResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryListDirectoryCollborationShareEntity mock DirectoryListDirectoryCollborationShareEntity method +func (r *Mock) MockDirectoryListDirectoryCollborationShareEntity(f func(ctx context.Context, request *ListDirectoryCollborationShareEntityReq, options ...MethodOptionFunc) (*ListDirectoryCollborationShareEntityResp, *Response, error)) { + r.mockDirectoryListDirectoryCollborationShareEntity = f +} + +// UnMockDirectoryListDirectoryCollborationShareEntity un-mock DirectoryListDirectoryCollborationShareEntity method +func (r *Mock) UnMockDirectoryListDirectoryCollborationShareEntity() { + r.mockDirectoryListDirectoryCollborationShareEntity = nil +} + +// ListDirectoryCollborationShareEntityReq ... +type ListDirectoryCollborationShareEntityReq struct { + TargetTenantKey string `query:"target_tenant_key" json:"-"` // 对方组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: test_key + TargetDepartmentID *string `query:"target_department_id" json:"-"` // 不填写该参数时, 查询整个组织的分享范围, 可填写该字段继续下钻查看指定部门下的子部门+成员。填写0分为两种情况, 若组织分享的为全员则展示一级部门, 否则展示分享的部门+成员;可以递归使用该接口实现整个分享范围的下钻查询示例值: test_key + TargetGroupID *string `query:"target_group_id" json:"-"` // 获取用户组下的成员, 填写该值后忽略target_department_id;可以通过本接口参数返回的用户组ID继续本接口查询示例值: test_key + IsSelectSubject *bool `query:"is_select_subject" json:"-"` // 是否主体组织分享范围, 默认是客体组织的分享范围示例值: true + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `100` 取值范围: `0` ~ `100` +} + +// ListDirectoryCollborationShareEntityResp ... +type ListDirectoryCollborationShareEntityResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + ShareDepartments []string `json:"share_departments,omitempty"` // 分享的部门信息 + ShareGroups []*ListDirectoryCollborationShareEntityRespShareGroup `json:"share_groups,omitempty"` // 分享的用户组信息 + ShareUsers []*ListDirectoryCollborationShareEntityRespShareUser `json:"share_users,omitempty"` // 分享的用户信息 +} + +// ListDirectoryCollborationShareEntityRespShareDepartment ... +type ListDirectoryCollborationShareEntityRespShareDepartment struct { + OpenDepartmentID string `json:"open_department_id,omitempty"` // 部门open ID + Name *ListDirectoryCollborationShareEntityRespShareDepartmentName `json:"name,omitempty"` // i18n文本 +} + +// ListDirectoryCollborationShareEntityRespShareDepartmentName ... +type ListDirectoryCollborationShareEntityRespShareDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// ListDirectoryCollborationShareEntityRespShareGroup ... +type ListDirectoryCollborationShareEntityRespShareGroup struct { + OpenGroupID string `json:"open_group_id,omitempty"` // 用户组的open_id + Name *ListDirectoryCollborationShareEntityRespShareGroupName `json:"name,omitempty"` // i18n文本 +} + +// ListDirectoryCollborationShareEntityRespShareGroupName ... +type ListDirectoryCollborationShareEntityRespShareGroupName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// ListDirectoryCollborationShareEntityRespShareUser ... +type ListDirectoryCollborationShareEntityRespShareUser struct { + OpenUserID string `json:"open_user_id,omitempty"` // user open ID + Name *ListDirectoryCollborationShareEntityRespShareUserName `json:"name,omitempty"` // i18n文本 + Avatar *ListDirectoryCollborationShareEntityRespShareUserAvatar `json:"avatar,omitempty"` // 用户的头像 +} + +// ListDirectoryCollborationShareEntityRespShareUserAvatar ... +type ListDirectoryCollborationShareEntityRespShareUserAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// ListDirectoryCollborationShareEntityRespShareUserName ... +type ListDirectoryCollborationShareEntityRespShareUserName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// listDirectoryCollborationShareEntityResp ... +type listDirectoryCollborationShareEntityResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListDirectoryCollborationShareEntityResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_create.go b/api_directory_department_create.go new file mode 100644 index 00000000..09ee9c5b --- /dev/null +++ b/api_directory_department_create.go @@ -0,0 +1,154 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryDepartment 本接口用于用于在企业通讯录中创建新部门, 支持设置部门名称、父部门、负责人等信息。 +// +// 注意: +// - 只能在当前应用的通讯录授权范围内的部门下创建部门, 如果要在根部门下创建子部门, 必须拥有全员权限。可以在 开发者后台-应用详情-权限管理中 查看通讯录授权范围。 +// - 本接口中支持的user_access_token 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可创建部门时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 拥有本接口权限后, 即可写入部门信息。但创建部门后仅返回应用有权限的字段数据, 如果需要指定字段请按照文档中的描述申请对应权限。 +// - 本接口仅对自建应用开放。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/create +// new doc: https://open.feishu.cn/document/directory-v1/department/create +func (r *DirectoryService) CreateDirectoryDepartment(ctx context.Context, request *CreateDirectoryDepartmentReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryDepartment mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryDepartment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryDepartment mock DirectoryCreateDirectoryDepartment method +func (r *Mock) MockDirectoryCreateDirectoryDepartment(f func(ctx context.Context, request *CreateDirectoryDepartmentReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentResp, *Response, error)) { + r.mockDirectoryCreateDirectoryDepartment = f +} + +// UnMockDirectoryCreateDirectoryDepartment un-mock DirectoryCreateDirectoryDepartment method +func (r *Mock) UnMockDirectoryCreateDirectoryDepartment() { + r.mockDirectoryCreateDirectoryDepartment = nil +} + +// CreateDirectoryDepartmentReq ... +type CreateDirectoryDepartmentReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。默认值: `open_department_id` + Department *CreateDirectoryDepartmentReqDepartment `json:"department,omitempty"` // 创建部门 +} + +// CreateDirectoryDepartmentReqDepartment ... +type CreateDirectoryDepartmentReqDepartment struct { + CustomDepartmentID *string `json:"custom_department_id,omitempty"` // 标识租户内一个唯一的部门, 支持自定义, 未自定义时系统自动生成。ID支持修改。注意: 1. 除需要满足正则规则外, 同时不能以od-开头2. 正则校验: ^[a-zA-Z0-9][a-zA-Z0-9_\-@.]{0, 63}$示例值: "eersdf" + Name *CreateDirectoryDepartmentReqDepartmentName `json:"name,omitempty"` // 部门名称, 最多可输入 100 字 + ParentDepartmentID *string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致。如果父部门为根部门, 该参数值为 “0”示例值: "h121900" + Leaders []*CreateDirectoryDepartmentReqDepartmentLeader `json:"leaders,omitempty"` // 部门负责人 长度范围: `0` ~ `20` + OrderWeight *string `json:"order_weight,omitempty"` // 在上级部门下的排序权重, 返回结果按order_weight降序排列示例值: "100" + EnabledStatus *bool `json:"enabled_status,omitempty"` // 是否启用示例值: true + CustomFieldValues []*CreateDirectoryDepartmentReqDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 部门自定义字段值 长度范围: `0` ~ `100` +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValue struct { + FieldType *string `json:"field_type,omitempty"` // 自定义字段类型示例值: "1"可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *CreateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *CreateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*CreateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 长度范围: `0` ~ `100` + PhoneValue *CreateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey *string `json:"field_key,omitempty"` // 自定义字段key示例值: "C-1000001" +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID示例值: ["dsa213sa"] 长度范围: `0` ~ `100` + EnumType string `json:"enum_type,omitempty"` // 选项类型示例值: "1"可选值有: 文本图片 +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号示例值: "18812345678" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号示例值: "234234234长度范围: 0-99字符" +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: { "zh_cn": "中文", "ja_jp": "ja_jp_name", "en_us": "en_us_name" } +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue struct { + LinkText *CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接示例值: "https://m.bytedance.com/afnasjfna" + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接示例值: "http://www.fs.cn" +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"张三"} +} + +// CreateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue ... +type CreateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致示例值: ["asdbjw1s"] 长度范围: `0` ~ `100` +} + +// CreateDirectoryDepartmentReqDepartmentLeader ... +type CreateDirectoryDepartmentReqDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型示例值: 1可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致示例值: "u273y71" +} + +// CreateDirectoryDepartmentReqDepartmentName ... +type CreateDirectoryDepartmentReqDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三 长度范围: 1-64 字符" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: { "zh_cn": "中文", "ja_jp": "ja_jp_name", "en_us": "en_us_name" } +} + +// CreateDirectoryDepartmentResp ... +type CreateDirectoryDepartmentResp struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID +} + +// createDirectoryDepartmentResp ... +type createDirectoryDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_delete.go b/api_directory_department_delete.go new file mode 100644 index 00000000..38327abd --- /dev/null +++ b/api_directory_department_delete.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteDirectoryDepartment 本接口用于删除部门。 +// +// 注意: +// - 删除部门需要有待删除部门及其父部门的应用数据权限[配置应用数据权限](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/configure-app-data-permissions) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/delete +// new doc: https://open.feishu.cn/document/directory-v1/department/delete +func (r *DirectoryService) DeleteDirectoryDepartment(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) { + if r.cli.mock.mockDirectoryDeleteDirectoryDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#DeleteDirectoryDepartment mock enable") + return r.cli.mock.mockDirectoryDeleteDirectoryDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "DeleteDirectoryDepartment", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments/:department_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteDirectoryDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryDeleteDirectoryDepartment mock DirectoryDeleteDirectoryDepartment method +func (r *Mock) MockDirectoryDeleteDirectoryDepartment(f func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error)) { + r.mockDirectoryDeleteDirectoryDepartment = f +} + +// UnMockDirectoryDeleteDirectoryDepartment un-mock DirectoryDeleteDirectoryDepartment method +func (r *Mock) UnMockDirectoryDeleteDirectoryDepartment() { + r.mockDirectoryDeleteDirectoryDepartment = nil +} + +// DeleteDirectoryDepartmentReq ... +type DeleteDirectoryDepartmentReq struct { + DepartmentID string `path:"department_id" json:"-"` // 部门ID, 与department_id_type类型保持一致示例值: "weasdqwe" 最大长度: `64` 字符 + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。默认值: `open_department_id` +} + +// DeleteDirectoryDepartmentResp ... +type DeleteDirectoryDepartmentResp struct { +} + +// deleteDirectoryDepartmentResp ... +type deleteDirectoryDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteDirectoryDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_filter.go b/api_directory_department_filter.go new file mode 100644 index 00000000..07c09a56 --- /dev/null +++ b/api_directory_department_filter.go @@ -0,0 +1,213 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryDepartmentFilter 本接口用于依据指定条件, 批量获取符合条件的部门详情列表。 +// +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。可以在开发者后台-应用详情-权限管理中查看通讯录授权范围。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看部门信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/filter +// new doc: https://open.feishu.cn/document/directory-v1/department/filter +func (r *DirectoryService) CreateDirectoryDepartmentFilter(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryDepartmentFilter != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryDepartmentFilter mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryDepartmentFilter(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryDepartmentFilter", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments/filter", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryDepartmentFilterResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryDepartmentFilter mock DirectoryCreateDirectoryDepartmentFilter method +func (r *Mock) MockDirectoryCreateDirectoryDepartmentFilter(f func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error)) { + r.mockDirectoryCreateDirectoryDepartmentFilter = f +} + +// UnMockDirectoryCreateDirectoryDepartmentFilter un-mock DirectoryCreateDirectoryDepartmentFilter method +func (r *Mock) UnMockDirectoryCreateDirectoryDepartmentFilter() { + r.mockDirectoryCreateDirectoryDepartmentFilter = nil +} + +// CreateDirectoryDepartmentFilterReq ... +type CreateDirectoryDepartmentFilterReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。用来标识租户内一个唯一的部门默认值: `open_department_id` + Filter *CreateDirectoryDepartmentFilterReqFilter `json:"filter,omitempty"` // 查询条件[了解更多: 查询条件用法](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/filter-usage) + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["name"] 长度范围: `0` ~ `100` + PageRequest *CreateDirectoryDepartmentFilterReqPageRequest `json:"page_request,omitempty"` // 分页信息 +} + +// CreateDirectoryDepartmentFilterReqFilter ... +type CreateDirectoryDepartmentFilterReqFilter struct { + Conditions []*CreateDirectoryDepartmentFilterReqFilterCondition `json:"conditions,omitempty"` // 比较表达式列表。多个表达式之间的关系默认为“and” 长度范围: `0` ~ `10` +} + +// CreateDirectoryDepartmentFilterReqFilterCondition ... +type CreateDirectoryDepartmentFilterReqFilterCondition struct { + Field string `json:"field,omitempty"` // 筛选条件的左值, 值为字段的参数名称。可选的筛选条件有: parent_department_id示例值: "parent_department_id" + Operator string `json:"operator,omitempty"` // 比较操作符可选值有: eq: 等于, 支持任何类型的左值- in: 属于任一, 不支持parent_department_id, 右值为多个目标筛选值构成的数组(不得超过100个)示例值: "eq" + Value string `json:"value,omitempty"` // 筛选条件的右值, 内容为左值字段类型及操作符组合下, 对应的值类型。其取值类型需与查询参数department_id_type的取值一致, 最大长度为64字符, 支持数字和字母。使用parent_department_id条件时, 根部门的ID可使用"0"示例值: "\"0\"" +} + +// CreateDirectoryDepartmentFilterReqPageRequest ... +type CreateDirectoryDepartmentFilterReqPageRequest struct { + PageSize *int64 `json:"page_size,omitempty"` // 本次请求条数, 最大100条默认值: 20最小值: 0示例值: 100 + PageToken *string `json:"page_token,omitempty"` // 顺序分页查询, 不能跳页查询, 支持深分页, 在需要遍历全部数据的场景只能使用该方式。第一次传空字符串或者不传, 后面传上一次的返回值中的page_token示例值: "iuu14140aknladna91ndas" +} + +// CreateDirectoryDepartmentFilterResp ... +type CreateDirectoryDepartmentFilterResp struct { + Departments []string `json:"departments,omitempty"` // 部门信息 + PageResponse *CreateDirectoryDepartmentFilterRespPageResponse `json:"page_response,omitempty"` // 分页结果 + Abnormals []*CreateDirectoryDepartmentFilterRespAbnormal `json:"abnormals,omitempty"` // 异常信息 +} + +// CreateDirectoryDepartmentFilterRespAbnormal ... +type CreateDirectoryDepartmentFilterRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常字段不存在 +} + +// CreateDirectoryDepartmentFilterRespDepartment ... +type CreateDirectoryDepartmentFilterRespDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *CreateDirectoryDepartmentFilterRespDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员计数与子部门计数。计算结果可能会有延迟字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*CreateDirectoryDepartmentFilterRespDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *CreateDirectoryDepartmentFilterRespDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 部门自定义字段值字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息。排列顺序为根级到末级, 不包含根部门字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueEnumValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValuePhoneValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueTextValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValue struct { + LinkText *CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValueLinkText ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueUserValue ... +type CreateDirectoryDepartmentFilterRespDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致 +} + +// CreateDirectoryDepartmentFilterRespDepartmentDepartmentCount ... +type CreateDirectoryDepartmentFilterRespDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader) + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量 +} + +// CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfo ... +type CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致 + DepartmentName *CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // i18n文本 +} + +// CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfoDepartmentName ... +type CreateDirectoryDepartmentFilterRespDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryDepartmentFilterRespDepartmentLeader ... +type CreateDirectoryDepartmentFilterRespDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致 +} + +// CreateDirectoryDepartmentFilterRespDepartmentName ... +type CreateDirectoryDepartmentFilterRespDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryDepartmentFilterRespPageResponse ... +type CreateDirectoryDepartmentFilterRespPageResponse struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有后续结果, 如果has_more为true, 代表还有数据没有完全返回, 需要使用响应结果中的page_token, 并再次请求才能取得剩下的数据。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// createDirectoryDepartmentFilterResp ... +type createDirectoryDepartmentFilterResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryDepartmentFilterResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_mget.go b/api_directory_department_mget.go new file mode 100644 index 00000000..dc3e95f9 --- /dev/null +++ b/api_directory_department_mget.go @@ -0,0 +1,189 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// MGetDirectoryDepartment 该接口支持传入多个部门ID, 返回每个部门的详细信息(如名称、负责人、子部门等)。 +// +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。可通过[获取应用通讯录权限范围配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application/contacts_range_configuration)确定应用的通讯录权限范围。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看部门信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 为增强飞书组织架构 OpenAPI 的灵活性, 于 2024 年 10 月 21 日对该 API 接口做出了更新升级, 升级内容包括: 优化查询已删除部门信息的返回数据结构。 +// - 升级前, 查询已删除部门的信息时, 不会返回部门负责人信息;升级后, 查询已删除部门的信息时, 返回数据中将包括部门负责人信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/mget +// new doc: https://open.feishu.cn/document/directory-v1/department/mget +func (r *DirectoryService) MGetDirectoryDepartment(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) { + if r.cli.mock.mockDirectoryMGetDirectoryDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#MGetDirectoryDepartment mock enable") + return r.cli.mock.mockDirectoryMGetDirectoryDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "MGetDirectoryDepartment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments/mget", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(mGetDirectoryDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryMGetDirectoryDepartment mock DirectoryMGetDirectoryDepartment method +func (r *Mock) MockDirectoryMGetDirectoryDepartment(f func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error)) { + r.mockDirectoryMGetDirectoryDepartment = f +} + +// UnMockDirectoryMGetDirectoryDepartment un-mock DirectoryMGetDirectoryDepartment method +func (r *Mock) UnMockDirectoryMGetDirectoryDepartment() { + r.mockDirectoryMGetDirectoryDepartment = nil +} + +// MGetDirectoryDepartmentReq ... +type MGetDirectoryDepartmentReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: user_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。默认值: `open_department_id` + DepartmentIDs []string `json:"department_ids,omitempty"` // 部门ID, 与department_id_type类型保持一致。id获取方式: 可通过管理后台查询。示例值: ["adqwea"] 长度范围: `1` ~ `100` + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["name"] 长度范围: `0` ~ `100` +} + +// MGetDirectoryDepartmentResp ... +type MGetDirectoryDepartmentResp struct { + Departments []string `json:"departments,omitempty"` // 部门信息 + Abnormals []*MGetDirectoryDepartmentRespAbnormal `json:"abnormals,omitempty"` // 字段异常信息 +} + +// MGetDirectoryDepartmentRespAbnormal ... +type MGetDirectoryDepartmentRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常字段不存在 +} + +// MGetDirectoryDepartmentRespDepartment ... +type MGetDirectoryDepartmentRespDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *MGetDirectoryDepartmentRespDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员计数与子部门计数。计算结果可能会有延迟字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*MGetDirectoryDepartmentRespDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *MGetDirectoryDepartmentRespDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*MGetDirectoryDepartmentRespDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 部门自定义字段值字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*MGetDirectoryDepartmentRespDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息。排列顺序为根级到末级, 不包含根部门字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *MGetDirectoryDepartmentRespDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *MGetDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*MGetDirectoryDepartmentRespDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *MGetDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValueTextValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValue struct { + LinkText *MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryDepartmentRespDepartmentCustomFieldValueUserValue ... +type MGetDirectoryDepartmentRespDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致 +} + +// MGetDirectoryDepartmentRespDepartmentDepartmentCount ... +type MGetDirectoryDepartmentRespDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量单位: 个 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量单位: 个 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader)单位: 个 + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量单位: 个 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量单位: 个 +} + +// MGetDirectoryDepartmentRespDepartmentDepartmentPathInfo ... +type MGetDirectoryDepartmentRespDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致 + DepartmentName *MGetDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // 部门名称 +} + +// MGetDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName ... +type MGetDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryDepartmentRespDepartmentLeader ... +type MGetDirectoryDepartmentRespDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致 +} + +// MGetDirectoryDepartmentRespDepartmentName ... +type MGetDirectoryDepartmentRespDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// mGetDirectoryDepartmentResp ... +type mGetDirectoryDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *MGetDirectoryDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_search.go b/api_directory_department_search.go new file mode 100644 index 00000000..172efaee --- /dev/null +++ b/api_directory_department_search.go @@ -0,0 +1,201 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchDirectoryDepartment 本接口用于搜索部门信息, 通过部门名称等关键词搜索部门信息, 返回符合条件的部门列表。 +// +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。考虑到数据安全仅返回最多前100条匹配项, 若需精准结果需要更准确的输入。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看员工信息时, 管理员管理范围取最大集。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/search +// new doc: https://open.feishu.cn/document/directory-v1/department/search +func (r *DirectoryService) SearchDirectoryDepartment(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) { + if r.cli.mock.mockDirectorySearchDirectoryDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#SearchDirectoryDepartment mock enable") + return r.cli.mock.mockDirectorySearchDirectoryDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "SearchDirectoryDepartment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(searchDirectoryDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectorySearchDirectoryDepartment mock DirectorySearchDirectoryDepartment method +func (r *Mock) MockDirectorySearchDirectoryDepartment(f func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error)) { + r.mockDirectorySearchDirectoryDepartment = f +} + +// UnMockDirectorySearchDirectoryDepartment un-mock DirectorySearchDirectoryDepartment method +func (r *Mock) UnMockDirectorySearchDirectoryDepartment() { + r.mockDirectorySearchDirectoryDepartment = nil +} + +// SearchDirectoryDepartmentReq ... +type SearchDirectoryDepartmentReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。用来标识租户内一个唯一的部门默认值: `open_department_id` + Query string `json:"query,omitempty"` // 搜索关键词。支持部门名称的搜索, 最多可输入 100 字。示例值: "zhang" + PageRequest *SearchDirectoryDepartmentReqPageRequest `json:"page_request,omitempty"` // 分页信息 + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["name"] 长度范围: `0` ~ `100` +} + +// SearchDirectoryDepartmentReqPageRequest ... +type SearchDirectoryDepartmentReqPageRequest struct { + PageSize *int64 `json:"page_size,omitempty"` // 本次请求条数, 最大100条默认值: 20最小值: 0示例值: 100 + PageToken *string `json:"page_token,omitempty"` // 顺序分页查询, 不能跳页查询, 支持深分页, 在需要遍历全部数据的场景只能使用该方式。第一次传空字符串或者不传, 后面传上一次的返回值中的page_token示例值: "xdcftvygbuhijhgrexr" +} + +// SearchDirectoryDepartmentResp ... +type SearchDirectoryDepartmentResp struct { + Departments []string `json:"departments,omitempty"` // 部门信息 + PageResponse *SearchDirectoryDepartmentRespPageResponse `json:"page_response,omitempty"` // 分页结果 + Abnormals []*SearchDirectoryDepartmentRespAbnormal `json:"abnormals,omitempty"` // 字段异常信息 +} + +// SearchDirectoryDepartmentRespAbnormal ... +type SearchDirectoryDepartmentRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常字段不存在 +} + +// SearchDirectoryDepartmentRespDepartment ... +type SearchDirectoryDepartmentRespDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *SearchDirectoryDepartmentRespDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员计数与子部门计数。计算结果可能会有延迟字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*SearchDirectoryDepartmentRespDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *SearchDirectoryDepartmentRespDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*SearchDirectoryDepartmentRespDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 部门自定义字段值字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*SearchDirectoryDepartmentRespDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息。排列顺序为根级到末级, 不包含根部门字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *SearchDirectoryDepartmentRespDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *SearchDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*SearchDirectoryDepartmentRespDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *SearchDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValueTextValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValue struct { + LinkText *SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryDepartmentRespDepartmentCustomFieldValueUserValue ... +type SearchDirectoryDepartmentRespDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致 +} + +// SearchDirectoryDepartmentRespDepartmentDepartmentCount ... +type SearchDirectoryDepartmentRespDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader) + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量 +} + +// SearchDirectoryDepartmentRespDepartmentDepartmentPathInfo ... +type SearchDirectoryDepartmentRespDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致 + DepartmentName *SearchDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // 部门名称 +} + +// SearchDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName ... +type SearchDirectoryDepartmentRespDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryDepartmentRespDepartmentLeader ... +type SearchDirectoryDepartmentRespDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致 +} + +// SearchDirectoryDepartmentRespDepartmentName ... +type SearchDirectoryDepartmentRespDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryDepartmentRespPageResponse ... +type SearchDirectoryDepartmentRespPageResponse struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有后续结果, 如果has_more为true, 代表还有数据没有完全返回, 需要使用响应结果中的page_token, 并再次请求才能取得剩下的数据。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// searchDirectoryDepartmentResp ... +type searchDirectoryDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchDirectoryDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_department_update.go b/api_directory_department_update.go new file mode 100644 index 00000000..1aac3804 --- /dev/null +++ b/api_directory_department_update.go @@ -0,0 +1,155 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateDirectoryDepartment 本接口用于更新部门信息。仅更新显式传参的部分。 +// +// - 只能在当前应用的通讯录授权范围内(可通过管理后台>应用权限>通讯录授权页面查看)更新部门信息。 +// - 变更部门的父部门, 需要有变更前后的部门权限, 才能变更成功。 +// - 变更部门的负责人, 需要有变更前后的人员权限, 才能变更成功。 +// - 本接口中支持的user_access_token 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可更新部门时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 修改部门ID(department_id)需要悉知以下影响: +// - 部门ID(department_id)是部门在企业内的唯一ID, 可能会被应用引用来实现各种内部逻辑, 唯一ID修改之后可能会导致引用失败, 导致所有引用且保存了‘被修改 ID 部门’的业务全部受影响。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/department/patch +// new doc: https://open.feishu.cn/document/directory-v1/department/patch +func (r *DirectoryService) UpdateDirectoryDepartment(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) { + if r.cli.mock.mockDirectoryUpdateDirectoryDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#UpdateDirectoryDepartment mock enable") + return r.cli.mock.mockDirectoryUpdateDirectoryDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "UpdateDirectoryDepartment", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/departments/:department_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateDirectoryDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryUpdateDirectoryDepartment mock DirectoryUpdateDirectoryDepartment method +func (r *Mock) MockDirectoryUpdateDirectoryDepartment(f func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error)) { + r.mockDirectoryUpdateDirectoryDepartment = f +} + +// UnMockDirectoryUpdateDirectoryDepartment un-mock DirectoryUpdateDirectoryDepartment method +func (r *Mock) UnMockDirectoryUpdateDirectoryDepartment() { + r.mockDirectoryUpdateDirectoryDepartment = nil +} + +// UpdateDirectoryDepartmentReq ... +type UpdateDirectoryDepartmentReq struct { + DepartmentID string `path:"department_id" json:"-"` // 部门ID, 与department_id_type类型保持一致示例值: "h12921" 最大长度: `64` 字符 + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。用来标识租户内一个唯一的部门默认值: `open_department_id` + Department *UpdateDirectoryDepartmentReqDepartment `json:"department,omitempty"` // 更新部门信息 +} + +// UpdateDirectoryDepartmentReqDepartment ... +type UpdateDirectoryDepartmentReqDepartment struct { + CustomDepartmentID *string `json:"custom_department_id,omitempty"` // 自定义部门ID。注意: 1. 除需要满足正则规则外, 同时不能以od-开头2. 正则校验: ^[a-zA-Z0-9][a-zA-Z0-9_\-@.]{0, 63}$ 长度范围: 1-64字符示例值: "eedasqwA" + Name *UpdateDirectoryDepartmentReqDepartmentName `json:"name,omitempty"` // 部门名称 + ParentDepartmentID *string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致示例值: "100" + Leaders []*UpdateDirectoryDepartmentReqDepartmentLeader `json:"leaders,omitempty"` // 部门负责人 长度范围: `0` ~ `20` + OrderWeight *string `json:"order_weight,omitempty"` // 在上级部门下的排序权重, 返回结果将按照order_weight的值进行升序排列。示例值: "100" + EnabledStatus *bool `json:"enabled_status,omitempty"` // 是否启用示例值: true + CustomFieldValues []*UpdateDirectoryDepartmentReqDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 部门自定义字段值 长度范围: `0` ~ `100` +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValue struct { + FieldType *string `json:"field_type,omitempty"` // 自定义字段类型示例值: "1"可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *UpdateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *UpdateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*UpdateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 长度范围: `0` ~ `100` + PhoneValue *UpdateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey *string `json:"field_key,omitempty"` // 自定义字段key示例值: "C-1000001" +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID示例值: ["1"] 长度范围: `0` ~ `100` + EnumType string `json:"enum_type,omitempty"` // 选项类型示例值: "1"可选值有: 文本图片 +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号示例值: "18812345678" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号长度范围: 0-99字符示例值: "234234234" +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: { "zh_cn": "中文", "ja_jp": "ja_jp_name", "en_us": "en_us_name"} +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValue struct { + LinkText *UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接示例值: "https://m.bytedance.com/afnasjfna" + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接示例值: "http://www.fs.cn" +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: { "zh_cn": "中文", "ja_jp": "ja_jp_name", "en_us": "en_us_name"} +} + +// UpdateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue ... +type UpdateDirectoryDepartmentReqDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致示例值: ["1"] 长度范围: `0` ~ `100` +} + +// UpdateDirectoryDepartmentReqDepartmentLeader ... +type UpdateDirectoryDepartmentReqDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型示例值: 1可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致示例值: "u273y71" +} + +// UpdateDirectoryDepartmentReqDepartmentName ... +type UpdateDirectoryDepartmentReqDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三长度范围: 1-100" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"张三"} +} + +// UpdateDirectoryDepartmentResp ... +type UpdateDirectoryDepartmentResp struct { +} + +// updateDirectoryDepartmentResp ... +type updateDirectoryDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateDirectoryDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_create.go b/api_directory_employee_create.go new file mode 100644 index 00000000..6099bd0e --- /dev/null +++ b/api_directory_employee_create.go @@ -0,0 +1,190 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryEmployee 本接口用于在企业下创建员工。支持传入姓名、手机号等信息, 生成在职状态的员工对象。 +// +// 员工指飞书企业内身份为「Employee」的成员, 等同于通讯录OpenAPI中的「User」。 +// 注意: +// - 只能在当前应用的通讯录授权范围内的部门下创建员工, 如果要在根部门下创建员工, 必须拥有全员权限。可以在开发者后台-应用详情-权限管理中查看通讯录授权范围。 +// - 本接口中支持的user_access_token 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可创建员工时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 拥有本接口权限后, 即可写入员工信息。但创建员工后仅返回应用有权限的字段数据, 如果需要指定字段请按照文档中的描述申请对应权限。 +// - 本接口仅对自建应用开放。 +// - 创建出来的是在职状态的员工。 +// - 创建员工后, 会发送邀请短信/邮件, 需被邀请人点击同意后才可加入企业。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/create +// new doc: https://open.feishu.cn/document/directory-v1/employee/create +func (r *DirectoryService) CreateDirectoryEmployee(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryEmployee mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryEmployee", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryEmployee mock DirectoryCreateDirectoryEmployee method +func (r *Mock) MockDirectoryCreateDirectoryEmployee(f func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error)) { + r.mockDirectoryCreateDirectoryEmployee = f +} + +// UnMockDirectoryCreateDirectoryEmployee un-mock DirectoryCreateDirectoryEmployee method +func (r *Mock) UnMockDirectoryCreateDirectoryEmployee() { + r.mockDirectoryCreateDirectoryEmployee = nil +} + +// CreateDirectoryEmployeeReq ... +type CreateDirectoryEmployeeReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。默认值: `open_department_id` + Employee *CreateDirectoryEmployeeReqEmployee `json:"employee,omitempty"` // 创建员工对象 + Options *CreateDirectoryEmployeeReqOptions `json:"options,omitempty"` // 接口拓展选项 +} + +// CreateDirectoryEmployeeReqEmployee ... +type CreateDirectoryEmployeeReqEmployee struct { + Name *CreateDirectoryEmployeeReqEmployeeName `json:"name,omitempty"` // 姓名 + Mobile *string `json:"mobile,omitempty"` // 员工的手机号, 最多可输入 255 字。注意: 1. 在企业内的在职员工中不可重复。2. 未认证企业仅支持添加中国大陆手机号, 通过飞书认证的企业允许添加海外手机号。3. 国际电话区号前缀中必须包含加号 +。示例值: "13011111111" 或 "+8613011111111" + CustomEmployeeID *string `json:"custom_employee_id,omitempty"` // 企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。注意: 1. 在职员工的ID不可重复2. ID不能包含空格示例值: "u273y71 长度范围: 1-64字符" + AvatarKey *string `json:"avatar_key,omitempty"` // 员工的头像key。获取图片的key请使用 [上传图片 - 服务端 API - 开发文档 - 飞书开放平台](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create), 上传时图片类型需要选择 用于设置头像示例值: "8abc397a-9950-44ea-9302-e1d8fe00858g" 长度范围: `0` ~ `255` 字符 + Email *string `json:"email,omitempty"` // 员工在工作中的邮箱。注意: 1. 在企业内的在职员工中不可重复。2. 非中国大陆手机号成员必须同时添加邮箱。示例值: "zhangsan@gmail.com" 长度范围: `0` ~ `255` 字符 + EnterpriseEmail *string `json:"enterprise_email,omitempty"` // 员工的企业邮箱。请先确保已在管理后台启用飞书邮箱服务。企业邮箱的域名需要企业在管理后台申请并开启。如果企业没有开启对应域名的企业邮箱, 设置用户的企业邮箱会操作失败。示例值: "zhangsan@gmail.com" 长度范围: `0` ~ `255` 字符 + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 未知男女其他 + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 员工在所属部门内的排序信息。 长度范围: `0` ~ `10` + LeaderID *string `json:"leader_id,omitempty"` // 员工的直属上级ID, 与employee_id_type类型保持一致。注意: 1. 不可成环, 即A的上级是B, B的上级是A。2. 上级需要是一个在职的员工。示例值: "eeasdqwwe" + DottedLineLeaderIDs []string `json:"dotted_line_leader_ids,omitempty"` // 员工的虚线上级ID, 与employee_id_type类型保持一致。注意: 1. 不可成环, 即A的上级是B, B的上级是A。2. 上级需要是一个在职的员工。示例值: ["hdsuqw"] 长度范围: `0` ~ `20` + WorkCountryOrRegion *string `json:"work_country_or_region,omitempty"` // 工作地国家/地区码。获取国家/地区的编码请使用 [分页批量查询国家/地区](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/country_region/list)。示例值: "MDM34234234" + WorkPlaceID *string `json:"work_place_id,omitempty"` // 工作地点ID示例值: "eqwedas" + WorkStation *CreateDirectoryEmployeeReqEmployeeWorkStation `json:"work_station,omitempty"` // 工位 + JobNumber *string `json:"job_number,omitempty"` // 工号。企业内在职员工的工号不可重复。示例值: "2845435 长度范围: 0-255字符" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号, 最多可输入 99 字。企业内所有员工的分机号不可重复。示例值: "2845435" + JoinDate *string `json:"join_date,omitempty"` // 入职日期示例值: "2022-10-10 长度范围: 固定长度: 10 个字符, 固定格式: “yyyy-mm-dd”" + EmploymentType *int64 `json:"employment_type,omitempty"` // 员工类型示例值: 1可选值有: 全职实习外包劳务顾问 + JobTitleID *string `json:"job_title_id,omitempty"` // 职务ID示例值: "wqedsaqw" + CustomFieldValues []*CreateDirectoryEmployeeReqEmployeeCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段 长度范围: `0` ~ `100` +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValue struct { + FieldType *string `json:"field_type,omitempty"` // 自定义字段类型示例值: "1"可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型人员列表 + TextValue *CreateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *CreateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举字段值 + UserValues []*CreateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 长度范围: `0` ~ `100` + PhoneValue *CreateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey *string `json:"field_key,omitempty"` // 自定义字段key示例值: "C-1000001" +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID示例值: ["1"] 长度范围: `0` ~ `100` + EnumType string `json:"enum_type,omitempty"` // 选项类型示例值: "1"可选值有: 文本图片 +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号示例值: "18812345678" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号示例值: "234234234" +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值最小长度: 1字符示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"张三"} +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue struct { + LinkText *CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接示例值: "https://m.bytedance.com/afnasjfna" + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接示例值: "http://www.fs.cn" +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值长度范围: 1-40字符示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"张三"} +} + +// CreateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue ... +type CreateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致。示例值: ["1"] 长度范围: `0` ~ `100` +} + +// CreateDirectoryEmployeeReqEmployeeEmployeeOrderInDepartment ... +type CreateDirectoryEmployeeReqEmployeeEmployeeOrderInDepartment struct { + DepartmentID *string `json:"department_id,omitempty"` // 指定员工所在的部门, 标识企业内一个唯一的部门, 与department_id_type类型保持一致。示例值: "eeddjisdwe" + OrderWeightInDeparment *string `json:"order_weight_in_deparment,omitempty"` // 员工在部门内的排序权重。示例值: "100" + OrderWeightAmongDeparments *string `json:"order_weight_among_deparments,omitempty"` // 该部门在用户所属的多个部门间的排序权重。示例值: "20" + IsMainDepartment *bool `json:"is_main_department,omitempty"` // 是否为用户的主部门(用户只能有一个主部门, 且排序权重应最大, 不填则默认使用系统默认排序下的第一个部门作为主部门, 系统默认排序与部门数组传入顺序无关)示例值: true +} + +// CreateDirectoryEmployeeReqEmployeeName ... +type CreateDirectoryEmployeeReqEmployeeName struct { + Name *CreateDirectoryEmployeeReqEmployeeNameName `json:"name,omitempty"` // 员工的姓名, 最多可输入 64 字 + AnotherName *string `json:"another_name,omitempty"` // 别名, 最多可输入 64 字示例值: "jack" +} + +// CreateDirectoryEmployeeReqEmployeeNameName ... +type CreateDirectoryEmployeeReqEmployeeNameName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值最小长度: 1字符示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值。示例值: {"zh_cn":"张三"} +} + +// CreateDirectoryEmployeeReqEmployeeWorkStation ... +type CreateDirectoryEmployeeReqEmployeeWorkStation struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "张三" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"张三"} +} + +// CreateDirectoryEmployeeReqOptions ... +type CreateDirectoryEmployeeReqOptions struct { + GeoName *string `json:"geo_name,omitempty"` // 员工的数据驻留地。仅限开通了Multi-Geo的企业可选填, 且仅能填入企业数据驻留地列表中的Geo。可通过获取地理位置列表接口查询企业开通的Geo, 请注意这里需要传入小写字母。 需要申请以下权限才能写入: 写入员工数据所在地示例值: "cn" + SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 分配给员工的席位ID列表。可通过下方接口获取到该租户的可用席位ID, 参见[获取席位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/tenant-v2/tenant-product_assign_info/query)。当在混合license模式下, 此字段为必填。 需要申请以下权限才能写入: 写入员工席位信息示例值: ["123123123"] 长度范围: `0` ~ `20` +} + +// CreateDirectoryEmployeeResp ... +type CreateDirectoryEmployeeResp struct { + EmployeeID string `json:"employee_id,omitempty"` // 员工ID 当`employee_id_type`值为 `employee_id`, 字段权限要求: 查看员工自定义 ID +} + +// createDirectoryEmployeeResp ... +type createDirectoryEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_delete.go b/api_directory_employee_delete.go new file mode 100644 index 00000000..4c429ba0 --- /dev/null +++ b/api_directory_employee_delete.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteDirectoryEmployee 本接口用于离职员工。 +// +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 只能在当前应用的通讯录授权范围内离职员工。 +// - 若员工归属于多个部门, 应用需要有员工所有所属部门的权限, 才能离职成功。 +// - 使用user_access_token 时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可离职员工时, 管理员管理范围取最大集。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/delete +// new doc: https://open.feishu.cn/document/directory-v1/employee/delete +func (r *DirectoryService) DeleteDirectoryEmployee(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) { + if r.cli.mock.mockDirectoryDeleteDirectoryEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#DeleteDirectoryEmployee mock enable") + return r.cli.mock.mockDirectoryDeleteDirectoryEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "DeleteDirectoryEmployee", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/:employee_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteDirectoryEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryDeleteDirectoryEmployee mock DirectoryDeleteDirectoryEmployee method +func (r *Mock) MockDirectoryDeleteDirectoryEmployee(f func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error)) { + r.mockDirectoryDeleteDirectoryEmployee = f +} + +// UnMockDirectoryDeleteDirectoryEmployee un-mock DirectoryDeleteDirectoryEmployee method +func (r *Mock) UnMockDirectoryDeleteDirectoryEmployee() { + r.mockDirectoryDeleteDirectoryEmployee = nil +} + +// DeleteDirectoryEmployeeReq ... +type DeleteDirectoryEmployeeReq struct { + EmployeeID string `path:"employee_id" json:"-"` // 要离职的员工的ID。需要与查询参数中的employee_id_type类型保持一致示例值: "eesdasjd" + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + Options *DeleteDirectoryEmployeeReqOptions `json:"options,omitempty"` // 接口拓展选项 +} + +// DeleteDirectoryEmployeeReqOptions ... +type DeleteDirectoryEmployeeReqOptions struct { + ResignedEmployeeResourceReceiver *DeleteDirectoryEmployeeReqOptionsResignedEmployeeResourceReceiver `json:"resigned_employee_resource_receiver,omitempty"` // 离职员工的资源转移方式。 +} + +// DeleteDirectoryEmployeeReqOptionsResignedEmployeeResourceReceiver ... +type DeleteDirectoryEmployeeReqOptionsResignedEmployeeResourceReceiver struct { + DepartmentChatAcceptorEmployeeID *string `json:"department_chat_acceptor_employee_id,omitempty"` // 部门群接收者。ID值与查询参数中的employee_id_type 对应。被删除用户为部门群群主时, 转让群主给指定接收者, 不指定接收者则默认转让给群内第一个入群的人。示例值: "ou_7dab8a3d3cdcc9da365777c7ad535d62" + ExternalChatAcceptorEmployeeID *string `json:"external_chat_acceptor_employee_id,omitempty"` // 外部群接收者。ID值与查询参数中的employee_id_type 对应。被删除用户为外部群群主时, 转让群主给指定接收者, 不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人, 如果组织内只有该用户在群里, 则解散外部群。示例值: "eehsdna" + DocsAcceptorEmployeeID *string `json:"docs_acceptor_employee_id,omitempty"` // 文档接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的文档转让给接收者。不指定接收者则将文档资源保留在该用户名下。示例值: "eehsdna" + CalendarAcceptorEmployeeID *string `json:"calendar_acceptor_employee_id,omitempty"` // 日程接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的日程转让给接收者。不指定接收者则将日程资源保留在该用户名下。示例值: "eehsdna" + ApplicationAcceptorEmployeeID *string `json:"application_acceptor_employee_id,omitempty"` // 应用接受者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其创建的应用转让给接收者, 不指定接收者则保留应用在该用户名下, 但该用户无法登录开发者后台进行应用管理, 管理员可以在管理后台手动转移应用给其他人。示例值: "eehsdna" + HelpdeskAcceptorEmployeeID *string `json:"helpdesk_acceptor_employee_id,omitempty"` // 服务台资源接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的服务台资源转让给接收者, 不指定接收者时保留服务台资源在该用户名下。示例值: "eehsdna" + ApprovalAcceptorEmployeeID *string `json:"approval_acceptor_employee_id,omitempty"` // 审批资源接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的审批资源转让给接收者, 不指定接收者时保留审批资源在该用户名下。示例值: "eehsdna" + EmailAcceptorEmployeeID *string `json:"email_acceptor_employee_id,omitempty"` // 用户邮件资源接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的邮件资源转让给接收者, 不指定接受者则保留邮件资源在该用户名下。示例值: "eehsdna" + MinutesAcceptorEmployeeID *string `json:"minutes_acceptor_employee_id,omitempty"` // 妙记接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的妙记资源转让给接收者。如果不指定接收者则将妙记保留在该用户名下。示例值: "eehsdna" + SurveyAcceptorEmployeeID *string `json:"survey_acceptor_employee_id,omitempty"` // 飞书问卷接收者。ID值与查询参数中的employee_id_type 对应。用户被删除时, 其拥有的飞书问卷资源转让给接收者, 不指定接收者则直接删除飞书问卷资源。示例值: "eehsdna" + AnycrossAcceptorEmployeeID *string `json:"anycross_acceptor_employee_id,omitempty"` // 集成平台资源Owner示例值: "eehsdna" +} + +// DeleteDirectoryEmployeeResp ... +type DeleteDirectoryEmployeeResp struct { +} + +// deleteDirectoryEmployeeResp ... +type deleteDirectoryEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteDirectoryEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_filter.go b/api_directory_employee_filter.go new file mode 100644 index 00000000..fff4e41e --- /dev/null +++ b/api_directory_employee_filter.go @@ -0,0 +1,430 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryEmployeeFilter 本接口用于依据指定条件, 批量获取符合条件的员工详情列表。 +// +// 员工指飞书企业内身份为「Employee」的成员, 等同于通讯录OpenAPI中的「User」 +// 注意: +// - 本接口支持tenant_access_token和user_access_token +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。可通过[获取应用通讯录权限范围配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application/contacts_range_configuration)确定应用的通讯录权限范围。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看员工信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter +// new doc: https://open.feishu.cn/document/directory-v1/employee/filter +func (r *DirectoryService) CreateDirectoryEmployeeFilter(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryEmployeeFilter != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryEmployeeFilter mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryEmployeeFilter(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryEmployeeFilter", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/filter", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryEmployeeFilterResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryEmployeeFilter mock DirectoryCreateDirectoryEmployeeFilter method +func (r *Mock) MockDirectoryCreateDirectoryEmployeeFilter(f func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error)) { + r.mockDirectoryCreateDirectoryEmployeeFilter = f +} + +// UnMockDirectoryCreateDirectoryEmployeeFilter un-mock DirectoryCreateDirectoryEmployeeFilter method +func (r *Mock) UnMockDirectoryCreateDirectoryEmployeeFilter() { + r.mockDirectoryCreateDirectoryEmployeeFilter = nil +} + +// CreateDirectoryEmployeeFilterReq ... +type CreateDirectoryEmployeeFilterReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。默认值: `open_department_id` + Filter *CreateDirectoryEmployeeFilterReqFilter `json:"filter,omitempty"` // 查询条件[了解更多: 查询条件用法](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/filter-usage) + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段。[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["base_info.gender"] 长度范围: `0` ~ `100` + PageRequest *CreateDirectoryEmployeeFilterReqPageRequest `json:"page_request,omitempty"` // 分页参数 +} + +// CreateDirectoryEmployeeFilterReqFilter ... +type CreateDirectoryEmployeeFilterReqFilter struct { + Conditions []*CreateDirectoryEmployeeFilterReqFilterCondition `json:"conditions,omitempty"` // 比较表达式列表, 内容如 base_info.mobile eq `"\"+8613000000001\""`的比较条件, 多个表达式之间的关系为且。 长度范围: `0` ~ `10` +} + +// CreateDirectoryEmployeeFilterReqFilterCondition ... +type CreateDirectoryEmployeeFilterReqFilterCondition struct { + Field string `json:"field,omitempty"` // 筛选条件的左值, 值为字段的参数名称。可选的筛选条件有: base_info.mobile- base_info.email- base_info.departments.department_id和work_info.staff_status(需同时指定)- work_info.job_number示例值: "base_info.mobile" + Operator string `json:"operator,omitempty"` // 比较操作符。可选值有: eq: 等于, 支持任何类型的左值- in: 属于任一各个字段支持的操作符可能不同, 具体见[了解更多: 查询条件用法](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/filter-usage)示例值: "eq" + Value string `json:"value,omitempty"` // 筛选条件的右值, 为转义后的json字符串。 - eq匹配字符串, 使用 `"\"str\""`- in匹配字符串列表, 使用 `"[\"str\"]"`- eq匹配数字, 使用 `"123"`- in匹配数字列表, 使用 `"[123]"`示例值: "`\"8619922333322\"`" +} + +// CreateDirectoryEmployeeFilterReqPageRequest ... +type CreateDirectoryEmployeeFilterReqPageRequest struct { + PageSize *int64 `json:"page_size,omitempty"` // 本次请求条数, 最小0条, 最大100条示例值: 10 + PageToken *string `json:"page_token,omitempty"` // 顺序分页查询, 不能跳页查询, 支持深分页, 在需要遍历全部数据的场景只能使用该方式。第一次传空字符串或者不传, 后面传上一次的返回值中的page_token示例值: "\r" +} + +// CreateDirectoryEmployeeFilterResp ... +type CreateDirectoryEmployeeFilterResp struct { + Employees []*CreateDirectoryEmployeeFilterRespEmployee `json:"employees,omitempty"` // 员工信息 + PageResponse *CreateDirectoryEmployeeFilterRespPageResponse `json:"page_response,omitempty"` // 分页结果 + Abnormals []*CreateDirectoryEmployeeFilterRespAbnormal `json:"abnormals,omitempty"` // 异常信息 +} + +// CreateDirectoryEmployeeFilterRespAbnormal ... +type CreateDirectoryEmployeeFilterRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常用户不存在字段不存在 +} + +// CreateDirectoryEmployeeFilterRespEmployee ... +type CreateDirectoryEmployeeFilterRespEmployee struct { + BaseInfo *CreateDirectoryEmployeeFilterRespEmployeeBaseInfo `json:"base_info,omitempty"` // 员工基础信息 + WorkInfo *CreateDirectoryEmployeeFilterRespEmployeeWorkInfo `json:"work_info,omitempty"` // 员工工作信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfo ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfo struct { + EmployeeID string `json:"employee_id,omitempty"` // 企业内在职员工的唯一标识 `employee_id_type`为`open_id`或者`union_id`时无需权限, 使用`employee_id`类型时, 权限要求如下 字段权限要求: 查看员工自定义 ID + Name *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoName `json:"name,omitempty"` // 姓名 + Mobile string `json:"mobile,omitempty"` // 员工的手机号字段权限要求: 查看员工手机号 + Email string `json:"email,omitempty"` // 员工在工作中的邮箱字段权限要求: 查看员工工作邮箱 + EnterpriseEmail string `json:"enterprise_email,omitempty"` // 员工的企业邮箱字段权限要求: 查看员工企业邮箱 + Gender int64 `json:"gender,omitempty"` // 性别可选值有: 未知男女其他字段权限要求: 查看员工性别 + Departments []string `json:"departments,omitempty"` // 员工所属的部门信息。一个员工可属于多个部门, 排在第一个的为主部门字段权限要求: 查看员工所属部门信息 + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 用户在部门内的排序信息, 第一个部门为主部门字段权限要求(满足任一): 查看员工所属部门信息查看员工在部门内的排序 + Description string `json:"description,omitempty"` // 个人签名字段权限要求(满足任一): 查看员工个人基本信息查看员工的个性签名 + ActiveStatus int64 `json:"active_status,omitempty"` // 用户活跃状态可选值有: 未激活激活冻结主动退出未加入字段权限要求(满足任一): 查看员工账号活跃状态查看员工状态信息 + IsResigned bool `json:"is_resigned,omitempty"` // 是否离职字段权限要求(满足任一): 查看员工离职状态查看员工状态信息 + LeaderID string `json:"leader_id,omitempty"` // 直属上级ID字段权限要求(满足任一): 查看员工上级信息查看员工直属上级 ID + DottedLineLeaderIDs []string `json:"dotted_line_leader_ids,omitempty"` // 虚线上级ID字段权限要求(满足任一): 查看员工虚线上级 ID查看员工上级信息 + IsPrimaryAdmin bool `json:"is_primary_admin,omitempty"` // 是否租户超级管理员字段权限要求(满足任一): 查看员工是否是超级管理员查看员工角色信息 + EnterpriseEmailAliases []string `json:"enterprise_email_aliases,omitempty"` // 员工的企业邮箱别名。当成员希望针对不同人使用不同的邮箱地址进行邮件往来时, 可为其企业邮箱添加别名。添加后, 成员可使用别名发送邮件, 也可接受发送至别名的邮件字段权限要求(满足任一): 查看员工企业邮箱查看员工的企业邮箱别名 + CustomFieldValues []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段值字段权限要求: 查看员工自定义字段值 + DepartmentPathInfos [][]interface{} `json:"department_path_infos,omitempty"` // 全部直属部门对应的全路径。排列顺序为根部门到末级部门 对应结构``` json[ /*所属部门A相关部门路径*/ [ {/*根部门*/}, {/*A的父部门*/}, { "department_id": "abcdefg", "i18n_text": { "default_value": "A", "i18n_value": { "zh_cn": "A cn name", "en_us": "A en name" } } } ]]```字段权限要求: 查看员工部门路径 + ResignTime string `json:"resign_time,omitempty"` // 离职时间。离职操作的时间, 系统自动生成, 无法写入。日期格式: YYYY-MM-DD字段权限要求: 查看员工离职时间 + Avatar *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoAvatar `json:"avatar,omitempty"` // 员工的头像url字段权限要求(满足任一): 查看员工的头像查看员工个人基本信息 + BackgroundImage string `json:"background_image,omitempty"` // 自定义背景图 url字段权限要求(满足任一): 查看员工的名片页自定义背景图查看员工个人基本信息 + IsAdmin bool `json:"is_admin,omitempty"` // 是否租户普通管理员字段权限要求(满足任一): 查看员工是否是普通管理员查看员工角色信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看员工个人基本信息查看员工数据来源 + GeoName string `json:"geo_name,omitempty"` // 员工数据驻留地字段权限要求(满足任一): 查看员工个人基本信息查看员工数据驻留地 + SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 分配给员工的席位ID列表。字段权限要求(满足任一): 查看员工个人基本信息查看员工席位信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoAvatar ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueEnumValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValuePhoneValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueTextValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValue struct { + LinkText *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValueLinkText ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueUserValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartment ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员与子部门计数字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息。排列顺序为根部门到末级部门。字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue struct { + LinkText *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentCount ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader) + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfo ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID + DepartmentName *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // 部门名称 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentLeader ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentName ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoEmployeeOrderInDepartment ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoEmployeeOrderInDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门id + OrderWeightInDeparment string `json:"order_weight_in_deparment,omitempty"` // 用户在部门内的排序权重 + OrderWeightAmongDeparments string `json:"order_weight_among_deparments,omitempty"` // 用户多个部门间的排序权重 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoName ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoName struct { + Name *CreateDirectoryEmployeeFilterRespEmployeeBaseInfoNameName `json:"name,omitempty"` // 员工的姓名字段权限要求(满足任一): 查看员工个人基本信息查看员工的姓名 + AnotherName string `json:"another_name,omitempty"` // 别名字段权限要求(满足任一): 查看员工个人基本信息查看员工的别名 +} + +// CreateDirectoryEmployeeFilterRespEmployeeBaseInfoNameName ... +type CreateDirectoryEmployeeFilterRespEmployeeBaseInfoNameName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfo ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfo struct { + WorkCountryOrRegion string `json:"work_country_or_region,omitempty"` // 工作地国家/地区 [如何查询国家/地区的编码含义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_country_region/get)字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作国家/地区 + WorkPlace *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlace `json:"work_place,omitempty"` // 工作地点字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作地点 + WorkStation *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkStation `json:"work_station,omitempty"` // 工位字段权限要求(满足任一): 查看员工基础工作信息查看员工的工位 + JobNumber string `json:"job_number,omitempty"` // 工号字段权限要求(满足任一): 查看员工基础工作信息查看员工的工号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号字段权限要求(满足任一): 查看员工基础工作信息查看员工的分机号 + JoinDate string `json:"join_date,omitempty"` // 入职日期。如“2007-03-20”字段权限要求(满足任一): 查看员工的入职日期查看员工雇佣信息 + EmploymentType int64 `json:"employment_type,omitempty"` // 员工类型字段权限要求(满足任一): 查看员工的员工类型查看员工雇佣信息 + StaffStatus int64 `json:"staff_status,omitempty"` // 员工人事状态可选值有: 在职离职待入职取消入职待离职字段权限要求(满足任一): 查看员工的人事状态查看员工雇佣信息 + JobTitle *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitle `json:"job_title,omitempty"` // 职务字段权限要求: 查看员工职务信息 + JobLevel *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevel `json:"job_level,omitempty"` // 职级字段权限要求: 查看员工的职级 + JobFamily *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamily `json:"job_family,omitempty"` // 序列字段权限要求: 查看员工的序列 + ResignDate string `json:"resign_date,omitempty"` // 离职日期 2007-03-20字段权限要求(满足任一): 查看员工离职日期查看员工雇佣信息 + ResignReason string `json:"resign_reason,omitempty"` // 离职原因 示例值: "1"可选值有: 薪酬不符合预期工作时间过长不满意工作内容不认可上级或管理层职业发展机会有限对公司文化缺乏认同组织架构调整(主动离职)合同到期跳槽转行家庭原因健康状况不佳工作地点原因其他(主动离职)意外身故解雇试用期不通过工作表现不佳工作产出低组织架构调整(被动离职)违纪违法其他(被动离职)其他(其他)字段权限要求(满足任一): 查看员工离职原因查看员工雇佣信息 + ResignRemark string `json:"resign_remark,omitempty"` // 离职备注字段权限要求(满足任一): 查看员工离职备注查看员工雇佣信息 + ResignType string `json:"resign_type,omitempty"` // 离职类型 示例值: "1"可选值有: 主动被动其他字段权限要求(满足任一): 查看员工离职类型查看员工雇佣信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamily ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamily struct { + JobFamilyID string `json:"job_family_id,omitempty"` // 序列ID + JobFamilyName *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyJobFamilyName `json:"job_family_name,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看企业中工作序列的状态信息 + ParentJobFamilyID string `json:"parent_job_family_id,omitempty"` // 上级序列字段权限要求: 查看工作序列的路径信息 + Description *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyDescription `json:"description,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyDescription ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyJobFamilyName ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobFamilyJobFamilyName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevel ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevel struct { + JobLevelID string `json:"job_level_id,omitempty"` // ID + JobLevelName *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelJobLevelName `json:"job_level_name,omitempty"` // i18n文本字段权限要求: 101098 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 101099 + IsDeleted bool `json:"is_deleted,omitempty"` // 是否删除字段权限要求: 101099 + Order string `json:"order,omitempty"` // 排序, 小的在前面字段权限要求: 101100 + Description *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelDescription `json:"description,omitempty"` // i18n文本字段权限要求: 101098 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelDescription ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelJobLevelName ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobLevelJobLevelName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitle ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitle struct { + JobTitleID string `json:"job_title_id,omitempty"` // ID, 不存在时默认返回"0" + JobTitleName *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleJobTitleName `json:"job_title_name,omitempty"` // 职务名称字段权限要求: 查看职务基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看职务状态 + Description *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleDescription `json:"description,omitempty"` // 描述字段权限要求: 查看职务基础信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleDescription ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleJobTitleName ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoJobTitleJobTitleName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlace ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlace struct { + PlaceID string `json:"place_id,omitempty"` // ID, 不存在时默认返回"0" + PlaceName *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlacePlaceName `json:"place_name,omitempty"` // 工作地点名称字段权限要求: 查看地点基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看地点状态 + Description *CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlaceDescription `json:"description,omitempty"` // 描述字段权限要求: 查看地点基础信息 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlaceDescription ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlaceDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlacePlaceName ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkPlacePlaceName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkStation ... +type CreateDirectoryEmployeeFilterRespEmployeeWorkInfoWorkStation struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// CreateDirectoryEmployeeFilterRespPageResponse ... +type CreateDirectoryEmployeeFilterRespPageResponse struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有后续结果, 如果has_more为true, 代表还有数据没有完全返回, 需要使用响应结果中的page_token, 并再次请求才能取得剩下的数据。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// createDirectoryEmployeeFilterResp ... +type createDirectoryEmployeeFilterResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryEmployeeFilterResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_mget.go b/api_directory_employee_mget.go new file mode 100644 index 00000000..a6c6018f --- /dev/null +++ b/api_directory_employee_mget.go @@ -0,0 +1,404 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// MGetDirectoryEmployee 本接口用于批量根据员工的ID查询员工的详情, 比如员工姓名, 手机号, 邮箱, 部门等信息。 +// +// 员工指飞书企业内身份为「Employee」的成员, 等同于通讯录OpenAPI中的「User」 +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。可通过[获取应用通讯录权限范围配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application/contacts_range_configuration)确定应用的通讯录权限范围。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看员工信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/mget +// new doc: https://open.feishu.cn/document/directory-v1/employee/mget +func (r *DirectoryService) MGetDirectoryEmployee(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) { + if r.cli.mock.mockDirectoryMGetDirectoryEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#MGetDirectoryEmployee mock enable") + return r.cli.mock.mockDirectoryMGetDirectoryEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "MGetDirectoryEmployee", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/mget", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(mGetDirectoryEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryMGetDirectoryEmployee mock DirectoryMGetDirectoryEmployee method +func (r *Mock) MockDirectoryMGetDirectoryEmployee(f func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error)) { + r.mockDirectoryMGetDirectoryEmployee = f +} + +// UnMockDirectoryMGetDirectoryEmployee un-mock DirectoryMGetDirectoryEmployee method +func (r *Mock) UnMockDirectoryMGetDirectoryEmployee() { + r.mockDirectoryMGetDirectoryEmployee = nil +} + +// MGetDirectoryEmployeeReq ... +type MGetDirectoryEmployeeReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。 + EmployeeIDs string `json:"employee_ids,omitempty"` // 员工ID, 与employee_id_type类型保持一致示例值: ["eefg22jdi"] 长度范围: `1` ~ `100` + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段。[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["base_info.mobile"] 长度范围: `0` ~ `100` +} + +// MGetDirectoryEmployeeResp ... +type MGetDirectoryEmployeeResp struct { + Employees []*MGetDirectoryEmployeeRespEmployee `json:"employees,omitempty"` // 员工信息 + Abnormals []*MGetDirectoryEmployeeRespAbnormal `json:"abnormals,omitempty"` // 字段异常信息 +} + +// MGetDirectoryEmployeeRespAbnormal ... +type MGetDirectoryEmployeeRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常用户不存在字段不存在 +} + +// MGetDirectoryEmployeeRespEmployee ... +type MGetDirectoryEmployeeRespEmployee struct { + BaseInfo *MGetDirectoryEmployeeRespEmployeeBaseInfo `json:"base_info,omitempty"` // 员工基础信息 + WorkInfo *MGetDirectoryEmployeeRespEmployeeWorkInfo `json:"work_info,omitempty"` // 员工工作信息 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfo ... +type MGetDirectoryEmployeeRespEmployeeBaseInfo struct { + EmployeeID string `json:"employee_id,omitempty"` // 企业内在职员工的唯一标识, 与employee_id_type类型保持一致。 `employee_id_type`为`open_id`或者`union_id`时无需权限, 使用`employee_id`类型时, 权限要求如下 字段权限要求: 查看员工自定义 ID + Name *MGetDirectoryEmployeeRespEmployeeBaseInfoName `json:"name,omitempty"` // 姓名 + Mobile string `json:"mobile,omitempty"` // 员工的手机号。注意: 1. 在企业内的在职员工中不可重复。2. 未认证企业仅支持添加中国大陆手机号, 通过飞书认证的企业允许添加海外手机号。3. 国际电话区号前缀中必须包含加号 +。字段权限要求: 查看员工手机号 + Email string `json:"email,omitempty"` // 员工在工作中的邮箱。注意: 1. 在企业内的在职员工中不可重复。2. 非中国大陆手机号成员必须同时添加邮箱。字段权限要求: 查看员工工作邮箱 + EnterpriseEmail string `json:"enterprise_email,omitempty"` // 企业邮箱字段权限要求: 查看员工企业邮箱 + Gender int64 `json:"gender,omitempty"` // 性别可选值有: 未知男女其他字段权限要求: 查看员工性别 + Departments []string `json:"departments,omitempty"` // 员工所属的部门信息。一个员工可属于多个部门, 排在第一个的为主部门字段权限要求: 查看员工所属部门信息 + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 用户在部门内的排序信息, 第一个部门为主部门字段权限要求(满足任一): 查看员工所属部门信息查看员工在部门内的排序 + Description string `json:"description,omitempty"` // 个人签名字段权限要求(满足任一): 查看员工个人基本信息查看员工的个性签名 + ActiveStatus int64 `json:"active_status,omitempty"` // 员工的账号活跃状态可选值有: 未激活激活冻结主动退出未加入字段权限要求(满足任一): 查看员工账号活跃状态查看员工状态信息 + IsResigned bool `json:"is_resigned,omitempty"` // 是否离职字段权限要求(满足任一): 查看员工离职状态查看员工状态信息 + LeaderID string `json:"leader_id,omitempty"` // 员工的直属上级ID, 与employee_id_type类型保持一致字段权限要求(满足任一): 查看员工上级信息查看员工直属上级 ID + DottedLineLeaderIDs []string `json:"dotted_line_leader_ids,omitempty"` // 员工的虚线上级ID, 与employee_id_type类型保持一致字段权限要求(满足任一): 查看员工虚线上级 ID查看员工上级信息 + IsPrimaryAdmin bool `json:"is_primary_admin,omitempty"` // 是否租户超级管理员字段权限要求(满足任一): 查看员工是否是超级管理员查看员工角色信息 + EnterpriseEmailAliases []string `json:"enterprise_email_aliases,omitempty"` // 员工的企业邮箱别名。当成员希望针对不同人使用不同的邮箱地址进行邮件往来时, 可为其企业邮箱添加别名。添加后, 成员可使用别名发送邮件, 也可接受发送至别名的邮件。字段权限要求(满足任一): 查看员工企业邮箱查看员工的企业邮箱别名 + CustomFieldValues []*MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段值字段权限要求: 查看员工自定义字段值 + DepartmentPathInfos [][]interface{} `json:"department_path_infos,omitempty"` // 全部直属部门对应的全路径。排列顺序为根部门到末级部门 对应结构``` json[ /*所属部门A相关部门路径*/ [ {/*根部门*/}, {/*A的父部门*/}, { "department_id": "abcdefg", "i18n_text": { "default_value": "A", "i18n_value": { "zh_cn": "A cn name", "en_us": "A en name" } } } ]]```字段权限要求: 查看员工部门路径 + ResignTime string `json:"resign_time,omitempty"` // 离职时间。离职操作的时间, 系统自动生成, 无法写入。格式为YYYY-MM-DD。字段权限要求: 查看员工离职时间 + Avatar *MGetDirectoryEmployeeRespEmployeeBaseInfoAvatar `json:"avatar,omitempty"` // 员工的头像url字段权限要求(满足任一): 查看员工的头像查看员工个人基本信息 + BackgroundImage string `json:"background_image,omitempty"` // 员工的自定义背景图url字段权限要求(满足任一): 查看员工的名片页自定义背景图查看员工个人基本信息 + IsAdmin bool `json:"is_admin,omitempty"` // 是否租户普通管理员字段权限要求(满足任一): 查看员工是否是普通管理员查看员工角色信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看员工个人基本信息查看员工数据来源 + GeoName string `json:"geo_name,omitempty"` // 员工数据驻留地字段权限要求(满足任一): 查看员工个人基本信息查看员工数据驻留地 + SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 分配给员工的席位ID列表。字段权限要求(满足任一): 查看员工个人基本信息查看员工席位信息 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoAvatar ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue struct { + LinkText *MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartment ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员与子部门计数字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重示例值: "100"字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息, 排列顺序为根部门到末级部门字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue struct { + LinkText *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader) + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致 + DepartmentName *MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // 部门名称 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentName ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoEmployeeOrderInDepartment ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoEmployeeOrderInDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门id, 与department_id_type类型保持一致 + OrderWeightInDeparment string `json:"order_weight_in_deparment,omitempty"` // 用户在部门内的排序权重示例值: "80" + OrderWeightAmongDeparments string `json:"order_weight_among_deparments,omitempty"` // 用户多个部门间的排序权重示例值: "20" +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoName ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoName struct { + Name *MGetDirectoryEmployeeRespEmployeeBaseInfoNameName `json:"name,omitempty"` // 员工的姓名字段权限要求(满足任一): 查看员工个人基本信息查看员工的姓名 + AnotherName string `json:"another_name,omitempty"` // 别名字段权限要求(满足任一): 查看员工个人基本信息查看员工的别名 +} + +// MGetDirectoryEmployeeRespEmployeeBaseInfoNameName ... +type MGetDirectoryEmployeeRespEmployeeBaseInfoNameName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfo ... +type MGetDirectoryEmployeeRespEmployeeWorkInfo struct { + WorkCountryOrRegion string `json:"work_country_or_region,omitempty"` // 工作地国家/地区 [如何查询国家/地区的编码含义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_country_region/get)字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作国家/地区 + WorkPlace *MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlace `json:"work_place,omitempty"` // 工作地点字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作地点 + WorkStation *MGetDirectoryEmployeeRespEmployeeWorkInfoWorkStation `json:"work_station,omitempty"` // 工位字段权限要求(满足任一): 查看员工基础工作信息查看员工的工位 + JobNumber string `json:"job_number,omitempty"` // 工号字段权限要求(满足任一): 查看员工基础工作信息查看员工的工号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号字段权限要求(满足任一): 查看员工基础工作信息查看员工的分机号 + JoinDate string `json:"join_date,omitempty"` // 入职日期。如“2007-03-20”字段权限要求(满足任一): 查看员工的入职日期查看员工雇佣信息 + EmploymentType int64 `json:"employment_type,omitempty"` // 员工类型字段权限要求(满足任一): 查看员工的员工类型查看员工雇佣信息 + StaffStatus int64 `json:"staff_status,omitempty"` // 员工人事状态可选值有: 在职离职待入职取消入职待离职字段权限要求(满足任一): 查看员工的人事状态查看员工雇佣信息 + JobTitle *MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitle `json:"job_title,omitempty"` // 职务字段权限要求: 查看员工职务信息 + JobLevel *MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevel `json:"job_level,omitempty"` // 职级字段权限要求: 查看员工的职级 + JobFamily *MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamily `json:"job_family,omitempty"` // 序列字段权限要求: 查看员工的序列 + ResignDate string `json:"resign_date,omitempty"` // 离职日期 2007-03-20字段权限要求(满足任一): 查看员工离职日期查看员工雇佣信息 + ResignReason string `json:"resign_reason,omitempty"` // 离职原因 示例值: "1"可选值有: 薪酬不符合预期工作时间过长不满意工作内容不认可上级或管理层职业发展机会有限对公司文化缺乏认同组织架构调整(主动离职)合同到期跳槽转行家庭原因健康状况不佳工作地点原因其他(主动离职)意外身故解雇试用期不通过工作表现不佳工作产出低组织架构调整(被动离职)违纪违法其他(被动离职)其他(其他)字段权限要求(满足任一): 查看员工离职原因查看员工雇佣信息 + ResignRemark string `json:"resign_remark,omitempty"` // 离职备注字段权限要求(满足任一): 查看员工离职备注查看员工雇佣信息 + ResignType string `json:"resign_type,omitempty"` // 离职类型 示例值: "1"可选值有: 主动被动其他字段权限要求(满足任一): 查看员工离职类型查看员工雇佣信息 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamily ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamily struct { + JobFamilyID string `json:"job_family_id,omitempty"` // ID, 不存在时默认返回"0" + JobFamilyName *MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName `json:"job_family_name,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看企业中工作序列的状态信息 + ParentJobFamilyID string `json:"parent_job_family_id,omitempty"` // 上级序列字段权限要求: 查看工作序列的路径信息 + Description *MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription `json:"description,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevel ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevel struct { + JobLevelID string `json:"job_level_id,omitempty"` // ID + JobLevelName *MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName `json:"job_level_name,omitempty"` // i18n文本字段权限要求: 101098 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 101099 + IsDeleted bool `json:"is_deleted,omitempty"` // 是否删除字段权限要求: 101099 + Order string `json:"order,omitempty"` // 排序, 小的在前面字段权限要求: 101100 + Description *MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription `json:"description,omitempty"` // i18n文本字段权限要求: 101098 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitle ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitle struct { + JobTitleID string `json:"job_title_id,omitempty"` // ID, 不存在时默认返回"0" + JobTitleName *MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName `json:"job_title_name,omitempty"` // 职务名称字段权限要求: 查看职务基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看职务状态 + Description *MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription `json:"description,omitempty"` // 描述字段权限要求: 查看职务基础信息 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlace ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlace struct { + PlaceID string `json:"place_id,omitempty"` // ID, 不存在时默认返回"0" + PlaceName *MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName `json:"place_name,omitempty"` // 工作地点的名称字段权限要求: 查看地点基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看地点状态 + Description *MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription `json:"description,omitempty"` // 描述字段权限要求: 查看地点基础信息 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// MGetDirectoryEmployeeRespEmployeeWorkInfoWorkStation ... +type MGetDirectoryEmployeeRespEmployeeWorkInfoWorkStation struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// mGetDirectoryEmployeeResp ... +type mGetDirectoryEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *MGetDirectoryEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_regular.go b/api_directory_employee_regular.go new file mode 100644 index 00000000..5b34e242 --- /dev/null +++ b/api_directory_employee_regular.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateDirectoryEmployeeRegular 本接口用于为待离职员工取消离职, 将其更新为「在职」状态。取消离职时会清空离职信息。 +// +// 使用user_access_token时默认为管理员用户, 仅可操作「人事管理模式」的管理员可操作。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/regular +// new doc: https://open.feishu.cn/document/directory-v1/employee/regular +func (r *DirectoryService) UpdateDirectoryEmployeeRegular(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) { + if r.cli.mock.mockDirectoryUpdateDirectoryEmployeeRegular != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#UpdateDirectoryEmployeeRegular mock enable") + return r.cli.mock.mockDirectoryUpdateDirectoryEmployeeRegular(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "UpdateDirectoryEmployeeRegular", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/:employee_id/regular", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateDirectoryEmployeeRegularResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryUpdateDirectoryEmployeeRegular mock DirectoryUpdateDirectoryEmployeeRegular method +func (r *Mock) MockDirectoryUpdateDirectoryEmployeeRegular(f func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error)) { + r.mockDirectoryUpdateDirectoryEmployeeRegular = f +} + +// UnMockDirectoryUpdateDirectoryEmployeeRegular un-mock DirectoryUpdateDirectoryEmployeeRegular method +func (r *Mock) UnMockDirectoryUpdateDirectoryEmployeeRegular() { + r.mockDirectoryUpdateDirectoryEmployeeRegular = nil +} + +// UpdateDirectoryEmployeeRegularReq ... +type UpdateDirectoryEmployeeRegularReq struct { + EmployeeID string `path:"employee_id" json:"-"` // 员工ID, 与employee_id_type类型保持一致示例值: "d2e1jas" 长度范围: `1` ~ `255` 字符 + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 部门ID类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。默认值: `open_department_id` +} + +// UpdateDirectoryEmployeeRegularResp ... +type UpdateDirectoryEmployeeRegularResp struct { +} + +// updateDirectoryEmployeeRegularResp ... +type updateDirectoryEmployeeRegularResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateDirectoryEmployeeRegularResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_resurrect.go b/api_directory_employee_resurrect.go new file mode 100644 index 00000000..880dd6cc --- /dev/null +++ b/api_directory_employee_resurrect.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDirectoryEmployeeResurrect 该接口用于恢复已离职的成员, 恢复已离职成员至在职状态。 +// +// 注意: +// - 恢复离职员工为在职, 需要企业的版本在商业专业版及以上, 可通过管理后台>设置>版本信息查看企业当前版本, 且员工需要在离职 30 天内。恢复后, 部分用户数据仍不可恢复, 请谨慎调用。 +// - 待恢复成员的用户 ID 不能被企业内其他成员使用, 可通过[批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter)接口查询用户ID是否存在。如有重复, 请先离职对应的成员, 否则接口会报错。 +// - 待恢复成员的手机号和邮箱不能被企业内其他成员使用, 可通过[批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter)接口查询手机号/邮箱是否存在。如有重复, 请先修改对应成员的信息, 否则接口会报错。 +// - 本接口支持tenant_access_token和user_access_token, 两种token的获取方式可参照[获取访问凭证](https://open.feishu.cn/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM)。 +// - 使用tenant_access_token时, 只能在将离职员工恢复到当前应用通讯录授权范围内的部门之下。 +// - 使用user_access_token 时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可恢复离职员工时, 管理员管理范围取最大集。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/resurrect +// new doc: https://open.feishu.cn/document/directory-v1/employee/resurrect +func (r *DirectoryService) CreateDirectoryEmployeeResurrect(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) { + if r.cli.mock.mockDirectoryCreateDirectoryEmployeeResurrect != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#CreateDirectoryEmployeeResurrect mock enable") + return r.cli.mock.mockDirectoryCreateDirectoryEmployeeResurrect(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "CreateDirectoryEmployeeResurrect", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/:employee_id/resurrect", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDirectoryEmployeeResurrectResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryCreateDirectoryEmployeeResurrect mock DirectoryCreateDirectoryEmployeeResurrect method +func (r *Mock) MockDirectoryCreateDirectoryEmployeeResurrect(f func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error)) { + r.mockDirectoryCreateDirectoryEmployeeResurrect = f +} + +// UnMockDirectoryCreateDirectoryEmployeeResurrect un-mock DirectoryCreateDirectoryEmployeeResurrect method +func (r *Mock) UnMockDirectoryCreateDirectoryEmployeeResurrect() { + r.mockDirectoryCreateDirectoryEmployeeResurrect = nil +} + +// CreateDirectoryEmployeeResurrectReq ... +type CreateDirectoryEmployeeResurrectReq struct { + EmployeeID string `path:"employee_id" json:"-"` // 员工ID, 与employee_id_type类型保持一致示例值: "eedasdas" + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 部门ID类型示例值: open_department_id可选值有: department_idopen_department_id默认值: `open_department_id` + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 部门信息 长度范围: `0` ~ `10` + Options *CreateDirectoryEmployeeResurrectReqOptions `json:"options,omitempty"` // 选项 +} + +// CreateDirectoryEmployeeResurrectReqEmployeeOrderInDepartment ... +type CreateDirectoryEmployeeResurrectReqEmployeeOrderInDepartment struct { + DepartmentID *string `json:"department_id,omitempty"` // 部门id, 与department_id_type类型保持一致示例值: "easdiedqds" + OrderWeightInDeparment *string `json:"order_weight_in_deparment,omitempty"` // 用户在部门内的排序权重 长度范围: 1~ 3示例值: "100" + OrderWeightAmongDeparments *string `json:"order_weight_among_deparments,omitempty"` // 用户多个部门间的排序权重 长度范围: 1~ 3示例值: "20" + IsMainDepartment *bool `json:"is_main_department,omitempty"` // 是否为用户的主部门(用户只能有一个主部门, 且排序权重应最大, 不填则默认使用排序第一的部门作为主部门)示例值: true +} + +// CreateDirectoryEmployeeResurrectReqOptions ... +type CreateDirectoryEmployeeResurrectReqOptions struct { + SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 分配给员工的席位ID列表。可通过下方接口获取到该租户的可用席位ID, 参见[获取席位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/tenant-v2/tenant-product_assign_info/query)。当在混合license模式下, 此字段为必填。示例值: ["435456345245"] 长度范围: `0` ~ `20` +} + +// CreateDirectoryEmployeeResurrectResp ... +type CreateDirectoryEmployeeResurrectResp struct { +} + +// createDirectoryEmployeeResurrectResp ... +type createDirectoryEmployeeResurrectResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDirectoryEmployeeResurrectResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_search.go b/api_directory_employee_search.go new file mode 100644 index 00000000..3f37fdca --- /dev/null +++ b/api_directory_employee_search.go @@ -0,0 +1,419 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchDirectoryEmployee 本接口用于搜索员工信息, 如通过关键词搜索员工的名称、手机号、邮箱等信息。 +// +// 员工指飞书企业内身份为「Employee」的成员, 等同于通讯录OpenAPI中的「User」。 +// 注意: +// - 本接口支持tenant_access_token和user_access_token。 +// - 使用tenant_access_token时, 数据权限遵循应用的通讯录权限范围, 返回的字段数据为应用有权限的字段。可通过[获取应用通讯录权限范围配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/application/contacts_range_configuration)确定应用的通讯录权限范围。 +// - 使用user_access_token时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可查看员工信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 本接口无法搜索到外部企业或已离职的用户。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/search +// new doc: https://open.feishu.cn/document/directory-v1/employee/search +func (r *DirectoryService) SearchDirectoryEmployee(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) { + if r.cli.mock.mockDirectorySearchDirectoryEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#SearchDirectoryEmployee mock enable") + return r.cli.mock.mockDirectorySearchDirectoryEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "SearchDirectoryEmployee", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(searchDirectoryEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectorySearchDirectoryEmployee mock DirectorySearchDirectoryEmployee method +func (r *Mock) MockDirectorySearchDirectoryEmployee(f func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error)) { + r.mockDirectorySearchDirectoryEmployee = f +} + +// UnMockDirectorySearchDirectoryEmployee un-mock DirectorySearchDirectoryEmployee method +func (r *Mock) UnMockDirectorySearchDirectoryEmployee() { + r.mockDirectorySearchDirectoryEmployee = nil +} + +// SearchDirectoryEmployeeReq ... +type SearchDirectoryEmployeeReq struct { + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: open_department_id可选值有: 用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 不相同。用来标识租户内一个唯一的部门默认值: `open_department_id` + Query string `json:"query,omitempty"` // 搜索关键词。支持员工ID、员工名称、员工手机号、员工邮箱的搜索。其中员工ID、员工手机号支持精确搜索, 员工名称、员工邮箱支持模糊搜索, 员工名称支持国际化名称的搜索。示例值: "zhang" + PageRequest *SearchDirectoryEmployeeReqPageRequest `json:"page_request,omitempty"` // 分页信息 + RequiredFields []string `json:"required_fields,omitempty"` // 需要查询的字段列表。将按照传递的字段列表返回有权限的行、列数据。不传则不会返回任何字段[了解更多: 字段枚举说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/field-enumeration)示例值: ["base_info.name.name"] 长度范围: `0` ~ `100` +} + +// SearchDirectoryEmployeeReqPageRequest ... +type SearchDirectoryEmployeeReqPageRequest struct { + PageSize *int64 `json:"page_size,omitempty"` // 本次请求条数, 最小是0条, 最大100条默认值: 20示例值: 10 + PageToken *string `json:"page_token,omitempty"` // 顺序分页查询, 不能跳页查询, 支持深分页, 在需要遍历全部数据的场景只能使用该方式。第一次传空字符串或者不传, 后面传上一次的返回值中的page_token。示例值: "asdjiowers" +} + +// SearchDirectoryEmployeeResp ... +type SearchDirectoryEmployeeResp struct { + Employees []*SearchDirectoryEmployeeRespEmployee `json:"employees,omitempty"` // 员工信息 + PageResponse *SearchDirectoryEmployeeRespPageResponse `json:"page_response,omitempty"` // 分页结果 + Abnormals []*SearchDirectoryEmployeeRespAbnormal `json:"abnormals,omitempty"` // 字段异常信息 +} + +// SearchDirectoryEmployeeRespAbnormal ... +type SearchDirectoryEmployeeRespAbnormal struct { + ID string `json:"id,omitempty"` // 异常ID + RowError int64 `json:"row_error,omitempty"` // 行级异常可选值有: 成功没权限 + FieldErrors interface{} `json:"field_errors,omitempty"` // 列级异常, key为字段名, value为下列枚举 可选值有: 无权限服务异常用户不存在字段不存在 +} + +// SearchDirectoryEmployeeRespEmployee ... +type SearchDirectoryEmployeeRespEmployee struct { + BaseInfo *SearchDirectoryEmployeeRespEmployeeBaseInfo `json:"base_info,omitempty"` // 员工基础信息 + WorkInfo *SearchDirectoryEmployeeRespEmployeeWorkInfo `json:"work_info,omitempty"` // 员工工作信息 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfo ... +type SearchDirectoryEmployeeRespEmployeeBaseInfo struct { + EmployeeID string `json:"employee_id,omitempty"` // 企业内在职员工的唯一标识, 与employee_id_type类型保持一致。注: 如果要获取employee_id的话, 必须要在required_fields中加上对应的字段, 否则获取到的id无意义。 `employee_id_type`为`open_id`或者`union_id`时无需权限, 使用`employee_id`类型时, 权限要求如下 字段权限要求: 查看员工自定义 ID + Name *SearchDirectoryEmployeeRespEmployeeBaseInfoName `json:"name,omitempty"` // 姓名 + Mobile string `json:"mobile,omitempty"` // 员工的手机号字段权限要求: 查看员工手机号 + Email string `json:"email,omitempty"` // 员工在工作中的工作邮箱字段权限要求: 查看员工工作邮箱 + EnterpriseEmail string `json:"enterprise_email,omitempty"` // 员工的企业邮箱字段权限要求: 查看员工企业邮箱 + Gender int64 `json:"gender,omitempty"` // 性别可选值有: 未知男女其他字段权限要求: 查看员工性别 + Departments []string `json:"departments,omitempty"` // 员工所属的部门信息。一个员工可属于多个部门, 排在第一个的为主部门字段权限要求: 查看员工所属部门信息 + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 用户在部门内的排序信息, 第一个部门为主部门字段权限要求(满足任一): 查看员工所属部门信息查看员工在部门内的排序 + Description string `json:"description,omitempty"` // 个人签名字段权限要求(满足任一): 查看员工个人基本信息查看员工的个性签名 + ActiveStatus int64 `json:"active_status,omitempty"` // 用户活跃状态可选值有: 未激活激活冻结主动退出未加入字段权限要求(满足任一): 查看员工账号活跃状态查看员工状态信息 + IsResigned bool `json:"is_resigned,omitempty"` // 是否离职字段权限要求(满足任一): 查看员工离职状态查看员工状态信息 + LeaderID string `json:"leader_id,omitempty"` // 直属上级ID字段权限要求(满足任一): 查看员工上级信息查看员工直属上级 ID + DottedLineLeaderIDs []string `json:"dotted_line_leader_ids,omitempty"` // 虚线上级ID字段权限要求(满足任一): 查看员工虚线上级 ID查看员工上级信息 + IsPrimaryAdmin bool `json:"is_primary_admin,omitempty"` // 是否租户超级管理员字段权限要求(满足任一): 查看员工是否是超级管理员查看员工角色信息 + EnterpriseEmailAliases []string `json:"enterprise_email_aliases,omitempty"` // 企业邮箱别名字段权限要求(满足任一): 查看员工企业邮箱查看员工的企业邮箱别名 + CustomFieldValues []*SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段值字段权限要求: 查看员工自定义字段值 + DepartmentPathInfos [][]interface{} `json:"department_path_infos,omitempty"` // 全部直属部门对应的全路径。排列顺序为根部门到末级部门 对应结构``` json[ /*所属部门A相关部门路径*/ [ {/*根部门*/}, {/*A的父部门*/}, { "department_id": "abcdefg", "i18n_text": { "default_value": "A", "i18n_value": { "zh_cn": "A cn name", "en_us": "A en name" } } } ]]```字段权限要求: 查看员工部门路径 + ResignTime string `json:"resign_time,omitempty"` // 离职时间。离职操作的时间, 系统自动生成, 无法写入。格式为YYYY-MM-DD 字段权限要求: 查看员工离职时间 + Avatar *SearchDirectoryEmployeeRespEmployeeBaseInfoAvatar `json:"avatar,omitempty"` // 头像url字段权限要求(满足任一): 查看员工的头像查看员工个人基本信息 + BackgroundImage string `json:"background_image,omitempty"` // 自定义背景图 url字段权限要求(满足任一): 查看员工的名片页自定义背景图查看员工个人基本信息 + IsAdmin bool `json:"is_admin,omitempty"` // 是否租户普通管理员字段权限要求(满足任一): 查看员工是否是普通管理员查看员工角色信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看员工个人基本信息查看员工数据来源 + GeoName string `json:"geo_name,omitempty"` // 员工数据驻留地字段权限要求(满足任一): 查看员工个人基本信息查看员工数据驻留地 + SubscriptionIDs []string `json:"subscription_ids,omitempty"` // 分配给员工的席位ID列表。字段权限要求(满足任一): 查看员工个人基本信息查看员工席位信息 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoAvatar ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValue struct { + LinkText *SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartment ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门基础信息查看部门自定义 ID + DepartmentCount *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount `json:"department_count,omitempty"` // 部门成员与子部门计数字段权限要求(满足任一): 查看部门成员与子部门计数查看部门组织架构信息 + HasChild bool `json:"has_child,omitempty"` // 是否有子部门字段权限要求(满足任一): 查看部门是否有子部门查看部门组织架构信息 + Leaders []*SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader `json:"leaders,omitempty"` // 部门负责人字段权限要求: 查看部门负责人信息 + ParentDepartmentID string `json:"parent_department_id,omitempty"` // 父部门ID, 与department_id_type类型保持一致字段权限要求(满足任一): 查看部门组织架构信息查看部门的父部门 ID + Name *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentName `json:"name,omitempty"` // 部门名称字段权限要求(满足任一): 查看部门基础信息查看部门的名称 + EnabledStatus bool `json:"enabled_status,omitempty"` // 是否启用字段权限要求: 查看部门的停启用状态 + OrderWeight string `json:"order_weight,omitempty"` // 部门排序权重字段权限要求(满足任一): 查看部门排序权重查看部门组织架构信息 + CustomFieldValues []*SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段字段权限要求: 查看部门自定义字段信息 + DepartmentPathInfos []*SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo `json:"department_path_infos,omitempty"` // 部门路径信息。排列顺序为根部门到末级部门字段权限要求: 查看部门路径信息 + DataSource int64 `json:"data_source,omitempty"` // 数据来源可选值有: 管理后台人事企业版SCIM字段权限要求(满足任一): 查看部门基础信息查看部门数据来源 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValue struct { + FieldType string `json:"field_type,omitempty"` // 自定义字段类型可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 + PhoneValue *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey string `json:"field_key,omitempty"` // 自定义字段key +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID + EnumType string `json:"enum_type,omitempty"` // 选项类型可选值有: 文本图片 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValue struct { + LinkText *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接 + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentCount struct { + RecursiveMembersCount string `json:"recursive_members_count,omitempty"` // 递归成员数量 + DirectMembersCount string `json:"direct_members_count,omitempty"` // 直属成员数量 + RecursiveMembersCountExcludeLeaders string `json:"recursive_members_count_exclude_leaders,omitempty"` // 递归成员数量(不含leader) + RecursiveDepartmentsCount []string `json:"recursive_departments_count,omitempty"` // 递归子部门数量 + DirectDepartmentsCount []string `json:"direct_departments_count,omitempty"` // 直属子部门数量 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfo struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID + DepartmentName *SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName `json:"department_name,omitempty"` // 部门名称 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentDepartmentPathInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 部门负责人类型可选值有: 主副 + LeaderID string `json:"leader_id,omitempty"` // 部门负责人ID, 与employee_id_type类型保持一致 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentName ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoDepartmentName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoEmployeeOrderInDepartment ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoEmployeeOrderInDepartment struct { + DepartmentID string `json:"department_id,omitempty"` // 部门id + OrderWeightInDeparment string `json:"order_weight_in_deparment,omitempty"` // 用户在部门内的排序权重 + OrderWeightAmongDeparments string `json:"order_weight_among_deparments,omitempty"` // 用户多个部门间的排序权重 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoName ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoName struct { + Name *SearchDirectoryEmployeeRespEmployeeBaseInfoNameName `json:"name,omitempty"` // 员工的姓名字段权限要求(满足任一): 查看员工个人基本信息查看员工的姓名 + AnotherName string `json:"another_name,omitempty"` // 别名字段权限要求(满足任一): 查看员工个人基本信息查看员工的别名 +} + +// SearchDirectoryEmployeeRespEmployeeBaseInfoNameName ... +type SearchDirectoryEmployeeRespEmployeeBaseInfoNameName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfo ... +type SearchDirectoryEmployeeRespEmployeeWorkInfo struct { + WorkCountryOrRegion string `json:"work_country_or_region,omitempty"` // 工作地国家/地区 [如何查询国家/地区的编码含义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_country_region/get)字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作国家/地区 + WorkPlace *SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlace `json:"work_place,omitempty"` // 工作地点字段权限要求(满足任一): 查看员工基础工作信息查看员工的工作地点 + WorkStation *SearchDirectoryEmployeeRespEmployeeWorkInfoWorkStation `json:"work_station,omitempty"` // 工位字段权限要求(满足任一): 查看员工基础工作信息查看员工的工位 + JobNumber string `json:"job_number,omitempty"` // 工号字段权限要求(满足任一): 查看员工基础工作信息查看员工的工号 + ExtensionNumber string `json:"extension_number,omitempty"` // 分机号字段权限要求(满足任一): 查看员工基础工作信息查看员工的分机号 + JoinDate string `json:"join_date,omitempty"` // 入职日期。如“2007-03-20”字段权限要求(满足任一): 查看员工的入职日期查看员工雇佣信息 + EmploymentType int64 `json:"employment_type,omitempty"` // 员工类型字段权限要求(满足任一): 查看员工的员工类型查看员工雇佣信息 + StaffStatus int64 `json:"staff_status,omitempty"` // 员工人事状态可选值有: 在职离职待入职取消入职待离职字段权限要求(满足任一): 查看员工的人事状态查看员工雇佣信息 + JobTitle *SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitle `json:"job_title,omitempty"` // 职务字段权限要求: 查看员工职务信息 + JobLevel *SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevel `json:"job_level,omitempty"` // 职级字段权限要求: 查看员工的职级 + JobFamily *SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamily `json:"job_family,omitempty"` // 序列字段权限要求: 查看员工的序列 + ResignDate string `json:"resign_date,omitempty"` // 离职日期 2007-03-20字段权限要求(满足任一): 查看员工离职日期查看员工雇佣信息 + ResignReason string `json:"resign_reason,omitempty"` // 离职原因 示例值: "1"可选值有: 薪酬不符合预期工作时间过长不满意工作内容不认可上级或管理层职业发展机会有限对公司文化缺乏认同组织架构调整(主动离职)合同到期跳槽转行家庭原因健康状况不佳工作地点原因其他(主动离职)意外身故解雇试用期不通过工作表现不佳工作产出低组织架构调整(被动离职)违纪违法其他(被动离职)其他(其他)字段权限要求(满足任一): 查看员工离职原因查看员工雇佣信息 + ResignRemark string `json:"resign_remark,omitempty"` // 离职备注字段权限要求(满足任一): 查看员工离职备注查看员工雇佣信息 + ResignType string `json:"resign_type,omitempty"` // 离职类型 示例值: "1"可选值有: 主动被动其他字段权限要求(满足任一): 查看员工离职类型查看员工雇佣信息 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamily ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamily struct { + JobFamilyID string `json:"job_family_id,omitempty"` // 序列ID + JobFamilyName *SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName `json:"job_family_name,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看企业中工作序列的状态信息 + ParentJobFamilyID string `json:"parent_job_family_id,omitempty"` // 上级序列字段权限要求: 查看工作序列的路径信息 + Description *SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription `json:"description,omitempty"` // i18n文本字段权限要求: 查看工作序列的信息 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobFamilyJobFamilyName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevel ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevel struct { + JobLevelID string `json:"job_level_id,omitempty"` // ID + JobLevelName *SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName `json:"job_level_name,omitempty"` // i18n文本字段权限要求: 获取职级的基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 获取职级的状态信息 + IsDeleted bool `json:"is_deleted,omitempty"` // 是否删除字段权限要求: 获取职级的状态信息 + Order string `json:"order,omitempty"` // 排序, 小的在前面字段权限要求: 获取职级的排序信息 + Description *SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription `json:"description,omitempty"` // i18n文本字段权限要求: 获取职级的基础信息 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobLevelJobLevelName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitle ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitle struct { + JobTitleID string `json:"job_title_id,omitempty"` // ID, 不存在时默认返回"0" + JobTitleName *SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName `json:"job_title_name,omitempty"` // 职务名称字段权限要求: 查看职务基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看职务状态 + Description *SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription `json:"description,omitempty"` // 描述字段权限要求: 查看职务基础信息 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoJobTitleJobTitleName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlace ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlace struct { + PlaceID string `json:"place_id,omitempty"` // ID, 不存在时默认返回"0" + PlaceName *SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName `json:"place_name,omitempty"` // 工作地点名称字段权限要求: 查看地点基础信息 + IsEnabled bool `json:"is_enabled,omitempty"` // 是否启用字段权限要求: 查看地点状态 + Description *SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription `json:"description,omitempty"` // 描述字段权限要求: 查看地点基础信息 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlaceDescription struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoWorkPlacePlaceName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespEmployeeWorkInfoWorkStation ... +type SearchDirectoryEmployeeRespEmployeeWorkInfoWorkStation struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值 + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值 +} + +// SearchDirectoryEmployeeRespPageResponse ... +type SearchDirectoryEmployeeRespPageResponse struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有后续结果, 如果has_more为true, 代表还有数据没有完全返回, 需要使用响应结果中的page_token, 并再次请求才能取得剩下的数据。 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// searchDirectoryEmployeeResp ... +type searchDirectoryEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchDirectoryEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_to_be_resigned.go b/api_directory_employee_to_be_resigned.go new file mode 100644 index 00000000..d30f6569 --- /dev/null +++ b/api_directory_employee_to_be_resigned.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateDirectoryEmployeeToBeResigned 本接口用于为在职员工办理离职, 将其更新为「待离职」状态。「待离职」员工不会自动离职, 需要使用「离职员工」API操作离职和资源转交。 +// +// 使用user_access_token时默认为管理员用户, 仅「人事管理模式」的管理员可操作。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/to_be_resigned +// new doc: https://open.feishu.cn/document/directory-v1/employee/to_be_resigned +func (r *DirectoryService) UpdateDirectoryEmployeeToBeResigned(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) { + if r.cli.mock.mockDirectoryUpdateDirectoryEmployeeToBeResigned != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#UpdateDirectoryEmployeeToBeResigned mock enable") + return r.cli.mock.mockDirectoryUpdateDirectoryEmployeeToBeResigned(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "UpdateDirectoryEmployeeToBeResigned", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/:employee_id/to_be_resigned", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateDirectoryEmployeeToBeResignedResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryUpdateDirectoryEmployeeToBeResigned mock DirectoryUpdateDirectoryEmployeeToBeResigned method +func (r *Mock) MockDirectoryUpdateDirectoryEmployeeToBeResigned(f func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error)) { + r.mockDirectoryUpdateDirectoryEmployeeToBeResigned = f +} + +// UnMockDirectoryUpdateDirectoryEmployeeToBeResigned un-mock DirectoryUpdateDirectoryEmployeeToBeResigned method +func (r *Mock) UnMockDirectoryUpdateDirectoryEmployeeToBeResigned() { + r.mockDirectoryUpdateDirectoryEmployeeToBeResigned = nil +} + +// UpdateDirectoryEmployeeToBeResignedReq ... +type UpdateDirectoryEmployeeToBeResignedReq struct { + EmployeeID string `path:"employee_id" json:"-"` // 员工ID, 与employee_id_type类型保持一致示例值: "cad2cafa" 长度范围: `1` ~ `255` 字符 + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 部门ID类型示例值: open_department_id可选值有: 用来标识租户内一个唯一的部门用来在具体某个应用中标识一个部门, 同一个部门 在不同应用中的 open_department_id 相同。默认值: `open_department_id` + Employee *UpdateDirectoryEmployeeToBeResignedReqEmployee `json:"employee,omitempty"` // 在职员工流转到待离职 +} + +// UpdateDirectoryEmployeeToBeResignedReqEmployee ... +type UpdateDirectoryEmployeeToBeResignedReqEmployee struct { + ResignDate string `json:"resign_date,omitempty"` // 离职日期示例值: "2024-06-21" + ResignReason string `json:"resign_reason,omitempty"` // 离职原因示例值: "1"可选值有: 薪酬不符合预期工作时间过长不满意工作内容不认可上级或管理层职业发展机会有限对公司文化缺乏认同组织架构调整(主动离职)合同到期跳槽转行家庭原因健康状况不佳工作地点原因其他(主动离职)意外身故解雇试用期不通过工作表现不佳工作产出低组织架构调整(被动离职)违纪违法其他(被动离职)其他(其他) + ResignType string `json:"resign_type,omitempty"` // 离职类型示例值: "1"可选值有: 主动被动其他 + ResignRemark *string `json:"resign_remark,omitempty"` // 离职备注示例值: "留学深造" 长度范围: `0` ~ `255` 字符 +} + +// UpdateDirectoryEmployeeToBeResignedResp ... +type UpdateDirectoryEmployeeToBeResignedResp struct { +} + +// updateDirectoryEmployeeToBeResignedResp ... +type updateDirectoryEmployeeToBeResignedResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateDirectoryEmployeeToBeResignedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_directory_employee_update.go b/api_directory_employee_update.go new file mode 100644 index 00000000..0c565df1 --- /dev/null +++ b/api_directory_employee_update.go @@ -0,0 +1,196 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateDirectoryEmployee 本接口用于更新在职/离职员工的信息、冻结/恢复员工。未传递的参数不会进行更新。 +// +// 员工指飞书企业内身份为「Employee」的成员, 等同于通讯录OpenAPI中的「User」。 +// - 员工状态的修改遵循生命周期流转的规则, 具体规则详见 [Directory-员工管理-资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/resources-introduction) 。 +// - 本接口支持tenant_access_token和user_access_token, 接口获取方式参考[获取访问凭证](https://open.feishu.cn/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM) +// 。 +// - 使用tenant_access_token时, 只能在当前应用的通讯录授权范围内更新员工信息。可在开发者后台 > 权限管理 > 通讯录权限 中查看。 +// - 当变更员工的部门信息时, 应用需要有变更前后的部门权限, 才能变更成功。 +// - 使用user_access_token 时, 默认为管理员用户, 将校验管理员管理范围。当用户有多个管理员身份均可更新员工信息时, 管理员管理范围取最大集。管理员权限可查看帮助中心文档: [管理员创建管理员角色及分配权限](https://www.feishu.cn/hc/zh-CN/articles/360043495213-%E7%AE%A1%E7%90%86%E5%91%98%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E5%91%98%E8%A7%92%E8%89%B2%E5%8F%8A%E5%88%86%E9%85%8D%E6%9D%83%E9%99%90#tabs0|lineguid-dU31C) +// - 变更「未加入」、「未激活」状态的员工的联系手机号、工作邮箱, 会修改员工的登录凭证, 并将员工重置为「未加入」状态, 并发送邀请短信/邮件。其他状态的员工修改联系方式不影响登录凭证。 +// - 修改员工ID(employee_id)需要悉知以下影响: +// - 员工ID(employee_id)是员工在企业内的唯一ID, 可能会被应用引用来实现各种内部逻辑, 唯一ID修改之后可能会导致引用失败, 导致所有引用且保存了‘被修改 ID 员工’的业务全部受影响。 +// - 更新离职状态的员工信息时, 以下字段不可更新: +// - email、mobile、department_ids、leader_id、is_frozen、work_city_id +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/patch +// new doc: https://open.feishu.cn/document/directory-v1/employee/patch +func (r *DirectoryService) UpdateDirectoryEmployee(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) { + if r.cli.mock.mockDirectoryUpdateDirectoryEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Directory#UpdateDirectoryEmployee mock enable") + return r.cli.mock.mockDirectoryUpdateDirectoryEmployee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Directory", + API: "UpdateDirectoryEmployee", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/directory/v1/employees/:employee_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateDirectoryEmployeeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDirectoryUpdateDirectoryEmployee mock DirectoryUpdateDirectoryEmployee method +func (r *Mock) MockDirectoryUpdateDirectoryEmployee(f func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error)) { + r.mockDirectoryUpdateDirectoryEmployee = f +} + +// UnMockDirectoryUpdateDirectoryEmployee un-mock DirectoryUpdateDirectoryEmployee method +func (r *Mock) UnMockDirectoryUpdateDirectoryEmployee() { + r.mockDirectoryUpdateDirectoryEmployee = nil +} + +// UpdateDirectoryEmployeeReq ... +type UpdateDirectoryEmployeeReq struct { + EmployeeID string `path:"employee_id" json:"-"` // 员工ID, 与employee_id_type类型保持一致。示例值: "eehsdna" + EmployeeIDType *IDType `query:"employee_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。获取employee_id的方式: - 企业管理员在 管理后台 > 组织架构 > 成员与部门 页面, 点击 成员详情, 查询员工ID - 通过 [批量获取员工列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/filter) 的接口, 通过手机号或邮箱查询员工ID。默认值: `open_id`当值为 `employee_id`, 字段权限要求: 查看员工自定义 ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 部门ID类型示例值: open_department_id可选值有: department_idopen_department_id默认值: `open_department_id` + Employee *UpdateDirectoryEmployeeReqEmployee `json:"employee,omitempty"` // 更新员工对象 +} + +// UpdateDirectoryEmployeeReqEmployee ... +type UpdateDirectoryEmployeeReqEmployee struct { + Name *UpdateDirectoryEmployeeReqEmployeeName `json:"name,omitempty"` // 姓名 + Mobile *string `json:"mobile,omitempty"` // 员工的手机号, 最多可输入 255 字。注意: 1. 在企业内的在职员工中不可重复2. 未认证企业仅支持添加中国大陆手机号, 通过飞书认证的企业允许添加海外手机号3. 国际电话区号前缀中必须包含加号 +示例值: "13011111111" 或 "+8613011111111" + CustomEmployeeID *string `json:"custom_employee_id,omitempty"` // 企业内在职员工的唯一标识。支持自定义, 未自定义时系统自动生成。ID支持修改。注意: 1. 在职员工的ID不可重复。2. ID不能包含空格。示例值: "eesadeq" + AvatarKey *string `json:"avatar_key,omitempty"` // 员工的头像key。获取图片的key请使用 [上传图片 - 服务端 API - 开发文档 - 飞书开放平台](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create), 上传时图片类型需要选择 用于设置头像示例值: "dadwqeqwdsa" + Email *string `json:"email,omitempty"` // 员工在工作中的邮箱。注意: 1. 在企业内的在职员工中不可重复。2. 非中国大陆手机号成员必须同时添加邮箱。示例值: "zhangsan@163.com" + EnterpriseEmail *string `json:"enterprise_email,omitempty"` // 员工的企业邮箱。请先确保已在管理后台启用飞书邮箱服务。企业邮箱的域名需要企业在管理后台申请并开启。如果企业没有开启对应域名的企业邮箱, 设置用户的企业邮箱会操作失败。示例值: "zhangsan@163.com" + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 未知男女其他 + EmployeeOrderInDepartments []string `json:"employee_order_in_departments,omitempty"` // 员工在所属部门内的排序信息 长度范围: `0` ~ `10` + BackgroundImageKey *string `json:"background_image_key,omitempty"` // 背景图的key。获取图片的key请使用 [上传图片 - 服务端 API - 开发文档 - 飞书开放平台](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create), 上传时图片类型需要选择 用于发送消息示例值: "qweasdqawqeq" + Description *string `json:"description,omitempty"` // 员工的个性签名示例值: "新员工入职" + LeaderID *string `json:"leader_id,omitempty"` // 员工的直属上级ID。注意: 1. 不可成环, 即A的上级是B, B的上级是A。2. 上级需要是一个在职的员工。示例值: "eeshfosd" + DottedLineLeaderIDs []string `json:"dotted_line_leader_ids,omitempty"` // 员工的虚线上级ID, 与employee_id_type类型保持一致。注意: 1. 不可成环, 即A的上级是B, B的上级是A。2. 上级需要是一个在职的员工。示例值: ["eefhdgsd"] 长度范围: `0` ~ `10` + WorkCountryOrRegion *string `json:"work_country_or_region,omitempty"` // 工作地国家/地区码。获取国家/地区的编码请使用 [分页批量查询国家/地区](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/country_region/list)。示例值: "MDM2312312" + WorkPlaceID *string `json:"work_place_id,omitempty"` // 工作地点ID示例值: "1111sdda" + WorkStation *UpdateDirectoryEmployeeReqEmployeeWorkStation `json:"work_station,omitempty"` // 工位 + JobNumber *string `json:"job_number,omitempty"` // 工号。企业内在职员工的工号不可重复。示例值: "28549233" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号, 最多可输入 99 字。企业内所有员工的分机号不可重复。示例值: "2854923" + JoinDate *string `json:"join_date,omitempty"` // 入职日期固定格式为: 'YYYY-MM-DD', 固定长度为: 10示例值: "2022-10-10" + EmploymentType *int64 `json:"employment_type,omitempty"` // 员工类型示例值: 1可选值有: 未知全职实习外包劳务顾问 + JobTitleID *string `json:"job_title_id,omitempty"` // 职务ID示例值: "ewdjdssd" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级ID示例值: "asdfghjk" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列ID示例值: "qwertyui" + ResignDate *string `json:"resign_date,omitempty"` // 离职日期固定格式为: 'YYYY-MM-DD', 固定长度为: 10示例值: "2022-10-10" 长度范围: `0` ~ `20` 字符 + ResignReason *string `json:"resign_reason,omitempty"` // 离职原因示例值: "1"可选值有: 置空薪酬不符合预期工作时间过长不满意工作内容不认可上级或管理层职业发展机会有限对公司文化缺乏认同组织架构调整(主动离职)合同到期跳槽转行家庭原因健康状况不佳工作地点原因其他(主动离职)意外身故解雇试用期不通过工作表现不佳工作产出低组织架构调整(被动离职)违纪违法其他(被动离职)其他(其他) + ResignRemark *string `json:"resign_remark,omitempty"` // 离职备注信息示例值: "个人原因" 长度范围: `0` ~ `255` 字符 + ResignType *string `json:"resign_type,omitempty"` // 离职类型示例值: "1"可选值有: 置空主动被动其他 + IsFrozen *bool `json:"is_frozen,omitempty"` // 是否冻结员工账号。true为冻结, false为恢复账号。示例值: true + CustomFieldValues []*UpdateDirectoryEmployeeReqEmployeeCustomFieldValue `json:"custom_field_values,omitempty"` // 自定义字段 长度范围: `0` ~ `100` +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValue struct { + FieldType *string `json:"field_type,omitempty"` // 自定义字段类型示例值: "1"可选值有: 多行文本网页链接枚举选项人员电话多选枚举类型(目前仅支持文本类型)人员列表 + TextValue *UpdateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue `json:"text_value,omitempty"` // 文本字段值 + URLValue *UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue `json:"url_value,omitempty"` // 网页链接字段值 + EnumValue *UpdateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue `json:"enum_value,omitempty"` // 枚举 + UserValues []*UpdateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue `json:"user_values,omitempty"` // 人员字段值 长度范围: `0` ~ `100` + PhoneValue *UpdateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue `json:"phone_value,omitempty"` // 电话字段值 + FieldKey *string `json:"field_key,omitempty"` // 自定义字段key示例值: "C-1000001" +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValueEnumValue struct { + EnumIDs []string `json:"enum_ids,omitempty"` // 选项结果ID示例值: ["1"] 长度范围: `0` ~ `100` + EnumType string `json:"enum_type,omitempty"` // 选项类型示例值: "1"可选值有: 文本图片 +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValuePhoneValue struct { + PhoneNumber string `json:"phone_number,omitempty"` // 电话号示例值: "18812345678" + ExtensionNumber *string `json:"extension_number,omitempty"` // 分机号示例值: "234234234" +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValueTextValue struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "姓名字段" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"姓名字段"} +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValue struct { + LinkText *UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText `json:"link_text,omitempty"` // 网页标题 + URL string `json:"url,omitempty"` // 移动端网页链接示例值: "https://m.bytedance.com/afnasjfna" + Pcurl string `json:"pcurl,omitempty"` // 桌面端网页链接示例值: "http://www.fs.cn" +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValueURLValueLinkText struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "网页标题" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"网页标题"} +} + +// UpdateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue ... +type UpdateDirectoryEmployeeReqEmployeeCustomFieldValueUserValue struct { + IDs []string `json:"ids,omitempty"` // 人员ID, 与employee_id_type类型保持一致。示例值: ["1"] 长度范围: `0` ~ `100` +} + +// UpdateDirectoryEmployeeReqEmployeeEmployeeOrderInDepartment ... +type UpdateDirectoryEmployeeReqEmployeeEmployeeOrderInDepartment struct { + DepartmentID *string `json:"department_id,omitempty"` // 部门id, 与department_id_type类型保持一致。示例值: "eediasdjw" + OrderWeightInDeparment *string `json:"order_weight_in_deparment,omitempty"` // 员工在部门内的排序权重 示例值: "100" + OrderWeightAmongDeparments *string `json:"order_weight_among_deparments,omitempty"` // 该部门在用户所属的多个部门间的排序权重示例值: "20" + IsMainDepartment *bool `json:"is_main_department,omitempty"` // 是否为用户的主部门(用户只能有一个主部门, 且排序权重应最大, 不填则默认使用系统默认排序下的第一个部门作为主部门, 系统默认排序与部门数组传入顺序无关)示例值: true +} + +// UpdateDirectoryEmployeeReqEmployeeName ... +type UpdateDirectoryEmployeeReqEmployeeName struct { + Name *UpdateDirectoryEmployeeReqEmployeeNameName `json:"name,omitempty"` // 员工的姓名。 + AnotherName *string `json:"another_name,omitempty"` // 别名, 最多可输入 64 字示例值: "Jack" +} + +// UpdateDirectoryEmployeeReqEmployeeNameName ... +type UpdateDirectoryEmployeeReqEmployeeNameName struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值长度范围: 1- 64 字符示例值: "工位" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"工位1"} +} + +// UpdateDirectoryEmployeeReqEmployeeWorkStation ... +type UpdateDirectoryEmployeeReqEmployeeWorkStation struct { + DefaultValue string `json:"default_value,omitempty"` // 默认值示例值: "工位" + I18nValue interface{} `json:"i18n_value,omitempty"` // 国际化值, key为zh_cn, ja_jp, en_us, value为对应的值示例值: {"zh_cn":"工位"} +} + +// UpdateDirectoryEmployeeResp ... +type UpdateDirectoryEmployeeResp struct { +} + +// updateDirectoryEmployeeResp ... +type updateDirectoryEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateDirectoryEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docs_content_get.go b/api_docs_content_get.go new file mode 100644 index 00000000..384dc3db --- /dev/null +++ b/api_docs_content_get.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetDocsContent 可获取云文档内容, 当前只支持获取新版文档 Markdown 格式的内容。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/docs-v1/content/get +// new doc: https://open.feishu.cn/document/docs/docs-v1/get +func (r *DocsService) GetDocsContent(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) { + if r.cli.mock.mockDocsGetDocsContent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Docs#GetDocsContent mock enable") + return r.cli.mock.mockDocsGetDocsContent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Docs", + API: "GetDocsContent", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/docs/v1/content", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getDocsContentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDocsGetDocsContent mock DocsGetDocsContent method +func (r *Mock) MockDocsGetDocsContent(f func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error)) { + r.mockDocsGetDocsContent = f +} + +// UnMockDocsGetDocsContent un-mock DocsGetDocsContent method +func (r *Mock) UnMockDocsGetDocsContent() { + r.mockDocsGetDocsContent = nil +} + +// GetDocsContentReq ... +type GetDocsContentReq struct { + DocToken string `query:"doc_token" json:"-"` // 云文档的唯一标识。点击[这里](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-overview)了解如何获取文档的 `doc_token`示例值: B4EPdAYx8oi8HRxgPQQbM15UcBf 长度范围: `22` ~ `27` 字符 + DocType string `query:"doc_type" json:"-"` // 云文档类型示例值: docx可选值有: 新版文档 + ContentType string `query:"content_type" json:"-"` // 内容类型示例值: markdown可选值有: Markdown 格式 + Lang *string `query:"lang" json:"-"` // 云文档中存在 @用户 元素时, 指定该用户名称的语言。默认 `zh`, 即中文示例值: zh可选值有: 中文英文日文 +} + +// GetDocsContentResp ... +type GetDocsContentResp struct { + Content string `json:"content,omitempty"` // 内容 +} + +// getDocsContentResp ... +type getDocsContentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetDocsContentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_chat_announcement_block_children_batch_delete.go b/api_docx_chat_announcement_block_children_batch_delete.go new file mode 100644 index 00000000..4d90223d --- /dev/null +++ b/api_docx_chat_announcement_block_children_batch_delete.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchDeleteDocxChatAnnouncementBlockChildren 指定需要操作的块, 删除其指定范围的子块。如果操作成功, 接口将返回应用删除操作后的群公告版本号。 +// +// 群公告频率限制: 单篇群公告并发编辑上限为每秒 3 次, 超过该频率限制, 接口将返回 HTTP 状态码 429, 编辑操作包括: +// - 创建块 +// - 批量更新块 +// - 删除块 +// 当请求被限频, 应用需要处理限频状态码, 并使用指数退避算法或其它一些频控策略降低对 API 的调用速率。 +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 调用当前接口的用户或者机器人必须在对应的群组内。 +// - 操作内部群的群公告时, 请确保当前调用身份(tenant_access_token 或 user_access_token)与对应群组在同一租户下。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block-children/batch_delete +// new doc: https://open.feishu.cn/document/group/upgraded-group-announcement/chat-announcement-block/batch_delete +func (r *DriveService) BatchDeleteDocxChatAnnouncementBlockChildren(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) { + if r.cli.mock.mockDriveBatchDeleteDocxChatAnnouncementBlockChildren != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#BatchDeleteDocxChatAnnouncementBlockChildren mock enable") + return r.cli.mock.mockDriveBatchDeleteDocxChatAnnouncementBlockChildren(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "BatchDeleteDocxChatAnnouncementBlockChildren", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/chats/:chat_id/announcement/blocks/:block_id/children/batch_delete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchDeleteDocxChatAnnouncementBlockChildrenResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveBatchDeleteDocxChatAnnouncementBlockChildren mock DriveBatchDeleteDocxChatAnnouncementBlockChildren method +func (r *Mock) MockDriveBatchDeleteDocxChatAnnouncementBlockChildren(f func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error)) { + r.mockDriveBatchDeleteDocxChatAnnouncementBlockChildren = f +} + +// UnMockDriveBatchDeleteDocxChatAnnouncementBlockChildren un-mock DriveBatchDeleteDocxChatAnnouncementBlockChildren method +func (r *Mock) UnMockDriveBatchDeleteDocxChatAnnouncementBlockChildren() { + r.mockDriveBatchDeleteDocxChatAnnouncementBlockChildren = nil +} + +// BatchDeleteDocxChatAnnouncementBlockChildrenReq ... +type BatchDeleteDocxChatAnnouncementBlockChildrenReq struct { + ChatID string `path:"chat_id" json:"-"` // 群 ID。获取方式: [创建群](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create), 从返回结果中获取该群的 chat_id。- 调用[获取用户或机器人所在的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/list)接口, 可以查询用户或机器人所在群的 chat_id。- 调用[搜索对用户或机器人可见的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/search), 可搜索用户或机器人所在的群、对用户或机器人公开的群的 chat_id。注意: 单聊(群类型为 `p2p`)不支持获取群公告。示例值: "oc_5ad11d72b830411d72b836c20" + BlockID string `path:"block_id" json:"-"` // 父 Block 的唯一标识。你可通过调用[获取群公告所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/list)接口获取块的 block_id。注意: 此接口不支持删除表格(Table)的行列和删除分栏(Grid)的分栏列。你需通过[批量更新块的内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/batch_update)接口完成相关操作。- 此接口不支持删除表格单元格(Table Cell)、分栏列(Grid Column)和高亮块(Callout)的全部子块。示例值: "doxcnO6UW6wAw2qIcYf4hZpFIth" + RevisionID *int64 `query:"revision_id" json:"-"` // 要操作的群公告版本。-1 表示群公告最新版本。群公告创建后, 版本为 1。你需确保你已拥有群公告的编辑权限。你可通过调用[获取群公告基本信息](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement/get)获取群公告的最新 revision_id示例值:1默认值: `-1` 最小值: `-1` + ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 与接口返回值的 client_token 相对应, 用于幂等的进行更新操作。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作。示例值: fe599b60-450f-46ff-b2ef-9f6675625b97 + StartIndex int64 `json:"start_index,omitempty"` // 删除的起始索引(操作区间左闭右开)示例值: 0 最小值: `0` + EndIndex int64 `json:"end_index,omitempty"` // 删除的末尾索引(操作区间左闭右开)示例值: 1 最小值: `1` +} + +// BatchDeleteDocxChatAnnouncementBlockChildrenResp ... +type BatchDeleteDocxChatAnnouncementBlockChildrenResp struct { + RevisionID int64 `json:"revision_id,omitempty"` // 当前删除操作成功后群公告的版本号 + ClientToken string `json:"client_token,omitempty"` // 操作的唯一标识, 更新请求中使用此值表示幂等的进行此次更新 +} + +// batchDeleteDocxChatAnnouncementBlockChildrenResp ... +type batchDeleteDocxChatAnnouncementBlockChildrenResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchDeleteDocxChatAnnouncementBlockChildrenResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_chat_announcement_block_children_get.go b/api_docx_chat_announcement_block_children_get.go new file mode 100644 index 00000000..4b4e315a --- /dev/null +++ b/api_docx_chat_announcement_block_children_get.go @@ -0,0 +1,4458 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetDocxChatAnnouncementBlockChildren 获取群公告中指定块的所有子块的富文本内容并分页返回。 +// +// 应用频率限制: 单个应用调用频率上限为每秒 10 次, 超过该频率限制, 接口将返回 HTTP 状态码 400 及错误码 99991400。当请求被限频, 应用需要处理限频状态码, 并使用指数退避算法或其它一些频控策略降低对 API 的调用速率。 +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 调用当前接口的用户或者机器人必须在对应的群组内。 +// - 获取内部群信息时, 调用当前接口的用户或者机器人必须与对应群组在同一租户下。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block-children/get +// new doc: https://open.feishu.cn/document/group/upgraded-group-announcement/chat-announcement-block/get-2 +func (r *DriveService) GetDocxChatAnnouncementBlockChildren(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) { + if r.cli.mock.mockDriveGetDocxChatAnnouncementBlockChildren != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDocxChatAnnouncementBlockChildren mock enable") + return r.cli.mock.mockDriveGetDocxChatAnnouncementBlockChildren(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "GetDocxChatAnnouncementBlockChildren", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/chats/:chat_id/announcement/blocks/:block_id/children", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getDocxChatAnnouncementBlockChildrenResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveGetDocxChatAnnouncementBlockChildren mock DriveGetDocxChatAnnouncementBlockChildren method +func (r *Mock) MockDriveGetDocxChatAnnouncementBlockChildren(f func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error)) { + r.mockDriveGetDocxChatAnnouncementBlockChildren = f +} + +// UnMockDriveGetDocxChatAnnouncementBlockChildren un-mock DriveGetDocxChatAnnouncementBlockChildren method +func (r *Mock) UnMockDriveGetDocxChatAnnouncementBlockChildren() { + r.mockDriveGetDocxChatAnnouncementBlockChildren = nil +} + +// GetDocxChatAnnouncementBlockChildrenReq ... +type GetDocxChatAnnouncementBlockChildrenReq struct { + ChatID string `path:"chat_id" json:"-"` // 群 ID。获取方式: [创建群](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create), 从返回结果中获取该群的 chat_id。- 调用[获取用户或机器人所在的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/list)接口, 可以查询用户或机器人所在群的 chat_id。- 调用[搜索对用户或机器人可见的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/search), 可搜索用户或机器人所在的群、对用户或机器人公开的群的 chat_id。注意: 单聊(群类型为 `p2p`)不支持获取群公告。示例值: "oc_5ad11d72b830411d72b836c20" + BlockID string `path:"block_id" json:"-"` // Block 的唯一标识。你可通过调用[获取群公告所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/list)接口获取块的 block_id。示例值: "doxcnO6UW6wAw2qIcYf4hZpFIth" + RevisionID *int64 `query:"revision_id" json:"-"` // 查询的群公告版本, 1 表示群公告最新版本。群公告创建后, 版本为 1。若查询的版本为群公告最新版本, 则需要持有群公告的阅读权限;若查询的版本为群公告的历史版本, 则需要持有群公告的更新权限。示例值:1默认值: `-1` 最小值: `-1` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "aw7DoMKBFMOGwqHCrcO8w6jCmMOvw6ILeADCvsKNw57Di8O5XGV3LG4_w5HCqhFxSnDCrCzCn0BgZcOYUg85EMOYcEAcwqYOw4ojw5QFwofCu8KoIMO3K8Ktw4IuNMOBBHNYw4bCgCV3U1zDu8K-J8KSR8Kgw7Y0fsKZdsKvW3d9w53DnkHDrcO5bDkYwrvDisOEPcOtVFJ-I03CnsOILMOoAmLDknd6dsKqG1bClAjDuS3CvcOTwo7Dg8OrwovDsRdqIcKxw5HDohTDtXN9w5rCkWo" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 500默认值: `500` 最小值: `1` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetDocxChatAnnouncementBlockChildrenResp ... +type GetDocxChatAnnouncementBlockChildrenResp struct { + Items []*DocxBlock `json:"items,omitempty"` // Block 的 Children 列表 + PageToken string `json:"page_token,omitempty"` // 下一个分页的分页标记 + HasMore bool `json:"has_more,omitempty"` // 是否还有下一个分页 +} + +// GetDocxChatAnnouncementBlockChildrenRespItem ... +type GetDocxChatAnnouncementBlockChildrenRespItem struct { + BlockID string `json:"block_id,omitempty"` // 子块的唯一标识 + ParentID string `json:"parent_id,omitempty"` // 子块的父块 ID + Children []*DocxBlock `json:"children,omitempty"` // 子块的子块 ID 列表 + BlockType int64 `json:"block_type,omitempty"` // Block 类型可选值有: 页面 Block文本 Block标题 1 Block标题 2 Block标题 3 Block标题 4 Block标题 5 Block标题 6 Block标题 7 Block标题 8 Block标题 9 Block无序列表 Block有序列表 Block代码块 Block引用 Block待办事项 Block多维表格 Block高亮块 Block会话卡片 Block流程图 & UML Block分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。文件 Block分栏 Block分栏列 Block内嵌网页 Block图片 Block开放平台小组件 Block思维笔记 Block电子表格 Block表格 Block。了解如何在文档中插入表格, 参考[文档常见问题-如何插入表格并往单元格填充内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。表格单元格 Block视图 Block引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。任务 BlockOKR BlockOKR Objective BlockOKR Key Result BlockOKR 进展 Block文档小组件 BlockJira 问题 BlockWiki 子目录 Block画板 Block议程 Block议程项 Block议程项标题 Block议程项内容 Block链接预览 Block未支持 Block + Page *GetDocxChatAnnouncementBlockChildrenRespItemPage `json:"page,omitempty"` // 文档的根 Block, 也称页面 Block + Text *GetDocxChatAnnouncementBlockChildrenRespItemText `json:"text,omitempty"` // 文本 Block + Heading1 *GetDocxChatAnnouncementBlockChildrenRespItemHeading1 `json:"heading1,omitempty"` // 一级标题 Block + Heading2 *GetDocxChatAnnouncementBlockChildrenRespItemHeading2 `json:"heading2,omitempty"` // 二级标题 Block + Heading3 *GetDocxChatAnnouncementBlockChildrenRespItemHeading3 `json:"heading3,omitempty"` // 三级标题 Block + Heading4 *GetDocxChatAnnouncementBlockChildrenRespItemHeading4 `json:"heading4,omitempty"` // 四级标题 Block + Heading5 *GetDocxChatAnnouncementBlockChildrenRespItemHeading5 `json:"heading5,omitempty"` // 五级标题 Block + Heading6 *GetDocxChatAnnouncementBlockChildrenRespItemHeading6 `json:"heading6,omitempty"` // 六级标题 Block + Heading7 *GetDocxChatAnnouncementBlockChildrenRespItemHeading7 `json:"heading7,omitempty"` // 七级标题 Block + Heading8 *GetDocxChatAnnouncementBlockChildrenRespItemHeading8 `json:"heading8,omitempty"` // 八级标题 Block + Heading9 *GetDocxChatAnnouncementBlockChildrenRespItemHeading9 `json:"heading9,omitempty"` // 九级标题 Block + Bullet *GetDocxChatAnnouncementBlockChildrenRespItemBullet `json:"bullet,omitempty"` // 无序列表 Block + Ordered *GetDocxChatAnnouncementBlockChildrenRespItemOrdered `json:"ordered,omitempty"` // 有序列表 Block + Code *GetDocxChatAnnouncementBlockChildrenRespItemCode `json:"code,omitempty"` // 代码块 Block + Quote *GetDocxChatAnnouncementBlockChildrenRespItemQuote `json:"quote,omitempty"` // 引用 Block + Equation *GetDocxChatAnnouncementBlockChildrenRespItemEquation `json:"equation,omitempty"` // 公式 Block + Todo *GetDocxChatAnnouncementBlockChildrenRespItemTodo `json:"todo,omitempty"` // 待办事项 Block + Bitable *GetDocxChatAnnouncementBlockChildrenRespItemBitable `json:"bitable,omitempty"` // 多维表格 Block + Callout *GetDocxChatAnnouncementBlockChildrenRespItemCallout `json:"callout,omitempty"` // 高亮块 Block + ChatCard *GetDocxChatAnnouncementBlockChildrenRespItemChatCard `json:"chat_card,omitempty"` // 群聊卡片 Block + Diagram *GetDocxChatAnnouncementBlockChildrenRespItemDiagram `json:"diagram,omitempty"` // 流程图/UML Block + Divider interface{} `json:"divider,omitempty"` // 分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。 + File *GetDocxChatAnnouncementBlockChildrenRespItemFile `json:"file,omitempty"` // 文件 Block。了解如何在文档中插入文件, 参考[文档常见问题-如何插入文件/附件](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Grid *GetDocxChatAnnouncementBlockChildrenRespItemGrid `json:"grid,omitempty"` // 分栏 Block + GridColumn *GetDocxChatAnnouncementBlockChildrenRespItemGridColumn `json:"grid_column,omitempty"` // 分栏列 Block + Iframe *GetDocxChatAnnouncementBlockChildrenRespItemIframe `json:"iframe,omitempty"` // 内嵌 Block + Image *GetDocxChatAnnouncementBlockChildrenRespItemImage `json:"image,omitempty"` // 图片 Block。了解如何在文档中插入图片, 参考[文档常见问题-如何插入图片](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Isv *GetDocxChatAnnouncementBlockChildrenRespItemIsv `json:"isv,omitempty"` // 三方 Block + AddOns *GetDocxChatAnnouncementBlockChildrenRespItemAddOns `json:"add_ons,omitempty"` // Add-ons + Mindnote *GetDocxChatAnnouncementBlockChildrenRespItemMindnote `json:"mindnote,omitempty"` // 思维笔记 Block + Sheet *GetDocxChatAnnouncementBlockChildrenRespItemSheet `json:"sheet,omitempty"` // 电子表格 Block + Table *GetDocxChatAnnouncementBlockChildrenRespItemTable `json:"table,omitempty"` // 表格 Block + TableCell interface{} `json:"table_cell,omitempty"` // 单元格 Block + View *GetDocxChatAnnouncementBlockChildrenRespItemView `json:"view,omitempty"` // 视图 Block + Undefined interface{} `json:"undefined,omitempty"` // 未支持 Block + QuoteContainer interface{} `json:"quote_container,omitempty"` // 引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。 + Task *GetDocxChatAnnouncementBlockChildrenRespItemTask `json:"task,omitempty"` // 任务 Block + OKR *GetDocxChatAnnouncementBlockChildrenRespItemOKR `json:"okr,omitempty"` // OKR Block, 仅可在使用 `user_access_token` 时创建 + OKRObjective *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjective `json:"okr_objective,omitempty"` // OKR Objective Block + OKRKeyResult *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResult `json:"okr_key_result,omitempty"` // OKR Key Result + OKRProgress interface{} `json:"okr_progress,omitempty"` // OKR 进展信息 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 id 列表 + JiraIssue *GetDocxChatAnnouncementBlockChildrenRespItemJiraIssue `json:"jira_issue,omitempty"` // Jira 问题 + WikiCatalog *GetDocxChatAnnouncementBlockChildrenRespItemWikiCatalog `json:"wiki_catalog,omitempty"` // Wiki 子目录 Block + Board *GetDocxChatAnnouncementBlockChildrenRespItemBoard `json:"board,omitempty"` // 画板 Block + Agenda interface{} `json:"agenda,omitempty"` // 议程 Block + AgendaItem interface{} `json:"agenda_item,omitempty"` // 议程项 Block + AgendaItemTitle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitle `json:"agenda_item_title,omitempty"` // 议程项标题 Block + AgendaItemContent interface{} `json:"agenda_item_content,omitempty"` // 议程项内容 Block + LinkPreview *GetDocxChatAnnouncementBlockChildrenRespItemLinkPreview `json:"link_preview,omitempty"` // 链接预览 Block +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAddOns ... +type GetDocxChatAnnouncementBlockChildrenRespItemAddOns struct { + ComponentID string `json:"component_id,omitempty"` // 文档小组件 ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 文档小组件类型, 比如问答互动"blk_636a0a6657db8001c8df5488"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 + Record string `json:"record,omitempty"` // 文档小组件内容数据, JSON 字符串 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitle struct { + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElement `json:"elements,omitempty"` // 文本元素 + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRun `json:"text_run,omitempty"` // 文字 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminder `json:"reminder,omitempty"` // 日期提醒 + File *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFile `json:"file,omitempty"` // 内联附件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlock `json:"inline_block,omitempty"` // 内联 block + Equation *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemAgendaItemTitleElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBitable ... +type GetDocxChatAnnouncementBlockChildrenRespItemBitable struct { + Token string `json:"token,omitempty"` // 多维表格文档 Token +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBoard ... +type GetDocxChatAnnouncementBlockChildrenRespItemBoard struct { + Token string `json:"token,omitempty"` // 画板 token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Width int64 `json:"width,omitempty"` // 宽度, 单位 px;不填时自动适应文档宽度;值超出文档最大宽度时, 页面渲染为文档最大宽度 + Height int64 `json:"height,omitempty"` // 高度, 单位 px;不填时自动根据画板内容计算;值超出屏幕两倍高度时, 页面渲染为屏幕两倍高度 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBullet ... +type GetDocxChatAnnouncementBlockChildrenRespItemBullet struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemBulletStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemBulletElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemBulletStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemBulletStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCallout ... +type GetDocxChatAnnouncementBlockChildrenRespItemCallout struct { + BackgroundColor int64 `json:"background_color,omitempty"` // 高亮块背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色中红色中橙色中黄色中绿色中蓝色中紫色灰色浅灰色 + BorderColor int64 `json:"border_color,omitempty"` // 边框色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + TextColor int64 `json:"text_color,omitempty"` // 文字颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + EmojiID string `json:"emoji_id,omitempty"` // 高亮块图标 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemChatCard ... +type GetDocxChatAnnouncementBlockChildrenRespItemChatCard struct { + ChatID string `json:"chat_id,omitempty"` // 群聊天会话 ID。获取方式参考[群 ID 说明](ssl:ttdoc//uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCode ... +type GetDocxChatAnnouncementBlockChildrenRespItemCode struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemCodeStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemCodeElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemCodeStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemCodeStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemDiagram ... +type GetDocxChatAnnouncementBlockChildrenRespItemDiagram struct { + DiagramType int64 `json:"diagram_type,omitempty"` // 绘图类型可选值有: 流程图UML 图 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquation struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemEquationStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemEquationElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemEquationStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemEquationStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemFile struct { + Token string `json:"token,omitempty"` // 附件 Token + Name string `json:"name,omitempty"` // 文件名 + ViewType int64 `json:"view_type,omitempty"` // 视图类型, 卡片视图(默认)或预览视图可选值有: 卡片视图预览视图 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemGrid ... +type GetDocxChatAnnouncementBlockChildrenRespItemGrid struct { + ColumnSize int64 `json:"column_size,omitempty"` // 分栏列数量 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemGridColumn ... +type GetDocxChatAnnouncementBlockChildrenRespItemGridColumn struct { + WidthRatio int64 `json:"width_ratio,omitempty"` // 当前分栏列占整个分栏的比例, 单位 % +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading1Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading1Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading1Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading1Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading2Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading2Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading2Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading2Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading3Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading3Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading3Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading3Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading4Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading4Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading4Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading4Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading5Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading5Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading5Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading5Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading6Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading6Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading6Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading6Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading7Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading7Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading7Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading7Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading8Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading8Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading8Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading8Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9 ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9 struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemHeading9Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemHeading9Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9Element ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9Element struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemHeading9Style ... +type GetDocxChatAnnouncementBlockChildrenRespItemHeading9Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemIframe ... +type GetDocxChatAnnouncementBlockChildrenRespItemIframe struct { + Component *GetDocxChatAnnouncementBlockChildrenRespItemIframeComponent `json:"component,omitempty"` // iframe 的组成元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemIframeComponent ... +type GetDocxChatAnnouncementBlockChildrenRespItemIframeComponent struct { + IframeType int64 `json:"iframe_type,omitempty"` // iframe 类型可选值有: 哔哩哔哩西瓜视频优酷Airtable百度地图高德地图UndefinedFigma墨刀CanvaCodePen飞书问卷金数据UndefinedUndefinedOther + URL string `json:"url,omitempty"` // iframe 目标 url(需要进行 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemImage ... +type GetDocxChatAnnouncementBlockChildrenRespItemImage struct { + Width int64 `json:"width,omitempty"` // 宽度单位 px + Height int64 `json:"height,omitempty"` // 高度单位 px + Token string `json:"token,omitempty"` // 图片 Token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemIsv ... +type GetDocxChatAnnouncementBlockChildrenRespItemIsv struct { + ComponentID string `json:"component_id,omitempty"` // 团队互动应用唯一ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 团队互动应用类型, 比如信息收集"blk_5f992038c64240015d280958"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemJiraIssue ... +type GetDocxChatAnnouncementBlockChildrenRespItemJiraIssue struct { + ID string `json:"id,omitempty"` // Jira 问题 ID + Key string `json:"key,omitempty"` // Jira 问题 key +} + +// GetDocxChatAnnouncementBlockChildrenRespItemLinkPreview ... +type GetDocxChatAnnouncementBlockChildrenRespItemLinkPreview struct { + URLType string `json:"url_type,omitempty"` // 链接类型可选值有: 消息链接未定义的链接类型 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemMindnote ... +type GetDocxChatAnnouncementBlockChildrenRespItemMindnote struct { + Token string `json:"token,omitempty"` // 思维导图 token +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKR ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKR struct { + OKRID string `json:"okr_id,omitempty"` // OKR ID, 获取需要插入的 OKR ID 可见[获取用户的 OKR 列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/okr-v1/user-okr/list) + PeriodDisplayStatus string `json:"period_display_status,omitempty"` // 周期的状态可选值有: 默认正常失效隐藏 + PeriodNameZh string `json:"period_name_zh,omitempty"` // 周期名 - 中文 + PeriodNameEn string `json:"period_name_en,omitempty"` // 周期名 - 英文 + UserID string `json:"user_id,omitempty"` // OKR 所属的用户 ID + VisibleSetting *GetDocxChatAnnouncementBlockChildrenRespItemOKRVisibleSetting `json:"visible_setting,omitempty"` // 可见性设置 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResult ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResult struct { + KrID string `json:"kr_id,omitempty"` // Key Result 的 ID + Confidential bool `json:"confidential,omitempty"` // 是否在 OKR 平台设置了私密权限 + Position int64 `json:"position,omitempty"` // Key Result 的位置编号, 对应 Block 中 KR1、KR2 的 1、2。 + Score int64 `json:"score,omitempty"` // 打分信息 + Visible bool `json:"visible,omitempty"` // OKR Block 中此 Key Result 是否可见 + Weight float64 `json:"weight,omitempty"` // Key Result 的权重 + ProgressRate *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultProgressRate `json:"progress_rate,omitempty"` // 进展信息 + Content *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContent `json:"content,omitempty"` // Key Result 的文本内容 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContent ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContent struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultProgressRate ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRKeyResultProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjective ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjective struct { + ObjectiveID string `json:"objective_id,omitempty"` // Objective ID + Confidential bool `json:"confidential,omitempty"` // 是否在 OKR 平台设置了私密权限 + Position int64 `json:"position,omitempty"` // Objective 的位置编号, 对应 Block 中 O1、O2 的 1、2 + Score int64 `json:"score,omitempty"` // 打分信息 + Visible bool `json:"visible,omitempty"` // OKR Block 中是否展示该 Objective + Weight float64 `json:"weight,omitempty"` // Objective 的权重 + ProgressRate *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveProgressRate `json:"progress_rate,omitempty"` // 进展信息 + Content *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContent `json:"content,omitempty"` // Objective 的文本内容 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContent ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContent struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveProgressRate ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRObjectiveProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOKRVisibleSetting ... +type GetDocxChatAnnouncementBlockChildrenRespItemOKRVisibleSetting struct { + ProgressFillAreaVisible bool `json:"progress_fill_area_visible,omitempty"` // 进展编辑区域是否可见 + ProgressStatusVisible bool `json:"progress_status_visible,omitempty"` // 进展状态是否可见 + ScoreVisible bool `json:"score_visible,omitempty"` // 分数是否可见 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrdered ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrdered struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemOrderedStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemOrderedElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemOrderedStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemOrderedStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPage ... +type GetDocxChatAnnouncementBlockChildrenRespItemPage struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemPageStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemPageElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemPageElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemPageStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemPageStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuote ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuote struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemQuoteStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemQuoteElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemQuoteStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemQuoteStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemSheet ... +type GetDocxChatAnnouncementBlockChildrenRespItemSheet struct { + Token string `json:"token,omitempty"` // 电子表格 block 的 token 和工作表的 ID 的组合 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTable ... +type GetDocxChatAnnouncementBlockChildrenRespItemTable struct { + Cells []string `json:"cells,omitempty"` // 单元格数组, 数组元素为 Table Cell Block 的 ID + Property *GetDocxChatAnnouncementBlockChildrenRespItemTableProperty `json:"property,omitempty"` // 表格属性 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTableProperty ... +type GetDocxChatAnnouncementBlockChildrenRespItemTableProperty struct { + RowSize int64 `json:"row_size,omitempty"` // 行数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 在单个表格单元格不超过上限 2000 情况下, 该字段无固定最大值 + ColumnSize int64 `json:"column_size,omitempty"` // 列数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 该字段最大值为 100 + ColumnWidth []int64 `json:"column_width,omitempty"` // 列宽, 单位像素(px) + MergeInfo []*GetDocxChatAnnouncementBlockChildrenRespItemTablePropertyMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息。创建 Table 时, 此属性只读, 将由系统自动生成。如果需要合并单元格, 可以通过更新块接口的子请求 `merge_table_cells` 实现 + HeaderRow bool `json:"header_row,omitempty"` // 设置首行为标题行 + HeaderColumn bool `json:"header_column,omitempty"` // 设置首列为标题列 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTablePropertyMergeInfo ... +type GetDocxChatAnnouncementBlockChildrenRespItemTablePropertyMergeInfo struct { + RowSpan int64 `json:"row_span,omitempty"` // 从当前行索引起被合并的连续行数 + ColSpan int64 `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTask ... +type GetDocxChatAnnouncementBlockChildrenRespItemTask struct { + TaskID string `json:"task_id,omitempty"` // 任务 ID, 查询具体任务详情见 [获取任务详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/get) + Folded bool `json:"folded,omitempty"` // 折叠状态 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemText ... +type GetDocxChatAnnouncementBlockChildrenRespItemText struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemTextStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemTextElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemTextElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTextStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTextStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodo ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodo struct { + Style *GetDocxChatAnnouncementBlockChildrenRespItemTodoStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxChatAnnouncementBlockChildrenRespItemTodoElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElement ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElement struct { + TextRun *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquation ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFile ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlock ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDoc ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUser ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminder ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRun ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyleLink ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxChatAnnouncementBlockChildrenRespItemTodoStyle ... +type GetDocxChatAnnouncementBlockChildrenRespItemTodoStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemView ... +type GetDocxChatAnnouncementBlockChildrenRespItemView struct { + ViewType int64 `json:"view_type,omitempty"` // 视图类型可选值有: 卡片视图预览视图内联视图 +} + +// GetDocxChatAnnouncementBlockChildrenRespItemWikiCatalog ... +type GetDocxChatAnnouncementBlockChildrenRespItemWikiCatalog struct { + WikiToken string `json:"wiki_token,omitempty"` // 知识库 token +} + +// getDocxChatAnnouncementBlockChildrenResp ... +type getDocxChatAnnouncementBlockChildrenResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetDocxChatAnnouncementBlockChildrenResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_chat_announcement_block_get.go b/api_docx_chat_announcement_block_get.go new file mode 100644 index 00000000..c0754eda --- /dev/null +++ b/api_docx_chat_announcement_block_get.go @@ -0,0 +1,85 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetDocxChatAnnouncementBlock 获取指定块的富文本内容。 +// +// 应用频率限制: 单个应用调用频率上限为每秒 10 次, 超过该频率限制, 接口将返回 HTTP 状态码 400 及错误码 99991400。当请求被限频, 应用需要处理限频状态码, 并使用指数退避算法或其它一些频控策略降低对 API 的调用速率。 +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 调用当前接口的用户或者机器人必须在对应的群组内。 +// - 获取内部群信息时, 调用当前接口的用户或者机器人必须与对应群组在同一租户下。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/get +// new doc: https://open.feishu.cn/document/group/upgraded-group-announcement/chat-announcement-block/get +func (r *DriveService) GetDocxChatAnnouncementBlock(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) { + if r.cli.mock.mockDriveGetDocxChatAnnouncementBlock != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDocxChatAnnouncementBlock mock enable") + return r.cli.mock.mockDriveGetDocxChatAnnouncementBlock(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "GetDocxChatAnnouncementBlock", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/chats/:chat_id/announcement/blocks/:block_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getDocxChatAnnouncementBlockResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveGetDocxChatAnnouncementBlock mock DriveGetDocxChatAnnouncementBlock method +func (r *Mock) MockDriveGetDocxChatAnnouncementBlock(f func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error)) { + r.mockDriveGetDocxChatAnnouncementBlock = f +} + +// UnMockDriveGetDocxChatAnnouncementBlock un-mock DriveGetDocxChatAnnouncementBlock method +func (r *Mock) UnMockDriveGetDocxChatAnnouncementBlock() { + r.mockDriveGetDocxChatAnnouncementBlock = nil +} + +// GetDocxChatAnnouncementBlockReq ... +type GetDocxChatAnnouncementBlockReq struct { + ChatID string `path:"chat_id" json:"-"` // 群 ID。获取方式: [创建群](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create), 从返回结果中获取该群的 chat_id。- 调用[获取用户或机器人所在的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/list)接口, 可以查询用户或机器人所在群的 chat_id。- 调用[搜索对用户或机器人可见的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/search), 可搜索用户或机器人所在的群、对用户或机器人公开的群的 chat_id。注意: 单聊(群类型为 `p2p`)不支持获取群公告。示例值: "oc_5ad11d72b830411d72b836c20" + BlockID string `path:"block_id" json:"-"` // Block 的唯一标识。你可通过调用[获取群公告所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/list)接口获取块的 block_id。示例值: "doxcnO6UW6wAw2qIcYf4hZabcef" + RevisionID *int64 `query:"revision_id" json:"-"` // 查询的群公告版本, 1 表示群公告最新版本。群公告创建后, 版本为 1。若查询的版本为群公告最新版本, 则需要持有群公告的阅读权限;若查询的版本为群公告的历史版本, 则需要持有群公告的更新权限。示例值:1默认值: `-1` 最小值: `-1` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetDocxChatAnnouncementBlockResp ... +type GetDocxChatAnnouncementBlockResp struct { + Block *DocxBlock `json:"block,omitempty"` // 查询的 Block 的信息 +} + +// getDocxChatAnnouncementBlockResp ... +type getDocxChatAnnouncementBlockResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetDocxChatAnnouncementBlockResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_chat_announcement_block_list.go b/api_docx_chat_announcement_block_list.go new file mode 100644 index 00000000..61eea6e8 --- /dev/null +++ b/api_docx_chat_announcement_block_list.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListDocxChatAnnouncementBlock 获取群公告所有块的富文本内容并分页返回。 +// +// 应用频率限制: 单个应用调用频率上限为每秒 10 次, 超过该频率限制, 接口将返回 HTTP 状态码 400 及错误码 99991400。当请求被限频, 应用需要处理限频状态码, 并使用指数退避算法或其它一些频控策略降低对 API 的调用速率。 +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 调用当前接口的用户或者机器人必须在对应的群组内。 +// - 获取内部群信息时, 调用当前接口的用户或者机器人必须与对应群组在同一租户下。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement-block/list +// new doc: https://open.feishu.cn/document/group/upgraded-group-announcement/chat-announcement/list +func (r *DriveService) ListDocxChatAnnouncementBlock(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) { + if r.cli.mock.mockDriveListDocxChatAnnouncementBlock != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#ListDocxChatAnnouncementBlock mock enable") + return r.cli.mock.mockDriveListDocxChatAnnouncementBlock(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "ListDocxChatAnnouncementBlock", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/chats/:chat_id/announcement/blocks", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listDocxChatAnnouncementBlockResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveListDocxChatAnnouncementBlock mock DriveListDocxChatAnnouncementBlock method +func (r *Mock) MockDriveListDocxChatAnnouncementBlock(f func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error)) { + r.mockDriveListDocxChatAnnouncementBlock = f +} + +// UnMockDriveListDocxChatAnnouncementBlock un-mock DriveListDocxChatAnnouncementBlock method +func (r *Mock) UnMockDriveListDocxChatAnnouncementBlock() { + r.mockDriveListDocxChatAnnouncementBlock = nil +} + +// ListDocxChatAnnouncementBlockReq ... +type ListDocxChatAnnouncementBlockReq struct { + ChatID string `path:"chat_id" json:"-"` // 群 ID。获取方式: [创建群](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create), 从返回结果中获取该群的 chat_id。- 调用[获取用户或机器人所在的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/list)接口, 可以查询用户或机器人所在群的 chat_id。- 调用[搜索对用户或机器人可见的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/search), 可搜索用户或机器人所在的群、对用户或机器人公开的群的 chat_id。注意: 单聊(群类型为 `p2p`)不支持获取群公告。示例值: "oc_5ad11d72b830411d72b836c20" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 500默认值: `500` 最大值: `500` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "aw7DoMKBFMOGwqHCrcO8w6jCmMOvw6ILeADCvsKNw57Di8O5XGV3LG4_w5HCqhFxSnDCrCzCn0BgZcOYUg85EMOYcEAcwqYOw4ojw5QFwofCu8KoIMO3K8Ktw4IuNMOBBHNYw4bCgCV3U1zDu8K-J8KSR8Kgw7Y0fsKZdsKvW3d9w53DnkHDrcO5bDkYwrvDisOEPcOtVFJ-I03CnsOILMOoAmLDknd6dsKqG1bClAjDuS3CvcOTwo7Dg8OrwovDsRdqIcKxw5HDohTDtXN9w5rCkWo" + RevisionID *int64 `query:"revision_id" json:"-"` // 查询的群公告版本, 1 表示群公告最新版本。群公告创建后, 版本为 1。若查询的版本为群公告最新版本, 则需要持有群公告的阅读权限;若查询的版本为群公告的历史版本, 则需要持有群公告的编辑权限。示例值:1默认值: `-1` 最小值: `-1` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListDocxChatAnnouncementBlockResp ... +type ListDocxChatAnnouncementBlockResp struct { + Items []*DocxBlock `json:"items,omitempty"` // 群公告的 Block 信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// listDocxChatAnnouncementBlockResp ... +type listDocxChatAnnouncementBlockResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListDocxChatAnnouncementBlockResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_chat_announcement_get.go b/api_docx_chat_announcement_get.go new file mode 100644 index 00000000..f65cf226 --- /dev/null +++ b/api_docx_chat_announcement_get.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetDocxChatAnnouncement 获取指定群组中的群公告基本信息。 +// +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 调用当前接口的用户或者机器人必须在对应的群组内。 +// - 获取内部群信息时, 调用当前接口的用户或者机器人必须与对应群组在同一租户下。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/chat-announcement/get +// new doc: https://open.feishu.cn/document/group/upgraded-group-announcement/chat-announcement/get +func (r *DriveService) GetDocxChatAnnouncement(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) { + if r.cli.mock.mockDriveGetDocxChatAnnouncement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDocxChatAnnouncement mock enable") + return r.cli.mock.mockDriveGetDocxChatAnnouncement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "GetDocxChatAnnouncement", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/chats/:chat_id/announcement", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getDocxChatAnnouncementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveGetDocxChatAnnouncement mock DriveGetDocxChatAnnouncement method +func (r *Mock) MockDriveGetDocxChatAnnouncement(f func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error)) { + r.mockDriveGetDocxChatAnnouncement = f +} + +// UnMockDriveGetDocxChatAnnouncement un-mock DriveGetDocxChatAnnouncement method +func (r *Mock) UnMockDriveGetDocxChatAnnouncement() { + r.mockDriveGetDocxChatAnnouncement = nil +} + +// GetDocxChatAnnouncementReq ... +type GetDocxChatAnnouncementReq struct { + ChatID string `path:"chat_id" json:"-"` // 群 ID。获取方式: [创建群](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create), 从返回结果中获取该群的 chat_id。- 调用[获取用户或机器人所在的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/list)接口, 可以查询用户或机器人所在群的 chat_id。- 调用[搜索对用户或机器人可见的群列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/search), 可搜索用户或机器人所在的群、对用户或机器人公开的群的 chat_id。注意: 单聊(群类型为 `p2p`)不支持获取群公告。示例值: "oc_5ad11d72b830411d72b836c20" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetDocxChatAnnouncementResp ... +type GetDocxChatAnnouncementResp struct { + RevisionID int64 `json:"revision_id,omitempty"` // 群公告当前版本号 + CreateTime int64 `json:"create_time,omitempty"` // 群公告生成的时间戳(秒) + UpdateTime int64 `json:"update_time,omitempty"` // 群公告更新的时间戳(秒) + OwnerID string `json:"owner_id,omitempty"` // 群公告所有者 ID, ID 值与 owner_id_type 中的ID类型对应 + OwnerIDType IDType `json:"owner_id_type,omitempty"` // 群公告所有者的 ID 类型可选值有: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。 + ModifierID string `json:"modifier_id,omitempty"` // 群公告最新修改者 ID, ID 值与 modifier_id_type 中的ID类型对应 + ModifierIDType IDType `json:"modifier_id_type,omitempty"` // 群公告最新修改者 ID 类型可选值有: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。 + AnnouncementType string `json:"announcement_type,omitempty"` // 群公告类型可选值有: 新版本群公告旧版本群公告 + CreateTimeV2 string `json:"create_time_v2,omitempty"` // 群公告生成的时间戳(秒)(该字段暂未提供使用) + UpdateTimeV2 string `json:"update_time_v2,omitempty"` // 群公告更新的时间戳(秒)(该字段暂未提供使用) +} + +// getDocxChatAnnouncementResp ... +type getDocxChatAnnouncementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetDocxChatAnnouncementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_docx_document_convert.go b/api_docx_document_convert.go new file mode 100644 index 00000000..64a1970c --- /dev/null +++ b/api_docx_document_convert.go @@ -0,0 +1,4698 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateDocxDocumentConvert 将 Markdown/HTML 格式的内容转换为文档块, 以便于将 Markdown/HTML 格式的内容插入到文档中。目前支持转换为的块类型包含文本、一到九级标题、无序列表、有序列表、代码块、引用、待办事项、图片、表格、表格单元格。 +// +// 若要将 Markdown/HTML 格式的内容插入到文档, 需依次执行以下操作: +// 1. 调用[创建文档](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document/create)接口创建一篇类型为 docx 的文档(若目标文档已存在, 则无需此步骤)。 +// 2. 调用当前接口将 Markdown/HTML 格式的内容转换为文档块。 +// 3. 调用[创建嵌套块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block-descendant/create)接口将步骤二中返回的块批量插入到目标文档中。 +// 在上述接口调用过程中需注意以下事项: +// - 将带表格的 Markdown/HTML 格式的内容转换为文档块后, 在调用[创建嵌套块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block-descendant/create)接口批量插入块到文档前, 需先去除表格(Table)块中的 `merge_info` 字段。由于当前 `merge_info` 为只读属性, 传入该字段会引发报错。 +// - 将包含图片的 Markdown/HTML 格式的内容转换为文档块, 并调用[创建嵌套块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block-descendant/create)接口将图片(Image)块插入到文档后, 需调用[上传图片素材](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/upload_all)接口, 以 Image BlockID 作为 `parent_node` 上传素材, 接着调用[更新块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/patch)或[批量更新块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/batch_update)接口, 指定 `replace_image` 操作, 将图片素材 ID 设置到对应的 Image Block。 +// - 当转换后的块数量过多时, 需分批调用[创建嵌套块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block-descendant/create)接口, 单次调用[创建嵌套块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block-descendant/create)接口最多可插入 1000 个块。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document/convert +func (r *DriveService) CreateDocxDocumentConvert(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) { + if r.cli.mock.mockDriveCreateDocxDocumentConvert != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateDocxDocumentConvert mock enable") + return r.cli.mock.mockDriveCreateDocxDocumentConvert(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "CreateDocxDocumentConvert", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/docx/v1/documents/blocks/convert", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createDocxDocumentConvertResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveCreateDocxDocumentConvert mock DriveCreateDocxDocumentConvert method +func (r *Mock) MockDriveCreateDocxDocumentConvert(f func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error)) { + r.mockDriveCreateDocxDocumentConvert = f +} + +// UnMockDriveCreateDocxDocumentConvert un-mock DriveCreateDocxDocumentConvert method +func (r *Mock) UnMockDriveCreateDocxDocumentConvert() { + r.mockDriveCreateDocxDocumentConvert = nil +} + +// CreateDocxDocumentConvertReq ... +type CreateDocxDocumentConvertReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ContentType string `json:"content_type,omitempty"` // 内容类型示例值: "markdown"可选值有: Markdown 格式HTML 格式 + Content string `json:"content,omitempty"` // 文本内容示例值: "Text \*\*Bold\*\* \*Italic\* \~\~Strikethrough\~\~ \`inline code\` Hyperlink: \[Feishu Open Platform\]\(https://open.feishu.cn\)\n\n\!\[image\]\(https://sf3-scmcdn-cn.feishucdn.com/obj/feishu-static/lark/open/website/share-logo.png\)\n\n\# Heading1\n\n\`\`\`\n hello word\n\`\`\`\n\n\> quote\n\n1\. ordered1\n2\. ordered2\n\n\- bullet1\n\- bullet2\n\n|Location|Features|Cuisine|\n|\----|\----|\----|\n\|Seafood Street|Seafood Market|Fresh Seafood, Lobsters, Crabs, scallops|" 长度范围: `1` ~ `10485760` 字符 +} + +// CreateDocxDocumentConvertResp ... +type CreateDocxDocumentConvertResp struct { + FirstLevelBlockIDs []string `json:"first_level_block_ids,omitempty"` // 第一级 Block 对应的临时 ID 列表, index 代表了 Block 的顺序 + Blocks []*DocxBlock `json:"blocks,omitempty"` // 带有父子关系的 Block 列表 + BlockIDToImageURLs []*CreateDocxDocumentConvertRespBlockIDToImageURL `json:"block_id_to_image_urls,omitempty"` // 如果要转换的内容中带有图片, 这里记录了临时 Block ID 和 Image URL 的对应关系 +} + +// CreateDocxDocumentConvertRespBlock ... +type CreateDocxDocumentConvertRespBlock struct { + BlockID string `json:"block_id,omitempty"` // 子块的唯一标识 + ParentID string `json:"parent_id,omitempty"` // 子块的父块 ID + Children []*DocxBlock `json:"children,omitempty"` // 子块的子块 ID 列表 + BlockType int64 `json:"block_type,omitempty"` // Block 类型可选值有: 页面 Block文本 Block标题 1 Block标题 2 Block标题 3 Block标题 4 Block标题 5 Block标题 6 Block标题 7 Block标题 8 Block标题 9 Block无序列表 Block有序列表 Block代码块 Block引用 Block待办事项 Block多维表格 Block高亮块 Block会话卡片 Block流程图 & UML Block分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。文件 Block分栏 Block分栏列 Block内嵌网页 Block图片 Block开放平台小组件 Block思维笔记 Block电子表格 Block表格 Block。了解如何在文档中插入表格, 参考[文档常见问题-如何插入表格并往单元格填充内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。表格单元格 Block视图 Block引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。任务 BlockOKR BlockOKR Objective BlockOKR Key Result BlockOKR 进展 Block文档小组件 BlockJira 问题 BlockWiki 子目录 Block画板 Block议程 Block议程项 Block议程项标题 Block议程项内容 Block链接预览 Block源同步块, 仅支持查询引用同步块, 仅支持查询。获取引用同步块内容详见: [如何获取引用同步块的内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq#19b71234)Wiki 新版子目录AI 模板 Block, 仅支持查询未支持 Block + Page *CreateDocxDocumentConvertRespBlockPage `json:"page,omitempty"` // 文档的根 Block, 也称页面 Block + Text *CreateDocxDocumentConvertRespBlockText `json:"text,omitempty"` // 文本 Block + Heading1 *CreateDocxDocumentConvertRespBlockHeading1 `json:"heading1,omitempty"` // 一级标题 Block + Heading2 *CreateDocxDocumentConvertRespBlockHeading2 `json:"heading2,omitempty"` // 二级标题 Block + Heading3 *CreateDocxDocumentConvertRespBlockHeading3 `json:"heading3,omitempty"` // 三级标题 Block + Heading4 *CreateDocxDocumentConvertRespBlockHeading4 `json:"heading4,omitempty"` // 四级标题 Block + Heading5 *CreateDocxDocumentConvertRespBlockHeading5 `json:"heading5,omitempty"` // 五级标题 Block + Heading6 *CreateDocxDocumentConvertRespBlockHeading6 `json:"heading6,omitempty"` // 六级标题 Block + Heading7 *CreateDocxDocumentConvertRespBlockHeading7 `json:"heading7,omitempty"` // 七级标题 Block + Heading8 *CreateDocxDocumentConvertRespBlockHeading8 `json:"heading8,omitempty"` // 八级标题 Block + Heading9 *CreateDocxDocumentConvertRespBlockHeading9 `json:"heading9,omitempty"` // 九级标题 Block + Bullet *CreateDocxDocumentConvertRespBlockBullet `json:"bullet,omitempty"` // 无序列表 Block + Ordered *CreateDocxDocumentConvertRespBlockOrdered `json:"ordered,omitempty"` // 有序列表 Block + Code *CreateDocxDocumentConvertRespBlockCode `json:"code,omitempty"` // 代码块 Block + Quote *CreateDocxDocumentConvertRespBlockQuote `json:"quote,omitempty"` // 引用 Block + Equation *CreateDocxDocumentConvertRespBlockEquation `json:"equation,omitempty"` // 公式 Block + Todo *CreateDocxDocumentConvertRespBlockTodo `json:"todo,omitempty"` // 待办事项 Block + Bitable *CreateDocxDocumentConvertRespBlockBitable `json:"bitable,omitempty"` // 多维表格 Block + Callout *CreateDocxDocumentConvertRespBlockCallout `json:"callout,omitempty"` // 高亮块 Block + ChatCard *CreateDocxDocumentConvertRespBlockChatCard `json:"chat_card,omitempty"` // 群聊卡片 Block + Diagram *CreateDocxDocumentConvertRespBlockDiagram `json:"diagram,omitempty"` // 流程图/UML Block + Divider interface{} `json:"divider,omitempty"` // 分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。 + File *CreateDocxDocumentConvertRespBlockFile `json:"file,omitempty"` // 文件 Block。了解如何在文档中插入文件, 参考[文档常见问题-如何插入文件/附件](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Grid *CreateDocxDocumentConvertRespBlockGrid `json:"grid,omitempty"` // 分栏 Block + GridColumn *CreateDocxDocumentConvertRespBlockGridColumn `json:"grid_column,omitempty"` // 分栏列 Block + Iframe *CreateDocxDocumentConvertRespBlockIframe `json:"iframe,omitempty"` // 内嵌 Block + Image *CreateDocxDocumentConvertRespBlockImage `json:"image,omitempty"` // 图片 Block。了解如何在文档中插入图片, 参考[文档常见问题-如何插入图片](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Isv *CreateDocxDocumentConvertRespBlockIsv `json:"isv,omitempty"` // 三方 Block + AddOns *CreateDocxDocumentConvertRespBlockAddOns `json:"add_ons,omitempty"` // Add-ons + Mindnote *CreateDocxDocumentConvertRespBlockMindnote `json:"mindnote,omitempty"` // 思维笔记 Block + Sheet *CreateDocxDocumentConvertRespBlockSheet `json:"sheet,omitempty"` // 电子表格 Block + Table *CreateDocxDocumentConvertRespBlockTable `json:"table,omitempty"` // 表格 Block + TableCell interface{} `json:"table_cell,omitempty"` // 单元格 Block + View *CreateDocxDocumentConvertRespBlockView `json:"view,omitempty"` // 视图 Block + Undefined interface{} `json:"undefined,omitempty"` // 未支持 Block + QuoteContainer interface{} `json:"quote_container,omitempty"` // 引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。 + Task *CreateDocxDocumentConvertRespBlockTask `json:"task,omitempty"` // 任务 Block + OKR *CreateDocxDocumentConvertRespBlockOKR `json:"okr,omitempty"` // OKR Block, 仅可在使用 `user_access_token` 时创建 + OKRObjective *CreateDocxDocumentConvertRespBlockOKRObjective `json:"okr_objective,omitempty"` // OKR Objective Block + OKRKeyResult *CreateDocxDocumentConvertRespBlockOKRKeyResult `json:"okr_key_result,omitempty"` // OKR Key Result + OKRProgress interface{} `json:"okr_progress,omitempty"` // OKR 进展信息 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 id 列表 + JiraIssue *CreateDocxDocumentConvertRespBlockJiraIssue `json:"jira_issue,omitempty"` // Jira 问题 + WikiCatalog *CreateDocxDocumentConvertRespBlockWikiCatalog `json:"wiki_catalog,omitempty"` // Wiki 子目录 Block + Board *CreateDocxDocumentConvertRespBlockBoard `json:"board,omitempty"` // 画板 Block + Agenda interface{} `json:"agenda,omitempty"` // 议程 Block + AgendaItem interface{} `json:"agenda_item,omitempty"` // 议程项 Block + AgendaItemTitle *CreateDocxDocumentConvertRespBlockAgendaItemTitle `json:"agenda_item_title,omitempty"` // 议程项标题 Block + AgendaItemContent interface{} `json:"agenda_item_content,omitempty"` // 议程项内容 Block + LinkPreview *CreateDocxDocumentConvertRespBlockLinkPreview `json:"link_preview,omitempty"` // 链接预览 Block + SourceSynced *CreateDocxDocumentConvertRespBlockSourceSynced `json:"source_synced,omitempty"` // 源同步块, 仅支持查询 + ReferenceSynced *CreateDocxDocumentConvertRespBlockReferenceSynced `json:"reference_synced,omitempty"` // 引用同步块, 仅支持查询。获取引用同步块内容详见: [如何获取引用同步块的内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq#19b71234) + SubPageList *CreateDocxDocumentConvertRespBlockSubPageList `json:"sub_page_list,omitempty"` // Wiki 新版子目录 + AITemplate interface{} `json:"ai_template,omitempty"` // AI 模板 Block, 仅支持查询 +} + +// CreateDocxDocumentConvertRespBlockAddOns ... +type CreateDocxDocumentConvertRespBlockAddOns struct { + ComponentID string `json:"component_id,omitempty"` // 文档小组件 ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 文档小组件类型, 比如问答互动"blk_636a0a6657db8001c8df5488"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 + Record string `json:"record,omitempty"` // 文档小组件内容数据, JSON 字符串 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitle struct { + Elements []*CreateDocxDocumentConvertRespBlockAgendaItemTitleElement `json:"elements,omitempty"` // 文本元素 + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElement ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElement struct { + TextRun *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRun `json:"text_run,omitempty"` // 文字 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档 + Reminder *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminder `json:"reminder,omitempty"` // 日期提醒 + File *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFile `json:"file,omitempty"` // 内联附件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlock `json:"inline_block,omitempty"` // 内联 block + Equation *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquation ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFile ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUser ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminder ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRun ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockAgendaItemTitleElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBitable ... +type CreateDocxDocumentConvertRespBlockBitable struct { + Token string `json:"token,omitempty"` // 多维表格文档 Token + ViewType int64 `json:"view_type,omitempty"` // 类型可选值有: 数据表看板 +} + +// CreateDocxDocumentConvertRespBlockBoard ... +type CreateDocxDocumentConvertRespBlockBoard struct { + Token string `json:"token,omitempty"` // 画板 token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Width int64 `json:"width,omitempty"` // 宽度, 单位 px;不填时自动适应文档宽度;值超出文档最大宽度时, 页面渲染为文档最大宽度 + Height int64 `json:"height,omitempty"` // 高度, 单位 px;不填时自动根据画板内容计算;值超出屏幕两倍高度时, 页面渲染为屏幕两倍高度 +} + +// CreateDocxDocumentConvertRespBlockBullet ... +type CreateDocxDocumentConvertRespBlockBullet struct { + Style *CreateDocxDocumentConvertRespBlockBulletStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockBulletElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockBulletElement ... +type CreateDocxDocumentConvertRespBlockBulletElement struct { + TextRun *CreateDocxDocumentConvertRespBlockBulletElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockBulletElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockBulletElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockBulletElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockBulletElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementEquation ... +type CreateDocxDocumentConvertRespBlockBulletElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementFile ... +type CreateDocxDocumentConvertRespBlockBulletElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockBulletElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionUser ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementReminder ... +type CreateDocxDocumentConvertRespBlockBulletElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletElementTextRun ... +type CreateDocxDocumentConvertRespBlockBulletElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockBulletElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockBulletStyle ... +type CreateDocxDocumentConvertRespBlockBulletStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockCallout ... +type CreateDocxDocumentConvertRespBlockCallout struct { + BackgroundColor int64 `json:"background_color,omitempty"` // 高亮块背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色中红色中橙色中黄色中绿色中蓝色中紫色灰色浅灰色 + BorderColor int64 `json:"border_color,omitempty"` // 边框色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + TextColor int64 `json:"text_color,omitempty"` // 文字颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + EmojiID string `json:"emoji_id,omitempty"` // 高亮块图标 +} + +// CreateDocxDocumentConvertRespBlockChatCard ... +type CreateDocxDocumentConvertRespBlockChatCard struct { + ChatID string `json:"chat_id,omitempty"` // 群聊天会话 ID。获取方式参考[群 ID 说明](ssl:ttdoc//uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// CreateDocxDocumentConvertRespBlockCode ... +type CreateDocxDocumentConvertRespBlockCode struct { + Style *CreateDocxDocumentConvertRespBlockCodeStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockCodeElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockCodeElement ... +type CreateDocxDocumentConvertRespBlockCodeElement struct { + TextRun *CreateDocxDocumentConvertRespBlockCodeElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockCodeElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockCodeElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockCodeElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockCodeElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementEquation ... +type CreateDocxDocumentConvertRespBlockCodeElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementFile ... +type CreateDocxDocumentConvertRespBlockCodeElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockCodeElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionUser ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementReminder ... +type CreateDocxDocumentConvertRespBlockCodeElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeElementTextRun ... +type CreateDocxDocumentConvertRespBlockCodeElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockCodeElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockCodeStyle ... +type CreateDocxDocumentConvertRespBlockCodeStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockDiagram ... +type CreateDocxDocumentConvertRespBlockDiagram struct { + DiagramType int64 `json:"diagram_type,omitempty"` // 绘图类型可选值有: 流程图UML 图 +} + +// CreateDocxDocumentConvertRespBlockEquation ... +type CreateDocxDocumentConvertRespBlockEquation struct { + Style *CreateDocxDocumentConvertRespBlockEquationStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockEquationElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockEquationElement ... +type CreateDocxDocumentConvertRespBlockEquationElement struct { + TextRun *CreateDocxDocumentConvertRespBlockEquationElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockEquationElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockEquationElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockEquationElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockEquationElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementEquation ... +type CreateDocxDocumentConvertRespBlockEquationElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementFile ... +type CreateDocxDocumentConvertRespBlockEquationElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockEquationElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionUser ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementReminder ... +type CreateDocxDocumentConvertRespBlockEquationElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationElementTextRun ... +type CreateDocxDocumentConvertRespBlockEquationElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockEquationElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockEquationStyle ... +type CreateDocxDocumentConvertRespBlockEquationStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockFile ... +type CreateDocxDocumentConvertRespBlockFile struct { + Token string `json:"token,omitempty"` // 附件 Token + Name string `json:"name,omitempty"` // 文件名 + ViewType int64 `json:"view_type,omitempty"` // 视图类型, 卡片视图(默认)或预览视图可选值有: 卡片视图预览视图 +} + +// CreateDocxDocumentConvertRespBlockGrid ... +type CreateDocxDocumentConvertRespBlockGrid struct { + ColumnSize int64 `json:"column_size,omitempty"` // 分栏列数量 +} + +// CreateDocxDocumentConvertRespBlockGridColumn ... +type CreateDocxDocumentConvertRespBlockGridColumn struct { + WidthRatio int64 `json:"width_ratio,omitempty"` // 当前分栏列占整个分栏的比例, 单位 % +} + +// CreateDocxDocumentConvertRespBlockHeading1 ... +type CreateDocxDocumentConvertRespBlockHeading1 struct { + Style *CreateDocxDocumentConvertRespBlockHeading1Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading1Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading1Element ... +type CreateDocxDocumentConvertRespBlockHeading1Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading1ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading1ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading1ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading1ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading1ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading1ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading1ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading1ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading1ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading1Style ... +type CreateDocxDocumentConvertRespBlockHeading1Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading2 ... +type CreateDocxDocumentConvertRespBlockHeading2 struct { + Style *CreateDocxDocumentConvertRespBlockHeading2Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading2Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading2Element ... +type CreateDocxDocumentConvertRespBlockHeading2Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading2ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading2ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading2ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading2ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading2ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading2ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading2ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading2ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading2ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading2Style ... +type CreateDocxDocumentConvertRespBlockHeading2Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading3 ... +type CreateDocxDocumentConvertRespBlockHeading3 struct { + Style *CreateDocxDocumentConvertRespBlockHeading3Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading3Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading3Element ... +type CreateDocxDocumentConvertRespBlockHeading3Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading3ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading3ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading3ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading3ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading3ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading3ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading3ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading3ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading3ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading3Style ... +type CreateDocxDocumentConvertRespBlockHeading3Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading4 ... +type CreateDocxDocumentConvertRespBlockHeading4 struct { + Style *CreateDocxDocumentConvertRespBlockHeading4Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading4Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading4Element ... +type CreateDocxDocumentConvertRespBlockHeading4Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading4ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading4ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading4ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading4ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading4ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading4ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading4ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading4ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading4ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading4Style ... +type CreateDocxDocumentConvertRespBlockHeading4Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading5 ... +type CreateDocxDocumentConvertRespBlockHeading5 struct { + Style *CreateDocxDocumentConvertRespBlockHeading5Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading5Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading5Element ... +type CreateDocxDocumentConvertRespBlockHeading5Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading5ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading5ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading5ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading5ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading5ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading5ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading5ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading5ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading5ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading5Style ... +type CreateDocxDocumentConvertRespBlockHeading5Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading6 ... +type CreateDocxDocumentConvertRespBlockHeading6 struct { + Style *CreateDocxDocumentConvertRespBlockHeading6Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading6Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading6Element ... +type CreateDocxDocumentConvertRespBlockHeading6Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading6ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading6ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading6ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading6ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading6ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading6ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading6ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading6ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading6ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading6Style ... +type CreateDocxDocumentConvertRespBlockHeading6Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading7 ... +type CreateDocxDocumentConvertRespBlockHeading7 struct { + Style *CreateDocxDocumentConvertRespBlockHeading7Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading7Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading7Element ... +type CreateDocxDocumentConvertRespBlockHeading7Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading7ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading7ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading7ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading7ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading7ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading7ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading7ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading7ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading7ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading7Style ... +type CreateDocxDocumentConvertRespBlockHeading7Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading8 ... +type CreateDocxDocumentConvertRespBlockHeading8 struct { + Style *CreateDocxDocumentConvertRespBlockHeading8Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading8Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading8Element ... +type CreateDocxDocumentConvertRespBlockHeading8Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading8ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading8ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading8ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading8ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading8ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading8ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading8ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading8ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading8ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading8Style ... +type CreateDocxDocumentConvertRespBlockHeading8Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockHeading9 ... +type CreateDocxDocumentConvertRespBlockHeading9 struct { + Style *CreateDocxDocumentConvertRespBlockHeading9Style `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockHeading9Element `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockHeading9Element ... +type CreateDocxDocumentConvertRespBlockHeading9Element struct { + TextRun *CreateDocxDocumentConvertRespBlockHeading9ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockHeading9ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockHeading9ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockHeading9ElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementEquation ... +type CreateDocxDocumentConvertRespBlockHeading9ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementFile ... +type CreateDocxDocumentConvertRespBlockHeading9ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionUser ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementReminder ... +type CreateDocxDocumentConvertRespBlockHeading9ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementTextRun ... +type CreateDocxDocumentConvertRespBlockHeading9ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockHeading9ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockHeading9Style ... +type CreateDocxDocumentConvertRespBlockHeading9Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockIDToImageURL ... +type CreateDocxDocumentConvertRespBlockIDToImageURL struct { + BlockID string `json:"block_id,omitempty"` // 块 ID + ImageURL string `json:"image_url,omitempty"` // 图片 URL +} + +// CreateDocxDocumentConvertRespBlockIframe ... +type CreateDocxDocumentConvertRespBlockIframe struct { + Component *CreateDocxDocumentConvertRespBlockIframeComponent `json:"component,omitempty"` // iframe 的组成元素 +} + +// CreateDocxDocumentConvertRespBlockIframeComponent ... +type CreateDocxDocumentConvertRespBlockIframeComponent struct { + IframeType int64 `json:"iframe_type,omitempty"` // iframe 类型可选值有: 哔哩哔哩西瓜视频优酷Airtable百度地图高德地图UndefinedFigma墨刀CanvaCodePen飞书问卷金数据UndefinedUndefinedOther + URL string `json:"url,omitempty"` // iframe 目标 url(需要进行 url_encode) +} + +// CreateDocxDocumentConvertRespBlockImage ... +type CreateDocxDocumentConvertRespBlockImage struct { + Width int64 `json:"width,omitempty"` // 宽度单位 px + Height int64 `json:"height,omitempty"` // 高度单位 px + Token string `json:"token,omitempty"` // 图片 Token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Caption *CreateDocxDocumentConvertRespBlockImageCaption `json:"caption,omitempty"` // 图片描述 +} + +// CreateDocxDocumentConvertRespBlockImageCaption ... +type CreateDocxDocumentConvertRespBlockImageCaption struct { + Content string `json:"content,omitempty"` // 描述的文本内容 +} + +// CreateDocxDocumentConvertRespBlockIsv ... +type CreateDocxDocumentConvertRespBlockIsv struct { + ComponentID string `json:"component_id,omitempty"` // 团队互动应用唯一ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 团队互动应用类型, 比如信息收集"blk_5f992038c64240015d280958"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 +} + +// CreateDocxDocumentConvertRespBlockJiraIssue ... +type CreateDocxDocumentConvertRespBlockJiraIssue struct { + ID string `json:"id,omitempty"` // Jira 问题 ID + Key string `json:"key,omitempty"` // Jira 问题 key +} + +// CreateDocxDocumentConvertRespBlockLinkPreview ... +type CreateDocxDocumentConvertRespBlockLinkPreview struct { + URL string `json:"url,omitempty"` // 链接 + URLType string `json:"url_type,omitempty"` // 链接类型可选值有: 消息链接未定义的链接类型 +} + +// CreateDocxDocumentConvertRespBlockMindnote ... +type CreateDocxDocumentConvertRespBlockMindnote struct { + Token string `json:"token,omitempty"` // 思维导图 token +} + +// CreateDocxDocumentConvertRespBlockOKR ... +type CreateDocxDocumentConvertRespBlockOKR struct { + OKRID string `json:"okr_id,omitempty"` // OKR ID, 获取需要插入的 OKR ID 可见[获取用户的 OKR 列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/okr-v1/user-okr/list) + Objectives []*CreateDocxDocumentConvertRespBlockOKRObjective `json:"objectives,omitempty"` // OKR Block 中的 Objective ID 和 Key Result ID, 此值为空时插入 OKR 下所有的 Objective 和 Key Result + PeriodDisplayStatus string `json:"period_display_status,omitempty"` // 周期的状态可选值有: 默认正常失效隐藏 + PeriodNameZh string `json:"period_name_zh,omitempty"` // 周期名 - 中文 + PeriodNameEn string `json:"period_name_en,omitempty"` // 周期名 - 英文 + UserID string `json:"user_id,omitempty"` // OKR 所属的用户 ID + VisibleSetting *CreateDocxDocumentConvertRespBlockOKRVisibleSetting `json:"visible_setting,omitempty"` // 可见性设置 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResult ... +type CreateDocxDocumentConvertRespBlockOKRKeyResult struct { + KrID string `json:"kr_id,omitempty"` // Key Result 的 ID + Confidential bool `json:"confidential,omitempty"` // 是否在 OKR 平台设置了私密权限 + Position int64 `json:"position,omitempty"` // Key Result 的位置编号, 对应 Block 中 KR1、KR2 的 1、2。 + Score int64 `json:"score,omitempty"` // 打分信息 + Visible bool `json:"visible,omitempty"` // OKR Block 中此 Key Result 是否可见 + Weight float64 `json:"weight,omitempty"` // Key Result 的权重 + ProgressRate *CreateDocxDocumentConvertRespBlockOKRKeyResultProgressRate `json:"progress_rate,omitempty"` // 进展信息 + Content *CreateDocxDocumentConvertRespBlockOKRKeyResultContent `json:"content,omitempty"` // Key Result 的文本内容 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContent ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContent struct { + Style *CreateDocxDocumentConvertRespBlockOKRKeyResultContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockOKRKeyResultContentElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElement ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElement struct { + TextRun *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquation ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFile ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUser ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminder ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRun ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultContentStyle ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockOKRKeyResultProgressRate ... +type CreateDocxDocumentConvertRespBlockOKRKeyResultProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// CreateDocxDocumentConvertRespBlockOKRObjective ... +type CreateDocxDocumentConvertRespBlockOKRObjective struct { + ObjectiveID string `json:"objective_id,omitempty"` // OKR 中 Objective 的 ID + KrIDs []string `json:"kr_ids,omitempty"` // Key Result 的 ID 列表, 此值为空时插入当前 Objective 下的所有 Key Result +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContent ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContent struct { + Style *CreateDocxDocumentConvertRespBlockOKRObjectiveContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockOKRObjectiveContentElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElement ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElement struct { + TextRun *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquation ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFile ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUser ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminder ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRun ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveContentStyle ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockOKRObjectiveProgressRate ... +type CreateDocxDocumentConvertRespBlockOKRObjectiveProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// CreateDocxDocumentConvertRespBlockOKRVisibleSetting ... +type CreateDocxDocumentConvertRespBlockOKRVisibleSetting struct { + ProgressFillAreaVisible bool `json:"progress_fill_area_visible,omitempty"` // 进展编辑区域是否可见 + ProgressStatusVisible bool `json:"progress_status_visible,omitempty"` // 进展状态是否可见 + ScoreVisible bool `json:"score_visible,omitempty"` // 分数是否可见 +} + +// CreateDocxDocumentConvertRespBlockOrdered ... +type CreateDocxDocumentConvertRespBlockOrdered struct { + Style *CreateDocxDocumentConvertRespBlockOrderedStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockOrderedElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockOrderedElement ... +type CreateDocxDocumentConvertRespBlockOrderedElement struct { + TextRun *CreateDocxDocumentConvertRespBlockOrderedElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockOrderedElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockOrderedElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockOrderedElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockOrderedElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementEquation ... +type CreateDocxDocumentConvertRespBlockOrderedElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementFile ... +type CreateDocxDocumentConvertRespBlockOrderedElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockOrderedElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionUser ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementReminder ... +type CreateDocxDocumentConvertRespBlockOrderedElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedElementTextRun ... +type CreateDocxDocumentConvertRespBlockOrderedElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockOrderedElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockOrderedStyle ... +type CreateDocxDocumentConvertRespBlockOrderedStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockPage ... +type CreateDocxDocumentConvertRespBlockPage struct { + Style *CreateDocxDocumentConvertRespBlockPageStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockPageElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockPageElement ... +type CreateDocxDocumentConvertRespBlockPageElement struct { + TextRun *CreateDocxDocumentConvertRespBlockPageElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockPageElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockPageElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockPageElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockPageElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockPageElementEquation ... +type CreateDocxDocumentConvertRespBlockPageElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementFile ... +type CreateDocxDocumentConvertRespBlockPageElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockPageElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockPageElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionUser ... +type CreateDocxDocumentConvertRespBlockPageElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementReminder ... +type CreateDocxDocumentConvertRespBlockPageElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageElementTextRun ... +type CreateDocxDocumentConvertRespBlockPageElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockPageElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockPageStyle ... +type CreateDocxDocumentConvertRespBlockPageStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockQuote ... +type CreateDocxDocumentConvertRespBlockQuote struct { + Style *CreateDocxDocumentConvertRespBlockQuoteStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockQuoteElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockQuoteElement ... +type CreateDocxDocumentConvertRespBlockQuoteElement struct { + TextRun *CreateDocxDocumentConvertRespBlockQuoteElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockQuoteElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockQuoteElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockQuoteElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockQuoteElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementEquation ... +type CreateDocxDocumentConvertRespBlockQuoteElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementFile ... +type CreateDocxDocumentConvertRespBlockQuoteElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockQuoteElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionUser ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementReminder ... +type CreateDocxDocumentConvertRespBlockQuoteElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteElementTextRun ... +type CreateDocxDocumentConvertRespBlockQuoteElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockQuoteElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockQuoteStyle ... +type CreateDocxDocumentConvertRespBlockQuoteStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockReferenceSynced ... +type CreateDocxDocumentConvertRespBlockReferenceSynced struct { + SourceDocumentID string `json:"source_document_id,omitempty"` // 源文档的文档 ID + SourceBlockID string `json:"source_block_id,omitempty"` // 源同步块的 Block ID +} + +// CreateDocxDocumentConvertRespBlockSheet ... +type CreateDocxDocumentConvertRespBlockSheet struct { + Token string `json:"token,omitempty"` // 电子表格 block 的 token 和工作表的 ID 的组合 + RowSize int64 `json:"row_size,omitempty"` // 电子表格行数量 + ColumnSize int64 `json:"column_size,omitempty"` // 电子表格列数量 +} + +// CreateDocxDocumentConvertRespBlockSourceSynced ... +type CreateDocxDocumentConvertRespBlockSourceSynced struct { + Elements []*CreateDocxDocumentConvertRespBlockSourceSyncedElement `json:"elements,omitempty"` // 同步块独立页标题, 由文本元素组成 + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElement ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElement struct { + TextRun *CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockSourceSyncedElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockSourceSyncedElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockSourceSyncedElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementEquation ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementFile ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUser ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementReminder ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRun ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockSourceSyncedElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockSubPageList ... +type CreateDocxDocumentConvertRespBlockSubPageList struct { + WikiToken string `json:"wiki_token,omitempty"` // 知识库节点 token, 仅支持知识库文档创建子页面列表, 且需传入当前页面的 wiki token +} + +// CreateDocxDocumentConvertRespBlockTable ... +type CreateDocxDocumentConvertRespBlockTable struct { + Cells []string `json:"cells,omitempty"` // 单元格数组, 数组元素为 Table Cell Block 的 ID + Property *CreateDocxDocumentConvertRespBlockTableProperty `json:"property,omitempty"` // 表格属性 +} + +// CreateDocxDocumentConvertRespBlockTableProperty ... +type CreateDocxDocumentConvertRespBlockTableProperty struct { + RowSize int64 `json:"row_size,omitempty"` // 行数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 在单个表格单元格不超过上限 2000 情况下, 该字段无固定最大值 + ColumnSize int64 `json:"column_size,omitempty"` // 列数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 该字段最大值为 100 + ColumnWidth []int64 `json:"column_width,omitempty"` // 列宽, 单位像素(px) + MergeInfo []*CreateDocxDocumentConvertRespBlockTablePropertyMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息。创建 Table 时, 此属性只读, 将由系统自动生成。如果需要合并单元格, 可以通过更新块接口的子请求 `merge_table_cells` 实现 + HeaderRow bool `json:"header_row,omitempty"` // 设置首行为标题行 + HeaderColumn bool `json:"header_column,omitempty"` // 设置首列为标题列 +} + +// CreateDocxDocumentConvertRespBlockTablePropertyMergeInfo ... +type CreateDocxDocumentConvertRespBlockTablePropertyMergeInfo struct { + RowSpan int64 `json:"row_span,omitempty"` // 从当前行索引起被合并的连续行数 + ColSpan int64 `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数 +} + +// CreateDocxDocumentConvertRespBlockTask ... +type CreateDocxDocumentConvertRespBlockTask struct { + TaskID string `json:"task_id,omitempty"` // 任务 ID, 查询具体任务详情见 [获取任务详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/get) + Folded bool `json:"folded,omitempty"` // 折叠状态 +} + +// CreateDocxDocumentConvertRespBlockText ... +type CreateDocxDocumentConvertRespBlockText struct { + Style *CreateDocxDocumentConvertRespBlockTextStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockTextElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockTextElement ... +type CreateDocxDocumentConvertRespBlockTextElement struct { + TextRun *CreateDocxDocumentConvertRespBlockTextElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockTextElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockTextElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockTextElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockTextElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockTextElementEquation ... +type CreateDocxDocumentConvertRespBlockTextElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementFile ... +type CreateDocxDocumentConvertRespBlockTextElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockTextElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockTextElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionUser ... +type CreateDocxDocumentConvertRespBlockTextElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementReminder ... +type CreateDocxDocumentConvertRespBlockTextElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextElementTextRun ... +type CreateDocxDocumentConvertRespBlockTextElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTextElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTextStyle ... +type CreateDocxDocumentConvertRespBlockTextStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockTodo ... +type CreateDocxDocumentConvertRespBlockTodo struct { + Style *CreateDocxDocumentConvertRespBlockTodoStyle `json:"style,omitempty"` // 文本样式 + Elements []*CreateDocxDocumentConvertRespBlockTodoElement `json:"elements,omitempty"` // 文本元素 +} + +// CreateDocxDocumentConvertRespBlockTodoElement ... +type CreateDocxDocumentConvertRespBlockTodoElement struct { + TextRun *CreateDocxDocumentConvertRespBlockTodoElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *CreateDocxDocumentConvertRespBlockTodoElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *CreateDocxDocumentConvertRespBlockTodoElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *CreateDocxDocumentConvertRespBlockTodoElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *CreateDocxDocumentConvertRespBlockTodoElementEquation `json:"equation,omitempty"` // 公式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementEquation ... +type CreateDocxDocumentConvertRespBlockTodoElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementFile ... +type CreateDocxDocumentConvertRespBlockTodoElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementInlineBlock ... +type CreateDocxDocumentConvertRespBlockTodoElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionDoc ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionUser ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementReminder ... +type CreateDocxDocumentConvertRespBlockTodoElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoElementTextRun ... +type CreateDocxDocumentConvertRespBlockTodoElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyle ... +type CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyleLink ... +type CreateDocxDocumentConvertRespBlockTodoElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// CreateDocxDocumentConvertRespBlockTodoStyle ... +type CreateDocxDocumentConvertRespBlockTodoStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// CreateDocxDocumentConvertRespBlockView ... +type CreateDocxDocumentConvertRespBlockView struct { + ViewType int64 `json:"view_type,omitempty"` // 视图类型可选值有: 卡片视图预览视图内联视图 +} + +// CreateDocxDocumentConvertRespBlockWikiCatalog ... +type CreateDocxDocumentConvertRespBlockWikiCatalog struct { + WikiToken string `json:"wiki_token,omitempty"` // 知识库 token +} + +// createDocxDocumentConvertResp ... +type createDocxDocumentConvertResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateDocxDocumentConvertResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_drive_comment_delete.go b/api_drive_comment_delete.go index 975af834..2ec7ceea 100644 --- a/api_drive_comment_delete.go +++ b/api_drive_comment_delete.go @@ -66,7 +66,8 @@ type DeleteDriveCommentReq struct { } // DeleteDriveCommentResp ... -type DeleteDriveCommentResp struct{} +type DeleteDriveCommentResp struct { +} // deleteDriveCommentResp ... type deleteDriveCommentResp struct { diff --git a/api_drive_comment_patch.go b/api_drive_comment_patch.go index 6f48b7df..b7af2f63 100644 --- a/api_drive_comment_patch.go +++ b/api_drive_comment_patch.go @@ -66,7 +66,8 @@ type UpdateDriveCommentPatchReq struct { } // UpdateDriveCommentPatchResp ... -type UpdateDriveCommentPatchResp struct{} +type UpdateDriveCommentPatchResp struct { +} // updateDriveCommentPatchResp ... type updateDriveCommentPatchResp struct { diff --git a/api_drive_comment_update.go b/api_drive_comment_update.go index ec030cf6..4a1a87db 100644 --- a/api_drive_comment_update.go +++ b/api_drive_comment_update.go @@ -96,7 +96,8 @@ type UpdateDriveCommentReqContentElementTextRun struct { } // UpdateDriveCommentResp ... -type UpdateDriveCommentResp struct{} +type UpdateDriveCommentResp struct { +} // updateDriveCommentResp ... type updateDriveCommentResp struct { diff --git a/api_drive_doc_content_get.go b/api_drive_doc_content_get.go index 5ff1c537..80a6750c 100644 --- a/api_drive_doc_content_get.go +++ b/api_drive_doc_content_get.go @@ -34,8 +34,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDM2YjL1AjN24SNwYjN // new doc: https://open.feishu.cn/document/server-docs/docs/docs/docs/content/get-document -// -// Deprecated func (r *DriveService) GetDriveDocContent(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) { if r.cli.mock.mockDriveGetDriveDocContent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDriveDocContent mock enable") diff --git a/api_drive_doc_content_update.go b/api_drive_doc_content_update.go index e74b1253..4fca4f95 100644 --- a/api_drive_doc_content_update.go +++ b/api_drive_doc_content_update.go @@ -35,8 +35,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uYDM2YjL2AjN24iNwYjN // new doc: https://open.feishu.cn/document/server-docs/docs/docs/docs/content/batch-update-document -// -// Deprecated func (r *DriveService) UpdateDriveDocContent(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) { if r.cli.mock.mockDriveUpdateDriveDocContent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateDriveDocContent mock enable") @@ -77,7 +75,8 @@ type UpdateDriveDocContentReq struct { } // UpdateDriveDocContentResp ... -type UpdateDriveDocContentResp struct{} +type UpdateDriveDocContentResp struct { +} // updateDriveDocContentResp ... type updateDriveDocContentResp struct { diff --git a/api_drive_doc_create.go b/api_drive_doc_create.go index fe355aa8..3eb414d9 100644 --- a/api_drive_doc_create.go +++ b/api_drive_doc_create.go @@ -31,8 +31,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/ugDM2YjL4AjN24COwYjN // new doc: https://open.feishu.cn/document/server-docs/docs/docs/docs/apiRef/create-document -// -// Deprecated func (r *DriveService) CreateDriveDoc(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) { if r.cli.mock.mockDriveCreateDriveDoc != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateDriveDoc mock enable") diff --git a/api_drive_doc_raw_content_get.go b/api_drive_doc_raw_content_get.go index 4e697cef..d6e3716c 100644 --- a/api_drive_doc_raw_content_get.go +++ b/api_drive_doc_raw_content_get.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/ukzNzUjL5czM14SO3MTN // new doc: https://open.feishu.cn/document/server-docs/docs/docs/docs/content/obtain-document-content -// -// Deprecated func (r *DriveService) GetDriveDocRawContent(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) { if r.cli.mock.mockDriveGetDriveDocRawContent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDriveDocRawContent mock enable") diff --git a/api_drive_docx_block_list_of_block.go b/api_drive_docx_block_list_of_block.go index 8f59f1f4..ae2cab28 100644 --- a/api_drive_docx_block_list_of_block.go +++ b/api_drive_docx_block_list_of_block.go @@ -79,6 +79,4590 @@ type GetDocxBlockListOfBlockResp struct { HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } +// GetDocxBlockListOfBlockRespItem ... +type GetDocxBlockListOfBlockRespItem struct { + BlockID string `json:"block_id,omitempty"` // 子块的唯一标识 + ParentID string `json:"parent_id,omitempty"` // 子块的父块 ID + Children []*DocxBlock `json:"children,omitempty"` // 子块的子块 ID 列表 + BlockType int64 `json:"block_type,omitempty"` // Block 类型可选值有: 页面 Block文本 Block标题 1 Block标题 2 Block标题 3 Block标题 4 Block标题 5 Block标题 6 Block标题 7 Block标题 8 Block标题 9 Block无序列表 Block有序列表 Block代码块 Block引用 Block待办事项 Block多维表格 Block高亮块 Block会话卡片 Block流程图 & UML Block分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。文件 Block分栏 Block分栏列 Block内嵌网页 Block图片 Block开放平台小组件 Block思维笔记 Block电子表格 Block表格 Block。了解如何在文档中插入表格, 参考[文档常见问题-如何插入表格并往单元格填充内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。表格单元格 Block视图 Block引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。任务 BlockOKR BlockOKR Objective BlockOKR Key Result BlockOKR 进展 Block文档小组件 BlockJira 问题 BlockWiki 子目录 Block画板 Block议程 Block议程项 Block议程项标题 Block议程项内容 Block链接预览 Block源同步块, 仅支持查询引用同步块, 仅支持查询。获取引用同步块内容详见: [如何获取引用同步块的内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq#19b71234)Wiki 新版子目录AI 模板 Block, 仅支持查询未支持 Block + Page *GetDocxBlockListOfBlockRespItemPage `json:"page,omitempty"` // 文档的根 Block, 也称页面 Block + Text *GetDocxBlockListOfBlockRespItemText `json:"text,omitempty"` // 文本 Block + Heading1 *GetDocxBlockListOfBlockRespItemHeading1 `json:"heading1,omitempty"` // 一级标题 Block + Heading2 *GetDocxBlockListOfBlockRespItemHeading2 `json:"heading2,omitempty"` // 二级标题 Block + Heading3 *GetDocxBlockListOfBlockRespItemHeading3 `json:"heading3,omitempty"` // 三级标题 Block + Heading4 *GetDocxBlockListOfBlockRespItemHeading4 `json:"heading4,omitempty"` // 四级标题 Block + Heading5 *GetDocxBlockListOfBlockRespItemHeading5 `json:"heading5,omitempty"` // 五级标题 Block + Heading6 *GetDocxBlockListOfBlockRespItemHeading6 `json:"heading6,omitempty"` // 六级标题 Block + Heading7 *GetDocxBlockListOfBlockRespItemHeading7 `json:"heading7,omitempty"` // 七级标题 Block + Heading8 *GetDocxBlockListOfBlockRespItemHeading8 `json:"heading8,omitempty"` // 八级标题 Block + Heading9 *GetDocxBlockListOfBlockRespItemHeading9 `json:"heading9,omitempty"` // 九级标题 Block + Bullet *GetDocxBlockListOfBlockRespItemBullet `json:"bullet,omitempty"` // 无序列表 Block + Ordered *GetDocxBlockListOfBlockRespItemOrdered `json:"ordered,omitempty"` // 有序列表 Block + Code *GetDocxBlockListOfBlockRespItemCode `json:"code,omitempty"` // 代码块 Block + Quote *GetDocxBlockListOfBlockRespItemQuote `json:"quote,omitempty"` // 引用 Block + Equation *GetDocxBlockListOfBlockRespItemEquation `json:"equation,omitempty"` // 公式 Block + Todo *GetDocxBlockListOfBlockRespItemTodo `json:"todo,omitempty"` // 待办事项 Block + Bitable *GetDocxBlockListOfBlockRespItemBitable `json:"bitable,omitempty"` // 多维表格 Block + Callout *GetDocxBlockListOfBlockRespItemCallout `json:"callout,omitempty"` // 高亮块 Block + ChatCard *GetDocxBlockListOfBlockRespItemChatCard `json:"chat_card,omitempty"` // 群聊卡片 Block + Diagram *GetDocxBlockListOfBlockRespItemDiagram `json:"diagram,omitempty"` // 流程图/UML Block + Divider interface{} `json:"divider,omitempty"` // 分割线 Block。为空结构体, 需传入 `{}` 创建分割线 Block。 + File *GetDocxBlockListOfBlockRespItemFile `json:"file,omitempty"` // 文件 Block。了解如何在文档中插入文件, 参考[文档常见问题-如何插入文件/附件](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Grid *GetDocxBlockListOfBlockRespItemGrid `json:"grid,omitempty"` // 分栏 Block + GridColumn *GetDocxBlockListOfBlockRespItemGridColumn `json:"grid_column,omitempty"` // 分栏列 Block + Iframe *GetDocxBlockListOfBlockRespItemIframe `json:"iframe,omitempty"` // 内嵌 Block + Image *GetDocxBlockListOfBlockRespItemImage `json:"image,omitempty"` // 图片 Block。了解如何在文档中插入图片, 参考[文档常见问题-如何插入图片](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq)。 + Isv *GetDocxBlockListOfBlockRespItemIsv `json:"isv,omitempty"` // 三方 Block + AddOns *GetDocxBlockListOfBlockRespItemAddOns `json:"add_ons,omitempty"` // Add-ons + Mindnote *GetDocxBlockListOfBlockRespItemMindnote `json:"mindnote,omitempty"` // 思维笔记 Block + Sheet *GetDocxBlockListOfBlockRespItemSheet `json:"sheet,omitempty"` // 电子表格 Block + Table *GetDocxBlockListOfBlockRespItemTable `json:"table,omitempty"` // 表格 Block + TableCell interface{} `json:"table_cell,omitempty"` // 单元格 Block + View *GetDocxBlockListOfBlockRespItemView `json:"view,omitempty"` // 视图 Block + Undefined interface{} `json:"undefined,omitempty"` // 未支持 Block + QuoteContainer interface{} `json:"quote_container,omitempty"` // 引用容器 Block。为空结构体, 需传入 `{}` 创建引用容器 Block。 + Task *GetDocxBlockListOfBlockRespItemTask `json:"task,omitempty"` // 任务 Block + OKR *GetDocxBlockListOfBlockRespItemOKR `json:"okr,omitempty"` // OKR Block, 仅可在使用 `user_access_token` 时创建 + OKRObjective *GetDocxBlockListOfBlockRespItemOKRObjective `json:"okr_objective,omitempty"` // OKR Objective Block + OKRKeyResult *GetDocxBlockListOfBlockRespItemOKRKeyResult `json:"okr_key_result,omitempty"` // OKR Key Result + OKRProgress interface{} `json:"okr_progress,omitempty"` // OKR 进展信息 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 id 列表 + JiraIssue *GetDocxBlockListOfBlockRespItemJiraIssue `json:"jira_issue,omitempty"` // Jira 问题 + WikiCatalog *GetDocxBlockListOfBlockRespItemWikiCatalog `json:"wiki_catalog,omitempty"` // Wiki 子目录 Block + Board *GetDocxBlockListOfBlockRespItemBoard `json:"board,omitempty"` // 画板 Block + Agenda interface{} `json:"agenda,omitempty"` // 议程 Block + AgendaItem interface{} `json:"agenda_item,omitempty"` // 议程项 Block + AgendaItemTitle *GetDocxBlockListOfBlockRespItemAgendaItemTitle `json:"agenda_item_title,omitempty"` // 议程项标题 Block + AgendaItemContent interface{} `json:"agenda_item_content,omitempty"` // 议程项内容 Block + LinkPreview *GetDocxBlockListOfBlockRespItemLinkPreview `json:"link_preview,omitempty"` // 链接预览 Block + SourceSynced *GetDocxBlockListOfBlockRespItemSourceSynced `json:"source_synced,omitempty"` // 源同步块, 仅支持查询 + ReferenceSynced *GetDocxBlockListOfBlockRespItemReferenceSynced `json:"reference_synced,omitempty"` // 引用同步块, 仅支持查询。获取引用同步块内容详见: [如何获取引用同步块的内容](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/faq#19b71234) + SubPageList *GetDocxBlockListOfBlockRespItemSubPageList `json:"sub_page_list,omitempty"` // Wiki 新版子目录 + AITemplate interface{} `json:"ai_template,omitempty"` // AI 模板 Block, 仅支持查询 +} + +// GetDocxBlockListOfBlockRespItemAddOns ... +type GetDocxBlockListOfBlockRespItemAddOns struct { + ComponentID string `json:"component_id,omitempty"` // 文档小组件 ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 文档小组件类型, 比如问答互动"blk_636a0a6657db8001c8df5488"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 + Record string `json:"record,omitempty"` // 文档小组件内容数据, JSON 字符串 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitle struct { + Elements []*GetDocxBlockListOfBlockRespItemAgendaItemTitleElement `json:"elements,omitempty"` // 文本元素 + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElement ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElement struct { + TextRun *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRun `json:"text_run,omitempty"` // 文字 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档 + Reminder *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminder `json:"reminder,omitempty"` // 日期提醒 + File *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFile `json:"file,omitempty"` // 内联附件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlock `json:"inline_block,omitempty"` // 内联 block + Equation *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquation ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFile ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUser ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminder ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRun ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemAgendaItemTitleElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBitable ... +type GetDocxBlockListOfBlockRespItemBitable struct { + Token string `json:"token,omitempty"` // 多维表格文档 Token +} + +// GetDocxBlockListOfBlockRespItemBoard ... +type GetDocxBlockListOfBlockRespItemBoard struct { + Token string `json:"token,omitempty"` // 画板 token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Width int64 `json:"width,omitempty"` // 宽度, 单位 px;不填时自动适应文档宽度;值超出文档最大宽度时, 页面渲染为文档最大宽度 + Height int64 `json:"height,omitempty"` // 高度, 单位 px;不填时自动根据画板内容计算;值超出屏幕两倍高度时, 页面渲染为屏幕两倍高度 +} + +// GetDocxBlockListOfBlockRespItemBullet ... +type GetDocxBlockListOfBlockRespItemBullet struct { + Style *GetDocxBlockListOfBlockRespItemBulletStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemBulletElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemBulletElement ... +type GetDocxBlockListOfBlockRespItemBulletElement struct { + TextRun *GetDocxBlockListOfBlockRespItemBulletElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemBulletElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemBulletElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemBulletElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemBulletElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementEquation ... +type GetDocxBlockListOfBlockRespItemBulletElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementFile ... +type GetDocxBlockListOfBlockRespItemBulletElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemBulletElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionUser ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementReminder ... +type GetDocxBlockListOfBlockRespItemBulletElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletElementTextRun ... +type GetDocxBlockListOfBlockRespItemBulletElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemBulletElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemBulletStyle ... +type GetDocxBlockListOfBlockRespItemBulletStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemCallout ... +type GetDocxBlockListOfBlockRespItemCallout struct { + BackgroundColor int64 `json:"background_color,omitempty"` // 高亮块背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色中红色中橙色中黄色中绿色中蓝色中紫色灰色浅灰色 + BorderColor int64 `json:"border_color,omitempty"` // 边框色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + TextColor int64 `json:"text_color,omitempty"` // 文字颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + EmojiID string `json:"emoji_id,omitempty"` // 高亮块图标 +} + +// GetDocxBlockListOfBlockRespItemChatCard ... +type GetDocxBlockListOfBlockRespItemChatCard struct { + ChatID string `json:"chat_id,omitempty"` // 群聊天会话 ID。获取方式参考[群 ID 说明](ssl:ttdoc//uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxBlockListOfBlockRespItemCode ... +type GetDocxBlockListOfBlockRespItemCode struct { + Style *GetDocxBlockListOfBlockRespItemCodeStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemCodeElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemCodeElement ... +type GetDocxBlockListOfBlockRespItemCodeElement struct { + TextRun *GetDocxBlockListOfBlockRespItemCodeElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemCodeElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemCodeElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemCodeElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemCodeElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementEquation ... +type GetDocxBlockListOfBlockRespItemCodeElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementFile ... +type GetDocxBlockListOfBlockRespItemCodeElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemCodeElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionUser ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementReminder ... +type GetDocxBlockListOfBlockRespItemCodeElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeElementTextRun ... +type GetDocxBlockListOfBlockRespItemCodeElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemCodeElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemCodeStyle ... +type GetDocxBlockListOfBlockRespItemCodeStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemDiagram ... +type GetDocxBlockListOfBlockRespItemDiagram struct { + DiagramType int64 `json:"diagram_type,omitempty"` // 绘图类型可选值有: 流程图UML 图 +} + +// GetDocxBlockListOfBlockRespItemEquation ... +type GetDocxBlockListOfBlockRespItemEquation struct { + Style *GetDocxBlockListOfBlockRespItemEquationStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemEquationElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemEquationElement ... +type GetDocxBlockListOfBlockRespItemEquationElement struct { + TextRun *GetDocxBlockListOfBlockRespItemEquationElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemEquationElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemEquationElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemEquationElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemEquationElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementEquation ... +type GetDocxBlockListOfBlockRespItemEquationElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementFile ... +type GetDocxBlockListOfBlockRespItemEquationElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemEquationElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionUser ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementReminder ... +type GetDocxBlockListOfBlockRespItemEquationElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationElementTextRun ... +type GetDocxBlockListOfBlockRespItemEquationElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemEquationElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemEquationStyle ... +type GetDocxBlockListOfBlockRespItemEquationStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemFile ... +type GetDocxBlockListOfBlockRespItemFile struct { + Token string `json:"token,omitempty"` // 附件 Token + Name string `json:"name,omitempty"` // 文件名 + ViewType int64 `json:"view_type,omitempty"` // 视图类型, 卡片视图(默认)或预览视图可选值有: 卡片视图预览视图 +} + +// GetDocxBlockListOfBlockRespItemGrid ... +type GetDocxBlockListOfBlockRespItemGrid struct { + ColumnSize int64 `json:"column_size,omitempty"` // 分栏列数量 +} + +// GetDocxBlockListOfBlockRespItemGridColumn ... +type GetDocxBlockListOfBlockRespItemGridColumn struct { + WidthRatio int64 `json:"width_ratio,omitempty"` // 当前分栏列占整个分栏的比例, 单位 % +} + +// GetDocxBlockListOfBlockRespItemHeading1 ... +type GetDocxBlockListOfBlockRespItemHeading1 struct { + Style *GetDocxBlockListOfBlockRespItemHeading1Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading1Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading1Element ... +type GetDocxBlockListOfBlockRespItemHeading1Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading1ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading1ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading1ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading1ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading1ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading1ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading1ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading1ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading1ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading1Style ... +type GetDocxBlockListOfBlockRespItemHeading1Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading2 ... +type GetDocxBlockListOfBlockRespItemHeading2 struct { + Style *GetDocxBlockListOfBlockRespItemHeading2Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading2Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading2Element ... +type GetDocxBlockListOfBlockRespItemHeading2Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading2ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading2ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading2ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading2ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading2ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading2ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading2ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading2ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading2ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading2Style ... +type GetDocxBlockListOfBlockRespItemHeading2Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading3 ... +type GetDocxBlockListOfBlockRespItemHeading3 struct { + Style *GetDocxBlockListOfBlockRespItemHeading3Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading3Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading3Element ... +type GetDocxBlockListOfBlockRespItemHeading3Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading3ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading3ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading3ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading3ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading3ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading3ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading3ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading3ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading3ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading3Style ... +type GetDocxBlockListOfBlockRespItemHeading3Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading4 ... +type GetDocxBlockListOfBlockRespItemHeading4 struct { + Style *GetDocxBlockListOfBlockRespItemHeading4Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading4Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading4Element ... +type GetDocxBlockListOfBlockRespItemHeading4Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading4ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading4ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading4ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading4ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading4ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading4ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading4ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading4ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading4ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading4Style ... +type GetDocxBlockListOfBlockRespItemHeading4Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading5 ... +type GetDocxBlockListOfBlockRespItemHeading5 struct { + Style *GetDocxBlockListOfBlockRespItemHeading5Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading5Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading5Element ... +type GetDocxBlockListOfBlockRespItemHeading5Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading5ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading5ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading5ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading5ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading5ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading5ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading5ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading5ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading5ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading5Style ... +type GetDocxBlockListOfBlockRespItemHeading5Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading6 ... +type GetDocxBlockListOfBlockRespItemHeading6 struct { + Style *GetDocxBlockListOfBlockRespItemHeading6Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading6Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading6Element ... +type GetDocxBlockListOfBlockRespItemHeading6Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading6ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading6ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading6ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading6ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading6ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading6ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading6ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading6ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading6ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading6Style ... +type GetDocxBlockListOfBlockRespItemHeading6Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading7 ... +type GetDocxBlockListOfBlockRespItemHeading7 struct { + Style *GetDocxBlockListOfBlockRespItemHeading7Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading7Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading7Element ... +type GetDocxBlockListOfBlockRespItemHeading7Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading7ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading7ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading7ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading7ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading7ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading7ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading7ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading7ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading7ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading7Style ... +type GetDocxBlockListOfBlockRespItemHeading7Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading8 ... +type GetDocxBlockListOfBlockRespItemHeading8 struct { + Style *GetDocxBlockListOfBlockRespItemHeading8Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading8Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading8Element ... +type GetDocxBlockListOfBlockRespItemHeading8Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading8ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading8ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading8ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading8ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading8ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading8ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading8ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading8ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading8ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading8Style ... +type GetDocxBlockListOfBlockRespItemHeading8Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemHeading9 ... +type GetDocxBlockListOfBlockRespItemHeading9 struct { + Style *GetDocxBlockListOfBlockRespItemHeading9Style `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemHeading9Element `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemHeading9Element ... +type GetDocxBlockListOfBlockRespItemHeading9Element struct { + TextRun *GetDocxBlockListOfBlockRespItemHeading9ElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemHeading9ElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemHeading9ElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemHeading9ElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementEquation ... +type GetDocxBlockListOfBlockRespItemHeading9ElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementFile ... +type GetDocxBlockListOfBlockRespItemHeading9ElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionUser ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementReminder ... +type GetDocxBlockListOfBlockRespItemHeading9ElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementTextRun ... +type GetDocxBlockListOfBlockRespItemHeading9ElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemHeading9ElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemHeading9Style ... +type GetDocxBlockListOfBlockRespItemHeading9Style struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemIframe ... +type GetDocxBlockListOfBlockRespItemIframe struct { + Component *GetDocxBlockListOfBlockRespItemIframeComponent `json:"component,omitempty"` // iframe 的组成元素 +} + +// GetDocxBlockListOfBlockRespItemIframeComponent ... +type GetDocxBlockListOfBlockRespItemIframeComponent struct { + IframeType int64 `json:"iframe_type,omitempty"` // iframe 类型可选值有: 哔哩哔哩西瓜视频优酷Airtable百度地图高德地图UndefinedFigma墨刀CanvaCodePen飞书问卷金数据UndefinedUndefinedOther + URL string `json:"url,omitempty"` // iframe 目标 url(需要进行 url_encode) +} + +// GetDocxBlockListOfBlockRespItemImage ... +type GetDocxBlockListOfBlockRespItemImage struct { + Width int64 `json:"width,omitempty"` // 宽度单位 px + Height int64 `json:"height,omitempty"` // 高度单位 px + Token string `json:"token,omitempty"` // 图片 Token + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Caption *GetDocxBlockListOfBlockRespItemImageCaption `json:"caption,omitempty"` // 图片描述 +} + +// GetDocxBlockListOfBlockRespItemImageCaption ... +type GetDocxBlockListOfBlockRespItemImageCaption struct { + Content string `json:"content,omitempty"` // 描述的文本内容 +} + +// GetDocxBlockListOfBlockRespItemIsv ... +type GetDocxBlockListOfBlockRespItemIsv struct { + ComponentID string `json:"component_id,omitempty"` // 团队互动应用唯一ID。该 ID 可通过调用[创建 BlockEntity](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/block-v2/entity/create) 接口, 并从响应体中的 block_id 中获取, 创建时使用的 `block_type_id` 需要与 `component_type_id` 一致。 + ComponentTypeID string `json:"component_type_id,omitempty"` // 团队互动应用类型, 比如信息收集"blk_5f992038c64240015d280958"。该 ID 可在 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 应用能力 > 云文档小组件 > BlockTypeID 获取。 +} + +// GetDocxBlockListOfBlockRespItemJiraIssue ... +type GetDocxBlockListOfBlockRespItemJiraIssue struct { + ID string `json:"id,omitempty"` // Jira 问题 ID + Key string `json:"key,omitempty"` // Jira 问题 key +} + +// GetDocxBlockListOfBlockRespItemLinkPreview ... +type GetDocxBlockListOfBlockRespItemLinkPreview struct { + URLType string `json:"url_type,omitempty"` // 链接类型可选值有: 消息链接未定义的链接类型 +} + +// GetDocxBlockListOfBlockRespItemMindnote ... +type GetDocxBlockListOfBlockRespItemMindnote struct { + Token string `json:"token,omitempty"` // 思维导图 token +} + +// GetDocxBlockListOfBlockRespItemOKR ... +type GetDocxBlockListOfBlockRespItemOKR struct { + OKRID string `json:"okr_id,omitempty"` // OKR ID, 获取需要插入的 OKR ID 可见[获取用户的 OKR 列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/okr-v1/user-okr/list) + PeriodDisplayStatus string `json:"period_display_status,omitempty"` // 周期的状态可选值有: 默认正常失效隐藏 + PeriodNameZh string `json:"period_name_zh,omitempty"` // 周期名 - 中文 + PeriodNameEn string `json:"period_name_en,omitempty"` // 周期名 - 英文 + UserID string `json:"user_id,omitempty"` // OKR 所属的用户 ID + VisibleSetting *GetDocxBlockListOfBlockRespItemOKRVisibleSetting `json:"visible_setting,omitempty"` // 可见性设置 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResult ... +type GetDocxBlockListOfBlockRespItemOKRKeyResult struct { + KrID string `json:"kr_id,omitempty"` // Key Result 的 ID + Confidential bool `json:"confidential,omitempty"` // 是否在 OKR 平台设置了私密权限 + Position int64 `json:"position,omitempty"` // Key Result 的位置编号, 对应 Block 中 KR1、KR2 的 1、2。 + Score int64 `json:"score,omitempty"` // 打分信息 + Visible bool `json:"visible,omitempty"` // OKR Block 中此 Key Result 是否可见 + Weight float64 `json:"weight,omitempty"` // Key Result 的权重 + ProgressRate *GetDocxBlockListOfBlockRespItemOKRKeyResultProgressRate `json:"progress_rate,omitempty"` // 进展信息 + Content *GetDocxBlockListOfBlockRespItemOKRKeyResultContent `json:"content,omitempty"` // Key Result 的文本内容 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContent ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContent struct { + Style *GetDocxBlockListOfBlockRespItemOKRKeyResultContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemOKRKeyResultContentElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElement ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElement struct { + TextRun *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquation ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFile ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUser ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminder ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRun ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultContentStyle ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemOKRKeyResultProgressRate ... +type GetDocxBlockListOfBlockRespItemOKRKeyResultProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// GetDocxBlockListOfBlockRespItemOKRObjective ... +type GetDocxBlockListOfBlockRespItemOKRObjective struct { + ObjectiveID string `json:"objective_id,omitempty"` // Objective ID + Confidential bool `json:"confidential,omitempty"` // 是否在 OKR 平台设置了私密权限 + Position int64 `json:"position,omitempty"` // Objective 的位置编号, 对应 Block 中 O1、O2 的 1、2 + Score int64 `json:"score,omitempty"` // 打分信息 + Visible bool `json:"visible,omitempty"` // OKR Block 中是否展示该 Objective + Weight float64 `json:"weight,omitempty"` // Objective 的权重 + ProgressRate *GetDocxBlockListOfBlockRespItemOKRObjectiveProgressRate `json:"progress_rate,omitempty"` // 进展信息 + Content *GetDocxBlockListOfBlockRespItemOKRObjectiveContent `json:"content,omitempty"` // Objective 的文本内容 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContent ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContent struct { + Style *GetDocxBlockListOfBlockRespItemOKRObjectiveContentStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemOKRObjectiveContentElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElement ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElement struct { + TextRun *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquation ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFile ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUser ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminder ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRun ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveContentStyle ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveContentStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemOKRObjectiveProgressRate ... +type GetDocxBlockListOfBlockRespItemOKRObjectiveProgressRate struct { + Mode string `json:"mode,omitempty"` // 状态模式可选值有: 简单模式高级模式 + Current float64 `json:"current,omitempty"` // 当前进度, 单位 %, advanced 模式使用 + Percent float64 `json:"percent,omitempty"` // 当前进度百分比, simple 模式使用 + ProgressStatus string `json:"progress_status,omitempty"` // 进展状态可选值有: 未设置正常有风险已延期 + Start float64 `json:"start,omitempty"` // 进度起始值, 单位 %, advanced 模式使用 + StatusType string `json:"status_type,omitempty"` // 状态计算类型可选值有: 以风险最高的 Key Result 状态展示自定义 + Target float64 `json:"target,omitempty"` // 进度目标值, 单位 %, advanced 模式使用 +} + +// GetDocxBlockListOfBlockRespItemOKRVisibleSetting ... +type GetDocxBlockListOfBlockRespItemOKRVisibleSetting struct { + ProgressFillAreaVisible bool `json:"progress_fill_area_visible,omitempty"` // 进展编辑区域是否可见 + ProgressStatusVisible bool `json:"progress_status_visible,omitempty"` // 进展状态是否可见 + ScoreVisible bool `json:"score_visible,omitempty"` // 分数是否可见 +} + +// GetDocxBlockListOfBlockRespItemOrdered ... +type GetDocxBlockListOfBlockRespItemOrdered struct { + Style *GetDocxBlockListOfBlockRespItemOrderedStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemOrderedElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemOrderedElement ... +type GetDocxBlockListOfBlockRespItemOrderedElement struct { + TextRun *GetDocxBlockListOfBlockRespItemOrderedElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemOrderedElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemOrderedElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemOrderedElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemOrderedElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementEquation ... +type GetDocxBlockListOfBlockRespItemOrderedElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementFile ... +type GetDocxBlockListOfBlockRespItemOrderedElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemOrderedElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionUser ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementReminder ... +type GetDocxBlockListOfBlockRespItemOrderedElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedElementTextRun ... +type GetDocxBlockListOfBlockRespItemOrderedElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemOrderedElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemOrderedStyle ... +type GetDocxBlockListOfBlockRespItemOrderedStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemPage ... +type GetDocxBlockListOfBlockRespItemPage struct { + Style *GetDocxBlockListOfBlockRespItemPageStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemPageElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemPageElement ... +type GetDocxBlockListOfBlockRespItemPageElement struct { + TextRun *GetDocxBlockListOfBlockRespItemPageElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemPageElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemPageElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemPageElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemPageElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemPageElementEquation ... +type GetDocxBlockListOfBlockRespItemPageElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementFile ... +type GetDocxBlockListOfBlockRespItemPageElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemPageElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemPageElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionUser ... +type GetDocxBlockListOfBlockRespItemPageElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementReminder ... +type GetDocxBlockListOfBlockRespItemPageElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageElementTextRun ... +type GetDocxBlockListOfBlockRespItemPageElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemPageElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemPageStyle ... +type GetDocxBlockListOfBlockRespItemPageStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemQuote ... +type GetDocxBlockListOfBlockRespItemQuote struct { + Style *GetDocxBlockListOfBlockRespItemQuoteStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemQuoteElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemQuoteElement ... +type GetDocxBlockListOfBlockRespItemQuoteElement struct { + TextRun *GetDocxBlockListOfBlockRespItemQuoteElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemQuoteElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemQuoteElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemQuoteElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemQuoteElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementEquation ... +type GetDocxBlockListOfBlockRespItemQuoteElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementFile ... +type GetDocxBlockListOfBlockRespItemQuoteElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemQuoteElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionUser ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementReminder ... +type GetDocxBlockListOfBlockRespItemQuoteElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteElementTextRun ... +type GetDocxBlockListOfBlockRespItemQuoteElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemQuoteElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemQuoteStyle ... +type GetDocxBlockListOfBlockRespItemQuoteStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemReferenceSynced ... +type GetDocxBlockListOfBlockRespItemReferenceSynced struct { + SourceDocumentID string `json:"source_document_id,omitempty"` // 源文档的文档 ID + SourceBlockID string `json:"source_block_id,omitempty"` // 源同步块的 Block ID +} + +// GetDocxBlockListOfBlockRespItemSheet ... +type GetDocxBlockListOfBlockRespItemSheet struct { + Token string `json:"token,omitempty"` // 电子表格 block 的 token 和工作表的 ID 的组合 +} + +// GetDocxBlockListOfBlockRespItemSourceSynced ... +type GetDocxBlockListOfBlockRespItemSourceSynced struct { + Elements []*GetDocxBlockListOfBlockRespItemSourceSyncedElement `json:"elements,omitempty"` // 同步块独立页标题, 由文本元素组成 + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElement ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElement struct { + TextRun *GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemSourceSyncedElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemSourceSyncedElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemSourceSyncedElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementEquation ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementFile ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUser ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementReminder ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRun ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemSourceSyncedElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemSubPageList ... +type GetDocxBlockListOfBlockRespItemSubPageList struct { + WikiToken string `json:"wiki_token,omitempty"` // 知识库节点 token, 仅支持知识库文档创建子页面列表, 且需传入当前页面的 wiki token +} + +// GetDocxBlockListOfBlockRespItemTable ... +type GetDocxBlockListOfBlockRespItemTable struct { + Cells []string `json:"cells,omitempty"` // 单元格数组, 数组元素为 Table Cell Block 的 ID + Property *GetDocxBlockListOfBlockRespItemTableProperty `json:"property,omitempty"` // 表格属性 +} + +// GetDocxBlockListOfBlockRespItemTableProperty ... +type GetDocxBlockListOfBlockRespItemTableProperty struct { + RowSize int64 `json:"row_size,omitempty"` // 行数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 在单个表格单元格不超过上限 2000 情况下, 该字段无固定最大值 + ColumnSize int64 `json:"column_size,omitempty"` // 列数- 创建块接口中, 该字段最大值为 9 - 创建嵌套块接口中, 该字段最大值为 100 + ColumnWidth []int64 `json:"column_width,omitempty"` // 列宽, 单位像素(px) + MergeInfo []*GetDocxBlockListOfBlockRespItemTablePropertyMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息。创建 Table 时, 此属性只读, 将由系统自动生成。如果需要合并单元格, 可以通过更新块接口的子请求 `merge_table_cells` 实现 + HeaderRow bool `json:"header_row,omitempty"` // 设置首行为标题行 + HeaderColumn bool `json:"header_column,omitempty"` // 设置首列为标题列 +} + +// GetDocxBlockListOfBlockRespItemTablePropertyMergeInfo ... +type GetDocxBlockListOfBlockRespItemTablePropertyMergeInfo struct { + RowSpan int64 `json:"row_span,omitempty"` // 从当前行索引起被合并的连续行数 + ColSpan int64 `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数 +} + +// GetDocxBlockListOfBlockRespItemTask ... +type GetDocxBlockListOfBlockRespItemTask struct { + TaskID string `json:"task_id,omitempty"` // 任务 ID, 查询具体任务详情见 [获取任务详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/get) + Folded bool `json:"folded,omitempty"` // 折叠状态 +} + +// GetDocxBlockListOfBlockRespItemText ... +type GetDocxBlockListOfBlockRespItemText struct { + Style *GetDocxBlockListOfBlockRespItemTextStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemTextElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemTextElement ... +type GetDocxBlockListOfBlockRespItemTextElement struct { + TextRun *GetDocxBlockListOfBlockRespItemTextElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemTextElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemTextElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemTextElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemTextElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemTextElementEquation ... +type GetDocxBlockListOfBlockRespItemTextElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementFile ... +type GetDocxBlockListOfBlockRespItemTextElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemTextElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemTextElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionUser ... +type GetDocxBlockListOfBlockRespItemTextElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementReminder ... +type GetDocxBlockListOfBlockRespItemTextElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextElementTextRun ... +type GetDocxBlockListOfBlockRespItemTextElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTextElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTextStyle ... +type GetDocxBlockListOfBlockRespItemTextStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemTodo ... +type GetDocxBlockListOfBlockRespItemTodo struct { + Style *GetDocxBlockListOfBlockRespItemTodoStyle `json:"style,omitempty"` // 文本样式 + Elements []*GetDocxBlockListOfBlockRespItemTodoElement `json:"elements,omitempty"` // 文本元素 +} + +// GetDocxBlockListOfBlockRespItemTodoElement ... +type GetDocxBlockListOfBlockRespItemTodoElement struct { + TextRun *GetDocxBlockListOfBlockRespItemTodoElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *GetDocxBlockListOfBlockRespItemTodoElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *GetDocxBlockListOfBlockRespItemTodoElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + Undefined interface{} `json:"undefined,omitempty"` // 未支持的 TextElement + InlineBlock *GetDocxBlockListOfBlockRespItemTodoElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *GetDocxBlockListOfBlockRespItemTodoElementEquation `json:"equation,omitempty"` // 公式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementEquation ... +type GetDocxBlockListOfBlockRespItemTodoElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementFile ... +type GetDocxBlockListOfBlockRespItemTodoElementFile struct { + FileToken string `json:"file_token,omitempty"` // 附件 token + SourceBlockID string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementInlineBlock ... +type GetDocxBlockListOfBlockRespItemTodoElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionDoc ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL string `json:"url,omitempty"` // 云文档链接(需要 url_encode) + Title string `json:"title,omitempty"` // 文档标题, 只读属性 + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionUser ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementReminder ... +type GetDocxBlockListOfBlockRespItemTodoElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。 + IsNotify bool `json:"is_notify,omitempty"` // 是否通知 + IsWholeDay bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳) + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoElementTextRun ... +type GetDocxBlockListOfBlockRespItemTodoElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 + TextElementStyle *GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyle ... +type GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyle struct { + Bold bool `json:"bold,omitempty"` // 加粗 + Italic bool `json:"italic,omitempty"` // 斜体 + Strikethrough bool `json:"strikethrough,omitempty"` // 删除线 + Underline bool `json:"underline,omitempty"` // 下划线 + InlineCode bool `json:"inline_code,omitempty"` // inline 代码 + BackgroundColor int64 `json:"background_color,omitempty"` // 背景色可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor int64 `json:"text_color,omitempty"` // 字体颜色可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。 +} + +// GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyleLink ... +type GetDocxBlockListOfBlockRespItemTodoElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) +} + +// GetDocxBlockListOfBlockRespItemTodoStyle ... +type GetDocxBlockListOfBlockRespItemTodoStyle struct { + Align int64 `json:"align,omitempty"` // 对齐方式可选值有: 居左排版居中排版居右排版 + Done bool `json:"done,omitempty"` // todo 的完成状态。支持对 Todo 块进行修改 + Folded bool `json:"folded,omitempty"` // 文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet 和 Todo 块进行修改 + Language int64 `json:"language,omitempty"` // 代码块的语言类型。仅支持对 Code 块进行修改可选值有: PlainTextABAPAdaApacheApexAssembly LanguageBashCSharpC++CCOBOLCSSCoffeeScriptDDartDelphiDjangoDockerfileErlangFortranFoxProGoGroovyHTMLHTMLBarsHTTPHaskellJSONJavaJavaScriptJuliaKotlinLateXLispLogoLuaMATLABMakefileMarkdownNginxObjective-COpenEdgeABLPHPPerlPostScriptPower ShellPrologProtoBufPythonRRPGRubyRustSASSCSSSQLScalaSchemeScratchShellSwiftThriftTypeScriptVBScriptVisual BasicXMLYAMLCMakeDiffGherkinGraphQLOpenGL Shading LanguagePropertiesSolidityTOML + Wrap bool `json:"wrap,omitempty"` // 代码块是否自动换行。支持对 Code 块进行修改 + BackgroundColor string `json:"background_color,omitempty"` // 块的背景色可选值有: 浅灰色浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色灰色中红色中橙色中黄色中绿色中蓝色中紫色 + IndentationLevel string `json:"indentation_level,omitempty"` // 首行缩进级别。仅支持对 Text 块进行修改。可选值有: 无缩进一级缩进 + Sequence string `json:"sequence,omitempty"` // 用于确定有序列表项编号, 为具体数值或'auto'- 开始新列表时, 有序列表编号从 1 开始, sequence='1'- 手动修改为非连续编号时, 有序列表编号为设定的具体数值, 如 sequence='3'- 继续编号时, 有序列表编号自动连续, sequence='auto'- 部分历史数据和通过 OpenAPI 创建的有序列表不返回此字段 +} + +// GetDocxBlockListOfBlockRespItemView ... +type GetDocxBlockListOfBlockRespItemView struct { + ViewType int64 `json:"view_type,omitempty"` // 视图类型可选值有: 卡片视图预览视图内联视图 +} + +// GetDocxBlockListOfBlockRespItemWikiCatalog ... +type GetDocxBlockListOfBlockRespItemWikiCatalog struct { + WikiToken string `json:"wiki_token,omitempty"` // 知识库 token +} + // getDocxBlockListOfBlockResp ... type getDocxBlockListOfBlockResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_drive_docx_block_update.go b/api_drive_docx_block_update.go index 35f2b604..d4072360 100644 --- a/api_drive_docx_block_update.go +++ b/api_drive_docx_block_update.go @@ -184,11 +184,385 @@ type UpdateDocxBlockReqUpdateText struct { Fields []int64 `json:"fields,omitempty"` // 文本样式中要更新的字段, 必须至少指定一个字段。例如, 要调整 Block 对齐方式, 请设置 fields 为 [1]示例值: [1]可选值有: 修改 Block 的对齐方式修改 todo 的完成状态。支持对 Todo 和 Task 块进行修改文本的折叠状态。支持对 Heading1~9、和有子块的 Text、Ordered、Bullet、Todo 和 Task 块进行修改代码块的语言类型。仅支持对 Code 块进行修改代码块是否自动换行。支持对 Code 块进行修改块背景色首行缩进级别。仅支持对 Text 块进行修改。 } +// UpdateDocxBlockReqUpdateTextElement ... +type UpdateDocxBlockReqUpdateTextElement struct { + TextRun *UpdateDocxBlockReqUpdateTextElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *UpdateDocxBlockReqUpdateTextElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *UpdateDocxBlockReqUpdateTextElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + InlineBlock *UpdateDocxBlockReqUpdateTextElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *UpdateDocxBlockReqUpdateTextElementEquation `json:"equation,omitempty"` // 公式 +} + +// UpdateDocxBlockReqUpdateTextElementEquation ... +type UpdateDocxBlockReqUpdateTextElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html * 长度范围: `1`~`10, 000`字符示例值: "E=mc^2\n" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementEquationTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementEquationTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementEquationTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementFile ... +type UpdateDocxBlockReqUpdateTextElementFile struct { + FileToken *string `json:"file_token,omitempty"` // 附件 token示例值: "boxcnOj88GDkmWGm2zsTyCabcef" + SourceBlockID *string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID示例值: "doxcnM46kSWSkgUMW04ldKabcef" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementFileTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementFileTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementFileTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementInlineBlock ... +type UpdateDocxBlockReqUpdateTextElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id示例值: "doxcnPFi0R56ctbvh2Mjkkabcef" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementMentionDoc ... +type UpdateDocxBlockReqUpdateTextElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6)示例值: "doxbc873Y7cXD153gXqb76G1Y9b" + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型示例值: 22可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL *string `json:"url,omitempty"` // 云文档链接(需要 url_encode)示例值: "https%3A%2F%2Fbytedance.feishu-boe.cn%2Fdocx%2Fdoxbc873Y7cXD153gXqb76G1Y9b" + Title *string `json:"title,omitempty"` // 文档标题, 只读属性示例值: "undefined" 长度范围: `0` ~ `800` 字符 + TextElementStyle *UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType *string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式示例值: "FallbackToLink"可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementMentionUser ... +type UpdateDocxBlockReqUpdateTextElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。示例值: "ou_3bbe8a09c20e89cce9bff989ed840674" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementReminder ... +type UpdateDocxBlockReqUpdateTextElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。示例值: "ou_84aad35d084aa403a838cf73eeabcef" + IsWholeDay *bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时示例值: true默认值: `false` + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳)示例值: "1641967200000" + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳)示例值: "1643166000000" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementReminderTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementReminderTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementReminderTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementTextRun ... +type UpdateDocxBlockReqUpdateTextElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 * 一个文本 Block 中 content 总长度最大值: `100, 000 个 UTF-16 编码的字符`示例值: "文本" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + // UpdateDocxBlockReqUpdateTextElements ... type UpdateDocxBlockReqUpdateTextElements struct { Elements []*DocxTextElement `json:"elements,omitempty"` // 更新后的文本元素列表, 单次更新中: reminder 元素上限 30 个- mention_doc 元素上限 50 个- mention_user 元素上限 100 个 最小长度: `1` } +// UpdateDocxBlockReqUpdateTextElementsElement ... +type UpdateDocxBlockReqUpdateTextElementsElement struct { + TextRun *UpdateDocxBlockReqUpdateTextElementsElementTextRun `json:"text_run,omitempty"` // 文字。支持对 Page、Text、Heading1~9、Bullet、Ordered、Code、Quote、Todo 块进行修改 + MentionUser *Mention `json:"mention_user,omitempty"` // @用户。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改。 + MentionDoc *Mention `json:"mention_doc,omitempty"` // @文档。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + Reminder *UpdateDocxBlockReqUpdateTextElementsElementReminder `json:"reminder,omitempty"` // 日期提醒。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo 块进行修改 + File *UpdateDocxBlockReqUpdateTextElementsElementFile `json:"file,omitempty"` // 内联文件。仅支持删除或移动位置, 不支持创建新的内联文件 + InlineBlock *UpdateDocxBlockReqUpdateTextElementsElementInlineBlock `json:"inline_block,omitempty"` // 内联块。仅支持删除或移动位置, 不支持创建新的内联块 + Equation *UpdateDocxBlockReqUpdateTextElementsElementEquation `json:"equation,omitempty"` // 公式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementEquation ... +type UpdateDocxBlockReqUpdateTextElementsElementEquation struct { + Content string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容, 语法规则请参考: https://katex.org/docs/supported.html * 长度范围: `1`~`10, 000`字符示例值: "E=mc^2\n" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementEquationTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementFile ... +type UpdateDocxBlockReqUpdateTextElementsElementFile struct { + FileToken *string `json:"file_token,omitempty"` // 附件 token示例值: "boxcnOj88GDkmWGm2zsTyCabcef" + SourceBlockID *string `json:"source_block_id,omitempty"` // 当前文档中该文件所处的 block 的 ID示例值: "doxcnM46kSWSkgUMW04ldKabcef" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementFileTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementInlineBlock ... +type UpdateDocxBlockReqUpdateTextElementsElementInlineBlock struct { + BlockID string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id示例值: "doxcnPFi0R56ctbvh2Mjkkabcef" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementInlineBlockTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionDoc ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionDoc struct { + Token string `json:"token,omitempty"` // 云文档 token。获取方式参考[如何获取云文档资源相关 token(id)](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6)示例值: "doxbc873Y7cXD153gXqb76G1Y9b" + ObjType int64 `json:"obj_type,omitempty"` // 云文档类型示例值: 22可选值有: DocSheetBitableMindNoteFileSlideWikiDocx + URL *string `json:"url,omitempty"` // 云文档链接(需要 url_encode)示例值: "https%3A%2F%2Fbytedance.feishu-boe.cn%2Fdocx%2Fdoxbc873Y7cXD153gXqb76G1Y9b" + Title *string `json:"title,omitempty"` // 文档标题, 只读属性示例值: "undefined" 长度范围: `0` ~ `800` 字符 + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 + FallbackType *string `json:"fallback_type,omitempty"` // 无云文档阅读权限或云文档已删除时的降级方式示例值: "FallbackToLink"可选值有: 降级为超链接形式写入, 超链接的文本内容为当前传入的文档标题, 链接为当前传入的云文档链接(需要 url_encode)降级为文本形式写入, 文本内容为当前传入的云文档链接进行 URL 解码后的结果 +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionDocTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionUser ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionUser struct { + UserID string `json:"user_id,omitempty"` // 用户 OpenID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。示例值: "ou_3bbe8a09c20e89cce9bff989ed840674" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementMentionUserTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementReminder ... +type UpdateDocxBlockReqUpdateTextElementsElementReminder struct { + CreateUserID string `json:"create_user_id,omitempty"` // 创建者用户 ID, ID 类型与查询参数 `user_id_type` 的取值一致。获取方式参考 `user_id_type` 参数说明。示例值: "ou_84aad35d084aa403a838cf73eeabcef" + IsWholeDay *bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时示例值: true默认值: `false` + ExpireTime string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级时间戳)示例值: "1641967200000" + NotifyTime string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳)示例值: "1643166000000" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementReminderTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + +// UpdateDocxBlockReqUpdateTextElementsElementTextRun ... +type UpdateDocxBlockReqUpdateTextElementsElementTextRun struct { + Content string `json:"content,omitempty"` // 文本内容。要实现文本内容的换行, 你可以: 在传入的文本内容中添加 `\n` 实现软换行(Soft Break, 与在文档中通过操作 `Shift + Enter` 的效果一致)- 创建一个新的文本 Block, 实现两个文本 Block 之间的硬换行(Hard Break, 与在文档中通过操作 `Enter` 的效果一致)注意: 软换行在渲染时可能会被忽略, 具体取决于渲染器如何处理;硬换行在渲染时始终会显示为一个新行。 * 一个文本 Block 中 content 总长度最大值: `100, 000 个 UTF-16 编码的字符`示例值: "文本" + TextElementStyle *UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 +} + +// UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyle ... +type UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyle struct { + Bold *bool `json:"bold,omitempty"` // 加粗示例值: true默认值: `false` + Italic *bool `json:"italic,omitempty"` // 斜体示例值: true默认值: `false` + Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线示例值: true默认值: `false` + Underline *bool `json:"underline,omitempty"` // 下划线示例值: true默认值: `false` + InlineCode *bool `json:"inline_code,omitempty"` // inline 代码示例值: true默认值: `false` + BackgroundColor *int64 `json:"background_color,omitempty"` // 背景色示例值: 1可选值有: 浅红色浅橙色浅黄色浅绿色浅蓝色浅紫色中灰色红色橙色黄色绿色蓝色紫色灰色浅灰色 + TextColor *int64 `json:"text_color,omitempty"` // 字体颜色示例值: 1可选值有: 红色橙色黄色绿色蓝色紫色灰色 + Link *UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyleLink `json:"link,omitempty"` // 链接 + CommentIDs []string `json:"comment_ids,omitempty"` // 评论 ID 列表。在创建 Block 时, 不支持传入评论 ID;在更新文本 Block 的 Element 时, 允许将对应版本已存在的评论 ID 移动到同一个 Block 内的任意 Element 中, 但不支持传入新的评论 ID。如需查询评论内容请阅览「[获取回复](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file-comment-reply/list)」 API。示例值: ["1660030311959965796"] +} + +// UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyleLink ... +type UpdateDocxBlockReqUpdateTextElementsElementTextRunTextElementStyleLink struct { + URL string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode)示例值: "https%3A%2F%2Fopen.feishu.cn%2F" +} + // UpdateDocxBlockReqUpdateTextStyle ... type UpdateDocxBlockReqUpdateTextStyle struct { Style *UpdateDocxBlockReqUpdateTextStyleStyle `json:"style,omitempty"` // 文本样式。支持对 Text、Heading1~9、Bullet、Ordered、Quote、Todo、Task 块进行修改 diff --git a/api_drive_file_create.go b/api_drive_file_create.go index 70537b5e..6d68d30c 100644 --- a/api_drive_file_create.go +++ b/api_drive_file_create.go @@ -32,8 +32,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uQTNzUjL0UzM14CN1MTN // new doc: https://open.feishu.cn/document/server-docs/docs/drive-v1/file/create-online-document -// -// Deprecated func (r *DriveService) CreateDriveFile(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) { if r.cli.mock.mockDriveCreateDriveFile != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateDriveFile mock enable") diff --git a/api_drive_file_like_list.go b/api_drive_file_like_list.go new file mode 100644 index 00000000..3aa20121 --- /dev/null +++ b/api_drive_file_like_list.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListDriveFileLike 获取指定云文档的点赞者列表并按点赞时间由近到远分页返回。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uIzNzUjLyczM14iM3MTN/drive-v2/file-like/list +// new doc: https://open.feishu.cn/document/docs/drive-v1/like/list +func (r *DriveService) ListDriveFileLike(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) { + if r.cli.mock.mockDriveListDriveFileLike != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#ListDriveFileLike mock enable") + return r.cli.mock.mockDriveListDriveFileLike(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "ListDriveFileLike", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/drive/v2/files/:file_token/likes", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listDriveFileLikeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveListDriveFileLike mock DriveListDriveFileLike method +func (r *Mock) MockDriveListDriveFileLike(f func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error)) { + r.mockDriveListDriveFileLike = f +} + +// UnMockDriveListDriveFileLike un-mock DriveListDriveFileLike method +func (r *Mock) UnMockDriveListDriveFileLike() { + r.mockDriveListDriveFileLike = nil +} + +// ListDriveFileLikeReq ... +type ListDriveFileLikeReq struct { + FileToken string `path:"file_token" json:"-"` // 需要查询点赞者列表的云文档 token。[点击了解如何获取云文档 Token](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6)示例值: "J6Lddz22AovnqkxWEXBcUJabcef" + FileType FileType `query:"file_type" json:"-"` // 云文档类型, 如果该值为空或者与云文档实际类型不匹配, 接口会返回失败。示例值: doc可选值有: 旧版文档新版文档文件 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 取值范围: `1` ~ `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aw7DoMKBFMOGwqHCrcO8w6jCmMOvw6ILeADCvsKNw57Di8O5XGV3LG4_w5HCqhFxSnDCrCzCn0BgZcOYUg85EMOYcEAcwqYOw4ojw5QFwofCu8KoIMO3K8Ktw4IuNMOBBHNYw4bCgCV3U1zDu8K-J8KSR8Kgw7Y0fsKZdsKvW3d9w53DnkHDrcO5bDkYwrvDisOEPcOtVFJ-I03CnsOILMOoAmLDknd6dsKqG1bClAjDuS3CvcOTwo7Dg8OrwovDsRdqIcKxw5HDohTDtXN9w5rCkWo + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListDriveFileLikeResp ... +type ListDriveFileLikeResp struct { + Items []*ListDriveFileLikeRespItem `json:"items,omitempty"` // 云文档的点赞者列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListDriveFileLikeRespItem ... +type ListDriveFileLikeRespItem struct { + UserID string `json:"user_id,omitempty"` // 用户 ID。与查询参数 user_id_type 一致 + LastLikedTime string `json:"last_liked_time,omitempty"` // 用户最后点赞时间, 秒级时间戳 + UserName string `json:"user_name,omitempty"` // 用户名字, 用户信息被脱敏时此值不会返回字段权限要求(满足任一): 获取用户基本信息以应用身份访问通讯录读取通讯录以应用身份读取通讯录 + UserEnName string `json:"user_en_name,omitempty"` // 用户英文名字, 用户信息被脱敏时此值不会返回字段权限要求(满足任一): 获取用户基本信息以应用身份访问通讯录读取通讯录以应用身份读取通讯录 + UserAvatarURL string `json:"user_avatar_url,omitempty"` // 用户头像, 用户信息被脱敏时此值不会返回字段权限要求(满足任一): 获取用户基本信息以应用身份访问通讯录读取通讯录以应用身份读取通讯录 + UserIsDesensitized bool `json:"user_is_desensitized,omitempty"` // 用户信息是否脱敏 +} + +// listDriveFileLikeResp ... +type listDriveFileLikeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListDriveFileLikeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_drive_file_subscribe.go b/api_drive_file_subscribe.go index a1f42c93..95c1cf46 100644 --- a/api_drive_file_subscribe.go +++ b/api_drive_file_subscribe.go @@ -73,7 +73,8 @@ type SubscribeDriveFileReq struct { } // SubscribeDriveFileResp ... -type SubscribeDriveFileResp struct{} +type SubscribeDriveFileResp struct { +} // subscribeDriveFileResp ... type subscribeDriveFileResp struct { diff --git a/api_drive_file_unsubscribe.go b/api_drive_file_unsubscribe.go index 691b88c7..d481f5be 100644 --- a/api_drive_file_unsubscribe.go +++ b/api_drive_file_unsubscribe.go @@ -71,7 +71,8 @@ type UnsubscribeDriveFileReq struct { } // UnsubscribeDriveFileResp ... -type UnsubscribeDriveFileResp struct{} +type UnsubscribeDriveFileResp struct { +} // unsubscribeDriveFileResp ... type unsubscribeDriveFileResp struct { diff --git a/api_drive_file_upload_part.go b/api_drive_file_upload_part.go index bf42b9a0..53209573 100644 --- a/api_drive_file_upload_part.go +++ b/api_drive_file_upload_part.go @@ -72,7 +72,8 @@ type PartUploadDriveFileReq struct { } // PartUploadDriveFileResp ... -type PartUploadDriveFileResp struct{} +type PartUploadDriveFileResp struct { +} // partUploadDriveFileResp ... type partUploadDriveFileResp struct { diff --git a/api_drive_file_version_delete.go b/api_drive_file_version_delete.go index 456073d5..69a30aee 100644 --- a/api_drive_file_version_delete.go +++ b/api_drive_file_version_delete.go @@ -66,7 +66,8 @@ type DeleteDriveFileVersionReq struct { } // DeleteDriveFileVersionResp ... -type DeleteDriveFileVersionResp struct{} +type DeleteDriveFileVersionResp struct { +} // deleteDriveFileVersionResp ... type deleteDriveFileVersionResp struct { diff --git a/api_drive_folder_root_meta.go b/api_drive_folder_root_meta.go index 107e2392..973f429d 100644 --- a/api_drive_folder_root_meta.go +++ b/api_drive_folder_root_meta.go @@ -58,7 +58,8 @@ func (r *Mock) UnMockDriveGetDriveRootFolderMeta() { } // GetDriveRootFolderMetaReq ... -type GetDriveRootFolderMetaReq struct{} +type GetDriveRootFolderMetaReq struct { +} // GetDriveRootFolderMetaResp ... type GetDriveRootFolderMetaResp struct { diff --git a/api_drive_media_upload_part.go b/api_drive_media_upload_part.go index 7a853009..1f2596ab 100644 --- a/api_drive_media_upload_part.go +++ b/api_drive_media_upload_part.go @@ -72,7 +72,8 @@ type PartUploadDriveMediaReq struct { } // PartUploadDriveMediaResp ... -type PartUploadDriveMediaResp struct{} +type PartUploadDriveMediaResp struct { +} // partUploadDriveMediaResp ... type partUploadDriveMediaResp struct { diff --git a/api_drive_permission_member_batch_create.go b/api_drive_permission_member_batch_create.go new file mode 100644 index 00000000..d22f874a --- /dev/null +++ b/api_drive_permission_member_batch_create.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchCreateDrivePermissionMember 为指定云文档批量添加多个协作者, 协作者可以是用户、群组、部门、用户组等。 +// +// ## 前提条件 +// - 调用该接口需要调用身份有该云文档添加协作者的权限。添加协作者的权限可通过云文档设置中的 谁可以查看、添加、移除协作者 等选项进行控制。 +// - 调用该接口时, 需要调用身份与被授权对象 互相可见, 例如: +// - 添加用户协作者: 需要调用身份与被授权对象为联系人或同组织内可搜索, 且互相未屏蔽。 +// - 添加群协作者: 需要调用身份在群内。要使用 `tenant_access_token` 身份添加群协作者, 则需要将该应用作为机器人添加至群组中, 使应用对群可见。详细步骤参考[如何为应用开通云文档相关资源的权限](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-add-permissions-to-app)。 +// - 添加部门协作者: 需要调用身份对部门可见。由于应用对企业内的组织架构都不可见, 所以暂不支持通过 `tenant_access_token` 添加部门协作者。 +// ## 注意事项 +// 不支持将应用直接添加到文件夹作为协作者(添加成功后实际仍然没有权限)。如果希望给应用授予文件夹的权限, 请将应用作为群机器人添加到群组内, 然后授予该群组可管理权限。详细步骤参考[如何为应用开通云文档相关资源的权限](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-add-permissions-to-app)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/batch_create +// new doc: https://open.feishu.cn/document/docs/permission/permission-member/batch_create +func (r *DriveService) BatchCreateDrivePermissionMember(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) { + if r.cli.mock.mockDriveBatchCreateDrivePermissionMember != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#BatchCreateDrivePermissionMember mock enable") + return r.cli.mock.mockDriveBatchCreateDrivePermissionMember(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "BatchCreateDrivePermissionMember", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/drive/v1/permissions/:token/members/batch_create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchCreateDrivePermissionMemberResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveBatchCreateDrivePermissionMember mock DriveBatchCreateDrivePermissionMember method +func (r *Mock) MockDriveBatchCreateDrivePermissionMember(f func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error)) { + r.mockDriveBatchCreateDrivePermissionMember = f +} + +// UnMockDriveBatchCreateDrivePermissionMember un-mock DriveBatchCreateDrivePermissionMember method +func (r *Mock) UnMockDriveBatchCreateDrivePermissionMember() { + r.mockDriveBatchCreateDrivePermissionMember = nil +} + +// BatchCreateDrivePermissionMemberReq ... +type BatchCreateDrivePermissionMemberReq struct { + Token string `path:"token" json:"-"` // 云文档的 token, 需要与 type 参数指定的云文档类型相匹配。可参考 [如何获取云文档相关 token](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6)。示例值: "docxnBKgoMyY5OMbUG6FioTXuBe" + Type string `query:"type" json:"-"` // 云文档类型, 需要与云文档的 token 相匹配。示例值: docx可选值有: 旧版文档。了解更多, 参考[新旧版本文档说明](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/docs/upgraded-docs-access-guide/upgraded-docs-openapi-access-guide)。电子表格云空间文件知识库节点多维表格新版文档文件夹。使用 tenant_access_token 调用时, 需确保文件夹所有者为应用或应用拥有文件夹的可管理权限, 你需要将应用作为群机器人添加至群内, 然后授予该群组可管理权限。详细步骤参考[如何为应用开通云文档相关资源的权限](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-add-permissions-to-app)思维笔记妙记。目前妙记还不支持 full_access 权限角色幻灯片 + NeedNotification *bool `query:"need_notification" json:"-"` // 添加权限后是否通知对方。仅当使用 user_access_token 调用时有效。可选值: true: 通知对方- false: 不通知示例值: false默认值: `false` + Members []*BatchCreateDrivePermissionMemberReqMember `json:"members,omitempty"` // 本次要增加权限的协作者列表 最大长度: `10` +} + +// BatchCreateDrivePermissionMemberReqMember ... +type BatchCreateDrivePermissionMemberReqMember struct { + MemberType string `json:"member_type,omitempty"` // 协作者 ID 类型, 与协作者 ID (member_id)的类型需要保持一致。示例值: "openid"可选值有: 飞书邮箱开放平台 Open ID - 获取应用 OpenID, 参考[如何获取应用 open_id](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#6dbaa8df) - 获取用户 OpenID, 参考[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)开放平台 Union ID。获取方式参考[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)开放平台群组 ID。获取方式参考[群 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)开放平台部门 ID。仅当使用 user_access_token 调用时有效。获取方式参考[部门资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)用户 ID。获取方式参考[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)自定义用户组 ID。获取方式参考[用户组资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/group/overview)知识空间 ID。仅知识库文档支持该参数, 当需要操作知识库文档里的「知识库成员」类型协作者时传该参数。获取方式参考[知识库概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-overview) + MemberID string `json:"member_id,omitempty"` // 协作者 ID, 该 ID 的类型与 member_type 指定的值需要保持一致示例值: "ou_1234567890abcdef1234567890abcdef" + Perm string `json:"perm,omitempty"` // 协作者对应的权限角色。 注意: 妙记还不支持可管理角色示例值: "view"可选值有: 可阅读角色可编辑角色可管理角色 + PermType *string `json:"perm_type,omitempty"` // 协作者的权限角色类型。当云文档类型为 wiki 即知识库节点时, 该参数有效示例值: "container"可选值有: 当前页面及子页面仅当前页面, 当且仅当在知识库文档中该参数有效默认值: `container` + Type *string `json:"type,omitempty"` // 协作者类型。注意: 当 `member_type` 参数为 `wikispaceid` 时, 该参数必填。默认值: ""示例值: "user"可选值有: 用户群组组织架构用户组知识库成员。在知识库启用了成员分组功能后不支持该参数知识库可阅读成员。仅在知识库启用了成员分组功能后才支持该参数知识库可编辑成员。仅在知识库启用了成员分组功能后才支持该参数 +} + +// BatchCreateDrivePermissionMemberResp ... +type BatchCreateDrivePermissionMemberResp struct { + Members []*BatchCreateDrivePermissionMemberRespMember `json:"members,omitempty"` // 添加成功的协作者列表注意: 当只有部分成功时, `members` 会返回成功的部分, 在不同场景下, 部分成功返回的错误码可能不同, 请不要依赖错误码去判断是否为部分成功 +} + +// BatchCreateDrivePermissionMemberRespMember ... +type BatchCreateDrivePermissionMemberRespMember struct { + MemberType string `json:"member_type,omitempty"` // 增加成功的协作者 ID 类型可选值有: 飞书邮箱开放平台 ID开放平台UnionID开放平台群组 ID开放平台部门 ID用户自定义 ID自定义用户组 ID知识空间的唯一标识 + MemberID string `json:"member_id,omitempty"` // 增加成功的协作者 ID, 与协作者 ID 类型相对应 + Perm string `json:"perm,omitempty"` // 增加成功的的权限角色可选值有: 可阅读角色可编辑角色可管理角色 + PermType string `json:"perm_type,omitempty"` // 协作者的权限角色类型可选值有: 当前页面及子页面仅当前页面, 当且仅当在知识库文档中该参数有效 + Type string `json:"type,omitempty"` // 协作者类型可选值有: 用户群组组织架构用户组知识库成员知识库可阅读成员知识库可编辑成员 +} + +// batchCreateDrivePermissionMemberResp ... +type batchCreateDrivePermissionMemberResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchCreateDrivePermissionMemberResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_drive_permission_member_delete.go b/api_drive_permission_member_delete.go index dc63d359..fcc04d87 100644 --- a/api_drive_permission_member_delete.go +++ b/api_drive_permission_member_delete.go @@ -67,7 +67,8 @@ type DeleteDriveMemberPermissionReq struct { } // DeleteDriveMemberPermissionResp ... -type DeleteDriveMemberPermissionResp struct{} +type DeleteDriveMemberPermissionResp struct { +} // deleteDriveMemberPermissionResp ... type deleteDriveMemberPermissionResp struct { diff --git a/api_drive_permission_owner_transfer.go b/api_drive_permission_owner_transfer.go index 77010898..0385777b 100644 --- a/api_drive_permission_owner_transfer.go +++ b/api_drive_permission_owner_transfer.go @@ -70,7 +70,8 @@ type TransferDriveOwnerPermissionReq struct { } // TransferDriveOwnerPermissionResp ... -type TransferDriveOwnerPermissionResp struct{} +type TransferDriveOwnerPermissionResp struct { +} // transferDriveOwnerPermissionResp ... type transferDriveOwnerPermissionResp struct { diff --git a/api_drive_permission_public_get.go b/api_drive_permission_public_get.go index 7faf39ea..c215ab2f 100644 --- a/api_drive_permission_public_get.go +++ b/api_drive_permission_public_get.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-public/get // new doc: https://open.feishu.cn/document/server-docs/docs/permission/permission-public/get -// -// Deprecated func (r *DriveService) GetDrivePublicPermission(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) { if r.cli.mock.mockDriveGetDrivePublicPermission != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDrivePublicPermission mock enable") diff --git a/api_drive_permission_public_password_delete.go b/api_drive_permission_public_password_delete.go index 9623daaa..444ff666 100644 --- a/api_drive_permission_public_password_delete.go +++ b/api_drive_permission_public_password_delete.go @@ -64,7 +64,8 @@ type DeleteDrivePermissionPublicPasswordReq struct { } // DeleteDrivePermissionPublicPasswordResp ... -type DeleteDrivePermissionPublicPasswordResp struct{} +type DeleteDrivePermissionPublicPasswordResp struct { +} // deleteDrivePermissionPublicPasswordResp ... type deleteDrivePermissionPublicPasswordResp struct { diff --git a/api_drive_permission_public_patch.go b/api_drive_permission_public_patch.go index 34b3768b..3886ffa1 100644 --- a/api_drive_permission_public_patch.go +++ b/api_drive_permission_public_patch.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-public/patch // new doc: https://open.feishu.cn/document/server-docs/docs/permission/permission-public/patch -// -// Deprecated func (r *DriveService) UpdateDrivePublicPermission(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) { if r.cli.mock.mockDriveUpdateDrivePublicPermission != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateDrivePublicPermission mock enable") diff --git a/api_drive_sheet_condition_format_create.go b/api_drive_sheet_condition_format_create.go index aa63c7b9..5ff0b1ec 100644 --- a/api_drive_sheet_condition_format_create.go +++ b/api_drive_sheet_condition_format_create.go @@ -67,11 +67,55 @@ type CreateSheetConditionFormatReq struct { SheetConditionFormats []interface{} `json:"sheet_condition_formats,omitempty"` // 要创建的条件格式的信息。最多可创建 10 个条件格式。 注意: 响应体中将返回每个条件格式的设置结果, 包括成功或具体的失败信息。 } +// CreateSheetConditionFormatReqSheetConditionFormat ... +type CreateSheetConditionFormatReqSheetConditionFormat struct { + SheetID string `json:"sheet_id,omitempty"` // 电子表格工作表的 ID。调用[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query)获取 ID。 + ConditionFormat *CreateSheetConditionFormatReqSheetConditionFormatConditionFormat `json:"condition_format,omitempty"` // 条件格式的详细信息 +} + +// CreateSheetConditionFormatReqSheetConditionFormatConditionFormat ... +type CreateSheetConditionFormatReqSheetConditionFormatConditionFormat struct { + Ranges []string `json:"ranges,omitempty"` // 条件格式应用的范围, 支持以下五种写法, 了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。- `sheetId`: 填写工作表 ID, 表示将条件格式应用于整表- `sheetId!{开始行索引}:{结束行索引}`: 填写工作表 ID 和行数区间, 表示将条件格式应用于整行- `sheetId!{开始列索引}:{结束列索引}`: 填写工作表 ID 和列的区间, 表示将条件格式应用于整列- `sheetId!{开始单元格}:{结束单元格}`: 填写工作表 ID 和单元格区间, 表示将条件格式应用于单元格选定的区域中- `sheetId!{开始单元格}:{结束列索引}`: 填写工作表 ID、起始单元格和结束列, 表示省略结束行, 使用表格的最后行作为结束行注意: 每个范围的区间不可超过表格的行总数和列总数- 每个范围的 sheetId 的值必须与 `sheet_id` 参数的值一致 示例值: ["40a7b0!C3:C3"] + RuleType string `json:"rule_type,omitempty"` // 创建条件时的规则类型。可选值: containsBlanks: 为空- notContainsBlanks: 不为空- duplicateValues: 重复值- uniqueValues: 唯一值- cellIs: 限定值范围- containsText: 包含内容- timePeriod: 日期 + Attrs []*CreateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr `json:"attrs,omitempty"` // `rule_type` 参数对应的具体属性信息注意: 当 `rule_type` 为 containsBlanks(为空)、notContainsBlanks(不为空)、duplicateValues(重复值)或 uniqueValues(唯一值)时, 无需传入 `attrs` 参数。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + Style *CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle `json:"style,omitempty"` // 条件格式的样式。支持设置字体样式、文本装饰、字体颜色和背景颜色。 注意: `style` 不可设置为 `""`。默认不传该值, 即不设置样式。 +} + +// CreateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr ... +type CreateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr struct { + Operator *string `json:"operator,omitempty"` // 操作方法。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + TimePeriod *string `json:"time_period,omitempty"` // 时间范围。当 `rule_type` 为 `timePeriod` 时, 该参数必填, 且 `operator` 参数仅支持 `is`。可选值: - yesterday: 昨天- today: 今天- tomorrow: 明天- last7Days: 最近 7 天 + Formula []string `json:"formula,omitempty"` // 公式。当 `rule_type` 为 `cellIs` 时, 该参数必填。注意: - 当 `operator` 为 `between` 或 `notBetween` 时, 需要填写两个元素, 其他情况下只需填一个元素, 值为用户自定义。- 填写的值若是数字类型, 需填写为如 `"1"` 的格式;若是文本类型, 需填写为 `"\"aaaaa\""` 格式。即文本需要用 "" 包裹并转义。了解更多示例, 请参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + Text *string `json:"text,omitempty"` // 文本。当 `rule_type` 为 `containsText` 时, 该参数必填。值为用户自定义。 +} + +// CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle ... +type CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle struct { + Font *CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont `json:"font,omitempty"` // 符合条件的数据的字体样式 + TextDecoration *int64 `json:"text_decoration,omitempty"` // 文本装饰。为文本设置下划线或删除线。可选值: 0: 无下划线和删除线- 1: 下划线- 2: 删除线- 3: 同时设置下划线和删除线 + ForeColor *string `json:"fore_color,omitempty"` // 设置字体颜色。需填写字体颜色的十六进制代码。如 #faf1d1。 + BackColor *string `json:"back_color,omitempty"` // 设置背景颜色。需填写背景颜色的十六进制代码。如 #faf1d1。 +} + +// CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont ... +type CreateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont struct { + Bold *bool `json:"bold,omitempty"` // 字体是否加粗 + Italic *bool `json:"italic,omitempty"` // 字体是否为斜体 +} + // CreateSheetConditionFormatResp ... type CreateSheetConditionFormatResp struct { Responses []interface{} `json:"responses,omitempty"` // 响应信息 } +// CreateSheetConditionFormatRespResponse ... +type CreateSheetConditionFormatRespResponse struct { + SheetID string `json:"sheet_id,omitempty"` // 工作表的 ID + CfID string `json:"cf_id,omitempty"` // 要创建的条件格式的 ID + ResCode int64 `json:"res_code,omitempty"` // 当前条件格式创建的状态码。0 表示成功创建, 非 0 表示失败。 + ResMsg string `json:"res_msg,omitempty"` // 条件格式设置返回的状态信息, success 表示成功, 非 success 将返回失败原因。 +} + // createSheetConditionFormatResp ... type createSheetConditionFormatResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败。 diff --git a/api_drive_sheet_condition_format_delete.go b/api_drive_sheet_condition_format_delete.go index 5d144599..42b5f268 100644 --- a/api_drive_sheet_condition_format_delete.go +++ b/api_drive_sheet_condition_format_delete.go @@ -66,11 +66,25 @@ type DeleteSheetConditionFormatReq struct { SheetCfIDs []string `json:"sheet_cf_ids,omitempty"` // 要删除的电子表格条件格式的 ID。最多可删除 10 个条件格式。注意: 响应体中将返回每个条件格式的删除结果, 包括成功或具体的失败信息。 } +// DeleteSheetConditionFormatReqSheetCfID ... +type DeleteSheetConditionFormatReqSheetCfID struct { + SheetID string `json:"sheet_id,omitempty"` // 电子表格工作表的 ID。调用[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query)获取 ID。 + CfID string `json:"cf_id,omitempty"` // 条件格式的 ID。调用[获取条件格式](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-get)获取 ID。 +} + // DeleteSheetConditionFormatResp ... type DeleteSheetConditionFormatResp struct { Responses []interface{} `json:"responses,omitempty"` // 响应信息 } +// DeleteSheetConditionFormatRespResponse ... +type DeleteSheetConditionFormatRespResponse struct { + SheetID string `json:"sheet_id,omitempty"` // 工作表的 ID + CfID string `json:"cf_id,omitempty"` // 删除的条件格式的 ID + ResCode int64 `json:"res_code,omitempty"` // 条件格式删除的状态码。0 表示成功创建, 非 0 表示失败。 + ResMsg string `json:"res_msg,omitempty"` // 删除当前条件格式返回的状态信息, success 表示成功, 非 success 将返回失败原因。 +} + // deleteSheetConditionFormatResp ... type deleteSheetConditionFormatResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败。 diff --git a/api_drive_sheet_condition_format_get.go b/api_drive_sheet_condition_format_get.go index ab1306ef..f8103c30 100644 --- a/api_drive_sheet_condition_format_get.go +++ b/api_drive_sheet_condition_format_get.go @@ -68,6 +68,43 @@ type GetSheetConditionFormatResp struct { SheetConditionFormats []interface{} `json:"sheet_condition_formats,omitempty"` // 表格的条件格式信息 } +// GetSheetConditionFormatRespSheetConditionFormat ... +type GetSheetConditionFormatRespSheetConditionFormat struct { + SheetID string `json:"sheet_id,omitempty"` // 电子表格工作表的 ID + ConditionFormat *GetSheetConditionFormatRespSheetConditionFormatConditionFormat `json:"condition_format,omitempty"` // 条件格式的详细信息 +} + +// GetSheetConditionFormatRespSheetConditionFormatConditionFormat ... +type GetSheetConditionFormatRespSheetConditionFormatConditionFormat struct { + CfID string `json:"cf_id,omitempty"` // 条件格式的 ID + Ranges []string `json:"ranges,omitempty"` // 条件格式应用的范围, 支持以下枚举值, 了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。- `sheetId`: 填写工作表 ID, 表示将条件格式应用于整表- `sheetId!{开始行索引}:{结束行索引}`: 填写工作表 ID 和行数区间, 表示将条件格式应用于整行- `sheetId!{开始列索引}:{结束列索引}`: 填写工作表 ID 和列的区间, 表示将条件格式应用于整列- `sheetId!{开始单元格}:{结束单元格}`: 填写工作表 ID 和单元格区间, 表示将条件格式应用于单元格选定的区域中- `sheetId!{开始单元格}:{结束列索引}`: 填写工作表 ID、起始单元格和结束列, 表示省略结束行, 使用表格的最后行作为结束行 示例值: ["40a7b0!C3:C3"] + RuleType string `json:"rule_type,omitempty"` // 创建条件时的规则类型。枚举值: containsBlanks: 为空- notContainsBlanks: 不为空- duplicateValues: 重复值- uniqueValues: 唯一值- cellIs: 限定值范围- containsText: 包含内容- timePeriod: 日期 + Attrs []*GetSheetConditionFormatRespSheetConditionFormatConditionFormatAttr `json:"attrs,omitempty"` // `rule_type` 参数对应的具体属性信息。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + Style *GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyle `json:"style,omitempty"` // 条件格式的样式。支持设置字体样式、文本装饰、字体颜色和背景颜色。 +} + +// GetSheetConditionFormatRespSheetConditionFormatConditionFormatAttr ... +type GetSheetConditionFormatRespSheetConditionFormatConditionFormatAttr struct { + Operator string `json:"operator,omitempty"` // 操作方法。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + TimePeriod string `json:"time_period,omitempty"` // 时间范围。当 `rule_type` 为 `timePeriod` 时, 返回该参数, 且 `operator` 参数仅支持 `is`。枚举值: - yesterday: 昨天- today: 今天- tomorrow: 明天- last7Days: 最近 7 天 + Formula []string `json:"formula,omitempty"` // 公式。当 `rule_type` 为 `cellIs` 时, 返回该参数。 + Text string `json:"text,omitempty"` // 文本。当 `rule_type` 为 `containsText` 时, 返回该参数。值为用户自定义。 +} + +// GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyle ... +type GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyle struct { + Font *GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyleFont `json:"font,omitempty"` // 符合条件的数据的字体样式 + TextDecoration int64 `json:"text_decoration,omitempty"` // 文本装饰。为文本设置下划线或删除线。可选值: 0: 无下划线和删除线- 1: 下划线- 2: 删除线- 3: 同时设置下划线和删除线 + ForeColor string `json:"fore_color,omitempty"` // 字体颜色的十六进制代码。如 #faf1d1。 + BackColor string `json:"back_color,omitempty"` // 背景颜色的十六进制代码。如 #faf1d1。 +} + +// GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyleFont ... +type GetSheetConditionFormatRespSheetConditionFormatConditionFormatStyleFont struct { + Bold bool `json:"bold,omitempty"` // 字体是否加粗 + Italic bool `json:"italic,omitempty"` // 字体是否为斜体 +} + // getSheetConditionFormatResp ... type getSheetConditionFormatResp struct { Code int64 `json:"code,omitempty"` diff --git a/api_drive_sheet_condition_format_update.go b/api_drive_sheet_condition_format_update.go index 4831c0b6..1bd92a4e 100644 --- a/api_drive_sheet_condition_format_update.go +++ b/api_drive_sheet_condition_format_update.go @@ -66,11 +66,56 @@ type UpdateSheetConditionFormatReq struct { SheetConditionFormats []interface{} `json:"sheet_condition_formats,omitempty"` // 要更新的条件格式的信息。支持更新最多 10 个条件格式。 注意: 响应体中将返回每个条件格式的更新结果, 包括成功或具体的失败信息。 } +// UpdateSheetConditionFormatReqSheetConditionFormat ... +type UpdateSheetConditionFormatReqSheetConditionFormat struct { + SheetID string `json:"sheet_id,omitempty"` // 电子表格工作表的 ID。调用[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query)获取 ID。 + ConditionFormat *UpdateSheetConditionFormatReqSheetConditionFormatConditionFormat `json:"condition_format,omitempty"` // 条件格式的详细信息 +} + +// UpdateSheetConditionFormatReqSheetConditionFormatConditionFormat ... +type UpdateSheetConditionFormatReqSheetConditionFormatConditionFormat struct { + CfID string `json:"cf_id,omitempty"` // 需要更新的条件格式的 ID。可通过[获取条件格式](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-get)获取。 + Ranges []string `json:"ranges,omitempty"` // 条件格式应用的范围, 支持以下五种写法, 了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。- `sheetId`: 填写工作表 ID, 表示将条件格式应用于整表- `sheetId!{开始行索引}:{结束行索引}`: 填写工作表 ID 和行数区间, 表示将条件格式应用于整行- `sheetId!{开始列索引}:{结束列索引}`: 填写工作表 ID 和列的区间, 表示将条件格式应用于整列- `sheetId!{开始单元格}:{结束单元格}`: 填写工作表 ID 和单元格区间, 表示将条件格式应用于单元格选定的区域中- `sheetId!{开始单元格}:{结束列索引}`: 填写工作表 ID、起始单元格和结束列, 表示省略结束行, 使用表格的最后行作为结束行注意: 每个范围的区间不可超过表格的行总数和列总数- 每个范围的 sheetId 的值必须与 `sheet_id` 参数的值一致 示例值: ["40a7b0!C3:C3"] + RuleType string `json:"rule_type,omitempty"` // 更新条件时的规则类型。可选值: containsBlanks: 为空- notContainsBlanks: 不为空- duplicateValues: 重复值- uniqueValues: 唯一值- cellIs: 限定值范围- containsText: 包含内容- timePeriod: 日期 + Attrs []*UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr `json:"attrs,omitempty"` // `rule_type` 参数对应的具体属性信息。注意: 当 `rule_type` 为 containsBlanks(为空)、notContainsBlanks(不为空)、duplicateValues(重复值)或 uniqueValues(唯一值)时, 无需传入 `attrs` 参数。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + Style *UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle `json:"style,omitempty"` // 条件格式的样式。支持设置字体样式、文本装饰、字体颜色和背景颜色。 注意: `style` 不可设置为 `""`。默认不传该值, 即不设置样式。 +} + +// UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr ... +type UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatAttr struct { + Operator *string `json:"operator,omitempty"` // 操作方法。了解更多, 参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + TimePeriod *string `json:"time_period,omitempty"` // 时间范围。当 `rule_type` 为 `timePeriod` 时, 该参数必填, 且 `operator` 参数仅支持 `is`。可选值: - yesterday: 昨天- today: 今天- tomorrow: 明天- last7Days: 最近 7 天 + Formula []string `json:"formula,omitempty"` // 公式。当 `rule_type` 为 `cellIs` 时, 该参数必填。 注意: - 当 `operator` 为 `between` 或 `notBetween` 时, 需要填写两个元素, 其他情况下只需填一个元素, 值为用户自定义。- 填写的值若是数字类型, 需填写为如 `"1"` 的格式;若是文本类型, 需填写为 `"\"aaaaa\""` 格式。即文本需要用 "" 包裹并转义。了解更多示例, 请参考[条件格式指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/conditionformat/condition-format-guide)。 + Text *string `json:"text,omitempty"` // 文本。当 `rule_type` 为 `containsText` 时, 该参数必填。值为用户自定义。 +} + +// UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle ... +type UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyle struct { + Font *UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont `json:"font,omitempty"` // 符合条件的数据的字体样式 + TextDecoration *int64 `json:"text_decoration,omitempty"` // 文本装饰。为文本设置下划线或删除线。可选值: 0: 无下划线和删除线- 1: 下划线- 2: 删除线- 3: 同时设置下划线和删除线 + ForeColor *string `json:"fore_color,omitempty"` // 设置字体颜色。需填写字体颜色的十六进制代码。如 #faf1d1。 + BackColor *string `json:"back_color,omitempty"` // 设置背景颜色。需填写背景颜色的十六进制代码。如 #faf1d1。 +} + +// UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont ... +type UpdateSheetConditionFormatReqSheetConditionFormatConditionFormatStyleFont struct { + Bold *bool `json:"bold,omitempty"` // 字体是否加粗 + Italic *bool `json:"italic,omitempty"` // 字体是否为斜体 +} + // UpdateSheetConditionFormatResp ... type UpdateSheetConditionFormatResp struct { Responses []interface{} `json:"responses,omitempty"` // 响应信息 } +// UpdateSheetConditionFormatRespResponse ... +type UpdateSheetConditionFormatRespResponse struct { + SheetID string `json:"sheet_id,omitempty"` // 工作表的 ID + CfID string `json:"cf_id,omitempty"` // 更新的条件格式的 ID + ResCode int64 `json:"res_code,omitempty"` // 条件格式更新的状态码。0 表示成功创建, 非 0 表示失败。 + ResMsg string `json:"res_msg,omitempty"` // 条件格式更新返回的状态信息, success 表示成功, 非 success 将返回失败原因。 +} + // updateSheetConditionFormatResp ... type updateSheetConditionFormatResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败。 diff --git a/api_drive_sheet_data_validation_dropdown_create.go b/api_drive_sheet_data_validation_dropdown_create.go index 6e4684be..a67b67d4 100644 --- a/api_drive_sheet_data_validation_dropdown_create.go +++ b/api_drive_sheet_data_validation_dropdown_create.go @@ -82,7 +82,8 @@ type CreateSheetDataValidationDropdownReqDataValidationOptions struct { } // CreateSheetDataValidationDropdownResp ... -type CreateSheetDataValidationDropdownResp struct{} +type CreateSheetDataValidationDropdownResp struct { +} // createSheetDataValidationDropdownResp ... type createSheetDataValidationDropdownResp struct { diff --git a/api_drive_sheet_dimension_move.go b/api_drive_sheet_dimension_move.go index 671d8432..bf2528e3 100644 --- a/api_drive_sheet_dimension_move.go +++ b/api_drive_sheet_dimension_move.go @@ -73,7 +73,8 @@ type MoveSheetDimensionReqSource struct { } // MoveSheetDimensionResp ... -type MoveSheetDimensionResp struct{} +type MoveSheetDimensionResp struct { +} // moveSheetDimensionResp ... type moveSheetDimensionResp struct { diff --git a/api_drive_sheet_dimension_range_insert.go b/api_drive_sheet_dimension_range_insert.go index bc60289d..573d8631 100644 --- a/api_drive_sheet_dimension_range_insert.go +++ b/api_drive_sheet_dimension_range_insert.go @@ -76,7 +76,8 @@ type InsertSheetDimensionRangeReqDimension struct { } // InsertSheetDimensionRangeResp ... -type InsertSheetDimensionRangeResp struct{} +type InsertSheetDimensionRangeResp struct { +} // insertSheetDimensionRangeResp ... type insertSheetDimensionRangeResp struct { diff --git a/api_drive_sheet_dimension_range_update.go b/api_drive_sheet_dimension_range_update.go index 6d061179..778263cb 100644 --- a/api_drive_sheet_dimension_range_update.go +++ b/api_drive_sheet_dimension_range_update.go @@ -82,7 +82,8 @@ type UpdateSheetDimensionRangeReqDimensionProperties struct { } // UpdateSheetDimensionRangeResp ... -type UpdateSheetDimensionRangeResp struct{} +type UpdateSheetDimensionRangeResp struct { +} // updateSheetDimensionRangeResp ... type updateSheetDimensionRangeResp struct { diff --git a/api_drive_sheet_filter_create.go b/api_drive_sheet_filter_create.go index 97194b8b..cc4f84f8 100644 --- a/api_drive_sheet_filter_create.go +++ b/api_drive_sheet_filter_create.go @@ -74,7 +74,8 @@ type CreateSheetFilterReqCondition struct { } // CreateSheetFilterResp ... -type CreateSheetFilterResp struct{} +type CreateSheetFilterResp struct { +} // createSheetFilterResp ... type createSheetFilterResp struct { diff --git a/api_drive_sheet_filter_delete.go b/api_drive_sheet_filter_delete.go index 37693119..01750a16 100644 --- a/api_drive_sheet_filter_delete.go +++ b/api_drive_sheet_filter_delete.go @@ -64,7 +64,8 @@ type DeleteSheetFilterReq struct { } // DeleteSheetFilterResp ... -type DeleteSheetFilterResp struct{} +type DeleteSheetFilterResp struct { +} // deleteSheetFilterResp ... type deleteSheetFilterResp struct { diff --git a/api_drive_sheet_filter_update.go b/api_drive_sheet_filter_update.go index 2e9b2480..ddd106c6 100644 --- a/api_drive_sheet_filter_update.go +++ b/api_drive_sheet_filter_update.go @@ -73,7 +73,8 @@ type UpdateSheetFilterReqCondition struct { } // UpdateSheetFilterResp ... -type UpdateSheetFilterResp struct{} +type UpdateSheetFilterResp struct { +} // updateSheetFilterResp ... type updateSheetFilterResp struct { diff --git a/api_drive_sheet_filter_view_condition_delete.go b/api_drive_sheet_filter_view_condition_delete.go index 3d6d8720..e18039a5 100644 --- a/api_drive_sheet_filter_view_condition_delete.go +++ b/api_drive_sheet_filter_view_condition_delete.go @@ -66,7 +66,8 @@ type DeleteSheetFilterViewConditionReq struct { } // DeleteSheetFilterViewConditionResp ... -type DeleteSheetFilterViewConditionResp struct{} +type DeleteSheetFilterViewConditionResp struct { +} // deleteSheetFilterViewConditionResp ... type deleteSheetFilterViewConditionResp struct { diff --git a/api_drive_sheet_filter_view_delete.go b/api_drive_sheet_filter_view_delete.go index b7325348..90d488a4 100644 --- a/api_drive_sheet_filter_view_delete.go +++ b/api_drive_sheet_filter_view_delete.go @@ -65,7 +65,8 @@ type DeleteSheetFilterViewReq struct { } // DeleteSheetFilterViewResp ... -type DeleteSheetFilterViewResp struct{} +type DeleteSheetFilterViewResp struct { +} // deleteSheetFilterViewResp ... type deleteSheetFilterViewResp struct { diff --git a/api_drive_sheet_float_image_delete.go b/api_drive_sheet_float_image_delete.go index 0ccb241e..7b25e3d9 100644 --- a/api_drive_sheet_float_image_delete.go +++ b/api_drive_sheet_float_image_delete.go @@ -65,7 +65,8 @@ type DeleteSheetFloatImageReq struct { } // DeleteSheetFloatImageResp ... -type DeleteSheetFloatImageResp struct{} +type DeleteSheetFloatImageResp struct { +} // deleteSheetFloatImageResp ... type deleteSheetFloatImageResp struct { diff --git a/api_drive_sheet_meta_get.go b/api_drive_sheet_meta_get.go index e91958ba..25f0666e 100644 --- a/api_drive_sheet_meta_get.go +++ b/api_drive_sheet_meta_get.go @@ -82,6 +82,50 @@ type GetSheetMetaRespProperties struct { Revision int64 `json:"revision,omitempty"` // 该 sheet 的版本 } +// GetSheetMetaRespSheet ... +type GetSheetMetaRespSheet struct { + SheetID string `json:"sheetId,omitempty"` // sheet 的 id + Title string `json:"title,omitempty"` // sheet 的标题 + Index int64 `json:"index,omitempty"` // sheet 的位置 + RowCount int64 `json:"rowCount,omitempty"` // sheet 的最大行数 + ColumnCount int64 `json:"columnCount,omitempty"` // sheet 的最大列数 + FrozenRowCount int64 `json:"frozenRowCount,omitempty"` // 该 sheet 的冻结行数, 小于等于 sheet 的最大行数, 0表示未设置冻结 + FrozenColCount int64 `json:"frozenColCount,omitempty"` // 该 sheet 的冻结列数, 小于等于 sheet 的最大列数, 0表示未设置冻结 + Merges []*GetSheetMetaRespSheetMerge `json:"merges,omitempty"` // 该 sheet 中合并单元格的范围 + ProtectedRange []interface{} `json:"protectedRange,omitempty"` // 该 sheet 中保护范围 + BlockInfo *GetSheetMetaRespSheetBlockInfo `json:"blockInfo,omitempty"` // 若含有该字段, 则此工作表不为表格 +} + +// GetSheetMetaRespSheetBlockInfo ... +type GetSheetMetaRespSheetBlockInfo struct { + BlockToken string `json:"blockToken,omitempty"` // block的token + BlockType string `json:"blockType,omitempty"` // block的类型 +} + +// GetSheetMetaRespSheetMerge ... +type GetSheetMetaRespSheetMerge struct { + StartRowIndex int64 `json:"startRowIndex,omitempty"` // 合并单元格范围的开始行下标, index 从 0 开始 + StartColumnIndex int64 `json:"startColumnIndex,omitempty"` // 合并单元格范围的开始列下标, index 从 0 开始 + RowCount int64 `json:"rowCount,omitempty"` // 合并单元格范围的行数量 + ColumnCount int64 `json:"columnCount,omitempty"` // 合并单元格范围的列数量 +} + +// GetSheetMetaRespSheetProtectedRange ... +type GetSheetMetaRespSheetProtectedRange struct { + Dimension *GetSheetMetaRespSheetProtectedRangeDimension `json:"dimension,omitempty"` // 保护行列的信息, 如果为保护工作表, 则该字段为空 + ProtectID string `json:"protectId,omitempty"` // 保护范围ID + LockInfo string `json:"lockInfo,omitempty"` // 保护说明 + SheetID string `json:"sheetId,omitempty"` // 保护工作表 ID +} + +// GetSheetMetaRespSheetProtectedRangeDimension ... +type GetSheetMetaRespSheetProtectedRangeDimension struct { + StartIndex int64 `json:"startIndex,omitempty"` // 保护行列的起始位置, 位置从1开始 + EndIndex int64 `json:"endIndex,omitempty"` // 保护行列的结束位置, 位置从1开始 + MajorDimension string `json:"majorDimension,omitempty"` // 若为ROWS, 则为保护行;为COLUMNS, 则为保护列 + SheetID string `json:"sheetId,omitempty"` // 保护范围所在工作表 ID +} + // getSheetMetaResp ... type getSheetMetaResp struct { Code int64 `json:"code,omitempty"` diff --git a/api_drive_sheet_protected_dimension_create.go b/api_drive_sheet_protected_dimension_create.go index 2f4a2dcc..fb46faee 100644 --- a/api_drive_sheet_protected_dimension_create.go +++ b/api_drive_sheet_protected_dimension_create.go @@ -91,6 +91,23 @@ type CreateSheetProtectedDimensionResp struct { AddProtectedDimension []interface{} `json:"addProtectedDimension,omitempty"` // 保护范围的维度信息 } +// CreateSheetProtectedDimensionRespAddProtectedDimension ... +type CreateSheetProtectedDimensionRespAddProtectedDimension struct { + Dimension *CreateSheetProtectedDimensionRespAddProtectedDimensionDimension `json:"dimension,omitempty"` // 保护范围的信息 + Editors []int64 `json:"editors,omitempty"` // 允许编辑保护范围的用户的 `lark_id`。 + Users []string `json:"users,omitempty"` // 允许编辑保护范围的用户的 ID。ID 类型取决于查询参数 `user_id_type`。 + LockInfo string `json:"lockInfo,omitempty"` // 保护范围的备注信息 + ProtectID string `json:"protectId,omitempty"` // 保护范围的 ID +} + +// CreateSheetProtectedDimensionRespAddProtectedDimensionDimension ... +type CreateSheetProtectedDimensionRespAddProtectedDimensionDimension struct { + SheetID string `json:"sheetId,omitempty"` // 保护范围所在的工作表的 ID + MajorDimension string `json:"majorDimension,omitempty"` // 保护范围的维度。枚举值: ROWS: 行- COLUMNS: 列 + StartIndex int64 `json:"startIndex,omitempty"` // 保护范围开始的行或列的索引。 + EndIndex int64 `json:"endIndex,omitempty"` // 保护范围结束的行或列的索引。 +} + // createSheetProtectedDimensionResp ... type createSheetProtectedDimensionResp struct { Code int64 `json:"code,omitempty"` diff --git a/api_drive_sheet_protected_dimension_get.go b/api_drive_sheet_protected_dimension_get.go index 62d8fa56..f4b55f5c 100644 --- a/api_drive_sheet_protected_dimension_get.go +++ b/api_drive_sheet_protected_dimension_get.go @@ -73,6 +73,34 @@ type GetSheetProtectedDimensionResp struct { ProtectedRanges []interface{} `json:"protectedRanges,omitempty"` // 保护范围的信息 } +// GetSheetProtectedDimensionRespProtectedRange ... +type GetSheetProtectedDimensionRespProtectedRange struct { + ProtectID string `json:"protectId,omitempty"` // 保护范围的 ID + Dimension *GetSheetProtectedDimensionRespProtectedRangeDimension `json:"dimension,omitempty"` // 保护范围的维度信息。为空表示保护整个工作表。 + SheetID string `json:"sheetId,omitempty"` // 工作表的 ID + LockInfo string `json:"lockInfo,omitempty"` // 保护范围的备注信息 + Editors *GetSheetProtectedDimensionRespProtectedRangeEditors `json:"editors,omitempty"` // 允许编辑保护范围的用户信息 +} + +// GetSheetProtectedDimensionRespProtectedRangeDimension ... +type GetSheetProtectedDimensionRespProtectedRangeDimension struct { + SheetID string `json:"sheetId,omitempty"` // 工作表的 ID + StartIndex int64 `json:"startIndex"` // 开始的行或列的索引。从 1 开始计数。若 `startIndex` 为 3, 则从第 3 行或列开始保护。包含第 3 行或列。 + EndIndex int64 `json:"endIndex,omitempty"` // 结束的行或列的索引。从 1 开始计数。若 `endIndex` 为 7, 则保护到第 7 行或列。包含第 7 行或列。 + MajorDimension string `json:"majorDimension,omitempty"` // 保护范围的维度。可选值: ROWS: 行- COLUMNS: 列 +} + +// GetSheetProtectedDimensionRespProtectedRangeEditors ... +type GetSheetProtectedDimensionRespProtectedRangeEditors struct { + Users []interface{} `json:"users,omitempty"` // 用户信息的列表 +} + +// GetSheetProtectedDimensionRespProtectedRangeEditorsUser ... +type GetSheetProtectedDimensionRespProtectedRangeEditorsUser struct { + MemberType string `json:"memberType,omitempty"` // 用户 ID 的类型 + MemberID string `json:"memberId,omitempty"` // 用户的 ID +} + // getSheetProtectedDimensionResp ... type getSheetProtectedDimensionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_drive_sheet_protected_dimension_update.go b/api_drive_sheet_protected_dimension_update.go index 1501789d..1f673fdf 100644 --- a/api_drive_sheet_protected_dimension_update.go +++ b/api_drive_sheet_protected_dimension_update.go @@ -82,11 +82,64 @@ type UpdateSheetProtectedDimensionReqRequestsDimension struct { EndIndex int64 `json:"endIndex,omitempty"` // 结束的行或列的索引。从 1 开始计数。若 `endIndex` 为 7, 则保护到第 7 行或列。包含第 7 行或列。 } +// UpdateSheetProtectedDimensionReqRequestsEditor ... +type UpdateSheetProtectedDimensionReqRequestsEditor struct { + AddEditors []*UpdateSheetProtectedDimensionReqRequestsEditorAddEditor `json:"addEditors,omitempty"` // 增加的用户 ID 列表, 用户需要有文档的编辑权限。 + DelEditors []*UpdateSheetProtectedDimensionReqRequestsEditorDelEditor `json:"delEditors,omitempty"` // 需要删除的用户的列表 +} + +// UpdateSheetProtectedDimensionReqRequestsEditorAddEditor ... +type UpdateSheetProtectedDimensionReqRequestsEditorAddEditor struct { + MemberType string `json:"memberType,omitempty"` // 用户 ID 类型, 可选值: userId: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。详情参考[如何获取 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)- openId: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。详情参考[如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)- unionId: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。详情参考[如何获取 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id) + MemberID string `json:"memberId,omitempty"` // 用户 ID, 类型由 `memberType` 决定。 +} + +// UpdateSheetProtectedDimensionReqRequestsEditorDelEditor ... +type UpdateSheetProtectedDimensionReqRequestsEditorDelEditor struct { + MemberType string `json:"memberType,omitempty"` // 用户 ID 类型, 可选值: userId: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。详情参考[如何获取 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)- openId: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。详情参考[如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)- unionId: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。详情参考[如何获取 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id) + MemberID string `json:"memberId,omitempty"` // 用户 ID, 类型由 `memberType` 决定。 +} + // UpdateSheetProtectedDimensionResp ... type UpdateSheetProtectedDimensionResp struct { Replies []interface{} `json:"replies,omitempty"` // 修改后的保护范围的信息 } +// UpdateSheetProtectedDimensionRespReplie ... +type UpdateSheetProtectedDimensionRespReplie struct { + ProtectID string `json:"protectId,omitempty"` // 保护范围 ID + SheetID string `json:"sheetId,omitempty"` // 工作表 ID + Dimension *UpdateSheetProtectedDimensionRespReplieDimension `json:"dimension,omitempty"` // 保护的行或列 + Editors []*UpdateSheetProtectedDimensionRespReplieEditor `json:"editors,omitempty"` // 增加或删除的可编辑保护范围的用户 ID 列表 + LockInfo string `json:"lockInfo,omitempty"` // 修改的备注信息 +} + +// UpdateSheetProtectedDimensionRespReplieDimension ... +type UpdateSheetProtectedDimensionRespReplieDimension struct { + SheetID string `json:"sheetId,omitempty"` // 电子表格工作表的 ID + StartIndex int64 `json:"startIndex"` // 开始的行或列的索引。从 1 开始计数。若 startIndex 为 3, 则从第 3 行或列开始保护。包含第 3 行或列。 + EndIndex int64 `json:"endIndex,omitempty"` // 结束的行或列的索引。从 1 开始计数。若 endIndex 为 7, 则保护到第 7 行或列。包含第 7 行或列。 + MajorDimension string `json:"majorDimension,omitempty"` // 保护范围的维度。枚举值: ROWS: 行- COLUMNS: 列 +} + +// UpdateSheetProtectedDimensionRespReplieEditor ... +type UpdateSheetProtectedDimensionRespReplieEditor struct { + AddEditors []interface{} `json:"addEditors,omitempty"` // 增加的用户 ID 列表 + DelEditors []interface{} `json:"delEditors,omitempty"` // 删除的用户的列表 +} + +// UpdateSheetProtectedDimensionRespReplieEditorAddEditor ... +type UpdateSheetProtectedDimensionRespReplieEditorAddEditor struct { + MemberType string `json:"memberType,omitempty"` // 用户 ID 类型 + MemberID string `json:"memberId,omitempty"` // 用户 ID, 类型由 memberType 决定。 +} + +// UpdateSheetProtectedDimensionRespReplieEditorDelEditor ... +type UpdateSheetProtectedDimensionRespReplieEditorDelEditor struct { + MemberType string `json:"memberType,omitempty"` // 用户 ID 类型 + MemberID string `json:"memberId,omitempty"` // 用户 ID, 类型由 memberType 决定。 +} + // updateSheetProtectedDimensionResp ... type updateSheetProtectedDimensionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_drive_spreadsheet_create.go b/api_drive_spreadsheet_create.go index 21de8044..9129fac0 100644 --- a/api_drive_spreadsheet_create.go +++ b/api_drive_spreadsheet_create.go @@ -21,12 +21,9 @@ import ( "context" ) -// CreateSpreadsheet 在云空间指定目录下创建电子表格。可自定义表格标题。不支持带内容创建表格。 -// -// 要基于模板创建电子表格, 可先获取模板电子表格的 `spreadsheet_token` 作为文件 token, 再调用[复制文件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/copy)接口创建电子表格。 +// CreateSpreadsheet 使用该接口可以在指定的目录下创建在线表格。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet/create -// new doc: https://open.feishu.cn/document/server-docs/docs/sheets-v3/spreadsheet/create func (r *DriveService) CreateSpreadsheet(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) { if r.cli.mock.mockDriveCreateSpreadsheet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateSpreadsheet mock enable") @@ -61,27 +58,26 @@ func (r *Mock) UnMockDriveCreateSpreadsheet() { // CreateSpreadsheetReq ... type CreateSpreadsheetReq struct { - Title *string `json:"title,omitempty"` // 表格标题示例值: "Sales sheet" 长度范围: `0` ~ `255` 字符 - FolderToken *string `json:"folder_token,omitempty"` // 文件夹 token。你可通过以下两种方式获取文件夹的 token: 文件夹的 URL: https://sample.feishu.cn/drive/folder/[fldbcO1UuPz8VwnpPx5a92abcef]- 调用开放平台接口获取: - 调用[获取我的空间(root folder)元数据](https://open.feishu.cn/document/ukTMukTMukTM/ugTNzUjL4UzM14CO1MTN/get-root-folder-meta)接口获取根目录(即根文件夹)的 token。 - 继续调用[获取文件夹中的文件清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/list)接口, 获取根目录下文件夹的 token。提示: 要在知识库中创建电子表格, 你需调用[创建知识空间节点](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/create)接口, 并选择表格(sheet)类型。示例值: "fldbcO1UuPz8VwnpPx5a92abcef" + Title *string `json:"title,omitempty"` // 表格标题, 示例值: "title" + FolderToken *string `json:"folder_token,omitempty"` // 文件夹token, 获取方式见[概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction), 示例值: "fldcnMsNb*hIW9IjG1LVswg" } // CreateSpreadsheetResp ... type CreateSpreadsheetResp struct { - Spreadsheet *CreateSpreadsheetRespSpreadsheet `json:"spreadsheet,omitempty"` // 电子表格的基础信息 + Spreadsheet *CreateSpreadsheetRespSpreadsheet `json:"spreadsheet,omitempty"` // 表格 } // CreateSpreadsheetRespSpreadsheet ... type CreateSpreadsheetRespSpreadsheet struct { - Title string `json:"title,omitempty"` // 电子表格标题 - FolderToken string `json:"folder_token,omitempty"` // 文件夹 token - URL string `json:"url,omitempty"` // 电子表格的 URL 链接 - SpreadSheetToken string `json:"spreadsheet_token,omitempty"` // 电子表格 token + Title string `json:"title,omitempty"` // 表格标题 + FolderToken string `json:"folder_token,omitempty"` // 文件夹token, 获取方式见[概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) + URL string `json:"url,omitempty"` // 文档url + SpreadSheetToken string `json:"spreadsheet_token,omitempty"` // 表格token } // createSpreadsheetResp ... type createSpreadsheetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateSpreadsheetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateSpreadsheetResp `json:"data,omitempty"` } diff --git a/api_drive_spreadsheet_update.go b/api_drive_spreadsheet_update.go index 74327a2d..87067a2b 100644 --- a/api_drive_spreadsheet_update.go +++ b/api_drive_spreadsheet_update.go @@ -64,7 +64,8 @@ type UpdateSpreadsheetReq struct { } // UpdateSpreadsheetResp ... -type UpdateSpreadsheetResp struct{} +type UpdateSpreadsheetResp struct { +} // updateSpreadsheetResp ... type updateSpreadsheetResp struct { diff --git a/api_drive_whiteboard_node_list.go b/api_drive_whiteboard_node_list.go index 1628be58..7766f29d 100644 --- a/api_drive_whiteboard_node_list.go +++ b/api_drive_whiteboard_node_list.go @@ -21,9 +21,10 @@ import ( "context" ) -// GetWhiteboardNodeList 获取画板内所有的节点 +// GetWhiteboardNodeList 获取画板内所有的节点, 节点以数组方式返回, 可通过 parent_id(父节点)、children(子节点) 关系组装成画板内容。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/list +// new doc: https://open.feishu.cn/document/docs/board-v1/whiteboard-node/list func (r *DriveService) GetWhiteboardNodeList(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) { if r.cli.mock.mockDriveGetWhiteboardNodeList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetWhiteboardNodeList mock enable") @@ -58,7 +59,8 @@ func (r *Mock) UnMockDriveGetWhiteboardNodeList() { // GetWhiteboardNodeListReq ... type GetWhiteboardNodeListReq struct { - WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板唯一标识, 示例值: "Ru8nwrWFOhEmaFbEU2VbPRsHcxb", 长度范围: `22` ~ `27` 字符 + WhiteboardID string `path:"whiteboard_id" json:"-"` // 画板唯一标识, 可通过云文档下的文档接口 [获取文档所有块](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list) 获取, `block_type` 为 43 的 block 即为画板, 对应的 block.token 就是画板的whiteboard_id示例值: "Ru8nwrWFOhEmaFbEU2VbPRsHcxb" 长度范围: `22` ~ `27` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetWhiteboardNodeListResp ... @@ -69,34 +71,66 @@ type GetWhiteboardNodeListResp struct { // GetWhiteboardNodeListRespNode ... type GetWhiteboardNodeListRespNode struct { ID string `json:"id,omitempty"` // 节点 id - Type string `json:"type,omitempty"` // 节点图形类型, 目前创建节点仅支持创建图片、文本、基础图形等类型, 读取到不支持创建的图形时只返回一些基础信息, 如 id、type、text、style 等, 可选值有: image: 图片, text_shape: 文本, group: 组合, composite_shape: 基础图形, svg: svg 图形, connector: 连线, table: 表格, life_line: 对象生命线, activation: 控制焦点, section: 分区, table_uml: 类图, table_er: 实体关系图, sticky_note: 便签, mind_map: 思维导图, paint: 画笔 - ParentID string `json:"parent_id,omitempty"` // 父节点 id + Type string `json:"type,omitempty"` // 节点图形类型可选值有: 图片属性文本组合基础图形svg 图形连线表格对象生命线控制焦点分区类图实体关系图便签思维导图画笔组合片段 + ParentID string `json:"parent_id,omitempty"` // 父节点 id, 为空是表示根节点 Children []string `json:"children,omitempty"` // 子节点 X float64 `json:"x,omitempty"` // 图形相对画布的 x 轴位置信息(存在父容器时为相对父容器的坐标, 父容器为组合图形 group 时, 坐标是穿透的), 单位为 px Y float64 `json:"y,omitempty"` // 图形相对画布的 y 轴位置信息(存在父容器时为相对父容器的坐标, 父容器为组合图形 group 时, 坐标是穿透的), 单位为 px - Angle float64 `json:"angle,omitempty"` // 图形旋转角度 - Width float64 `json:"width,omitempty"` // 图形宽度, 单位为 px + Angle float64 `json:"angle,omitempty"` // 图形旋转角度, 单位度 Height float64 `json:"height,omitempty"` // 图形高度, 单位为 px Text *GetWhiteboardNodeListRespNodeText `json:"text,omitempty"` // 图形内文字 Style *GetWhiteboardNodeListRespNodeStyle `json:"style,omitempty"` // 图形样式 Image *GetWhiteboardNodeListRespNodeImage `json:"image,omitempty"` // 图片 CompositeShape *GetWhiteboardNodeListRespNodeCompositeShape `json:"composite_shape,omitempty"` // 基础图形属性 Connector *GetWhiteboardNodeListRespNodeConnector `json:"connector,omitempty"` // 连线属性 + Width float64 `json:"width,omitempty"` // 图形宽度, 单位为 px Section *GetWhiteboardNodeListRespNodeSection `json:"section,omitempty"` // 分区属性 Table *GetWhiteboardNodeListRespNodeTable `json:"table,omitempty"` // 表格属性 - MindMap *GetWhiteboardNodeListRespNodeMindMap `json:"mind_map,omitempty"` // 思维导图属性 + Locked bool `json:"locked,omitempty"` // 图形是否锁定 + ZIndex int64 `json:"z_index,omitempty"` // 图形在兄弟节点中的层级, 层级大的会覆盖层级小的 + Lifeline *GetWhiteboardNodeListRespNodeLifeline `json:"lifeline,omitempty"` // 生命对象属性 + Paint *GetWhiteboardNodeListRespNodePaint `json:"paint,omitempty"` // 画笔属性 + Svg *GetWhiteboardNodeListRespNodeSvg `json:"svg,omitempty"` // svg图形属性 + StickyNote *GetWhiteboardNodeListRespNodeStickyNote `json:"sticky_note,omitempty"` // 便签图形属性 + MindMapNode *GetWhiteboardNodeListRespNodeMindMapNode `json:"mind_map_node,omitempty"` // 思维导图节点属性 + MindMapRoot *GetWhiteboardNodeListRespNodeMindMapRoot `json:"mind_map_root,omitempty"` // 思维导图根节点属性 + MindMap *GetWhiteboardNodeListRespNodeMindMap `json:"mind_map,omitempty"` // 思维导图节点(v1版本, 只读, 写操作请使用mind_map_root/mind_map_node结构) } // GetWhiteboardNodeListRespNodeCompositeShape ... type GetWhiteboardNodeListRespNodeCompositeShape struct { - Type string `json:"type,omitempty"` // 基础图形的具体类型, 可选值有: round_rect2: 全圆角矩形, ellipse: 圆形, hexagon: 六边形, cylinder: 圆柱体, parallelogram: 平行四边形, trapezoid: 梯形, triangle: 三角形, round_rect: 圆角矩形, step: 步骤, diamond: 菱形, rect: 基础矩形, star: 五角星, bubble: 气泡, pentagon: 五边形, forward_arrow: 单向箭头, document_shape: 文档图形, condition_shape: 组合片段, cloud: 云朵, cross: 十字形, step2: 步骤图形2, predefined_process: 预定义流程, delay_shape: 延迟图形, off_page_connector: 跨页引用, note_shape: 注释图形, data_process: 数据处理, data_store: 数据存储, data_store2: 数据存储2, data_store3: 数据存储3, star2: 爆炸星型, star3: 四角形, star4: 六角形, actor: 角色小人, brace: 花括号, condition_shape2: 组合片段2, double_arrow: 双向箭头, data_flow_round_rect3: 数据处理(正方圆角矩形), rect_bubble: 矩形气泡, manual_input: 手动输入图形, flow_chart_round_rect: 流程图圆角矩形, flow_chart_round_rect2: 流程图全圆角矩形, flow_chart_diamond: 流程图判定, flow_chart_parallelogram: 流程图数据, flow_chart_cylinder: 流程图数据库, flow_chart_trapezoid: 流程图手动操作, flow_chart_hexagon: 流程图准备, data_flow_round_rect: 数据流外部实体, data_flow_ellipse: 数据流数据处理, backward_arrow: 反向箭头(左箭头), brace_reverse: 反向花括号(左括号), flow_chart_mq: 消息队列, horiz_cylinder: 水平方向圆柱体, class_interface: 类图, 接口, classifier: 类图, 类目, circular_ring: 圆环, pie: 扇形, right_triangle: 直角三角形, octagon: 八边形, state_start: 状态图, 开始, state_end: 状态图, 结束, state_concurrence: 状态图, 并发, component_shape: 组件, component_shape2: 组件2, component_interface: 组件, 接口, component_required_interface: 组件, 需求接口, component_assembly: 组件, 组装, cube: 立方体 + Type string `json:"type,omitempty"` // 基础图形的具体类型可选值有: 全圆角矩形圆形六边形圆柱体平行四边形梯形三角形圆角矩形步骤菱形基础矩形五角星气泡五边形单向箭头文档图形组合片段云朵十字形步骤图形2预定义流程延迟图形跨页引用注释图形数据处理数据存储数据存储2数据存储3爆炸星型四角形六角形角色小人花括号组合片段2双向箭头数据处理(正方圆角矩形)矩形气泡手动输入图形流程图圆角矩形流程图全圆角矩形流程图判定流程图数据流程图数据库流程图手动操作流程图准备数据流外部实体数据流数据处理反向箭头(左箭头)反向花括号(左括号)消息队列水平方向圆柱体类图, 接口类图, 类目圆环扇形直角三角形八边形状态图, 开始状态图, 结束状态图, 并发组件组件2组件, 接口组件, 需求接口组件, 组装立方体边界控制实体数据库边界队列集合角色生命线对象生命线思维导图全圆角矩形思维导图圆角矩形思维导图文本图形 + Pie *GetWhiteboardNodeListRespNodeCompositeShapePie `json:"pie,omitempty"` // 饼图属性, type=pie时需要设置 + CircularRing *GetWhiteboardNodeListRespNodeCompositeShapeCircularRing `json:"circular_ring,omitempty"` // 圆环属性, type=circular_ring时需要设置 +} + +// GetWhiteboardNodeListRespNodeCompositeShapeCircularRing ... +type GetWhiteboardNodeListRespNodeCompositeShapeCircularRing struct { + StartRadialLineAngle float64 `json:"start_radial_line_angle,omitempty"` // 开始径向边角度, 水平向右x轴正方向为0度, 顺时针方向角度值递增 + CentralAngle float64 `json:"central_angle,omitempty"` // 圆心角角度, 角度方向为始径向边逆时针方向 + Radius float64 `json:"radius,omitempty"` // 半径长度 + SectorRatio float64 `json:"sector_ratio,omitempty"` // 扇区占比, 0为一个圆周线, 1为一个圆盘 +} + +// GetWhiteboardNodeListRespNodeCompositeShapePie ... +type GetWhiteboardNodeListRespNodeCompositeShapePie struct { + StartRadialLineAngle float64 `json:"start_radial_line_angle,omitempty"` // 开始径向边角度, 水平向右x轴正方向为0度, 顺时针方向角度值递增, 单位度 + CentralAngle float64 `json:"central_angle,omitempty"` // 圆心角角度, 角度方向为始径向边逆时针方向, 单位度 + Radius float64 `json:"radius,omitempty"` // 半径长度, 单位 px + SectorRatio float64 `json:"sector_ratio,omitempty"` // 扇区占比, 0为一个圆周线, 1为一个圆盘 } // GetWhiteboardNodeListRespNodeConnector ... type GetWhiteboardNodeListRespNodeConnector struct { - StartObject *GetWhiteboardNodeListRespNodeConnectorStartObject `json:"start_object,omitempty"` // 连线连接的起点图形 - EndObject *GetWhiteboardNodeListRespNodeConnectorEndObject `json:"end_object,omitempty"` // 连线连接的终点图形 - Captions *GetWhiteboardNodeListRespNodeConnectorCaptions `json:"captions,omitempty"` // 连线文本 + StartObject *GetWhiteboardNodeListRespNodeConnectorStartObject `json:"start_object,omitempty"` // 开始连接节点信息(兼容线上数据, 只读, 写操作使用 start 字段, start_object 设置也不会生效) + EndObject *GetWhiteboardNodeListRespNodeConnectorEndObject `json:"end_object,omitempty"` // 结束连接点信息(兼容线上数据, 只读, 写操作使用 end 字段, 写入时设置字段也不会生效) + Start *GetWhiteboardNodeListRespNodeConnectorStart `json:"start,omitempty"` // 连线端点信息 + End *GetWhiteboardNodeListRespNodeConnectorEnd `json:"end,omitempty"` // 连线端点信息 + Captions *GetWhiteboardNodeListRespNodeConnectorCaptions `json:"captions,omitempty"` // 连线文本 + Shape string `json:"shape,omitempty"` // 连线类型可选值有: 直线折线曲线直角折线 + TurningPoints []*GetWhiteboardNodeListRespNodeConnectorTurningPoint `json:"turning_points,omitempty"` // 连线转向点 + CaptionAutoDirection bool `json:"caption_auto_direction,omitempty"` // 连线上的文本方向是否自动跟随连线方向 + CaptionPosition float64 `json:"caption_position,omitempty"` // 文本在连线上的相对位置, 范围0-1, 0表示在连线的起始点, 1表示在连线的终点 } // GetWhiteboardNodeListRespNodeConnectorCaptions ... @@ -106,21 +140,198 @@ type GetWhiteboardNodeListRespNodeConnectorCaptions struct { // GetWhiteboardNodeListRespNodeConnectorCaptionsData ... type GetWhiteboardNodeListRespNodeConnectorCaptionsData struct { - Text string `json:"text,omitempty"` // 文字内容 - FontWeight string `json:"font_weight,omitempty"` // 文字字重, 可选值有: regular: 常规, bold: 加粗 - FontSize int64 `json:"font_size,omitempty"` // 文字大小 - HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐, 可选值有: left: 向左对齐, center: 居中对齐, right: 向右对齐 - VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐, 可选值有: top: 顶部对齐, mid: 垂直居中, bottom: 底部对齐 + Text string `json:"text,omitempty"` // 文字内容 + FontWeight string `json:"font_weight,omitempty"` // 文字字重可选值有: 常规加粗 + FontSize int64 `json:"font_size,omitempty"` // 文字大小, 单位 px + HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐可选值有: 顶部对齐垂直居中底部对齐 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 + Angle int64 `json:"angle,omitempty"` // 文字旋转角度可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 + ThemeTextColorCode int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值 + ThemeTextBackgroundColorCode int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值 + RichText *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 + TextBackgroundColorType int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichText ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichText struct { + Paragraphs []*GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraph ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别可选值有: 普通段落无序列表有序列表 + Elements []*GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 + Indent int64 `json:"indent,omitempty"` // 缩进 + ListBeginIndex int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1 + Quote bool `json:"quote,omitempty"` // 引用 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElement ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别可选值有: 文本链接@用户文档 + TextElement *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息, 如果元素类别为文本时需要设置 + LinkElement *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息, 元素类别为链接时需要设置 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息, 元素类别是@用户时候需要设置 + MentionDocElement *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息, 元素类别是文档时候需要设置 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElement ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接 + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementLinkElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接 + TextStyle *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElement ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 + TextStyle *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElement ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle ... +type GetWhiteboardNodeListRespNodeConnectorCaptionsDataRichTextParagraphElementTextElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeConnectorEnd ... +type GetWhiteboardNodeListRespNodeConnectorEnd struct { + AttachedObject *GetWhiteboardNodeListRespNodeConnectorEndAttachedObject `json:"attached_object,omitempty"` // 连接图形信息 + Position *GetWhiteboardNodeListRespNodeConnectorEndPosition `json:"position,omitempty"` // 连线端点在画布内的坐标, position与attached_object二选一, position与attached_object 同时设置时 attached_object 生效 + ArrowStyle string `json:"arrow_style,omitempty"` // 连线端点箭头样式可选值有: 无箭头样式线型箭头三角形箭头空心三角形箭头圆形箭头空心圆形箭头菱形箭头空心菱形箭头单箭头多箭头精确单箭头零个或多个箭头零个或单个箭头单个或多个箭头x型箭头 +} + +// GetWhiteboardNodeListRespNodeConnectorEndAttachedObject ... +type GetWhiteboardNodeListRespNodeConnectorEndAttachedObject struct { + ID string `json:"id,omitempty"` // 连接图形的 id + SnapTo string `json:"snap_to,omitempty"` // 连接图形的方向可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 + Position *GetWhiteboardNodeListRespNodeConnectorEndAttachedObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// GetWhiteboardNodeListRespNodeConnectorEndAttachedObjectPosition ... +type GetWhiteboardNodeListRespNodeConnectorEndAttachedObjectPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标 + Y float64 `json:"y,omitempty"` // 点位置y坐标 } // GetWhiteboardNodeListRespNodeConnectorEndObject ... type GetWhiteboardNodeListRespNodeConnectorEndObject struct { - ID string `json:"id,omitempty"` // 连接图形的 id + ID string `json:"id,omitempty"` // 连接图形的 id + SnapTo string `json:"snap_to,omitempty"` // 连接图形的方向可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 + Position *GetWhiteboardNodeListRespNodeConnectorEndObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// GetWhiteboardNodeListRespNodeConnectorEndObjectPosition ... +type GetWhiteboardNodeListRespNodeConnectorEndObjectPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标 + Y float64 `json:"y,omitempty"` // 点位置y坐标 +} + +// GetWhiteboardNodeListRespNodeConnectorEndPosition ... +type GetWhiteboardNodeListRespNodeConnectorEndPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标, 单位百分比 + Y float64 `json:"y,omitempty"` // 点位置y坐标, 单位百分比 +} + +// GetWhiteboardNodeListRespNodeConnectorStart ... +type GetWhiteboardNodeListRespNodeConnectorStart struct { + AttachedObject *GetWhiteboardNodeListRespNodeConnectorStartAttachedObject `json:"attached_object,omitempty"` // 连接图形信息 + Position *GetWhiteboardNodeListRespNodeConnectorStartPosition `json:"position,omitempty"` // 连线端点在画布内的坐标, position与attached_object二选一, position与attached_object 同时设置时 attached_object 生效 + ArrowStyle string `json:"arrow_style,omitempty"` // 连线端点箭头样式可选值有: 无箭头样式线型箭头三角形箭头空心三角形箭头圆形箭头空心圆形箭头菱形箭头空心菱形箭头单箭头多箭头精确单箭头零个或多个箭头零个或单个箭头单个或多个箭头x型箭头 +} + +// GetWhiteboardNodeListRespNodeConnectorStartAttachedObject ... +type GetWhiteboardNodeListRespNodeConnectorStartAttachedObject struct { + ID string `json:"id,omitempty"` // 连接图形的 id + SnapTo string `json:"snap_to,omitempty"` // 连接图形的方向可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 + Position *GetWhiteboardNodeListRespNodeConnectorStartAttachedObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// GetWhiteboardNodeListRespNodeConnectorStartAttachedObjectPosition ... +type GetWhiteboardNodeListRespNodeConnectorStartAttachedObjectPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标 + Y float64 `json:"y,omitempty"` // 点位置y坐标 } // GetWhiteboardNodeListRespNodeConnectorStartObject ... type GetWhiteboardNodeListRespNodeConnectorStartObject struct { - ID string `json:"id,omitempty"` // 连接图形的 id + ID string `json:"id,omitempty"` // 连接图形的 id + SnapTo string `json:"snap_to,omitempty"` // 连接图形的方向可选值有: 连接方向自动匹配连接图形顶部方向连接图形右边方向连接图形底部方向连接图形左边方向 + Position *GetWhiteboardNodeListRespNodeConnectorStartObjectPosition `json:"position,omitempty"` // 连接图形的相对坐标, 0-1 +} + +// GetWhiteboardNodeListRespNodeConnectorStartObjectPosition ... +type GetWhiteboardNodeListRespNodeConnectorStartObjectPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标 + Y float64 `json:"y,omitempty"` // 点位置y坐标 +} + +// GetWhiteboardNodeListRespNodeConnectorStartPosition ... +type GetWhiteboardNodeListRespNodeConnectorStartPosition struct { + X float64 `json:"x,omitempty"` // 点位置x坐标, 单位百分比 + Y float64 `json:"y,omitempty"` // 点位置y坐标, 单位百分比 +} + +// GetWhiteboardNodeListRespNodeConnectorTurningPoint ... +type GetWhiteboardNodeListRespNodeConnectorTurningPoint struct { + X float64 `json:"x,omitempty"` // 点位置x坐标, 单位百分比 + Y float64 `json:"y,omitempty"` // 点位置y坐标, 单位百分比 } // GetWhiteboardNodeListRespNodeImage ... @@ -128,9 +339,50 @@ type GetWhiteboardNodeListRespNodeImage struct { Token string `json:"token,omitempty"` // 图片 token } +// GetWhiteboardNodeListRespNodeLifeline ... +type GetWhiteboardNodeListRespNodeLifeline struct { + Size float64 `json:"size,omitempty"` // 生命线长度, 单位 px + Type string `json:"type,omitempty"` // 生命线类型 +} + // GetWhiteboardNodeListRespNodeMindMap ... type GetWhiteboardNodeListRespNodeMindMap struct { - ParentID string `json:"parent_id,omitempty"` // 思维导图父节点 id, 为空表示是思维导图的根节点 + ParentID string `json:"parent_id,omitempty"` // 父节点id +} + +// GetWhiteboardNodeListRespNodeMindMapNode ... +type GetWhiteboardNodeListRespNodeMindMapNode struct { + ParentID string `json:"parent_id,omitempty"` // 思维导图节点的父节点, 必须为思维导图节点 + Type string `json:"type,omitempty"` // 思维导图节点图形类型可选值有: 思维导图文本节点类型思维导图全圆角矩形节点类型思维导图矩形节点类型 + ZIndex int64 `json:"z_index,omitempty"` // 思维导图节点在兄弟节点中的位置index + LayoutPosition string `json:"layout_position,omitempty"` // 子节点相对根节点的方向(根节点下的子节点设置才生效)可选值有: 思维导图节点在根节点左侧思维导图节点在根节点右侧思维导图节点在根节点上方思维导图节点在根节点下方 + Children []string `json:"children,omitempty"` // 子节点列表 + Collapsed bool `json:"collapsed,omitempty"` // 是否收起子节点 +} + +// GetWhiteboardNodeListRespNodeMindMapRoot ... +type GetWhiteboardNodeListRespNodeMindMapRoot struct { + Layout string `json:"layout,omitempty"` // 思维导图布局方式可选值有: 上下布局左右布局左树布局右树布局左右交替平衡树布局垂直时间线布局水平时间线布局 + Type string `json:"type,omitempty"` // 思维导图根节点图形类型可选值有: 思维导图文本节点类型思维导图全圆角矩形节点类型思维导图矩形节点类型 + LineStyle string `json:"line_style,omitempty"` // 思维导图图形连接线样式可选值有: 曲线直角折线圆角折线 + UpChildren []string `json:"up_children,omitempty"` // 思维导图上布局子节点关系树 + DownChildren []string `json:"down_children,omitempty"` // 思维导图下布局子节点关系树 + LeftChildren []string `json:"left_children,omitempty"` // 思维导图左布局子节点关系树 + RightChildren []string `json:"right_children,omitempty"` // 思维导图右布局子节点关系树 +} + +// GetWhiteboardNodeListRespNodePaint ... +type GetWhiteboardNodeListRespNodePaint struct { + Type string `json:"type,omitempty"` // 画笔类型可选值有: 马克笔高亮笔 + Lines []*GetWhiteboardNodeListRespNodePaintLine `json:"lines,omitempty"` // 画板线段, 由系列坐标点表示 + Width int64 `json:"width,omitempty"` // 画笔粗细, 单位px + Color string `json:"color,omitempty"` // 画笔颜色 +} + +// GetWhiteboardNodeListRespNodePaintLine ... +type GetWhiteboardNodeListRespNodePaintLine struct { + X float64 `json:"x,omitempty"` // 点位置x坐标, 单位 px + Y float64 `json:"y,omitempty"` // 点位置y坐标, 单位 px } // GetWhiteboardNodeListRespNodeSection ... @@ -138,14 +390,31 @@ type GetWhiteboardNodeListRespNodeSection struct { Title string `json:"title,omitempty"` // 分区标题 } +// GetWhiteboardNodeListRespNodeStickyNote ... +type GetWhiteboardNodeListRespNodeStickyNote struct { + UserID string `json:"user_id,omitempty"` // 用户id + ShowAuthorInfo bool `json:"show_author_info,omitempty"` // 是否展示用户信息 +} + // GetWhiteboardNodeListRespNodeStyle ... type GetWhiteboardNodeListRespNodeStyle struct { - FillOpacity float64 `json:"fill_opacity,omitempty"` // 填充透明度 - BorderStyle string `json:"border_style,omitempty"` // 边框样式, 可选值有: solid: 实线, none: 无边框, dash: 虚线, dot: 点状虚线 - BorderWidth string `json:"border_width,omitempty"` // 边框宽度, 可选值有: extra_narrow: 极细, narrow: 细, medium: 中, wide: 粗 - BorderOpacity float64 `json:"border_opacity,omitempty"` // 边框透明度 - HFlip bool `json:"h_flip,omitempty"` // 水平翻折 - VFlip bool `json:"v_flip,omitempty"` // 垂直翻折 + FillColor string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值 + FillOpacity float64 `json:"fill_opacity,omitempty"` // 填充透明度 + BorderStyle string `json:"border_style,omitempty"` // 边框样式可选值有: 实线无边框虚线点状虚线 + BorderWidth string `json:"border_width,omitempty"` // 边框宽度可选值有: 极细细中粗 + BorderOpacity float64 `json:"border_opacity,omitempty"` // 边框透明度 + HFlip bool `json:"h_flip,omitempty"` // 水平翻折 + VFlip bool `json:"v_flip,omitempty"` // 垂直翻折 + BorderColor string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值 + ThemeFillColorCode int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值 + ThemeBorderColorCode int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值 + FillColorType int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color可选值有: 系统颜色自定义颜色 + BorderColorType int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeSvg ... +type GetWhiteboardNodeListRespNodeSvg struct { + SvgCode string `json:"svg_code,omitempty"` // svg code } // GetWhiteboardNodeListRespNodeTable ... @@ -162,6 +431,7 @@ type GetWhiteboardNodeListRespNodeTableCell struct { MergeInfo *GetWhiteboardNodeListRespNodeTableCellMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息 Children []string `json:"children,omitempty"` // 单元格包含的子节点 id Text *GetWhiteboardNodeListRespNodeTableCellText `json:"text,omitempty"` // 单元格内文字 + Style *GetWhiteboardNodeListRespNodeTableCellStyle `json:"style,omitempty"` // 单元格样式, 设置后会覆盖表格样式 } // GetWhiteboardNodeListRespNodeTableCellMergeInfo ... @@ -170,28 +440,382 @@ type GetWhiteboardNodeListRespNodeTableCellMergeInfo struct { ColSpan int64 `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数 } +// GetWhiteboardNodeListRespNodeTableCellStyle ... +type GetWhiteboardNodeListRespNodeTableCellStyle struct { + FillColor string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值 + FillOpacity float64 `json:"fill_opacity,omitempty"` // 填充透明度 + BorderStyle string `json:"border_style,omitempty"` // 边框样式可选值有: 实线无边框虚线点状虚线 + BorderWidth string `json:"border_width,omitempty"` // 边框宽度可选值有: 极细细中粗 + BorderOpacity float64 `json:"border_opacity,omitempty"` // 边框透明度 + HFlip bool `json:"h_flip,omitempty"` // 水平翻折 + VFlip bool `json:"v_flip,omitempty"` // 垂直翻折 + BorderColor string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值 + ThemeFillColorCode int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值 + ThemeBorderColorCode int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值 + FillColorType int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color可选值有: 系统颜色自定义颜色 + BorderColorType int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color可选值有: 系统颜色自定义颜色 +} + // GetWhiteboardNodeListRespNodeTableCellText ... type GetWhiteboardNodeListRespNodeTableCellText struct { - Text string `json:"text,omitempty"` // 文字内容 - FontWeight string `json:"font_weight,omitempty"` // 文字字重, 可选值有: regular: 常规, bold: 加粗 - FontSize int64 `json:"font_size,omitempty"` // 文字大小 - HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐, 可选值有: left: 向左对齐, center: 居中对齐, right: 向右对齐 - VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐, 可选值有: top: 顶部对齐, mid: 垂直居中, bottom: 底部对齐 + Text string `json:"text,omitempty"` // 文字内容 + FontWeight string `json:"font_weight,omitempty"` // 文字字重可选值有: 常规加粗 + FontSize int64 `json:"font_size,omitempty"` // 文字大小, 单位 px + HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐可选值有: 顶部对齐垂直居中底部对齐 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 + Angle int64 `json:"angle,omitempty"` // 文字旋转角度可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 + ThemeTextColorCode int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值 + ThemeTextBackgroundColorCode int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值 + RichText *GetWhiteboardNodeListRespNodeTableCellTextRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 + TextBackgroundColorType int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichText ... +type GetWhiteboardNodeListRespNodeTableCellTextRichText struct { + Paragraphs []*GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraph ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别可选值有: 普通段落无序列表有序列表 + Elements []*GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 + Indent int64 `json:"indent,omitempty"` // 缩进 + ListBeginIndex int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1 + Quote bool `json:"quote,omitempty"` // 引用 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElement ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别可选值有: 文本链接@用户文档 + TextElement *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息, 如果元素类别为文本时需要设置 + LinkElement *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息, 元素类别为链接时需要设置 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息, 元素类别是@用户时候需要设置 + MentionDocElement *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息, 元素类别是文档时候需要设置 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElement ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接 + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElement ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接 + TextStyle *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionUserElement ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 + TextStyle *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElement ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableCellTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 } // GetWhiteboardNodeListRespNodeTableMeta ... type GetWhiteboardNodeListRespNodeTableMeta struct { - RowNum int64 `json:"row_num,omitempty"` // 行数 - ColNum int64 `json:"col_num,omitempty"` // 列数 + RowNum int64 `json:"row_num,omitempty"` // 行数 + ColNum int64 `json:"col_num,omitempty"` // 列数 + RowSizes []float64 `json:"row_sizes,omitempty"` // 行高, 单位 px + ColSizes []float64 `json:"col_sizes,omitempty"` // 列宽, 单位 px + Style *GetWhiteboardNodeListRespNodeTableMetaStyle `json:"style,omitempty"` // 整个表格的样式 + Text *GetWhiteboardNodeListRespNodeTableMetaText `json:"text,omitempty"` // 整个表格的文字样式 +} + +// GetWhiteboardNodeListRespNodeTableMetaStyle ... +type GetWhiteboardNodeListRespNodeTableMetaStyle struct { + FillColor string `json:"fill_color,omitempty"` // 填充颜色, 16 进制 rbg 值 + FillOpacity float64 `json:"fill_opacity,omitempty"` // 填充透明度 + BorderStyle string `json:"border_style,omitempty"` // 边框样式可选值有: 实线无边框虚线点状虚线 + BorderWidth string `json:"border_width,omitempty"` // 边框宽度可选值有: 极细细中粗 + BorderOpacity float64 `json:"border_opacity,omitempty"` // 边框透明度 + HFlip bool `json:"h_flip,omitempty"` // 水平翻折 + VFlip bool `json:"v_flip,omitempty"` // 垂直翻折 + BorderColor string `json:"border_color,omitempty"` // 边框颜色, 16 进制 rgb 值 + ThemeFillColorCode int64 `json:"theme_fill_color_code,omitempty"` // 填充颜色主题配色编码值 + ThemeBorderColorCode int64 `json:"theme_border_color_code,omitempty"` // 边框颜色主题配色编码值 + FillColorType int64 `json:"fill_color_type,omitempty"` // 填充颜色类型: 0=系统颜色, 取theme_fill_color_code, 1=自定义颜色, 取fill_color可选值有: 系统颜色自定义颜色 + BorderColorType int64 `json:"border_color_type,omitempty"` // 边框颜色类型: 0=系统颜色, 取theme_border_color_code, 1=自定义颜色, 取border_color可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeTableMetaText ... +type GetWhiteboardNodeListRespNodeTableMetaText struct { + Text string `json:"text,omitempty"` // 文字内容 + FontWeight string `json:"font_weight,omitempty"` // 文字字重可选值有: 常规加粗 + FontSize int64 `json:"font_size,omitempty"` // 文字大小, 单位 px + HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐可选值有: 顶部对齐垂直居中底部对齐 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 + Angle int64 `json:"angle,omitempty"` // 文字旋转角度可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 + ThemeTextColorCode int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值 + ThemeTextBackgroundColorCode int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值 + RichText *GetWhiteboardNodeListRespNodeTableMetaTextRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 + TextBackgroundColorType int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichText ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichText struct { + Paragraphs []*GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraph ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别可选值有: 普通段落无序列表有序列表 + Elements []*GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 + Indent int64 `json:"indent,omitempty"` // 缩进 + ListBeginIndex int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1 + Quote bool `json:"quote,omitempty"` // 引用 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElement ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别可选值有: 文本链接@用户文档 + TextElement *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息, 如果元素类别为文本时需要设置 + LinkElement *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息, 元素类别为链接时需要设置 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息, 元素类别是@用户时候需要设置 + MentionDocElement *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息, 元素类别是文档时候需要设置 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElement ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接 + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElement ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接 + TextStyle *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionUserElement ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 + TextStyle *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElement ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElementTextStyle ... +type GetWhiteboardNodeListRespNodeTableMetaTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 } // GetWhiteboardNodeListRespNodeText ... type GetWhiteboardNodeListRespNodeText struct { - Text string `json:"text,omitempty"` // 文字内容 - FontWeight string `json:"font_weight,omitempty"` // 文字字重, 可选值有: regular: 常规, bold: 加粗 - FontSize int64 `json:"font_size,omitempty"` // 文字大小 - HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐, 可选值有: left: 向左对齐, center: 居中对齐, right: 向右对齐 - VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐, 可选值有: top: 顶部对齐, mid: 垂直居中, bottom: 底部对齐 + Text string `json:"text,omitempty"` // 文字内容 + FontWeight string `json:"font_weight,omitempty"` // 文字字重可选值有: 常规加粗 + FontSize int64 `json:"font_size,omitempty"` // 文字大小, 单位 px + HorizontalAlign string `json:"horizontal_align,omitempty"` // 水平对齐可选值有: 向左对齐居中对齐向右对齐 + VerticalAlign string `json:"vertical_align,omitempty"` // 垂直对齐可选值有: 顶部对齐垂直居中底部对齐 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 + Angle int64 `json:"angle,omitempty"` // 文字旋转角度可选值有: 文字旋转角度0度文字旋转角度90度文字旋转角度180度文字旋转角度270度 + ThemeTextColorCode int64 `json:"theme_text_color_code,omitempty"` // 文字颜色主题配色编码值 + ThemeTextBackgroundColorCode int64 `json:"theme_text_background_color_code,omitempty"` // 文字背景颜色主题配色编码值 + RichText *GetWhiteboardNodeListRespNodeTextRichText `json:"rich_text,omitempty"` // 富文本 + TextColorType int64 `json:"text_color_type,omitempty"` // 文字颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 + TextBackgroundColorType int64 `json:"text_background_color_type,omitempty"` // 文字背景颜色类型, 0=系统颜色, 1=自定义颜色可选值有: 系统颜色自定义颜色 +} + +// GetWhiteboardNodeListRespNodeTextRichText ... +type GetWhiteboardNodeListRespNodeTextRichText struct { + Paragraphs []*GetWhiteboardNodeListRespNodeTextRichTextParagraph `json:"paragraphs,omitempty"` // 段落列表 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraph ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraph struct { + ParagraphType int64 `json:"paragraph_type,omitempty"` // 段落类别可选值有: 普通段落无序列表有序列表 + Elements []*GetWhiteboardNodeListRespNodeTextRichTextParagraphElement `json:"elements,omitempty"` // 元素列表 + Indent int64 `json:"indent,omitempty"` // 缩进 + ListBeginIndex int64 `json:"list_begin_index,omitempty"` // 有序列表开始序号(第一个有序列表的序号为list_begin_index+1)例如: list_begin_index = 0, 则第一个有序列表的序号为1 + Quote bool `json:"quote,omitempty"` // 引用 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElement ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElement struct { + ElementType int64 `json:"element_type,omitempty"` // 元素类别可选值有: 文本链接@用户文档 + TextElement *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElement `json:"text_element,omitempty"` // 文本类别信息, 如果元素类别为文本时需要设置 + LinkElement *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElement `json:"link_element,omitempty"` // 超链接类别信息, 元素类别为链接时需要设置 + MentionUserElement *Mention `json:"mention_user_element,omitempty"` // @用户类别信息, 元素类别是@用户时候需要设置 + MentionDocElement *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElement `json:"mention_doc_element,omitempty"` // 文档类别信息, 元素类别是文档时候需要设置 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElement ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElement struct { + Herf string `json:"herf,omitempty"` // 链接 + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElementTextStyle ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementLinkElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElement ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElement struct { + DocURL string `json:"doc_url,omitempty"` // 文档超链接 + TextStyle *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElementTextStyle ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionDocElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionUserElement ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionUserElement struct { + UserID string `json:"user_id,omitempty"` // 用户openID, 可通过 [获取指定用户的 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) 获取 + TextStyle *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionUserElementTextStyle `json:"text_style,omitempty"` // 文字属性 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionUserElementTextStyle ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementMentionUserElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重 + FontSize int64 `json:"font_size,omitempty"` // 文字大小 + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElement ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElement struct { + Text string `json:"text,omitempty"` // 文字 + TextStyle *GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElementTextStyle `json:"text_style,omitempty"` // 文字样式 +} + +// GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElementTextStyle ... +type GetWhiteboardNodeListRespNodeTextRichTextParagraphElementTextElementTextStyle struct { + FontWeight string `json:"font_weight,omitempty"` // 文字字重(regular: 常规, bold: 加粗) + FontSize int64 `json:"font_size,omitempty"` // 文字大小, 单位 px + TextColor string `json:"text_color,omitempty"` // 文字颜色, 16 进制 rgb 值 + TextBackgroundColor string `json:"text_background_color,omitempty"` // 文字背景色, 16 进制 rgb 值 + LineThrough bool `json:"line_through,omitempty"` // 是否存在删除线 + Underline bool `json:"underline,omitempty"` // 是否存在下划线 + Italic bool `json:"italic,omitempty"` // 是否斜体 } // getWhiteboardNodeListResp ... diff --git a/api_drive_wiki_node_title.go b/api_drive_wiki_node_title.go index 3a2e0ba7..a7f6f728 100644 --- a/api_drive_wiki_node_title.go +++ b/api_drive_wiki_node_title.go @@ -67,7 +67,8 @@ type UpdateWikiNodeTitleReq struct { } // UpdateWikiNodeTitleResp ... -type UpdateWikiNodeTitleResp struct{} +type UpdateWikiNodeTitleResp struct { +} // updateWikiNodeTitleResp ... type updateWikiNodeTitleResp struct { diff --git a/api_ehr_employee_get_list.go b/api_ehr_employee_get_list.go index 77b1e7ca..2c0891df 100644 --- a/api_ehr_employee_get_list.go +++ b/api_ehr_employee_get_list.go @@ -156,12 +156,97 @@ type GetEHREmployeeListRespItemSystemFields struct { UpdateTime int64 `json:"update_time,omitempty"` // 更新时间 } +// GetEHREmployeeListRespItemSystemFieldsCertOfMerit ... +type GetEHREmployeeListRespItemSystemFieldsCertOfMerit struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + // GetEHREmployeeListRespItemSystemFieldsContractCompany ... type GetEHREmployeeListRespItemSystemFieldsContractCompany struct { ID int64 `json:"id,omitempty"` // 公司 ID Name string `json:"name,omitempty"` // 公司名称 } +// GetEHREmployeeListRespItemSystemFieldsDiplomaPhoto ... +type GetEHREmployeeListRespItemSystemFieldsDiplomaPhoto struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + +// GetEHREmployeeListRespItemSystemFieldsEducation ... +type GetEHREmployeeListRespItemSystemFieldsEducation struct { + Level int64 `json:"level,omitempty"` // 学历可选值有: 小学初中高中职业高级中学中等专业学校大专本科硕士博士 + School string `json:"school,omitempty"` // 毕业学校 + Major string `json:"major,omitempty"` // 专业 + Degree int64 `json:"degree,omitempty"` // 学位可选值有: 学士硕士博士 + Start string `json:"start,omitempty"` // 开始日期 + End string `json:"end,omitempty"` // 结束日期 +} + +// GetEHREmployeeListRespItemSystemFieldsEmergencyContact ... +type GetEHREmployeeListRespItemSystemFieldsEmergencyContact struct { + Name string `json:"name,omitempty"` // 紧急联系人姓名 + Relationship int64 `json:"relationship,omitempty"` // 与紧急联系人的关系可选值有: 父母配偶子女兄弟姐妹朋友其他 + Mobile string `json:"mobile,omitempty"` // 手机号 +} + +// GetEHREmployeeListRespItemSystemFieldsFormerWorkExp ... +type GetEHREmployeeListRespItemSystemFieldsFormerWorkExp struct { + Company string `json:"company,omitempty"` // 公司 + Department string `json:"department,omitempty"` // 部门 + Job string `json:"job,omitempty"` // 职位 + Start string `json:"start,omitempty"` // 开始日期 + End string `json:"end,omitempty"` // 截止日期 + Description string `json:"description,omitempty"` // 工作描述 +} + +// GetEHREmployeeListRespItemSystemFieldsGraduationCert ... +type GetEHREmployeeListRespItemSystemFieldsGraduationCert struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + +// GetEHREmployeeListRespItemSystemFieldsHighestLevelOfEdu ... +type GetEHREmployeeListRespItemSystemFieldsHighestLevelOfEdu struct { + Level int64 `json:"level,omitempty"` // 学历可选值有: 小学初中高中职业高级中学中等专业学校大专本科硕士博士 + School string `json:"school,omitempty"` // 毕业学校 + Major string `json:"major,omitempty"` // 专业 + Degree int64 `json:"degree,omitempty"` // 学位可选值有: 学士硕士博士 + Start string `json:"start,omitempty"` // 开始日期 + End string `json:"end,omitempty"` // 结束日期 +} + +// GetEHREmployeeListRespItemSystemFieldsIDPhoto ... +type GetEHREmployeeListRespItemSystemFieldsIDPhoto struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + +// GetEHREmployeeListRespItemSystemFieldsIDPhotoEmSide ... +type GetEHREmployeeListRespItemSystemFieldsIDPhotoEmSide struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + +// GetEHREmployeeListRespItemSystemFieldsIDPhotoPoSide ... +type GetEHREmployeeListRespItemSystemFieldsIDPhotoPoSide struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + // GetEHREmployeeListRespItemSystemFieldsJob ... type GetEHREmployeeListRespItemSystemFieldsJob struct { ID int64 `json:"id,omitempty"` // 职位 ID @@ -187,6 +272,31 @@ type GetEHREmployeeListRespItemSystemFieldsNativeRegion struct { Name string `json:"name,omitempty"` // 名称 } +// GetEHREmployeeListRespItemSystemFieldsOffboardingFile ... +type GetEHREmployeeListRespItemSystemFieldsOffboardingFile struct { + ID string `json:"id,omitempty"` // 下载文件所需要的 Token + MimeType string `json:"mime_type,omitempty"` // 文件类型 + Name string `json:"name,omitempty"` // 名称 + Size int64 `json:"size,omitempty"` // 大小 +} + +// GetEHREmployeeListRespItemSystemFieldsPrimaryEmergencyContact ... +type GetEHREmployeeListRespItemSystemFieldsPrimaryEmergencyContact struct { + Name string `json:"name,omitempty"` // 紧急联系人姓名 + Relationship int64 `json:"relationship,omitempty"` // 与紧急联系人的关系可选值有: 父母配偶子女兄弟姐妹朋友其他 + Mobile string `json:"mobile,omitempty"` // 手机号 +} + +// GetEHREmployeeListRespItemSystemFieldsWorkExp ... +type GetEHREmployeeListRespItemSystemFieldsWorkExp struct { + Company string `json:"company,omitempty"` // 公司 + Department string `json:"department,omitempty"` // 部门 + Job string `json:"job,omitempty"` // 职位 + Start string `json:"start,omitempty"` // 开始日期 + End string `json:"end,omitempty"` // 截止日期 + Description string `json:"description,omitempty"` // 工作描述 +} + // GetEHREmployeeListRespItemSystemFieldsWorkLocation ... type GetEHREmployeeListRespItemSystemFieldsWorkLocation struct { ID int64 `json:"id,omitempty"` // 工作地点 ID diff --git a/api_event_callback_module.go b/api_event_callback_module.go index c673d791..a35d0d11 100644 --- a/api_event_callback_module.go +++ b/api_event_callback_module.go @@ -27,158 +27,7 @@ import ( type EventType string const ( - EventTypeV1AddBot EventType = "add_bot" - EventTypeV1AddUserToChat EventType = "add_user_to_chat" - EventTypeV1AppOpen EventType = "app_open" - EventTypeV1AppStatusChange EventType = "app_status_change" - EventTypeV1AppTicket EventType = "app_ticket" - EventTypeV1AppUninstalled EventType = "app_uninstalled" - EventTypeV1ApprovalCc EventType = "approval_cc" - EventTypeV1ApprovalInstance EventType = "approval_instance" - EventTypeV1ApprovalTask EventType = "approval_task" - EventTypeV1ChatDisband EventType = "chat_disband" - EventTypeV1LeaveApprovalRevert EventType = "leave_approval_revert" - EventTypeV1LeaveApprovalV2 EventType = "leave_approvalV2" - EventTypeV1OrderPaid EventType = "order_paid" - EventTypeV1OutApproval EventType = "out_approval" - EventTypeV1P2PChatCreate EventType = "p2p_chat_create" - EventTypeV1ReceiveMessage EventType = "message" - EventTypeV1RemedyApproval EventType = "approval.instance.remedy_group_update_v4" - EventTypeV1RemoveBot EventType = "remove_bot" - EventTypeV1RemoveUserFromChat EventType = "remove_user_from_chat" - EventTypeV1RevokeAddUserFromChat EventType = "revoke_add_user_from_chat" - EventTypeV1ShiftApproval EventType = "shift_approval" - EventTypeV1ThirdPartyMeetingRoomEventCreated EventType = "third_party_meeting_room_event_created" - EventTypeV1ThirdPartyMeetingRoomEventDeleted EventType = "third_party_meeting_room_event_deleted" - EventTypeV1ThirdPartyMeetingRoomEventUpdated EventType = "third_party_meeting_room_event_updated" - EventTypeV1WorkApproval EventType = "work_approval" - EventTypeV2ACSAccessRecordCreatedV1 EventType = "acs.access_record.created_v1" - EventTypeV2ACSUserUpdatedV1 EventType = "acs.user.updated_v1" - EventTypeV2ApplicationApplicationAppVersionAuditV6 EventType = "application.application.app_version.audit_v6" - EventTypeV2ApplicationApplicationAppVersionPublishApplyV6 EventType = "application.application.app_version.publish_apply_v6" - EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6 EventType = "application.application.app_version.publish_revoke_v6" - EventTypeV2ApplicationApplicationCreatedV6 EventType = "application.application.created_v6" - EventTypeV2ApplicationApplicationFeedbackCreatedV6 EventType = "application.application.feedback.created_v6" - EventTypeV2ApplicationApplicationFeedbackUpdatedV6 EventType = "application.application.feedback.updated_v6" - EventTypeV2ApplicationApplicationVisibilityAddedV6 EventType = "application.application.visibility.added_v6" - EventTypeV2ApplicationBotMenuV6 EventType = "application.bot.menu_v6" - EventTypeV2ApprovalApprovalUpdatedV4 EventType = "approval.approval.updated_v4" - EventTypeV2AttendanceUserFlowCreatedV1 EventType = "attendance.user_flow.created_v1" - EventTypeV2AttendanceUserTaskUpdatedV1 EventType = "attendance.user_task.updated_v1" - EventTypeV2CalendarCalendarACLCreatedV4 EventType = "calendar.calendar.acl.created_v4" - EventTypeV2CalendarCalendarACLDeletedV4 EventType = "calendar.calendar.acl.deleted_v4" - EventTypeV2CalendarCalendarChangedV4 EventType = "calendar.calendar.changed_v4" - EventTypeV2CalendarCalendarEventChangedV4 EventType = "calendar.calendar.event.changed_v4" - EventTypeV2CardActionTrigger EventType = "card.action.trigger" - EventTypeV2ContactCustomAttrEventUpdatedV3 EventType = "contact.custom_attr_event.updated_v3" - EventTypeV2ContactDepartmentCreatedV3 EventType = "contact.department.created_v3" - EventTypeV2ContactDepartmentDeletedV3 EventType = "contact.department.deleted_v3" - EventTypeV2ContactDepartmentUpdatedV3 EventType = "contact.department.updated_v3" - EventTypeV2ContactEmployeeTypeEnumActivedV3 EventType = "contact.employee_type_enum.actived_v3" - EventTypeV2ContactEmployeeTypeEnumCreatedV3 EventType = "contact.employee_type_enum.created_v3" - EventTypeV2ContactEmployeeTypeEnumDeactivatedV3 EventType = "contact.employee_type_enum.deactivated_v3" - EventTypeV2ContactEmployeeTypeEnumDeletedV3 EventType = "contact.employee_type_enum.deleted_v3" - EventTypeV2ContactEmployeeTypeEnumUpdatedV3 EventType = "contact.employee_type_enum.updated_v3" - EventTypeV2ContactScopeUpdatedV3 EventType = "contact.scope.updated_v3" - EventTypeV2ContactUserCreatedV3 EventType = "contact.user.created_v3" - EventTypeV2ContactUserDeletedV3 EventType = "contact.user.deleted_v3" - EventTypeV2ContactUserUpdatedV3 EventType = "contact.user.updated_v3" - EventTypeV2CorehrContractCreatedV1 EventType = "corehr.contract.created_v1" - EventTypeV2CorehrContractDeletedV1 EventType = "corehr.contract.deleted_v1" - EventTypeV2CorehrContractUpdatedV1 EventType = "corehr.contract.updated_v1" - EventTypeV2CorehrDepartmentCreatedV1 EventType = "corehr.department.created_v1" - EventTypeV2CorehrDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" - EventTypeV2CorehrDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" - EventTypeV2CorehrEmploymentConvertedV1 EventType = "corehr.employment.converted_v1" - EventTypeV2CorehrEmploymentCreatedV1 EventType = "corehr.employment.created_v1" - EventTypeV2CorehrEmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" - EventTypeV2CorehrEmploymentResignedV1 EventType = "corehr.employment.resigned_v1" - EventTypeV2CorehrEmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" - EventTypeV2CorehrJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" - EventTypeV2CorehrJobCreatedV1 EventType = "corehr.job.created_v1" - EventTypeV2CorehrJobDataChangedV1 EventType = "corehr.job_data.changed_v1" - EventTypeV2CorehrJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" - EventTypeV2CorehrJobDeletedV1 EventType = "corehr.job.deleted_v1" - EventTypeV2CorehrJobUpdatedV1 EventType = "corehr.job.updated_v1" - EventTypeV2CorehrOffboardingChecklistUpdatedV2 EventType = "corehr.offboarding.checklist_updated_v2" - EventTypeV2CorehrOffboardingStatusUpdatedV2 EventType = "corehr.offboarding.status_updated_v2" - EventTypeV2CorehrOffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" - EventTypeV2CorehrOffboardingUpdatedV2 EventType = "corehr.offboarding.updated_v2" - EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" - EventTypeV2CorehrPersonCreatedV1 EventType = "corehr.person.created_v1" - EventTypeV2CorehrPersonDeletedV1 EventType = "corehr.person.deleted_v1" - EventTypeV2CorehrPersonUpdatedV1 EventType = "corehr.person.updated_v1" - EventTypeV2CorehrPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" - EventTypeV2CorehrProbationUpdatedV2 EventType = "corehr.probation.updated_v2" - EventTypeV2CorehrProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" - EventTypeV2CorehrProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" - EventTypeV2CorehrProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" - EventTypeV2CorehrProcessUpdatedV2 EventType = "corehr.process.updated_v2" - EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" - EventTypeV2DriveFileBitableRecordChangedV1 EventType = "drive.file.bitable_record_changed_v1" - EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" - EventTypeV2DriveFileDeletedV1 EventType = "drive.file.deleted_v1" - EventTypeV2DriveFileEditV1 EventType = "drive.file.edit_v1" - EventTypeV2DriveFilePermissionMemberAddedV1 EventType = "drive.file.permission_member_added_v1" - EventTypeV2DriveFilePermissionMemberRemovedV1 EventType = "drive.file.permission_member_removed_v1" - EventTypeV2DriveFileReadV1 EventType = "drive.file.read_v1" - EventTypeV2DriveFileTitleUpdatedV1 EventType = "drive.file.title_updated_v1" - EventTypeV2DriveFileTrashedV1 EventType = "drive.file.trashed_v1" - EventTypeV2ElearningCourseRegistrationCreatedV2 EventType = "elearning.course_registration.created_v2" - EventTypeV2ElearningCourseRegistrationDeletedV2 EventType = "elearning.course_registration.deleted_v2" - EventTypeV2ElearningCourseRegistrationUpdatedV2 EventType = "elearning.course_registration.updated_v2" - EventTypeV2HelpdeskNotificationApproveV1 EventType = "helpdesk.notification.approve_v1" - EventTypeV2HelpdeskTicketCreatedV1 EventType = "helpdesk.ticket.created_v1" - EventTypeV2HelpdeskTicketMessageCreatedV1 EventType = "helpdesk.ticket_message.created_v1" - EventTypeV2HelpdeskTicketUpdatedV1 EventType = "helpdesk.ticket.updated_v1" - EventTypeV2HireApplicationDeletedV1 EventType = "hire.application.deleted_v1" - EventTypeV2HireApplicationStageChangedV1 EventType = "hire.application.stage_changed_v1" - EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1 EventType = "hire.ehr_import_task_for_internship_offer.imported_v1" - EventTypeV2HireEHRImportTaskImportedV1 EventType = "hire.ehr_import_task.imported_v1" - EventTypeV2HireEcoAccountCreatedV1 EventType = "hire.eco_account.created_v1" - EventTypeV2HireEcoBackgroundCheckCanceledV1 EventType = "hire.eco_background_check.canceled_v1" - EventTypeV2HireEcoBackgroundCheckCreatedV1 EventType = "hire.eco_background_check.created_v1" - EventTypeV2HireEcoExamCreatedV1 EventType = "hire.eco_exam.created_v1" - EventTypeV2HireOfferStatusChangedV1 EventType = "hire.offer.status_changed_v1" - EventTypeV2HireReferralAccountAssetsUpdateV1 EventType = "hire.referral_account.assets_update_v1" - EventTypeV2IMChatDisbandedV1 EventType = "im.chat.disbanded_v1" - EventTypeV2IMChatMemberBotAddedV1 EventType = "im.chat.member.bot.added_v1" - EventTypeV2IMChatMemberBotDeletedV1 EventType = "im.chat.member.bot.deleted_v1" - EventTypeV2IMChatMemberUserAddedV1 EventType = "im.chat.member.user.added_v1" - EventTypeV2IMChatMemberUserDeletedV1 EventType = "im.chat.member.user.deleted_v1" - EventTypeV2IMChatMemberUserWithdrawnV1 EventType = "im.chat.member.user.withdrawn_v1" - EventTypeV2IMChatUpdatedV1 EventType = "im.chat.updated_v1" - EventTypeV2IMMessageReactionCreatedV1 EventType = "im.message.reaction.created_v1" - EventTypeV2IMMessageReactionDeletedV1 EventType = "im.message.reaction.deleted_v1" - EventTypeV2IMMessageReadV1 EventType = "im.message.message_read_v1" - EventTypeV2IMMessageRecalledV1 EventType = "im.message.recalled_v1" - EventTypeV2IMMessageReceiveV1 EventType = "im.message.receive_v1" - EventTypeV2MeetingRoomMeetingRoomCreatedV1 EventType = "meeting_room.meeting_room.created_v1" - EventTypeV2MeetingRoomMeetingRoomDeletedV1 EventType = "meeting_room.meeting_room.deleted_v1" - EventTypeV2MeetingRoomMeetingRoomStatusChangedV1 EventType = "meeting_room.meeting_room.status_changed_v1" - EventTypeV2MeetingRoomMeetingRoomUpdatedV1 EventType = "meeting_room.meeting_room.updated_v1" - EventTypeV2TaskTaskCommentUpdatedV1 EventType = "task.task.comment.updated_v1" - EventTypeV2TaskTaskUpdateTenantV1 EventType = "task.task.update_tenant_v1" - EventTypeV2TaskTaskUpdatedV1 EventType = "task.task.updated_v1" - EventTypeV2URLPreviewGet EventType = "url.preview.get" - EventTypeV2VCMeetingAllMeetingEndedV1 EventType = "vc.meeting.all_meeting_ended_v1" - EventTypeV2VCMeetingAllMeetingStartedV1 EventType = "vc.meeting.all_meeting_started_v1" - EventTypeV2VCMeetingJoinMeetingV1 EventType = "vc.meeting.join_meeting_v1" - EventTypeV2VCMeetingLeaveMeetingV1 EventType = "vc.meeting.leave_meeting_v1" - EventTypeV2VCMeetingMeetingEndedV1 EventType = "vc.meeting.meeting_ended_v1" - EventTypeV2VCMeetingMeetingStartedV1 EventType = "vc.meeting.meeting_started_v1" - EventTypeV2VCMeetingRecordingEndedV1 EventType = "vc.meeting.recording_ended_v1" - EventTypeV2VCMeetingRecordingReadyV1 EventType = "vc.meeting.recording_ready_v1" - EventTypeV2VCMeetingRecordingStartedV1 EventType = "vc.meeting.recording_started_v1" - EventTypeV2VCMeetingShareEndedV1 EventType = "vc.meeting.share_ended_v1" - EventTypeV2VCMeetingShareStartedV1 EventType = "vc.meeting.share_started_v1" - EventTypeV2VCReserveConfigUpdatedV1 EventType = "vc.reserve_config.updated_v1" - EventTypeV2VCRoomCreatedV1 EventType = "vc.room.created_v1" - EventTypeV2VCRoomDeletedV1 EventType = "vc.room.deleted_v1" - EventTypeV2VCRoomLevelCreatedV1 EventType = "vc.room_level.created_v1" - EventTypeV2VCRoomLevelDeletedV1 EventType = "vc.room_level.deleted_v1" - EventTypeV2VCRoomLevelUpdatedV1 EventType = "vc.room_level.updated_v1" - EventTypeV2VCRoomUpdatedV1 EventType = "vc.room.updated_v1" + EventTypeV1TripApproval EventType = "APPROVED" ) type eventHandler struct { @@ -207,6 +56,7 @@ type eventHandler struct { eventV1ThirdPartyMeetingRoomEventCreatedHandler EventV1ThirdPartyMeetingRoomEventCreatedHandler eventV1ThirdPartyMeetingRoomEventDeletedHandler EventV1ThirdPartyMeetingRoomEventDeletedHandler eventV1ThirdPartyMeetingRoomEventUpdatedHandler EventV1ThirdPartyMeetingRoomEventUpdatedHandler + eventV1TripApprovalHandler EventV1TripApprovalHandler eventV1WorkApprovalHandler EventV1WorkApprovalHandler eventV2ACSAccessRecordCreatedV1Handler EventV2ACSAccessRecordCreatedV1Handler eventV2ACSUserUpdatedV1Handler EventV2ACSUserUpdatedV1Handler @@ -339,6 +189,7 @@ type eventHandler struct { func (r *eventHandler) clone() *eventHandler { return &eventHandler{ + eventV1AddBotHandler: r.eventV1AddBotHandler, eventV1AddUserToChatHandler: r.eventV1AddUserToChatHandler, eventV1AppOpenHandler: r.eventV1AppOpenHandler, @@ -363,6 +214,7 @@ func (r *eventHandler) clone() *eventHandler { eventV1ThirdPartyMeetingRoomEventCreatedHandler: r.eventV1ThirdPartyMeetingRoomEventCreatedHandler, eventV1ThirdPartyMeetingRoomEventDeletedHandler: r.eventV1ThirdPartyMeetingRoomEventDeletedHandler, eventV1ThirdPartyMeetingRoomEventUpdatedHandler: r.eventV1ThirdPartyMeetingRoomEventUpdatedHandler, + eventV1TripApprovalHandler: r.eventV1TripApprovalHandler, eventV1WorkApprovalHandler: r.eventV1WorkApprovalHandler, eventV2ACSAccessRecordCreatedV1Handler: r.eventV2ACSAccessRecordCreatedV1Handler, eventV2ACSUserUpdatedV1Handler: r.eventV2ACSUserUpdatedV1Handler, @@ -519,6 +371,7 @@ type eventBody struct { eventV1ThirdPartyMeetingRoomEventCreated *EventV1ThirdPartyMeetingRoomEventCreated eventV1ThirdPartyMeetingRoomEventDeleted *EventV1ThirdPartyMeetingRoomEventDeleted eventV1ThirdPartyMeetingRoomEventUpdated *EventV1ThirdPartyMeetingRoomEventUpdated + eventV1TripApproval *EventV1TripApproval eventV1WorkApproval *EventV1WorkApproval eventV2ACSAccessRecordCreatedV1 *EventV2ACSAccessRecordCreatedV1 eventV2ACSUserUpdatedV1 *EventV2ACSUserUpdatedV1 @@ -656,769 +509,6 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { switch req.Header.EventType { - case EventTypeV2ACSAccessRecordCreatedV1: - event := new(EventV2ACSAccessRecordCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ACSAccessRecordCreatedV1 = event - case EventTypeV2ACSUserUpdatedV1: - event := new(EventV2ACSUserUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ACSUserUpdatedV1 = event - case EventTypeV2ApplicationApplicationAppVersionAuditV6: - event := new(EventV2ApplicationApplicationAppVersionAuditV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationAppVersionAuditV6 = event - case EventTypeV2ApplicationApplicationAppVersionPublishApplyV6: - event := new(EventV2ApplicationApplicationAppVersionPublishApplyV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationAppVersionPublishApplyV6 = event - case EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6: - event := new(EventV2ApplicationApplicationAppVersionPublishRevokeV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationAppVersionPublishRevokeV6 = event - case EventTypeV2ApplicationApplicationCreatedV6: - event := new(EventV2ApplicationApplicationCreatedV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationCreatedV6 = event - case EventTypeV2ApplicationApplicationFeedbackCreatedV6: - event := new(EventV2ApplicationApplicationFeedbackCreatedV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationFeedbackCreatedV6 = event - case EventTypeV2ApplicationApplicationFeedbackUpdatedV6: - event := new(EventV2ApplicationApplicationFeedbackUpdatedV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationFeedbackUpdatedV6 = event - case EventTypeV2ApplicationApplicationVisibilityAddedV6: - event := new(EventV2ApplicationApplicationVisibilityAddedV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationApplicationVisibilityAddedV6 = event - case EventTypeV2ApplicationBotMenuV6: - event := new(EventV2ApplicationBotMenuV6) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApplicationBotMenuV6 = event - case EventTypeV2ApprovalApprovalUpdatedV4: - event := new(EventV2ApprovalApprovalUpdatedV4) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ApprovalApprovalUpdatedV4 = event - case EventTypeV2AttendanceUserFlowCreatedV1: - event := new(EventV2AttendanceUserFlowCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2AttendanceUserFlowCreatedV1 = event - case EventTypeV2AttendanceUserTaskUpdatedV1: - event := new(EventV2AttendanceUserTaskUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2AttendanceUserTaskUpdatedV1 = event - case EventTypeV2CalendarCalendarACLCreatedV4: - event := new(EventV2CalendarCalendarACLCreatedV4) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CalendarCalendarACLCreatedV4 = event - case EventTypeV2CalendarCalendarACLDeletedV4: - event := new(EventV2CalendarCalendarACLDeletedV4) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CalendarCalendarACLDeletedV4 = event - case EventTypeV2CalendarCalendarChangedV4: - event := new(EventV2CalendarCalendarChangedV4) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CalendarCalendarChangedV4 = event - case EventTypeV2CalendarCalendarEventChangedV4: - event := new(EventV2CalendarCalendarEventChangedV4) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CalendarCalendarEventChangedV4 = event - case EventTypeV2CardActionTrigger: - event := new(EventV2CardActionTrigger) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CardActionTrigger = event - case EventTypeV2ContactCustomAttrEventUpdatedV3: - event := new(EventV2ContactCustomAttrEventUpdatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactCustomAttrEventUpdatedV3 = event - case EventTypeV2ContactDepartmentCreatedV3: - event := new(EventV2ContactDepartmentCreatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactDepartmentCreatedV3 = event - case EventTypeV2ContactDepartmentDeletedV3: - event := new(EventV2ContactDepartmentDeletedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactDepartmentDeletedV3 = event - case EventTypeV2ContactDepartmentUpdatedV3: - event := new(EventV2ContactDepartmentUpdatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactDepartmentUpdatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumActivedV3: - event := new(EventV2ContactEmployeeTypeEnumActivedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactEmployeeTypeEnumActivedV3 = event - case EventTypeV2ContactEmployeeTypeEnumCreatedV3: - event := new(EventV2ContactEmployeeTypeEnumCreatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactEmployeeTypeEnumCreatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumDeactivatedV3: - event := new(EventV2ContactEmployeeTypeEnumDeactivatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactEmployeeTypeEnumDeactivatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumDeletedV3: - event := new(EventV2ContactEmployeeTypeEnumDeletedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactEmployeeTypeEnumDeletedV3 = event - case EventTypeV2ContactEmployeeTypeEnumUpdatedV3: - event := new(EventV2ContactEmployeeTypeEnumUpdatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactEmployeeTypeEnumUpdatedV3 = event - case EventTypeV2ContactScopeUpdatedV3: - event := new(EventV2ContactScopeUpdatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactScopeUpdatedV3 = event - case EventTypeV2ContactUserCreatedV3: - event := new(EventV2ContactUserCreatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactUserCreatedV3 = event - case EventTypeV2ContactUserDeletedV3: - event := new(EventV2ContactUserDeletedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactUserDeletedV3 = event - case EventTypeV2ContactUserUpdatedV3: - event := new(EventV2ContactUserUpdatedV3) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ContactUserUpdatedV3 = event - case EventTypeV2CorehrContractCreatedV1: - event := new(EventV2CorehrContractCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrContractCreatedV1 = event - case EventTypeV2CorehrContractDeletedV1: - event := new(EventV2CorehrContractDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrContractDeletedV1 = event - case EventTypeV2CorehrContractUpdatedV1: - event := new(EventV2CorehrContractUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrContractUpdatedV1 = event - case EventTypeV2CorehrDepartmentCreatedV1: - event := new(EventV2CorehrDepartmentCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrDepartmentCreatedV1 = event - case EventTypeV2CorehrDepartmentDeletedV1: - event := new(EventV2CorehrDepartmentDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrDepartmentDeletedV1 = event - case EventTypeV2CorehrDepartmentUpdatedV1: - event := new(EventV2CorehrDepartmentUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrDepartmentUpdatedV1 = event - case EventTypeV2CorehrEmploymentConvertedV1: - event := new(EventV2CorehrEmploymentConvertedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrEmploymentConvertedV1 = event - case EventTypeV2CorehrEmploymentCreatedV1: - event := new(EventV2CorehrEmploymentCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrEmploymentCreatedV1 = event - case EventTypeV2CorehrEmploymentDeletedV1: - event := new(EventV2CorehrEmploymentDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrEmploymentDeletedV1 = event - case EventTypeV2CorehrEmploymentResignedV1: - event := new(EventV2CorehrEmploymentResignedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrEmploymentResignedV1 = event - case EventTypeV2CorehrEmploymentUpdatedV1: - event := new(EventV2CorehrEmploymentUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrEmploymentUpdatedV1 = event - case EventTypeV2CorehrJobChangeUpdatedV1: - event := new(EventV2CorehrJobChangeUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobChangeUpdatedV1 = event - case EventTypeV2CorehrJobCreatedV1: - event := new(EventV2CorehrJobCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobCreatedV1 = event - case EventTypeV2CorehrJobDataChangedV1: - event := new(EventV2CorehrJobDataChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobDataChangedV1 = event - case EventTypeV2CorehrJobDataEmployedV1: - event := new(EventV2CorehrJobDataEmployedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobDataEmployedV1 = event - case EventTypeV2CorehrJobDeletedV1: - event := new(EventV2CorehrJobDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobDeletedV1 = event - case EventTypeV2CorehrJobUpdatedV1: - event := new(EventV2CorehrJobUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrJobUpdatedV1 = event - case EventTypeV2CorehrOffboardingChecklistUpdatedV2: - event := new(EventV2CorehrOffboardingChecklistUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrOffboardingChecklistUpdatedV2 = event - case EventTypeV2CorehrOffboardingStatusUpdatedV2: - event := new(EventV2CorehrOffboardingStatusUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrOffboardingStatusUpdatedV2 = event - case EventTypeV2CorehrOffboardingUpdatedV1: - event := new(EventV2CorehrOffboardingUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrOffboardingUpdatedV1 = event - case EventTypeV2CorehrOffboardingUpdatedV2: - event := new(EventV2CorehrOffboardingUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrOffboardingUpdatedV2 = event - case EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1: - event := new(EventV2CorehrOrgRoleAuthorizationUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrOrgRoleAuthorizationUpdatedV1 = event - case EventTypeV2CorehrPersonCreatedV1: - event := new(EventV2CorehrPersonCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrPersonCreatedV1 = event - case EventTypeV2CorehrPersonDeletedV1: - event := new(EventV2CorehrPersonDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrPersonDeletedV1 = event - case EventTypeV2CorehrPersonUpdatedV1: - event := new(EventV2CorehrPersonUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrPersonUpdatedV1 = event - case EventTypeV2CorehrPreHireUpdatedV1: - event := new(EventV2CorehrPreHireUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrPreHireUpdatedV1 = event - case EventTypeV2CorehrProbationUpdatedV2: - event := new(EventV2CorehrProbationUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrProbationUpdatedV2 = event - case EventTypeV2CorehrProcessApproverUpdatedV2: - event := new(EventV2CorehrProcessApproverUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrProcessApproverUpdatedV2 = event - case EventTypeV2CorehrProcessCcUpdatedV2: - event := new(EventV2CorehrProcessCcUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrProcessCcUpdatedV2 = event - case EventTypeV2CorehrProcessNodeUpdatedV2: - event := new(EventV2CorehrProcessNodeUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrProcessNodeUpdatedV2 = event - case EventTypeV2CorehrProcessUpdatedV2: - event := new(EventV2CorehrProcessUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2CorehrProcessUpdatedV2 = event - case EventTypeV2DriveFileBitableFieldChangedV1: - event := new(EventV2DriveFileBitableFieldChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileBitableFieldChangedV1 = event - case EventTypeV2DriveFileBitableRecordChangedV1: - event := new(EventV2DriveFileBitableRecordChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileBitableRecordChangedV1 = event - case EventTypeV2DriveFileCreatedInFolderV1: - event := new(EventV2DriveFileCreatedInFolderV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileCreatedInFolderV1 = event - case EventTypeV2DriveFileDeletedV1: - event := new(EventV2DriveFileDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileDeletedV1 = event - case EventTypeV2DriveFileEditV1: - event := new(EventV2DriveFileEditV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileEditV1 = event - case EventTypeV2DriveFilePermissionMemberAddedV1: - event := new(EventV2DriveFilePermissionMemberAddedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFilePermissionMemberAddedV1 = event - case EventTypeV2DriveFilePermissionMemberRemovedV1: - event := new(EventV2DriveFilePermissionMemberRemovedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFilePermissionMemberRemovedV1 = event - case EventTypeV2DriveFileReadV1: - event := new(EventV2DriveFileReadV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileReadV1 = event - case EventTypeV2DriveFileTitleUpdatedV1: - event := new(EventV2DriveFileTitleUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileTitleUpdatedV1 = event - case EventTypeV2DriveFileTrashedV1: - event := new(EventV2DriveFileTrashedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2DriveFileTrashedV1 = event - case EventTypeV2ElearningCourseRegistrationCreatedV2: - event := new(EventV2ElearningCourseRegistrationCreatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ElearningCourseRegistrationCreatedV2 = event - case EventTypeV2ElearningCourseRegistrationDeletedV2: - event := new(EventV2ElearningCourseRegistrationDeletedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ElearningCourseRegistrationDeletedV2 = event - case EventTypeV2ElearningCourseRegistrationUpdatedV2: - event := new(EventV2ElearningCourseRegistrationUpdatedV2) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2ElearningCourseRegistrationUpdatedV2 = event - case EventTypeV2HelpdeskNotificationApproveV1: - event := new(EventV2HelpdeskNotificationApproveV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HelpdeskNotificationApproveV1 = event - case EventTypeV2HelpdeskTicketCreatedV1: - event := new(EventV2HelpdeskTicketCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HelpdeskTicketCreatedV1 = event - case EventTypeV2HelpdeskTicketMessageCreatedV1: - event := new(EventV2HelpdeskTicketMessageCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HelpdeskTicketMessageCreatedV1 = event - case EventTypeV2HelpdeskTicketUpdatedV1: - event := new(EventV2HelpdeskTicketUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HelpdeskTicketUpdatedV1 = event - case EventTypeV2HireApplicationDeletedV1: - event := new(EventV2HireApplicationDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireApplicationDeletedV1 = event - case EventTypeV2HireApplicationStageChangedV1: - event := new(EventV2HireApplicationStageChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireApplicationStageChangedV1 = event - case EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1: - event := new(EventV2HireEHRImportTaskForInternshipOfferImportedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEHRImportTaskForInternshipOfferImportedV1 = event - case EventTypeV2HireEHRImportTaskImportedV1: - event := new(EventV2HireEHRImportTaskImportedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEHRImportTaskImportedV1 = event - case EventTypeV2HireEcoAccountCreatedV1: - event := new(EventV2HireEcoAccountCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEcoAccountCreatedV1 = event - case EventTypeV2HireEcoBackgroundCheckCanceledV1: - event := new(EventV2HireEcoBackgroundCheckCanceledV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEcoBackgroundCheckCanceledV1 = event - case EventTypeV2HireEcoBackgroundCheckCreatedV1: - event := new(EventV2HireEcoBackgroundCheckCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEcoBackgroundCheckCreatedV1 = event - case EventTypeV2HireEcoExamCreatedV1: - event := new(EventV2HireEcoExamCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireEcoExamCreatedV1 = event - case EventTypeV2HireOfferStatusChangedV1: - event := new(EventV2HireOfferStatusChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireOfferStatusChangedV1 = event - case EventTypeV2HireReferralAccountAssetsUpdateV1: - event := new(EventV2HireReferralAccountAssetsUpdateV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2HireReferralAccountAssetsUpdateV1 = event - case EventTypeV2IMChatDisbandedV1: - event := new(EventV2IMChatDisbandedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatDisbandedV1 = event - case EventTypeV2IMChatMemberBotAddedV1: - event := new(EventV2IMChatMemberBotAddedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatMemberBotAddedV1 = event - case EventTypeV2IMChatMemberBotDeletedV1: - event := new(EventV2IMChatMemberBotDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatMemberBotDeletedV1 = event - case EventTypeV2IMChatMemberUserAddedV1: - event := new(EventV2IMChatMemberUserAddedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatMemberUserAddedV1 = event - case EventTypeV2IMChatMemberUserDeletedV1: - event := new(EventV2IMChatMemberUserDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatMemberUserDeletedV1 = event - case EventTypeV2IMChatMemberUserWithdrawnV1: - event := new(EventV2IMChatMemberUserWithdrawnV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatMemberUserWithdrawnV1 = event - case EventTypeV2IMChatUpdatedV1: - event := new(EventV2IMChatUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMChatUpdatedV1 = event - case EventTypeV2IMMessageReactionCreatedV1: - event := new(EventV2IMMessageReactionCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMMessageReactionCreatedV1 = event - case EventTypeV2IMMessageReactionDeletedV1: - event := new(EventV2IMMessageReactionDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMMessageReactionDeletedV1 = event - case EventTypeV2IMMessageReadV1: - event := new(EventV2IMMessageReadV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMMessageReadV1 = event - case EventTypeV2IMMessageRecalledV1: - event := new(EventV2IMMessageRecalledV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMMessageRecalledV1 = event - case EventTypeV2IMMessageReceiveV1: - event := new(EventV2IMMessageReceiveV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2IMMessageReceiveV1 = event - case EventTypeV2MeetingRoomMeetingRoomCreatedV1: - event := new(EventV2MeetingRoomMeetingRoomCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2MeetingRoomMeetingRoomCreatedV1 = event - case EventTypeV2MeetingRoomMeetingRoomDeletedV1: - event := new(EventV2MeetingRoomMeetingRoomDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2MeetingRoomMeetingRoomDeletedV1 = event - case EventTypeV2MeetingRoomMeetingRoomStatusChangedV1: - event := new(EventV2MeetingRoomMeetingRoomStatusChangedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2MeetingRoomMeetingRoomStatusChangedV1 = event - case EventTypeV2MeetingRoomMeetingRoomUpdatedV1: - event := new(EventV2MeetingRoomMeetingRoomUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2MeetingRoomMeetingRoomUpdatedV1 = event - case EventTypeV2TaskTaskCommentUpdatedV1: - event := new(EventV2TaskTaskCommentUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2TaskTaskCommentUpdatedV1 = event - case EventTypeV2TaskTaskUpdateTenantV1: - event := new(EventV2TaskTaskUpdateTenantV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2TaskTaskUpdateTenantV1 = event - case EventTypeV2TaskTaskUpdatedV1: - event := new(EventV2TaskTaskUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2TaskTaskUpdatedV1 = event - case EventTypeV2URLPreviewGet: - event := new(EventV2URLPreviewGet) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2URLPreviewGet = event - case EventTypeV2VCMeetingAllMeetingEndedV1: - event := new(EventV2VCMeetingAllMeetingEndedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingAllMeetingEndedV1 = event - case EventTypeV2VCMeetingAllMeetingStartedV1: - event := new(EventV2VCMeetingAllMeetingStartedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingAllMeetingStartedV1 = event - case EventTypeV2VCMeetingJoinMeetingV1: - event := new(EventV2VCMeetingJoinMeetingV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingJoinMeetingV1 = event - case EventTypeV2VCMeetingLeaveMeetingV1: - event := new(EventV2VCMeetingLeaveMeetingV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingLeaveMeetingV1 = event - case EventTypeV2VCMeetingMeetingEndedV1: - event := new(EventV2VCMeetingMeetingEndedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingMeetingEndedV1 = event - case EventTypeV2VCMeetingMeetingStartedV1: - event := new(EventV2VCMeetingMeetingStartedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingMeetingStartedV1 = event - case EventTypeV2VCMeetingRecordingEndedV1: - event := new(EventV2VCMeetingRecordingEndedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingRecordingEndedV1 = event - case EventTypeV2VCMeetingRecordingReadyV1: - event := new(EventV2VCMeetingRecordingReadyV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingRecordingReadyV1 = event - case EventTypeV2VCMeetingRecordingStartedV1: - event := new(EventV2VCMeetingRecordingStartedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingRecordingStartedV1 = event - case EventTypeV2VCMeetingShareEndedV1: - event := new(EventV2VCMeetingShareEndedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingShareEndedV1 = event - case EventTypeV2VCMeetingShareStartedV1: - event := new(EventV2VCMeetingShareStartedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCMeetingShareStartedV1 = event - case EventTypeV2VCReserveConfigUpdatedV1: - event := new(EventV2VCReserveConfigUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCReserveConfigUpdatedV1 = event - case EventTypeV2VCRoomCreatedV1: - event := new(EventV2VCRoomCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomCreatedV1 = event - case EventTypeV2VCRoomDeletedV1: - event := new(EventV2VCRoomDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomDeletedV1 = event - case EventTypeV2VCRoomLevelCreatedV1: - event := new(EventV2VCRoomLevelCreatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomLevelCreatedV1 = event - case EventTypeV2VCRoomLevelDeletedV1: - event := new(EventV2VCRoomLevelDeletedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomLevelDeletedV1 = event - case EventTypeV2VCRoomLevelUpdatedV1: - event := new(EventV2VCRoomLevelUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomLevelUpdatedV1 = event - case EventTypeV2VCRoomUpdatedV1: - event := new(EventV2VCRoomUpdatedV1) - if err := req.unmarshalEvent(event); err != nil { - return err - } - req.eventV2VCRoomUpdatedV1 = event - } return nil @@ -1441,156 +531,12 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { } switch v1type.Type { - case EventTypeV1AddBot: - event := new(EventV1AddBot) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AddBot = event - case EventTypeV1AddUserToChat: - event := new(EventV1AddUserToChat) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AddUserToChat = event - case EventTypeV1AppOpen: - event := new(EventV1AppOpen) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AppOpen = event - case EventTypeV1AppStatusChange: - event := new(EventV1AppStatusChange) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AppStatusChange = event - case EventTypeV1AppTicket: - event := new(EventV1AppTicket) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AppTicket = event - case EventTypeV1AppUninstalled: - event := new(EventV1AppUninstalled) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1AppUninstalled = event - case EventTypeV1ApprovalCc: - event := new(EventV1ApprovalCc) + case EventTypeV1TripApproval: + event := new(EventV1TripApproval) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ApprovalCc = event - case EventTypeV1ApprovalInstance: - event := new(EventV1ApprovalInstance) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ApprovalInstance = event - case EventTypeV1ApprovalTask: - event := new(EventV1ApprovalTask) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ApprovalTask = event - case EventTypeV1ChatDisband: - event := new(EventV1ChatDisband) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ChatDisband = event - case EventTypeV1LeaveApprovalRevert: - event := new(EventV1LeaveApprovalRevert) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1LeaveApprovalRevert = event - case EventTypeV1LeaveApprovalV2: - event := new(EventV1LeaveApprovalV2) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1LeaveApprovalV2 = event - case EventTypeV1OrderPaid: - event := new(EventV1OrderPaid) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1OrderPaid = event - case EventTypeV1OutApproval: - event := new(EventV1OutApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1OutApproval = event - case EventTypeV1P2PChatCreate: - event := new(EventV1P2PChatCreate) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1P2PChatCreate = event - case EventTypeV1ReceiveMessage: - event := new(EventV1ReceiveMessage) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ReceiveMessage = event - case EventTypeV1RemedyApproval: - event := new(EventV1RemedyApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1RemedyApproval = event - case EventTypeV1RemoveBot: - event := new(EventV1RemoveBot) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1RemoveBot = event - case EventTypeV1RemoveUserFromChat: - event := new(EventV1RemoveUserFromChat) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1RemoveUserFromChat = event - case EventTypeV1RevokeAddUserFromChat: - event := new(EventV1RevokeAddUserFromChat) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1RevokeAddUserFromChat = event - case EventTypeV1ShiftApproval: - event := new(EventV1ShiftApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ShiftApproval = event - case EventTypeV1ThirdPartyMeetingRoomEventCreated: - event := new(EventV1ThirdPartyMeetingRoomEventCreated) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ThirdPartyMeetingRoomEventCreated = event - case EventTypeV1ThirdPartyMeetingRoomEventDeleted: - event := new(EventV1ThirdPartyMeetingRoomEventDeleted) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ThirdPartyMeetingRoomEventDeleted = event - case EventTypeV1ThirdPartyMeetingRoomEventUpdated: - event := new(EventV1ThirdPartyMeetingRoomEventUpdated) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ThirdPartyMeetingRoomEventUpdated = event - case EventTypeV1WorkApproval: - event := new(EventV1WorkApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1WorkApproval = event + req.eventV1TripApproval = event } @@ -1819,6 +765,15 @@ func (r *EventCallbackService) handlerEvent(ctx context.Context, req *eventReq) } } return true, s, err + case req.eventV1TripApproval != nil: + if r.cli.eventHandler.eventV1TripApprovalHandler != nil { + if r.cli.noBlocking { + go r.cli.eventHandler.eventV1TripApprovalHandler(ctx, r.cli, req.Schema, req.headerV1(EventTypeV1TripApproval), req.eventV1TripApproval) + } else { + s, err = r.cli.eventHandler.eventV1TripApprovalHandler(ctx, r.cli, req.Schema, req.headerV1(EventTypeV1TripApproval), req.eventV1TripApproval) + } + } + return true, s, err case req.eventV1WorkApproval != nil: if r.cli.eventHandler.eventV1WorkApprovalHandler != nil { if r.cli.noBlocking { diff --git a/api_event_callback_v1_add_bot.go b/api_event_callback_v1_add_bot.go index e67e0b25..af265b6c 100644 --- a/api_event_callback_v1_add_bot.go +++ b/api_event_callback_v1_add_bot.go @@ -56,3 +56,15 @@ type EventV1AddBotEventChatI18nNames struct { EnUs string `json:"en_us,omitempty"` // 如: 英文标题 ZhCn string `json:"zh_cn,omitempty"` // 如: 中文标题 } + +// EventV1AddBotResp ... +type EventV1AddBotResp struct { +} + +// eventV1AddBotResp ... +type eventV1AddBotResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AddBotResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_add_user_to_chat.go b/api_event_callback_v1_add_user_to_chat.go index d70e127e..348594f4 100644 --- a/api_event_callback_v1_add_user_to_chat.go +++ b/api_event_callback_v1_add_user_to_chat.go @@ -63,3 +63,15 @@ type EventV1AddUserToChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } + +// EventV1AddUserToChatResp ... +type EventV1AddUserToChatResp struct { +} + +// eventV1AddUserToChatResp ... +type eventV1AddUserToChatResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AddUserToChatResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_app_open.go b/api_event_callback_v1_app_open.go index de548a7f..285ffd7d 100644 --- a/api_event_callback_v1_app_open.go +++ b/api_event_callback_v1_app_open.go @@ -58,3 +58,25 @@ type EventV1AppOpen struct { type EventV1AppOpenEventApplicant struct { OpenID string `json:"open_id,omitempty"` // 用户对此应用的唯一标识, 同一用户对不同应用的open_id不同. 如: xxx } + +// EventV1AppOpenEventInstaller ... +type EventV1AppOpenEventInstaller struct { + OpenID string `json:"open_id,omitempty"` // 用户对此应用的唯一标识, 同一用户对不同应用的open_id不同. 如: xxx +} + +// EventV1AppOpenEventInstallerEmployee ... +type EventV1AppOpenEventInstallerEmployee struct { + OpenID string `json:"open_id,omitempty"` // 用户对此应用的唯一标识, 同一用户对不同应用的open_id不同. 如: xxx +} + +// EventV1AppOpenResp ... +type EventV1AppOpenResp struct { +} + +// eventV1AppOpenResp ... +type eventV1AppOpenResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AppOpenResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_app_status_change.go b/api_event_callback_v1_app_status_change.go index b38e2e5c..74a43af2 100644 --- a/api_event_callback_v1_app_status_change.go +++ b/api_event_callback_v1_app_status_change.go @@ -51,3 +51,15 @@ type EventV1AppStatusChangeEventOperator struct { UserID string `json:"user_id,omitempty"` // 仅自建应用才会返回. 如: yyy UnionID string `json:"union_id,omitempty"` // 用户在ISV下的唯一标识. 如: zzz } + +// EventV1AppStatusChangeResp ... +type EventV1AppStatusChangeResp struct { +} + +// eventV1AppStatusChangeResp ... +type eventV1AppStatusChangeResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AppStatusChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_app_ticket.go b/api_event_callback_v1_app_ticket.go index b9086bf2..9ddf626a 100644 --- a/api_event_callback_v1_app_ticket.go +++ b/api_event_callback_v1_app_ticket.go @@ -44,3 +44,15 @@ type EventV1AppTicket struct { AppTicket string `json:"app_ticket,omitempty"` // 如: xxx Type string `json:"type,omitempty"` // 如: app_ticket } + +// EventV1AppTicketResp ... +type EventV1AppTicketResp struct { +} + +// eventV1AppTicketResp ... +type eventV1AppTicketResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AppTicketResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_app_uninstalled.go b/api_event_callback_v1_app_uninstalled.go index 00475eb4..0742d14b 100644 --- a/api_event_callback_v1_app_uninstalled.go +++ b/api_event_callback_v1_app_uninstalled.go @@ -41,3 +41,15 @@ type EventV1AppUninstalled struct { TenantKey string `json:"tenant_key,omitempty"` // 卸载应用的企业ID. 如: xxx Type string `json:"type,omitempty"` // 事件类型. 如: app_uninstalled } + +// EventV1AppUninstalledResp ... +type EventV1AppUninstalledResp struct { +} + +// eventV1AppUninstalledResp ... +type eventV1AppUninstalledResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1AppUninstalledResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_approval_cc.go b/api_event_callback_v1_approval_cc.go index b527a3cd..3cdd053a 100644 --- a/api_event_callback_v1_approval_cc.go +++ b/api_event_callback_v1_approval_cc.go @@ -51,3 +51,15 @@ type EventV1ApprovalCc struct { Operate string `json:"operate,omitempty"` // 操作类型。可能值有: CREATE: 创建抄送- READ: 抄送人已读 From string `json:"from,omitempty"` // 执行抄送操作的用户 user_id, 可能为空。你可以调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 通过 user_id 获取用户信息。 } + +// EventV1ApprovalCcResp ... +type EventV1ApprovalCcResp struct { +} + +// eventV1ApprovalCcResp ... +type eventV1ApprovalCcResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ApprovalCcResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_approval_instance.go b/api_event_callback_v1_approval_instance.go index 0b57fcb7..1682dafa 100644 --- a/api_event_callback_v1_approval_instance.go +++ b/api_event_callback_v1_approval_instance.go @@ -56,3 +56,15 @@ type EventV1ApprovalInstance struct { InstanceOperateTime string `json:"instance_operate_time,omitempty"` // 事件发生事件, 毫秒级时间戳。 UUID string `json:"uuid,omitempty"` // 如果[创建审批实例](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/instance/create)时传入了 uuid, 则此处返回该实例的 uuid。 } + +// EventV1ApprovalInstanceResp ... +type EventV1ApprovalInstanceResp struct { +} + +// eventV1ApprovalInstanceResp ... +type eventV1ApprovalInstanceResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ApprovalInstanceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_approval_task.go b/api_event_callback_v1_approval_task.go index 1cf80a40..833eda44 100644 --- a/api_event_callback_v1_approval_task.go +++ b/api_event_callback_v1_approval_task.go @@ -65,3 +65,15 @@ type EventV1ApprovalTask struct { DefKey string `json:"def_key,omitempty"` // 系统生成的审批节点唯一 ID。 Extra string `json:"extra,omitempty"` // 扩展数据。目前仅任务被退回时才有此字段, 其中: rollback_node_ids: 退回的节点列表- rollback_custom_node_ids: 用户自定义配置的节点列表 } + +// EventV1ApprovalTaskResp ... +type EventV1ApprovalTaskResp struct { +} + +// eventV1ApprovalTaskResp ... +type eventV1ApprovalTaskResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ApprovalTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_chat_disband.go b/api_event_callback_v1_chat_disband.go index aba49e87..bf584800 100644 --- a/api_event_callback_v1_chat_disband.go +++ b/api_event_callback_v1_chat_disband.go @@ -49,3 +49,15 @@ type EventV1ChatDisbandEventOperator struct { OpenID string `json:"open_id,omitempty"` // 如: ou_18eac85d35a26f989317ad4f02e8bbbb UserID string `json:"user_id,omitempty"` // 如: ca51d83b } + +// EventV1ChatDisbandResp ... +type EventV1ChatDisbandResp struct { +} + +// eventV1ChatDisbandResp ... +type eventV1ChatDisbandResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ChatDisbandResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_leave_approvalV2.go b/api_event_callback_v1_leave_approvalV2.go index 23d1898c..1afb86c5 100644 --- a/api_event_callback_v1_leave_approvalV2.go +++ b/api_event_callback_v1_leave_approvalV2.go @@ -49,3 +49,15 @@ type EventV1LeaveApprovalV2 struct { TenantKey string `json:"tenant_key,omitempty"` // 租户 Key, 是企业的唯一标识。 Type string `json:"type,omitempty"` // 事件类型。固定值 `leave_approval_revert` } + +// EventV1LeaveApprovalV2Resp ... +type EventV1LeaveApprovalV2Resp struct { +} + +// eventV1LeaveApprovalV2Resp ... +type eventV1LeaveApprovalV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1LeaveApprovalV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_leave_approval_revert.go b/api_event_callback_v1_leave_approval_revert.go index 84214c51..d9b0c4f0 100644 --- a/api_event_callback_v1_leave_approval_revert.go +++ b/api_event_callback_v1_leave_approval_revert.go @@ -49,3 +49,15 @@ type EventV1LeaveApprovalRevert struct { TenantKey string `json:"tenant_key,omitempty"` // 租户 Key, 是企业的唯一标识。 Type string `json:"type,omitempty"` // 事件类型。固定值 `leave_approval_revert` } + +// EventV1LeaveApprovalRevertResp ... +type EventV1LeaveApprovalRevertResp struct { +} + +// eventV1LeaveApprovalRevertResp ... +type eventV1LeaveApprovalRevertResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1LeaveApprovalRevertResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_order_paid.go b/api_event_callback_v1_order_paid.go index 2c7e205f..464a6eb8 100644 --- a/api_event_callback_v1_order_paid.go +++ b/api_event_callback_v1_order_paid.go @@ -51,3 +51,15 @@ type EventV1OrderPaid struct { OrderPayPrice int64 `json:"order_pay_price,omitempty"` // 订单支付价格 单位分, . 如: 10000 TenantKey string `json:"tenant_key,omitempty"` // 购买应用的企业标示. 如: 2f98c01bc23f6847 } + +// EventV1OrderPaidResp ... +type EventV1OrderPaidResp struct { +} + +// eventV1OrderPaidResp ... +type eventV1OrderPaidResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1OrderPaidResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_out_approval.go b/api_event_callback_v1_out_approval.go index e4600c2b..b25c5510 100644 --- a/api_event_callback_v1_out_approval.go +++ b/api_event_callback_v1_out_approval.go @@ -60,3 +60,15 @@ type EventV1OutApproval struct { Type string `json:"type,omitempty"` // 事件类型。固定值 `out_approval` UserID string `json:"user_id,omitempty"` // 审批发起人的 user_id。你可以调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 通过 user_id 获取用户信息。 } + +// EventV1OutApprovalResp ... +type EventV1OutApprovalResp struct { +} + +// eventV1OutApprovalResp ... +type eventV1OutApprovalResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1OutApprovalResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_p2p_chat_create.go b/api_event_callback_v1_p2p_chat_create.go index 1b9dc088..ecbcd260 100644 --- a/api_event_callback_v1_p2p_chat_create.go +++ b/api_event_callback_v1_p2p_chat_create.go @@ -36,4 +36,17 @@ func (r *EventCallbackService) HandlerEventV1P2PChatCreate(f EventV1P2PChatCreat type EventV1P2PChatCreateHandler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV1, event *EventV1P2PChatCreate) (string, error) // EventV1P2PChatCreate ... -type EventV1P2PChatCreate struct{} +type EventV1P2PChatCreate struct { +} + +// EventV1P2PChatCreateResp ... +type EventV1P2PChatCreateResp struct { +} + +// eventV1P2PChatCreateResp ... +type eventV1P2PChatCreateResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1P2PChatCreateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_receive_message.go b/api_event_callback_v1_receive_message.go index c60b9880..d53b6e37 100644 --- a/api_event_callback_v1_receive_message.go +++ b/api_event_callback_v1_receive_message.go @@ -58,3 +58,15 @@ type EventV1ReceiveMessage struct { ImageKey string `json:"image_key,omitempty"` // 图片内容 FileKey string `json:"file_key,omitempty"` // 文件内容 } + +// EventV1ReceiveMessageResp ... +type EventV1ReceiveMessageResp struct { +} + +// eventV1ReceiveMessageResp ... +type eventV1ReceiveMessageResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ReceiveMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_remedy_approval.go b/api_event_callback_v1_remedy_approval.go index f1ea0d95..7c23e9d4 100644 --- a/api_event_callback_v1_remedy_approval.go +++ b/api_event_callback_v1_remedy_approval.go @@ -52,3 +52,15 @@ type EventV1RemedyApprovalObject struct { Status string `json:"status,omitempty"` // 审批实例状态。审批实例通过时取值为 `APPROVED` Type string `json:"type,omitempty"` // 固定取值 `remedy_approval_v2` } + +// EventV1RemedyApprovalResp ... +type EventV1RemedyApprovalResp struct { +} + +// eventV1RemedyApprovalResp ... +type eventV1RemedyApprovalResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1RemedyApprovalResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_remove_bot.go b/api_event_callback_v1_remove_bot.go index cf614883..ba4de655 100644 --- a/api_event_callback_v1_remove_bot.go +++ b/api_event_callback_v1_remove_bot.go @@ -56,3 +56,15 @@ type EventV1RemoveBotEventChatI18nNames struct { EnUs string `json:"en_us,omitempty"` // 如: 英文标题 ZhCn string `json:"zh_cn,omitempty"` // 如: 中文标题 } + +// EventV1RemoveBotResp ... +type EventV1RemoveBotResp struct { +} + +// eventV1RemoveBotResp ... +type eventV1RemoveBotResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1RemoveBotResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_remove_user_from_chat.go b/api_event_callback_v1_remove_user_from_chat.go index 5f67391d..cb3b9306 100644 --- a/api_event_callback_v1_remove_user_from_chat.go +++ b/api_event_callback_v1_remove_user_from_chat.go @@ -63,3 +63,15 @@ type EventV1RemoveUserFromChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } + +// EventV1RemoveUserFromChatResp ... +type EventV1RemoveUserFromChatResp struct { +} + +// eventV1RemoveUserFromChatResp ... +type eventV1RemoveUserFromChatResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1RemoveUserFromChatResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_revoke_add_user_from_chat.go b/api_event_callback_v1_revoke_add_user_from_chat.go index 08c4509c..f65bf965 100644 --- a/api_event_callback_v1_revoke_add_user_from_chat.go +++ b/api_event_callback_v1_revoke_add_user_from_chat.go @@ -63,3 +63,15 @@ type EventV1RevokeAddUserFromChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } + +// EventV1RevokeAddUserFromChatResp ... +type EventV1RevokeAddUserFromChatResp struct { +} + +// eventV1RevokeAddUserFromChatResp ... +type eventV1RevokeAddUserFromChatResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1RevokeAddUserFromChatResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_shift_approval.go b/api_event_callback_v1_shift_approval.go index d2fa183e..c2da20cf 100644 --- a/api_event_callback_v1_shift_approval.go +++ b/api_event_callback_v1_shift_approval.go @@ -51,3 +51,15 @@ type EventV1ShiftApproval struct { ReturnTime string `json:"return_time,omitempty"` // 还班时间。示例格式 `2018-12-01 12:00:00` ShiftReason string `json:"shift_reason,omitempty"` // 换班事由。 } + +// EventV1ShiftApprovalResp ... +type EventV1ShiftApprovalResp struct { +} + +// eventV1ShiftApprovalResp ... +type eventV1ShiftApprovalResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ShiftApprovalResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_third_party_meeting_room_event_created.go b/api_event_callback_v1_third_party_meeting_room_event_created.go index 0db7d328..e3552742 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_created.go +++ b/api_event_callback_v1_third_party_meeting_room_event_created.go @@ -54,6 +54,11 @@ type EventV1ThirdPartyMeetingRoomEventCreatedEnd struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程结束时间戳 } +// EventV1ThirdPartyMeetingRoomEventCreatedMeetingRoom ... +type EventV1ThirdPartyMeetingRoomEventCreatedMeetingRoom struct { + OpenID string `json:"open_id,omitempty"` // 会议室 ID +} + // EventV1ThirdPartyMeetingRoomEventCreatedOrganizer ... type EventV1ThirdPartyMeetingRoomEventCreatedOrganizer struct { OpenID string `json:"open_id,omitempty"` // 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。 @@ -61,7 +66,19 @@ type EventV1ThirdPartyMeetingRoomEventCreatedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } +// EventV1ThirdPartyMeetingRoomEventCreatedResp ... +type EventV1ThirdPartyMeetingRoomEventCreatedResp struct { +} + // EventV1ThirdPartyMeetingRoomEventCreatedStart ... type EventV1ThirdPartyMeetingRoomEventCreatedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } + +// eventV1ThirdPartyMeetingRoomEventCreatedResp ... +type eventV1ThirdPartyMeetingRoomEventCreatedResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ThirdPartyMeetingRoomEventCreatedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_third_party_meeting_room_event_deleted.go b/api_event_callback_v1_third_party_meeting_room_event_deleted.go index 54777efb..942d1545 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_deleted.go +++ b/api_event_callback_v1_third_party_meeting_room_event_deleted.go @@ -54,6 +54,11 @@ type EventV1ThirdPartyMeetingRoomEventDeletedEnd struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程结束时间戳 } +// EventV1ThirdPartyMeetingRoomEventDeletedMeetingRoom ... +type EventV1ThirdPartyMeetingRoomEventDeletedMeetingRoom struct { + OpenID string `json:"open_id,omitempty"` // 会议室 ID +} + // EventV1ThirdPartyMeetingRoomEventDeletedOrganizer ... type EventV1ThirdPartyMeetingRoomEventDeletedOrganizer struct { OpenID string `json:"open_id,omitempty"` // 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。 @@ -61,7 +66,19 @@ type EventV1ThirdPartyMeetingRoomEventDeletedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } +// EventV1ThirdPartyMeetingRoomEventDeletedResp ... +type EventV1ThirdPartyMeetingRoomEventDeletedResp struct { +} + // EventV1ThirdPartyMeetingRoomEventDeletedStart ... type EventV1ThirdPartyMeetingRoomEventDeletedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } + +// eventV1ThirdPartyMeetingRoomEventDeletedResp ... +type eventV1ThirdPartyMeetingRoomEventDeletedResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ThirdPartyMeetingRoomEventDeletedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_third_party_meeting_room_event_updated.go b/api_event_callback_v1_third_party_meeting_room_event_updated.go index b6cff885..96b79635 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_updated.go +++ b/api_event_callback_v1_third_party_meeting_room_event_updated.go @@ -54,6 +54,11 @@ type EventV1ThirdPartyMeetingRoomEventUpdatedEnd struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程结束时间戳 } +// EventV1ThirdPartyMeetingRoomEventUpdatedMeetingRoom ... +type EventV1ThirdPartyMeetingRoomEventUpdatedMeetingRoom struct { + OpenID string `json:"open_id,omitempty"` // 会议室 ID +} + // EventV1ThirdPartyMeetingRoomEventUpdatedOrganizer ... type EventV1ThirdPartyMeetingRoomEventUpdatedOrganizer struct { OpenID string `json:"open_id,omitempty"` // 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。 @@ -61,7 +66,19 @@ type EventV1ThirdPartyMeetingRoomEventUpdatedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } +// EventV1ThirdPartyMeetingRoomEventUpdatedResp ... +type EventV1ThirdPartyMeetingRoomEventUpdatedResp struct { +} + // EventV1ThirdPartyMeetingRoomEventUpdatedStart ... type EventV1ThirdPartyMeetingRoomEventUpdatedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } + +// eventV1ThirdPartyMeetingRoomEventUpdatedResp ... +type eventV1ThirdPartyMeetingRoomEventUpdatedResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1ThirdPartyMeetingRoomEventUpdatedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v1_trip_approval.go b/api_event_callback_v1_trip_approval.go new file mode 100644 index 00000000..0c0e71e0 --- /dev/null +++ b/api_event_callback_v1_trip_approval.go @@ -0,0 +1,108 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// EventV1TripApproval 了解事件订阅的使用场景和配置流程, 请点击查看 [事件订阅概述](https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM) +// +// 「审批」应用的表单里如果包含 [出差控件组], 则在此表单审批通过后触发此事件。 +// * 依赖权限: [访问审批应用] +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uIDO24iM4YjLygjN/event/business-trip +func (r *EventCallbackService) HandlerEventV1TripApproval(f EventV1TripApprovalHandler) { + r.cli.eventHandler.eventV1TripApprovalHandler = f +} + +// EventV1TripApprovalHandler event EventV1TripApproval handler +type EventV1TripApprovalHandler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV1, event *EventV1TripApproval) (string, error) + +// EventV1TripApproval ... +type EventV1TripApproval struct { + Event map[string]interface{} `json:"event,omitempty"` +} + +// EventV1TripApprovalEventEvent ... +type EventV1TripApprovalEventEvent struct { + Object map[string]interface{} `json:"object,omitempty"` + OldObject interface{} `json:"old_object,omitempty"` // 如: null +} + +// EventV1TripApprovalEventEventObject ... +type EventV1TripApprovalEventEventObject struct { + Type string `json:"type,omitempty"` // 如: APPROVED + InstanceCode string `json:"instance_code,omitempty"` // 如: FC2CB9B2-966F-4B65-AC7E-B21E04F497CB + StartUser map[string]interface{} `json:"start_user,omitempty"` + StartTime string `json:"start_time,omitempty"` // 如: 1661333019 + EndTime string `json:"end_time,omitempty"` // 如: 1661333029 + Schedules []*EventV1TripApprovalEventEventObjectSchedule `json:"schedules,omitempty"` + TripInterval string `json:"trip_interval,omitempty"` // 如: 561600 + TripReason string `json:"trip_reason,omitempty"` // 如: test + TripPeers []*EventV1TripApprovalEventEventObjectTripPeer `json:"trip_peers,omitempty"` +} + +// EventV1TripApprovalEventEventObjectSchedule ... +type EventV1TripApprovalEventEventObjectSchedule struct { + TripStartTime string `json:"trip_start_time,omitempty"` // 如: 2022-08-25 12:00:00 + TripEndTime string `json:"trip_end_time,omitempty"` // 如: 2022-09-01 00:00:00 + TripInterval string `json:"trip_interval,omitempty"` // 如: 561600 + Departure string `json:"departure,omitempty"` // 如: 中国/北京市/北京市/朝阳区 + DepartureID string `json:"departure_id,omitempty"` // 如: 6c758b5dc54930abc7a454c7477d3496cfca0a62fd941e0093b2d819e0e263a6 + Destination string `json:"destination,omitempty"` // 如: 美国 + DestinationIDs []string `json:"destination_ids,omitempty"` + Transportation string `json:"transportation,omitempty"` // 如: 飞机 + TripType string `json:"trip_type,omitempty"` // 如: 往返 + Remark string `json:"remark,omitempty"` +} + +// EventV1TripApprovalEventEventObjectStartUser ... +type EventV1TripApprovalEventEventObjectStartUser struct { + ID map[string]interface{} `json:"id,omitempty"` +} + +// EventV1TripApprovalEventEventObjectStartUserID ... +type EventV1TripApprovalEventEventObjectStartUserID struct { + UserID string `json:"user_id,omitempty"` + OpenID string `json:"open_id,omitempty"` + UnionID string `json:"union_id,omitempty"` +} + +// EventV1TripApprovalEventEventObjectTripPeer ... +type EventV1TripApprovalEventEventObjectTripPeer struct { + ID map[string]interface{} `json:"id,omitempty"` +} + +// EventV1TripApprovalEventEventObjectTripPeerID ... +type EventV1TripApprovalEventEventObjectTripPeerID struct { + UserID string `json:"user_id,omitempty"` + OpenID string `json:"open_id,omitempty"` + UnionID string `json:"union_id,omitempty"` +} + +// EventV1TripApprovalResp ... +type EventV1TripApprovalResp struct { +} + +// eventV1TripApprovalResp ... +type eventV1TripApprovalResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1TripApprovalResp `json:"data,omitempty"` +} diff --git a/api_event_callback_v1_work_approval.go b/api_event_callback_v1_work_approval.go index 759296a6..ad4b8511 100644 --- a/api_event_callback_v1_work_approval.go +++ b/api_event_callback_v1_work_approval.go @@ -62,6 +62,10 @@ type EventV1WorkApproval struct { WorkType string `json:"work_type,omitempty"` // 加班类型。 } +// EventV1WorkApprovalResp ... +type EventV1WorkApprovalResp struct { +} + // EventV1WorkApprovalTimeRange ... type EventV1WorkApprovalTimeRange struct { WorkStartTime string `json:"work_start_time,omitempty"` // 加班开始时间。示例格式: 2018-12-01 12:00:00 @@ -75,3 +79,11 @@ type EventV1WorkApprovalWorkDetail struct { RuleAssociated int64 `json:"rule_associated,omitempty"` // 加班类型。可能值有: 0: 无(未关联加班规则)- 1: 调休假- 2: 加班费- 3: 无(已关联加班规则) Interval int64 `json:"interval,omitempty"` // 每日加班时长。单位: 秒 } + +// eventV1WorkApprovalResp ... +type eventV1WorkApprovalResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV1WorkApprovalResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_acs_access_record_created_v1.go b/api_event_callback_v2_acs_access_record_created_v1.go index 53c61525..991b0a39 100644 --- a/api_event_callback_v2_acs_access_record_created_v1.go +++ b/api_event_callback_v2_acs_access_record_created_v1.go @@ -42,9 +42,21 @@ type EventV2ACSAccessRecordCreatedV1 struct { AccessTime string `json:"access_time,omitempty"` // 识别时间 (单位: 秒) } +// EventV2ACSAccessRecordCreatedV1Resp ... +type EventV2ACSAccessRecordCreatedV1Resp struct { +} + // EventV2ACSAccessRecordCreatedV1UserID ... type EventV2ACSAccessRecordCreatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2ACSAccessRecordCreatedV1Resp ... +type eventV2ACSAccessRecordCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ACSAccessRecordCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_acs_user_updated_v1.go b/api_event_callback_v2_acs_user_updated_v1.go index 305279d0..10e03166 100644 --- a/api_event_callback_v2_acs_user_updated_v1.go +++ b/api_event_callback_v2_acs_user_updated_v1.go @@ -39,9 +39,21 @@ type EventV2ACSUserUpdatedV1 struct { FaceUploaded bool `json:"face_uploaded,omitempty"` // 是否上传人脸图片 } +// EventV2ACSUserUpdatedV1Resp ... +type EventV2ACSUserUpdatedV1Resp struct { +} + // EventV2ACSUserUpdatedV1UserID ... type EventV2ACSUserUpdatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2ACSUserUpdatedV1Resp ... +type eventV2ACSUserUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ACSUserUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_app_version_audit_v6.go b/api_event_callback_v2_application_application_app_version_audit_v6.go index 5f85128c..8466b3e1 100644 --- a/api_event_callback_v2_application_application_app_version_audit_v6.go +++ b/api_event_callback_v2_application_application_app_version_audit_v6.go @@ -56,3 +56,15 @@ type EventV2ApplicationApplicationAppVersionAuditV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ApplicationApplicationAppVersionAuditV6Resp ... +type EventV2ApplicationApplicationAppVersionAuditV6Resp struct { +} + +// eventV2ApplicationApplicationAppVersionAuditV6Resp ... +type eventV2ApplicationApplicationAppVersionAuditV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationAppVersionAuditV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_app_version_publish_apply_v6.go b/api_event_callback_v2_application_application_app_version_publish_apply_v6.go index 4cd448d8..d154152b 100644 --- a/api_event_callback_v2_application_application_app_version_publish_apply_v6.go +++ b/api_event_callback_v2_application_application_app_version_publish_apply_v6.go @@ -197,12 +197,26 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVis DepartmentIDs []string `json:"department_ids,omitempty"` // 可见性部门的 id 列表 } +// EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityInvisibleListOpenID ... +type EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityInvisibleListOpenID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + // EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityVisibleList ... type EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityVisibleList struct { OpenIDs []string `json:"open_ids,omitempty"` // 可见性成员 id 列表 DepartmentIDs []string `json:"department_ids,omitempty"` // 可见性部门的 id 列表 } +// EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityVisibleListOpenID ... +type EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionRemarkVisibilityVisibleListOpenID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + // EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionScope ... type EventV2ApplicationApplicationAppVersionPublishApplyV6OnlineVersionScope struct { Scope string `json:"scope,omitempty"` // 应用权限 @@ -218,6 +232,10 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2ApplicationApplicationAppVersionPublishApplyV6Resp ... +type EventV2ApplicationApplicationAppVersionPublishApplyV6Resp struct { +} + // EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersion ... type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersion struct { AppID string `json:"app_id,omitempty"` // 应用 id @@ -375,12 +393,26 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemar DepartmentIDs []string `json:"department_ids,omitempty"` // 可见性部门的 id 列表 } +// EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityInvisibleListOpenID ... +type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityInvisibleListOpenID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + // EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityVisibleList ... type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityVisibleList struct { OpenIDs []string `json:"open_ids,omitempty"` // 可见性成员 id 列表 DepartmentIDs []string `json:"department_ids,omitempty"` // 可见性部门的 id 列表 } +// EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityVisibleListOpenID ... +type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionRemarkVisibilityVisibleListOpenID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + // EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionScope ... type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionScope struct { Scope string `json:"scope,omitempty"` // 应用权限 @@ -388,3 +420,11 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionScope Level int64 `json:"level,omitempty"` // 权限等级描述可选值有: 普通权限高级权限超敏感权限未知等级 TokenTypes []string `json:"token_types,omitempty"` // 返回用户身份类型user、应用身份类型tenant。如果两种类型都支持, 则同时返回两个。可选值有: 应用身份类型用户身份类型 长度范围: `0` ~ `200` } + +// eventV2ApplicationApplicationAppVersionPublishApplyV6Resp ... +type eventV2ApplicationApplicationAppVersionPublishApplyV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationAppVersionPublishApplyV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go b/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go index e96cbc95..fda2d15f 100644 --- a/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go +++ b/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go @@ -53,3 +53,15 @@ type EventV2ApplicationApplicationAppVersionPublishRevokeV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp ... +type EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp struct { +} + +// eventV2ApplicationApplicationAppVersionPublishRevokeV6Resp ... +type eventV2ApplicationApplicationAppVersionPublishRevokeV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_created_v6.go b/api_event_callback_v2_application_application_created_v6.go index 2923c12e..31903283 100644 --- a/api_event_callback_v2_application_application_created_v6.go +++ b/api_event_callback_v2_application_application_created_v6.go @@ -53,3 +53,15 @@ type EventV2ApplicationApplicationCreatedV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ApplicationApplicationCreatedV6Resp ... +type EventV2ApplicationApplicationCreatedV6Resp struct { +} + +// eventV2ApplicationApplicationCreatedV6Resp ... +type eventV2ApplicationApplicationCreatedV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationCreatedV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_feedback_created_v6.go b/api_event_callback_v2_application_application_feedback_created_v6.go index 58ab4ad4..62aac5a9 100644 --- a/api_event_callback_v2_application_application_feedback_created_v6.go +++ b/api_event_callback_v2_application_application_feedback_created_v6.go @@ -49,9 +49,21 @@ type EventV2ApplicationApplicationFeedbackCreatedV6 struct { FeedbackPath string `json:"feedback_path,omitempty"` // 反馈页面路径 } +// EventV2ApplicationApplicationFeedbackCreatedV6Resp ... +type EventV2ApplicationApplicationFeedbackCreatedV6Resp struct { +} + // EventV2ApplicationApplicationFeedbackCreatedV6UserID ... type EventV2ApplicationApplicationFeedbackCreatedV6UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2ApplicationApplicationFeedbackCreatedV6Resp ... +type eventV2ApplicationApplicationFeedbackCreatedV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationFeedbackCreatedV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_feedback_updated_v6.go b/api_event_callback_v2_application_application_feedback_updated_v6.go index 555a9d9a..7a88c6bb 100644 --- a/api_event_callback_v2_application_application_feedback_updated_v6.go +++ b/api_event_callback_v2_application_application_feedback_updated_v6.go @@ -47,3 +47,15 @@ type EventV2ApplicationApplicationFeedbackUpdatedV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ApplicationApplicationFeedbackUpdatedV6Resp ... +type EventV2ApplicationApplicationFeedbackUpdatedV6Resp struct { +} + +// eventV2ApplicationApplicationFeedbackUpdatedV6Resp ... +type eventV2ApplicationApplicationFeedbackUpdatedV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationFeedbackUpdatedV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_application_visibility_added_v6.go b/api_event_callback_v2_application_application_visibility_added_v6.go index 5d15a0fb..3f62b5bb 100644 --- a/api_event_callback_v2_application_application_visibility_added_v6.go +++ b/api_event_callback_v2_application_application_visibility_added_v6.go @@ -43,8 +43,20 @@ type EventV2ApplicationApplicationVisibilityAddedV6 struct { UserID *EventV2ApplicationApplicationVisibilityAddedV6UserID `json:"user_id,omitempty"` // 用户 ID } +// EventV2ApplicationApplicationVisibilityAddedV6Resp ... +type EventV2ApplicationApplicationVisibilityAddedV6Resp struct { +} + // EventV2ApplicationApplicationVisibilityAddedV6UserID ... type EventV2ApplicationApplicationVisibilityAddedV6UserID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open_id, 了解不同用户 ID 类型参考[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) UnionID string `json:"union_id,omitempty"` // 用户的 union_id, 了解不同用户 ID 类型参考[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) } + +// eventV2ApplicationApplicationVisibilityAddedV6Resp ... +type eventV2ApplicationApplicationVisibilityAddedV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationApplicationVisibilityAddedV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_application_bot_menu_v6.go b/api_event_callback_v2_application_bot_menu_v6.go index f85f094b..3ecde8b2 100644 --- a/api_event_callback_v2_application_bot_menu_v6.go +++ b/api_event_callback_v2_application_bot_menu_v6.go @@ -51,3 +51,15 @@ type EventV2ApplicationBotMenuV6OperatorOperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ApplicationBotMenuV6Resp ... +type EventV2ApplicationBotMenuV6Resp struct { +} + +// eventV2ApplicationBotMenuV6Resp ... +type eventV2ApplicationBotMenuV6Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApplicationBotMenuV6Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_approval_approval_updated_v4.go b/api_event_callback_v2_approval_approval_updated_v4.go index 704c1462..0810d56f 100644 --- a/api_event_callback_v2_approval_approval_updated_v4.go +++ b/api_event_callback_v2_approval_approval_updated_v4.go @@ -52,3 +52,15 @@ type EventV2ApprovalApprovalUpdatedV4Object struct { VersionID string `json:"version_id,omitempty"` // 审批定义的版本号 WidgetGroupType int64 `json:"widget_group_type,omitempty"` // 控件组类型, 返回 0 表示未使用 } + +// EventV2ApprovalApprovalUpdatedV4Resp ... +type EventV2ApprovalApprovalUpdatedV4Resp struct { +} + +// eventV2ApprovalApprovalUpdatedV4Resp ... +type eventV2ApprovalApprovalUpdatedV4Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ApprovalApprovalUpdatedV4Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_attendance_user_flow_created_v1.go b/api_event_callback_v2_attendance_user_flow_created_v1.go index 5a6dfcc4..93fc58ea 100644 --- a/api_event_callback_v2_attendance_user_flow_created_v1.go +++ b/api_event_callback_v2_attendance_user_flow_created_v1.go @@ -66,4 +66,17 @@ func (r *EventCallbackService) HandlerEventV2AttendanceUserFlowCreatedV1(f Event type EventV2AttendanceUserFlowCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2AttendanceUserFlowCreatedV1) (string, error) // EventV2AttendanceUserFlowCreatedV1 ... -type EventV2AttendanceUserFlowCreatedV1 struct{} +type EventV2AttendanceUserFlowCreatedV1 struct { +} + +// EventV2AttendanceUserFlowCreatedV1Resp ... +type EventV2AttendanceUserFlowCreatedV1Resp struct { +} + +// eventV2AttendanceUserFlowCreatedV1Resp ... +type eventV2AttendanceUserFlowCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2AttendanceUserFlowCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_attendance_user_task_updated_v1.go b/api_event_callback_v2_attendance_user_task_updated_v1.go index f0d30527..26078169 100644 --- a/api_event_callback_v2_attendance_user_task_updated_v1.go +++ b/api_event_callback_v2_attendance_user_task_updated_v1.go @@ -63,4 +63,17 @@ func (r *EventCallbackService) HandlerEventV2AttendanceUserTaskUpdatedV1(f Event type EventV2AttendanceUserTaskUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2AttendanceUserTaskUpdatedV1) (string, error) // EventV2AttendanceUserTaskUpdatedV1 ... -type EventV2AttendanceUserTaskUpdatedV1 struct{} +type EventV2AttendanceUserTaskUpdatedV1 struct { +} + +// EventV2AttendanceUserTaskUpdatedV1Resp ... +type EventV2AttendanceUserTaskUpdatedV1Resp struct { +} + +// eventV2AttendanceUserTaskUpdatedV1Resp ... +type eventV2AttendanceUserTaskUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2AttendanceUserTaskUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_calendar_calendar_acl_created_v4.go b/api_event_callback_v2_calendar_calendar_acl_created_v4.go index a6706141..e284de66 100644 --- a/api_event_callback_v2_calendar_calendar_acl_created_v4.go +++ b/api_event_callback_v2_calendar_calendar_acl_created_v4.go @@ -42,6 +42,10 @@ type EventV2CalendarCalendarACLCreatedV4 struct { UserIDList []*EventV2CalendarCalendarACLCreatedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。 } +// EventV2CalendarCalendarACLCreatedV4Resp ... +type EventV2CalendarCalendarACLCreatedV4Resp struct { +} + // EventV2CalendarCalendarACLCreatedV4Scope ... type EventV2CalendarCalendarACLCreatedV4Scope struct { Type string `json:"type,omitempty"` // 权限生效范围的类型。可选值有: 用户 @@ -61,3 +65,11 @@ type EventV2CalendarCalendarACLCreatedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } + +// eventV2CalendarCalendarACLCreatedV4Resp ... +type eventV2CalendarCalendarACLCreatedV4Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CalendarCalendarACLCreatedV4Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go b/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go index 78e9b7e9..b3ca0d8f 100644 --- a/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go +++ b/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go @@ -42,6 +42,10 @@ type EventV2CalendarCalendarACLDeletedV4 struct { UserIDList []*EventV2CalendarCalendarACLDeletedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。 } +// EventV2CalendarCalendarACLDeletedV4Resp ... +type EventV2CalendarCalendarACLDeletedV4Resp struct { +} + // EventV2CalendarCalendarACLDeletedV4Scope ... type EventV2CalendarCalendarACLDeletedV4Scope struct { Type string `json:"type,omitempty"` // 权限生效范围的类型。可选值有: 用户 @@ -61,3 +65,11 @@ type EventV2CalendarCalendarACLDeletedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } + +// eventV2CalendarCalendarACLDeletedV4Resp ... +type eventV2CalendarCalendarACLDeletedV4Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CalendarCalendarACLDeletedV4Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_calendar_calendar_changed_v4.go b/api_event_callback_v2_calendar_calendar_changed_v4.go index 69192fdc..dc62be41 100644 --- a/api_event_callback_v2_calendar_calendar_changed_v4.go +++ b/api_event_callback_v2_calendar_calendar_changed_v4.go @@ -40,9 +40,21 @@ type EventV2CalendarCalendarChangedV4 struct { UserIDList []*EventV2CalendarCalendarChangedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。关于用户不同 ID 的介绍, 参见[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) } +// EventV2CalendarCalendarChangedV4Resp ... +type EventV2CalendarCalendarChangedV4Resp struct { +} + // EventV2CalendarCalendarChangedV4UserID ... type EventV2CalendarCalendarChangedV4UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union_id。 UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } + +// eventV2CalendarCalendarChangedV4Resp ... +type eventV2CalendarCalendarChangedV4Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CalendarCalendarChangedV4Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_calendar_calendar_event_changed_v4.go b/api_event_callback_v2_calendar_calendar_event_changed_v4.go index 6ff0c89b..e8ada6f4 100644 --- a/api_event_callback_v2_calendar_calendar_event_changed_v4.go +++ b/api_event_callback_v2_calendar_calendar_event_changed_v4.go @@ -47,6 +47,10 @@ type EventV2CalendarCalendarEventChangedV4 struct { RsvpInfos []*EventV2CalendarCalendarEventChangedV4RsvpInfo `json:"rsvp_infos,omitempty"` // RSVP 变更详情, 即日程参与人的回复状态。注意: 该参数仅包含用户类型参与人的变更详情。- 该参数在灰度测试阶段, 如需使用请咨询你的商务对接人或[技术支持](https://applink.feishu.cn/TLJpeNdW)。 } +// EventV2CalendarCalendarEventChangedV4Resp ... +type EventV2CalendarCalendarEventChangedV4Resp struct { +} + // EventV2CalendarCalendarEventChangedV4RsvpInfo ... type EventV2CalendarCalendarEventChangedV4RsvpInfo struct { FromUserID *EventV2CalendarCalendarEventChangedV4RsvpInfoFromUserID `json:"from_user_id,omitempty"` // 用户类型参与人的用户 ID。 @@ -66,3 +70,11 @@ type EventV2CalendarCalendarEventChangedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } + +// eventV2CalendarCalendarEventChangedV4Resp ... +type eventV2CalendarCalendarEventChangedV4Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CalendarCalendarEventChangedV4Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_custom_attr_event_updated_v3.go b/api_event_callback_v2_contact_custom_attr_event_updated_v3.go index 047f7b45..96ebd0f0 100644 --- a/api_event_callback_v2_contact_custom_attr_event_updated_v3.go +++ b/api_event_callback_v2_contact_custom_attr_event_updated_v3.go @@ -52,3 +52,15 @@ type EventV2ContactCustomAttrEventUpdatedV3OldObject struct { ContactFieldKey []string `json:"contact_field_key,omitempty"` // 通讯录字段键值 AllowOpenQuery bool `json:"allow_open_query,omitempty"` // 开关是否打开 } + +// EventV2ContactCustomAttrEventUpdatedV3Resp ... +type EventV2ContactCustomAttrEventUpdatedV3Resp struct { +} + +// eventV2ContactCustomAttrEventUpdatedV3Resp ... +type eventV2ContactCustomAttrEventUpdatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactCustomAttrEventUpdatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_department_created_v3.go b/api_event_callback_v2_contact_department_created_v3.go index 6a260eb5..3df129a7 100644 --- a/api_event_callback_v2_contact_department_created_v3.go +++ b/api_event_callback_v2_contact_department_created_v3.go @@ -72,3 +72,15 @@ type EventV2ContactDepartmentCreatedV3ObjectLeader struct { type EventV2ContactDepartmentCreatedV3ObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } + +// EventV2ContactDepartmentCreatedV3Resp ... +type EventV2ContactDepartmentCreatedV3Resp struct { +} + +// eventV2ContactDepartmentCreatedV3Resp ... +type eventV2ContactDepartmentCreatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactDepartmentCreatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_department_deleted_v3.go b/api_event_callback_v2_contact_department_deleted_v3.go index 96af1995..5a6f9fc2 100644 --- a/api_event_callback_v2_contact_department_deleted_v3.go +++ b/api_event_callback_v2_contact_department_deleted_v3.go @@ -84,3 +84,15 @@ type EventV2ContactDepartmentDeletedV3OldObject struct { type EventV2ContactDepartmentDeletedV3OldObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } + +// EventV2ContactDepartmentDeletedV3Resp ... +type EventV2ContactDepartmentDeletedV3Resp struct { +} + +// eventV2ContactDepartmentDeletedV3Resp ... +type eventV2ContactDepartmentDeletedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactDepartmentDeletedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_department_updated_v3.go b/api_event_callback_v2_contact_department_updated_v3.go index bc4fa5a1..54c11181 100644 --- a/api_event_callback_v2_contact_department_updated_v3.go +++ b/api_event_callback_v2_contact_department_updated_v3.go @@ -108,3 +108,15 @@ type EventV2ContactDepartmentUpdatedV3OldObjectLeader struct { type EventV2ContactDepartmentUpdatedV3OldObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } + +// EventV2ContactDepartmentUpdatedV3Resp ... +type EventV2ContactDepartmentUpdatedV3Resp struct { +} + +// eventV2ContactDepartmentUpdatedV3Resp ... +type eventV2ContactDepartmentUpdatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactDepartmentUpdatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_employee_type_enum_actived_v3.go b/api_event_callback_v2_contact_employee_type_enum_actived_v3.go index 932b5a9c..951d7b90 100644 --- a/api_event_callback_v2_contact_employee_type_enum_actived_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_actived_v3.go @@ -72,3 +72,15 @@ type EventV2ContactEmployeeTypeEnumActivedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } + +// EventV2ContactEmployeeTypeEnumActivedV3Resp ... +type EventV2ContactEmployeeTypeEnumActivedV3Resp struct { +} + +// eventV2ContactEmployeeTypeEnumActivedV3Resp ... +type eventV2ContactEmployeeTypeEnumActivedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactEmployeeTypeEnumActivedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_employee_type_enum_created_v3.go b/api_event_callback_v2_contact_employee_type_enum_created_v3.go index 424f3479..0182c779 100644 --- a/api_event_callback_v2_contact_employee_type_enum_created_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_created_v3.go @@ -55,3 +55,15 @@ type EventV2ContactEmployeeTypeEnumCreatedV3NewEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } + +// EventV2ContactEmployeeTypeEnumCreatedV3Resp ... +type EventV2ContactEmployeeTypeEnumCreatedV3Resp struct { +} + +// eventV2ContactEmployeeTypeEnumCreatedV3Resp ... +type eventV2ContactEmployeeTypeEnumCreatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactEmployeeTypeEnumCreatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go b/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go index 1ccd4455..5369d0a2 100644 --- a/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go @@ -72,3 +72,15 @@ type EventV2ContactEmployeeTypeEnumDeactivatedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } + +// EventV2ContactEmployeeTypeEnumDeactivatedV3Resp ... +type EventV2ContactEmployeeTypeEnumDeactivatedV3Resp struct { +} + +// eventV2ContactEmployeeTypeEnumDeactivatedV3Resp ... +type eventV2ContactEmployeeTypeEnumDeactivatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactEmployeeTypeEnumDeactivatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go b/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go index 1429e99b..9c988c9b 100644 --- a/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go @@ -55,3 +55,15 @@ type EventV2ContactEmployeeTypeEnumDeletedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } + +// EventV2ContactEmployeeTypeEnumDeletedV3Resp ... +type EventV2ContactEmployeeTypeEnumDeletedV3Resp struct { +} + +// eventV2ContactEmployeeTypeEnumDeletedV3Resp ... +type eventV2ContactEmployeeTypeEnumDeletedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactEmployeeTypeEnumDeletedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_employee_type_enum_updated_v3.go b/api_event_callback_v2_contact_employee_type_enum_updated_v3.go index 462d64db..a7c2c04d 100644 --- a/api_event_callback_v2_contact_employee_type_enum_updated_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_updated_v3.go @@ -72,3 +72,15 @@ type EventV2ContactEmployeeTypeEnumUpdatedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } + +// EventV2ContactEmployeeTypeEnumUpdatedV3Resp ... +type EventV2ContactEmployeeTypeEnumUpdatedV3Resp struct { +} + +// eventV2ContactEmployeeTypeEnumUpdatedV3Resp ... +type eventV2ContactEmployeeTypeEnumUpdatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactEmployeeTypeEnumUpdatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_scope_updated_v3.go b/api_event_callback_v2_contact_scope_updated_v3.go index 494c01a3..70e335bf 100644 --- a/api_event_callback_v2_contact_scope_updated_v3.go +++ b/api_event_callback_v2_contact_scope_updated_v3.go @@ -402,3 +402,15 @@ type EventV2ContactScopeUpdatedV3RemovedUserStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } + +// EventV2ContactScopeUpdatedV3Resp ... +type EventV2ContactScopeUpdatedV3Resp struct { +} + +// eventV2ContactScopeUpdatedV3Resp ... +type eventV2ContactScopeUpdatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactScopeUpdatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_user_created_v3.go b/api_event_callback_v2_contact_user_created_v3.go index 42b13595..080d373d 100644 --- a/api_event_callback_v2_contact_user_created_v3.go +++ b/api_event_callback_v2_contact_user_created_v3.go @@ -121,3 +121,15 @@ type EventV2ContactUserCreatedV3ObjectStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } + +// EventV2ContactUserCreatedV3Resp ... +type EventV2ContactUserCreatedV3Resp struct { +} + +// eventV2ContactUserCreatedV3Resp ... +type eventV2ContactUserCreatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactUserCreatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_user_deleted_v3.go b/api_event_callback_v2_contact_user_deleted_v3.go index eca065f3..7054aa1c 100644 --- a/api_event_callback_v2_contact_user_deleted_v3.go +++ b/api_event_callback_v2_contact_user_deleted_v3.go @@ -128,3 +128,15 @@ type EventV2ContactUserDeletedV3OldObject struct { DepartmentIDs []string `json:"department_ids,omitempty"` // 用户所属部门的 ID 列表。部门 ID 类型为open_department_id, 了解部门 ID 可参见[部门 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)。字段权限要求(满足任一): 以应用身份读取通讯录获取用户组织架构信息以应用身份访问通讯录读取通讯录 OpenID string `json:"open_id,omitempty"` // 用户的 open_id, 应用内用户的唯一标识。不同用户 ID 的说明参见 [用户相关的 ID 概念](https://open.feishu.cn/document/home/user-identity-introduction/introduction)。 } + +// EventV2ContactUserDeletedV3Resp ... +type EventV2ContactUserDeletedV3Resp struct { +} + +// eventV2ContactUserDeletedV3Resp ... +type eventV2ContactUserDeletedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactUserDeletedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_contact_user_updated_v3.go b/api_event_callback_v2_contact_user_updated_v3.go index 062eceeb..c1c8beda 100644 --- a/api_event_callback_v2_contact_user_updated_v3.go +++ b/api_event_callback_v2_contact_user_updated_v3.go @@ -203,3 +203,15 @@ type EventV2ContactUserUpdatedV3OldObjectStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } + +// EventV2ContactUserUpdatedV3Resp ... +type EventV2ContactUserUpdatedV3Resp struct { +} + +// eventV2ContactUserUpdatedV3Resp ... +type eventV2ContactUserUpdatedV3Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ContactUserUpdatedV3Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_contract_created_v1.go b/api_event_callback_v2_corehr_contract_created_v1.go index d718d040..66643936 100644 --- a/api_event_callback_v2_corehr_contract_created_v1.go +++ b/api_event_callback_v2_corehr_contract_created_v1.go @@ -36,3 +36,15 @@ type EventV2CorehrContractCreatedV1Handler func(ctx context.Context, cli *Lark, type EventV2CorehrContractCreatedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 该合同详细信息可通过[【合同信息查询接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/get)获取 } + +// EventV2CorehrContractCreatedV1Resp ... +type EventV2CorehrContractCreatedV1Resp struct { +} + +// eventV2CorehrContractCreatedV1Resp ... +type eventV2CorehrContractCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrContractCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_contract_deleted_v1.go b/api_event_callback_v2_corehr_contract_deleted_v1.go index ff632393..4d98769e 100644 --- a/api_event_callback_v2_corehr_contract_deleted_v1.go +++ b/api_event_callback_v2_corehr_contract_deleted_v1.go @@ -36,3 +36,15 @@ type EventV2CorehrContractDeletedV1Handler func(ctx context.Context, cli *Lark, type EventV2CorehrContractDeletedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 删除后无法通过接口查询到数据 } + +// EventV2CorehrContractDeletedV1Resp ... +type EventV2CorehrContractDeletedV1Resp struct { +} + +// eventV2CorehrContractDeletedV1Resp ... +type eventV2CorehrContractDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrContractDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_contract_updated_v1.go b/api_event_callback_v2_corehr_contract_updated_v1.go index 6f55ced0..9c653752 100644 --- a/api_event_callback_v2_corehr_contract_updated_v1.go +++ b/api_event_callback_v2_corehr_contract_updated_v1.go @@ -36,3 +36,15 @@ type EventV2CorehrContractUpdatedV1Handler func(ctx context.Context, cli *Lark, type EventV2CorehrContractUpdatedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 该合同详细信息可通过[【合同信息查询接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/get)获取 } + +// EventV2CorehrContractUpdatedV1Resp ... +type EventV2CorehrContractUpdatedV1Resp struct { +} + +// eventV2CorehrContractUpdatedV1Resp ... +type eventV2CorehrContractUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrContractUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_department_created_v1.go b/api_event_callback_v2_corehr_department_created_v1.go index d6a95b50..498db0bf 100644 --- a/api_event_callback_v2_corehr_department_created_v1.go +++ b/api_event_callback_v2_corehr_department_created_v1.go @@ -42,3 +42,15 @@ type EventV2CorehrDepartmentCreatedV1Handler func(ctx context.Context, cli *Lark type EventV2CorehrDepartmentCreatedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 新建部门的 ID } + +// EventV2CorehrDepartmentCreatedV1Resp ... +type EventV2CorehrDepartmentCreatedV1Resp struct { +} + +// eventV2CorehrDepartmentCreatedV1Resp ... +type eventV2CorehrDepartmentCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrDepartmentCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_department_deleted_v1.go b/api_event_callback_v2_corehr_department_deleted_v1.go index 82b94102..ba66e598 100644 --- a/api_event_callback_v2_corehr_department_deleted_v1.go +++ b/api_event_callback_v2_corehr_department_deleted_v1.go @@ -39,3 +39,15 @@ type EventV2CorehrDepartmentDeletedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 被删除部门的 ID Code string `json:"code,omitempty"` // 部门编码 } + +// EventV2CorehrDepartmentDeletedV1Resp ... +type EventV2CorehrDepartmentDeletedV1Resp struct { +} + +// eventV2CorehrDepartmentDeletedV1Resp ... +type eventV2CorehrDepartmentDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrDepartmentDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_department_updated_v1.go b/api_event_callback_v2_corehr_department_updated_v1.go index c0f075f7..e1d1fb23 100644 --- a/api_event_callback_v2_corehr_department_updated_v1.go +++ b/api_event_callback_v2_corehr_department_updated_v1.go @@ -45,3 +45,15 @@ type EventV2CorehrDepartmentUpdatedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 被更新部门的 ID FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段 } + +// EventV2CorehrDepartmentUpdatedV1Resp ... +type EventV2CorehrDepartmentUpdatedV1Resp struct { +} + +// eventV2CorehrDepartmentUpdatedV1Resp ... +type eventV2CorehrDepartmentUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrDepartmentUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_employment_converted_v1.go b/api_event_callback_v2_corehr_employment_converted_v1.go index 43c00cdc..8dd0d5d2 100644 --- a/api_event_callback_v2_corehr_employment_converted_v1.go +++ b/api_event_callback_v2_corehr_employment_converted_v1.go @@ -36,3 +36,15 @@ type EventV2CorehrEmploymentConvertedV1Handler func(ctx context.Context, cli *La type EventV2CorehrEmploymentConvertedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 雇佣ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 } + +// EventV2CorehrEmploymentConvertedV1Resp ... +type EventV2CorehrEmploymentConvertedV1Resp struct { +} + +// eventV2CorehrEmploymentConvertedV1Resp ... +type eventV2CorehrEmploymentConvertedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrEmploymentConvertedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_employment_created_v1.go b/api_event_callback_v2_corehr_employment_created_v1.go index f0e7bec3..6a37fabb 100644 --- a/api_event_callback_v2_corehr_employment_created_v1.go +++ b/api_event_callback_v2_corehr_employment_created_v1.go @@ -43,9 +43,21 @@ type EventV2CorehrEmploymentCreatedV1 struct { TargetUserID *EventV2CorehrEmploymentCreatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID } +// EventV2CorehrEmploymentCreatedV1Resp ... +type EventV2CorehrEmploymentCreatedV1Resp struct { +} + // EventV2CorehrEmploymentCreatedV1TargetUserID ... type EventV2CorehrEmploymentCreatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrEmploymentCreatedV1Resp ... +type eventV2CorehrEmploymentCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrEmploymentCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_employment_deleted_v1.go b/api_event_callback_v2_corehr_employment_deleted_v1.go index dbee0b64..a33ab224 100644 --- a/api_event_callback_v2_corehr_employment_deleted_v1.go +++ b/api_event_callback_v2_corehr_employment_deleted_v1.go @@ -38,9 +38,21 @@ type EventV2CorehrEmploymentDeletedV1 struct { TargetUserID *EventV2CorehrEmploymentDeletedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID } +// EventV2CorehrEmploymentDeletedV1Resp ... +type EventV2CorehrEmploymentDeletedV1Resp struct { +} + // EventV2CorehrEmploymentDeletedV1TargetUserID ... type EventV2CorehrEmploymentDeletedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrEmploymentDeletedV1Resp ... +type eventV2CorehrEmploymentDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrEmploymentDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_employment_resigned_v1.go b/api_event_callback_v2_corehr_employment_resigned_v1.go index c7e312fc..955c4737 100644 --- a/api_event_callback_v2_corehr_employment_resigned_v1.go +++ b/api_event_callback_v2_corehr_employment_resigned_v1.go @@ -39,3 +39,15 @@ type EventV2CorehrEmploymentResignedV1Handler func(ctx context.Context, cli *Lar type EventV2CorehrEmploymentResignedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 离职员工雇佣ID, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取员工信息。 } + +// EventV2CorehrEmploymentResignedV1Resp ... +type EventV2CorehrEmploymentResignedV1Resp struct { +} + +// eventV2CorehrEmploymentResignedV1Resp ... +type eventV2CorehrEmploymentResignedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrEmploymentResignedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_employment_updated_v1.go b/api_event_callback_v2_corehr_employment_updated_v1.go index ba90af13..672a2877 100644 --- a/api_event_callback_v2_corehr_employment_updated_v1.go +++ b/api_event_callback_v2_corehr_employment_updated_v1.go @@ -45,9 +45,21 @@ type EventV2CorehrEmploymentUpdatedV1 struct { FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段 } +// EventV2CorehrEmploymentUpdatedV1Resp ... +type EventV2CorehrEmploymentUpdatedV1Resp struct { +} + // EventV2CorehrEmploymentUpdatedV1TargetUserID ... type EventV2CorehrEmploymentUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrEmploymentUpdatedV1Resp ... +type eventV2CorehrEmploymentUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrEmploymentUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_change_updated_v1.go b/api_event_callback_v2_corehr_job_change_updated_v1.go index 80e5ae6b..d6f6f87e 100644 --- a/api_event_callback_v2_corehr_job_change_updated_v1.go +++ b/api_event_callback_v2_corehr_job_change_updated_v1.go @@ -48,9 +48,21 @@ type EventV2CorehrJobChangeUpdatedV1 struct { TransferKey string `json:"transfer_key,omitempty"` // 异动记录标识符 } +// EventV2CorehrJobChangeUpdatedV1Resp ... +type EventV2CorehrJobChangeUpdatedV1Resp struct { +} + // EventV2CorehrJobChangeUpdatedV1TargetUserID ... type EventV2CorehrJobChangeUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrJobChangeUpdatedV1Resp ... +type eventV2CorehrJobChangeUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobChangeUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_created_v1.go b/api_event_callback_v2_corehr_job_created_v1.go index 2e1d4125..0001dbf6 100644 --- a/api_event_callback_v2_corehr_job_created_v1.go +++ b/api_event_callback_v2_corehr_job_created_v1.go @@ -40,3 +40,15 @@ type EventV2CorehrJobCreatedV1Handler func(ctx context.Context, cli *Lark, schem type EventV2CorehrJobCreatedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息 } + +// EventV2CorehrJobCreatedV1Resp ... +type EventV2CorehrJobCreatedV1Resp struct { +} + +// eventV2CorehrJobCreatedV1Resp ... +type eventV2CorehrJobCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_data_changed_v1.go b/api_event_callback_v2_corehr_job_data_changed_v1.go index fa0c3d7e..576b2a01 100644 --- a/api_event_callback_v2_corehr_job_data_changed_v1.go +++ b/api_event_callback_v2_corehr_job_data_changed_v1.go @@ -42,9 +42,21 @@ type EventV2CorehrJobDataChangedV1 struct { JobChangeID string `json:"job_change_id,omitempty"` // 员工异动 ID, 可通过[【搜索异动信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search)接口获取 } +// EventV2CorehrJobDataChangedV1Resp ... +type EventV2CorehrJobDataChangedV1Resp struct { +} + // EventV2CorehrJobDataChangedV1TargetUserID ... type EventV2CorehrJobDataChangedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrJobDataChangedV1Resp ... +type eventV2CorehrJobDataChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobDataChangedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_data_employed_v1.go b/api_event_callback_v2_corehr_job_data_employed_v1.go index f8635783..b85db0a9 100644 --- a/api_event_callback_v2_corehr_job_data_employed_v1.go +++ b/api_event_callback_v2_corehr_job_data_employed_v1.go @@ -44,9 +44,21 @@ type EventV2CorehrJobDataEmployedV1 struct { TargetUserID *EventV2CorehrJobDataEmployedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID(备注: 入职后开通飞书账号成功, 会生成飞书通讯录相关ID, 但由于开通过程是异步, 本事件不保证一定返回, 如未返回, 说明飞书账号开通失败, 业务需兼容处理) } +// EventV2CorehrJobDataEmployedV1Resp ... +type EventV2CorehrJobDataEmployedV1Resp struct { +} + // EventV2CorehrJobDataEmployedV1TargetUserID ... type EventV2CorehrJobDataEmployedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrJobDataEmployedV1Resp ... +type eventV2CorehrJobDataEmployedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobDataEmployedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_deleted_v1.go b/api_event_callback_v2_corehr_job_deleted_v1.go index 22983ffc..f4a23cbb 100644 --- a/api_event_callback_v2_corehr_job_deleted_v1.go +++ b/api_event_callback_v2_corehr_job_deleted_v1.go @@ -38,3 +38,15 @@ type EventV2CorehrJobDeletedV1Handler func(ctx context.Context, cli *Lark, schem type EventV2CorehrJobDeletedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID } + +// EventV2CorehrJobDeletedV1Resp ... +type EventV2CorehrJobDeletedV1Resp struct { +} + +// eventV2CorehrJobDeletedV1Resp ... +type eventV2CorehrJobDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_job_updated_v1.go b/api_event_callback_v2_corehr_job_updated_v1.go index 03420d92..b9526bcb 100644 --- a/api_event_callback_v2_corehr_job_updated_v1.go +++ b/api_event_callback_v2_corehr_job_updated_v1.go @@ -41,3 +41,15 @@ type EventV2CorehrJobUpdatedV1Handler func(ctx context.Context, cli *Lark, schem type EventV2CorehrJobUpdatedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息 } + +// EventV2CorehrJobUpdatedV1Resp ... +type EventV2CorehrJobUpdatedV1Resp struct { +} + +// eventV2CorehrJobUpdatedV1Resp ... +type eventV2CorehrJobUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrJobUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_offboarding_updated_v1.go b/api_event_callback_v2_corehr_offboarding_updated_v1.go index a79de1a5..f2129767 100644 --- a/api_event_callback_v2_corehr_offboarding_updated_v1.go +++ b/api_event_callback_v2_corehr_offboarding_updated_v1.go @@ -44,9 +44,21 @@ type EventV2CorehrOffboardingUpdatedV1 struct { Status int64 `json:"status,omitempty"` // 离职状态可选值有: 离职发起/审批中已撤销已拒绝审批通过已生效(生效日期后自动生效) } +// EventV2CorehrOffboardingUpdatedV1Resp ... +type EventV2CorehrOffboardingUpdatedV1Resp struct { +} + // EventV2CorehrOffboardingUpdatedV1TargetUserID ... type EventV2CorehrOffboardingUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2CorehrOffboardingUpdatedV1Resp ... +type eventV2CorehrOffboardingUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrOffboardingUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go b/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go index ff725133..e655dd4c 100644 --- a/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go +++ b/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go @@ -44,3 +44,15 @@ type EventV2CorehrOrgRoleAuthorizationUpdatedV1ManagementScope struct { ManagementDimension string `json:"management_dimension,omitempty"` // 管理维度可选值有: department: 部门- work_location: 工作地点- company: 公司- social_security_location: 社保城市 ObjID string `json:"obj_id,omitempty"` // 被授权部门/工作地点/公司/社保城市 ID } + +// EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp ... +type EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp struct { +} + +// eventV2CorehrOrgRoleAuthorizationUpdatedV1Resp ... +type eventV2CorehrOrgRoleAuthorizationUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_person_created_v1.go b/api_event_callback_v2_corehr_person_created_v1.go index 19495c9d..877f1905 100644 --- a/api_event_callback_v2_corehr_person_created_v1.go +++ b/api_event_callback_v2_corehr_person_created_v1.go @@ -41,3 +41,15 @@ type EventV2CorehrPersonCreatedV1Handler func(ctx context.Context, cli *Lark, sc type EventV2CorehrPersonCreatedV1 struct { PersonID string `json:"person_id,omitempty"` // 人员ID } + +// EventV2CorehrPersonCreatedV1Resp ... +type EventV2CorehrPersonCreatedV1Resp struct { +} + +// eventV2CorehrPersonCreatedV1Resp ... +type eventV2CorehrPersonCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrPersonCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_person_deleted_v1.go b/api_event_callback_v2_corehr_person_deleted_v1.go index 9aba63fa..a110e882 100644 --- a/api_event_callback_v2_corehr_person_deleted_v1.go +++ b/api_event_callback_v2_corehr_person_deleted_v1.go @@ -36,3 +36,15 @@ type EventV2CorehrPersonDeletedV1Handler func(ctx context.Context, cli *Lark, sc type EventV2CorehrPersonDeletedV1 struct { PersonID string `json:"person_id,omitempty"` // 人员ID } + +// EventV2CorehrPersonDeletedV1Resp ... +type EventV2CorehrPersonDeletedV1Resp struct { +} + +// eventV2CorehrPersonDeletedV1Resp ... +type eventV2CorehrPersonDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrPersonDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_person_updated_v1.go b/api_event_callback_v2_corehr_person_updated_v1.go index 2a2fda9a..01d1cff1 100644 --- a/api_event_callback_v2_corehr_person_updated_v1.go +++ b/api_event_callback_v2_corehr_person_updated_v1.go @@ -44,3 +44,15 @@ type EventV2CorehrPersonUpdatedV1 struct { PersonID string `json:"person_id,omitempty"` // 被更新个人信息的 ID FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段, 若部分字段变更无需接受事件消息, 可根据该字段进行事件消息过滤 } + +// EventV2CorehrPersonUpdatedV1Resp ... +type EventV2CorehrPersonUpdatedV1Resp struct { +} + +// eventV2CorehrPersonUpdatedV1Resp ... +type eventV2CorehrPersonUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrPersonUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_pre_hire_updated_v1.go b/api_event_callback_v2_corehr_pre_hire_updated_v1.go index 64da06fe..aec6e438 100644 --- a/api_event_callback_v2_corehr_pre_hire_updated_v1.go +++ b/api_event_callback_v2_corehr_pre_hire_updated_v1.go @@ -43,3 +43,15 @@ type EventV2CorehrPreHireUpdatedV1 struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 ID, 可通过[【搜索待入职人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取更详细信息 FieldChanges []string `json:"field_changes,omitempty"` // 变更的字段。由于历史原因, 部分字段(例如个人信息)变更会发送为‘wk_updated_at’字段, 不会显示真实变更字段, 需要通过[【搜索待入职人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取更详细信息。 } + +// EventV2CorehrPreHireUpdatedV1Resp ... +type EventV2CorehrPreHireUpdatedV1Resp struct { +} + +// eventV2CorehrPreHireUpdatedV1Resp ... +type eventV2CorehrPreHireUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrPreHireUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_probation_updated_v2.go b/api_event_callback_v2_corehr_probation_updated_v2.go index 4dbf65d0..a5031666 100644 --- a/api_event_callback_v2_corehr_probation_updated_v2.go +++ b/api_event_callback_v2_corehr_probation_updated_v2.go @@ -38,3 +38,15 @@ type EventV2CorehrProbationUpdatedV2 struct { ProbationStatus string `json:"probation_status,omitempty"` // 试用期状态可选值有: 审批中已拒绝待发起转正审批通过已转正已离职 ActualProbationEndDate string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期, 格式: "YYYY-MM-DD" } + +// EventV2CorehrProbationUpdatedV2Resp ... +type EventV2CorehrProbationUpdatedV2Resp struct { +} + +// eventV2CorehrProbationUpdatedV2Resp ... +type eventV2CorehrProbationUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrProbationUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_process_approver_updated_v2.go b/api_event_callback_v2_corehr_process_approver_updated_v2.go index 188f134c..c748cbd1 100644 --- a/api_event_callback_v2_corehr_process_approver_updated_v2.go +++ b/api_event_callback_v2_corehr_process_approver_updated_v2.go @@ -46,3 +46,15 @@ type EventV2CorehrProcessApproverUpdatedV2 struct { NodeID string `json:"node_id,omitempty"` // 节点id(已废弃, 请使用node_id_str字段) NodeIDStr string `json:"node_id_str,omitempty"` // 节点id } + +// EventV2CorehrProcessApproverUpdatedV2Resp ... +type EventV2CorehrProcessApproverUpdatedV2Resp struct { +} + +// eventV2CorehrProcessApproverUpdatedV2Resp ... +type eventV2CorehrProcessApproverUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrProcessApproverUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_process_cc_updated_v2.go b/api_event_callback_v2_corehr_process_cc_updated_v2.go index bd484c5c..eb9455b1 100644 --- a/api_event_callback_v2_corehr_process_cc_updated_v2.go +++ b/api_event_callback_v2_corehr_process_cc_updated_v2.go @@ -41,3 +41,15 @@ type EventV2CorehrProcessCcUpdatedV2 struct { Status int64 `json:"status,omitempty"` // 单据状态可选值有: 抄送到达 BizType string `json:"biz_type,omitempty"` // 业务类型, 详情请查看[接入指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/access-guide) 长度范围: `1` ~ `200` 字符 } + +// EventV2CorehrProcessCcUpdatedV2Resp ... +type EventV2CorehrProcessCcUpdatedV2Resp struct { +} + +// eventV2CorehrProcessCcUpdatedV2Resp ... +type eventV2CorehrProcessCcUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrProcessCcUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_process_node_updated_v2.go b/api_event_callback_v2_corehr_process_node_updated_v2.go index 7edb8bc6..0278ebb3 100644 --- a/api_event_callback_v2_corehr_process_node_updated_v2.go +++ b/api_event_callback_v2_corehr_process_node_updated_v2.go @@ -44,3 +44,15 @@ type EventV2CorehrProcessNodeUpdatedV2 struct { NodeStatus int64 `json:"node_status,omitempty"` // 节点状态可选值有: 进行中已拒绝已通过已撤回已回退已跳过已干预 BizType string `json:"biz_type,omitempty"` // 业务类型, 详情请查看[接入指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/access-guide) 长度范围: `1` ~ `200` 字符 } + +// EventV2CorehrProcessNodeUpdatedV2Resp ... +type EventV2CorehrProcessNodeUpdatedV2Resp struct { +} + +// eventV2CorehrProcessNodeUpdatedV2Resp ... +type eventV2CorehrProcessNodeUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrProcessNodeUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_corehr_process_updated_v2.go b/api_event_callback_v2_corehr_process_updated_v2.go index ee102c36..a1c44e7c 100644 --- a/api_event_callback_v2_corehr_process_updated_v2.go +++ b/api_event_callback_v2_corehr_process_updated_v2.go @@ -43,3 +43,15 @@ type EventV2CorehrProcessUpdatedV2 struct { FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义id。流程定义是流程的模板, 由流程定义可以创建流程实例。示例值: "people_7023711013443944467_7382148112896872236" Properties int64 `json:"properties,omitempty"` // 流程属性可选值有: 普通流程撤销流程更正流程 } + +// EventV2CorehrProcessUpdatedV2Resp ... +type EventV2CorehrProcessUpdatedV2Resp struct { +} + +// eventV2CorehrProcessUpdatedV2Resp ... +type eventV2CorehrProcessUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2CorehrProcessUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_bitable_field_changed_v1.go b/api_event_callback_v2_drive_file_bitable_field_changed_v1.go index e83fa2af..50d73152 100644 --- a/api_event_callback_v2_drive_file_bitable_field_changed_v1.go +++ b/api_event_callback_v2_drive_file_bitable_field_changed_v1.go @@ -153,9 +153,20 @@ type EventV2DriveFileBitableFieldChangedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2DriveFileBitableFieldChangedV1Resp ... +type EventV2DriveFileBitableFieldChangedV1Resp struct { +} + // EventV2DriveFileBitableFieldChangedV1SubscriberID ... type EventV2DriveFileBitableFieldChangedV1SubscriberID struct { UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID UserID string `json:"user_id,omitempty"` // 订阅者的 User ID OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID } + +// eventV2DriveFileBitableFieldChangedV1Resp ... +type eventV2DriveFileBitableFieldChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileBitableFieldChangedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_bitable_record_changed_v1.go b/api_event_callback_v2_drive_file_bitable_record_changed_v1.go index 762101c6..e4a516bd 100644 --- a/api_event_callback_v2_drive_file_bitable_record_changed_v1.go +++ b/api_event_callback_v2_drive_file_bitable_record_changed_v1.go @@ -121,9 +121,20 @@ type EventV2DriveFileBitableRecordChangedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2DriveFileBitableRecordChangedV1Resp ... +type EventV2DriveFileBitableRecordChangedV1Resp struct { +} + // EventV2DriveFileBitableRecordChangedV1SubscriberID ... type EventV2DriveFileBitableRecordChangedV1SubscriberID struct { UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID UserID string `json:"user_id,omitempty"` // 订阅者的 User ID OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID } + +// eventV2DriveFileBitableRecordChangedV1Resp ... +type eventV2DriveFileBitableRecordChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileBitableRecordChangedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_created_in_folder_v1.go b/api_event_callback_v2_drive_file_created_in_folder_v1.go index 005c6688..b98dd8e1 100644 --- a/api_event_callback_v2_drive_file_created_in_folder_v1.go +++ b/api_event_callback_v2_drive_file_created_in_folder_v1.go @@ -50,3 +50,21 @@ type EventV2DriveFileCreatedInFolderV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2DriveFileCreatedInFolderV1Resp ... +type EventV2DriveFileCreatedInFolderV1Resp struct { +} + +// EventV2DriveFileCreatedInFolderV1SubscriberID ... +type EventV2DriveFileCreatedInFolderV1SubscriberID struct { + UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID + UserID string `json:"user_id,omitempty"` // 订阅者的 User ID + OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID +} + +// eventV2DriveFileCreatedInFolderV1Resp ... +type eventV2DriveFileCreatedInFolderV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileCreatedInFolderV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_deleted_v1.go b/api_event_callback_v2_drive_file_deleted_v1.go index 8e7040bb..86336457 100644 --- a/api_event_callback_v2_drive_file_deleted_v1.go +++ b/api_event_callback_v2_drive_file_deleted_v1.go @@ -49,3 +49,14 @@ type EventV2DriveFileDeletedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// EventV2DriveFileDeletedV1Resp ... +type EventV2DriveFileDeletedV1Resp struct { +} + +// eventV2DriveFileDeletedV1Resp ... +type eventV2DriveFileDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileDeletedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_edit_v1.go b/api_event_callback_v2_drive_file_edit_v1.go index 0d5c077e..b3b12e82 100644 --- a/api_event_callback_v2_drive_file_edit_v1.go +++ b/api_event_callback_v2_drive_file_edit_v1.go @@ -51,9 +51,20 @@ type EventV2DriveFileEditV1OperatorIDList struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } +// EventV2DriveFileEditV1Resp ... +type EventV2DriveFileEditV1Resp struct { +} + // EventV2DriveFileEditV1SubscriberIDList ... type EventV2DriveFileEditV1SubscriberIDList struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// eventV2DriveFileEditV1Resp ... +type eventV2DriveFileEditV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileEditV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_permission_member_added_v1.go b/api_event_callback_v2_drive_file_permission_member_added_v1.go index d98f25fd..5edd2447 100644 --- a/api_event_callback_v2_drive_file_permission_member_added_v1.go +++ b/api_event_callback_v2_drive_file_permission_member_added_v1.go @@ -52,9 +52,20 @@ type EventV2DriveFilePermissionMemberAddedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } +// EventV2DriveFilePermissionMemberAddedV1Resp ... +type EventV2DriveFilePermissionMemberAddedV1Resp struct { +} + // EventV2DriveFilePermissionMemberAddedV1User ... type EventV2DriveFilePermissionMemberAddedV1User struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// eventV2DriveFilePermissionMemberAddedV1Resp ... +type eventV2DriveFilePermissionMemberAddedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFilePermissionMemberAddedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_permission_member_removed_v1.go b/api_event_callback_v2_drive_file_permission_member_removed_v1.go index 5b6daa50..245479cb 100644 --- a/api_event_callback_v2_drive_file_permission_member_removed_v1.go +++ b/api_event_callback_v2_drive_file_permission_member_removed_v1.go @@ -52,9 +52,20 @@ type EventV2DriveFilePermissionMemberRemovedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } +// EventV2DriveFilePermissionMemberRemovedV1Resp ... +type EventV2DriveFilePermissionMemberRemovedV1Resp struct { +} + // EventV2DriveFilePermissionMemberRemovedV1User ... type EventV2DriveFilePermissionMemberRemovedV1User struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// eventV2DriveFilePermissionMemberRemovedV1Resp ... +type eventV2DriveFilePermissionMemberRemovedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFilePermissionMemberRemovedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_read_v1.go b/api_event_callback_v2_drive_file_read_v1.go index bb09dd0e..a0f4b13d 100644 --- a/api_event_callback_v2_drive_file_read_v1.go +++ b/api_event_callback_v2_drive_file_read_v1.go @@ -49,3 +49,14 @@ type EventV2DriveFileReadV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// EventV2DriveFileReadV1Resp ... +type EventV2DriveFileReadV1Resp struct { +} + +// eventV2DriveFileReadV1Resp ... +type eventV2DriveFileReadV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileReadV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_title_updated_v1.go b/api_event_callback_v2_drive_file_title_updated_v1.go index 7de922ff..db47a9c1 100644 --- a/api_event_callback_v2_drive_file_title_updated_v1.go +++ b/api_event_callback_v2_drive_file_title_updated_v1.go @@ -49,3 +49,14 @@ type EventV2DriveFileTitleUpdatedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// EventV2DriveFileTitleUpdatedV1Resp ... +type EventV2DriveFileTitleUpdatedV1Resp struct { +} + +// eventV2DriveFileTitleUpdatedV1Resp ... +type eventV2DriveFileTitleUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileTitleUpdatedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_drive_file_trashed_v1.go b/api_event_callback_v2_drive_file_trashed_v1.go index c93baaf8..ad5d8fd6 100644 --- a/api_event_callback_v2_drive_file_trashed_v1.go +++ b/api_event_callback_v2_drive_file_trashed_v1.go @@ -49,3 +49,14 @@ type EventV2DriveFileTrashedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } + +// EventV2DriveFileTrashedV1Resp ... +type EventV2DriveFileTrashedV1Resp struct { +} + +// eventV2DriveFileTrashedV1Resp ... +type eventV2DriveFileTrashedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2DriveFileTrashedV1Resp `json:"data,omitempty"` +} diff --git a/api_event_callback_v2_elearning_course_registration_created_v2.go b/api_event_callback_v2_elearning_course_registration_created_v2.go index 90cf192b..ecd3e529 100644 --- a/api_event_callback_v2_elearning_course_registration_created_v2.go +++ b/api_event_callback_v2_elearning_course_registration_created_v2.go @@ -60,3 +60,15 @@ type EventV2ElearningCourseRegistrationCreatedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ElearningCourseRegistrationCreatedV2Resp ... +type EventV2ElearningCourseRegistrationCreatedV2Resp struct { +} + +// eventV2ElearningCourseRegistrationCreatedV2Resp ... +type eventV2ElearningCourseRegistrationCreatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ElearningCourseRegistrationCreatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_elearning_course_registration_deleted_v2.go b/api_event_callback_v2_elearning_course_registration_deleted_v2.go index 0361c564..e82f74bb 100644 --- a/api_event_callback_v2_elearning_course_registration_deleted_v2.go +++ b/api_event_callback_v2_elearning_course_registration_deleted_v2.go @@ -51,3 +51,15 @@ type EventV2ElearningCourseRegistrationDeletedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ElearningCourseRegistrationDeletedV2Resp ... +type EventV2ElearningCourseRegistrationDeletedV2Resp struct { +} + +// eventV2ElearningCourseRegistrationDeletedV2Resp ... +type eventV2ElearningCourseRegistrationDeletedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ElearningCourseRegistrationDeletedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_elearning_course_registration_updated_v2.go b/api_event_callback_v2_elearning_course_registration_updated_v2.go index 838a4474..2bc6d8e8 100644 --- a/api_event_callback_v2_elearning_course_registration_updated_v2.go +++ b/api_event_callback_v2_elearning_course_registration_updated_v2.go @@ -60,3 +60,15 @@ type EventV2ElearningCourseRegistrationUpdatedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2ElearningCourseRegistrationUpdatedV2Resp ... +type EventV2ElearningCourseRegistrationUpdatedV2Resp struct { +} + +// eventV2ElearningCourseRegistrationUpdatedV2Resp ... +type eventV2ElearningCourseRegistrationUpdatedV2Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2ElearningCourseRegistrationUpdatedV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_helpdesk_notification_approve_v1.go b/api_event_callback_v2_helpdesk_notification_approve_v1.go index 1a7bbe29..ea50b385 100644 --- a/api_event_callback_v2_helpdesk_notification_approve_v1.go +++ b/api_event_callback_v2_helpdesk_notification_approve_v1.go @@ -38,3 +38,15 @@ type EventV2HelpdeskNotificationApproveV1 struct { HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台唯一ID ApproveStatus string `json:"approve_status,omitempty"` // REJECTED(审核不通过)APPROVED(审核通过)CANCELED(取消审核)DELETED(删除审核) } + +// EventV2HelpdeskNotificationApproveV1Resp ... +type EventV2HelpdeskNotificationApproveV1Resp struct { +} + +// eventV2HelpdeskNotificationApproveV1Resp ... +type eventV2HelpdeskNotificationApproveV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HelpdeskNotificationApproveV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_helpdesk_ticket_created_v1.go b/api_event_callback_v2_helpdesk_ticket_created_v1.go index 95d1cc72..d7c744ff 100644 --- a/api_event_callback_v2_helpdesk_ticket_created_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_created_v1.go @@ -74,3 +74,15 @@ type EventV2HelpdeskTicketCreatedV1GuestID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2HelpdeskTicketCreatedV1Resp ... +type EventV2HelpdeskTicketCreatedV1Resp struct { +} + +// eventV2HelpdeskTicketCreatedV1Resp ... +type eventV2HelpdeskTicketCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HelpdeskTicketCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_helpdesk_ticket_message_created_v1.go b/api_event_callback_v2_helpdesk_ticket_message_created_v1.go index 60ce73f4..70d6912c 100644 --- a/api_event_callback_v2_helpdesk_ticket_message_created_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_message_created_v1.go @@ -55,6 +55,10 @@ type EventV2HelpdeskTicketMessageCreatedV1Content struct { ImageKey string `json:"image_key,omitempty"` // 图片ID } +// EventV2HelpdeskTicketMessageCreatedV1Resp ... +type EventV2HelpdeskTicketMessageCreatedV1Resp struct { +} + // EventV2HelpdeskTicketMessageCreatedV1SenderID ... type EventV2HelpdeskTicketMessageCreatedV1SenderID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -119,3 +123,11 @@ type EventV2HelpdeskTicketMessageCreatedV1TicketDissatisfactionReason struct { EnUs string `json:"en_us,omitempty"` // 英文描述 JaJp string `json:"ja_jp,omitempty"` // 日文描述 } + +// eventV2HelpdeskTicketMessageCreatedV1Resp ... +type eventV2HelpdeskTicketMessageCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HelpdeskTicketMessageCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_helpdesk_ticket_updated_v1.go b/api_event_callback_v2_helpdesk_ticket_updated_v1.go index 05c38c4a..fe245fe4 100644 --- a/api_event_callback_v2_helpdesk_ticket_updated_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_updated_v1.go @@ -87,3 +87,15 @@ type EventV2HelpdeskTicketUpdatedV1OldObject struct { Status int64 `json:"status,omitempty"` // ticket status UpdatedAt int64 `json:"updated_at,omitempty"` // ticket update time } + +// EventV2HelpdeskTicketUpdatedV1Resp ... +type EventV2HelpdeskTicketUpdatedV1Resp struct { +} + +// eventV2HelpdeskTicketUpdatedV1Resp ... +type eventV2HelpdeskTicketUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HelpdeskTicketUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_application_deleted_v1.go b/api_event_callback_v2_hire_application_deleted_v1.go index 93641da6..901193ce 100644 --- a/api_event_callback_v2_hire_application_deleted_v1.go +++ b/api_event_callback_v2_hire_application_deleted_v1.go @@ -40,3 +40,15 @@ type EventV2HireApplicationDeletedV1Handler func(ctx context.Context, cli *Lark, type EventV2HireApplicationDeletedV1 struct { ApplicationIDs []string `json:"application_ids,omitempty"` // 投递 ID 列表 } + +// EventV2HireApplicationDeletedV1Resp ... +type EventV2HireApplicationDeletedV1Resp struct { +} + +// eventV2HireApplicationDeletedV1Resp ... +type eventV2HireApplicationDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireApplicationDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_application_stage_changed_v1.go b/api_event_callback_v2_hire_application_stage_changed_v1.go index c4e51084..236505e4 100644 --- a/api_event_callback_v2_hire_application_stage_changed_v1.go +++ b/api_event_callback_v2_hire_application_stage_changed_v1.go @@ -39,3 +39,15 @@ type EventV2HireApplicationStageChangedV1 struct { TargetStageID string `json:"target_stage_id,omitempty"` // 投递阶段转移后的阶段 ID, 详情请参考[获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) UpdateTime int64 `json:"update_time,omitempty"` // 投递阶段变更时间戳(单位: 毫秒) } + +// EventV2HireApplicationStageChangedV1Resp ... +type EventV2HireApplicationStageChangedV1Resp struct { +} + +// eventV2HireApplicationStageChangedV1Resp ... +type eventV2HireApplicationStageChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireApplicationStageChangedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_eco_account_created_v1.go b/api_event_callback_v2_hire_eco_account_created_v1.go index e0893efc..2fffae91 100644 --- a/api_event_callback_v2_hire_eco_account_created_v1.go +++ b/api_event_callback_v2_hire_eco_account_created_v1.go @@ -46,3 +46,15 @@ type EventV2HireEcoAccountCreatedV1CustomField struct { Key string `json:"key,omitempty"` // 自定义字段的标识。通过[创建账号自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_account_custom_field/create)接口推送到招聘系统内 Value string `json:"value,omitempty"` // 客户填写的自定义字段的值 } + +// EventV2HireEcoAccountCreatedV1Resp ... +type EventV2HireEcoAccountCreatedV1Resp struct { +} + +// eventV2HireEcoAccountCreatedV1Resp ... +type eventV2HireEcoAccountCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEcoAccountCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_eco_background_check_canceled_v1.go b/api_event_callback_v2_hire_eco_background_check_canceled_v1.go index bf8e1465..0e232804 100644 --- a/api_event_callback_v2_hire_eco_background_check_canceled_v1.go +++ b/api_event_callback_v2_hire_eco_background_check_canceled_v1.go @@ -37,3 +37,15 @@ type EventV2HireEcoBackgroundCheckCanceledV1 struct { BackgroundCheckID string `json:"background_check_id,omitempty"` // 背调 ID, 招聘系统内唯一, 可通过[创建背调](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/events/created)事件获取 TerminationReason string `json:"termination_reason,omitempty"` // 终止原因 } + +// EventV2HireEcoBackgroundCheckCanceledV1Resp ... +type EventV2HireEcoBackgroundCheckCanceledV1Resp struct { +} + +// eventV2HireEcoBackgroundCheckCanceledV1Resp ... +type eventV2HireEcoBackgroundCheckCanceledV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEcoBackgroundCheckCanceledV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_eco_background_check_created_v1.go b/api_event_callback_v2_hire_eco_background_check_created_v1.go index fa8c1de3..f3c1bd6f 100644 --- a/api_event_callback_v2_hire_eco_background_check_created_v1.go +++ b/api_event_callback_v2_hire_eco_background_check_created_v1.go @@ -77,3 +77,15 @@ type EventV2HireEcoBackgroundCheckCreatedV1CustomField struct { Key string `json:"key,omitempty"` // 自定义字段标识, 由[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create)接口传入 Value string `json:"value,omitempty"` // 自定义字段值, 用户在发起背调时填入, 详情可参考[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create)传入的自定义字段类型 } + +// EventV2HireEcoBackgroundCheckCreatedV1Resp ... +type EventV2HireEcoBackgroundCheckCreatedV1Resp struct { +} + +// eventV2HireEcoBackgroundCheckCreatedV1Resp ... +type eventV2HireEcoBackgroundCheckCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEcoBackgroundCheckCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_eco_exam_created_v1.go b/api_event_callback_v2_hire_eco_exam_created_v1.go index 75b2a5ae..76b0a234 100644 --- a/api_event_callback_v2_hire_eco_exam_created_v1.go +++ b/api_event_callback_v2_hire_eco_exam_created_v1.go @@ -52,3 +52,15 @@ type EventV2HireEcoExamCreatedV1CandidateInfoMobile struct { Code string `json:"code,omitempty"` // 电话国家区号, 遵循国际统一标准, 可参考 [国际长途电话区号表](https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E9%95%BF%E9%80%94%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E8%A1%A8/12803495) Number string `json:"number,omitempty"` // 手机号码 } + +// EventV2HireEcoExamCreatedV1Resp ... +type EventV2HireEcoExamCreatedV1Resp struct { +} + +// eventV2HireEcoExamCreatedV1Resp ... +type eventV2HireEcoExamCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEcoExamCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go b/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go index b69566a7..32421a51 100644 --- a/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go +++ b/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go @@ -59,3 +59,15 @@ type EventV2HireEHRImportTaskForInternshipOfferImportedV1OperatorUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp ... +type EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp struct { +} + +// eventV2HireEHRImportTaskForInternshipOfferImportedV1Resp ... +type eventV2HireEHRImportTaskForInternshipOfferImportedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_ehr_import_task_imported_v1.go b/api_event_callback_v2_hire_ehr_import_task_imported_v1.go index 31847a55..eb888922 100644 --- a/api_event_callback_v2_hire_ehr_import_task_imported_v1.go +++ b/api_event_callback_v2_hire_ehr_import_task_imported_v1.go @@ -57,3 +57,15 @@ type EventV2HireEHRImportTaskImportedV1OperatorUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2HireEHRImportTaskImportedV1Resp ... +type EventV2HireEHRImportTaskImportedV1Resp struct { +} + +// eventV2HireEHRImportTaskImportedV1Resp ... +type eventV2HireEHRImportTaskImportedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireEHRImportTaskImportedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_offer_status_changed_v1.go b/api_event_callback_v2_hire_offer_status_changed_v1.go index 80993a87..7f6d8a02 100644 --- a/api_event_callback_v2_hire_offer_status_changed_v1.go +++ b/api_event_callback_v2_hire_offer_status_changed_v1.go @@ -39,3 +39,15 @@ type EventV2HireOfferStatusChangedV1Handler func(ctx context.Context, cli *Lark, type EventV2HireOfferStatusChangedV1 struct { OfferID string `json:"offer_id,omitempty"` // 发生状态变更的 OfferID, 可通过[获取 Offer 详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer/get)接口获取 Offer 详情 } + +// EventV2HireOfferStatusChangedV1Resp ... +type EventV2HireOfferStatusChangedV1Resp struct { +} + +// eventV2HireOfferStatusChangedV1Resp ... +type eventV2HireOfferStatusChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireOfferStatusChangedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_hire_referral_account_assets_update_v1.go b/api_event_callback_v2_hire_referral_account_assets_update_v1.go index da5789a9..1281aa9a 100644 --- a/api_event_callback_v2_hire_referral_account_assets_update_v1.go +++ b/api_event_callback_v2_hire_referral_account_assets_update_v1.go @@ -59,3 +59,15 @@ type EventV2HireReferralAccountAssetsUpdateV1AssetsConfirmedBonusCashBonu struct CurrencyType string `json:"currency_type,omitempty"` // 币种, 详情可查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「币种(currency)枚举定义」 Amount float64 `json:"amount,omitempty"` // 数额, 保留到小数点后两位 } + +// EventV2HireReferralAccountAssetsUpdateV1Resp ... +type EventV2HireReferralAccountAssetsUpdateV1Resp struct { +} + +// eventV2HireReferralAccountAssetsUpdateV1Resp ... +type eventV2HireReferralAccountAssetsUpdateV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2HireReferralAccountAssetsUpdateV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_disbanded_v1.go b/api_event_callback_v2_im_chat_disbanded_v1.go index a581ca81..6357c62a 100644 --- a/api_event_callback_v2_im_chat_disbanded_v1.go +++ b/api_event_callback_v2_im_chat_disbanded_v1.go @@ -49,9 +49,28 @@ type EventV2IMChatDisbandedV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatDisbandedV1I18nNames ... +type EventV2IMChatDisbandedV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatDisbandedV1OperatorID ... type EventV2IMChatDisbandedV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2IMChatDisbandedV1Resp ... +type EventV2IMChatDisbandedV1Resp struct { +} + +// eventV2IMChatDisbandedV1Resp ... +type eventV2IMChatDisbandedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatDisbandedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_member_bot_added_v1.go b/api_event_callback_v2_im_chat_member_bot_added_v1.go index da5fee16..b1f2c681 100644 --- a/api_event_callback_v2_im_chat_member_bot_added_v1.go +++ b/api_event_callback_v2_im_chat_member_bot_added_v1.go @@ -49,9 +49,28 @@ type EventV2IMChatMemberBotAddedV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatMemberBotAddedV1I18nNames ... +type EventV2IMChatMemberBotAddedV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatMemberBotAddedV1OperatorID ... type EventV2IMChatMemberBotAddedV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2IMChatMemberBotAddedV1Resp ... +type EventV2IMChatMemberBotAddedV1Resp struct { +} + +// eventV2IMChatMemberBotAddedV1Resp ... +type eventV2IMChatMemberBotAddedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatMemberBotAddedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_member_bot_deleted_v1.go b/api_event_callback_v2_im_chat_member_bot_deleted_v1.go index c15e18ac..84f895fa 100644 --- a/api_event_callback_v2_im_chat_member_bot_deleted_v1.go +++ b/api_event_callback_v2_im_chat_member_bot_deleted_v1.go @@ -46,9 +46,28 @@ type EventV2IMChatMemberBotDeletedV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatMemberBotDeletedV1I18nNames ... +type EventV2IMChatMemberBotDeletedV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatMemberBotDeletedV1OperatorID ... type EventV2IMChatMemberBotDeletedV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2IMChatMemberBotDeletedV1Resp ... +type EventV2IMChatMemberBotDeletedV1Resp struct { +} + +// eventV2IMChatMemberBotDeletedV1Resp ... +type eventV2IMChatMemberBotDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatMemberBotDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_member_user_added_v1.go b/api_event_callback_v2_im_chat_member_user_added_v1.go index fcd150bc..81bbe1db 100644 --- a/api_event_callback_v2_im_chat_member_user_added_v1.go +++ b/api_event_callback_v2_im_chat_member_user_added_v1.go @@ -47,6 +47,13 @@ type EventV2IMChatMemberUserAddedV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatMemberUserAddedV1I18nNames ... +type EventV2IMChatMemberUserAddedV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatMemberUserAddedV1OperatorID ... type EventV2IMChatMemberUserAddedV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -54,6 +61,10 @@ type EventV2IMChatMemberUserAddedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2IMChatMemberUserAddedV1Resp ... +type EventV2IMChatMemberUserAddedV1Resp struct { +} + // EventV2IMChatMemberUserAddedV1User ... type EventV2IMChatMemberUserAddedV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -67,3 +78,11 @@ type EventV2IMChatMemberUserAddedV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMChatMemberUserAddedV1Resp ... +type eventV2IMChatMemberUserAddedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatMemberUserAddedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_member_user_deleted_v1.go b/api_event_callback_v2_im_chat_member_user_deleted_v1.go index cec52b4e..487c38e1 100644 --- a/api_event_callback_v2_im_chat_member_user_deleted_v1.go +++ b/api_event_callback_v2_im_chat_member_user_deleted_v1.go @@ -47,6 +47,13 @@ type EventV2IMChatMemberUserDeletedV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatMemberUserDeletedV1I18nNames ... +type EventV2IMChatMemberUserDeletedV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatMemberUserDeletedV1OperatorID ... type EventV2IMChatMemberUserDeletedV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -54,6 +61,10 @@ type EventV2IMChatMemberUserDeletedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2IMChatMemberUserDeletedV1Resp ... +type EventV2IMChatMemberUserDeletedV1Resp struct { +} + // EventV2IMChatMemberUserDeletedV1User ... type EventV2IMChatMemberUserDeletedV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -67,3 +78,11 @@ type EventV2IMChatMemberUserDeletedV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMChatMemberUserDeletedV1Resp ... +type eventV2IMChatMemberUserDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatMemberUserDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go b/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go index 169c4f65..bd55acb1 100644 --- a/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go +++ b/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go @@ -48,6 +48,13 @@ type EventV2IMChatMemberUserWithdrawnV1 struct { I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 } +// EventV2IMChatMemberUserWithdrawnV1I18nNames ... +type EventV2IMChatMemberUserWithdrawnV1I18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatMemberUserWithdrawnV1OperatorID ... type EventV2IMChatMemberUserWithdrawnV1OperatorID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -55,6 +62,10 @@ type EventV2IMChatMemberUserWithdrawnV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2IMChatMemberUserWithdrawnV1Resp ... +type EventV2IMChatMemberUserWithdrawnV1Resp struct { +} + // EventV2IMChatMemberUserWithdrawnV1User ... type EventV2IMChatMemberUserWithdrawnV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -68,3 +79,11 @@ type EventV2IMChatMemberUserWithdrawnV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMChatMemberUserWithdrawnV1Resp ... +type eventV2IMChatMemberUserWithdrawnV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatMemberUserWithdrawnV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_chat_updated_v1.go b/api_event_callback_v2_im_chat_updated_v1.go index a9560805..fcc56e7a 100644 --- a/api_event_callback_v2_im_chat_updated_v1.go +++ b/api_event_callback_v2_im_chat_updated_v1.go @@ -71,6 +71,13 @@ type EventV2IMChatUpdatedV1AfterChange struct { GroupMessageType MsgType `json:"group_message_type,omitempty"` // 群消息形式可选值有: chat: 会话消息- thread: 话题消息 } +// EventV2IMChatUpdatedV1AfterChangeI18nNames ... +type EventV2IMChatUpdatedV1AfterChangeI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatUpdatedV1AfterChangeOwnerID ... type EventV2IMChatUpdatedV1AfterChangeOwnerID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -105,6 +112,13 @@ type EventV2IMChatUpdatedV1BeforeChange struct { GroupMessageType MsgType `json:"group_message_type,omitempty"` // 群消息形式可选值有: chat: 会话消息- thread: 话题消息 } +// EventV2IMChatUpdatedV1BeforeChangeI18nNames ... +type EventV2IMChatUpdatedV1BeforeChangeI18nNames struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + EnUs string `json:"en_us,omitempty"` // 英文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 +} + // EventV2IMChatUpdatedV1BeforeChangeOwnerID ... type EventV2IMChatUpdatedV1BeforeChangeOwnerID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -158,3 +172,15 @@ type EventV2IMChatUpdatedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2IMChatUpdatedV1Resp ... +type EventV2IMChatUpdatedV1Resp struct { +} + +// eventV2IMChatUpdatedV1Resp ... +type eventV2IMChatUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMChatUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_message_reaction_created_v1.go b/api_event_callback_v2_im_message_reaction_created_v1.go index 6cb9b941..cadfcaf4 100644 --- a/api_event_callback_v2_im_message_reaction_created_v1.go +++ b/api_event_callback_v2_im_message_reaction_created_v1.go @@ -55,9 +55,21 @@ type EventV2IMMessageReactionCreatedV1ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` // emoji 类型。emoji_type 值对应的表情可参见[表情文案说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。 } +// EventV2IMMessageReactionCreatedV1Resp ... +type EventV2IMMessageReactionCreatedV1Resp struct { +} + // EventV2IMMessageReactionCreatedV1UserID ... type EventV2IMMessageReactionCreatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMMessageReactionCreatedV1Resp ... +type eventV2IMMessageReactionCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMMessageReactionCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_message_reaction_deleted_v1.go b/api_event_callback_v2_im_message_reaction_deleted_v1.go index 00a0b0f7..5433e7c0 100644 --- a/api_event_callback_v2_im_message_reaction_deleted_v1.go +++ b/api_event_callback_v2_im_message_reaction_deleted_v1.go @@ -55,9 +55,21 @@ type EventV2IMMessageReactionDeletedV1ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` // emoji 类型。emoji_type 值对应的表情可参见[表情文案说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。 } +// EventV2IMMessageReactionDeletedV1Resp ... +type EventV2IMMessageReactionDeletedV1Resp struct { +} + // EventV2IMMessageReactionDeletedV1UserID ... type EventV2IMMessageReactionDeletedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMMessageReactionDeletedV1Resp ... +type eventV2IMMessageReactionDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMMessageReactionDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_message_read_v1.go b/api_event_callback_v2_im_message_read_v1.go index 4abc27a9..1e3a27d0 100644 --- a/api_event_callback_v2_im_message_read_v1.go +++ b/api_event_callback_v2_im_message_read_v1.go @@ -55,3 +55,15 @@ type EventV2IMMessageReadV1ReaderReaderID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2IMMessageReadV1Resp ... +type EventV2IMMessageReadV1Resp struct { +} + +// eventV2IMMessageReadV1Resp ... +type eventV2IMMessageReadV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMMessageReadV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_message_recalled_v1.go b/api_event_callback_v2_im_message_recalled_v1.go index b6b032f4..6c59417d 100644 --- a/api_event_callback_v2_im_message_recalled_v1.go +++ b/api_event_callback_v2_im_message_recalled_v1.go @@ -45,3 +45,15 @@ type EventV2IMMessageRecalledV1 struct { RecallTime string `json:"recall_time,omitempty"` // 撤回的时间, 毫秒级时间戳。 RecallType string `json:"recall_type,omitempty"` // 撤回类型可选值有: 消息发送者撤回群主撤回群管理员撤回企业管理员撤回 } + +// EventV2IMMessageRecalledV1Resp ... +type EventV2IMMessageRecalledV1Resp struct { +} + +// eventV2IMMessageRecalledV1Resp ... +type eventV2IMMessageRecalledV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMMessageRecalledV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_im_message_receive_v1.go b/api_event_callback_v2_im_message_receive_v1.go index e9e5e9bd..94ccaaf9 100644 --- a/api_event_callback_v2_im_message_receive_v1.go +++ b/api_event_callback_v2_im_message_receive_v1.go @@ -82,6 +82,10 @@ type EventV2IMMessageReceiveV1MessageMentionID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2IMMessageReceiveV1Resp ... +type EventV2IMMessageReceiveV1Resp struct { +} + // EventV2IMMessageReceiveV1Sender ... type EventV2IMMessageReceiveV1Sender struct { SenderID *EventV2IMMessageReceiveV1SenderSenderID `json:"sender_id,omitempty"` // 用户 ID。调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 可通过 ID 获取用户信息。 @@ -95,3 +99,11 @@ type EventV2IMMessageReceiveV1SenderSenderID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// eventV2IMMessageReceiveV1Resp ... +type eventV2IMMessageReceiveV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2IMMessageReceiveV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_meeting_room_meeting_room_created_v1.go b/api_event_callback_v2_meeting_room_meeting_room_created_v1.go index 006113b9..c8bae99a 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_created_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_created_v1.go @@ -39,3 +39,15 @@ type EventV2MeetingRoomMeetingRoomCreatedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称 RoomID string `json:"room_id,omitempty"` // 会议室 ID } + +// EventV2MeetingRoomMeetingRoomCreatedV1Resp ... +type EventV2MeetingRoomMeetingRoomCreatedV1Resp struct { +} + +// eventV2MeetingRoomMeetingRoomCreatedV1Resp ... +type eventV2MeetingRoomMeetingRoomCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2MeetingRoomMeetingRoomCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go b/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go index 3389ea93..c9c962f7 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go @@ -39,3 +39,15 @@ type EventV2MeetingRoomMeetingRoomDeletedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称 RoomID string `json:"room_id,omitempty"` // 会议室 ID } + +// EventV2MeetingRoomMeetingRoomDeletedV1Resp ... +type EventV2MeetingRoomMeetingRoomDeletedV1Resp struct { +} + +// eventV2MeetingRoomMeetingRoomDeletedV1Resp ... +type eventV2MeetingRoomMeetingRoomDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2MeetingRoomMeetingRoomDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go b/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go index a64fee66..a79a3034 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go @@ -40,3 +40,15 @@ type EventV2MeetingRoomMeetingRoomStatusChangedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称。 RoomID string `json:"room_id,omitempty"` // 会议室 ID。 } + +// EventV2MeetingRoomMeetingRoomStatusChangedV1Resp ... +type EventV2MeetingRoomMeetingRoomStatusChangedV1Resp struct { +} + +// eventV2MeetingRoomMeetingRoomStatusChangedV1Resp ... +type eventV2MeetingRoomMeetingRoomStatusChangedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2MeetingRoomMeetingRoomStatusChangedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go b/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go index 4fe54984..22898d01 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go @@ -39,3 +39,15 @@ type EventV2MeetingRoomMeetingRoomUpdatedV1 struct { RoomName string `json:"room_name,omitempty"` // Meeting room name RoomID string `json:"room_id,omitempty"` // Meeting room ID } + +// EventV2MeetingRoomMeetingRoomUpdatedV1Resp ... +type EventV2MeetingRoomMeetingRoomUpdatedV1Resp struct { +} + +// eventV2MeetingRoomMeetingRoomUpdatedV1Resp ... +type eventV2MeetingRoomMeetingRoomUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2MeetingRoomMeetingRoomUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_task_task_comment_updated_v1.go b/api_event_callback_v2_task_task_comment_updated_v1.go index 45a2e740..39f308e0 100644 --- a/api_event_callback_v2_task_task_comment_updated_v1.go +++ b/api_event_callback_v2_task_task_comment_updated_v1.go @@ -43,3 +43,15 @@ type EventV2TaskTaskCommentUpdatedV1 struct { ParentID string `json:"parent_id,omitempty"` // 任务评论父ID ObjType int64 `json:"obj_type,omitempty"` // 通知类型(1: 创建评论, 2: 回复评论, 3: 更新评论, 4: 删除评论) } + +// EventV2TaskTaskCommentUpdatedV1Resp ... +type EventV2TaskTaskCommentUpdatedV1Resp struct { +} + +// eventV2TaskTaskCommentUpdatedV1Resp ... +type eventV2TaskTaskCommentUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2TaskTaskCommentUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_task_task_update_tenant_v1.go b/api_event_callback_v2_task_task_update_tenant_v1.go index 8aa5bdc0..94b7cf6e 100644 --- a/api_event_callback_v2_task_task_update_tenant_v1.go +++ b/api_event_callback_v2_task_task_update_tenant_v1.go @@ -40,6 +40,10 @@ type EventV2TaskTaskUpdateTenantV1 struct { EventType string `json:"event_type,omitempty"` // 事件类型, 可选值: "create", "delete", "update" } +// EventV2TaskTaskUpdateTenantV1Resp ... +type EventV2TaskTaskUpdateTenantV1Resp struct { +} + // EventV2TaskTaskUpdateTenantV1UserIDList ... type EventV2TaskTaskUpdateTenantV1UserIDList struct { UserIDList []*EventV2TaskTaskUpdateTenantV1UserIDListUserID `json:"user_id_list,omitempty"` // 用户 ID 列表 @@ -51,3 +55,11 @@ type EventV2TaskTaskUpdateTenantV1UserIDListUserID struct { UserID string `json:"user_id,omitempty"` // 忽略此字段 OpenID string `json:"open_id,omitempty"` // 用户的 open_id } + +// eventV2TaskTaskUpdateTenantV1Resp ... +type eventV2TaskTaskUpdateTenantV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2TaskTaskUpdateTenantV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_task_task_updated_v1.go b/api_event_callback_v2_task_task_updated_v1.go index d2f1a60b..f9e3e34a 100644 --- a/api_event_callback_v2_task_task_updated_v1.go +++ b/api_event_callback_v2_task_task_updated_v1.go @@ -42,3 +42,15 @@ type EventV2TaskTaskUpdatedV1 struct { TaskID string `json:"task_id,omitempty"` // 任务ID ObjType int64 `json:"obj_type,omitempty"` // 通知类型(1: 任务详情发生变化, 2: 任务协作者发生变化, 3: 任务关注者发生变化, 4: 任务提醒时间发生变化, 5: 任务完成, 6: 任务取消完成, 7: 任务删除) } + +// EventV2TaskTaskUpdatedV1Resp ... +type EventV2TaskTaskUpdatedV1Resp struct { +} + +// eventV2TaskTaskUpdatedV1Resp ... +type eventV2TaskTaskUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2TaskTaskUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_url_preview_get.go b/api_event_callback_v2_url_preview_get.go index 76e06347..856319c1 100644 --- a/api_event_callback_v2_url_preview_get.go +++ b/api_event_callback_v2_url_preview_get.go @@ -199,4 +199,17 @@ func (r *EventCallbackService) HandlerEventV2URLPreviewGet(f EventV2URLPreviewGe type EventV2URLPreviewGetHandler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2URLPreviewGet) (string, error) // EventV2URLPreviewGet ... -type EventV2URLPreviewGet struct{} +type EventV2URLPreviewGet struct { +} + +// EventV2URLPreviewGetResp ... +type EventV2URLPreviewGetResp struct { +} + +// eventV2URLPreviewGetResp ... +type eventV2URLPreviewGetResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2URLPreviewGetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go b/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go index 937a83ea..cda47b30 100644 --- a/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go @@ -92,3 +92,15 @@ type EventV2VCMeetingAllMeetingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingAllMeetingEndedV1Resp ... +type EventV2VCMeetingAllMeetingEndedV1Resp struct { +} + +// eventV2VCMeetingAllMeetingEndedV1Resp ... +type eventV2VCMeetingAllMeetingEndedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingAllMeetingEndedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go b/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go index ca8cb8ae..60996cd2 100644 --- a/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go +++ b/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go @@ -91,6 +91,13 @@ type EventV2VCMeetingAllMeetingStartedV1MeetingSecuritySetting struct { HasSetSecurityContactsAndGroup bool `json:"has_set_security_contacts_and_group,omitempty"` // 是否设置了仅指定联系人和群组可参会 } +// EventV2VCMeetingAllMeetingStartedV1MeetingSecuritySettingUserID ... +type EventV2VCMeetingAllMeetingStartedV1MeetingSecuritySettingUserID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + // EventV2VCMeetingAllMeetingStartedV1MeetingWebinarSetting ... type EventV2VCMeetingAllMeetingStartedV1MeetingWebinarSetting struct { WebinarType int64 `json:"webinar_type,omitempty"` // 网络研讨会类型可选值有: 普通网络研讨会直播网络研讨会 @@ -109,3 +116,15 @@ type EventV2VCMeetingAllMeetingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingAllMeetingStartedV1Resp ... +type EventV2VCMeetingAllMeetingStartedV1Resp struct { +} + +// eventV2VCMeetingAllMeetingStartedV1Resp ... +type eventV2VCMeetingAllMeetingStartedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingAllMeetingStartedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_join_meeting_v1.go b/api_event_callback_v2_vc_meeting_join_meeting_v1.go index 91fe4e61..87baa55b 100644 --- a/api_event_callback_v2_vc_meeting_join_meeting_v1.go +++ b/api_event_callback_v2_vc_meeting_join_meeting_v1.go @@ -90,3 +90,15 @@ type EventV2VCMeetingJoinMeetingV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingJoinMeetingV1Resp ... +type EventV2VCMeetingJoinMeetingV1Resp struct { +} + +// eventV2VCMeetingJoinMeetingV1Resp ... +type eventV2VCMeetingJoinMeetingV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingJoinMeetingV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_leave_meeting_v1.go b/api_event_callback_v2_vc_meeting_leave_meeting_v1.go index 9b924c33..8e9a84f0 100644 --- a/api_event_callback_v2_vc_meeting_leave_meeting_v1.go +++ b/api_event_callback_v2_vc_meeting_leave_meeting_v1.go @@ -91,3 +91,15 @@ type EventV2VCMeetingLeaveMeetingV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingLeaveMeetingV1Resp ... +type EventV2VCMeetingLeaveMeetingV1Resp struct { +} + +// eventV2VCMeetingLeaveMeetingV1Resp ... +type eventV2VCMeetingLeaveMeetingV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingLeaveMeetingV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_meeting_ended_v1.go b/api_event_callback_v2_vc_meeting_meeting_ended_v1.go index 8ec79065..48e35a7c 100644 --- a/api_event_callback_v2_vc_meeting_meeting_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_meeting_ended_v1.go @@ -92,3 +92,15 @@ type EventV2VCMeetingMeetingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingMeetingEndedV1Resp ... +type EventV2VCMeetingMeetingEndedV1Resp struct { +} + +// eventV2VCMeetingMeetingEndedV1Resp ... +type eventV2VCMeetingMeetingEndedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingMeetingEndedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_meeting_started_v1.go b/api_event_callback_v2_vc_meeting_meeting_started_v1.go index 2394da2b..73e30ac2 100644 --- a/api_event_callback_v2_vc_meeting_meeting_started_v1.go +++ b/api_event_callback_v2_vc_meeting_meeting_started_v1.go @@ -92,3 +92,15 @@ type EventV2VCMeetingMeetingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingMeetingStartedV1Resp ... +type EventV2VCMeetingMeetingStartedV1Resp struct { +} + +// eventV2VCMeetingMeetingStartedV1Resp ... +type eventV2VCMeetingMeetingStartedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingMeetingStartedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_recording_ended_v1.go b/api_event_callback_v2_vc_meeting_recording_ended_v1.go index 2ac49447..8c50be88 100644 --- a/api_event_callback_v2_vc_meeting_recording_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_ended_v1.go @@ -90,3 +90,15 @@ type EventV2VCMeetingRecordingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingRecordingEndedV1Resp ... +type EventV2VCMeetingRecordingEndedV1Resp struct { +} + +// eventV2VCMeetingRecordingEndedV1Resp ... +type eventV2VCMeetingRecordingEndedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingRecordingEndedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_recording_ready_v1.go b/api_event_callback_v2_vc_meeting_recording_ready_v1.go index a4a48c4c..b2db4f43 100644 --- a/api_event_callback_v2_vc_meeting_recording_ready_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_ready_v1.go @@ -60,3 +60,15 @@ type EventV2VCMeetingRecordingReadyV1MeetingOwnerID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingRecordingReadyV1Resp ... +type EventV2VCMeetingRecordingReadyV1Resp struct { +} + +// eventV2VCMeetingRecordingReadyV1Resp ... +type eventV2VCMeetingRecordingReadyV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingRecordingReadyV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_recording_started_v1.go b/api_event_callback_v2_vc_meeting_recording_started_v1.go index 03b31db6..bba4aa46 100644 --- a/api_event_callback_v2_vc_meeting_recording_started_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_started_v1.go @@ -90,3 +90,15 @@ type EventV2VCMeetingRecordingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingRecordingStartedV1Resp ... +type EventV2VCMeetingRecordingStartedV1Resp struct { +} + +// eventV2VCMeetingRecordingStartedV1Resp ... +type eventV2VCMeetingRecordingStartedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingRecordingStartedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_share_ended_v1.go b/api_event_callback_v2_vc_meeting_share_ended_v1.go index 8847228b..6462d120 100644 --- a/api_event_callback_v2_vc_meeting_share_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_share_ended_v1.go @@ -90,3 +90,15 @@ type EventV2VCMeetingShareEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingShareEndedV1Resp ... +type EventV2VCMeetingShareEndedV1Resp struct { +} + +// eventV2VCMeetingShareEndedV1Resp ... +type eventV2VCMeetingShareEndedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingShareEndedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_meeting_share_started_v1.go b/api_event_callback_v2_vc_meeting_share_started_v1.go index 41e175f5..c425bef6 100644 --- a/api_event_callback_v2_vc_meeting_share_started_v1.go +++ b/api_event_callback_v2_vc_meeting_share_started_v1.go @@ -90,3 +90,15 @@ type EventV2VCMeetingShareStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } + +// EventV2VCMeetingShareStartedV1Resp ... +type EventV2VCMeetingShareStartedV1Resp struct { +} + +// eventV2VCMeetingShareStartedV1Resp ... +type eventV2VCMeetingShareStartedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCMeetingShareStartedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_reserve_config_updated_v1.go b/api_event_callback_v2_vc_reserve_config_updated_v1.go index 33f70817..3c17b944 100644 --- a/api_event_callback_v2_vc_reserve_config_updated_v1.go +++ b/api_event_callback_v2_vc_reserve_config_updated_v1.go @@ -85,6 +85,10 @@ type EventV2VCReserveConfigUpdatedV1ReserveScopeConfigAllowUserUserID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } +// EventV2VCReserveConfigUpdatedV1Resp ... +type EventV2VCReserveConfigUpdatedV1Resp struct { +} + // EventV2VCReserveConfigUpdatedV1TimeConfig ... type EventV2VCReserveConfigUpdatedV1TimeConfig struct { TimeSwitch int64 `json:"time_switch,omitempty"` // 预定时间开关: 0 代表关闭, 1 代表开启 取值范围: `0` ~ `1` @@ -94,3 +98,11 @@ type EventV2VCReserveConfigUpdatedV1TimeConfig struct { EndTime string `json:"end_time,omitempty"` // 每日可预定时间范围结束时间(单位: 秒, 取值范围[0, 86400]) 说明: 1. 不填写时, 默认更新为 86400, 此时填写的 start_time 不得大于等于 86370 。 2. 当 start_time 与 end_time 均填写时, end_time 至少要超过 start_time 30。 3. 如果填写的值不是 60 的倍数, 则自动会更新为离其最近的 60 整数倍的值。 MaxDuration int64 `json:"max_duration,omitempty"` // 单次会议室可预定时长上限(单位: 小时, 取值范围[1, 99]) 说明: 不填写时默认更新为 2 } + +// eventV2VCReserveConfigUpdatedV1Resp ... +type eventV2VCReserveConfigUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCReserveConfigUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_created_v1.go b/api_event_callback_v2_vc_room_created_v1.go index 54f8fd8b..0a65ea22 100644 --- a/api_event_callback_v2_vc_room_created_v1.go +++ b/api_event_callback_v2_vc_room_created_v1.go @@ -37,6 +37,10 @@ type EventV2VCRoomCreatedV1 struct { Room *EventV2VCRoomCreatedV1Room `json:"room,omitempty"` // 会议室信息 } +// EventV2VCRoomCreatedV1Resp ... +type EventV2VCRoomCreatedV1Resp struct { +} + // EventV2VCRoomCreatedV1Room ... type EventV2VCRoomCreatedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID @@ -67,3 +71,18 @@ type EventV2VCRoomCreatedV1RoomRoomStatus struct { DisableNotice bool `json:"disable_notice,omitempty"` // 是否在禁用时发送通知给预定了该会议室的员工 ResumeNotice bool `json:"resume_notice,omitempty"` // 是否在恢复启用时发送通知给预定了该会议室的员工 } + +// EventV2VCRoomCreatedV1RoomRoomStatusContactID ... +type EventV2VCRoomCreatedV1RoomRoomStatusContactID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + +// eventV2VCRoomCreatedV1Resp ... +type eventV2VCRoomCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_deleted_v1.go b/api_event_callback_v2_vc_room_deleted_v1.go index 8b749ac4..b2e92bfa 100644 --- a/api_event_callback_v2_vc_room_deleted_v1.go +++ b/api_event_callback_v2_vc_room_deleted_v1.go @@ -37,7 +37,19 @@ type EventV2VCRoomDeletedV1 struct { Room *EventV2VCRoomDeletedV1Room `json:"room,omitempty"` // 会议室信息 } +// EventV2VCRoomDeletedV1Resp ... +type EventV2VCRoomDeletedV1Resp struct { +} + // EventV2VCRoomDeletedV1Room ... type EventV2VCRoomDeletedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID } + +// eventV2VCRoomDeletedV1Resp ... +type eventV2VCRoomDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_level_created_v1.go b/api_event_callback_v2_vc_room_level_created_v1.go index 2ddb1191..00fda349 100644 --- a/api_event_callback_v2_vc_room_level_created_v1.go +++ b/api_event_callback_v2_vc_room_level_created_v1.go @@ -37,6 +37,10 @@ type EventV2VCRoomLevelCreatedV1 struct { RoomLevel *EventV2VCRoomLevelCreatedV1RoomLevel `json:"room_level,omitempty"` // 层级信息 } +// EventV2VCRoomLevelCreatedV1Resp ... +type EventV2VCRoomLevelCreatedV1Resp struct { +} + // EventV2VCRoomLevelCreatedV1RoomLevel ... type EventV2VCRoomLevelCreatedV1RoomLevel struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID @@ -46,3 +50,11 @@ type EventV2VCRoomLevelCreatedV1RoomLevel struct { HasChild bool `json:"has_child,omitempty"` // 是否有子层级 CustomGroupID string `json:"custom_group_id,omitempty"` // 自定义层级ID } + +// eventV2VCRoomLevelCreatedV1Resp ... +type eventV2VCRoomLevelCreatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomLevelCreatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_level_deleted_v1.go b/api_event_callback_v2_vc_room_level_deleted_v1.go index ac49edae..9eeeccea 100644 --- a/api_event_callback_v2_vc_room_level_deleted_v1.go +++ b/api_event_callback_v2_vc_room_level_deleted_v1.go @@ -37,3 +37,15 @@ type EventV2VCRoomLevelDeletedV1 struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID 长度范围: `1` ~ `100` 字符 DeleteChild bool `json:"delete_child,omitempty"` // 是否删除所有子层级 } + +// EventV2VCRoomLevelDeletedV1Resp ... +type EventV2VCRoomLevelDeletedV1Resp struct { +} + +// eventV2VCRoomLevelDeletedV1Resp ... +type eventV2VCRoomLevelDeletedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomLevelDeletedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_level_updated_v1.go b/api_event_callback_v2_vc_room_level_updated_v1.go index 4bc48e5f..5a417c00 100644 --- a/api_event_callback_v2_vc_room_level_updated_v1.go +++ b/api_event_callback_v2_vc_room_level_updated_v1.go @@ -37,6 +37,10 @@ type EventV2VCRoomLevelUpdatedV1 struct { RoomLevel *EventV2VCRoomLevelUpdatedV1RoomLevel `json:"room_level,omitempty"` // 层级信息 } +// EventV2VCRoomLevelUpdatedV1Resp ... +type EventV2VCRoomLevelUpdatedV1Resp struct { +} + // EventV2VCRoomLevelUpdatedV1RoomLevel ... type EventV2VCRoomLevelUpdatedV1RoomLevel struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID @@ -46,3 +50,11 @@ type EventV2VCRoomLevelUpdatedV1RoomLevel struct { HasChild bool `json:"has_child,omitempty"` // 是否有子层级 CustomGroupID string `json:"custom_group_id,omitempty"` // 自定义层级ID } + +// eventV2VCRoomLevelUpdatedV1Resp ... +type eventV2VCRoomLevelUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomLevelUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_event_callback_v2_vc_room_updated_v1.go b/api_event_callback_v2_vc_room_updated_v1.go index 64aebf9d..ab7c605a 100644 --- a/api_event_callback_v2_vc_room_updated_v1.go +++ b/api_event_callback_v2_vc_room_updated_v1.go @@ -37,6 +37,10 @@ type EventV2VCRoomUpdatedV1 struct { Room *EventV2VCRoomUpdatedV1Room `json:"room,omitempty"` // 会议室详情 } +// EventV2VCRoomUpdatedV1Resp ... +type EventV2VCRoomUpdatedV1Resp struct { +} + // EventV2VCRoomUpdatedV1Room ... type EventV2VCRoomUpdatedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID @@ -67,3 +71,18 @@ type EventV2VCRoomUpdatedV1RoomRoomStatus struct { DisableNotice bool `json:"disable_notice,omitempty"` // 是否在禁用时发送通知给预定了该会议室的员工 ResumeNotice bool `json:"resume_notice,omitempty"` // 是否在恢复启用时发送通知给预定了该会议室的员工 } + +// EventV2VCRoomUpdatedV1RoomRoomStatusContactID ... +type EventV2VCRoomUpdatedV1RoomRoomStatusContactID struct { + UnionID string `json:"union_id,omitempty"` // 用户的 union id + UserID string `json:"user_id,omitempty"` // 用户的 user id + OpenID string `json:"open_id,omitempty"` // 用户的 open id +} + +// eventV2VCRoomUpdatedV1Resp ... +type eventV2VCRoomUpdatedV1Resp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *EventV2VCRoomUpdatedV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_helpdesk_agent_email_get.go b/api_helpdesk_agent_email_get.go index b9299548..ff2e141c 100644 --- a/api_helpdesk_agent_email_get.go +++ b/api_helpdesk_agent_email_get.go @@ -58,7 +58,8 @@ func (r *Mock) UnMockHelpdeskGetHelpdeskAgentEmail() { } // GetHelpdeskAgentEmailReq ... -type GetHelpdeskAgentEmailReq struct{} +type GetHelpdeskAgentEmailReq struct { +} // GetHelpdeskAgentEmailResp ... type GetHelpdeskAgentEmailResp struct { diff --git a/api_helpdesk_agent_patch.go b/api_helpdesk_agent_patch.go index c7bb67db..147e0867 100644 --- a/api_helpdesk_agent_patch.go +++ b/api_helpdesk_agent_patch.go @@ -64,7 +64,8 @@ type UpdateHelpdeskAgentReq struct { } // UpdateHelpdeskAgentResp ... -type UpdateHelpdeskAgentResp struct{} +type UpdateHelpdeskAgentResp struct { +} // updateHelpdeskAgentResp ... type updateHelpdeskAgentResp struct { diff --git a/api_helpdesk_agent_schedule_create.go b/api_helpdesk_agent_schedule_create.go index 85853135..7f4cb805 100644 --- a/api_helpdesk_agent_schedule_create.go +++ b/api_helpdesk_agent_schedule_create.go @@ -80,7 +80,8 @@ type CreateHelpdeskAgentScheduleReqAgentScheduleSchedule struct { } // CreateHelpdeskAgentScheduleResp ... -type CreateHelpdeskAgentScheduleResp struct{} +type CreateHelpdeskAgentScheduleResp struct { +} // createHelpdeskAgentScheduleResp ... type createHelpdeskAgentScheduleResp struct { diff --git a/api_helpdesk_agent_schedule_delete.go b/api_helpdesk_agent_schedule_delete.go index bee5e80a..bc9b1c49 100644 --- a/api_helpdesk_agent_schedule_delete.go +++ b/api_helpdesk_agent_schedule_delete.go @@ -66,7 +66,8 @@ type DeleteHelpdeskAgentScheduleReq struct { } // DeleteHelpdeskAgentScheduleResp ... -type DeleteHelpdeskAgentScheduleResp struct{} +type DeleteHelpdeskAgentScheduleResp struct { +} // deleteHelpdeskAgentScheduleResp ... type deleteHelpdeskAgentScheduleResp struct { diff --git a/api_helpdesk_agent_schedule_update.go b/api_helpdesk_agent_schedule_update.go index d4cbbe97..a477b398 100644 --- a/api_helpdesk_agent_schedule_update.go +++ b/api_helpdesk_agent_schedule_update.go @@ -80,7 +80,8 @@ type UpdateHelpdeskAgentScheduleReqAgentScheduleSchedule struct { } // UpdateHelpdeskAgentScheduleResp ... -type UpdateHelpdeskAgentScheduleResp struct{} +type UpdateHelpdeskAgentScheduleResp struct { +} // updateHelpdeskAgentScheduleResp ... type updateHelpdeskAgentScheduleResp struct { diff --git a/api_helpdesk_agent_skill_delete.go b/api_helpdesk_agent_skill_delete.go index 03682b54..838d7ce3 100644 --- a/api_helpdesk_agent_skill_delete.go +++ b/api_helpdesk_agent_skill_delete.go @@ -66,7 +66,8 @@ type DeleteHelpdeskAgentSkillReq struct { } // DeleteHelpdeskAgentSkillResp ... -type DeleteHelpdeskAgentSkillResp struct{} +type DeleteHelpdeskAgentSkillResp struct { +} // deleteHelpdeskAgentSkillResp ... type deleteHelpdeskAgentSkillResp struct { diff --git a/api_helpdesk_agent_skill_get_list.go b/api_helpdesk_agent_skill_get_list.go index a1282ab5..c059e9dd 100644 --- a/api_helpdesk_agent_skill_get_list.go +++ b/api_helpdesk_agent_skill_get_list.go @@ -58,7 +58,8 @@ func (r *Mock) UnMockHelpdeskGetHelpdeskAgentSkillList() { } // GetHelpdeskAgentSkillListReq ... -type GetHelpdeskAgentSkillListReq struct{} +type GetHelpdeskAgentSkillListReq struct { +} // GetHelpdeskAgentSkillListResp ... type GetHelpdeskAgentSkillListResp struct { diff --git a/api_helpdesk_agent_skill_rule_get_list.go b/api_helpdesk_agent_skill_rule_get_list.go index 438c3c55..13dda191 100644 --- a/api_helpdesk_agent_skill_rule_get_list.go +++ b/api_helpdesk_agent_skill_rule_get_list.go @@ -58,7 +58,8 @@ func (r *Mock) UnMockHelpdeskGetHelpdeskAgentSkillRuleList() { } // GetHelpdeskAgentSkillRuleListReq ... -type GetHelpdeskAgentSkillRuleListReq struct{} +type GetHelpdeskAgentSkillRuleListReq struct { +} // GetHelpdeskAgentSkillRuleListResp ... type GetHelpdeskAgentSkillRuleListResp struct { diff --git a/api_helpdesk_agent_skill_update.go b/api_helpdesk_agent_skill_update.go index 5b6f8dbe..33f73f9c 100644 --- a/api_helpdesk_agent_skill_update.go +++ b/api_helpdesk_agent_skill_update.go @@ -82,7 +82,8 @@ type UpdateHelpdeskAgentSkillReqAgentSkillRule struct { } // UpdateHelpdeskAgentSkillResp ... -type UpdateHelpdeskAgentSkillResp struct{} +type UpdateHelpdeskAgentSkillResp struct { +} // updateHelpdeskAgentSkillResp ... type updateHelpdeskAgentSkillResp struct { diff --git a/api_helpdesk_category_create.go b/api_helpdesk_category_create.go index 36121ff9..2486964e 100644 --- a/api_helpdesk_category_create.go +++ b/api_helpdesk_category_create.go @@ -72,6 +72,16 @@ type CreateHelpdeskCategoryResp struct { Category *HelpdeskCategory `json:"category,omitempty"` // 知识库分类 } +// CreateHelpdeskCategoryRespCategory ... +type CreateHelpdeskCategoryRespCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 +} + // createHelpdeskCategoryResp ... type createHelpdeskCategoryResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_helpdesk_category_delete.go b/api_helpdesk_category_delete.go index 45d79ffe..1d107d64 100644 --- a/api_helpdesk_category_delete.go +++ b/api_helpdesk_category_delete.go @@ -66,7 +66,8 @@ type DeleteHelpdeskCategoryReq struct { } // DeleteHelpdeskCategoryResp ... -type DeleteHelpdeskCategoryResp struct{} +type DeleteHelpdeskCategoryResp struct { +} // deleteHelpdeskCategoryResp ... type deleteHelpdeskCategoryResp struct { diff --git a/api_helpdesk_category_get_list.go b/api_helpdesk_category_get_list.go index 3d5cdc44..dff43ebe 100644 --- a/api_helpdesk_category_get_list.go +++ b/api_helpdesk_category_get_list.go @@ -69,6 +69,17 @@ type GetHelpdeskCategoryListResp struct { Categories []*HelpdeskCategory `json:"categories,omitempty"` // 知识库分类列表 } +// GetHelpdeskCategoryListRespCategory ... +type GetHelpdeskCategoryListRespCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 + Children []interface{} `json:"children,omitempty"` // 子分类详情 +} + // getHelpdeskCategoryListResp ... type getHelpdeskCategoryListResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_helpdesk_category_update.go b/api_helpdesk_category_update.go index 17bfe3b5..95aeaed0 100644 --- a/api_helpdesk_category_update.go +++ b/api_helpdesk_category_update.go @@ -68,7 +68,8 @@ type UpdateHelpdeskCategoryReq struct { } // UpdateHelpdeskCategoryResp ... -type UpdateHelpdeskCategoryResp struct{} +type UpdateHelpdeskCategoryResp struct { +} // updateHelpdeskCategoryResp ... type updateHelpdeskCategoryResp struct { diff --git a/api_helpdesk_event_subscribe.go b/api_helpdesk_event_subscribe.go index 7495584f..095071e9 100644 --- a/api_helpdesk_event_subscribe.go +++ b/api_helpdesk_event_subscribe.go @@ -69,7 +69,8 @@ type SubscribeHelpdeskEventReqEvent struct { } // SubscribeHelpdeskEventResp ... -type SubscribeHelpdeskEventResp struct{} +type SubscribeHelpdeskEventResp struct { +} // subscribeHelpdeskEventResp ... type subscribeHelpdeskEventResp struct { diff --git a/api_helpdesk_event_unsubscribe.go b/api_helpdesk_event_unsubscribe.go index 0b922f9a..d5b5a096 100644 --- a/api_helpdesk_event_unsubscribe.go +++ b/api_helpdesk_event_unsubscribe.go @@ -69,7 +69,8 @@ type UnsubscribeHelpdeskEventReqEvent struct { } // UnsubscribeHelpdeskEventResp ... -type UnsubscribeHelpdeskEventResp struct{} +type UnsubscribeHelpdeskEventResp struct { +} // unsubscribeHelpdeskEventResp ... type unsubscribeHelpdeskEventResp struct { diff --git a/api_helpdesk_faq_create.go b/api_helpdesk_faq_create.go index fecbd565..5f47647e 100644 --- a/api_helpdesk_faq_create.go +++ b/api_helpdesk_faq_create.go @@ -102,6 +102,16 @@ type CreateHelpdeskFAQRespFAQAnswerRichtext struct { Type string `json:"type,omitempty"` // 类型 } +// CreateHelpdeskFAQRespFAQCategory ... +type CreateHelpdeskFAQRespFAQCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 +} + // CreateHelpdeskFAQRespFAQCreateUser ... type CreateHelpdeskFAQRespFAQCreateUser struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_faq_delete.go b/api_helpdesk_faq_delete.go index 96f705c9..d778f8a5 100644 --- a/api_helpdesk_faq_delete.go +++ b/api_helpdesk_faq_delete.go @@ -66,7 +66,8 @@ type DeleteHelpdeskFAQReq struct { } // DeleteHelpdeskFAQResp ... -type DeleteHelpdeskFAQResp struct{} +type DeleteHelpdeskFAQResp struct { +} // deleteHelpdeskFAQResp ... type deleteHelpdeskFAQResp struct { diff --git a/api_helpdesk_faq_get.go b/api_helpdesk_faq_get.go index c9d778d8..1ab85573 100644 --- a/api_helpdesk_faq_get.go +++ b/api_helpdesk_faq_get.go @@ -90,6 +90,16 @@ type GetHelpdeskFAQRespFAQAnswerRichtext struct { Type string `json:"type,omitempty"` // 类型 } +// GetHelpdeskFAQRespFAQCategory ... +type GetHelpdeskFAQRespFAQCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 +} + // GetHelpdeskFAQRespFAQCreateUser ... type GetHelpdeskFAQRespFAQCreateUser struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_faq_get_list.go b/api_helpdesk_faq_get_list.go index c1fa1c47..875af5fd 100644 --- a/api_helpdesk_faq_get_list.go +++ b/api_helpdesk_faq_get_list.go @@ -98,6 +98,16 @@ type GetHelpdeskFAQListRespItemAnswerRichtext struct { Type string `json:"type,omitempty"` // 类型 } +// GetHelpdeskFAQListRespItemCategory ... +type GetHelpdeskFAQListRespItemCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 +} + // GetHelpdeskFAQListRespItemCreateUser ... type GetHelpdeskFAQListRespItemCreateUser struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_faq_search.go b/api_helpdesk_faq_search.go index a1f3f03c..4b2c19bc 100644 --- a/api_helpdesk_faq_search.go +++ b/api_helpdesk_faq_search.go @@ -95,6 +95,16 @@ type SearchHelpdeskFAQRespItemAnswerRichtext struct { Type string `json:"type,omitempty"` // 类型 } +// SearchHelpdeskFAQRespItemCategory ... +type SearchHelpdeskFAQRespItemCategory struct { + CategoryID string `json:"category_id,omitempty"` // 知识库分类ID + ID string `json:"id,omitempty"` // 知识库分类ID, (旧版, 请使用category_id) + Name string `json:"name,omitempty"` // 名称 + ParentID string `json:"parent_id,omitempty"` // 父知识库分类ID + HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台ID + Language string `json:"language,omitempty"` // 语言 +} + // SearchHelpdeskFAQRespItemCreateUser ... type SearchHelpdeskFAQRespItemCreateUser struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_faq_update.go b/api_helpdesk_faq_update.go index 3301d30f..cf50e297 100644 --- a/api_helpdesk_faq_update.go +++ b/api_helpdesk_faq_update.go @@ -82,7 +82,8 @@ type UpdateHelpdeskFAQReqFAQAnswerRichtext struct { } // UpdateHelpdeskFAQResp ... -type UpdateHelpdeskFAQResp struct{} +type UpdateHelpdeskFAQResp struct { +} // updateHelpdeskFAQResp ... type updateHelpdeskFAQResp struct { diff --git a/api_helpdesk_notification_cancel_approve.go b/api_helpdesk_notification_cancel_approve.go index dbfa0c6b..df423133 100644 --- a/api_helpdesk_notification_cancel_approve.go +++ b/api_helpdesk_notification_cancel_approve.go @@ -63,7 +63,8 @@ type CancelApproveHelpdeskNotificationReq struct { } // CancelApproveHelpdeskNotificationResp ... -type CancelApproveHelpdeskNotificationResp struct{} +type CancelApproveHelpdeskNotificationResp struct { +} // cancelApproveHelpdeskNotificationResp ... type cancelApproveHelpdeskNotificationResp struct { diff --git a/api_helpdesk_notification_cancel_send.go b/api_helpdesk_notification_cancel_send.go index 7d71fd4f..dd810f01 100644 --- a/api_helpdesk_notification_cancel_send.go +++ b/api_helpdesk_notification_cancel_send.go @@ -64,7 +64,8 @@ type CancelSendHelpdeskNotificationReq struct { } // CancelSendHelpdeskNotificationResp ... -type CancelSendHelpdeskNotificationResp struct{} +type CancelSendHelpdeskNotificationResp struct { +} // cancelSendHelpdeskNotificationResp ... type cancelSendHelpdeskNotificationResp struct { diff --git a/api_helpdesk_notification_execute_send.go b/api_helpdesk_notification_execute_send.go index 974860ae..8721a40d 100644 --- a/api_helpdesk_notification_execute_send.go +++ b/api_helpdesk_notification_execute_send.go @@ -64,7 +64,8 @@ type ExecuteSendHelpdeskNotificationReq struct { } // ExecuteSendHelpdeskNotificationResp ... -type ExecuteSendHelpdeskNotificationResp struct{} +type ExecuteSendHelpdeskNotificationResp struct { +} // executeSendHelpdeskNotificationResp ... type executeSendHelpdeskNotificationResp struct { diff --git a/api_helpdesk_notification_preview.go b/api_helpdesk_notification_preview.go index bbc5f263..c2fb8b39 100644 --- a/api_helpdesk_notification_preview.go +++ b/api_helpdesk_notification_preview.go @@ -63,7 +63,8 @@ type PreviewHelpdeskNotificationReq struct { } // PreviewHelpdeskNotificationResp ... -type PreviewHelpdeskNotificationResp struct{} +type PreviewHelpdeskNotificationResp struct { +} // previewHelpdeskNotificationResp ... type previewHelpdeskNotificationResp struct { diff --git a/api_helpdesk_notification_update.go b/api_helpdesk_notification_update.go index 60fdea43..a9ba4651 100644 --- a/api_helpdesk_notification_update.go +++ b/api_helpdesk_notification_update.go @@ -123,7 +123,8 @@ type UpdateHelpdeskNotificationReqUser struct { } // UpdateHelpdeskNotificationResp ... -type UpdateHelpdeskNotificationResp struct{} +type UpdateHelpdeskNotificationResp struct { +} // updateHelpdeskNotificationResp ... type updateHelpdeskNotificationResp struct { diff --git a/api_helpdesk_ticket_answer_user_query.go b/api_helpdesk_ticket_answer_user_query.go index 286b542f..0b4b3ce8 100644 --- a/api_helpdesk_ticket_answer_user_query.go +++ b/api_helpdesk_ticket_answer_user_query.go @@ -71,7 +71,8 @@ type AnswerHelpdeskTicketUserQueryReqFAQ struct { } // AnswerHelpdeskTicketUserQueryResp ... -type AnswerHelpdeskTicketUserQueryResp struct{} +type AnswerHelpdeskTicketUserQueryResp struct { +} // answerHelpdeskTicketUserQueryResp ... type answerHelpdeskTicketUserQueryResp struct { diff --git a/api_helpdesk_ticket_customized_field_create.go b/api_helpdesk_ticket_customized_field_create.go index a3252aa9..be7bf37b 100644 --- a/api_helpdesk_ticket_customized_field_create.go +++ b/api_helpdesk_ticket_customized_field_create.go @@ -74,8 +74,21 @@ type CreateHelpdeskTicketCustomizedFieldReq struct { DropdownAllowMultiple *bool `json:"dropdown_allow_multiple,omitempty"` // 是否支持多选, 仅在字段类型是dropdown的时候有效示例值: true } +// CreateHelpdeskTicketCustomizedFieldReqDropdownOption ... +type CreateHelpdeskTicketCustomizedFieldReqDropdownOption struct { + Children []*CreateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren `json:"children,omitempty"` // 选项列表 +} + +// CreateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren ... +type CreateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren struct { + Tag string `json:"tag,omitempty"` // 选项ID + DisplayName string `json:"display_name,omitempty"` // 展示名称 + Children []interface{} `json:"children,omitempty"` // 同上: 选项列表, 只适用于多层下拉列表(最多可以设置三级下拉列表) +} + // CreateHelpdeskTicketCustomizedFieldResp ... -type CreateHelpdeskTicketCustomizedFieldResp struct{} +type CreateHelpdeskTicketCustomizedFieldResp struct { +} // createHelpdeskTicketCustomizedFieldResp ... type createHelpdeskTicketCustomizedFieldResp struct { diff --git a/api_helpdesk_ticket_customized_field_delete.go b/api_helpdesk_ticket_customized_field_delete.go index f7dd91b3..fbe99c53 100644 --- a/api_helpdesk_ticket_customized_field_delete.go +++ b/api_helpdesk_ticket_customized_field_delete.go @@ -66,7 +66,8 @@ type DeleteHelpdeskTicketCustomizedFieldReq struct { } // DeleteHelpdeskTicketCustomizedFieldResp ... -type DeleteHelpdeskTicketCustomizedFieldResp struct{} +type DeleteHelpdeskTicketCustomizedFieldResp struct { +} // deleteHelpdeskTicketCustomizedFieldResp ... type deleteHelpdeskTicketCustomizedFieldResp struct { diff --git a/api_helpdesk_ticket_customized_field_get.go b/api_helpdesk_ticket_customized_field_get.go index 3b10bff1..b54f77d9 100644 --- a/api_helpdesk_ticket_customized_field_get.go +++ b/api_helpdesk_ticket_customized_field_get.go @@ -88,6 +88,14 @@ type GetHelpdeskTicketCustomizedFieldRespCreatedBy struct { Email string `json:"email,omitempty"` // 用户邮箱 } +// GetHelpdeskTicketCustomizedFieldRespDropdownOption ... +type GetHelpdeskTicketCustomizedFieldRespDropdownOption struct { + Children []interface{} `json:"children,omitempty"` // 选项列表 + Tag string `json:"tag,omitempty"` // 选项ID + DisplayName string `json:"display_name,omitempty"` // 展示名称 + Children []interface{} `json:"children,omitempty"` // 同上: 选项列表, 只适用于多层下拉列表(最多可以设置三级下拉列表) +} + // GetHelpdeskTicketCustomizedFieldRespUpdatedBy ... type GetHelpdeskTicketCustomizedFieldRespUpdatedBy struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_ticket_customized_field_get_list.go b/api_helpdesk_ticket_customized_field_get_list.go index 2b46653b..adac9f7a 100644 --- a/api_helpdesk_ticket_customized_field_get_list.go +++ b/api_helpdesk_ticket_customized_field_get_list.go @@ -99,6 +99,18 @@ type GetHelpdeskTicketCustomizedFieldListRespItemCreatedBy struct { Email string `json:"email,omitempty"` // 用户邮箱 } +// GetHelpdeskTicketCustomizedFieldListRespItemDropdownOption ... +type GetHelpdeskTicketCustomizedFieldListRespItemDropdownOption struct { + Children []*GetHelpdeskTicketCustomizedFieldListRespItemDropdownOptionChildren `json:"children,omitempty"` // 选项列表 +} + +// GetHelpdeskTicketCustomizedFieldListRespItemDropdownOptionChildren ... +type GetHelpdeskTicketCustomizedFieldListRespItemDropdownOptionChildren struct { + Tag string `json:"tag,omitempty"` // 选项ID + DisplayName string `json:"display_name,omitempty"` // 展示名称 + Children []interface{} `json:"children,omitempty"` // 同上: 选项列表, 只适用于多层下拉列表(最多可以设置三级下拉列表) +} + // GetHelpdeskTicketCustomizedFieldListRespItemUpdatedBy ... type GetHelpdeskTicketCustomizedFieldListRespItemUpdatedBy struct { ID string `json:"id,omitempty"` // 用户ID diff --git a/api_helpdesk_ticket_customized_field_update.go b/api_helpdesk_ticket_customized_field_update.go index ff6c24e0..f5cd36e4 100644 --- a/api_helpdesk_ticket_customized_field_update.go +++ b/api_helpdesk_ticket_customized_field_update.go @@ -71,8 +71,21 @@ type UpdateHelpdeskTicketCustomizedFieldReq struct { DropdownOptions *HelpdeskDropdownOption `json:"dropdown_options,omitempty"` // 下拉列表选项 } +// UpdateHelpdeskTicketCustomizedFieldReqDropdownOption ... +type UpdateHelpdeskTicketCustomizedFieldReqDropdownOption struct { + Children []*UpdateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren `json:"children,omitempty"` // 选项列表 +} + +// UpdateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren ... +type UpdateHelpdeskTicketCustomizedFieldReqDropdownOptionChildren struct { + Tag string `json:"tag,omitempty"` // 选项ID + DisplayName string `json:"display_name,omitempty"` // 展示名称 + Children []interface{} `json:"children,omitempty"` // 同上: 选项列表, 只适用于多层下拉列表(最多可以设置三级下拉列表) +} + // UpdateHelpdeskTicketCustomizedFieldResp ... -type UpdateHelpdeskTicketCustomizedFieldResp struct{} +type UpdateHelpdeskTicketCustomizedFieldResp struct { +} // updateHelpdeskTicketCustomizedFieldResp ... type updateHelpdeskTicketCustomizedFieldResp struct { diff --git a/api_helpdesk_ticket_update.go b/api_helpdesk_ticket_update.go index a31d08ce..c2beef60 100644 --- a/api_helpdesk_ticket_update.go +++ b/api_helpdesk_ticket_update.go @@ -80,7 +80,8 @@ type UpdateHelpdeskTicketReqCustomizedField struct { } // UpdateHelpdeskTicketResp ... -type UpdateHelpdeskTicketResp struct{} +type UpdateHelpdeskTicketResp struct { +} // updateHelpdeskTicketResp ... type updateHelpdeskTicketResp struct { diff --git a/api_hire_advertisement_publish.go b/api_hire_advertisement_publish.go new file mode 100644 index 00000000..9fbe0470 --- /dev/null +++ b/api_hire_advertisement_publish.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireAdvertisementPublish 支持把职位广告发布上线至招聘官网、内推平台。 +// +// ## 注意事项 +// 调用此接口前, 需先打开「飞书招聘」-「设置」-「职位管理」-「职位设置」-「通过 API 同步职位开关」开关。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/advertisement/publish +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/publish +func (r *HireService) CreateHireAdvertisementPublish(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) { + if r.cli.mock.mockHireCreateHireAdvertisementPublish != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireAdvertisementPublish mock enable") + return r.cli.mock.mockHireCreateHireAdvertisementPublish(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireAdvertisementPublish", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/advertisements/:advertisement_id/publish", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireAdvertisementPublishResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireAdvertisementPublish mock HireCreateHireAdvertisementPublish method +func (r *Mock) MockHireCreateHireAdvertisementPublish(f func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error)) { + r.mockHireCreateHireAdvertisementPublish = f +} + +// UnMockHireCreateHireAdvertisementPublish un-mock HireCreateHireAdvertisementPublish method +func (r *Mock) UnMockHireCreateHireAdvertisementPublish() { + r.mockHireCreateHireAdvertisementPublish = nil +} + +// CreateHireAdvertisementPublishReq ... +type CreateHireAdvertisementPublishReq struct { + AdvertisementID string `path:"advertisement_id" json:"-"` // 职位广告 ID, 可由[新建职位](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/combined_create)接口创建职位后返回获取。示例值: "6960663240925956660" + JobChannelID *string `json:"job_channel_id,omitempty"` // 招聘渠道 ID, 选择要发布的招聘官网, 单次仅可发布 1 个渠道: 当发布内推平台时, 可使用 job_channel_id = 3 来发布- 官网渠道的 ID 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)」接口获取示例值: "6960663240925956631" +} + +// CreateHireAdvertisementPublishResp ... +type CreateHireAdvertisementPublishResp struct { +} + +// createHireAdvertisementPublishResp ... +type createHireAdvertisementPublishResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireAdvertisementPublishResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_batch_query.go b/api_hire_agency_batch_query.go new file mode 100644 index 00000000..4fa1dade --- /dev/null +++ b/api_hire_agency_batch_query.go @@ -0,0 +1,150 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryHireAgency 可根据猎头供应商 ID 列表或关键字、筛选项查询供应商信息。暂不支持获取【邀请中】的供应商列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/batch_query +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/agency/batch_query +func (r *HireService) BatchQueryHireAgency(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) { + if r.cli.mock.mockHireBatchQueryHireAgency != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchQueryHireAgency mock enable") + return r.cli.mock.mockHireBatchQueryHireAgency(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchQueryHireAgency", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryHireAgencyResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchQueryHireAgency mock HireBatchQueryHireAgency method +func (r *Mock) MockHireBatchQueryHireAgency(f func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error)) { + r.mockHireBatchQueryHireAgency = f +} + +// UnMockHireBatchQueryHireAgency un-mock HireBatchQueryHireAgency method +func (r *Mock) UnMockHireBatchQueryHireAgency() { + r.mockHireBatchQueryHireAgency = nil +} + +// BatchQueryHireAgencyReq ... +type BatchQueryHireAgencyReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9 + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `20` + AgencySupplierIDList []string `json:"agency_supplier_id_list,omitempty"` // 猎头供应商 ID 列表, 当传递此值, 以此值为准, 其余查询字段失效示例值: ["7412902352778840358"] 最大长度: `20` + Keyword *string `json:"keyword,omitempty"` // 搜索关键字, 可传入名称或邮箱示例值: "猎头" + FilterList []*BatchQueryHireAgencyReqFilter `json:"filter_list,omitempty"` // 筛选项, 相同的 Key 仅可传一次, 字段取值可查看本文`筛选字段说明`节 +} + +// BatchQueryHireAgencyReqFilter ... +type BatchQueryHireAgencyReqFilter struct { + Key string `json:"key,omitempty"` // 筛选项 key, 使用筛选项查询时必填示例值: "supplier_area" + ValueType int64 `json:"value_type,omitempty"` // 筛选项值类型, 使用筛选项查询时必填示例值: 1可选值有: 值过滤, 填充 value_list 字段范围过滤, 填充 range_filter 字段 + ValueList []string `json:"value_list,omitempty"` // 筛选项值列表, 当`value_type`为`1`时必填示例值: ["7005471343731164709"] + RangeFilter *BatchQueryHireAgencyReqFilterRangeFilter `json:"range_filter,omitempty"` // 范围筛选, 当`value_type`为`2`时必填 +} + +// BatchQueryHireAgencyReqFilterRangeFilter ... +type BatchQueryHireAgencyReqFilterRangeFilter struct { + From *string `json:"from,omitempty"` // 起始值(Unix毫秒时间戳)示例值: "1725951088959" + To *string `json:"to,omitempty"` // 终止值(Unix毫秒时间戳)示例值: "1725951088960" +} + +// BatchQueryHireAgencyResp ... +type BatchQueryHireAgencyResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*BatchQueryHireAgencyRespItem `json:"items,omitempty"` // 猎头供应商列表 +} + +// BatchQueryHireAgencyRespItem ... +type BatchQueryHireAgencyRespItem struct { + ID string `json:"id,omitempty"` // 猎头供应商 ID + Name string `json:"name,omitempty"` // 猎头供应商名称 + LabelList []*BatchQueryHireAgencyRespItemLabel `json:"label_list,omitempty"` // 猎头标签列表 + AdminList []*BatchQueryHireAgencyRespItemAdmin `json:"admin_list,omitempty"` // 管理员列表 + AgencyProtectTime *BatchQueryHireAgencyRespItemAgencyProtectTime `json:"agency_protect_time,omitempty"` // 猎头简历保护期- 候选人在「猎头简历保护期」内入职需支付猎头费用, 且保护期内无法被其他猎头公司推荐(猎头公司可重复推荐) + CooperationCreateTime string `json:"cooperation_create_time,omitempty"` // 合作创建时间, 毫秒时间戳 + CooperationStartTime string `json:"cooperation_start_time,omitempty"` // 合作开始时间, 毫秒时间戳 + CooperationEndTime string `json:"cooperation_end_time,omitempty"` // 合作终止时间, 毫秒时间戳 + CooperationStatus int64 `json:"cooperation_status,omitempty"` // 合作状态可选值有: 正式合作试单合作终止邀请中 + InviteEmail string `json:"invite_email,omitempty"` // 供应商邮箱 + SupplierArea int64 `json:"supplier_area,omitempty"` // 猎头地区可选值有: 中国大陆非中国大陆 + TalentProtectTime *BatchQueryHireAgencyRespItemTalentProtectTime `json:"talent_protect_time,omitempty"` // 企业自有简历保护期- 猎头无法推荐在「企业自有简历保护期」内活跃的候选人(「活跃」指在飞书招聘中有「新建人才或投递」、「安排评估、笔试或面试」、「申请 Offer」记录);猎头无法推荐活跃流程中的候选人 +} + +// BatchQueryHireAgencyRespItemAdmin ... +type BatchQueryHireAgencyRespItemAdmin struct { + UserID string `json:"user_id,omitempty"` // 管理员 ID, 与入参`user_id_type`类型一致 + Name *BatchQueryHireAgencyRespItemAdminName `json:"name,omitempty"` // 管理员名称 + Email string `json:"email,omitempty"` // 管理员邮箱字段权限要求: 查看猎头相关用户邮箱 +} + +// BatchQueryHireAgencyRespItemAdminName ... +type BatchQueryHireAgencyRespItemAdminName struct { + ZhCn string `json:"zh_cn,omitempty"` // 管理员中文名称 + EnUs string `json:"en_us,omitempty"` // 管理员英文名称 +} + +// BatchQueryHireAgencyRespItemAgencyProtectTime ... +type BatchQueryHireAgencyRespItemAgencyProtectTime struct { + Day int64 `json:"day,omitempty"` // 保护时长, 单位(天) + UseDefault bool `json:"use_default,omitempty"` // 是否使用统一设置, 当为`false`时代表`保护时长(day)`由用户自定义设置, 否则由招聘系统预设可选值有: 统一设置非统一设置 +} + +// BatchQueryHireAgencyRespItemLabel ... +type BatchQueryHireAgencyRespItemLabel struct { + ID string `json:"id,omitempty"` // 标签 ID + Name *BatchQueryHireAgencyRespItemLabelName `json:"name,omitempty"` // 标签名称 +} + +// BatchQueryHireAgencyRespItemLabelName ... +type BatchQueryHireAgencyRespItemLabelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文名称 + EnUs string `json:"en_us,omitempty"` // 标签英文名称 +} + +// BatchQueryHireAgencyRespItemTalentProtectTime ... +type BatchQueryHireAgencyRespItemTalentProtectTime struct { + Day int64 `json:"day,omitempty"` // 保护时长, 单位(天) + UseDefault bool `json:"use_default,omitempty"` // 是否使用统一设置, 当为`false`时代表`保护时长(day)`由用户自定义设置, 否则由招聘系统预设可选值有: 统一设置非统一设置 + Forever bool `json:"forever,omitempty"` // 是否永久保护可选值有: 永久保护非永久保护 +} + +// batchQueryHireAgencyResp ... +type batchQueryHireAgencyResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryHireAgencyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_get.go b/api_hire_agency_get.go new file mode 100644 index 00000000..4da038b9 --- /dev/null +++ b/api_hire_agency_get.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireAgency 根据猎头供应商 ID 获取有合作关系的猎头供应商信息, 包含猎头供应商ID、名称、联系人等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/agency/get +func (r *HireService) GetHireAgency(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) { + if r.cli.mock.mockHireGetHireAgency != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireAgency mock enable") + return r.cli.mock.mockHireGetHireAgency(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireAgency", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/:agency_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireAgencyResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireAgency mock HireGetHireAgency method +func (r *Mock) MockHireGetHireAgency(f func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error)) { + r.mockHireGetHireAgency = f +} + +// UnMockHireGetHireAgency un-mock HireGetHireAgency method +func (r *Mock) UnMockHireGetHireAgency() { + r.mockHireGetHireAgency = nil +} + +// GetHireAgencyReq ... +type GetHireAgencyReq struct { + AgencyID string `path:"agency_id" json:"-"` // 猎头供应商ID示例值: "6898173495386147079" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireAgencyResp ... +type GetHireAgencyResp struct { + Agency *GetHireAgencyRespAgency `json:"agency,omitempty"` // 猎头供应商信息 +} + +// GetHireAgencyRespAgency ... +type GetHireAgencyRespAgency struct { + ID string `json:"id,omitempty"` // 猎头供应商ID + Name string `json:"name,omitempty"` // 猎头供应商名称 + ContactorID string `json:"contactor_id,omitempty"` // 供应商联系人, 与`user_id_type`类型一致 + ContactorName *GetHireAgencyRespAgencyContactorName `json:"contactor_name,omitempty"` // 供应商联系人名称 +} + +// GetHireAgencyRespAgencyContactorName ... +type GetHireAgencyRespAgencyContactorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// getHireAgencyResp ... +type getHireAgencyResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireAgencyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_get_agency_account.go b/api_hire_agency_get_agency_account.go new file mode 100644 index 00000000..19160720 --- /dev/null +++ b/api_hire_agency_get_agency_account.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireAgencyAccount 根据猎头供应商 ID 查询该猎头供应商下的猎头列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/get_agency_account +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/agency/get_agency_account +func (r *HireService) GetHireAgencyAccount(ctx context.Context, request *GetHireAgencyAccountReq, options ...MethodOptionFunc) (*GetHireAgencyAccountResp, *Response, error) { + if r.cli.mock.mockHireGetHireAgencyAccount != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireAgencyAccount mock enable") + return r.cli.mock.mockHireGetHireAgencyAccount(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireAgencyAccount", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/get_agency_account", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireAgencyAccountResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireAgencyAccount mock HireGetHireAgencyAccount method +func (r *Mock) MockHireGetHireAgencyAccount(f func(ctx context.Context, request *GetHireAgencyAccountReq, options ...MethodOptionFunc) (*GetHireAgencyAccountResp, *Response, error)) { + r.mockHireGetHireAgencyAccount = f +} + +// UnMockHireGetHireAgencyAccount un-mock HireGetHireAgencyAccount method +func (r *Mock) UnMockHireGetHireAgencyAccount() { + r.mockHireGetHireAgencyAccount = nil +} + +// GetHireAgencyAccountReq ... +type GetHireAgencyAccountReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)默认值: `open_id` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9 + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `20` + SupplierID string `json:"supplier_id,omitempty"` // 猎头供应商 ID, 可通过[搜索猎头供应商列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/batch_query)接口获取示例值: "7398623155442682156" + Status *int64 `json:"status,omitempty"` // 猎头状态示例值: 1可选值有: 正常已禁用已被猎头供应商停用 + Role *int64 `json:"role,omitempty"` // 角色示例值: 1可选值有: 管理员顾问 +} + +// GetHireAgencyAccountResp ... +type GetHireAgencyAccountResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*GetHireAgencyAccountRespItem `json:"items,omitempty"` // 猎头列表 +} + +// GetHireAgencyAccountRespItem ... +type GetHireAgencyAccountRespItem struct { + ID string `json:"id,omitempty"` // 猎头 ID + Reason string `json:"reason,omitempty"` // 禁用原因, 仅当`status`为`1`时填充 + CreateTime string `json:"create_time,omitempty"` // 添加时间, 毫秒时间戳 + Status int64 `json:"status,omitempty"` // 猎头状态可选值有: 正常已禁用已被猎头供应商停用 + UserInfo *GetHireAgencyAccountRespItemUserInfo `json:"user_info,omitempty"` // 猎头用户信息 + Role int64 `json:"role,omitempty"` // 角色可选值有: 管理员顾问 +} + +// GetHireAgencyAccountRespItemUserInfo ... +type GetHireAgencyAccountRespItemUserInfo struct { + UserID string `json:"user_id,omitempty"` // 用户 ID, 与入参`user_id_type`类型一致 + Name *GetHireAgencyAccountRespItemUserInfoName `json:"name,omitempty"` // 用户名称 + Email string `json:"email,omitempty"` // 用户邮箱字段权限要求: 查看猎头相关用户邮箱 + Mobile string `json:"mobile,omitempty"` // 用户手机字段权限要求: 查看猎头相关用户手机号 +} + +// GetHireAgencyAccountRespItemUserInfoName ... +type GetHireAgencyAccountRespItemUserInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 用户中文名称 + EnUs string `json:"en_us,omitempty"` // 用户英文名称 +} + +// getHireAgencyAccountResp ... +type getHireAgencyAccountResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireAgencyAccountResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_operate_agency_account.go b/api_hire_agency_operate_agency_account.go new file mode 100644 index 00000000..80c8cd45 --- /dev/null +++ b/api_hire_agency_operate_agency_account.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireAgencyOperateAgencyAccount 可根据猎头 ID 对猎头执行禁用/取消禁用操作。被禁用的猎头, 不能推荐候选人与被分配职位。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/operate_agency_account +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/agency/operate_agency_account +func (r *HireService) CreateHireAgencyOperateAgencyAccount(ctx context.Context, request *CreateHireAgencyOperateAgencyAccountReq, options ...MethodOptionFunc) (*CreateHireAgencyOperateAgencyAccountResp, *Response, error) { + if r.cli.mock.mockHireCreateHireAgencyOperateAgencyAccount != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireAgencyOperateAgencyAccount mock enable") + return r.cli.mock.mockHireCreateHireAgencyOperateAgencyAccount(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireAgencyOperateAgencyAccount", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/operate_agency_account", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireAgencyOperateAgencyAccountResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireAgencyOperateAgencyAccount mock HireCreateHireAgencyOperateAgencyAccount method +func (r *Mock) MockHireCreateHireAgencyOperateAgencyAccount(f func(ctx context.Context, request *CreateHireAgencyOperateAgencyAccountReq, options ...MethodOptionFunc) (*CreateHireAgencyOperateAgencyAccountResp, *Response, error)) { + r.mockHireCreateHireAgencyOperateAgencyAccount = f +} + +// UnMockHireCreateHireAgencyOperateAgencyAccount un-mock HireCreateHireAgencyOperateAgencyAccount method +func (r *Mock) UnMockHireCreateHireAgencyOperateAgencyAccount() { + r.mockHireCreateHireAgencyOperateAgencyAccount = nil +} + +// CreateHireAgencyOperateAgencyAccountReq ... +type CreateHireAgencyOperateAgencyAccountReq struct { + Option int64 `json:"option,omitempty"` // 操作类型示例值: 1可选值有: 禁用取消禁用 + ID string `json:"id,omitempty"` // 猎头 ID, 可通过[查询猎头供应商下猎头列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/get_agency_account)接口获取示例值: "7398623155442682156" + Reason *string `json:"reason,omitempty"` // 禁用原因, 仅当`option`为`1`时, 必填示例值: "这个人特别不负责" +} + +// CreateHireAgencyOperateAgencyAccountResp ... +type CreateHireAgencyOperateAgencyAccountResp struct { +} + +// createHireAgencyOperateAgencyAccountResp ... +type createHireAgencyOperateAgencyAccountResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireAgencyOperateAgencyAccountResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_protect.go b/api_hire_agency_protect.go new file mode 100644 index 00000000..8d5bfdd2 --- /dev/null +++ b/api_hire_agency_protect.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireAgencyProtect 设置指定人才的猎头保护期, 当「飞书招聘」内置的保护期功能不满足需求时, 客户可通过此接口自定义人才的保护期。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/protect +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/agency/protect +func (r *HireService) CreateHireAgencyProtect(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error) { + if r.cli.mock.mockHireCreateHireAgencyProtect != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireAgencyProtect mock enable") + return r.cli.mock.mockHireCreateHireAgencyProtect(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireAgencyProtect", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/protect", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireAgencyProtectResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireAgencyProtect mock HireCreateHireAgencyProtect method +func (r *Mock) MockHireCreateHireAgencyProtect(f func(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error)) { + r.mockHireCreateHireAgencyProtect = f +} + +// UnMockHireCreateHireAgencyProtect un-mock HireCreateHireAgencyProtect method +func (r *Mock) UnMockHireCreateHireAgencyProtect() { + r.mockHireCreateHireAgencyProtect = nil +} + +// CreateHireAgencyProtectReq ... +type CreateHireAgencyProtectReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TalentID string `json:"talent_id,omitempty"` // 人才ID, 可通过[通过手机号或邮箱获取人才 ID](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/batch_get_id)、[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "6962051712422398239" + SupplierID string `json:"supplier_id,omitempty"` // 猎头供应商ID示例值: "6898173495386147079" + ConsultantID string `json:"consultant_id,omitempty"` // 猎头顾问ID, 需与`user_id_type`类型一致示例值: "ou_f476cb099ac9227c9bae09ce46112579" + ProtectCreateTime int64 `json:"protect_create_time,omitempty"` // 保护期创建时间(int64类型), 毫秒时间戳示例值: 1610695587000 + ProtectExpireTime int64 `json:"protect_expire_time,omitempty"` // 保护期过期时间(int64类型), 毫秒时间戳示例值: 1626333987000 + Comment *string `json:"comment,omitempty"` // 推荐语示例值: "此候选人非常优秀, 建议录用。" + CurrentSalary *string `json:"current_salary,omitempty"` // 当前薪资示例值: "15k * 13" + ExpectedSalary *string `json:"expected_salary,omitempty"` // 预期薪资示例值: "18k * 16" +} + +// CreateHireAgencyProtectResp ... +type CreateHireAgencyProtectResp struct { +} + +// createHireAgencyProtectResp ... +type createHireAgencyProtectResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireAgencyProtectResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_protect_search.go b/api_hire_agency_protect_search.go new file mode 100644 index 00000000..5339fc7d --- /dev/null +++ b/api_hire_agency_protect_search.go @@ -0,0 +1,126 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireAgencyProtectSearch 查询指定人才的猎头保护期信息列表, 包含保护期起止时间、猎头供应商、猎头顾问信息等。若人才已经入职, 还会返回入职时所在的保护期信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/protect_search +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/agency/protect_search +func (r *HireService) CreateHireAgencyProtectSearch(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) { + if r.cli.mock.mockHireCreateHireAgencyProtectSearch != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireAgencyProtectSearch mock enable") + return r.cli.mock.mockHireCreateHireAgencyProtectSearch(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireAgencyProtectSearch", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/protection_period/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireAgencyProtectSearchResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireAgencyProtectSearch mock HireCreateHireAgencyProtectSearch method +func (r *Mock) MockHireCreateHireAgencyProtectSearch(f func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error)) { + r.mockHireCreateHireAgencyProtectSearch = f +} + +// UnMockHireCreateHireAgencyProtectSearch un-mock HireCreateHireAgencyProtectSearch method +func (r *Mock) UnMockHireCreateHireAgencyProtectSearch() { + r.mockHireCreateHireAgencyProtectSearch = nil +} + +// CreateHireAgencyProtectSearchReq ... +type CreateHireAgencyProtectSearchReq struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[通过手机号或邮箱获取人才 ID](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/batch_get_id)、[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "6930815272790114324" +} + +// CreateHireAgencyProtectSearchResp ... +type CreateHireAgencyProtectSearchResp struct { + IsOnboarded bool `json:"is_onboarded,omitempty"` // 是否已入职 + OnboardedInProtection bool `json:"onboarded_in_protection,omitempty"` // 是否在猎头保护期内入职 + OnboardedProtection *CreateHireAgencyProtectSearchRespOnboardedProtection `json:"onboarded_protection,omitempty"` // 入职时所在保护期, 当且仅当`is_onboarded = true && onboarded_in_protection = true`时, 该字段有值 + ProtectionList []*CreateHireAgencyProtectSearchRespProtection `json:"protection_list,omitempty"` // 保护期列表, 若返回空, 则表明人才上没有任何的保护期 +} + +// CreateHireAgencyProtectSearchRespOnboardedProtection ... +type CreateHireAgencyProtectSearchRespOnboardedProtection struct { + ProtectionType int64 `json:"protection_type,omitempty"` // 保护期类型可选值有: 人才保护期职位保护期 + ApplicationID string `json:"application_id,omitempty"` // 如保护期类型为 职位保护期(`2`)时, 返回职位保护所在的投递 ID, 详情请参考: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + StartTime string `json:"start_time,omitempty"` // 保护期开始时间, 毫秒时间戳 + ExpireTime string `json:"expire_time,omitempty"` // 保护期过期时间, 毫秒时间戳 + AgencySupplierID string `json:"agency_supplier_id,omitempty"` // 猎头供应商 ID, 详情请参考: [获取猎头供应商信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/get) + AgencySupplierName *CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierName `json:"agency_supplier_name,omitempty"` // 猎头供应商名称 + AgencySupplierUserID string `json:"agency_supplier_user_id,omitempty"` // 猎头顾问 ID, 与`user_id_type`类型一致。注意: 由于猎头顾问位于猎头供应商租户, 不在本接口调用方租户里, 若需获取猎头信息, 需切换租户至猎头供应商租户后通过[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)访问猎头顾问详情 + AgencySupplierUserName *CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierUserName `json:"agency_supplier_user_name,omitempty"` // 猎头顾问名称 +} + +// CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierName ... +type CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierUserName ... +type CreateHireAgencyProtectSearchRespOnboardedProtectionAgencySupplierUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireAgencyProtectSearchRespProtection ... +type CreateHireAgencyProtectSearchRespProtection struct { + ProtectionType int64 `json:"protection_type,omitempty"` // 保护期类型可选值有: 人才保护期职位保护期 + ApplicationID string `json:"application_id,omitempty"` // 如保护期类型为 职位保护期(`2`)时, 返回职位保护所在的投递 ID, 详情请参考: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + StartTime string `json:"start_time,omitempty"` // 保护期开始时间, 毫秒时间戳 + ExpireTime string `json:"expire_time,omitempty"` // 保护期过期时间, 毫秒时间戳 + AgencySupplierID string `json:"agency_supplier_id,omitempty"` // 猎头供应商 ID, 详情请参考: [获取猎头供应商信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/get) + AgencySupplierName *CreateHireAgencyProtectSearchRespProtectionAgencySupplierName `json:"agency_supplier_name,omitempty"` // 猎头供应商名称 + AgencySupplierUserID string `json:"agency_supplier_user_id,omitempty"` // 猎头顾问 ID, 与`user_id_type`类型一致。注意: 由于猎头顾问位于猎头供应商租户, 不在本接口调用方租户里, 若需获取猎头信息, 需切换租户至猎头供应商租户后通过[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)访问猎头顾问详情 + AgencySupplierUserName *CreateHireAgencyProtectSearchRespProtectionAgencySupplierUserName `json:"agency_supplier_user_name,omitempty"` // 猎头顾问名称 +} + +// CreateHireAgencyProtectSearchRespProtectionAgencySupplierName ... +type CreateHireAgencyProtectSearchRespProtectionAgencySupplierName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireAgencyProtectSearchRespProtectionAgencySupplierUserName ... +type CreateHireAgencyProtectSearchRespProtectionAgencySupplierUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// createHireAgencyProtectSearchResp ... +type createHireAgencyProtectSearchResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireAgencyProtectSearchResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_agency_query.go b/api_hire_agency_query.go new file mode 100644 index 00000000..9f248e7f --- /dev/null +++ b/api_hire_agency_query.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryHireAgency 根据猎头供应商名称查询有合作关系的猎头供应商信息, 包含猎头供应商ID、名称、联系人等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/agency/query +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/agency/query +func (r *HireService) QueryHireAgency(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) { + if r.cli.mock.mockHireQueryHireAgency != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#QueryHireAgency mock enable") + return r.cli.mock.mockHireQueryHireAgency(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "QueryHireAgency", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/agencies/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryHireAgencyResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireQueryHireAgency mock HireQueryHireAgency method +func (r *Mock) MockHireQueryHireAgency(f func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error)) { + r.mockHireQueryHireAgency = f +} + +// UnMockHireQueryHireAgency un-mock HireQueryHireAgency method +func (r *Mock) UnMockHireQueryHireAgency() { + r.mockHireQueryHireAgency = nil +} + +// QueryHireAgencyReq ... +type QueryHireAgencyReq struct { + Name string `query:"name" json:"-"` // 猎头供应商名称, 精准匹配查询(区分大小写)示例值: 超越猎头公司 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// QueryHireAgencyResp ... +type QueryHireAgencyResp struct { + Items []*QueryHireAgencyRespItem `json:"items,omitempty"` // 猎头供应商信息 +} + +// QueryHireAgencyRespItem ... +type QueryHireAgencyRespItem struct { + ID string `json:"id,omitempty"` // 猎头供应商ID + Name string `json:"name,omitempty"` // 猎头供应商名称 + ContactorID string `json:"contactor_id,omitempty"` // 猎头供应商联系人ID, 与`user_id_type`类型一致 + ContactorName *QueryHireAgencyRespItemContactorName `json:"contactor_name,omitempty"` // 猎头供应商联系人名称 +} + +// QueryHireAgencyRespItemContactorName ... +type QueryHireAgencyRespItemContactorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// queryHireAgencyResp ... +type queryHireAgencyResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryHireAgencyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_application_cancel_onboard.go b/api_hire_application_cancel_onboard.go new file mode 100644 index 00000000..ff2f40ce --- /dev/null +++ b/api_hire_application_cancel_onboard.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireApplicationCancelOnboard 取消待入职状态的候选人入职。 +// +// ## 注意事项 +// - 本接口适用于对待入职阶段的候选人取消入职。对于已入职的候选人, 取消入职请使用[更新入职状态](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/employee/patch) +// 对候选人进行离职操作。 +// - 对于集成了飞书人事的租户, 候选人在飞书人事创建待入职记录后, 只能在飞书人事取消入职, 不可使用本接口取消入职。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/cancel_onboard +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/onboard/cancel_onboard +func (r *HireService) CreateHireApplicationCancelOnboard(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) { + if r.cli.mock.mockHireCreateHireApplicationCancelOnboard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireApplicationCancelOnboard mock enable") + return r.cli.mock.mockHireCreateHireApplicationCancelOnboard(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireApplicationCancelOnboard", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/:application_id/cancel_onboard", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireApplicationCancelOnboardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireApplicationCancelOnboard mock HireCreateHireApplicationCancelOnboard method +func (r *Mock) MockHireCreateHireApplicationCancelOnboard(f func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error)) { + r.mockHireCreateHireApplicationCancelOnboard = f +} + +// UnMockHireCreateHireApplicationCancelOnboard un-mock HireCreateHireApplicationCancelOnboard method +func (r *Mock) UnMockHireCreateHireApplicationCancelOnboard() { + r.mockHireCreateHireApplicationCancelOnboard = nil +} + +// CreateHireApplicationCancelOnboardReq ... +type CreateHireApplicationCancelOnboardReq struct { + ApplicationID string `path:"application_id" json:"-"` // 投递 ID, 如何获取投递 ID 请参考[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)示例值: "1111111111" + TerminationType int64 `json:"termination_type,omitempty"` // 终止类型示例值: 1可选值有: 我们拒绝了候选人候选人拒绝了我们其他 + TerminationReasonIDList []string `json:"termination_reason_id_list,omitempty"` // 终止的具体原因的id列表, 详细信息请参考[获取终止投递原因](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/termination_reason/list)示例值: ["6959090661225640000"] + TerminationReasonNotes *string `json:"termination_reason_notes,omitempty"` // 备注示例值: "候选人经历不匹配" +} + +// CreateHireApplicationCancelOnboardResp ... +type CreateHireApplicationCancelOnboardResp struct { +} + +// createHireApplicationCancelOnboardResp ... +type createHireApplicationCancelOnboardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireApplicationCancelOnboardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_application_get_detail.go b/api_hire_application_get_detail.go new file mode 100644 index 00000000..9c830067 --- /dev/null +++ b/api_hire_application_get_detail.go @@ -0,0 +1,988 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireApplicationDetail 根据投递 ID 获取投递信息并通过参数按需获取该投递相关的实体信息, 如「职位」、「人才」、「评估」、「面试」、「Offer」、「猎头」、「内推」、「官网」等实体的信息。 +// +// 目前暂不支持查询被删除的投递详情 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get_detail +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/application/get_detail +func (r *HireService) GetHireApplicationDetail(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) { + if r.cli.mock.mockHireGetHireApplicationDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireApplicationDetail mock enable") + return r.cli.mock.mockHireGetHireApplicationDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireApplicationDetail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/:application_id/get_detail", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireApplicationDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireApplicationDetail mock HireGetHireApplicationDetail method +func (r *Mock) MockHireGetHireApplicationDetail(f func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error)) { + r.mockHireGetHireApplicationDetail = f +} + +// UnMockHireGetHireApplicationDetail un-mock HireGetHireApplicationDetail method +func (r *Mock) UnMockHireGetHireApplicationDetail() { + r.mockHireGetHireApplicationDetail = nil +} + +// GetHireApplicationDetailReq ... +type GetHireApplicationDetailReq struct { + ApplicationID string `path:"application_id" json:"-"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "6956499586395523359" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户, 即将下线字段, 不建议使用默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门, 通过[批量获取部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/batch)接口获取以 department_id 来标识部门, 通过[批量获取部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/batch)接口获取默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: job_family_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)接口获取默认值: `job_family_id` + EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型示例值: employee_type_enum_id可选值有: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的人员类型 ID, 通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)接口获取默认值: `employee_type_enum_id` + Options []string `query:"options" json:"-"` // 关联实体信息获取参数, 用于指定获取哪些关联实体信息, 不传时默认只返回投递基本信息(`basic_info`)。如需一次查询多个实体信息, 可通过将同一参数名多次传递, 并且每次传递不同的参数值。  例如: https://{url}?options=with_job&options=with_talent示例值: with_job可选值有: 返回职位实体信息返回人才实体信息返回面试聚合实体信息返回 Offer 实体信息返回评估实体信息返回员工实体信息返回猎头实体信息返回内推实体信息返回官网实体信息 +} + +// GetHireApplicationDetailResp ... +type GetHireApplicationDetailResp struct { + ApplicationDetail *GetHireApplicationDetailRespApplicationDetail `json:"application_detail,omitempty"` // 投递详情 +} + +// GetHireApplicationDetailRespApplicationDetail ... +type GetHireApplicationDetailRespApplicationDetail struct { + BasicInfo *GetHireApplicationDetailRespApplicationDetailBasicInfo `json:"basic_info,omitempty"` // 投递基本信息 + Job *GetHireApplicationDetailRespApplicationDetailJob `json:"job,omitempty"` // 投递职位信息字段权限要求(满足任一): 获取职位信息更新职位信息 + Talent *GetHireApplicationDetailRespApplicationDetailTalent `json:"talent,omitempty"` // 投递人才信息字段权限要求(满足任一): 获取人才信息更新人才信息 + Evaluations []*GetHireApplicationDetailRespApplicationDetailEvaluation `json:"evaluations,omitempty"` // 投递评估信息字段权限要求: 获取简历评估信息 + InterviewAggregation *GetHireApplicationDetailRespApplicationDetailInterviewAggregation `json:"interview_aggregation,omitempty"` // 投递面试信息字段权限要求(满足任一): 获取面试信息更新面试信息 + Offer *GetHireApplicationDetailRespApplicationDetailOffer `json:"offer,omitempty"` // 投递 Offer 信息(正式offer)字段权限要求(满足任一): 获取 offer 信息更新 offer 信息 + Employee *GetHireApplicationDetailRespApplicationDetailEmployee `json:"employee,omitempty"` // 投递员工入转离信息字段权限要求(满足任一): 更新招聘员工信息获取招聘员工信息 + Agency *GetHireApplicationDetailRespApplicationDetailAgency `json:"agency,omitempty"` // 投递猎头推荐信息字段权限要求(满足任一): 获取招聘猎头信息更新招聘猎头信息 + Portal *GetHireApplicationDetailRespApplicationDetailPortal `json:"portal,omitempty"` // 投递官网信息字段权限要求(满足任一): 获取官网信息更新官网信息 + Referral *GetHireApplicationDetailRespApplicationDetailReferral `json:"referral,omitempty"` // 投递内推信息字段权限要求(满足任一): 获取内推信息更新内推信息 +} + +// GetHireApplicationDetailRespApplicationDetailAgency ... +type GetHireApplicationDetailRespApplicationDetailAgency struct { + BasicInfo *GetHireApplicationDetailRespApplicationDetailAgencyBasicInfo `json:"basic_info,omitempty"` // 猎头基本信息 + CommentInfo []*GetHireApplicationDetailRespApplicationDetailAgencyCommentInfo `json:"comment_info,omitempty"` // 猎头评价信息 + SalaryInfo []*GetHireApplicationDetailRespApplicationDetailAgencySalaryInfo `json:"salary_info,omitempty"` // 薪酬信息字段权限要求: 获取猎头填写的薪资 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyBasicInfo ... +type GetHireApplicationDetailRespApplicationDetailAgencyBasicInfo struct { + HunterUserName *GetHireApplicationDetailRespApplicationDetailAgencyBasicInfoHunterUserName `json:"hunter_user_name,omitempty"` // 猎头用户名 + HunterCompanyName string `json:"hunter_company_name,omitempty"` // 猎头公司名 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyBasicInfoHunterUserName ... +type GetHireApplicationDetailRespApplicationDetailAgencyBasicInfoHunterUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 猎头中文用户名 + EnUs string `json:"en_us,omitempty"` // 猎头英文用户名 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyCommentInfo ... +type GetHireApplicationDetailRespApplicationDetailAgencyCommentInfo struct { + Name *GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoName `json:"name,omitempty"` // 猎头评价信息名称 + Value *GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoValue `json:"value,omitempty"` // 猎头评价内容 + Description *GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoDescription `json:"description,omitempty"` // 猎头评价信息描述 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoDescription ... +type GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 猎头评价信息中文描述 + EnUs string `json:"en_us,omitempty"` // 猎头评价信息英文描述 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoName ... +type GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 猎头评价信息中文名称 + EnUs string `json:"en_us,omitempty"` // 猎头评价信息英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoValue ... +type GetHireApplicationDetailRespApplicationDetailAgencyCommentInfoValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 猎头评价中文内容 + EnUs string `json:"en_us,omitempty"` // 猎头评价英文内容 +} + +// GetHireApplicationDetailRespApplicationDetailAgencySalaryInfo ... +type GetHireApplicationDetailRespApplicationDetailAgencySalaryInfo struct { + Name *GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoName `json:"name,omitempty"` // 薪酬信息名称 + Value *GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoValue `json:"value,omitempty"` // 薪酬信息内容 + Description *GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoDescription `json:"description,omitempty"` // 薪酬信息描述 +} + +// GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoDescription ... +type GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 薪酬信息中文描述 + EnUs string `json:"en_us,omitempty"` // 薪酬信息英文描述 +} + +// GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoName ... +type GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 薪酬信息中文名称 + EnUs string `json:"en_us,omitempty"` // 薪酬信息英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoValue ... +type GetHireApplicationDetailRespApplicationDetailAgencySalaryInfoValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 薪酬信息中文内容 + EnUs string `json:"en_us,omitempty"` // 薪酬信息英文内容 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfo ... +type GetHireApplicationDetailRespApplicationDetailBasicInfo struct { + ID string `json:"id,omitempty"` // 投递 ID + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息 V1](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + Stage *GetHireApplicationDetailRespApplicationDetailBasicInfoStage `json:"stage,omitempty"` // 投递处于的阶段 + ActiveStatus int64 `json:"active_status,omitempty"` // 投递活跃状态可选值有: 活跃非活跃 + DeliveryType int64 `json:"delivery_type,omitempty"` // 投递方式可选值有: HR寻访候选人主动投递 + ResumeSourceInfo *GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfo `json:"resume_source_info,omitempty"` // 投递来源信息 + WebsiteResumeSource *GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSource `json:"website_resume_source,omitempty"` // 官网投递来源(当从官网进行投递时返回) + TalentAttachmentResumeID string `json:"talent_attachment_resume_id,omitempty"` // 简历附件 ID, 详情请查看 : [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get), 「备注信息: 只有站内创投时上传的简历附件才能关联取值, 渠道/官网/内推创投的简历附件不会关联」 + StageTimeList []*GetHireApplicationDetailRespApplicationDetailBasicInfoStageTime `json:"stage_time_list,omitempty"` // 投递阶段变更时间列表 + OnboardStatus int64 `json:"onboard_status,omitempty"` // 投递入职状态可选值有: 未入职已入职 + ApplicationPreferredCityList []*GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCity `json:"application_preferred_city_list,omitempty"` // 意向投递城市列表 + TerminationReason *GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReason `json:"termination_reason,omitempty"` // 投递终止原因 + CreatorID string `json:"creator_id,omitempty"` // 投递创建者 ID, 与入参 `user_id_type` 类型一致 注意: 仅当投递创建人为企业内部员工时可获取(如员工手动上传简历 / 加入职位 / 内推), 其余情况返回为空(如候选人主动投递。当投递创建者是外部租户, user_id_type默认为lark_id + OwnerID string `json:"owner_id,omitempty"` // 投递所有者 ID, 与入参 `user_id_type` 类型一致 + TerminatorID string `json:"terminator_id,omitempty"` // 投递终止者 ID, 与入参 `user_id_type` 类型一致 + CreateTime string `json:"create_time,omitempty"` // 创建时间戳(单位: 毫秒) + ModifyTime string `json:"modify_time,omitempty"` // 修改时间戳(单位: 毫秒) +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCity ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCity struct { + Code string `json:"code,omitempty"` // 城市编码, 详情请参考: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + Name *GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCityName `json:"name,omitempty"` // 城市名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCityName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoApplicationPreferredCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfo ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfo struct { + ID string `json:"id,omitempty"` // 投递来源 ID, 详情请查看[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list) + Name *GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfoName `json:"name,omitempty"` // 投递来源名称 + ResumeSourceType int64 `json:"resume_source_type,omitempty"` // 投递来源类型可选值有: 内推猎头内部来源第三方招聘网站社交媒体线下来源其他外部推荐员工转岗实习生转正 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfoName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoResumeSourceInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 投递来源中文名称 + EnUs string `json:"en_us,omitempty"` // 投递来源英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoStage ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoStage struct { + ID string `json:"id,omitempty"` // 投递阶段 ID, 详情可查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + ZhName string `json:"zh_name,omitempty"` // 投递阶段中文名称 + EnName string `json:"en_name,omitempty"` // 投递阶段英文名称 + Type int64 `json:"type,omitempty"` // 阶段类型可选值有: 筛选型评估型笔试型面试型Offer型待入职已入职其它类型系统默认 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoStageTime ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoStageTime struct { + StageID string `json:"stage_id,omitempty"` // 阶段 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + EnterTime string `json:"enter_time,omitempty"` // 最近一次进入该阶段的时间(单位: 毫秒) + ExitTime string `json:"exit_time,omitempty"` // 最后一次离开时间(单位: 毫秒), 如当前在该阶段, 则为空 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReason ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReason struct { + ID string `json:"id,omitempty"` // 终止原因 ID, 详情请查看: [获取终止投递原因](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/termination_reason/list) + Name *GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonName `json:"name,omitempty"` // 终止原因名称 + Children []*GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildren `json:"children,omitempty"` // 子级终止原因 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildren ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildren struct { + ID string `json:"id,omitempty"` // 终止原因 ID, 详情请查看: [获取终止投递原因](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/termination_reason/list) + Name *GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildrenName `json:"name,omitempty"` // 终止原因名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildrenName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 终止原因中文名称 + EnUs string `json:"en_us,omitempty"` // 终止原因英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoTerminationReasonName struct { + ZhCn string `json:"zh_cn,omitempty"` // 终止原因中文名称 + EnUs string `json:"en_us,omitempty"` // 终止原因英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSource ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSource struct { + WebsiteID string `json:"website_id,omitempty"` // 官网站点 ID, 详情请查看: [获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list) + WebsiteName *GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceWebsiteName `json:"website_name,omitempty"` // 官网站点名称 + Channel *GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannel `json:"channel,omitempty"` // 推广渠道来源 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannel ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannel struct { + ChannelID string `json:"channel_id,omitempty"` // 推广渠道 ID, 详情请查看[获取招聘官网推广渠道列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list) + ChannelName *GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannelChannelName `json:"channel_name,omitempty"` // 推广渠道名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannelChannelName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceChannelChannelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 推广渠道中文名称 + EnUs string `json:"en_us,omitempty"` // 推广渠道英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceWebsiteName ... +type GetHireApplicationDetailRespApplicationDetailBasicInfoWebsiteResumeSourceWebsiteName struct { + ZhCn string `json:"zh_cn,omitempty"` // 官网站点中文名称 + EnUs string `json:"en_us,omitempty"` // 官网站点英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailEmployee ... +type GetHireApplicationDetailRespApplicationDetailEmployee struct { + ID string `json:"id,omitempty"` // 员工 ID, 详情请查看: [通过员工 ID 获取入职信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/employee/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + OnboardStatus int64 `json:"onboard_status,omitempty"` // 入职状态可选值有: 已入职已离职 + ConversionStatus int64 `json:"conversion_status,omitempty"` // 转正状态可选值有: 未转正已转正 + OnboardTime string `json:"onboard_time,omitempty"` // 实际入职时间戳(单位: 毫秒) + ExpectedConversionTime string `json:"expected_conversion_time,omitempty"` // 预期转正时间戳(单位: 毫秒) + ActualConversionTime string `json:"actual_conversion_time,omitempty"` // 实际转正时间戳(单位: 毫秒) + OverboardTime string `json:"overboard_time,omitempty"` // 离职时间戳(单位: 毫秒) + OverboardNote string `json:"overboard_note,omitempty"` // 离职原因 + OnboardCityCode string `json:"onboard_city_code,omitempty"` // 办公地点 + DepartmentID string `json:"department_id,omitempty"` // 入职部门 ID, 与入参 `department_id_type` 类型一致 + LeaderID string `json:"leader_id,omitempty"` // 直属上级 ID, 与入参 `user_id_type` 类型一致 + SequenceID string `json:"sequence_id,omitempty"` // 序列 ID, 与入参 `job_family_id_type` 类型一致 + LevelID string `json:"level_id,omitempty"` // 职级 ID, 与入参 `job_level_id_type` 类型一致 + EmployeeType EmployeeType `json:"employee_type,omitempty"` // 人员类型, 与入参 `employee_type_id_type` 类型一致 + JobRequirementID string `json:"job_requirement_id,omitempty"` // 招聘需求 ID, 详情请查看: [获取招聘需求信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list_by_id) +} + +// GetHireApplicationDetailRespApplicationDetailEvaluation ... +type GetHireApplicationDetailRespApplicationDetailEvaluation struct { + ID string `json:"id,omitempty"` // 评估 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + StageID string `json:"stage_id,omitempty"` // 投递阶段 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + CreatorID string `json:"creator_id,omitempty"` // 创建人用户 ID, 与入参 `user_id_type` 类型一致 + EvaluatorID string `json:"evaluator_id,omitempty"` // 评估人用户 ID, 与入参 `user_id_type` 类型一致 + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + Conclusion int64 `json:"conclusion,omitempty"` // 评估结论可选值有: 通过未通过 + Content string `json:"content,omitempty"` // 评估详情 + CreateTime string `json:"create_time,omitempty"` // 评估创建时间戳(单位: 毫秒) + UpdateTime string `json:"update_time,omitempty"` // 评估最近更新时间戳(单位: 毫秒) +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregation ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregation struct { + Interviews []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterview `json:"interviews,omitempty"` // 面试信息列表 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterview ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterview struct { + ID string `json:"id,omitempty"` // 面试 ID, 详情请查看: [获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list) + BeginTime string `json:"begin_time,omitempty"` // 面试开始时间戳(单位: 毫秒) + EndTime string `json:"end_time,omitempty"` // 面试结束时间戳(单位: 毫秒) + Round int64 `json:"round,omitempty"` // 面试轮次(从0开始计数) + InterviewRecordList []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecord `json:"interview_record_list,omitempty"` // 面试评价信息 + FeedbackSubmitTime string `json:"feedback_submit_time,omitempty"` // 面试评价提交时间戳(单位: 毫秒) + StageID string `json:"stage_id,omitempty"` // 面试关联的投递阶段 + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + Stage *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStage `json:"stage,omitempty"` // 阶段信息 + Creator *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreator `json:"creator,omitempty"` // 创建人 + CreateTime string `json:"create_time,omitempty"` // 创建时间戳(单位: 毫秒) + UpdateTime string `json:"update_time,omitempty"` // 更新时间戳(单位: 毫秒) + InterviewRoundSummary int64 `json:"interview_round_summary,omitempty"` // 面试状态可选值有: 未开始全部未评价全部通过全部淘汰爽约部分评价且均评价通过部分评价且评价中有通过有淘汰的部分评价且均评价淘汰所有面试官都提交评价且评价中有通过有淘汰的部分评价且评价中有通过和待定的部分评价且评价中有淘汰和待定的部分评级且评价均为待定部分评价且评价中有通过、待定和淘汰的所有面试官都提交评价且评价中有通过和待定的所有面试官都提交评价且评价中有待定和淘汰的所有面试官都提交评价且评价均为待定所有面试官都提交评价且评价中有通过、待定、淘汰的 + InterviewArrangementID string `json:"interview_arrangement_id,omitempty"` // 面试安排 ID + InterviewType int64 `json:"interview_type,omitempty"` // 面试类型可选值有: 现场面试电话面试视频面试 + TalentTimeZone *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZone `json:"talent_time_zone,omitempty"` // 候选人时区 + ContactUser *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUser `json:"contact_user,omitempty"` // 面试联系人 + ContactMobile string `json:"contact_mobile,omitempty"` // 面试联系人电话 + Remark string `json:"remark,omitempty"` // 备注 + Address *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddress `json:"address,omitempty"` // 面试地点 + VideoType int64 `json:"video_type,omitempty"` // 视频面试工具可选值有: Zoom牛客技术类型牛客非技术类型赛码LarkHackerrank飞书(含代码考核)不使用系统工具 + ArrangementStatus int64 `json:"arrangement_status,omitempty"` // 当安排类型为集中面试时, 此值表示集中面试的安排状态可选值有: 未开始进行中已结束已取消 + ArrangementType int64 `json:"arrangement_type,omitempty"` // 安排类型可选值有: 社招单面集中面试集体面试 + ArrangementAppointmentKind int64 `json:"arrangement_appointment_kind,omitempty"` // 安排方式(是否使用自助约面)可选值有: 直接安排自助约面 + MeetingRoomList []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewMeetingRoom `json:"meeting_room_list,omitempty"` // 面试会议室 + InterviewRoundType *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundType `json:"interview_round_type,omitempty"` // 面试轮次类型 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddress ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddress struct { + ID string `json:"id,omitempty"` // 地点 ID, 详情请查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressName `json:"name,omitempty"` // 地点名称 + District *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrict `json:"district,omitempty"` // 区域信息 + City *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCity ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCity struct { + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCityName `json:"name,omitempty"` // 城市名称 + Code string `json:"code,omitempty"` // 城市编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCityName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountry ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountry struct { + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountryName `json:"name,omitempty"` // 国家名称 + Code string `json:"code,omitempty"` // 国家编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountryName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrict ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrict struct { + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrictName `json:"name,omitempty"` // 区域名称 + Code string `json:"code,omitempty"` // 区域编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrictName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地点中文名称 + EnUs string `json:"en_us,omitempty"` // 地点英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressState ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressState struct { + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressStateName `json:"name,omitempty"` // 省名称 + Code string `json:"code,omitempty"` // 省编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressStateName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUser ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUser struct { + ID string `json:"id,omitempty"` // 面试联系人 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUserName `json:"name,omitempty"` // 面试联系人名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUserName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewContactUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试联系人中文名称 + EnUs string `json:"en_us,omitempty"` // 面试联系人英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreator ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreator struct { + ID string `json:"id,omitempty"` // 创建人 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreatorName `json:"name,omitempty"` // 创建人名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreatorName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人中文名称 + EnUs string `json:"en_us,omitempty"` // 创建人英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecord ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecord struct { + ID string `json:"id,omitempty"` // 面试评价 ID, 详情请查看: [获取面试评价详细信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/interview_record/get) + FeedbackFormID string `json:"feedback_form_id,omitempty"` // 面试评价表 ID, 详情请查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + SubmitTime string `json:"submit_time,omitempty"` // 面试评价提交时间戳(单位: 毫秒) + RecordScore *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordRecordScore `json:"record_score,omitempty"` // 面试评价分数 + Interviewer *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewer `json:"interviewer,omitempty"` // 面试官信息 + Attachments []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordAttachment `json:"attachments,omitempty"` // 面试评价附件列表 + ModuleAssessments []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessment `json:"module_assessments,omitempty"` // 模块评价列表 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordAttachment ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + CreateTime string `json:"create_time,omitempty"` // 附件创建时间戳(单位: 毫秒) +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewer ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewer struct { + ID string `json:"id,omitempty"` // 面试官用户 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewerName `json:"name,omitempty"` // 面试官名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewerName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名称 + EnUs string `json:"en_us,omitempty"` // 面试官英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessment ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessment struct { + InterviewFeedbackFormModuleID string `json:"interview_feedback_form_module_id,omitempty"` // 面试评价表模块 ID, 详情请查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)接口中的 module 的 ID + ModuleName *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentModuleName `json:"module_name,omitempty"` // 模块名称 + ModuleType int64 `json:"module_type,omitempty"` // 模块类型可选值有: 系统预置「面试结论」模块自定义模块(无模块名称) + ModuleWeight float64 `json:"module_weight,omitempty"` // 模块权重 + ModuleScore float64 `json:"module_score,omitempty"` // 模块打分(精确到小数点后两位) + DimensionAssessments []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessment `json:"dimension_assessments,omitempty"` // 模块评价 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessment ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessment struct { + InterviewFeedbackFormDimensionID string `json:"interview_feedback_form_dimension_id,omitempty"` // 对应模版中维度 ID, 详情请查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)接口中的 dimension 的 ID + DimensionName *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionName `json:"dimension_name,omitempty"` // 维度名称 + DimensionType int64 `json:"dimension_type,omitempty"` // 维度类型可选值有: 单选题多选题描述题职级建议打分题(单选)打分题(填空)系统预置-结论系统预置-得分系统预置-记录 + Weight float64 `json:"weight,omitempty"` // 维度权重 + DimensionContent string `json:"dimension_content,omitempty"` // 当维度类型为描述题时, 从此取值 + DimensionOption *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_option,omitempty"` // 当维度类型为单选题时, 从此取值 + DimensionOptions []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_options,omitempty"` // 当维度类型为多选题时, 从此取值 + DimensionScore int64 `json:"dimension_score,omitempty"` // 当维度评价方式为「打分题(填空)时」, 从此取值 + RecommendedJobLevel *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel `json:"recommended_job_level,omitempty"` // 当维度为「职级建议」时, 从此取值 + QuestionAssessments []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment `json:"question_assessments,omitempty"` // 维度关联面试题 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption struct { + ID string `json:"id,omitempty"` // 选项 ID + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName `json:"name,omitempty"` // 选项名称 + ScoreVal int64 `json:"score_val,omitempty"` // 选项对应的分数 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment struct { + QuestionType int64 `json:"question_type,omitempty"` // 所关联面试题的类型可选值有: 普通面试题目在线编程题目 + Title *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle `json:"title,omitempty"` // 关联面试题的名称 + Description *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription `json:"description,omitempty"` // 关联面试题的描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + Abilities []*GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie `json:"abilities,omitempty"` // 能力项列表 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName `json:"name,omitempty"` // 能力项名称 + Description *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription `json:"description,omitempty"` // 能力项描述 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 关联面试题的中文描述 + EnUs string `json:"en_us,omitempty"` // 关联面试题的英文描述 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 关联面试题的中文名称 + EnUs string `json:"en_us,omitempty"` // 关联面试题的英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel struct { + LowerLimitJobLevelName *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName `json:"lower_limit_job_level_name,omitempty"` // 最低职级建议 + HigherLimitJobLevelName *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName `json:"higher_limit_job_level_name,omitempty"` // 最高职级建议 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最高职级中文建议 + EnUs string `json:"en_us,omitempty"` // 最高职级英文建议 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最低职级中文建议 + EnUs string `json:"en_us,omitempty"` // 最低职级英文建议 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentModuleName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordModuleAssessmentModuleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文名称 + EnUs string `json:"en_us,omitempty"` // 模块英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordRecordScore ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRecordRecordScore struct { + Score float64 `json:"score,omitempty"` // 面试评价得分(精确到小数点后两位) + TotalScore int64 `json:"total_score,omitempty"` // 面试评价总分(精确到小数点后两位) +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundType ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundType struct { + ID string `json:"id,omitempty"` // 面试轮次类型 ID, 详情可查看: [获取面试轮次类型列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_round_type/list) + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundTypeName `json:"name,omitempty"` // 面试轮次类型名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundTypeName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewInterviewRoundTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试轮次类型中文名称 + EnUs string `json:"en_us,omitempty"` // 面试轮次类型英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewMeetingRoom ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewMeetingRoom struct { + RoomID string `json:"room_id,omitempty"` // 会议室 ID + RoomName string `json:"room_name,omitempty"` // 会议室名称 + BuildingName string `json:"building_name,omitempty"` // 建筑名称 + ReservedStatus int64 `json:"reserved_status,omitempty"` // 会议室预定状态可选值有: 预约中预约成功预约失败 + FloorName string `json:"floor_name,omitempty"` // 楼层 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStage ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStage struct { + ID string `json:"id,omitempty"` // 阶段 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStageName `json:"name,omitempty"` // 阶段名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStageName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewStageName struct { + ZhCn string `json:"zh_cn,omitempty"` // 阶段中文名称 + EnUs string `json:"en_us,omitempty"` // 阶段英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZone ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZone struct { + Code string `json:"code,omitempty"` // 时区编码 + Name *GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZoneName `json:"name,omitempty"` // 时区名称 +} + +// GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZoneName ... +type GetHireApplicationDetailRespApplicationDetailInterviewAggregationInterviewTalentTimeZoneName struct { + ZhCn string `json:"zh_cn,omitempty"` // 时区中文名称 + EnUs string `json:"en_us,omitempty"` // 时区英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailJob ... +type GetHireApplicationDetailRespApplicationDetailJob struct { + ID string `json:"id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + Name string `json:"name,omitempty"` // 职位名称 + Code string `json:"code,omitempty"` // 职位编码 +} + +// GetHireApplicationDetailRespApplicationDetailOffer ... +type GetHireApplicationDetailRespApplicationDetailOffer struct { + OfferBasic *GetHireApplicationDetailRespApplicationDetailOfferOfferBasic `json:"offer_basic,omitempty"` // Offer 基本信息 + OfferSalary *GetHireApplicationDetailRespApplicationDetailOfferOfferSalary `json:"offer_salary,omitempty"` // Offer 薪酬信息字段权限要求: 获取 Offer 薪酬 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasic ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasic struct { + ID string `json:"id,omitempty"` // Offer ID, 详情请查看: [获取 Offer 详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer/get) + OfferStatus int64 `json:"offer_status,omitempty"` // Offer 状态可选值有: Offer 已创建Offer 审批中Offer 审批已撤回Offer 审批通过Offer 审批不通过Offer 已发送Offer 被候选人接受Offer 被候选人拒绝Offer 已失效 + Leader *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeader `json:"leader,omitempty"` // 直属上级 + EmployeeType *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeType `json:"employee_type,omitempty"` // 人员类型 + Department *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartment `json:"department,omitempty"` // 部门 + Sequence *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequence `json:"sequence,omitempty"` // 序列 + Level *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevel `json:"level,omitempty"` // 级别 + CompanyMainBody *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBody `json:"company_main_body,omitempty"` // 公司主体 + JobRequirementID string `json:"job_requirement_id,omitempty"` // 招聘需求 ID, 详情请查看: [获取招聘需求信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list_by_id) + ProbationMonth int64 `json:"probation_month,omitempty"` // 试用期(单位: 月) + ContractPeriod *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicContractPeriod `json:"contract_period,omitempty"` // 合同期(年/月) + OnboardDate string `json:"onboard_date,omitempty"` // 入职日期, 格式为 YYYY-MM-DD + Owner *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwner `json:"owner,omitempty"` // Offer 负责人 + OnboardAddress *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddress `json:"onboard_address,omitempty"` // 入职地址 + WorkAddress *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddress `json:"work_address,omitempty"` // 工作地址 + Remark string `json:"remark,omitempty"` // Offer 备注 + AttachmentList []*GetHireApplicationDetailRespApplicationDetailOfferOfferBasicAttachment `json:"attachment_list,omitempty"` // 附件列表 + CustomizeInfoList []*GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCustomizeInfo `json:"customize_info_list,omitempty"` // Offer 自定义字段数据 + CreateTime string `json:"create_time,omitempty"` // Offer 创建时间戳(单位: 毫秒) +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicAttachment ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicAttachment struct { + ID string `json:"id,omitempty"` // Offer 附件 ID + Name string `json:"name,omitempty"` // Offer 附件名称 + Size int64 `json:"size,omitempty"` // Offer 附件大小 + CommonAttachmentID string `json:"common_attachment_id,omitempty"` // Offer 通用附件 ID 列表, 可通过[获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get)接口获取附件的详细信息 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBody ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBody struct { + ID string `json:"id,omitempty"` // 公司主体 ID, 详情可查看: [查询单个公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get) + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBodyName `json:"name,omitempty"` // 公司主体名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBodyName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCompanyMainBodyName struct { + ZhCn string `json:"zh_cn,omitempty"` // 公司主体中文名称 + EnUs string `json:"en_us,omitempty"` // 公司主体英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicContractPeriod ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicContractPeriod struct { + PeriodType int64 `json:"period_type,omitempty"` // 合同周期类型可选值有: 月年 + Period int64 `json:"period,omitempty"` // 合同时长 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCustomizeInfo ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicCustomizeInfo struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情可查看: [获取 Offer 申请表信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/get) + CustomizeValue string `json:"customize_value,omitempty"` // 自定义字段 Value +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartment ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参 `department_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartmentName `json:"name,omitempty"` // 部门名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartmentName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 部门中文名称 + EnUs string `json:"en_us,omitempty"` // 部门英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeType ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeType struct { + ID string `json:"id,omitempty"` // 人员类型 ID, 与入参 `employee_type_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeTypeName `json:"name,omitempty"` // 人员类型名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeTypeName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicEmployeeTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 人员类型中文名称 + EnUs string `json:"en_us,omitempty"` // 人员类型英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeader ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeader struct { + ID string `json:"id,omitempty"` // 用户 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeaderName `json:"name,omitempty"` // 直属上级名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeaderName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLeaderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 直属上级中文名称 + EnUs string `json:"en_us,omitempty"` // 直属上级英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevel ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevel struct { + ID string `json:"id,omitempty"` // 级别 ID, 与入参  `job_level_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevelName `json:"name,omitempty"` // 级别名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevelName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 级别中文名称 + EnUs string `json:"en_us,omitempty"` // 级别英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddress ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddress struct { + ID string `json:"id,omitempty"` // 入职地址 ID + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressName `json:"name,omitempty"` // 入职地址名称 + District *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrict `json:"district,omitempty"` // 区域信息 + City *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCity ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCity struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCityName `json:"name,omitempty"` // 城市名称 + Code string `json:"code,omitempty"` // 编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCityName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountry ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountry struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountryName `json:"name,omitempty"` // 国家名称 + Code string `json:"code,omitempty"` // 国家编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountryName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrict ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrict struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrictName `json:"name,omitempty"` // 区域名称 + Code string `json:"code,omitempty"` // 区域编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrictName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 入职地址中文名称 + EnUs string `json:"en_us,omitempty"` // 入职地址英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressState ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressState struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressStateName `json:"name,omitempty"` // 省名称 + Code string `json:"code,omitempty"` // 省编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressStateName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOnboardAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwner ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwner struct { + ID string `json:"id,omitempty"` // Offer 负责人用户 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwnerName `json:"name,omitempty"` // Offer 负责人名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwnerName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicOwnerName struct { + ZhCn string `json:"zh_cn,omitempty"` // Offer 负责人中文名称 + EnUs string `json:"en_us,omitempty"` // Offer 负责人英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequence ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequence struct { + ID string `json:"id,omitempty"` // 序列 ID, 与入参 `job_family_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequenceName `json:"name,omitempty"` // 序列名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequenceName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicSequenceName struct { + ZhCn string `json:"zh_cn,omitempty"` // 序列中文名称 + EnUs string `json:"en_us,omitempty"` // 序列英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddress ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddress struct { + ID string `json:"id,omitempty"` // 工作地址 ID, 详情请查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressName `json:"name,omitempty"` // 工作地址名称 + District *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrict `json:"district,omitempty"` // 区域信息 + City *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCity ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCity struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCityName `json:"name,omitempty"` // 城市信息名称 + Code string `json:"code,omitempty"` // 城市编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家 STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCityName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市信息中文名称 + EnUs string `json:"en_us,omitempty"` // 城市信息英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountry ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountry struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountryName `json:"name,omitempty"` // 国家信息名称 + Code string `json:"code,omitempty"` // 国家编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountryName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家信息中文名称 + EnUs string `json:"en_us,omitempty"` // 国家信息英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrict ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrict struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrictName `json:"name,omitempty"` // 区域信息名称 + Code string `json:"code,omitempty"` // 区域编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrictName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域信息中文名称 + EnUs string `json:"en_us,omitempty"` // 区域信息英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 工作地址中文名称 + EnUs string `json:"en_us,omitempty"` // 工作地址中文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressState ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressState struct { + Name *GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressStateName `json:"name,omitempty"` // 省名称 + Code string `json:"code,omitempty"` // 省编码 + LocationType int64 `json:"location_type,omitempty"` // 地址类型可选值有: COUNTRY 国家STATE 省CITY 市DISTRICT 区ADDRESS 地址 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressStateName ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferBasicWorkAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferSalary ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferSalary struct { + ID string `json:"id,omitempty"` // 薪酬 ID + SalaryStatus int64 `json:"salary_status,omitempty"` // 薪酬状态可选值有: 薪酬未创建薪酬已创建薪酬审批中薪酬无需审批薪酬审批已通过薪酬审批已拒绝薪酬已撤回薪酬已删除 + ProbationSalaryPercentage string `json:"probation_salary_percentage,omitempty"` // 试用期百分比 + AwardSalaryMultiple string `json:"award_salary_multiple,omitempty"` // 年终奖月数 + OptionShares string `json:"option_shares,omitempty"` // 期权股数 + QuarterlyBonus string `json:"quarterly_bonus,omitempty"` // 季度奖金额, 单位元、支持小数点后两位 + HalfYearBonus string `json:"half_year_bonus,omitempty"` // 半年奖金额, 单位元、支持小数点后两位 + TotalAnnualCash string `json:"total_annual_cash,omitempty"` // 年度现金总额(数量, 非公式), 单位元、支持小数点后两位 + CustomizeInfoList []*GetHireApplicationDetailRespApplicationDetailOfferOfferSalaryCustomizeInfo `json:"customize_info_list,omitempty"` // 薪酬自定义字段 + CreateTime string `json:"create_time,omitempty"` // 薪酬创建时间戳(单位: 毫秒) +} + +// GetHireApplicationDetailRespApplicationDetailOfferOfferSalaryCustomizeInfo ... +type GetHireApplicationDetailRespApplicationDetailOfferOfferSalaryCustomizeInfo struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情可查看: [获取 Offer 申请表信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/get) + CustomizeValue string `json:"customize_value,omitempty"` // 自定义字段 Value +} + +// GetHireApplicationDetailRespApplicationDetailPortal ... +type GetHireApplicationDetailRespApplicationDetailPortal struct { + CampusVolunteerInfo *GetHireApplicationDetailRespApplicationDetailPortalCampusVolunteerInfo `json:"campus_volunteer_info,omitempty"` // 校招志愿信息 +} + +// GetHireApplicationDetailRespApplicationDetailPortalCampusVolunteerInfo ... +type GetHireApplicationDetailRespApplicationDetailPortalCampusVolunteerInfo struct { + VolunteerSeq int64 `json:"volunteer_seq,omitempty"` // 志愿顺序 +} + +// GetHireApplicationDetailRespApplicationDetailReferral ... +type GetHireApplicationDetailRespApplicationDetailReferral struct { + BasicInfo *GetHireApplicationDetailRespApplicationDetailReferralBasicInfo `json:"basic_info,omitempty"` // 内推基本信息 + RecommendInfo *GetHireApplicationDetailRespApplicationDetailReferralRecommendInfo `json:"recommend_info,omitempty"` // 内推关联推荐信息 +} + +// GetHireApplicationDetailRespApplicationDetailReferralBasicInfo ... +type GetHireApplicationDetailRespApplicationDetailReferralBasicInfo struct { + ID string `json:"id,omitempty"` // 内推 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ReferralType int64 `json:"referral_type,omitempty"` // 内推类型可选值有: 意向推荐职位推荐 + UserInfo *GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfo `json:"user_info,omitempty"` // 内推人信息 + CreateTime string `json:"create_time,omitempty"` // 内推创建时间戳(单位: 毫秒) + ReferralMethod int64 `json:"referral_method,omitempty"` // 内推方法可选值有: 正常内推内推码特别内推码H5 内推HR 代为内推 +} + +// GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfo ... +type GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfo struct { + ID string `json:"id,omitempty"` // 用户 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfoName `json:"name,omitempty"` // 用户名称 +} + +// GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfoName ... +type GetHireApplicationDetailRespApplicationDetailReferralBasicInfoUserInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 用户中文名称 + EnUs string `json:"en_us,omitempty"` // 用户英文名称 +} + +// GetHireApplicationDetailRespApplicationDetailReferralRecommendInfo ... +type GetHireApplicationDetailRespApplicationDetailReferralRecommendInfo struct { + Relationship int64 `json:"relationship,omitempty"` // 与内推人关系可选值有: 无关系直系亲属 + Familiarity int64 `json:"familiarity,omitempty"` // 熟悉程度可选值有: 不熟悉熟悉 + Comment string `json:"comment,omitempty"` // 推荐语 + SpecificRelationship *GetHireApplicationDetailRespApplicationDetailReferralRecommendInfoSpecificRelationship `json:"specific_relationship,omitempty"` // 特殊关系 + WorkAbilityFamiliarity int64 `json:"work_ability_familiarity,omitempty"` // 工作能力熟悉程度可选值有: 非常熟悉比较熟悉一般熟悉不熟悉 + MatchDegree int64 `json:"match_degree,omitempty"` // 匹配度可选值有: 非常匹配比较匹配一般匹配不匹配 +} + +// GetHireApplicationDetailRespApplicationDetailReferralRecommendInfoSpecificRelationship ... +type GetHireApplicationDetailRespApplicationDetailReferralRecommendInfoSpecificRelationship struct { + RelationWithCandidate int64 `json:"relation_with_candidate,omitempty"` // 与候选人的关系可选值有: 前同事朋友其他 + Extra string `json:"extra,omitempty"` // 附加信息 +} + +// GetHireApplicationDetailRespApplicationDetailTalent ... +type GetHireApplicationDetailRespApplicationDetailTalent struct { + ID string `json:"id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息 V1](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + Name string `json:"name,omitempty"` // 人才名称 + MobileCode string `json:"mobile_code,omitempty"` // 人才手机国家区号 + MobileNumber string `json:"mobile_number,omitempty"` // 人才手机号 + Email string `json:"email,omitempty"` // 人才邮箱 +} + +// getHireApplicationDetailResp ... +type getHireApplicationDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireApplicationDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_application_recover.go b/api_hire_application_recover.go new file mode 100644 index 00000000..78e21f8e --- /dev/null +++ b/api_hire_application_recover.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireApplicationRecover 根据投递 ID 将「已终止」投递进行恢复。 +// +// ## 注意事项 +// 投递被终止, 且人才未入职、未锁在其他投递才可执行此接口进行恢复。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/recover +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/application/recover +func (r *HireService) CreateHireApplicationRecover(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) { + if r.cli.mock.mockHireCreateHireApplicationRecover != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireApplicationRecover mock enable") + return r.cli.mock.mockHireCreateHireApplicationRecover(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireApplicationRecover", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/:application_id/recover", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireApplicationRecoverResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireApplicationRecover mock HireCreateHireApplicationRecover method +func (r *Mock) MockHireCreateHireApplicationRecover(f func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error)) { + r.mockHireCreateHireApplicationRecover = f +} + +// UnMockHireCreateHireApplicationRecover un-mock HireCreateHireApplicationRecover method +func (r *Mock) UnMockHireCreateHireApplicationRecover() { + r.mockHireCreateHireApplicationRecover = nil +} + +// CreateHireApplicationRecoverReq ... +type CreateHireApplicationRecoverReq struct { + ApplicationID string `path:"application_id" json:"-"` // 投递ID, 详情请参考: [获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)示例值: "12312312312" +} + +// CreateHireApplicationRecoverResp ... +type CreateHireApplicationRecoverResp struct { +} + +// createHireApplicationRecoverResp ... +type createHireApplicationRecoverResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireApplicationRecoverResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_application_terminate.go b/api_hire_application_terminate.go index c0cf1083..5237f145 100644 --- a/api_hire_application_terminate.go +++ b/api_hire_application_terminate.go @@ -65,7 +65,8 @@ type TerminateHireApplicationReq struct { } // TerminateHireApplicationResp ... -type TerminateHireApplicationResp struct{} +type TerminateHireApplicationResp struct { +} // terminateHireApplicationResp ... type terminateHireApplicationResp struct { diff --git a/api_hire_application_transfer_stage.go b/api_hire_application_transfer_stage.go new file mode 100644 index 00000000..5c04fb52 --- /dev/null +++ b/api_hire_application_transfer_stage.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// TransferHireApplicationStage 根据投递 ID 和投递阶段 ID 转移投递阶段。 +// +// ## 注意事项 +// - 当目标转移阶段或当前投递阶段为「已入职」阶段时, 无法转移。 +// - 候选人被锁定在其它投递时, 无法转移。 +// - 若「飞书招聘」-「设置」-「Offer 设置」-「Offer 审批设置」开启了「所有职位都必须进行 Offer 审批」, 且当前投递没有审批完成的 Offer, 则无法转移到「待入职」阶段。 +// - 若「飞书招聘」-「设置」-「候选人流程管理」-「招聘流程管控规则设置」中设置了管控规则, 则不满足管控规则的转移操作将无法转移。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/transfer_stage +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/transfer_stage +func (r *HireService) TransferHireApplicationStage(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) { + if r.cli.mock.mockHireTransferHireApplicationStage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#TransferHireApplicationStage mock enable") + return r.cli.mock.mockHireTransferHireApplicationStage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "TransferHireApplicationStage", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/:application_id/transfer_stage", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(transferHireApplicationStageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireTransferHireApplicationStage mock HireTransferHireApplicationStage method +func (r *Mock) MockHireTransferHireApplicationStage(f func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error)) { + r.mockHireTransferHireApplicationStage = f +} + +// UnMockHireTransferHireApplicationStage un-mock HireTransferHireApplicationStage method +func (r *Mock) UnMockHireTransferHireApplicationStage() { + r.mockHireTransferHireApplicationStage = nil +} + +// TransferHireApplicationStageReq ... +type TransferHireApplicationStageReq struct { + ApplicationID string `path:"application_id" json:"-"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "6960663240925956401" + StageID string `json:"stage_id,omitempty"` // 要转移到的阶段 ID, 可通过[获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list)接口获取示例值: "6960663240925956402" +} + +// TransferHireApplicationStageResp ... +type TransferHireApplicationStageResp struct { +} + +// transferHireApplicationStageResp ... +type transferHireApplicationStageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *TransferHireApplicationStageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_attachment_create.go b/api_hire_attachment_create.go new file mode 100644 index 00000000..f8b0ed3b --- /dev/null +++ b/api_hire_attachment_create.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" + "io" +) + +// CreateHireAttachment 在招聘系统中上传附件文件, 上传的附件为通用附件。 +// +// ## 使用限制 +// 文件大小不得超过 300 MB。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/attachment/create_attachment +func (r *HireService) CreateHireAttachment(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) { + if r.cli.mock.mockHireCreateHireAttachment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireAttachment mock enable") + return r.cli.mock.mockHireCreateHireAttachment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireAttachment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/attachments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + IsFile: true, + } + resp := new(createHireAttachmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireAttachment mock HireCreateHireAttachment method +func (r *Mock) MockHireCreateHireAttachment(f func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error)) { + r.mockHireCreateHireAttachment = f +} + +// UnMockHireCreateHireAttachment un-mock HireCreateHireAttachment method +func (r *Mock) UnMockHireCreateHireAttachment() { + r.mockHireCreateHireAttachment = nil +} + +// CreateHireAttachmentReq ... +type CreateHireAttachmentReq struct { + Content io.Reader `json:"content,omitempty"` // 文件二进制内容, 最大 300 MB +} + +// createHireAttachmentResp ... +type createHireAttachmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Message string `json:"message,omitempty"` // 错误描述 + Data *CreateHireAttachmentResp `json:"data,omitempty"` + Msg string `json:"msg,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} + +func (r *createHireAttachmentResp) SetReader(file io.Reader) { + if r.Data == nil { + r.Data = &CreateHireAttachmentResp{} + } + r.Data.File = file +} + +// CreateHireAttachmentResp ... +type CreateHireAttachmentResp struct { + File io.Reader `json:"file,omitempty"` +} diff --git a/api_hire_background_check_order_batch_query.go b/api_hire_background_check_order_batch_query.go new file mode 100644 index 00000000..d0018eea --- /dev/null +++ b/api_hire_background_check_order_batch_query.go @@ -0,0 +1,210 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryHireBackgroundCheckOrder 可根据背调 ID 列表或投递 ID 等过滤条件查询背调订单信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/background_check_order/batch_query +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/background_check_order/batch_query +func (r *HireService) BatchQueryHireBackgroundCheckOrder(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) { + if r.cli.mock.mockHireBatchQueryHireBackgroundCheckOrder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchQueryHireBackgroundCheckOrder mock enable") + return r.cli.mock.mockHireBatchQueryHireBackgroundCheckOrder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchQueryHireBackgroundCheckOrder", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/background_check_orders/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryHireBackgroundCheckOrderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchQueryHireBackgroundCheckOrder mock HireBatchQueryHireBackgroundCheckOrder method +func (r *Mock) MockHireBatchQueryHireBackgroundCheckOrder(f func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error)) { + r.mockHireBatchQueryHireBackgroundCheckOrder = f +} + +// UnMockHireBatchQueryHireBackgroundCheckOrder un-mock HireBatchQueryHireBackgroundCheckOrder method +func (r *Mock) UnMockHireBatchQueryHireBackgroundCheckOrder() { + r.mockHireBatchQueryHireBackgroundCheckOrder = nil +} + +// BatchQueryHireBackgroundCheckOrderReq ... +type BatchQueryHireBackgroundCheckOrderReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9 + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `100` + BackgroundCheckOrderIDList []string `json:"background_check_order_id_list,omitempty"` // 背调订单 ID 列表, 可通过本接口其他查询条件查询结果所得, 当传递此值, 以此值为准, 其余查询字段失效示例值: ["7412902352778840358"] 最大长度: `20` + UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间, 毫秒时间戳。需小于等于begin_end_time示例值: "1618500000000" + UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间, 毫秒时间戳。需大于等于update_start_time示例值: "1618500278663" + BeginStartTime *string `json:"begin_start_time,omitempty"` // 最早创建时间, 毫秒时间戳示例值: "1618500278663" + BeginEndTime *string `json:"begin_end_time,omitempty"` // 最晚创建时间, 毫秒时间戳示例值: "1618500278663" + ApplicationID *string `json:"application_id,omitempty"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "7398493486516799788" + OrderStatus *string `json:"order_status,omitempty"` // 订单状态示例值: "2"可选值有: 已安排已完成已终止审批中审批已撤回审批通过审批未通过 +} + +// BatchQueryHireBackgroundCheckOrderResp ... +type BatchQueryHireBackgroundCheckOrderResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*BatchQueryHireBackgroundCheckOrderRespItem `json:"items,omitempty"` // 背调订单列表 +} + +// BatchQueryHireBackgroundCheckOrderRespItem ... +type BatchQueryHireBackgroundCheckOrderRespItem struct { + OrderID string `json:"order_id,omitempty"` // 背调订单 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + OrderStatus int64 `json:"order_status,omitempty"` // 背调状态可选值有: 已安排已完成已终止审批中审批已撤回审批通过审批未通过 + AccountThirdType int64 `json:"account_third_type,omitempty"` // 供应商类型可选值有: 八方锦程背调轩渡自定义供应商 + Package string `json:"package,omitempty"` // 背调套餐名称 + Name string `json:"name,omitempty"` // 背调名称(仅用户手动录入的背调结果支持返回该字段) + FeedbackInfoList []*BatchQueryHireBackgroundCheckOrderRespItemFeedbackInfo `json:"feedback_info_list,omitempty"` // 背调报告列表, 按照报告创建时间降序排列。可通过[更新背调订单进度](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/update_progress)更新报告 + ProcessInfoList []*BatchQueryHireBackgroundCheckOrderRespItemProcessInfo `json:"process_info_list,omitempty"` // 背调进度列表, 按照更新时间降序排列。可通过[更新背调订单进度](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/update_progress)更新进度 + UploadTime string `json:"upload_time,omitempty"` // 录入时间毫秒时间戳(仅用户手动录入的背调结果支持返回该字段) + CandidateInfo *BatchQueryHireBackgroundCheckOrderRespItemCandidateInfo `json:"candidate_info,omitempty"` // 候选人信息 + CreatorInfo *BatchQueryHireBackgroundCheckOrderRespItemCreatorInfo `json:"creator_info,omitempty"` // 背调发起人信息 + ContactorInfo *BatchQueryHireBackgroundCheckOrderRespItemContactorInfo `json:"contactor_info,omitempty"` // 背调联系人信息 + BeginTime string `json:"begin_time,omitempty"` // 背调发起时间, 毫秒时间戳 + EndTime string `json:"end_time,omitempty"` // 背调结束时间, 毫秒时间戳 + Conclusion string `json:"conclusion,omitempty"` // 背调结论, 为最后一次背调报告的结果 + ProviderInfo *BatchQueryHireBackgroundCheckOrderRespItemProviderInfo `json:"provider_info,omitempty"` // 供应商信息 + CustomFieldList []*BatchQueryHireBackgroundCheckOrderRespItemCustomField `json:"custom_field_list,omitempty"` // 自定义字段模板。数据来源于[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create) + CustomDataList []*BatchQueryHireBackgroundCheckOrderRespItemCustomData `json:"custom_data_list,omitempty"` // 自定义字段值 + ExtItemInfoList []*BatchQueryHireBackgroundCheckOrderRespItemExtItemInfo `json:"ext_item_info_list,omitempty"` // 背调调查附加项列表。数据来源于[创建背调套餐和附加调查项](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_package/create) + UpdateTime string `json:"update_time,omitempty"` // 订单更新时间, 毫秒时间戳 + Geo string `json:"geo,omitempty"` // 属地可选值有: 中国大陆新加坡美东日本 + LocationCode string `json:"location_code,omitempty"` // 预计入职地点的编码, 详见[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + Remark string `json:"remark,omitempty"` // 备注 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCandidateInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemCandidateInfo struct { + Name string `json:"name,omitempty"` // 候选人姓名 + Mobile string `json:"mobile,omitempty"` // 候选人手机号字段权限要求: 查看人才手机号 + Email string `json:"email,omitempty"` // 候选人邮箱字段权限要求: 查看人才邮箱 + FirstName string `json:"first_name,omitempty"` // 候选人名字 + LastName string `json:"last_name,omitempty"` // 候选人姓氏 +} + +// BatchQueryHireBackgroundCheckOrderRespItemContactorInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemContactorInfo struct { + Name string `json:"name,omitempty"` // 联系人姓名 + Mobile string `json:"mobile,omitempty"` // 联系人手机号字段权限要求: 查看员工手机号 + Email string `json:"email,omitempty"` // 联系人邮箱字段权限要求: 查看员工邮箱 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCreatorInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemCreatorInfo struct { + UserID string `json:"user_id,omitempty"` // 发起人 ID, 与入参 `user_id_type` 类型一致 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomData ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomData struct { + Key string `json:"key,omitempty"` // 对应前文`custom_field_list`的 key + Value string `json:"value,omitempty"` // 用户填入的值 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomField ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomField struct { + Type string `json:"type,omitempty"` // 自定义字段类型可选值有: 单行文本, 最多100个汉字多行文本, 最多200个汉字数字布尔单选多选日期附件候选人简历 + Key string `json:"key,omitempty"` // 自定义字段的标识, 在同一账号内唯一 + Name *BatchQueryHireBackgroundCheckOrderRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段的名称, 用户在安排背调表单看到的控件标题 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + Description *BatchQueryHireBackgroundCheckOrderRespItemCustomFieldDescription `json:"description,omitempty"` // 自定义字段的描述, 如果是输入控件, 为用户在安排背调表单看到的 placeholder 或提示文字 + Options []*BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOption `json:"options,omitempty"` // `type` 为 `select` 或 `multiselect` 时必填, 单选或多选的选项 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomFieldDescription ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomFieldDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 自定义字段中文描述 + EnUs string `json:"en_us,omitempty"` // 自定义字段英文描述 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomFieldName ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 自定义字段中文名称 + EnUs string `json:"en_us,omitempty"` // 自定义字段英文名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOption ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOption struct { + Key string `json:"key,omitempty"` // 选项的 key + Name *BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOptionName `json:"name,omitempty"` // 选项名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOptionName ... +type BatchQueryHireBackgroundCheckOrderRespItemCustomFieldOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemExtItemInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemExtItemInfo struct { + ID string `json:"id,omitempty"` // 附加项的 ID + Name string `json:"name,omitempty"` // 附加项的名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemFeedbackInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemFeedbackInfo struct { + ID string `json:"id,omitempty"` // 背调报告 ID + AttachmentURL string `json:"attachment_url,omitempty"` // 背调信息附件下载链接(大部分供应商均支持该字段;该字段与「report_preview_url」同一供应商只能支持 1 种), 有效期1小时 + ReportPreviewURL string `json:"report_preview_url,omitempty"` // 背调预览链接(该字段与「attachment_url」同一供应商只能支持 1 种), 有效期由供应商控制 + Result string `json:"result,omitempty"` // 背调结果。招聘系统预置的背调结果有 红灯、黄灯、蓝灯、绿灯, 也可以是更新背调进度时推送的状态。 + ReportType int64 `json:"report_type,omitempty"` // 报告类型可选值有: 阶段性报告终版报告 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 + ReportName string `json:"report_name,omitempty"` // 报告名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemProcessInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemProcessInfo struct { + Process string `json:"process,omitempty"` // 中文背调进度 + UpdateTime string `json:"update_time,omitempty"` // 进度更新时间, 毫秒时间戳 + EnProcess string `json:"en_process,omitempty"` // 英文背调进度 +} + +// BatchQueryHireBackgroundCheckOrderRespItemProviderInfo ... +type BatchQueryHireBackgroundCheckOrderRespItemProviderInfo struct { + ProviderID string `json:"provider_id,omitempty"` // 供应商 ID + ProviderName *BatchQueryHireBackgroundCheckOrderRespItemProviderInfoProviderName `json:"provider_name,omitempty"` // 供应商名称 +} + +// BatchQueryHireBackgroundCheckOrderRespItemProviderInfoProviderName ... +type BatchQueryHireBackgroundCheckOrderRespItemProviderInfoProviderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 供应商中文名称 + EnUs string `json:"en_us,omitempty"` // 供应商英文名称 +} + +// batchQueryHireBackgroundCheckOrderResp ... +type batchQueryHireBackgroundCheckOrderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryHireBackgroundCheckOrderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_background_check_order_list.go b/api_hire_background_check_order_list.go new file mode 100644 index 00000000..4161b753 --- /dev/null +++ b/api_hire_background_check_order_list.go @@ -0,0 +1,206 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireBackgroundCheckOrder 根据投递 ID 或背调更新时间批量获取背调订单信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/background_check_order/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/background_check_order/list +func (r *HireService) ListHireBackgroundCheckOrder(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) { + if r.cli.mock.mockHireListHireBackgroundCheckOrder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireBackgroundCheckOrder mock enable") + return r.cli.mock.mockHireListHireBackgroundCheckOrder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireBackgroundCheckOrder", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/background_check_orders", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireBackgroundCheckOrderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireBackgroundCheckOrder mock HireListHireBackgroundCheckOrder method +func (r *Mock) MockHireListHireBackgroundCheckOrder(f func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error)) { + r.mockHireListHireBackgroundCheckOrder = f +} + +// UnMockHireListHireBackgroundCheckOrder un-mock HireListHireBackgroundCheckOrder method +func (r *Mock) UnMockHireListHireBackgroundCheckOrder() { + r.mockHireListHireBackgroundCheckOrder = nil +} + +// ListHireBackgroundCheckOrderReq ... +type ListHireBackgroundCheckOrderReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `10` 最大值: `100` + ApplicationID *string `query:"application_id" json:"-"` // 投递 ID。可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: 6985833807195212076 + UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒时间戳。需小于等于update_end_time示例值: 1638848468868 + UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒时间戳。需大于等于update_start_time示例值: 1638848468869 +} + +// ListHireBackgroundCheckOrderResp ... +type ListHireBackgroundCheckOrderResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireBackgroundCheckOrderRespItem `json:"items,omitempty"` // 背调订单列表 +} + +// ListHireBackgroundCheckOrderRespItem ... +type ListHireBackgroundCheckOrderRespItem struct { + OrderID string `json:"order_id,omitempty"` // 背调订单 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID + OrderStatus int64 `json:"order_status,omitempty"` // 背调状态可选值有: 已安排已完成已终止审批中审批已撤回审批通过审批未通过 + AccountThirdType int64 `json:"account_third_type,omitempty"` // 供应商类型可选值有: 八方锦程i背调轩渡自定义供应商 + Package string `json:"package,omitempty"` // 背调套餐名称 + Name string `json:"name,omitempty"` // 背调名称(仅用户手动录入的背调结果支持返回该字段) + FeedbackInfoList []*ListHireBackgroundCheckOrderRespItemFeedbackInfo `json:"feedback_info_list,omitempty"` // 背调报告列表, 按照报告创建时间降序排列。可通过[更新背调订单进度](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/update_progress)更新报告 + ProcessInfoList []*ListHireBackgroundCheckOrderRespItemProcessInfo `json:"process_info_list,omitempty"` // 背调进度列表, 按照更新时间降序排列。可通过[更新背调订单进度](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/update_progress)更新进度 + UploadTime string `json:"upload_time,omitempty"` // 录入时间毫秒时间戳(仅用户手动录入的背调结果支持返回该字段) + CandidateInfo *ListHireBackgroundCheckOrderRespItemCandidateInfo `json:"candidate_info,omitempty"` // 候选人信息 + CreatorInfo *ListHireBackgroundCheckOrderRespItemCreatorInfo `json:"creator_info,omitempty"` // 背调发起人信息 + ContactorInfo *ListHireBackgroundCheckOrderRespItemContactorInfo `json:"contactor_info,omitempty"` // 背调联系人信息 + BeginTime string `json:"begin_time,omitempty"` // 背调发起时间 + EndTime string `json:"end_time,omitempty"` // 背调结束时间 + Conclusion string `json:"conclusion,omitempty"` // 背调结论。为最后一次背调报告的结果 + ProviderInfo *ListHireBackgroundCheckOrderRespItemProviderInfo `json:"provider_info,omitempty"` // 供应商信息 + CustomFieldList []*ListHireBackgroundCheckOrderRespItemCustomField `json:"custom_field_list,omitempty"` // 自定义字段模板。数据来源于[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create) + CustomDataList []*ListHireBackgroundCheckOrderRespItemCustomData `json:"custom_data_list,omitempty"` // 自定义字段值 + ExtItemInfoList []*ListHireBackgroundCheckOrderRespItemExtItemInfo `json:"ext_item_info_list,omitempty"` // 背调调查附加项列表。数据来源于[创建背调套餐和附加调查项](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_package/create) + UpdateTime string `json:"update_time,omitempty"` // 订单更新时间 + Geo string `json:"geo,omitempty"` // 属地可选值有: 中国大陆新加坡美东日本 + LocationCode string `json:"location_code,omitempty"` // 预计入职地点的编码, 详见[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + Remark string `json:"remark,omitempty"` // 备注 +} + +// ListHireBackgroundCheckOrderRespItemCandidateInfo ... +type ListHireBackgroundCheckOrderRespItemCandidateInfo struct { + Name string `json:"name,omitempty"` // 姓名 + Mobile string `json:"mobile,omitempty"` // 手机号 + Email string `json:"email,omitempty"` // 邮箱 + FirstName string `json:"first_name,omitempty"` // 名字 + LastName string `json:"last_name,omitempty"` // 姓氏 +} + +// ListHireBackgroundCheckOrderRespItemContactorInfo ... +type ListHireBackgroundCheckOrderRespItemContactorInfo struct { + Name string `json:"name,omitempty"` // 姓名 + Mobile string `json:"mobile,omitempty"` // 手机号 + Email string `json:"email,omitempty"` // 邮箱 +} + +// ListHireBackgroundCheckOrderRespItemCreatorInfo ... +type ListHireBackgroundCheckOrderRespItemCreatorInfo struct { + UserID string `json:"user_id,omitempty"` // 发起人 ID, 与入参 user_id_type 类型一致 +} + +// ListHireBackgroundCheckOrderRespItemCustomData ... +type ListHireBackgroundCheckOrderRespItemCustomData struct { + Key string `json:"key,omitempty"` // 对应前文 *自定义字段模板* 的 key + Value string `json:"value,omitempty"` // 用户填入的值 +} + +// ListHireBackgroundCheckOrderRespItemCustomField ... +type ListHireBackgroundCheckOrderRespItemCustomField struct { + Type string `json:"type,omitempty"` // 自定义字段类型可选值有: 单行文本, 最多100个汉字多行文本, 最多200个汉字数字布尔单选多选日期附件候选人简历 + Key string `json:"key,omitempty"` // 自定义字段的标识, 在同一账号内唯一 + Name *ListHireBackgroundCheckOrderRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段的名称, 用户在安排背调表单看到的控件标题 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + Description *ListHireBackgroundCheckOrderRespItemCustomFieldDescription `json:"description,omitempty"` // 自定义字段的描述, 如果是输入控件, 为用户在安排背调表单看到的 placeholder 或 提示文字 + Options []*ListHireBackgroundCheckOrderRespItemCustomFieldOption `json:"options,omitempty"` // type 为 select 或 multiselect 时必填, 单选或多选的选项 +} + +// ListHireBackgroundCheckOrderRespItemCustomFieldDescription ... +type ListHireBackgroundCheckOrderRespItemCustomFieldDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireBackgroundCheckOrderRespItemCustomFieldName ... +type ListHireBackgroundCheckOrderRespItemCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireBackgroundCheckOrderRespItemCustomFieldOption ... +type ListHireBackgroundCheckOrderRespItemCustomFieldOption struct { + Key string `json:"key,omitempty"` // 选项的 key + Name *ListHireBackgroundCheckOrderRespItemCustomFieldOptionName `json:"name,omitempty"` // 选项的名称 +} + +// ListHireBackgroundCheckOrderRespItemCustomFieldOptionName ... +type ListHireBackgroundCheckOrderRespItemCustomFieldOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireBackgroundCheckOrderRespItemExtItemInfo ... +type ListHireBackgroundCheckOrderRespItemExtItemInfo struct { + ID string `json:"id,omitempty"` // 附加项的ID + Name string `json:"name,omitempty"` // 附加项的名称 +} + +// ListHireBackgroundCheckOrderRespItemFeedbackInfo ... +type ListHireBackgroundCheckOrderRespItemFeedbackInfo struct { + ID string `json:"id,omitempty"` // 背调报告 ID + AttachmentURL string `json:"attachment_url,omitempty"` // 背调信息附件下载链接(大部分供应商均支持该字段;该字段与「report_preview_url」同一供应商只能支持 1 种), 有效期1小时 + ReportPreviewURL string `json:"report_preview_url,omitempty"` // 背调预览链接(该字段与「attachment_url」同一供应商只能支持 1 种), 有效期由供应商控制 + Result string `json:"result,omitempty"` // 背调结果。招聘系统预置的背调结果有 红灯、黄灯、蓝灯、绿灯, 也可以是更新背调进度时推送的状态。 + ReportType int64 `json:"report_type,omitempty"` // 报告类型可选值有: 阶段性报告终版报告 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + ReportName string `json:"report_name,omitempty"` // 报告名称 +} + +// ListHireBackgroundCheckOrderRespItemProcessInfo ... +type ListHireBackgroundCheckOrderRespItemProcessInfo struct { + Process string `json:"process,omitempty"` // 背调进度 + UpdateTime string `json:"update_time,omitempty"` // 进度更新时间 + EnProcess string `json:"en_process,omitempty"` // 英文背调进度 +} + +// ListHireBackgroundCheckOrderRespItemProviderInfo ... +type ListHireBackgroundCheckOrderRespItemProviderInfo struct { + ProviderID string `json:"provider_id,omitempty"` // 供应商ID + ProviderName *ListHireBackgroundCheckOrderRespItemProviderInfoProviderName `json:"provider_name,omitempty"` // 供应商名称信息 +} + +// ListHireBackgroundCheckOrderRespItemProviderInfoProviderName ... +type ListHireBackgroundCheckOrderRespItemProviderInfoProviderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireBackgroundCheckOrderResp ... +type listHireBackgroundCheckOrderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireBackgroundCheckOrderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_diversity_inclusion_search.go b/api_hire_diversity_inclusion_search.go new file mode 100644 index 00000000..5f7bb664 --- /dev/null +++ b/api_hire_diversity_inclusion_search.go @@ -0,0 +1,115 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireDiversityInclusion 获取候选人的申请表附加信息。支持通过投递 ID 或者人才 ID 进行查询。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/diversity_inclusion/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/search +func (r *HireService) SearchHireDiversityInclusion(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) { + if r.cli.mock.mockHireSearchHireDiversityInclusion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireDiversityInclusion mock enable") + return r.cli.mock.mockHireSearchHireDiversityInclusion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireDiversityInclusion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/diversity_inclusions/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireDiversityInclusionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireDiversityInclusion mock HireSearchHireDiversityInclusion method +func (r *Mock) MockHireSearchHireDiversityInclusion(f func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error)) { + r.mockHireSearchHireDiversityInclusion = f +} + +// UnMockHireSearchHireDiversityInclusion un-mock HireSearchHireDiversityInclusion method +func (r *Mock) UnMockHireSearchHireDiversityInclusion() { + r.mockHireSearchHireDiversityInclusion = nil +} + +// SearchHireDiversityInclusionReq ... +type SearchHireDiversityInclusionReq struct { + TalentIDs []string `json:"talent_ids,omitempty"` // 人才 ID 列表, 如何获取人才 ID 请参考[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list) 特殊说明: 当通过人才 ID 列表查询时会返回对应人才最新投递的申请表附加信息。- 当人才 ID 列表或投递 ID 列表同时存在将以人才 ID 列表为准。- 当人才 ID 列表和投递 ID 列表都没有填写时则返回空数据。示例值: ["6784008015948283905"] 最大长度: `10` + ApplicationIDs []string `json:"application_ids,omitempty"` // 投递 ID 列表, 如何获取投递 ID 请参考[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)示例值: ["6784008015948283907"] 最大长度: `30` +} + +// SearchHireDiversityInclusionResp ... +type SearchHireDiversityInclusionResp struct { + Items []*SearchHireDiversityInclusionRespItem `json:"items,omitempty"` // 申请表附加信息列表 +} + +// SearchHireDiversityInclusionRespItem ... +type SearchHireDiversityInclusionRespItem struct { + ID string `json:"id,omitempty"` // 附加信息 ID + ApplicationID string `json:"application_id,omitempty"` // 投递ID + TalentID string `json:"talent_id,omitempty"` // 人才ID + SourceType int64 `json:"source_type,omitempty"` // 数据来源可选值有: 官网详情页 + CreateTime string `json:"create_time,omitempty"` // 创建时间毫秒时间戳 + UpdateTime string `json:"update_time,omitempty"` // 更新时间毫秒时间戳 + DiData []*SearchHireDiversityInclusionRespItemDiData `json:"di_data,omitempty"` // 附加信息 +} + +// SearchHireDiversityInclusionRespItemDiData ... +type SearchHireDiversityInclusionRespItemDiData struct { + Value string `json:"value,omitempty"` // 字段值 不同类型数据格式如下: 单选: "1" - 多选: "["1", "2"]" - 月份选择: "{"date":"2022-01"}" - 年份选择: "{"date":"2022"}" - 数字: "123" - 单行文本: "今天天气不错" - 多行文本: "该候选人优势如下: 思维敏捷, 逻辑清晰, 对业务有自己见解" - 日期范围: "[1688140800000, 1688140800000]" + ObjectAttribute *SearchHireDiversityInclusionRespItemDiDataObjectAttribute `json:"object_attribute,omitempty"` // 字段属性 +} + +// SearchHireDiversityInclusionRespItemDiDataObjectAttribute ... +type SearchHireDiversityInclusionRespItemDiDataObjectAttribute struct { + Title *SearchHireDiversityInclusionRespItemDiDataObjectAttributeTitle `json:"title,omitempty"` // 字段名称 + Description *SearchHireDiversityInclusionRespItemDiDataObjectAttributeDescription `json:"description,omitempty"` // 字段描述 + DataType int64 `json:"data_type,omitempty"` // 字段类型可选值有: 单选多选月份选择年份选择数字文本多行文本日期范围 + Tags []int64 `json:"tags,omitempty"` // 字段标签 可选值有: 1: 性别- 2: 种族- 3: 身体情况 + IsFcfData bool `json:"is_fcf_data,omitempty"` // 是否为 FCF 数据FCF: 公平考虑框架( [Fair Consideration Framework](https://www.mom.gov.sg/employment-practices/fair-consideration-framework), 简称 FCF), 该框架规定了所有新加坡的雇主必须平等的考虑新加坡劳动力的就业机会。 + IsDiData bool `json:"is_di_data,omitempty"` // 是否为 D&I 数据D&I: 多元化与包容性(Diversity and Inclusion, 简称D&I), 指的是在组织或社会中, 尊重和重视不同种类的个体, 包括种族、性别、年龄、性取向、宗教、文化背景等。多元化强调个体差异, 而包容性则是在此基础上创建一个尊重、重视并充分利用这些差异的环境。 +} + +// SearchHireDiversityInclusionRespItemDiDataObjectAttributeDescription ... +type SearchHireDiversityInclusionRespItemDiDataObjectAttributeDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// SearchHireDiversityInclusionRespItemDiDataObjectAttributeTitle ... +type SearchHireDiversityInclusionRespItemDiDataObjectAttributeTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// searchHireDiversityInclusionResp ... +type searchHireDiversityInclusionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireDiversityInclusionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_eco_account_custom_field_create.go b/api_hire_eco_account_custom_field_create.go index d69f5733..57fb73a4 100644 --- a/api_hire_eco_account_custom_field_create.go +++ b/api_hire_eco_account_custom_field_create.go @@ -89,7 +89,8 @@ type CreateHireEcoAccountCustomFieldReqCustomFieldName struct { } // CreateHireEcoAccountCustomFieldResp ... -type CreateHireEcoAccountCustomFieldResp struct{} +type CreateHireEcoAccountCustomFieldResp struct { +} // createHireEcoAccountCustomFieldResp ... type createHireEcoAccountCustomFieldResp struct { diff --git a/api_hire_eco_account_custom_field_delete_batch.go b/api_hire_eco_account_custom_field_delete_batch.go index 86a03825..abdca3d1 100644 --- a/api_hire_eco_account_custom_field_delete_batch.go +++ b/api_hire_eco_account_custom_field_delete_batch.go @@ -67,7 +67,8 @@ type BatchDeleteHireEcoAccountCustomFieldReq struct { } // BatchDeleteHireEcoAccountCustomFieldResp ... -type BatchDeleteHireEcoAccountCustomFieldResp struct{} +type BatchDeleteHireEcoAccountCustomFieldResp struct { +} // batchDeleteHireEcoAccountCustomFieldResp ... type batchDeleteHireEcoAccountCustomFieldResp struct { diff --git a/api_hire_eco_account_custom_field_update_batch.go b/api_hire_eco_account_custom_field_update_batch.go index 83ee4a4a..96fd6771 100644 --- a/api_hire_eco_account_custom_field_update_batch.go +++ b/api_hire_eco_account_custom_field_update_batch.go @@ -85,7 +85,8 @@ type BatchUpdateHireEcoAccountCustomFieldReqCustomFieldName struct { } // BatchUpdateHireEcoAccountCustomFieldResp ... -type BatchUpdateHireEcoAccountCustomFieldResp struct{} +type BatchUpdateHireEcoAccountCustomFieldResp struct { +} // batchUpdateHireEcoAccountCustomFieldResp ... type batchUpdateHireEcoAccountCustomFieldResp struct { diff --git a/api_hire_eco_background_check_custom_field_create.go b/api_hire_eco_background_check_custom_field_create.go index b8556c45..643dc4df 100644 --- a/api_hire_eco_background_check_custom_field_create.go +++ b/api_hire_eco_background_check_custom_field_create.go @@ -100,7 +100,8 @@ type CreateHireEcoBackgroundCheckCustomFieldReqCustomFieldOptionName struct { } // CreateHireEcoBackgroundCheckCustomFieldResp ... -type CreateHireEcoBackgroundCheckCustomFieldResp struct{} +type CreateHireEcoBackgroundCheckCustomFieldResp struct { +} // createHireEcoBackgroundCheckCustomFieldResp ... type createHireEcoBackgroundCheckCustomFieldResp struct { diff --git a/api_hire_eco_background_check_custom_field_delete_batch.go b/api_hire_eco_background_check_custom_field_delete_batch.go index 7f65d01f..1245bb22 100644 --- a/api_hire_eco_background_check_custom_field_delete_batch.go +++ b/api_hire_eco_background_check_custom_field_delete_batch.go @@ -65,7 +65,8 @@ type BatchDeleteHireEcoBackgroundCheckCustomFieldReq struct { } // BatchDeleteHireEcoBackgroundCheckCustomFieldResp ... -type BatchDeleteHireEcoBackgroundCheckCustomFieldResp struct{} +type BatchDeleteHireEcoBackgroundCheckCustomFieldResp struct { +} // batchDeleteHireEcoBackgroundCheckCustomFieldResp ... type batchDeleteHireEcoBackgroundCheckCustomFieldResp struct { diff --git a/api_hire_eco_background_check_custom_field_update_batch.go b/api_hire_eco_background_check_custom_field_update_batch.go index 817d355a..f726c17d 100644 --- a/api_hire_eco_background_check_custom_field_update_batch.go +++ b/api_hire_eco_background_check_custom_field_update_batch.go @@ -100,7 +100,8 @@ type BatchUpdateHireEcoBackgroundCheckCustomFieldReqCustomFieldOptionName struct } // BatchUpdateHireEcoBackgroundCheckCustomFieldResp ... -type BatchUpdateHireEcoBackgroundCheckCustomFieldResp struct{} +type BatchUpdateHireEcoBackgroundCheckCustomFieldResp struct { +} // batchUpdateHireEcoBackgroundCheckCustomFieldResp ... type batchUpdateHireEcoBackgroundCheckCustomFieldResp struct { diff --git a/api_hire_eco_background_check_package_batch_delete.go b/api_hire_eco_background_check_package_batch_delete.go index e4bef106..2734c6cd 100644 --- a/api_hire_eco_background_check_package_batch_delete.go +++ b/api_hire_eco_background_check_package_batch_delete.go @@ -64,7 +64,8 @@ type BatchDeleteHireEcoBackgroundCheckPackageReq struct { } // BatchDeleteHireEcoBackgroundCheckPackageResp ... -type BatchDeleteHireEcoBackgroundCheckPackageResp struct{} +type BatchDeleteHireEcoBackgroundCheckPackageResp struct { +} // batchDeleteHireEcoBackgroundCheckPackageResp ... type batchDeleteHireEcoBackgroundCheckPackageResp struct { diff --git a/api_hire_eco_background_check_package_batch_update.go b/api_hire_eco_background_check_package_batch_update.go index 73264bcd..acecdf77 100644 --- a/api_hire_eco_background_check_package_batch_update.go +++ b/api_hire_eco_background_check_package_batch_update.go @@ -80,7 +80,8 @@ type BatchUpdateHireEcoBackgroundCheckPackageReqPackage struct { } // BatchUpdateHireEcoBackgroundCheckPackageResp ... -type BatchUpdateHireEcoBackgroundCheckPackageResp struct{} +type BatchUpdateHireEcoBackgroundCheckPackageResp struct { +} // batchUpdateHireEcoBackgroundCheckPackageResp ... type batchUpdateHireEcoBackgroundCheckPackageResp struct { diff --git a/api_hire_eco_background_check_package_create.go b/api_hire_eco_background_check_package_create.go index 69555f70..195b1639 100644 --- a/api_hire_eco_background_check_package_create.go +++ b/api_hire_eco_background_check_package_create.go @@ -82,7 +82,8 @@ type CreateHireEcoBackgroundCheckPackageReqPackage struct { } // CreateHireEcoBackgroundCheckPackageResp ... -type CreateHireEcoBackgroundCheckPackageResp struct{} +type CreateHireEcoBackgroundCheckPackageResp struct { +} // createHireEcoBackgroundCheckPackageResp ... type createHireEcoBackgroundCheckPackageResp struct { diff --git a/api_hire_eco_background_check_progress_update.go b/api_hire_eco_background_check_progress_update.go index bf9cb0a8..471c4c9e 100644 --- a/api_hire_eco_background_check_progress_update.go +++ b/api_hire_eco_background_check_progress_update.go @@ -77,7 +77,8 @@ type UpdateHireEcoBackgroundCheckProgressReqReportFile struct { } // UpdateHireEcoBackgroundCheckProgressResp ... -type UpdateHireEcoBackgroundCheckProgressResp struct{} +type UpdateHireEcoBackgroundCheckProgressResp struct { +} // updateHireEcoBackgroundCheckProgressResp ... type updateHireEcoBackgroundCheckProgressResp struct { diff --git a/api_hire_eco_background_check_result_cancel.go b/api_hire_eco_background_check_result_cancel.go index 1c6d6743..e87a28a0 100644 --- a/api_hire_eco_background_check_result_cancel.go +++ b/api_hire_eco_background_check_result_cancel.go @@ -62,7 +62,8 @@ type CancelHireEcoBackgroundCheckReq struct { } // CancelHireEcoBackgroundCheckResp ... -type CancelHireEcoBackgroundCheckResp struct{} +type CancelHireEcoBackgroundCheckResp struct { +} // cancelHireEcoBackgroundCheckResp ... type cancelHireEcoBackgroundCheckResp struct { diff --git a/api_hire_eco_background_check_result_update.go b/api_hire_eco_background_check_result_update.go index 933f339e..9e3c9800 100644 --- a/api_hire_eco_background_check_result_update.go +++ b/api_hire_eco_background_check_result_update.go @@ -72,7 +72,8 @@ type UpdateHireEcoBackgroundCheckResultReqReportFile struct { } // UpdateHireEcoBackgroundCheckResultResp ... -type UpdateHireEcoBackgroundCheckResultResp struct{} +type UpdateHireEcoBackgroundCheckResultResp struct { +} // updateHireEcoBackgroundCheckResultResp ... type updateHireEcoBackgroundCheckResultResp struct { diff --git a/api_hire_eco_exam_login_info.go b/api_hire_eco_exam_login_info.go index bd085262..acb6ea8d 100644 --- a/api_hire_eco_exam_login_info.go +++ b/api_hire_eco_exam_login_info.go @@ -74,7 +74,8 @@ type CreateHireEcoExamLoginInfoReqExamLoginInfo struct { } // CreateHireEcoExamLoginInfoResp ... -type CreateHireEcoExamLoginInfoResp struct{} +type CreateHireEcoExamLoginInfoResp struct { +} // createHireEcoExamLoginInfoResp ... type createHireEcoExamLoginInfoResp struct { diff --git a/api_hire_eco_exam_paper_batch_delete.go b/api_hire_eco_exam_paper_batch_delete.go index 22c15950..c4a05ad6 100644 --- a/api_hire_eco_exam_paper_batch_delete.go +++ b/api_hire_eco_exam_paper_batch_delete.go @@ -65,7 +65,8 @@ type BatchDeleteHireEcoExamPaperReq struct { } // BatchDeleteHireEcoExamPaperResp ... -type BatchDeleteHireEcoExamPaperResp struct{} +type BatchDeleteHireEcoExamPaperResp struct { +} // batchDeleteHireEcoExamPaperResp ... type batchDeleteHireEcoExamPaperResp struct { diff --git a/api_hire_eco_exam_paper_batch_update.go b/api_hire_eco_exam_paper_batch_update.go index edeb1eda..a0f703c8 100644 --- a/api_hire_eco_exam_paper_batch_update.go +++ b/api_hire_eco_exam_paper_batch_update.go @@ -77,7 +77,8 @@ type BatchUpdateHireEcoExamPaperReqPaper struct { } // BatchUpdateHireEcoExamPaperResp ... -type BatchUpdateHireEcoExamPaperResp struct{} +type BatchUpdateHireEcoExamPaperResp struct { +} // batchUpdateHireEcoExamPaperResp ... type batchUpdateHireEcoExamPaperResp struct { diff --git a/api_hire_eco_exam_paper_create.go b/api_hire_eco_exam_paper_create.go index 958e1ee7..3c29159a 100644 --- a/api_hire_eco_exam_paper_create.go +++ b/api_hire_eco_exam_paper_create.go @@ -75,7 +75,8 @@ type CreateHireEcoExamPaperReqPaper struct { } // CreateHireEcoExamPaperResp ... -type CreateHireEcoExamPaperResp struct{} +type CreateHireEcoExamPaperResp struct { +} // createHireEcoExamPaperResp ... type createHireEcoExamPaperResp struct { diff --git a/api_hire_eco_exam_update_result.go b/api_hire_eco_exam_update_result.go index ddcea2e7..7c1ee482 100644 --- a/api_hire_eco_exam_update_result.go +++ b/api_hire_eco_exam_update_result.go @@ -83,7 +83,8 @@ type UpdateHiredEcoExamResultReqReport struct { } // UpdateHiredEcoExamResultResp ... -type UpdateHiredEcoExamResultResp struct{} +type UpdateHiredEcoExamResultResp struct { +} // updateHiredEcoExamResultResp ... type updateHiredEcoExamResultResp struct { diff --git a/api_hire_ehr_import_task_update.go b/api_hire_ehr_import_task_update.go index 42465b60..1f6567fa 100644 --- a/api_hire_ehr_import_task_update.go +++ b/api_hire_ehr_import_task_update.go @@ -67,7 +67,8 @@ type UpdateHireEHRImportTaskReq struct { } // UpdateHireEHRImportTaskResp ... -type UpdateHireEHRImportTaskResp struct{} +type UpdateHireEHRImportTaskResp struct { +} // updateHireEHRImportTaskResp ... type updateHireEHRImportTaskResp struct { diff --git a/api_hire_evaluation_task_list.go b/api_hire_evaluation_task_list.go new file mode 100644 index 00000000..5a834f29 --- /dev/null +++ b/api_hire_evaluation_task_list.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireEvaluationTask 根据评估人ID查询评估任务列表, 可以查询到的信息包括: 评估ID、投递ID、任务状态等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/evaluation_task/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/recruitment-process-follow-up/list-3 +func (r *HireService) ListHireEvaluationTask(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) { + if r.cli.mock.mockHireListHireEvaluationTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireEvaluationTask mock enable") + return r.cli.mock.mockHireListHireEvaluationTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireEvaluationTask", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/evaluation_tasks", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireEvaluationTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireEvaluationTask mock HireListHireEvaluationTask method +func (r *Mock) MockHireListHireEvaluationTask(f func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error)) { + r.mockHireListHireEvaluationTask = f +} + +// UnMockHireListHireEvaluationTask un-mock HireListHireEvaluationTask method +func (r *Mock) UnMockHireListHireEvaluationTask() { + r.mockHireListHireEvaluationTask = nil +} + +// ListHireEvaluationTaskReq ... +type ListHireEvaluationTaskReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + UserID string `query:"user_id" json:"-"` // 评估人 ID, 需要与user_id_type类型保持一致示例值: ou_e6139117c300506837def50545420c6a + ActivityStatus *int64 `query:"activity_status" json:"-"` // 任务状态, 不传则查询全部记录示例值: 1可选值有: 待评估已评估无需评估 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireEvaluationTaskResp ... +type ListHireEvaluationTaskResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireEvaluationTaskRespItem `json:"items,omitempty"` // 评估任务列表 +} + +// ListHireEvaluationTaskRespItem ... +type ListHireEvaluationTaskRespItem struct { + ID string `json:"id,omitempty"` // 评估 ID, 详情请查看: [获取简历评估信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/evaluation/list) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ActivityStatus int64 `json:"activity_status,omitempty"` // 任务状态可选值有: 待评估已评估无需评估 +} + +// listHireEvaluationTaskResp ... +type listHireEvaluationTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireEvaluationTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_exam_create.go b/api_hire_exam_create.go new file mode 100644 index 00000000..699982b9 --- /dev/null +++ b/api_hire_exam_create.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireExam 根据投递 ID 添加该投递下的笔试结果。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/exam/create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/exam/create +func (r *HireService) CreateHireExam(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) { + if r.cli.mock.mockHireCreateHireExam != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireExam mock enable") + return r.cli.mock.mockHireCreateHireExam(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireExam", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/exams", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireExamResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireExam mock HireCreateHireExam method +func (r *Mock) MockHireCreateHireExam(f func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error)) { + r.mockHireCreateHireExam = f +} + +// UnMockHireCreateHireExam un-mock HireCreateHireExam method +func (r *Mock) UnMockHireCreateHireExam() { + r.mockHireCreateHireExam = nil +} + +// CreateHireExamReq ... +type CreateHireExamReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)获取示例值: "6891565253964859661" + ExamResourceName string `json:"exam_resource_name,omitempty"` // 试卷名称示例值: "笔试试卷" + Score float64 `json:"score,omitempty"` // 笔试分数(精度为小数点后 1 位)示例值: 100.0 + UUID *string `json:"uuid,omitempty"` // 报告附件 ID, 可通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)上传报告附件, 生成对应附件 ID。示例值: "6949805467799537964" + OperatorID string `json:"operator_id,omitempty"` // 添加人用户 id, 与入参`user_id_type` 保持一致示例值: "ou_f476cb099ac9227c9bae09ce46112579" +} + +// CreateHireExamResp ... +type CreateHireExamResp struct { + ExamID string `json:"exam_id,omitempty"` // 笔试 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 如何获取投递信息请参考[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ExamResourceName string `json:"exam_resource_name,omitempty"` // 试卷名称 + Score float64 `json:"score,omitempty"` // 笔试分数 + UUID string `json:"uuid,omitempty"` // 附件 ID + OperatorID string `json:"operator_id,omitempty"` // 操作人用户 open_id + OperateTime string `json:"operate_time,omitempty"` // 操作时间戳(单位: 毫秒) +} + +// createHireExamResp ... +type createHireExamResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireExamResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_exam_marking_task_list.go b/api_hire_exam_marking_task_list.go new file mode 100644 index 00000000..ed648137 --- /dev/null +++ b/api_hire_exam_marking_task_list.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireExamMarkingTask 根据阅卷人ID查询员工笔试阅卷任务列表, 能查询到的信息包括: 笔试阅卷任务ID、投递ID、任务状态等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/exam_marking_task/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/recruitment-process-follow-up/list-2 +func (r *HireService) ListHireExamMarkingTask(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) { + if r.cli.mock.mockHireListHireExamMarkingTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireExamMarkingTask mock enable") + return r.cli.mock.mockHireListHireExamMarkingTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireExamMarkingTask", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/exam_marking_tasks", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireExamMarkingTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireExamMarkingTask mock HireListHireExamMarkingTask method +func (r *Mock) MockHireListHireExamMarkingTask(f func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error)) { + r.mockHireListHireExamMarkingTask = f +} + +// UnMockHireListHireExamMarkingTask un-mock HireListHireExamMarkingTask method +func (r *Mock) UnMockHireListHireExamMarkingTask() { + r.mockHireListHireExamMarkingTask = nil +} + +// ListHireExamMarkingTaskReq ... +type ListHireExamMarkingTaskReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + UserID string `query:"user_id" json:"-"` // 阅卷人 ID, 需要与user_id_type类型保持一致示例值: ou_e6139117c300506837def50545420c6a + ActivityStatus *int64 `query:"activity_status" json:"-"` // 任务状态, 不传则查询全部记录示例值: 1可选值有: 待阅卷已阅卷 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireExamMarkingTaskResp ... +type ListHireExamMarkingTaskResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireExamMarkingTaskRespItem `json:"items,omitempty"` // 笔试阅卷任务列表 +} + +// ListHireExamMarkingTaskRespItem ... +type ListHireExamMarkingTaskRespItem struct { + ID string `json:"id,omitempty"` // 笔试阅卷任务 ID + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ActivityStatus int64 `json:"activity_status,omitempty"` // 任务状态可选值有: 待阅卷已阅卷 +} + +// listHireExamMarkingTaskResp ... +type listHireExamMarkingTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireExamMarkingTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_application_list.go b/api_hire_external_application_list.go new file mode 100644 index 00000000..50d081b4 --- /dev/null +++ b/api_hire_external_application_list.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireExternalApplication 可根据人才 ID 获取人才外部投递列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/import-external-system-information/list +func (r *HireService) ListHireExternalApplication(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) { + if r.cli.mock.mockHireListHireExternalApplication != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireExternalApplication mock enable") + return r.cli.mock.mockHireListHireExternalApplication(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireExternalApplication", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_applications", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireExternalApplicationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireExternalApplication mock HireListHireExternalApplication method +func (r *Mock) MockHireListHireExternalApplication(f func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error)) { + r.mockHireListHireExternalApplication = f +} + +// UnMockHireListHireExternalApplication un-mock HireListHireExternalApplication method +func (r *Mock) UnMockHireListHireExternalApplication() { + r.mockHireListHireExternalApplication = nil +} + +// ListHireExternalApplicationReq ... +type ListHireExternalApplicationReq struct { + TalentID string `query:"talent_id" json:"-"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: 6960663240925956660 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小 默认值: 10示例值: 10 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ +} + +// ListHireExternalApplicationResp ... +type ListHireExternalApplicationResp struct { + Items []*ListHireExternalApplicationRespItem `json:"items,omitempty"` // 外部投递列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireExternalApplicationRespItem ... +type ListHireExternalApplicationRespItem struct { + ID string `json:"id,omitempty"` // 外部投递 ID + JobRecruitmentType int64 `json:"job_recruitment_type,omitempty"` // 职位招聘类型可选值有: 社招校招 + JobTitle string `json:"job_title,omitempty"` // 职位名称 + ResumeSource string `json:"resume_source,omitempty"` // 简历来源 + Stage string `json:"stage,omitempty"` // 阶段名称 + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + TerminationReason string `json:"termination_reason,omitempty"` // 终止原因 + DeliveryType int64 `json:"delivery_type,omitempty"` // 投递类型可选值有: HR 寻访候选人主动投递人才推荐其他 + ModifyTime int64 `json:"modify_time,omitempty"` // 投递在外部系统终止时间, 毫秒时间戳(字段类型为: int64) + CreateTime int64 `json:"create_time,omitempty"` // 投递在外部系统创建时间, 毫秒时间戳(字段类型为: int64) + TerminationType string `json:"termination_type,omitempty"` // 终止类型 +} + +// listHireExternalApplicationResp ... +type listHireExternalApplicationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireExternalApplicationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_background_check_batch_query.go b/api_hire_external_background_check_batch_query.go new file mode 100644 index 00000000..2c120100 --- /dev/null +++ b/api_hire_external_background_check_batch_query.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryHireExternalBackgroundCheck 可根据外部投递 ID 或外部背调 ID 列表查询外部背调信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/batch_query +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-background-info/batch_query +func (r *HireService) BatchQueryHireExternalBackgroundCheck(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) { + if r.cli.mock.mockHireBatchQueryHireExternalBackgroundCheck != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchQueryHireExternalBackgroundCheck mock enable") + return r.cli.mock.mockHireBatchQueryHireExternalBackgroundCheck(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchQueryHireExternalBackgroundCheck", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_background_checks/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryHireExternalBackgroundCheckResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchQueryHireExternalBackgroundCheck mock HireBatchQueryHireExternalBackgroundCheck method +func (r *Mock) MockHireBatchQueryHireExternalBackgroundCheck(f func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error)) { + r.mockHireBatchQueryHireExternalBackgroundCheck = f +} + +// UnMockHireBatchQueryHireExternalBackgroundCheck un-mock HireBatchQueryHireExternalBackgroundCheck method +func (r *Mock) UnMockHireBatchQueryHireExternalBackgroundCheck() { + r.mockHireBatchQueryHireExternalBackgroundCheck = nil +} + +// BatchQueryHireExternalBackgroundCheckReq ... +type BatchQueryHireExternalBackgroundCheckReq struct { + ExternalApplicationID *string `query:"external_application_id" json:"-"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: 6960663240925956660 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 取值范围: `1` ~ `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ== + ExternalBackgroundCheckIDList []string `json:"external_background_check_id_list,omitempty"` // 外部背调 ID 列表, 当传此值时, 仅以此值作为条件查询, 其他查询条件不生效示例值: ["6960663240925956660"] 长度范围: `0` ~ `20` +} + +// BatchQueryHireExternalBackgroundCheckResp ... +type BatchQueryHireExternalBackgroundCheckResp struct { + Items []*BatchQueryHireExternalBackgroundCheckRespItem `json:"items,omitempty"` // 外部背调 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchQueryHireExternalBackgroundCheckRespItem ... +type BatchQueryHireExternalBackgroundCheckRespItem struct { + ID string `json:"id,omitempty"` // 外部背调 ID + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 详情可查看: [查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list) + Date int64 `json:"date,omitempty"` // 背调日期, 毫秒时间戳(字段类型为: int64) + Name string `json:"name,omitempty"` // 背调名称 + Result string `json:"result,omitempty"` // 背调结果 + AttachmentList []*BatchQueryHireExternalBackgroundCheckRespItemAttachment `json:"attachment_list,omitempty"` // 背调附件列表 +} + +// BatchQueryHireExternalBackgroundCheckRespItemAttachment ... +type BatchQueryHireExternalBackgroundCheckRespItemAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情可查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + Name string `json:"name,omitempty"` // 附件名称 + Size int64 `json:"size,omitempty"` // 附件大小(单位: 字节) +} + +// batchQueryHireExternalBackgroundCheckResp ... +type batchQueryHireExternalBackgroundCheckResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryHireExternalBackgroundCheckResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_background_check_delete.go b/api_hire_external_background_check_delete.go new file mode 100644 index 00000000..ab1bd5f3 --- /dev/null +++ b/api_hire_external_background_check_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireExternalBackgroundCheck 根据外部背调 ID 删除外部背调。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/delete +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-background-info/delete +func (r *HireService) DeleteHireExternalBackgroundCheck(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireExternalBackgroundCheck != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireExternalBackgroundCheck mock enable") + return r.cli.mock.mockHireDeleteHireExternalBackgroundCheck(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireExternalBackgroundCheck", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_background_checks/:external_background_check_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireExternalBackgroundCheckResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireExternalBackgroundCheck mock HireDeleteHireExternalBackgroundCheck method +func (r *Mock) MockHireDeleteHireExternalBackgroundCheck(f func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error)) { + r.mockHireDeleteHireExternalBackgroundCheck = f +} + +// UnMockHireDeleteHireExternalBackgroundCheck un-mock HireDeleteHireExternalBackgroundCheck method +func (r *Mock) UnMockHireDeleteHireExternalBackgroundCheck() { + r.mockHireDeleteHireExternalBackgroundCheck = nil +} + +// DeleteHireExternalBackgroundCheckReq ... +type DeleteHireExternalBackgroundCheckReq struct { + ExternalBackgroundCheckID string `path:"external_background_check_id" json:"-"` // 外部背调 ID, 可通过[查询外部背调列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/batch_query)接口获取示例值: "6960663240925956660" +} + +// DeleteHireExternalBackgroundCheckResp ... +type DeleteHireExternalBackgroundCheckResp struct { +} + +// deleteHireExternalBackgroundCheckResp ... +type deleteHireExternalBackgroundCheckResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireExternalBackgroundCheckResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_background_check_update.go b/api_hire_external_background_check_update.go new file mode 100644 index 00000000..1f097371 --- /dev/null +++ b/api_hire_external_background_check_update.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireExternalBackgroundCheck 更新外部背调信息。 +// +// ## 注意事项 +// 该接口会对原背调内容进行全量覆盖更新。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/update +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-background-info/update +func (r *HireService) UpdateHireExternalBackgroundCheck(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireExternalBackgroundCheck != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireExternalBackgroundCheck mock enable") + return r.cli.mock.mockHireUpdateHireExternalBackgroundCheck(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireExternalBackgroundCheck", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_background_checks/:external_background_check_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireExternalBackgroundCheckResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireExternalBackgroundCheck mock HireUpdateHireExternalBackgroundCheck method +func (r *Mock) MockHireUpdateHireExternalBackgroundCheck(f func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error)) { + r.mockHireUpdateHireExternalBackgroundCheck = f +} + +// UnMockHireUpdateHireExternalBackgroundCheck un-mock HireUpdateHireExternalBackgroundCheck method +func (r *Mock) UnMockHireUpdateHireExternalBackgroundCheck() { + r.mockHireUpdateHireExternalBackgroundCheck = nil +} + +// UpdateHireExternalBackgroundCheckReq ... +type UpdateHireExternalBackgroundCheckReq struct { + ExternalBackgroundCheckID string `path:"external_background_check_id" json:"-"` // 外部背调 ID, 可通过[查询外部背调列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/batch_query)接口获取示例值: "6960663240925956660" + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: "7003247299220982060" + Date *int64 `json:"date,omitempty"` // 背调日期, 毫秒时间戳(字段类型为: int64)示例值: 1626602069393 + Name *string `json:"name,omitempty"` // 背调名称示例值: "张三的背调" + Result *string `json:"result,omitempty"` // 背调结果示例值: "已通过" + AttachmentIDList []string `json:"attachment_id_list,omitempty"` // 背调附件 ID 列表, 可通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)接口返回示例值: ["7003247299220982060"] +} + +// UpdateHireExternalBackgroundCheckResp ... +type UpdateHireExternalBackgroundCheckResp struct { + ExternalBackgroundCheck *UpdateHireExternalBackgroundCheckRespExternalBackgroundCheck `json:"external_background_check,omitempty"` // 外部背调 +} + +// UpdateHireExternalBackgroundCheckRespExternalBackgroundCheck ... +type UpdateHireExternalBackgroundCheckRespExternalBackgroundCheck struct { + ID string `json:"id,omitempty"` // 外部背调 ID, 详情可查看: [查询外部背调列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_background_check/batch_query) + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 详情可查看: [查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list) + Date int64 `json:"date,omitempty"` // 背调日期, 毫秒时间戳(字段类型为: int64) + Name string `json:"name,omitempty"` // 背调名称 + Result string `json:"result,omitempty"` // 背调结果 + AttachmentList []*UpdateHireExternalBackgroundCheckRespExternalBackgroundCheckAttachment `json:"attachment_list,omitempty"` // 背调附件列表 +} + +// UpdateHireExternalBackgroundCheckRespExternalBackgroundCheckAttachment ... +type UpdateHireExternalBackgroundCheckRespExternalBackgroundCheckAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情可查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + Name string `json:"name,omitempty"` // 附件名称 + Size int64 `json:"size,omitempty"` // 附件大小(单位: 字节) +} + +// updateHireExternalBackgroundCheckResp ... +type updateHireExternalBackgroundCheckResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireExternalBackgroundCheckResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_interview_assessment_update.go b/api_hire_external_interview_assessment_update.go new file mode 100644 index 00000000..284b4c29 --- /dev/null +++ b/api_hire_external_interview_assessment_update.go @@ -0,0 +1,111 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireExternalInterviewAssessment 更新外部面评部分字段, 没有填写的字段不会被更新 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview_assessment/patch +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-interview-info/patch +func (r *HireService) UpdateHireExternalInterviewAssessment(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireExternalInterviewAssessment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireExternalInterviewAssessment mock enable") + return r.cli.mock.mockHireUpdateHireExternalInterviewAssessment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireExternalInterviewAssessment", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_interview_assessments/:external_interview_assessment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireExternalInterviewAssessmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireExternalInterviewAssessment mock HireUpdateHireExternalInterviewAssessment method +func (r *Mock) MockHireUpdateHireExternalInterviewAssessment(f func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error)) { + r.mockHireUpdateHireExternalInterviewAssessment = f +} + +// UnMockHireUpdateHireExternalInterviewAssessment un-mock HireUpdateHireExternalInterviewAssessment method +func (r *Mock) UnMockHireUpdateHireExternalInterviewAssessment() { + r.mockHireUpdateHireExternalInterviewAssessment = nil +} + +// UpdateHireExternalInterviewAssessmentReq ... +type UpdateHireExternalInterviewAssessmentReq struct { + ExternalInterviewAssessmentID string `path:"external_interview_assessment_id" json:"-"` // 外部面评 ID示例值: "6930815272790114324" + Username *string `json:"username,omitempty"` // 面试官姓名示例值: "shaojiale" + Conclusion *int64 `json:"conclusion,omitempty"` // 面试结果示例值: 1可选值有: 不通过通过待定 + AssessmentDimensionList []*UpdateHireExternalInterviewAssessmentReqAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表 + Content *string `json:"content,omitempty"` // 综合记录示例值: "hello world" +} + +// UpdateHireExternalInterviewAssessmentReqAssessmentDimension ... +type UpdateHireExternalInterviewAssessmentReqAssessmentDimension struct { + Score *int64 `json:"score,omitempty"` // 打分题分数(当题目类型为「打分题」时使用)示例值: 99 + Option *string `json:"option,omitempty"` // 单选选项(当题目类型为「单选题」时使用)示例值: "opt" + Options []string `json:"options,omitempty"` // 多选选项(当题目类型为「多选题」时使用)示例值: ["opt1"] + Content *string `json:"content,omitempty"` // 描述内容(当题目类型为「描述题」时使用)示例值: "content" + AssessmentType *int64 `json:"assessment_type,omitempty"` // 题目类型示例值: 1可选值有: 打分题单选题描述题多选题 + Title *string `json:"title,omitempty"` // 题目标题示例值: "title" + Description *string `json:"description,omitempty"` // 题目描述示例值: "desc" +} + +// UpdateHireExternalInterviewAssessmentResp ... +type UpdateHireExternalInterviewAssessmentResp struct { + ExternalInterviewAssessment *UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessment `json:"external_interview_assessment,omitempty"` // 外部面评信息 +} + +// UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessment ... +type UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessment struct { + ID string `json:"id,omitempty"` // 外部面评 ID + Username string `json:"username,omitempty"` // 面试官姓名 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结果可选值有: 不通过通过待定 + AssessmentDimensionList []*UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessmentAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表 + Content string `json:"content,omitempty"` // 综合记录 + ExternalInterviewID string `json:"external_interview_id,omitempty"` // 外部面试 ID +} + +// UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessmentAssessmentDimension ... +type UpdateHireExternalInterviewAssessmentRespExternalInterviewAssessmentAssessmentDimension struct { + Score int64 `json:"score,omitempty"` // 打分题分数(当题目类型为「打分题」时使用) + Option string `json:"option,omitempty"` // 单选选项(当题目类型为「单选题」时使用) + Options []string `json:"options,omitempty"` // 多选选项(当题目类型为「多选题」时使用) + Content string `json:"content,omitempty"` // 描述内容(当题目类型为「描述题」时使用) + AssessmentType int64 `json:"assessment_type,omitempty"` // 题目类型可选值有: 打分题单选题描述题多选题 + Title string `json:"title,omitempty"` // 题目标题 + Description string `json:"description,omitempty"` // 题目描述 +} + +// updateHireExternalInterviewAssessmentResp ... +type updateHireExternalInterviewAssessmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireExternalInterviewAssessmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_interview_batch_query.go b/api_hire_external_interview_batch_query.go new file mode 100644 index 00000000..2c55834a --- /dev/null +++ b/api_hire_external_interview_batch_query.go @@ -0,0 +1,110 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryHireExternalInterview 可根据外部投递 ID 或外部面试 ID 列表查询外部面试信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview/batch_query +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-interview-info/batch_query +func (r *HireService) BatchQueryHireExternalInterview(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) { + if r.cli.mock.mockHireBatchQueryHireExternalInterview != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchQueryHireExternalInterview mock enable") + return r.cli.mock.mockHireBatchQueryHireExternalInterview(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchQueryHireExternalInterview", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_interviews/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryHireExternalInterviewResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchQueryHireExternalInterview mock HireBatchQueryHireExternalInterview method +func (r *Mock) MockHireBatchQueryHireExternalInterview(f func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error)) { + r.mockHireBatchQueryHireExternalInterview = f +} + +// UnMockHireBatchQueryHireExternalInterview un-mock HireBatchQueryHireExternalInterview method +func (r *Mock) UnMockHireBatchQueryHireExternalInterview() { + r.mockHireBatchQueryHireExternalInterview = nil +} + +// BatchQueryHireExternalInterviewReq ... +type BatchQueryHireExternalInterviewReq struct { + ExternalApplicationID *string `query:"external_application_id" json:"-"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: 6960663240925956660 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 取值范围: `1` ~ `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ== + ExternalInterviewIDList []string `json:"external_interview_id_list,omitempty"` // 外部面试 ID 列表, 当传此值时, 仅以此值作为条件查询, 其他查询条件不生效示例值: ["6960663240925956660"] 长度范围: `0` ~ `20` +} + +// BatchQueryHireExternalInterviewResp ... +type BatchQueryHireExternalInterviewResp struct { + Items []*BatchQueryHireExternalInterviewRespItem `json:"items,omitempty"` // 外部面试列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchQueryHireExternalInterviewRespItem ... +type BatchQueryHireExternalInterviewRespItem struct { + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 详情可查看: [查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list) + ID string `json:"id,omitempty"` // 外部面试 ID + ParticipateStatus int64 `json:"participate_status,omitempty"` // 参与状态可选值有: 未参与参与爽约 + BeginTime int64 `json:"begin_time,omitempty"` // 开始时间, 毫秒时间戳(字段类型为: int64) + EndTime int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳(字段类型为: int64) + InterviewAssessments []*BatchQueryHireExternalInterviewRespItemInterviewAssessment `json:"interview_assessments,omitempty"` // 面试评价列表 +} + +// BatchQueryHireExternalInterviewRespItemInterviewAssessment ... +type BatchQueryHireExternalInterviewRespItemInterviewAssessment struct { + ID string `json:"id,omitempty"` // 外部面评 ID + Username string `json:"username,omitempty"` // 面试官姓名 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结果可选值有: 不通过通过待定 + AssessmentDimensionList []*BatchQueryHireExternalInterviewRespItemInterviewAssessmentAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表 + Content string `json:"content,omitempty"` // 综合评价 +} + +// BatchQueryHireExternalInterviewRespItemInterviewAssessmentAssessmentDimension ... +type BatchQueryHireExternalInterviewRespItemInterviewAssessmentAssessmentDimension struct { + Score int64 `json:"score,omitempty"` // 打分题分数(当维度类型为「打分题」时使用) + Option string `json:"option,omitempty"` // 单选选项(当维度类型为「单选题」时使用) + Options []string `json:"options,omitempty"` // 多选选项(当维度类型为「多选题」时使用) + Content string `json:"content,omitempty"` // 描述内容(当维度类型为「描述题」时使用) + AssessmentType int64 `json:"assessment_type,omitempty"` // 维度类型可选值有: 打分题单选题描述题多选题 + Title string `json:"title,omitempty"` // 维度标题 + Description string `json:"description,omitempty"` // 维度描述 +} + +// batchQueryHireExternalInterviewResp ... +type batchQueryHireExternalInterviewResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryHireExternalInterviewResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_interview_delete.go b/api_hire_external_interview_delete.go new file mode 100644 index 00000000..e422854f --- /dev/null +++ b/api_hire_external_interview_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireExternalInterview 根据外部面试 ID 删除外部面试。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview/delete +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-interview-info/delete +func (r *HireService) DeleteHireExternalInterview(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireExternalInterview != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireExternalInterview mock enable") + return r.cli.mock.mockHireDeleteHireExternalInterview(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireExternalInterview", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_interviews/:external_interview_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireExternalInterviewResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireExternalInterview mock HireDeleteHireExternalInterview method +func (r *Mock) MockHireDeleteHireExternalInterview(f func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error)) { + r.mockHireDeleteHireExternalInterview = f +} + +// UnMockHireDeleteHireExternalInterview un-mock HireDeleteHireExternalInterview method +func (r *Mock) UnMockHireDeleteHireExternalInterview() { + r.mockHireDeleteHireExternalInterview = nil +} + +// DeleteHireExternalInterviewReq ... +type DeleteHireExternalInterviewReq struct { + ExternalInterviewID string `path:"external_interview_id" json:"-"` // 外部面试 ID, 可通过[查询外部面试列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview/batch_query)接口获取示例值: "6960663240925956660" +} + +// DeleteHireExternalInterviewResp ... +type DeleteHireExternalInterviewResp struct { +} + +// deleteHireExternalInterviewResp ... +type deleteHireExternalInterviewResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireExternalInterviewResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_interview_update.go b/api_hire_external_interview_update.go new file mode 100644 index 00000000..a25defb5 --- /dev/null +++ b/api_hire_external_interview_update.go @@ -0,0 +1,132 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireExternalInterview 更新外部面试信息。 +// +// ## 注意事项 +// 该接口会对原面试以及面试评价内容进行全量覆盖更新。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview/update +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-interview-info/update +func (r *HireService) UpdateHireExternalInterview(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireExternalInterview != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireExternalInterview mock enable") + return r.cli.mock.mockHireUpdateHireExternalInterview(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireExternalInterview", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_interviews/:external_interview_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireExternalInterviewResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireExternalInterview mock HireUpdateHireExternalInterview method +func (r *Mock) MockHireUpdateHireExternalInterview(f func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error)) { + r.mockHireUpdateHireExternalInterview = f +} + +// UnMockHireUpdateHireExternalInterview un-mock HireUpdateHireExternalInterview method +func (r *Mock) UnMockHireUpdateHireExternalInterview() { + r.mockHireUpdateHireExternalInterview = nil +} + +// UpdateHireExternalInterviewReq ... +type UpdateHireExternalInterviewReq struct { + ExternalInterviewID string `path:"external_interview_id" json:"-"` // 外部面试 ID, 可通过[查询外部面试列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_interview/batch_query)接口获取示例值: "6960663240925956660" + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: "6960663240925956437" + ParticipateStatus *int64 `json:"participate_status,omitempty"` // 参与状态示例值: 1可选值有: 未参与参与爽约 + BeginTime *int64 `json:"begin_time,omitempty"` // 开始时间, 毫秒时间戳(字段类型为: int64)示例值: 1618500278638 + EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳(字段类型为: int64)示例值: 1618500278639 + InterviewAssessments []*UpdateHireExternalInterviewReqInterviewAssessment `json:"interview_assessments,omitempty"` // 面试评价列表 +} + +// UpdateHireExternalInterviewReqInterviewAssessment ... +type UpdateHireExternalInterviewReqInterviewAssessment struct { + Username *string `json:"username,omitempty"` // 面试官姓名示例值: "张三" + Conclusion *int64 `json:"conclusion,omitempty"` // 面试结果示例值: 1可选值有: 不通过通过待定 + AssessmentDimensionList []*UpdateHireExternalInterviewReqInterviewAssessmentAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表 + Content *string `json:"content,omitempty"` // 综合评价示例值: "面试内容结果补充" +} + +// UpdateHireExternalInterviewReqInterviewAssessmentAssessmentDimension ... +type UpdateHireExternalInterviewReqInterviewAssessmentAssessmentDimension struct { + Score *int64 `json:"score,omitempty"` // 打分题分数(当维度类型为「打分题」时使用)示例值: 99 + Option *string `json:"option,omitempty"` // 单选选项(当维度类型为「单选题」时使用)示例值: "选项1" + Options []string `json:"options,omitempty"` // 多选选项(当维度类型为「多选题」时使用)示例值: ["选项1"] + Content *string `json:"content,omitempty"` // 描述内容(当维度类型为「描述题」时使用)示例值: "测试内容" + AssessmentType *int64 `json:"assessment_type,omitempty"` // 维度类型示例值: 1可选值有: 打分题单选题描述题多选题 + Title *string `json:"title,omitempty"` // 维度标题示例值: "心理测试" + Description *string `json:"description,omitempty"` // 维度描述示例值: "心理测试描述" +} + +// UpdateHireExternalInterviewResp ... +type UpdateHireExternalInterviewResp struct { + ExternalInterview *UpdateHireExternalInterviewRespExternalInterview `json:"external_interview,omitempty"` // 外部面试 +} + +// UpdateHireExternalInterviewRespExternalInterview ... +type UpdateHireExternalInterviewRespExternalInterview struct { + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID + ID string `json:"id,omitempty"` // 外部面试 ID + ParticipateStatus int64 `json:"participate_status,omitempty"` // 参与状态可选值有: 未参与参与爽约 + BeginTime int64 `json:"begin_time,omitempty"` // 开始时间, 毫秒时间戳(字段类型为: int64) + EndTime int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳(字段类型为: int64) + InterviewAssessments []*UpdateHireExternalInterviewRespExternalInterviewInterviewAssessment `json:"interview_assessments,omitempty"` // 面试评价列表 +} + +// UpdateHireExternalInterviewRespExternalInterviewInterviewAssessment ... +type UpdateHireExternalInterviewRespExternalInterviewInterviewAssessment struct { + ID string `json:"id,omitempty"` // 外部面评 ID + Username string `json:"username,omitempty"` // 面试官姓名 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结果可选值有: 不通过通过待定 + AssessmentDimensionList []*UpdateHireExternalInterviewRespExternalInterviewInterviewAssessmentAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表 + Content string `json:"content,omitempty"` // 综合评价 +} + +// UpdateHireExternalInterviewRespExternalInterviewInterviewAssessmentAssessmentDimension ... +type UpdateHireExternalInterviewRespExternalInterviewInterviewAssessmentAssessmentDimension struct { + Score int64 `json:"score,omitempty"` // 打分题分数(当维度类型为「打分题」时使用) + Option string `json:"option,omitempty"` // 单选选项(当维度类型为「单选题」时使用) + Options []string `json:"options,omitempty"` // 多选选项(当维度类型为「多选题」时使用) + Content string `json:"content,omitempty"` // 描述内容(当维度类型为「描述题」时使用) + AssessmentType int64 `json:"assessment_type,omitempty"` // 维度类型可选值有: 打分题单选题描述题多选题 + Title string `json:"title,omitempty"` // 维度标题 + Description string `json:"description,omitempty"` // 维度描述 +} + +// updateHireExternalInterviewResp ... +type updateHireExternalInterviewResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireExternalInterviewResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_offer_batch_query.go b/api_hire_external_offer_batch_query.go new file mode 100644 index 00000000..3dcbd356 --- /dev/null +++ b/api_hire_external_offer_batch_query.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchQueryHireExternalOffer 可根据外部投递 ID 或外部 Offer ID 列表查询外部 Offer 信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/batch_query +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-offer-info/batch_query +func (r *HireService) BatchQueryHireExternalOffer(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) { + if r.cli.mock.mockHireBatchQueryHireExternalOffer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchQueryHireExternalOffer mock enable") + return r.cli.mock.mockHireBatchQueryHireExternalOffer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchQueryHireExternalOffer", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_offers/batch_query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchQueryHireExternalOfferResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchQueryHireExternalOffer mock HireBatchQueryHireExternalOffer method +func (r *Mock) MockHireBatchQueryHireExternalOffer(f func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error)) { + r.mockHireBatchQueryHireExternalOffer = f +} + +// UnMockHireBatchQueryHireExternalOffer un-mock HireBatchQueryHireExternalOffer method +func (r *Mock) UnMockHireBatchQueryHireExternalOffer() { + r.mockHireBatchQueryHireExternalOffer = nil +} + +// BatchQueryHireExternalOfferReq ... +type BatchQueryHireExternalOfferReq struct { + ExternalApplicationID *string `query:"external_application_id" json:"-"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: 6960663240925956660 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ== + ExternalOfferIDList []string `json:"external_offer_id_list,omitempty"` // 外部 Offer ID 列表, 当传此值时, 仅以此值作为条件查询, 其他查询条件不生效示例值: ["6960663240925956660"] 长度范围: `0` ~ `20` +} + +// BatchQueryHireExternalOfferResp ... +type BatchQueryHireExternalOfferResp struct { + Items []*BatchQueryHireExternalOfferRespItem `json:"items,omitempty"` // 外部 Offer 列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// BatchQueryHireExternalOfferRespItem ... +type BatchQueryHireExternalOfferRespItem struct { + ID string `json:"id,omitempty"` // 外部 Offer ID + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 详情可查看: [查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list) + BizCreateTime string `json:"biz_create_time,omitempty"` // Offer 创建时间, 毫秒时间戳 + Owner string `json:"owner,omitempty"` // Offer 负责人姓名 + OfferStatus string `json:"offer_status,omitempty"` // Offer 状态 + AttachmentList []*BatchQueryHireExternalOfferRespItemAttachment `json:"attachment_list,omitempty"` // Offer 详情附件列表 +} + +// BatchQueryHireExternalOfferRespItemAttachment ... +type BatchQueryHireExternalOfferRespItemAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + Name string `json:"name,omitempty"` // 附件名称 + Size int64 `json:"size,omitempty"` // 附件大小(单位: 字节) +} + +// batchQueryHireExternalOfferResp ... +type batchQueryHireExternalOfferResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryHireExternalOfferResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_offer_create.go b/api_hire_external_offer_create.go new file mode 100644 index 00000000..1a59bebc --- /dev/null +++ b/api_hire_external_offer_create.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireExternalOffer 创建外部 Offer, 可用于导入来自其他系统的 Offer 信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/create +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-offer-info/create +func (r *HireService) CreateHireExternalOffer(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) { + if r.cli.mock.mockHireCreateHireExternalOffer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireExternalOffer mock enable") + return r.cli.mock.mockHireCreateHireExternalOffer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireExternalOffer", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_offers", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireExternalOfferResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireExternalOffer mock HireCreateHireExternalOffer method +func (r *Mock) MockHireCreateHireExternalOffer(f func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error)) { + r.mockHireCreateHireExternalOffer = f +} + +// UnMockHireCreateHireExternalOffer un-mock HireCreateHireExternalOffer method +func (r *Mock) UnMockHireCreateHireExternalOffer() { + r.mockHireCreateHireExternalOffer = nil +} + +// CreateHireExternalOfferReq ... +type CreateHireExternalOfferReq struct { + ExternalID *string `json:"external_id,omitempty"` // 外部系统 Offer 主键(仅用于幂等) - 若不传此值, 则不进行幂等校验- 若传此值, 则用于幂等校验, 同一`external_id` 24小时内仅可创建一次示例值: "729557715718" + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获得示例值: "7395015673275697419" + BizCreateTime *string `json:"biz_create_time,omitempty"` // Offer 创建时间, 毫秒时间戳示例值: "1721899352428" + Owner *string `json:"owner,omitempty"` // Offer 负责人姓名示例值: "张三" + OfferStatus *string `json:"offer_status,omitempty"` // Offer 状态示例值: "已发送" + AttachmentIDList []string `json:"attachment_id_list,omitempty"` // Offer 详情附件 ID 列表, 可通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)接口返回示例值: ["7404675264888097068"] 长度范围: `0` ~ `20` +} + +// CreateHireExternalOfferResp ... +type CreateHireExternalOfferResp struct { + ExternalOffer *CreateHireExternalOfferRespExternalOffer `json:"external_offer,omitempty"` // 外部 Offer +} + +// CreateHireExternalOfferRespExternalOffer ... +type CreateHireExternalOfferRespExternalOffer struct { + ID string `json:"id,omitempty"` // 外部 Offer ID(由飞书招聘系统生成) + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID + BizCreateTime string `json:"biz_create_time,omitempty"` // Offer 创建时间, 毫秒时间戳 + Owner string `json:"owner,omitempty"` // Offer 负责人姓名 + OfferStatus string `json:"offer_status,omitempty"` // Offer 状态 + AttachmentList []*CreateHireExternalOfferRespExternalOfferAttachment `json:"attachment_list,omitempty"` // Offer 详情附件列表 +} + +// CreateHireExternalOfferRespExternalOfferAttachment ... +type CreateHireExternalOfferRespExternalOfferAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情可查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + Name string `json:"name,omitempty"` // 附件名称 + Size int64 `json:"size,omitempty"` // 附件大小(单位: 字节) +} + +// createHireExternalOfferResp ... +type createHireExternalOfferResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireExternalOfferResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_offer_delete.go b/api_hire_external_offer_delete.go new file mode 100644 index 00000000..58067635 --- /dev/null +++ b/api_hire_external_offer_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireExternalOffer 根据外部 Offer ID 删除外部 Offer。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/delete +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-offer-info/delete +func (r *HireService) DeleteHireExternalOffer(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireExternalOffer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireExternalOffer mock enable") + return r.cli.mock.mockHireDeleteHireExternalOffer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireExternalOffer", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_offers/:external_offer_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireExternalOfferResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireExternalOffer mock HireDeleteHireExternalOffer method +func (r *Mock) MockHireDeleteHireExternalOffer(f func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error)) { + r.mockHireDeleteHireExternalOffer = f +} + +// UnMockHireDeleteHireExternalOffer un-mock HireDeleteHireExternalOffer method +func (r *Mock) UnMockHireDeleteHireExternalOffer() { + r.mockHireDeleteHireExternalOffer = nil +} + +// DeleteHireExternalOfferReq ... +type DeleteHireExternalOfferReq struct { + ExternalOfferID string `path:"external_offer_id" json:"-"` // 外部 Offer ID, 可通过[查询外部 Offer 列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/batch_query)接口获取示例值: "6960663240925956660" +} + +// DeleteHireExternalOfferResp ... +type DeleteHireExternalOfferResp struct { +} + +// deleteHireExternalOfferResp ... +type deleteHireExternalOfferResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireExternalOfferResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_offer_update.go b/api_hire_external_offer_update.go new file mode 100644 index 00000000..810fe8f4 --- /dev/null +++ b/api_hire_external_offer_update.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireExternalOffer 更新外部 Offer 信息。 +// +// ## 注意事项 +// 该接口会对原 Offer 内容进行全量覆盖更新。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/update +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-offer-info/update +func (r *HireService) UpdateHireExternalOffer(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireExternalOffer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireExternalOffer mock enable") + return r.cli.mock.mockHireUpdateHireExternalOffer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireExternalOffer", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_offers/:external_offer_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireExternalOfferResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireExternalOffer mock HireUpdateHireExternalOffer method +func (r *Mock) MockHireUpdateHireExternalOffer(f func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error)) { + r.mockHireUpdateHireExternalOffer = f +} + +// UnMockHireUpdateHireExternalOffer un-mock HireUpdateHireExternalOffer method +func (r *Mock) UnMockHireUpdateHireExternalOffer() { + r.mockHireUpdateHireExternalOffer = nil +} + +// UpdateHireExternalOfferReq ... +type UpdateHireExternalOfferReq struct { + ExternalOfferID string `path:"external_offer_id" json:"-"` // 外部 Offer ID, 可通过[查询外部 Offer 列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_offer/batch_query)接口获取示例值: "6960663240925956660" + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 可通过[查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list)接口获取示例值: "7395015673275697419" + BizCreateTime *string `json:"biz_create_time,omitempty"` // Offer 创建时间, 毫秒时间戳示例值: "1721899352428" + Owner *string `json:"owner,omitempty"` // Offer 负责人姓名示例值: "张三" + OfferStatus *string `json:"offer_status,omitempty"` // Offer 状态示例值: "已发送" + AttachmentIDList []string `json:"attachment_id_list,omitempty"` // Offer 详情附件 ID 列表, 可由[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)接口返回所得示例值: ["7404675264888097068"] 长度范围: `0` ~ `10` +} + +// UpdateHireExternalOfferResp ... +type UpdateHireExternalOfferResp struct { + ExternalOffer *UpdateHireExternalOfferRespExternalOffer `json:"external_offer,omitempty"` // 外部 Offer +} + +// UpdateHireExternalOfferRespExternalOffer ... +type UpdateHireExternalOfferRespExternalOffer struct { + ID string `json:"id,omitempty"` // 外部 Offer ID + ExternalApplicationID string `json:"external_application_id,omitempty"` // 外部投递 ID, 详情可查看: [查询外部投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/list) + BizCreateTime string `json:"biz_create_time,omitempty"` // Offer 创建时间, 毫秒时间戳 + Owner string `json:"owner,omitempty"` // Offer 负责人姓名 + OfferStatus string `json:"offer_status,omitempty"` // Offer 状态 + AttachmentList []*UpdateHireExternalOfferRespExternalOfferAttachment `json:"attachment_list,omitempty"` // Offer 详情附件列表 +} + +// UpdateHireExternalOfferRespExternalOfferAttachment ... +type UpdateHireExternalOfferRespExternalOfferAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情可查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + Name string `json:"name,omitempty"` // 附件名称 + Size int64 `json:"size,omitempty"` // 附件大小(单位: 字节) +} + +// updateHireExternalOfferResp ... +type updateHireExternalOfferResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireExternalOfferResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_referral_reward_create.go b/api_hire_external_referral_reward_create.go new file mode 100644 index 00000000..20cc51d3 --- /dev/null +++ b/api_hire_external_referral_reward_create.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireExternalReferralReward 支持将外部的内推奖励(积分/现金)导入到招聘的「内推账号」中 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_referral_reward/create +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-referral-reward-info/create +func (r *HireService) CreateHireExternalReferralReward(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) { + if r.cli.mock.mockHireCreateHireExternalReferralReward != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireExternalReferralReward mock enable") + return r.cli.mock.mockHireCreateHireExternalReferralReward(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireExternalReferralReward", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_referral_rewards", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireExternalReferralRewardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireExternalReferralReward mock HireCreateHireExternalReferralReward method +func (r *Mock) MockHireCreateHireExternalReferralReward(f func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error)) { + r.mockHireCreateHireExternalReferralReward = f +} + +// UnMockHireCreateHireExternalReferralReward un-mock HireCreateHireExternalReferralReward method +func (r *Mock) UnMockHireCreateHireExternalReferralReward() { + r.mockHireCreateHireExternalReferralReward = nil +} + +// CreateHireExternalReferralRewardReq ... +type CreateHireExternalReferralRewardReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ReferralUserID string `json:"referral_user_id,omitempty"` // 内推人 ID内推人的唯一标识, 在[获取用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)中获取示例值: "on_94a1ee5551019f18cd73d9f111898cf2" + CreateUserID *string `json:"create_user_id,omitempty"` // 奖励创建人, 管理员与内推人可见, 若不传, 则默认为「外部系统」示例值: "on_94a1ee5551019f18cd73d9f111898cf2" + ConfirmUserID *string `json:"confirm_user_id,omitempty"` // 确认人, 若导入的「内推奖励状态」为「已确认」可传入, 若不传, 则默认为「外部系统」示例值: "on_94a1ee5551019f18cd73d9f111898cf2" + PayUserID *string `json:"pay_user_id,omitempty"` // 发放人, 导入的「内推奖励状态」为「已发放」的奖励传入, 若不传, 则默认为「外部系统」示例值: "on_94a1ee5551019f18cd73d9f111898cf2" + ExternalID string `json:"external_id,omitempty"` // 外部系统奖励唯一id(仅用于幂等)示例值: "6930815272790114324" + ApplicationID *string `json:"application_id,omitempty"` // 内推的候选人投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)获取若未传入`talent_id`, 该参数必填若传入了`talent_id`, 该参数选填若同时传入了`application_id`和`talent_id`, 以`application_id`为准若不传入投递 ID(`application_id`), 当前内推奖励将无法关联到投递, 系统内无法展示该内推对应的「职位」、「职位负责人」、「offer负责人」, 对应字段将展示为「--」。示例值: "6930815272790114325" + TalentID *string `json:"talent_id,omitempty"` // 内推的候选人人才 ID若未传入`application_id`, 该参数必填若传入了`application_id`, 该参数可不填, 将以「内推的候选人投递 ID」为准示例值: "6930815272790114326" + JobID *string `json:"job_id,omitempty"` // 内推职位 ID招聘系统内的职位 ID。若不传入, 对管理员与内推人将展示为--若传入了「内推的候选人投递 ID」, 该参数可不填, 职位ID将自动以「投递ID」关联的「职位ID」为准若不传入「内推职位 ID」, 且未传入「内推的投递 ID」, 当前内推奖励将无法关联到职位, 「职位的相关权限人」(如社/校招管理员、职位负责人、协助人、用人经理等)无法看到该条内推记录示例值: "6930815272790114327" + Reason *string `json:"reason,omitempty"` // 奖励原因, 若不传则为 「--」将展示在内推奖励明细中, 管理员与内推人可见。如需与飞书招聘判定的内推奖励原因保持一致, 方便统计, 可参考下方说明传入- 若「奖励规则类型」为「过程奖励」, 建议传入如下原因: - 推荐奖励 - 进入{阶段名称}阶段 - 候选人到面奖励 - 若「奖励规则类型」为「入职奖励」, 建议传入如下原因: - 入职 - 转正 - 若「奖励规则类型」为「活动奖励」, 建议传入如下原因: - 累计推荐 n 个候选人{过程奖励或入职奖励原因} - 推荐满 n 个候选人- 若「奖励规则类型」为「开源奖励」, 建议传入如下原因: - 入职|开源 - 转正|开源示例值: "入职|开源" + RuleType int64 `json:"rule_type,omitempty"` // 导入的奖励规则类型, 将展示在内推奖励明细中, 管理员与内推人可见如需与飞书招聘内的奖励原因保持一致, 方便统一统计, 可参考下方说明传入示例值: 1可选值有: 入职奖励, 候选人入职或转正后产生的奖励过程奖励, 入职奖励外, 若候选人有阶段性进展, 则给予内推人对应的奖励活动奖励, 额外奖励, 用于支持内推周期性活动开源奖励, 若内推候选人首次进入人才库, 且在被推荐后一段时间内, 入职了规则内的任意职位的奖励其他奖励, 以上奖励无法覆盖的奖励 + Bonus *CreateHireExternalReferralRewardReqBonus `json:"bonus,omitempty"` // 奖励额度 + Stage int64 `json:"stage,omitempty"` // 导入的内推奖励状态示例值: 1可选值有: 待确认, 建议导入需人工审核的奖励明细, 导入后, 需管理员在「内推奖励管理」-「待确认」中, 手动审核确认才会展示给内推人已确认, 建议导入已通过人工审核但仍未发放的奖励明细导入后, 将展示给管理员和内推人, 奖励状态展示为「已确认」(未发放)已发放, 建议导入已发放完成的奖励明细, 导入后, 将展示给管理员和内推人, 奖励状态展示为「已发放」 + CreateTime *string `json:"create_time,omitempty"` // 奖励产生时间时间戳, 内推奖励触发时间, 若未传入, 取接口调用时间示例值: "1704720275000" + ConfirmTime *string `json:"confirm_time,omitempty"` // 确认时间时间戳, 若导入的「内推奖励状态」为「已确认」可传入, 若未传入, 取接口传入时间示例值: "1704720275000" + PayTime *string `json:"pay_time,omitempty"` // 发放时间时间戳, 若导入的「内推奖励状态」为「已确认」可传入, 若未传入, 取接口传入时间示例值: "1704720275001" + OnboardTime *string `json:"onboard_time,omitempty"` // 入职时间时间戳, 管理员与内推人可见, 当「奖励规则类型」为「入职奖励」时, 建议传入该参数示例值: "1704720275002" + ConversionTime *string `json:"conversion_time,omitempty"` // 转正时间时间戳, 管理员与内推人可见, 当「奖励规则类型」为「入职奖励」时, 建议传入该参数示例值: "1704720275003" + Comment *string `json:"comment,omitempty"` // 操作备注管理员与内推人可见, 若为空, 将展示为奖励原因示例值: "已发放" +} + +// CreateHireExternalReferralRewardReqBonus ... +type CreateHireExternalReferralRewardReqBonus struct { + BonusType int64 `json:"bonus_type,omitempty"` // 奖励发放形式示例值: 1可选值有: 积分现金默认值: `1` + PointBonus *int64 `json:"point_bonus,omitempty"` // 导入积分数量, 若奖励发放形式为现金为必填示例值: 100 + Cash *CreateHireExternalReferralRewardReqBonusCash `json:"cash,omitempty"` // 现金奖励 +} + +// CreateHireExternalReferralRewardReqBonusCash ... +type CreateHireExternalReferralRewardReqBonusCash struct { + CurrencyType string `json:"currency_type,omitempty"` // 导入现金币种, 若奖励发放形式为现金为必填, 币种参数可在[「枚举常量介绍中查询」](https://open.feishu.cn/document/server-docs/hire-v1/enum)示例值: "CNY" + Amount float64 `json:"amount,omitempty"` // 导入现金数量, 若奖励发放形式为现金为必填, 需传入非负数示例值: 100 +} + +// CreateHireExternalReferralRewardResp ... +type CreateHireExternalReferralRewardResp struct { + ID string `json:"id,omitempty"` // 创建的内推奖励的id +} + +// createHireExternalReferralRewardResp ... +type createHireExternalReferralRewardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireExternalReferralRewardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_external_referral_reward_delete.go b/api_hire_external_referral_reward_delete.go new file mode 100644 index 00000000..2368621e --- /dev/null +++ b/api_hire_external_referral_reward_delete.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireExternalReferralReward 根据外部内推奖励ID删除外部内推奖励。 +// +// ## 注意事项 +// - 仅支持删除通过[导入外部内推奖励](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_referral_reward/create)导入的内推奖励, 飞书招聘系统本身产生的内推奖励不支持删除。 +// - 删除指定外部奖励后, 「飞书招聘」- 「设置」- 「内推」-「内推奖励管理」中对应的内推奖励明细将会被删除。 +// - 若删除「已确认」、「已发放」的奖励, 内推人在「飞书招聘」-「设置」-「内推」-「我的奖励」中对应内推奖励明细将会被删除, 请注意与内推人提前沟通。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_referral_reward/delete +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/import-external-system-information/import-external-referral-reward-info/delete +func (r *HireService) DeleteHireExternalReferralReward(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireExternalReferralReward != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireExternalReferralReward mock enable") + return r.cli.mock.mockHireDeleteHireExternalReferralReward(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireExternalReferralReward", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/external_referral_rewards/:external_referral_reward_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireExternalReferralRewardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireExternalReferralReward mock HireDeleteHireExternalReferralReward method +func (r *Mock) MockHireDeleteHireExternalReferralReward(f func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error)) { + r.mockHireDeleteHireExternalReferralReward = f +} + +// UnMockHireDeleteHireExternalReferralReward un-mock HireDeleteHireExternalReferralReward method +func (r *Mock) UnMockHireDeleteHireExternalReferralReward() { + r.mockHireDeleteHireExternalReferralReward = nil +} + +// DeleteHireExternalReferralRewardReq ... +type DeleteHireExternalReferralRewardReq struct { + ExternalReferralRewardID string `path:"external_referral_reward_id" json:"-"` // 外部内推奖励ID, 通过[导入外部内推奖励](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_referral_reward/create)生成示例值: "6930815272790114324" +} + +// DeleteHireExternalReferralRewardResp ... +type DeleteHireExternalReferralRewardResp struct { +} + +// deleteHireExternalReferralRewardResp ... +type deleteHireExternalReferralRewardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireExternalReferralRewardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_feedback_form_list.go b/api_hire_interview_feedback_form_list.go new file mode 100644 index 00000000..95fbc373 --- /dev/null +++ b/api_hire_interview_feedback_form_list.go @@ -0,0 +1,218 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewFeedbackForm 获取面试评价表信息列表, 评价表信息包括题目描述、题目选项等。可用于面试评价表展示等场景。 +// +// ## 注意事项 +// - 面试评价表通过版本进行变更管理, 每次修改评价表都会更新版本, 同时变更评价表ID、模块ID、模块维度ID、选项ID、能力项ID。 +// - 当使用分页方式获取数据时, 仅能获取到最新版本的面试评价表, 当指定面试评价表 ID 列表时, 可以获取到历史版本面评评价表。 +// ## 面试评价表产品示意图 +// ![img_v3_02cu_dbef7451-9eaa-40f7-b0b4-9f2763f95d2g.jpg](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/bd4b1897cc67b112c3d8f15893e701b7_d7TrcHP0B4.jpg) +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/interview-settings/list-3 +func (r *HireService) ListHireInterviewFeedbackForm(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewFeedbackForm != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewFeedbackForm mock enable") + return r.cli.mock.mockHireListHireInterviewFeedbackForm(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewFeedbackForm", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_feedback_forms", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewFeedbackFormResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewFeedbackForm mock HireListHireInterviewFeedbackForm method +func (r *Mock) MockHireListHireInterviewFeedbackForm(f func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error)) { + r.mockHireListHireInterviewFeedbackForm = f +} + +// UnMockHireListHireInterviewFeedbackForm un-mock HireListHireInterviewFeedbackForm method +func (r *Mock) UnMockHireListHireInterviewFeedbackForm() { + r.mockHireListHireInterviewFeedbackForm = nil +} + +// ListHireInterviewFeedbackFormReq ... +type ListHireInterviewFeedbackFormReq struct { + InterviewFeedbackFormIDs []string `query:"interview_feedback_form_ids" json:"-"` // 面试评价表 ID 列表, 使用此参数时不再分页示例值: ["6969137186734393644", "7339746163921534977"] 最大值: `100` + PageSize *int64 `query:"page_size" json:"-"` // 分页大小。最大值为100, 默认值为0示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListHireInterviewFeedbackFormResp ... +type ListHireInterviewFeedbackFormResp struct { + Items []*ListHireInterviewFeedbackFormRespItem `json:"items,omitempty"` // 面试评价表信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireInterviewFeedbackFormRespItem ... +type ListHireInterviewFeedbackFormRespItem struct { + ID string `json:"id,omitempty"` // 面试评价表ID + Version int64 `json:"version,omitempty"` // 面试评价表版本号 + Name *ListHireInterviewFeedbackFormRespItemName `json:"name,omitempty"` // 面试评价表名称 + Type int64 `json:"type,omitempty"` // 面试评价表类型可选值有: 普通评价表打分评价表权重评价表 + ScoreCalculationConfig *ListHireInterviewFeedbackFormRespItemScoreCalculationConfig `json:"score_calculation_config,omitempty"` // 面试评价表打分计算配置, 当评价表类型为打分评价表(type=2)时, 该字段生效 + Modules []*ListHireInterviewFeedbackFormRespItemModule `json:"modules,omitempty"` // 面试评价表模块列表 +} + +// ListHireInterviewFeedbackFormRespItemModule ... +type ListHireInterviewFeedbackFormRespItemModule struct { + ID string `json:"id,omitempty"` // 面试评价表模块ID + Name *ListHireInterviewFeedbackFormRespItemModuleName `json:"name,omitempty"` // 模块名称 + Description *ListHireInterviewFeedbackFormRespItemModuleDescription `json:"description,omitempty"` // 模块描述 + Type int64 `json:"type,omitempty"` // 模块类型可选值有: 系统预置「面试结论」模块自定义模块 + Sequence int64 `json:"sequence,omitempty"` // 模块顺序 + Weight float64 `json:"weight,omitempty"` // 模块权重 + Dimensions []*ListHireInterviewFeedbackFormRespItemModuleDimension `json:"dimensions,omitempty"` // 模块维度列表 +} + +// ListHireInterviewFeedbackFormRespItemModuleDescription ... +type ListHireInterviewFeedbackFormRespItemModuleDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文描述 + EnUs string `json:"en_us,omitempty"` // 模块英文描述 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimension ... +type ListHireInterviewFeedbackFormRespItemModuleDimension struct { + ID string `json:"id,omitempty"` // 模块维度ID + Name *ListHireInterviewFeedbackFormRespItemModuleDimensionName `json:"name,omitempty"` // 维度名称 + Description *ListHireInterviewFeedbackFormRespItemModuleDimensionDescription `json:"description,omitempty"` // 维度描述 + Type int64 `json:"type,omitempty"` // 维度类型可选值有: 单选题多选题描述题职级建议打分题(单选)打分题(填空)系统预置-结论系统预置-得分系统预置-记录 + Enabled bool `json:"enabled,omitempty"` // 是否启用 + Sequence int64 `json:"sequence,omitempty"` // 维度顺序 + IsRequired bool `json:"is_required,omitempty"` // 是否必选 + Weight float64 `json:"weight,omitempty"` // 维度权重 + ScoreDimensionConfig *ListHireInterviewFeedbackFormRespItemModuleDimensionScoreDimensionConfig `json:"score_dimension_config,omitempty"` // 评价维度的分数配置, 适用于打分题(type = 6 或者 type =7) + OptionItems []*ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItem `json:"option_items,omitempty"` // 选项列表, 适用于单选题和多选题(单选题type=1, 多选题type=2) + DisplayNotEvident bool `json:"display_not_evident,omitempty"` // 是否展示「无法判断」选项, 仅适用于「职级建议」的维度类型(type=5) + AbilityList []*ListHireInterviewFeedbackFormRespItemModuleDimensionAbility `json:"ability_list,omitempty"` // 能力项列表, 全类型适用 + RelatedDimensionConfig *ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfig `json:"related_dimension_config,omitempty"` // 维度间关联配置 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionAbility ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionAbility struct { + ID string `json:"id,omitempty"` // 能力项ID + Name *ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityName `json:"name,omitempty"` // 能力项名称 + Description *ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityDescription ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityName ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionDescription ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文描述 + EnUs string `json:"en_us,omitempty"` // 维度英文描述 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionName ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItem ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItem struct { + ID string `json:"id,omitempty"` // 选项ID + Name *ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemName `json:"name,omitempty"` // 选项名称 + Description *ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemDescription `json:"description,omitempty"` // 选项描述 + ScoreVal int64 `json:"score_val,omitempty"` // 选项分数值 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemDescription ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文描述 + EnUs string `json:"en_us,omitempty"` // 选项英文描述 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemName ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionOptionItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfig ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfig struct { + Type int64 `json:"type,omitempty"` // 关联配置类型可选值有: 全部条件任意条件 + RelatedDimensionSettings []*ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfigRelatedDimensionSetting `json:"related_dimension_settings,omitempty"` // 关联的维度设置列表 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfigRelatedDimensionSetting ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionRelatedDimensionConfigRelatedDimensionSetting struct { + DimensionID string `json:"dimension_id,omitempty"` // 关联维度ID + RelatedOperatorType int64 `json:"related_operator_type,omitempty"` // 关联计算类型可选值有: 等于不等于包含任一不包含为空不为空 + DimensionOptionIDs []string `json:"dimension_option_ids,omitempty"` // 关联维度选项ID列表 +} + +// ListHireInterviewFeedbackFormRespItemModuleDimensionScoreDimensionConfig ... +type ListHireInterviewFeedbackFormRespItemModuleDimensionScoreDimensionConfig struct { + ScoreDimensionType int64 `json:"score_dimension_type,omitempty"` // 分数维度类型, 属于打分题的子维度类型, 包括固定分值、自定义分值可选值有: 固定分值打分题自定义分值打分题 + LowerLimitScore int64 `json:"lower_limit_score,omitempty"` // 分数下限 + UpperLimitScore int64 `json:"upper_limit_score,omitempty"` // 分数上限 +} + +// ListHireInterviewFeedbackFormRespItemModuleName ... +type ListHireInterviewFeedbackFormRespItemModuleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文名称 + EnUs string `json:"en_us,omitempty"` // 模块英文名称 +} + +// ListHireInterviewFeedbackFormRespItemName ... +type ListHireInterviewFeedbackFormRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试评价表中文名称 + EnUs string `json:"en_us,omitempty"` // 面试评价表英文名称 +} + +// ListHireInterviewFeedbackFormRespItemScoreCalculationConfig ... +type ListHireInterviewFeedbackFormRespItemScoreCalculationConfig struct { + Enabled bool `json:"enabled,omitempty"` // 是否启用 + CalculationMode int64 `json:"calculation_mode,omitempty"` // 计算类型可选值有: 计算总分计算平均分 +} + +// listHireInterviewFeedbackFormResp ... +type listHireInterviewFeedbackFormResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewFeedbackFormResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_get_by_talent.go b/api_hire_interview_get_by_talent.go new file mode 100644 index 00000000..9b6041c7 --- /dev/null +++ b/api_hire_interview_get_by_talent.go @@ -0,0 +1,279 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireInterviewByTalent 获取人才下所有面试信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/get_by_talent +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/interview/get_by_talent +func (r *HireService) GetHireInterviewByTalent(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) { + if r.cli.mock.mockHireGetHireInterviewByTalent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireInterviewByTalent mock enable") + return r.cli.mock.mockHireGetHireInterviewByTalent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireInterviewByTalent", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interviews/get_by_talent", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireInterviewByTalentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireInterviewByTalent mock HireGetHireInterviewByTalent method +func (r *Mock) MockHireGetHireInterviewByTalent(f func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error)) { + r.mockHireGetHireInterviewByTalent = f +} + +// UnMockHireGetHireInterviewByTalent un-mock HireGetHireInterviewByTalent method +func (r *Mock) UnMockHireGetHireInterviewByTalent() { + r.mockHireGetHireInterviewByTalent = nil +} + +// GetHireInterviewByTalentReq ... +type GetHireInterviewByTalentReq struct { + TalentID string `query:"talent_id" json:"-"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: 6949805467799537964 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[「获取租户职级列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` +} + +// GetHireInterviewByTalentResp ... +type GetHireInterviewByTalentResp struct { + Items []*GetHireInterviewByTalentRespItem `json:"items,omitempty"` // 投递面试列表 +} + +// GetHireInterviewByTalentRespItem ... +type GetHireInterviewByTalentRespItem struct { + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + InterviewList []*GetHireInterviewByTalentRespItemInterview `json:"interview_list,omitempty"` // 面试列表 +} + +// GetHireInterviewByTalentRespItemInterview ... +type GetHireInterviewByTalentRespItemInterview struct { + ID string `json:"id,omitempty"` // 面试 ID, 详情请查看: [获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list) + BeginTime int64 `json:"begin_time,omitempty"` // 面试开始时间, 毫秒时间戳(字段类型为: int64) + EndTime int64 `json:"end_time,omitempty"` // 面试结束时间, 毫秒时间戳(字段类型为: int64) + Round int64 `json:"round,omitempty"` // 面试轮次 + InterviewRecordList []*GetHireInterviewByTalentRespItemInterviewInterviewRecord `json:"interview_record_list,omitempty"` // 面试评价信息 + FeedbackSubmitTime int64 `json:"feedback_submit_time,omitempty"` // 面试评价提交时间, 毫秒时间戳(字段类型为: int64) + StageID string `json:"stage_id,omitempty"` // 面试关联的投递阶段, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情参考[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/external_application/create) + Stage *GetHireInterviewByTalentRespItemInterviewStage `json:"stage,omitempty"` // 阶段信息 + Creator *GetHireInterviewByTalentRespItemInterviewCreator `json:"creator,omitempty"` // 创建人信息 + BizCreateTime int64 `json:"biz_create_time,omitempty"` // 创建时间, 毫秒时间戳(字段类型为: int64) + BizModifyTime int64 `json:"biz_modify_time,omitempty"` // 最近更新时间, 毫秒时间戳(字段类型为: int64) + InterviewRoundSummary int64 `json:"interview_round_summary,omitempty"` // 面试状态可选值有: 未开始全部未评价全部通过全部淘汰爽约部分评价且均评价通过部分评价且评价中有通过有淘汰的部分评价且均评价淘汰所有面试官都提交评价且评价中有通过有淘汰的部分评价且评价中有通过和待定的部分评价且评价中有淘汰和待定的部分评级且评价均为待定部分评价且评价中有通过、待定和淘汰的所有面试官都提交评价且评价中有通过和待定的所有面试官都提交评价且评价中有待定和淘汰的所有面试官都提交评价且评价均为待定所有面试官都提交评价且评价中有通过、待定、淘汰的 + InterviewArrangementID string `json:"interview_arrangement_id,omitempty"` // 面试安排 ID + InterviewType int64 `json:"interview_type,omitempty"` // 面试类型可选值有: 现场面试电话面试视频面试 + TalentTimeZone *GetHireInterviewByTalentRespItemInterviewTalentTimeZone `json:"talent_time_zone,omitempty"` // 候选人时区 + ContactUser *GetHireInterviewByTalentRespItemInterviewContactUser `json:"contact_user,omitempty"` // 面试联系人 + ContactMobile string `json:"contact_mobile,omitempty"` // 面试联系人电话 + Remark string `json:"remark,omitempty"` // 备注 + Address *GetHireInterviewByTalentRespItemInterviewAddress `json:"address,omitempty"` // 面试地址 + VideoType int64 `json:"video_type,omitempty"` // 视频面试工具可选值有: Zoom牛客技术类型牛客非技术类型赛码飞书Hackerrank飞书(含代码考核)不使用系统工具 + ArrangementStatus int64 `json:"arrangement_status,omitempty"` // 当安排类型为集中面试时, 此值表示集中面试的安排状态。非集中面试该字段无含义。可选值有: 未开始进行中已结束 + ArrangementType int64 `json:"arrangement_type,omitempty"` // 安排类型可选值有: 社招单面集中面试 + ArrangementAppointmentKind int64 `json:"arrangement_appointment_kind,omitempty"` // 安排方式(是否使用自助约面)可选值有: 直接安排自助约面 + MeetingRoomList []*GetHireInterviewByTalentRespItemInterviewMeetingRoom `json:"meeting_room_list,omitempty"` // 面试会议室 + InterviewRoundType *GetHireInterviewByTalentRespItemInterviewInterviewRoundType `json:"interview_round_type,omitempty"` // 面试轮次类型 +} + +// GetHireInterviewByTalentRespItemInterviewAddress ... +type GetHireInterviewByTalentRespItemInterviewAddress struct { + ID string `json:"id,omitempty"` // 地址 ID, 可通过[获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list)获取 + Name *GetHireInterviewByTalentRespItemInterviewAddressName `json:"name,omitempty"` // 地址名称 + District *GetHireInterviewByTalentRespItemInterviewAddressDistrict `json:"district,omitempty"` // 区域 + City *GetHireInterviewByTalentRespItemInterviewAddressCity `json:"city,omitempty"` // 城市 + State *GetHireInterviewByTalentRespItemInterviewAddressState `json:"state,omitempty"` // 省 + Country *GetHireInterviewByTalentRespItemInterviewAddressCountry `json:"country,omitempty"` // 国家 +} + +// GetHireInterviewByTalentRespItemInterviewAddressCity ... +type GetHireInterviewByTalentRespItemInterviewAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *GetHireInterviewByTalentRespItemInterviewAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressCityName ... +type GetHireInterviewByTalentRespItemInterviewAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressCountry ... +type GetHireInterviewByTalentRespItemInterviewAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *GetHireInterviewByTalentRespItemInterviewAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressCountryName ... +type GetHireInterviewByTalentRespItemInterviewAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressDistrict ... +type GetHireInterviewByTalentRespItemInterviewAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *GetHireInterviewByTalentRespItemInterviewAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressDistrictName ... +type GetHireInterviewByTalentRespItemInterviewAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressName ... +type GetHireInterviewByTalentRespItemInterviewAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地址中文名称 + EnUs string `json:"en_us,omitempty"` // 地址英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressState ... +type GetHireInterviewByTalentRespItemInterviewAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *GetHireInterviewByTalentRespItemInterviewAddressStateName `json:"name,omitempty"` // 省名称 +} + +// GetHireInterviewByTalentRespItemInterviewAddressStateName ... +type GetHireInterviewByTalentRespItemInterviewAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewContactUser ... +type GetHireInterviewByTalentRespItemInterviewContactUser struct { + ID string `json:"id,omitempty"` // 面试联系人 ID, 与入参`user_id_type`类型一致 + Name *GetHireInterviewByTalentRespItemInterviewContactUserName `json:"name,omitempty"` // 面试联系人姓名 +} + +// GetHireInterviewByTalentRespItemInterviewContactUserName ... +type GetHireInterviewByTalentRespItemInterviewContactUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试联系人中文姓名 + EnUs string `json:"en_us,omitempty"` // 面试联系人英文姓名 +} + +// GetHireInterviewByTalentRespItemInterviewCreator ... +type GetHireInterviewByTalentRespItemInterviewCreator struct { + ID string `json:"id,omitempty"` // 创建人 ID, 与入参`user_id_type`类型一致 + Name *GetHireInterviewByTalentRespItemInterviewCreatorName `json:"name,omitempty"` // 创建人姓名 +} + +// GetHireInterviewByTalentRespItemInterviewCreatorName ... +type GetHireInterviewByTalentRespItemInterviewCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人中文姓名 + EnUs string `json:"en_us,omitempty"` // 创建人英文姓名 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRecord ... +type GetHireInterviewByTalentRespItemInterviewInterviewRecord struct { + ID string `json:"id,omitempty"` // 面试评价 ID, 详情可参考: [获取面试评价详细信息(新版)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/interview_record/get) + UserID string `json:"user_id,omitempty"` // 面试官用户 ID, 与入参`user_id_type`类型一致 + Content string `json:"content,omitempty"` // 系统预设题目内容, 来自「飞书招聘」-「设置」-「面试设置」-「面试评价表设置」的面试评价表中预设字段「记录」, 详情参考[获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + CommitStatus int64 `json:"commit_status,omitempty"` // 面试评价的提交状态可选值有: 已提交未提交 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结论可选值有: 通过未通过未开始未提交未到场待定 + InterviewScore *GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewScore `json:"interview_score,omitempty"` // 面试评分 + Interviewer *GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewer `json:"interviewer,omitempty"` // 面试官信息 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewScore ... +type GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewScore struct { + ID string `json:"id,omitempty"` // 面试评分 ID, 对应[获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)接口返回数据中的 `data.items.modules.dimensions.option_items.id` 字段 + Level int64 `json:"level,omitempty"` // 分数级别 + ZhName string `json:"zh_name,omitempty"` // 面试评分中文名称 + ZhDescription string `json:"zh_description,omitempty"` // 面试评分中文描述 + EnName string `json:"en_name,omitempty"` // 面试评分英文名称 + EnDescription string `json:"en_description,omitempty"` // 面试评分英文描述 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewer ... +type GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewer struct { + ID string `json:"id,omitempty"` // 面试官 ID, 与入参`user_id_type`类型一致 + Name *GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewerName `json:"name,omitempty"` // 面试官姓名 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewerName ... +type GetHireInterviewByTalentRespItemInterviewInterviewRecordInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文姓名 + EnUs string `json:"en_us,omitempty"` // 面试官英文姓名 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRoundType ... +type GetHireInterviewByTalentRespItemInterviewInterviewRoundType struct { + ID string `json:"id,omitempty"` // 面试轮次类型 ID + Name *GetHireInterviewByTalentRespItemInterviewInterviewRoundTypeName `json:"name,omitempty"` // 面试轮次类型名称 +} + +// GetHireInterviewByTalentRespItemInterviewInterviewRoundTypeName ... +type GetHireInterviewByTalentRespItemInterviewInterviewRoundTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试轮次类型中文名称 + EnUs string `json:"en_us,omitempty"` // 面试轮次类型英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewMeetingRoom ... +type GetHireInterviewByTalentRespItemInterviewMeetingRoom struct { + RoomID string `json:"room_id,omitempty"` // 会议室 ID, 详情可查看: [查询会议室列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room/list) + RoomName string `json:"room_name,omitempty"` // 会议室名称 + BuildingName string `json:"building_name,omitempty"` // 建筑名称 + ReservedStatus int64 `json:"reserved_status,omitempty"` // 会议室预定状态可选值有: 预约中预约成功预约失败 + FloorName string `json:"floor_name,omitempty"` // 楼层 +} + +// GetHireInterviewByTalentRespItemInterviewStage ... +type GetHireInterviewByTalentRespItemInterviewStage struct { + ID string `json:"id,omitempty"` // 投递阶段 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + Name *GetHireInterviewByTalentRespItemInterviewStageName `json:"name,omitempty"` // 阶段信息名称 +} + +// GetHireInterviewByTalentRespItemInterviewStageName ... +type GetHireInterviewByTalentRespItemInterviewStageName struct { + ZhCn string `json:"zh_cn,omitempty"` // 阶段信息中文名称 + EnUs string `json:"en_us,omitempty"` // 阶段信息英文名称 +} + +// GetHireInterviewByTalentRespItemInterviewTalentTimeZone ... +type GetHireInterviewByTalentRespItemInterviewTalentTimeZone struct { + Code string `json:"code,omitempty"` // 编码 + Name *GetHireInterviewByTalentRespItemInterviewTalentTimeZoneName `json:"name,omitempty"` // 候选人时区名称 +} + +// GetHireInterviewByTalentRespItemInterviewTalentTimeZoneName ... +type GetHireInterviewByTalentRespItemInterviewTalentTimeZoneName struct { + ZhCn string `json:"zh_cn,omitempty"` // 候选人中文时区名称 + EnUs string `json:"en_us,omitempty"` // 候选人英文时区名称 +} + +// getHireInterviewByTalentResp ... +type getHireInterviewByTalentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireInterviewByTalentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_record_attachment_get.go b/api_hire_interview_record_attachment_get.go new file mode 100644 index 00000000..40dac9dd --- /dev/null +++ b/api_hire_interview_record_attachment_get.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireInterviewRecordAttachment 获取面试记录 PDF 附件, 包含相关投递基本信息、面试评价信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_record-attachment/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/interview/get-2 +func (r *HireService) GetHireInterviewRecordAttachment(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) { + if r.cli.mock.mockHireGetHireInterviewRecordAttachment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireInterviewRecordAttachment mock enable") + return r.cli.mock.mockHireGetHireInterviewRecordAttachment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireInterviewRecordAttachment", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_records/attachments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireInterviewRecordAttachmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireInterviewRecordAttachment mock HireGetHireInterviewRecordAttachment method +func (r *Mock) MockHireGetHireInterviewRecordAttachment(f func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error)) { + r.mockHireGetHireInterviewRecordAttachment = f +} + +// UnMockHireGetHireInterviewRecordAttachment un-mock HireGetHireInterviewRecordAttachment method +func (r *Mock) UnMockHireGetHireInterviewRecordAttachment() { + r.mockHireGetHireInterviewRecordAttachment = nil +} + +// GetHireInterviewRecordAttachmentReq ... +type GetHireInterviewRecordAttachmentReq struct { + ApplicationID string `query:"application_id" json:"-"` // 投递 ID, 可通过[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get)接口获取示例值: 6949805467799537964 + InterviewRecordID *string `query:"interview_record_id" json:"-"` // 面试评价 ID, 可通过[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)接口获取, 若不填该参数, 则会获取入参投递下所有的面试评价示例值: 6969137186734393644 + Language *int64 `query:"language" json:"-"` // 面试评价语言, 用于指定附件的语言示例值: 1可选值有: 中文英文默认值: `1` +} + +// GetHireInterviewRecordAttachmentResp ... +type GetHireInterviewRecordAttachmentResp struct { + Attachment *GetHireInterviewRecordAttachmentRespAttachment `json:"attachment,omitempty"` // 附件信息 +} + +// GetHireInterviewRecordAttachmentRespAttachment ... +type GetHireInterviewRecordAttachmentRespAttachment struct { + ID string `json:"id,omitempty"` // 附件 ID + URL string `json:"url,omitempty"` // 附件下载地址, 有效期为 30 分钟 + Name string `json:"name,omitempty"` // 附件文件名 + Mime string `json:"mime,omitempty"` // 附件媒体类型/[MIME](https://baike.baidu.com/item/MIME/2900607?fr=ge_ala#2) 说明: 该接口固定返回 `application/pdf` + CreateTime string `json:"create_time,omitempty"` // 附件创建时间, 毫秒时间戳 +} + +// getHireInterviewRecordAttachmentResp ... +type getHireInterviewRecordAttachmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireInterviewRecordAttachmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_record_get.go b/api_hire_interview_record_get.go new file mode 100644 index 00000000..11c32404 --- /dev/null +++ b/api_hire_interview_record_get.go @@ -0,0 +1,222 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireInterviewRecord 获取面试评价详细信息, 如面试结论、面试得分和面试官等信息(含模块评价)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/interview_record/get +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/interview/get-3 +func (r *HireService) GetHireInterviewRecord(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) { + if r.cli.mock.mockHireGetHireInterviewRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireInterviewRecord mock enable") + return r.cli.mock.mockHireGetHireInterviewRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireInterviewRecord", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v2/interview_records/:interview_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getHireInterviewRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireInterviewRecord mock HireGetHireInterviewRecord method +func (r *Mock) MockHireGetHireInterviewRecord(f func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error)) { + r.mockHireGetHireInterviewRecord = f +} + +// UnMockHireGetHireInterviewRecord un-mock HireGetHireInterviewRecord method +func (r *Mock) UnMockHireGetHireInterviewRecord() { + r.mockHireGetHireInterviewRecord = nil +} + +// GetHireInterviewRecordReq ... +type GetHireInterviewRecordReq struct { + InterviewRecordID string `path:"interview_record_id" json:"-"` // 面试评价 ID, 可通过[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)接口获取示例值: "7171693733661327361" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireInterviewRecordResp ... +type GetHireInterviewRecordResp struct { + InterviewRecord *GetHireInterviewRecordRespInterviewRecord `json:"interview_record,omitempty"` // 面试评价详细信息 +} + +// GetHireInterviewRecordRespInterviewRecord ... +type GetHireInterviewRecordRespInterviewRecord struct { + ID string `json:"id,omitempty"` // 面试评价 ID + FeedbackFormID string `json:"feedback_form_id,omitempty"` // 面试评价表 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + SubmitTime string `json:"submit_time,omitempty"` // 面试评价提交时间, 毫秒时间戳 + RecordScore *GetHireInterviewRecordRespInterviewRecordRecordScore `json:"record_score,omitempty"` // 面试评价分数 + Interviewer *GetHireInterviewRecordRespInterviewRecordInterviewer `json:"interviewer,omitempty"` // 面试官信息 + Attachments []*GetHireInterviewRecordRespInterviewRecordAttachment `json:"attachments,omitempty"` // 面试评价附件列表 + ModuleAssessments []*GetHireInterviewRecordRespInterviewRecordModuleAssessment `json:"module_assessments,omitempty"` // 模块评价列表 +} + +// GetHireInterviewRecordRespInterviewRecordAttachment ... +type GetHireInterviewRecordRespInterviewRecordAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 + CreateTime string `json:"create_time,omitempty"` // 附件创建时间, 毫秒时间戳 +} + +// GetHireInterviewRecordRespInterviewRecordInterviewer ... +type GetHireInterviewRecordRespInterviewRecordInterviewer struct { + ID string `json:"id,omitempty"` // 面试官 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireInterviewRecordRespInterviewRecordInterviewerName `json:"name,omitempty"` // 面试官姓名 +} + +// GetHireInterviewRecordRespInterviewRecordInterviewerName ... +type GetHireInterviewRecordRespInterviewRecordInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名 + EnUs string `json:"en_us,omitempty"` // 面试官英文名 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessment ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessment struct { + InterviewFeedbackFormModuleID string `json:"interview_feedback_form_module_id,omitempty"` // 面试评价表模块 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules` 字段 + ModuleName *GetHireInterviewRecordRespInterviewRecordModuleAssessmentModuleName `json:"module_name,omitempty"` // 模块名称 + ModuleType int64 `json:"module_type,omitempty"` // 模块类型可选值有: 系统预置「面试结论」模块自定义模块 + ModuleWeight float64 `json:"module_weight,omitempty"` // 模块权重, 精确到小数点后两位 + ModuleScore float64 `json:"module_score,omitempty"` // 模块打分, 精确到小数点后两位 + DimensionAssessments []*GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessment `json:"dimension_assessments,omitempty"` // 模块评价 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessment ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessment struct { + InterviewFeedbackFormDimensionID string `json:"interview_feedback_form_dimension_id,omitempty"` // 维度 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions` 字段 + DimensionName *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionName `json:"dimension_name,omitempty"` // 维度名称 + DimensionType int64 `json:"dimension_type,omitempty"` // 维度评价方式可选值有: 单选题多选题描述题职级建议打分题(单选)打分题(填空)系统预置-结论系统预置-得分系统预置-记录 + Weight float64 `json:"weight,omitempty"` // 维度权重, 精确到小数点后两位 + DimensionContent string `json:"dimension_content,omitempty"` // 当维度评价方式为 `描述题` 时, 从此取值 + DimensionOption *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_option,omitempty"` // 当维度评价方式为 `单选题` 时, 从此取值 + DimensionOptions []*GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_options,omitempty"` // 当维度评价方式为 `多选题` 时, 从此取值 + DimensionScore int64 `json:"dimension_score,omitempty"` // 当维度评价方式为 `打分题(填空)` 时, 从此取值 + RecommendedJobLevel *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel `json:"recommended_job_level,omitempty"` // 当维度评价方式为 `职级建议` 时, 从此取值 + QuestionAssessments []*GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment `json:"question_assessments,omitempty"` // 面试题 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOption struct { + ID string `json:"id,omitempty"` // 选项 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions.option_items` 字段 + Name *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName `json:"name,omitempty"` // 选项名称 + ScoreVal int64 `json:"score_val,omitempty"` // 选项分数 数据范围: `0` ~ `100` +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentDimensionOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessment struct { + QuestionType int64 `json:"question_type,omitempty"` // 面试题类型可选值有: 普通面试题目在线编程题目 + Title *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle `json:"title,omitempty"` // 面试题名称 + Description *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + Abilities []*GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie `json:"abilities,omitempty"` // 能力项列表 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie struct { + Name *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName `json:"name,omitempty"` // 能力项名称 + Description *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription `json:"description,omitempty"` // 能力项描述 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentQuestionAssessmentTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文名称 + EnUs string `json:"en_us,omitempty"` // 面试题英文名称 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevel struct { + LowerLimitJobLevelName *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName `json:"lower_limit_job_level_name,omitempty"` // 最低职级建议 + HigherLimitJobLevelName *GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName `json:"higher_limit_job_level_name,omitempty"` // 最高职级建议 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最高职级建议中文 + EnUs string `json:"en_us,omitempty"` // 最高职级建议英文 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最低职级建议中文 + EnUs string `json:"en_us,omitempty"` // 最低职级建议英文 +} + +// GetHireInterviewRecordRespInterviewRecordModuleAssessmentModuleName ... +type GetHireInterviewRecordRespInterviewRecordModuleAssessmentModuleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文名称 + EnUs string `json:"en_us,omitempty"` // 模块英文名称 +} + +// GetHireInterviewRecordRespInterviewRecordRecordScore ... +type GetHireInterviewRecordRespInterviewRecordRecordScore struct { + Score float64 `json:"score,omitempty"` // 面试评价得分, 精确到小数点后两位 + TotalScore int64 `json:"total_score,omitempty"` // 面试评价总分, 精确到小数点后两位 +} + +// getHireInterviewRecordResp ... +type getHireInterviewRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireInterviewRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_record_get_v1.go b/api_hire_interview_record_get_v1.go new file mode 100644 index 00000000..183a28d9 --- /dev/null +++ b/api_hire_interview_record_get_v1.go @@ -0,0 +1,284 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireInterviewRecordV1 获取面试评价详细信息, 如面试结论、面试得分和面试官等信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_record/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/interview/get +func (r *HireService) GetHireInterviewRecordV1(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) { + if r.cli.mock.mockHireGetHireInterviewRecordV1 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireInterviewRecordV1 mock enable") + return r.cli.mock.mockHireGetHireInterviewRecordV1(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireInterviewRecordV1", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_records/:interview_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireInterviewRecordV1Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireInterviewRecordV1 mock HireGetHireInterviewRecordV1 method +func (r *Mock) MockHireGetHireInterviewRecordV1(f func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error)) { + r.mockHireGetHireInterviewRecordV1 = f +} + +// UnMockHireGetHireInterviewRecordV1 un-mock HireGetHireInterviewRecordV1 method +func (r *Mock) UnMockHireGetHireInterviewRecordV1() { + r.mockHireGetHireInterviewRecordV1 = nil +} + +// GetHireInterviewRecordV1Req ... +type GetHireInterviewRecordV1Req struct { + InterviewRecordID string `path:"interview_record_id" json:"-"` // 面试评价 ID, 可通过[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)接口获取示例值: "1618209327096" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireInterviewRecordV1Resp ... +type GetHireInterviewRecordV1Resp struct { + InterviewRecord *GetHireInterviewRecordV1RespInterviewRecord `json:"interview_record,omitempty"` // 面试评价详细信息 +} + +// GetHireInterviewRecordV1RespInterviewRecord ... +type GetHireInterviewRecordV1RespInterviewRecord struct { + ID string `json:"id,omitempty"` // 面试评价 ID + UserID string `json:"user_id,omitempty"` // 面试官用户 ID, 与入参 `user_id_type` 类型一致 + Content string `json:"content,omitempty"` // 系统预设「记录」题目内容, 见「飞书招聘」-「设置」-「面试设置」-「面试评价表设置」中的「记录」模块 + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + FeedbackSubmitTime int64 `json:"feedback_submit_time,omitempty"` // 面试评价提交时间, 毫秒时间戳 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结论可选值有: 通过未通过未开始未提交未到场待定 + InterviewScore *GetHireInterviewRecordV1RespInterviewRecordInterviewScore `json:"interview_score,omitempty"` // 面试得分 + AssessmentScore *GetHireInterviewRecordV1RespInterviewRecordAssessmentScore `json:"assessment_score,omitempty"` // 面评打分题分数 + QuestionList []*GetHireInterviewRecordV1RespInterviewRecordQuestion `json:"question_list,omitempty"` // 面试题目 + CodeQuestionList []*GetHireInterviewRecordV1RespInterviewRecordCodeQuestion `json:"code_question_list,omitempty"` // 在线编程题目 + Interviewer *GetHireInterviewRecordV1RespInterviewRecordInterviewer `json:"interviewer,omitempty"` // 面试官信息 + ImageList []*GetHireInterviewRecordV1RespInterviewRecordImage `json:"image_list,omitempty"` // 面试评价图片附件 + DimensionAssessmentList []*GetHireInterviewRecordV1RespInterviewRecordDimensionAssessment `json:"dimension_assessment_list,omitempty"` // 面试维度评价信息 +} + +// GetHireInterviewRecordV1RespInterviewRecordAssessmentScore ... +type GetHireInterviewRecordV1RespInterviewRecordAssessmentScore struct { + CalculateType int64 `json:"calculate_type,omitempty"` // 计分方式可选值有: 总分平均分 + Score float64 `json:"score,omitempty"` // 分数, 精确到小数点后两位 + FullScore int64 `json:"full_score,omitempty"` // 满分 +} + +// GetHireInterviewRecordV1RespInterviewRecordCodeQuestion ... +type GetHireInterviewRecordV1RespInterviewRecordCodeQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *GetHireInterviewRecordV1RespInterviewRecordCodeQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *GetHireInterviewRecordV1RespInterviewRecordCodeQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 +} + +// GetHireInterviewRecordV1RespInterviewRecordCodeQuestionDescription ... +type GetHireInterviewRecordV1RespInterviewRecordCodeQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordCodeQuestionTitle ... +type GetHireInterviewRecordV1RespInterviewRecordCodeQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文题目 + EnUs string `json:"en_us,omitempty"` // 面试题英文题目 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessment ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessment struct { + ID string `json:"id,omitempty"` // 维度评价 ID + Name *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentName `json:"name,omitempty"` // 维度名称 + FullScore int64 `json:"full_score,omitempty"` // 打分题总分, 仅当维度评价方式为 `打分题(单选)`、`打分题(填空)` 时可用 + Content string `json:"content,omitempty"` // 当维度评价方式为 `描述题` 时, 从此取值 + DimensionID string `json:"dimension_id,omitempty"` // 维度 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions` 字段 + DimensionScore *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScore `json:"dimension_score,omitempty"` // 当维度评价方式为 `单选题`/`打分题(单选)` 时, 从此取值 + DimensionScoreList []*GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScore `json:"dimension_score_list,omitempty"` // 当维度评价方式为 `多选题` 时, 从此取值 + DimensionCustomScore int64 `json:"dimension_custom_score,omitempty"` // 当维度评价方式为 `打分题(填空)时`, 从此取值 + AbilityList []*GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbility `json:"ability_list,omitempty"` // 维度关联能力项 + QuestionList []*GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestion `json:"question_list,omitempty"` // 维度关联面试题 + DimensionType int64 `json:"dimension_type,omitempty"` // 维度评价方式可选值有: 单选题多选题描述题单行文本职级范围打分题(单选)打分题(填空)系统预设题目 - 结论系统预设题目 - 得分系统预设题目 - 记录 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbility ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityName `json:"name,omitempty"` // 能力项名称 + Description *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityDescription ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityName ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScore ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScore struct { + ID string `json:"id,omitempty"` // 选项 ID + Name *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScoreName `json:"name,omitempty"` // 选项名称 + ScoreVal int64 `json:"score_val,omitempty"` // 选项对应的分数, 维度评价为方式 `打分题(单选)` 时关注该字段 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScoreName ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentDimensionScoreName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentName ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestion ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + AbilityList []*GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbility `json:"ability_list,omitempty"` // 题目关联的能力项 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbility ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityName `json:"name,omitempty"` // 能力项名称 + Description *GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityDescription ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityName ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionDescription ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionTitle ... +type GetHireInterviewRecordV1RespInterviewRecordDimensionAssessmentQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试中文题目 + EnUs string `json:"en_us,omitempty"` // 面试英文题目 +} + +// GetHireInterviewRecordV1RespInterviewRecordImage ... +type GetHireInterviewRecordV1RespInterviewRecordImage struct { + ID string `json:"id,omitempty"` // 图片附件 ID, 详情请参考[获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + URL string `json:"url,omitempty"` // 图片附件下载链接, 有效期为 30 分钟 + Name string `json:"name,omitempty"` // 图片附件文件名 + Mime string `json:"mime,omitempty"` // 图片附件类型([MIME](https://baike.baidu.com/item/MIME/2900607?fr=ge_ala#2)) + CreateTime string `json:"create_time,omitempty"` // 图片附件创建时间, 毫秒时间戳 +} + +// GetHireInterviewRecordV1RespInterviewRecordInterviewScore ... +type GetHireInterviewRecordV1RespInterviewRecordInterviewScore struct { + ID string `json:"id,omitempty"` // 面试得分 ID + Level int64 `json:"level,omitempty"` // 面试得分分数级别 + ZhName string `json:"zh_name,omitempty"` // 面试得分中文名称 + ZhDescription string `json:"zh_description,omitempty"` // 面试得分中文描述 + EnName string `json:"en_name,omitempty"` // 面试得分英文名称 + EnDescription string `json:"en_description,omitempty"` // 面试得分英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordInterviewer ... +type GetHireInterviewRecordV1RespInterviewRecordInterviewer struct { + ID string `json:"id,omitempty"` // 面试官用户 ID, 与入参 `user_id_type` 类型一致 + Name *GetHireInterviewRecordV1RespInterviewRecordInterviewerName `json:"name,omitempty"` // 面试官姓名 +} + +// GetHireInterviewRecordV1RespInterviewRecordInterviewerName ... +type GetHireInterviewRecordV1RespInterviewRecordInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名 + EnUs string `json:"en_us,omitempty"` // 面试官英文名 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestion ... +type GetHireInterviewRecordV1RespInterviewRecordQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *GetHireInterviewRecordV1RespInterviewRecordQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *GetHireInterviewRecordV1RespInterviewRecordQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + AbilityList []*GetHireInterviewRecordV1RespInterviewRecordQuestionAbility `json:"ability_list,omitempty"` // 题目关联的能力项 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestionAbility ... +type GetHireInterviewRecordV1RespInterviewRecordQuestionAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityName `json:"name,omitempty"` // 能力项名称 + Description *GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityDescription ... +type GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityName ... +type GetHireInterviewRecordV1RespInterviewRecordQuestionAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestionDescription ... +type GetHireInterviewRecordV1RespInterviewRecordQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// GetHireInterviewRecordV1RespInterviewRecordQuestionTitle ... +type GetHireInterviewRecordV1RespInterviewRecordQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文题目 + EnUs string `json:"en_us,omitempty"` // 面试题英文题目 +} + +// getHireInterviewRecordV1Resp ... +type getHireInterviewRecordV1Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireInterviewRecordV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_record_list.go b/api_hire_interview_record_list.go new file mode 100644 index 00000000..3912ef31 --- /dev/null +++ b/api_hire_interview_record_list.go @@ -0,0 +1,226 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewRecord 批量获取面试评价详细信息, 如面试结论、面试得分和面试官等信息(含模块评价)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/interview_record/list +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/interview/list-4 +func (r *HireService) ListHireInterviewRecord(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewRecord mock enable") + return r.cli.mock.mockHireListHireInterviewRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewRecord", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v2/interview_records", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listHireInterviewRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewRecord mock HireListHireInterviewRecord method +func (r *Mock) MockHireListHireInterviewRecord(f func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error)) { + r.mockHireListHireInterviewRecord = f +} + +// UnMockHireListHireInterviewRecord un-mock HireListHireInterviewRecord method +func (r *Mock) UnMockHireListHireInterviewRecord() { + r.mockHireListHireInterviewRecord = nil +} + +// ListHireInterviewRecordReq ... +type ListHireInterviewRecordReq struct { + IDs []string `query:"ids" json:"-"` // 面试评价 ID 列表, 可通过[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)接口获取, 使用该筛选项时不会分页示例值: 7171693733661327361 长度范围: `0` ~ `100` + PageSize *int64 `query:"page_size" json:"-"` // 分页大小 注意: 若不传该参数, 则默认根据 `ids` 参数获取数据示例值: 10 取值范围: `0` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireInterviewRecordResp ... +type ListHireInterviewRecordResp struct { + Items []*ListHireInterviewRecordRespItem `json:"items,omitempty"` // 面试评价详细信息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireInterviewRecordRespItem ... +type ListHireInterviewRecordRespItem struct { + ID string `json:"id,omitempty"` // 面试评价 ID + FeedbackFormID string `json:"feedback_form_id,omitempty"` // 面试评价表 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + SubmitTime string `json:"submit_time,omitempty"` // 面试评价提交时间 + RecordScore *ListHireInterviewRecordRespItemRecordScore `json:"record_score,omitempty"` // 面试评价分数 + Interviewer *ListHireInterviewRecordRespItemInterviewer `json:"interviewer,omitempty"` // 面试官信息 + Attachments []*ListHireInterviewRecordRespItemAttachment `json:"attachments,omitempty"` // 面试评价附件列表 + ModuleAssessments []*ListHireInterviewRecordRespItemModuleAssessment `json:"module_assessments,omitempty"` // 模块评价列表 +} + +// ListHireInterviewRecordRespItemAttachment ... +type ListHireInterviewRecordRespItemAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 + CreateTime string `json:"create_time,omitempty"` // 附件创建时间, 毫秒时间戳 +} + +// ListHireInterviewRecordRespItemInterviewer ... +type ListHireInterviewRecordRespItemInterviewer struct { + ID string `json:"id,omitempty"` // 面试官 ID, 与入参 `user_id_type` 类型一致 + Name *ListHireInterviewRecordRespItemInterviewerName `json:"name,omitempty"` // 面试官姓名 +} + +// ListHireInterviewRecordRespItemInterviewerName ... +type ListHireInterviewRecordRespItemInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名 + EnUs string `json:"en_us,omitempty"` // 面试官英文名 +} + +// ListHireInterviewRecordRespItemModuleAssessment ... +type ListHireInterviewRecordRespItemModuleAssessment struct { + InterviewFeedbackFormModuleID string `json:"interview_feedback_form_module_id,omitempty"` // 面试评价表模块 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules` 字段 + ModuleName *ListHireInterviewRecordRespItemModuleAssessmentModuleName `json:"module_name,omitempty"` // 模块名称 + ModuleType int64 `json:"module_type,omitempty"` // 模块类型可选值有: 系统预置「面试结论」模块自定义模块 + ModuleWeight float64 `json:"module_weight,omitempty"` // 模块权重, 精确到小数点后两位 + ModuleScore float64 `json:"module_score,omitempty"` // 模块打分, 精确到小数点后两位 + DimensionAssessments []*ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessment `json:"dimension_assessments,omitempty"` // 模块评价 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessment ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessment struct { + InterviewFeedbackFormDimensionID string `json:"interview_feedback_form_dimension_id,omitempty"` // 维度 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions` 字段 + DimensionName *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionName `json:"dimension_name,omitempty"` // 维度名称 + DimensionType int64 `json:"dimension_type,omitempty"` // 维度评价方式可选值有: 单选题多选题描述题职级建议打分题(单选)打分题(填空)系统预置-结论系统预置-得分系统预置-记录 + Weight float64 `json:"weight,omitempty"` // 维度权重, 精确到小数点后两位 + DimensionContent string `json:"dimension_content,omitempty"` // 当维度评价方式为 `描述题` 时, 从此取值 + DimensionOption *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_option,omitempty"` // 当维度评价方式为 `单选题` 时, 从此取值 + DimensionOptions []*ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOption `json:"dimension_options,omitempty"` // 当维度评价方式为 `多选题` 时, 从此取值 + DimensionScore int64 `json:"dimension_score,omitempty"` // 当维度评价方式为 `打分题(填空)` 时, 从此取值 + RecommendedJobLevel *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevel `json:"recommended_job_level,omitempty"` // 当维度评价方式为 `职级建议` 时, 从此取值 + QuestionAssessments []*ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessment `json:"question_assessments,omitempty"` // 面试题 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionName ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOption ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOption struct { + ID string `json:"id,omitempty"` // 选项 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions.option_items` 字段 + Name *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOptionName `json:"name,omitempty"` // 选项名称 + ScoreVal int64 `json:"score_val,omitempty"` // 选项分数 数据范围: `0` ~ `100` +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOptionName ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentDimensionOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessment ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessment struct { + QuestionType int64 `json:"question_type,omitempty"` // 面试题类型可选值有: 普通面试题目在线编程题目 + Title *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentTitle `json:"title,omitempty"` // 面试题名称 + Description *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + Abilities []*ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie `json:"abilities,omitempty"` // 能力项列表 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitie struct { + Name *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName `json:"name,omitempty"` // 能力项名称 + Description *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription `json:"description,omitempty"` // 能力项描述 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentAbilitieName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentDescription ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentTitle ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentQuestionAssessmentTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文名称 + EnUs string `json:"en_us,omitempty"` // 面试题英文名称 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevel ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevel struct { + LowerLimitJobLevelName *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName `json:"lower_limit_job_level_name,omitempty"` // 最低职级建议 + HigherLimitJobLevelName *ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName `json:"higher_limit_job_level_name,omitempty"` // 最高职级建议 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelHigherLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最高职级建议中文 + EnUs string `json:"en_us,omitempty"` // 最高职级建议英文 +} + +// ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName ... +type ListHireInterviewRecordRespItemModuleAssessmentDimensionAssessmentRecommendedJobLevelLowerLimitJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 最低职级建议中文 + EnUs string `json:"en_us,omitempty"` // 最低职级建议英文 +} + +// ListHireInterviewRecordRespItemModuleAssessmentModuleName ... +type ListHireInterviewRecordRespItemModuleAssessmentModuleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文名称 + EnUs string `json:"en_us,omitempty"` // 模块英文名称 +} + +// ListHireInterviewRecordRespItemRecordScore ... +type ListHireInterviewRecordRespItemRecordScore struct { + Score float64 `json:"score,omitempty"` // 面试评价得分, 精确到小数点后两位 + TotalScore int64 `json:"total_score,omitempty"` // 面试评价总分, 精确到小数点后两位 +} + +// listHireInterviewRecordResp ... +type listHireInterviewRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_record_list_v1.go b/api_hire_interview_record_list_v1.go new file mode 100644 index 00000000..d2694020 --- /dev/null +++ b/api_hire_interview_record_list_v1.go @@ -0,0 +1,288 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewRecordV1 批量获取面试评价详细信息, 如面试结论、面试得分和面试官等信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_record/list +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/interview/list-3 +func (r *HireService) ListHireInterviewRecordV1(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewRecordV1 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewRecordV1 mock enable") + return r.cli.mock.mockHireListHireInterviewRecordV1(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewRecordV1", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_records", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewRecordV1Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewRecordV1 mock HireListHireInterviewRecordV1 method +func (r *Mock) MockHireListHireInterviewRecordV1(f func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error)) { + r.mockHireListHireInterviewRecordV1 = f +} + +// UnMockHireListHireInterviewRecordV1 un-mock HireListHireInterviewRecordV1 method +func (r *Mock) UnMockHireListHireInterviewRecordV1() { + r.mockHireListHireInterviewRecordV1 = nil +} + +// ListHireInterviewRecordV1Req ... +type ListHireInterviewRecordV1Req struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + IDs []string `query:"ids" json:"-"` // 面试评价 ID 列表, 可通过[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)接口获取, 使用该筛选项时不会分页示例值: ['6930815272790114324'] 最大长度: `100` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireInterviewRecordV1Resp ... +type ListHireInterviewRecordV1Resp struct { + Items []*ListHireInterviewRecordV1RespItem `json:"items,omitempty"` // 面试评价详细信息列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireInterviewRecordV1RespItem ... +type ListHireInterviewRecordV1RespItem struct { + ID string `json:"id,omitempty"` // 面试评价 ID + UserID string `json:"user_id,omitempty"` // 面试官用户 ID, 与入参 `user_id_type` 类型一致 + Content string `json:"content,omitempty"` // 系统预设「记录」题目内容, 见「飞书招聘」-「设置」-「面试设置」-「面试评价表设置」中的「记录」模块 + CommitStatus int64 `json:"commit_status,omitempty"` // 提交状态可选值有: 已提交未提交 + FeedbackSubmitTime int64 `json:"feedback_submit_time,omitempty"` // 面试评价提交时间, 毫秒时间戳 + Conclusion int64 `json:"conclusion,omitempty"` // 面试结论可选值有: 通过未通过未开始未提交未到场待定 + InterviewScore *ListHireInterviewRecordV1RespItemInterviewScore `json:"interview_score,omitempty"` // 面试得分 + AssessmentScore *ListHireInterviewRecordV1RespItemAssessmentScore `json:"assessment_score,omitempty"` // 面评打分题分数 + QuestionList []*ListHireInterviewRecordV1RespItemQuestion `json:"question_list,omitempty"` // 面试题目 + CodeQuestionList []*ListHireInterviewRecordV1RespItemCodeQuestion `json:"code_question_list,omitempty"` // 在线编程题目 + Interviewer *ListHireInterviewRecordV1RespItemInterviewer `json:"interviewer,omitempty"` // 面试官信息 + ImageList []*ListHireInterviewRecordV1RespItemImage `json:"image_list,omitempty"` // 面试评价图片 + DimensionAssessmentList []*ListHireInterviewRecordV1RespItemDimensionAssessment `json:"dimension_assessment_list,omitempty"` // 面试维度评价信息 +} + +// ListHireInterviewRecordV1RespItemAssessmentScore ... +type ListHireInterviewRecordV1RespItemAssessmentScore struct { + CalculateType int64 `json:"calculate_type,omitempty"` // 计分方式可选值有: 总分平均分 + Score float64 `json:"score,omitempty"` // 分数(精确到小数点后两位) + FullScore int64 `json:"full_score,omitempty"` // 满分 +} + +// ListHireInterviewRecordV1RespItemCodeQuestion ... +type ListHireInterviewRecordV1RespItemCodeQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *ListHireInterviewRecordV1RespItemCodeQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *ListHireInterviewRecordV1RespItemCodeQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 +} + +// ListHireInterviewRecordV1RespItemCodeQuestionDescription ... +type ListHireInterviewRecordV1RespItemCodeQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// ListHireInterviewRecordV1RespItemCodeQuestionTitle ... +type ListHireInterviewRecordV1RespItemCodeQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文题目 + EnUs string `json:"en_us,omitempty"` // 面试题英文题目 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessment ... +type ListHireInterviewRecordV1RespItemDimensionAssessment struct { + ID string `json:"id,omitempty"` // 维度评价 ID + Name *ListHireInterviewRecordV1RespItemDimensionAssessmentName `json:"name,omitempty"` // 维度名称 + FullScore int64 `json:"full_score,omitempty"` // 打分题总分, 仅当维度评价方式为「打分题(单选)」、「打分题(填空)」时可用 + Content string `json:"content,omitempty"` // 当维度评价方式为「描述题」时, 从此取值 + DimensionID string `json:"dimension_id,omitempty"` // 维度 ID, 详情可查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list)返回结果中 `data.items.modules.dimensions` 字段 + DimensionScore *ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScore `json:"dimension_score,omitempty"` // 当维度评价方式为「单选题」「/打分题(单选)」时, 从此取值 + DimensionScoreList []*ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScore `json:"dimension_score_list,omitempty"` // 当维度评价方式为「多选题」时, 从此取值 + DimensionCustomScore int64 `json:"dimension_custom_score,omitempty"` // 当维度评价方式为「打分题(填空)时」, 从此取值 + AbilityList []*ListHireInterviewRecordV1RespItemDimensionAssessmentAbility `json:"ability_list,omitempty"` // 维度关联能力项 + QuestionList []*ListHireInterviewRecordV1RespItemDimensionAssessmentQuestion `json:"question_list,omitempty"` // 维度关联面试题 + DimensionType int64 `json:"dimension_type,omitempty"` // 维度评价方式可选值有: 单选题多选题描述题单行文本职级范围打分题(单选)打分题(填空)系统预设题目 - 结论系统预设题目 - 得分系统预设题目 - 记录 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentAbility ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityName `json:"name,omitempty"` // 能力项名称 + Description *ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityDescription ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityName ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScore ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScore struct { + ID string `json:"id,omitempty"` // 选项 ID + Name *ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScoreName `json:"name,omitempty"` // 选项名称 + ScoreVal int64 `json:"score_val,omitempty"` // 选项对应的分数, 维度评价为方式「打分题(单选)」时关注该字段 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScoreName ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentDimensionScoreName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentName ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 维度中文名称 + EnUs string `json:"en_us,omitempty"` // 维度英文名称 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestion ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + AbilityList []*ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbility `json:"ability_list,omitempty"` // 题目关联的能力项 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbility ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityName `json:"name,omitempty"` // 能力项名称 + Description *ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityDescription ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityName ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionDescription ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionTitle ... +type ListHireInterviewRecordV1RespItemDimensionAssessmentQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试中文题目 + EnUs string `json:"en_us,omitempty"` // 面试英文题目 +} + +// ListHireInterviewRecordV1RespItemImage ... +type ListHireInterviewRecordV1RespItemImage struct { + ID string `json:"id,omitempty"` // 附件 ID, 详情请参考[获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + URL string `json:"url,omitempty"` // 附件的 URL + Name string `json:"name,omitempty"` // 附件文件名 + Mime string `json:"mime,omitempty"` // 附件类型(MIME) + CreateTime string `json:"create_time,omitempty"` // 附件创建时间, 毫秒时间戳 +} + +// ListHireInterviewRecordV1RespItemInterviewScore ... +type ListHireInterviewRecordV1RespItemInterviewScore struct { + ID string `json:"id,omitempty"` // 面试得分 ID + Level int64 `json:"level,omitempty"` // 面试得分分数级别 + ZhName string `json:"zh_name,omitempty"` // 面试得分中文名称 + ZhDescription string `json:"zh_description,omitempty"` // 面试得分中文描述 + EnName string `json:"en_name,omitempty"` // 面试得分英文名称 + EnDescription string `json:"en_description,omitempty"` // 面试得分英文描述 +} + +// ListHireInterviewRecordV1RespItemInterviewer ... +type ListHireInterviewRecordV1RespItemInterviewer struct { + ID string `json:"id,omitempty"` // 面试官用户 ID, 与入参 `user_id_type` 类型一致 + Name *ListHireInterviewRecordV1RespItemInterviewerName `json:"name,omitempty"` // 面试官姓名 +} + +// ListHireInterviewRecordV1RespItemInterviewerName ... +type ListHireInterviewRecordV1RespItemInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名 + EnUs string `json:"en_us,omitempty"` // 面试官英文名 +} + +// ListHireInterviewRecordV1RespItemQuestion ... +type ListHireInterviewRecordV1RespItemQuestion struct { + ID string `json:"id,omitempty"` // 面试题题目 ID + Title *ListHireInterviewRecordV1RespItemQuestionTitle `json:"title,omitempty"` // 面试题题目 + Description *ListHireInterviewRecordV1RespItemQuestionDescription `json:"description,omitempty"` // 面试题描述 + Content string `json:"content,omitempty"` // 面试者作答内容 + AbilityList []*ListHireInterviewRecordV1RespItemQuestionAbility `json:"ability_list,omitempty"` // 题目关联的能力项 +} + +// ListHireInterviewRecordV1RespItemQuestionAbility ... +type ListHireInterviewRecordV1RespItemQuestionAbility struct { + ID string `json:"id,omitempty"` // 能力项 ID + Name *ListHireInterviewRecordV1RespItemQuestionAbilityName `json:"name,omitempty"` // 能力项名称 + Description *ListHireInterviewRecordV1RespItemQuestionAbilityDescription `json:"description,omitempty"` // 能力项描述 +} + +// ListHireInterviewRecordV1RespItemQuestionAbilityDescription ... +type ListHireInterviewRecordV1RespItemQuestionAbilityDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文描述 + EnUs string `json:"en_us,omitempty"` // 能力项英文描述 +} + +// ListHireInterviewRecordV1RespItemQuestionAbilityName ... +type ListHireInterviewRecordV1RespItemQuestionAbilityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 能力项中文名称 + EnUs string `json:"en_us,omitempty"` // 能力项英文名称 +} + +// ListHireInterviewRecordV1RespItemQuestionDescription ... +type ListHireInterviewRecordV1RespItemQuestionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文描述 + EnUs string `json:"en_us,omitempty"` // 面试题英文描述 +} + +// ListHireInterviewRecordV1RespItemQuestionTitle ... +type ListHireInterviewRecordV1RespItemQuestionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试题中文题目 + EnUs string `json:"en_us,omitempty"` // 面试题英文题目 +} + +// listHireInterviewRecordV1Resp ... +type listHireInterviewRecordV1Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewRecordV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_registration_schema_list.go b/api_hire_interview_registration_schema_list.go new file mode 100644 index 00000000..83b9991d --- /dev/null +++ b/api_hire_interview_registration_schema_list.go @@ -0,0 +1,200 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewRegistrationSchema 获取面试登记表列表, 可获取到的信息包括登记表名称、登记表模块、登记表字段 +// +// 面试登记表配置请参考「飞书招聘」-「设置」-「候选人信息管理」- 「信息登记表设置」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_registration_schema/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/interview-settings/list-3 +func (r *HireService) ListHireInterviewRegistrationSchema(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewRegistrationSchema != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewRegistrationSchema mock enable") + return r.cli.mock.mockHireListHireInterviewRegistrationSchema(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewRegistrationSchema", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_registration_schemas", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewRegistrationSchemaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewRegistrationSchema mock HireListHireInterviewRegistrationSchema method +func (r *Mock) MockHireListHireInterviewRegistrationSchema(f func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error)) { + r.mockHireListHireInterviewRegistrationSchema = f +} + +// UnMockHireListHireInterviewRegistrationSchema un-mock HireListHireInterviewRegistrationSchema method +func (r *Mock) UnMockHireListHireInterviewRegistrationSchema() { + r.mockHireListHireInterviewRegistrationSchema = nil +} + +// ListHireInterviewRegistrationSchemaReq ... +type ListHireInterviewRegistrationSchemaReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量, 最大10示例值: 10默认值: `10` 最大值: `10` +} + +// ListHireInterviewRegistrationSchemaResp ... +type ListHireInterviewRegistrationSchemaResp struct { + Items []*ListHireInterviewRegistrationSchemaRespItem `json:"items,omitempty"` // 面试登记表列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireInterviewRegistrationSchemaRespItem ... +type ListHireInterviewRegistrationSchemaRespItem struct { + ID string `json:"id,omitempty"` // 面试登记表 ID + Name string `json:"name,omitempty"` // 面试登记表名称 + IsUsedAsInterview bool `json:"is_used_as_interview,omitempty"` // 是否用作全局面试登记表: `true`: 全局面试登记表, 全部职位都应用该登记表- `false`: 非全局面试登记表, 可按职位选择该登记表 + ObjectList []*ListHireInterviewRegistrationSchemaRespItemObject `json:"object_list,omitempty"` // 模块列表 +} + +// ListHireInterviewRegistrationSchemaRespItemObject ... +type ListHireInterviewRegistrationSchemaRespItemObject struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *ListHireInterviewRegistrationSchemaRespItemObjectName `json:"name,omitempty"` // 模块名称 + Description *ListHireInterviewRegistrationSchemaRespItemObjectDescription `json:"description,omitempty"` // 模块描述 + Setting *ListHireInterviewRegistrationSchemaRespItemObjectSetting `json:"setting,omitempty"` // 模块信息 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义模块: `true`: 自定义模块- `false`: 系统预置模块 + IsRequired bool `json:"is_required,omitempty"` // 是否必填: `true`: 必填- `false`: 非必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见: `true`: 可见- `false`: 不可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 + ChildrenList []*ListHireInterviewRegistrationSchemaRespItemObjectChildren `json:"children_list,omitempty"` // 字段列表 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildren ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildren struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *ListHireInterviewRegistrationSchemaRespItemObjectChildrenName `json:"name,omitempty"` // 字段名称 + Description *ListHireInterviewRegistrationSchemaRespItemObjectChildrenDescription `json:"description,omitempty"` // 字段描述 + Setting *ListHireInterviewRegistrationSchemaRespItemObjectChildrenSetting `json:"setting,omitempty"` // 字段信息 + ParentID string `json:"parent_id,omitempty"` // 所属模块 ID + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义字段: `true`: 自定义字段- `false`: 系统预置字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填: `true`: 必填- `false`: 非必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见: `true`: 可见- `false`: 不可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenDescription ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenName ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenSetting ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfig ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfig struct { + Options []*ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOption `json:"options,omitempty"` // 选项信息, 仅在字段类型object_type为单选、多选时有值 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOption ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName ... +type ListHireInterviewRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectDescription ... +type ListHireInterviewRegistrationSchemaRespItemObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectName ... +type ListHireInterviewRegistrationSchemaRespItemObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectSetting ... +type ListHireInterviewRegistrationSchemaRespItemObjectSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型, 在模块信息中该字段将固定返回`11`可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireInterviewRegistrationSchemaRespItemObjectSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectSettingConfig ... +type ListHireInterviewRegistrationSchemaRespItemObjectSettingConfig struct { + Options []*ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOption `json:"options,omitempty"` // 选项信息, 仅在类型object_type为单选、多选时有值 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOption ... +type ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionDescription ... +type ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionName ... +type ListHireInterviewRegistrationSchemaRespItemObjectSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireInterviewRegistrationSchemaResp ... +type listHireInterviewRegistrationSchemaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewRegistrationSchemaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_round_type_list.go b/api_hire_interview_round_type_list.go new file mode 100644 index 00000000..1ea3e652 --- /dev/null +++ b/api_hire_interview_round_type_list.go @@ -0,0 +1,105 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewRoundType 根据职位流程查询面试轮次类型列表, 可以查询到的信息包括: 面试轮次类型名称、启用状态、关联的面试评价表信息。可应用于更新职位设置场景: [更新职位设置](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/update_config) +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_round_type/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/interview-settings/list-2 +func (r *HireService) ListHireInterviewRoundType(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewRoundType != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewRoundType mock enable") + return r.cli.mock.mockHireListHireInterviewRoundType(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewRoundType", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_round_types", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewRoundTypeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewRoundType mock HireListHireInterviewRoundType method +func (r *Mock) MockHireListHireInterviewRoundType(f func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error)) { + r.mockHireListHireInterviewRoundType = f +} + +// UnMockHireListHireInterviewRoundType un-mock HireListHireInterviewRoundType method +func (r *Mock) UnMockHireListHireInterviewRoundType() { + r.mockHireListHireInterviewRoundType = nil +} + +// ListHireInterviewRoundTypeReq ... +type ListHireInterviewRoundTypeReq struct { + ProcessType *int64 `query:"process_type" json:"-"` // 职位流程类型示例值: 1可选值有: 社招流程校招流程 +} + +// ListHireInterviewRoundTypeResp ... +type ListHireInterviewRoundTypeResp struct { + ActiveStatus int64 `json:"active_status,omitempty"` // 面试轮次类型启用状态可选值有: 已启用未启用 + Items []*ListHireInterviewRoundTypeRespItem `json:"items,omitempty"` // 列表 +} + +// ListHireInterviewRoundTypeRespItem ... +type ListHireInterviewRoundTypeRespItem struct { + ID string `json:"id,omitempty"` // 面试轮次类型 ID。在面试轮次类型更新时, 类型 ID 也会更新 + BizID string `json:"biz_id,omitempty"` // 面试轮次类型对应的业务 ID。在面试轮次类型更新时, 业务 ID 保持不变 + Name *ListHireInterviewRoundTypeRespItemName `json:"name,omitempty"` // 面试轮次类型名称 + ProcessType int64 `json:"process_type,omitempty"` // 职位流程类型可选值有: 社招流程校招流程 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用未启用 + InterviewAssessmentTemplateInfo *ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfo `json:"interview_assessment_template_info,omitempty"` // 面试评价表 +} + +// ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfo ... +type ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfo struct { + ID string `json:"id,omitempty"` // 面试评价表 ID。在面试评价表更新时, 评价表 ID 也会更新 + BizID string `json:"biz_id,omitempty"` // 面试评价表对应的业务 ID。在面试评价表更新时, 业务 ID 保持不变 + Name *ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfoName `json:"name,omitempty"` // 面试评价表名称 +} + +// ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfoName ... +type ListHireInterviewRoundTypeRespItemInterviewAssessmentTemplateInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试评价表中文名称 + EnUs string `json:"en_us,omitempty"` // 面试评价表英文名称 +} + +// ListHireInterviewRoundTypeRespItemName ... +type ListHireInterviewRoundTypeRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试轮次类型中文名称 + EnUs string `json:"en_us,omitempty"` // 面试轮次类型英文名称 +} + +// listHireInterviewRoundTypeResp ... +type listHireInterviewRoundTypeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewRoundTypeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interview_task_list.go b/api_hire_interview_task_list.go new file mode 100644 index 00000000..5bfea0ca --- /dev/null +++ b/api_hire_interview_task_list.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewTask 根据面试官ID查询面试任务列表, 可以查询到的信息包括: 面试ID、投递ID、任务状态等 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_task/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/recruitment-process-follow-up/list-4 +func (r *HireService) ListHireInterviewTask(ctx context.Context, request *ListHireInterviewTaskReq, options ...MethodOptionFunc) (*ListHireInterviewTaskResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewTask mock enable") + return r.cli.mock.mockHireListHireInterviewTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewTask", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interview_tasks", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewTask mock HireListHireInterviewTask method +func (r *Mock) MockHireListHireInterviewTask(f func(ctx context.Context, request *ListHireInterviewTaskReq, options ...MethodOptionFunc) (*ListHireInterviewTaskResp, *Response, error)) { + r.mockHireListHireInterviewTask = f +} + +// UnMockHireListHireInterviewTask un-mock HireListHireInterviewTask method +func (r *Mock) UnMockHireListHireInterviewTask() { + r.mockHireListHireInterviewTask = nil +} + +// ListHireInterviewTaskReq ... +type ListHireInterviewTaskReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 默认10, 不能超过 20示例值: 10默认值: `10` 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + UserID string `query:"user_id" json:"-"` // 面试官 ID, 需要与user_id_type类型保持一致示例值: ou_e6139117c300506837def50545420c6a + ActivityStatus *int64 `query:"activity_status" json:"-"` // 任务状态示例值: 1可选值有: 未开始未评价已评价已终止 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireInterviewTaskResp ... +type ListHireInterviewTaskResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireInterviewTaskRespItem `json:"items,omitempty"` // 面试任务列表 +} + +// ListHireInterviewTaskRespItem ... +type ListHireInterviewTaskRespItem struct { + ID string `json:"id,omitempty"` // 面试 ID, 详情请查看: [获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ActivityStatus int64 `json:"activity_status,omitempty"` // 任务状态可选值有: 未开始未评价已评价已终止 +} + +// listHireInterviewTaskResp ... +type listHireInterviewTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interviewer_list.go b/api_hire_interviewer_list.go new file mode 100644 index 00000000..ea99546c --- /dev/null +++ b/api_hire_interviewer_list.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireInterviewer 分页查询面试官列表, 接口只会返回执行过「更新面试官信息」用户的数据, 通过接口查询不到的数据则默认为「未认证」面试官。接口默认按更新时间、user_id顺序进行顺序拉取。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interviewer/list +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/interview-settings/interviewer/list +func (r *HireService) ListHireInterviewer(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) { + if r.cli.mock.mockHireListHireInterviewer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireInterviewer mock enable") + return r.cli.mock.mockHireListHireInterviewer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireInterviewer", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interviewers", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireInterviewerResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireInterviewer mock HireListHireInterviewer method +func (r *Mock) MockHireListHireInterviewer(f func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error)) { + r.mockHireListHireInterviewer = f +} + +// UnMockHireListHireInterviewer un-mock HireListHireInterviewer method +func (r *Mock) UnMockHireListHireInterviewer() { + r.mockHireListHireInterviewer = nil +} + +// ListHireInterviewerReq ... +type ListHireInterviewerReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 最大值: `200` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + UserIDs []string `query:"user_ids" json:"-"` // 面试官userID列表示例值: ou_7dab8a3d3cdcc9da365777c7ad535d62 最大长度: `50` + VerifyStatus *int64 `query:"verify_status" json:"-"` // 认证状态示例值: 1可选值有: 未认证已认证 + EarliestUpdateTime *string `query:"earliest_update_time" json:"-"` // 最早更新时间, 毫秒时间戳示例值: 1714374796615 + LatestUpdateTime *string `query:"latest_update_time" json:"-"` // 最晚更新时间, 毫秒时间戳示例值: 1714374796616 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireInterviewerResp ... +type ListHireInterviewerResp struct { + Items []*ListHireInterviewerRespItem `json:"items,omitempty"` // 面试官信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireInterviewerRespItem ... +type ListHireInterviewerRespItem struct { + UserID string `json:"user_id,omitempty"` // 面试官userID + VerifyStatus int64 `json:"verify_status,omitempty"` // 认证状态可选值有: 未认证已认证 +} + +// listHireInterviewerResp ... +type listHireInterviewerResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireInterviewerResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_interviewer_update.go b/api_hire_interviewer_update.go new file mode 100644 index 00000000..ba33840d --- /dev/null +++ b/api_hire_interviewer_update.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireInterviewer 用于更新面试官认证信息 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interviewer/patch +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/interview-settings/interviewer/patch +func (r *HireService) UpdateHireInterviewer(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireInterviewer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireInterviewer mock enable") + return r.cli.mock.mockHireUpdateHireInterviewer(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireInterviewer", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/interviewers/:interviewer_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireInterviewerResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireInterviewer mock HireUpdateHireInterviewer method +func (r *Mock) MockHireUpdateHireInterviewer(f func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error)) { + r.mockHireUpdateHireInterviewer = f +} + +// UnMockHireUpdateHireInterviewer un-mock HireUpdateHireInterviewer method +func (r *Mock) UnMockHireUpdateHireInterviewer() { + r.mockHireUpdateHireInterviewer = nil +} + +// UpdateHireInterviewerReq ... +type UpdateHireInterviewerReq struct { + InterviewerID string `path:"interviewer_id" json:"-"` // 面试官userID示例值: "ou_7dab8a3d3cdcc9da365777c7ad535d62" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Interviewer *UpdateHireInterviewerReqInterviewer `json:"interviewer,omitempty"` // 面试官信息 +} + +// UpdateHireInterviewerReqInterviewer ... +type UpdateHireInterviewerReqInterviewer struct { + VerifyStatus *int64 `json:"verify_status,omitempty"` // 认证状态示例值: 1可选值有: 未认证已认证 +} + +// UpdateHireInterviewerResp ... +type UpdateHireInterviewerResp struct { + Interviewer *UpdateHireInterviewerRespInterviewer `json:"interviewer,omitempty"` // 面试官信息 +} + +// UpdateHireInterviewerRespInterviewer ... +type UpdateHireInterviewerRespInterviewer struct { + UserID string `json:"user_id,omitempty"` // 面试官userID + VerifyStatus int64 `json:"verify_status,omitempty"` // 认证状态可选值有: 未认证已认证 +} + +// updateHireInterviewerResp ... +type updateHireInterviewerResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireInterviewerResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_close.go b/api_hire_job_close.go new file mode 100644 index 00000000..e545a149 --- /dev/null +++ b/api_hire_job_close.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CloseHireJob 关闭职位后, 职位所有的职位广告将同步从官网、内推、猎头渠道下线。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/close +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/close +func (r *HireService) CloseHireJob(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) { + if r.cli.mock.mockHireCloseHireJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CloseHireJob mock enable") + return r.cli.mock.mockHireCloseHireJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CloseHireJob", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/jobs/:job_id/close", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(closeHireJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCloseHireJob mock HireCloseHireJob method +func (r *Mock) MockHireCloseHireJob(f func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error)) { + r.mockHireCloseHireJob = f +} + +// UnMockHireCloseHireJob un-mock HireCloseHireJob method +func (r *Mock) UnMockHireCloseHireJob() { + r.mockHireCloseHireJob = nil +} + +// CloseHireJobReq ... +type CloseHireJobReq struct { + JobID string `path:"job_id" json:"-"` // 职位 ID, 可通过[获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)接口获取示例值: "6960663240925956555" +} + +// CloseHireJobResp ... +type CloseHireJobResp struct { +} + +// closeHireJobResp ... +type closeHireJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CloseHireJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_function_list.go b/api_hire_job_function_list.go new file mode 100644 index 00000000..5cfc16fe --- /dev/null +++ b/api_hire_job_function_list.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobFunction 根据page_token与page_size对职能分类进行游标分页查询, 可查询到的信息包括: 职能分类ID、职能分类中英文名、启用状态, 可应用于职位基础信息绑定等场景 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/list-3 +func (r *HireService) ListHireJobFunction(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) { + if r.cli.mock.mockHireListHireJobFunction != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobFunction mock enable") + return r.cli.mock.mockHireListHireJobFunction(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobFunction", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_functions", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobFunctionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobFunction mock HireListHireJobFunction method +func (r *Mock) MockHireListHireJobFunction(f func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error)) { + r.mockHireListHireJobFunction = f +} + +// UnMockHireListHireJobFunction un-mock HireListHireJobFunction method +func (r *Mock) UnMockHireListHireJobFunction() { + r.mockHireListHireJobFunction = nil +} + +// ListHireJobFunctionReq ... +type ListHireJobFunctionReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 不能超过 50, 默认10示例值: 10 最大值: `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ +} + +// ListHireJobFunctionResp ... +type ListHireJobFunctionResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireJobFunctionRespItem `json:"items,omitempty"` // 列表 +} + +// ListHireJobFunctionRespItem ... +type ListHireJobFunctionRespItem struct { + ID string `json:"id,omitempty"` // 职能分类 ID + Name *ListHireJobFunctionRespItemName `json:"name,omitempty"` // 职能分类名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用未启用 + ParentID string `json:"parent_id,omitempty"` // 父级职能分类 ID +} + +// ListHireJobFunctionRespItemName ... +type ListHireJobFunctionRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// listHireJobFunctionResp ... +type listHireJobFunctionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobFunctionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_get_detail.go b/api_hire_job_get_detail.go new file mode 100644 index 00000000..4117584b --- /dev/null +++ b/api_hire_job_get_detail.go @@ -0,0 +1,715 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireJobDetail 根据职位 ID 获取职位详情, 包含职位基本信息、职位负责人、协助人、用人经理、职位地址列表、职位设置、关联招需、门店列表及标签列表等信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get_detail +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/job/get_detail +func (r *HireService) GetHireJobDetail(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) { + if r.cli.mock.mockHireGetHireJobDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireJobDetail mock enable") + return r.cli.mock.mockHireGetHireJobDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireJobDetail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/jobs/:job_id/get_detail", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireJobDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireJobDetail mock HireGetHireJobDetail method +func (r *Mock) MockHireGetHireJobDetail(f func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error)) { + r.mockHireGetHireJobDetail = f +} + +// UnMockHireGetHireJobDetail un-mock HireGetHireJobDetail method +func (r *Mock) UnMockHireGetHireJobDetail() { + r.mockHireGetHireJobDetail = nil +} + +// GetHireJobDetailReq ... +type GetHireJobDetailReq struct { + JobID string `path:"job_id" json:"-"` // 职位 ID, 可通过[获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)接口获取示例值: "7281257045172308287" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 的类型示例值: department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id_type可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[「获取租户职级列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: people_admin_job_category_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 通过[「获取租户序列列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_family/list)接口获取默认值: `people_admin_job_category_id` +} + +// GetHireJobDetailResp ... +type GetHireJobDetailResp struct { + JobDetail *GetHireJobDetailRespJobDetail `json:"job_detail,omitempty"` // 职位详情数据 +} + +// GetHireJobDetailRespJobDetail ... +type GetHireJobDetailRespJobDetail struct { + BasicInfo *GetHireJobDetailRespJobDetailBasicInfo `json:"basic_info,omitempty"` // 职位基本信息 + Recruiter *GetHireJobDetailRespJobDetailRecruiter `json:"recruiter,omitempty"` // 职位负责人 + AssistantList []*GetHireJobDetailRespJobDetailAssistant `json:"assistant_list,omitempty"` // 职位协助人列表 + HiringManagerList []*GetHireJobDetailRespJobDetailHiringManager `json:"hiring_manager_list,omitempty"` // 职位用人经理列表 + JobRequirementList []*GetHireJobDetailRespJobDetailJobRequirement `json:"job_requirement_list,omitempty"` // 招聘需求列表 + AddressList []*GetHireJobDetailRespJobDetailAddress `json:"address_list,omitempty"` // 职位地址列表 + JobConfig *GetHireJobDetailRespJobDetailJobConfig `json:"job_config,omitempty"` // 职位设置 + StorefrontList []*GetHireJobDetailRespJobDetailStorefront `json:"storefront_list,omitempty"` // 门店列表, 仅当 `storefront_mode` 值为`2`的时候会填充 + TagList []*GetHireJobDetailRespJobDetailTag `json:"tag_list,omitempty"` // 职位标签列表, 根据标签顺序降序排列返回。 +} + +// GetHireJobDetailRespJobDetailAddress ... +type GetHireJobDetailRespJobDetailAddress struct { + ID string `json:"id,omitempty"` // 地址 ID, 详情请查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *GetHireJobDetailRespJobDetailAddressName `json:"name,omitempty"` // 地址名称 + District *GetHireJobDetailRespJobDetailAddressDistrict `json:"district,omitempty"` // 区域信息 + City *GetHireJobDetailRespJobDetailAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireJobDetailRespJobDetailAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireJobDetailRespJobDetailAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireJobDetailRespJobDetailAddressCity ... +type GetHireJobDetailRespJobDetailAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *GetHireJobDetailRespJobDetailAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// GetHireJobDetailRespJobDetailAddressCityName ... +type GetHireJobDetailRespJobDetailAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireJobDetailRespJobDetailAddressCountry ... +type GetHireJobDetailRespJobDetailAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *GetHireJobDetailRespJobDetailAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// GetHireJobDetailRespJobDetailAddressCountryName ... +type GetHireJobDetailRespJobDetailAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireJobDetailRespJobDetailAddressDistrict ... +type GetHireJobDetailRespJobDetailAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *GetHireJobDetailRespJobDetailAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// GetHireJobDetailRespJobDetailAddressDistrictName ... +type GetHireJobDetailRespJobDetailAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// GetHireJobDetailRespJobDetailAddressName ... +type GetHireJobDetailRespJobDetailAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地址中文名称 + EnUs string `json:"en_us,omitempty"` // 地址英文名称 +} + +// GetHireJobDetailRespJobDetailAddressState ... +type GetHireJobDetailRespJobDetailAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *GetHireJobDetailRespJobDetailAddressStateName `json:"name,omitempty"` // 省名称 +} + +// GetHireJobDetailRespJobDetailAddressStateName ... +type GetHireJobDetailRespJobDetailAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireJobDetailRespJobDetailAssistant ... +type GetHireJobDetailRespJobDetailAssistant struct { + ID string `json:"id,omitempty"` // 人员 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailAssistantName `json:"name,omitempty"` // 协助人名称 +} + +// GetHireJobDetailRespJobDetailAssistantName ... +type GetHireJobDetailRespJobDetailAssistantName struct { + ZhCn string `json:"zh_cn,omitempty"` // 协助人中文名称 + EnUs string `json:"en_us,omitempty"` // 协助人英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfo ... +type GetHireJobDetailRespJobDetailBasicInfo struct { + ID string `json:"id,omitempty"` // 职位 ID + Title string `json:"title,omitempty"` // 职位名称 + Description string `json:"description,omitempty"` // 职位描述 + Code string `json:"code,omitempty"` // 职位编号 + Requirement string `json:"requirement,omitempty"` // 职位要求 + RecruitmentType *GetHireJobDetailRespJobDetailBasicInfoRecruitmentType `json:"recruitment_type,omitempty"` // 职位雇佣类型, 详情请查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中职位性质/雇佣类型(recruitment_type)枚举定义」 + Department *GetHireJobDetailRespJobDetailBasicInfoDepartment `json:"department,omitempty"` // 职位部门 + MinJobLevel *GetHireJobDetailRespJobDetailBasicInfoMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *GetHireJobDetailRespJobDetailBasicInfoMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + HighlightList []*GetHireJobDetailRespJobDetailBasicInfoHighlight `json:"highlight_list,omitempty"` // 职位亮点 + JobCategory *GetHireJobDetailRespJobDetailBasicInfoJobCategory `json:"job_category,omitempty"` // 职位序列 + JobType *GetHireJobDetailRespJobDetailBasicInfoJobType `json:"job_type,omitempty"` // 职位类别 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用未启用 + CreatorID string `json:"creator_id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致, 若为空则为系统或其他对接系统创建 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 毫秒时间戳 + ProcessType int64 `json:"process_type,omitempty"` // 职位流程类型可选值有: 社招流程校招流程 + ProcessID string `json:"process_id,omitempty"` // 职位流程 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + ProcessName *GetHireJobDetailRespJobDetailBasicInfoProcessName `json:"process_name,omitempty"` // 职位流程名称 + CustomizedDataList []*GetHireJobDetailRespJobDetailBasicInfoCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段列表 + JobFunction *GetHireJobDetailRespJobDetailBasicInfoJobFunction `json:"job_function,omitempty"` // 职能分类 + Subject *GetHireJobDetailRespJobDetailBasicInfoSubject `json:"subject,omitempty"` // 职位项目 + HeadCount int64 `json:"head_count,omitempty"` // 招聘数量 + Experience int64 `json:"experience,omitempty"` // 工作年限可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + ExpiryTime string `json:"expiry_time,omitempty"` // 到期日期, 毫秒时间戳 + MinSalary int64 `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: 千 + MaxSalary int64 `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: 千 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + CityList []*GetHireJobDetailRespJobDetailBasicInfoCity `json:"city_list,omitempty"` // 工作地点列表 + JobAttribute int64 `json:"job_attribute,omitempty"` // 职位属性可选值有: 实体职位虚拟职位 + TargetMajorList []*GetHireJobDetailRespJobDetailBasicInfoTargetMajor `json:"target_major_list,omitempty"` // 目标专业 + StorefrontMode int64 `json:"storefront_mode,omitempty"` // 标志是否门店职位可选值有: 普通职位门店职位 +} + +// GetHireJobDetailRespJobDetailBasicInfoCity ... +type GetHireJobDetailRespJobDetailBasicInfoCity struct { + Code string `json:"code,omitempty"` // 地点编码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + Name *GetHireJobDetailRespJobDetailBasicInfoCityName `json:"name,omitempty"` // 地点名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoCityName ... +type GetHireJobDetailRespJobDetailBasicInfoCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地点中文名称 + EnUs string `json:"en_us,omitempty"` // 地点英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedData ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取职位模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list) + Name *GetHireJobDetailRespJobDetailBasicInfoCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块 + Value *GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedDataName ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValue ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOption ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOptionName ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueTimeRange ... +type GetHireJobDetailRespJobDetailBasicInfoCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳 +} + +// GetHireJobDetailRespJobDetailBasicInfoDepartment ... +type GetHireJobDetailRespJobDetailBasicInfoDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参中的`department_id_type`类型一致, 详情请查看: [获取单个部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/get) + Name *GetHireJobDetailRespJobDetailBasicInfoDepartmentName `json:"name,omitempty"` // 部门名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoDepartmentName ... +type GetHireJobDetailRespJobDetailBasicInfoDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 部门中文名称 + EnUs string `json:"en_us,omitempty"` // 部门英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoHighlight ... +type GetHireJobDetailRespJobDetailBasicInfoHighlight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID, 详情请查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位亮点枚举定义」 + Name *GetHireJobDetailRespJobDetailBasicInfoHighlightName `json:"name,omitempty"` // 职位亮点名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoHighlightName ... +type GetHireJobDetailRespJobDetailBasicInfoHighlightName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位亮点中文名称 + EnUs string `json:"en_us,omitempty"` // 职位亮点英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobCategory ... +type GetHireJobDetailRespJobDetailBasicInfoJobCategory struct { + ID string `json:"id,omitempty"` // 职位序列 ID, 与入参`job_family_id_type` 类型一致 + Name *GetHireJobDetailRespJobDetailBasicInfoJobCategoryName `json:"name,omitempty"` // 序列名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职位序列启用状态可选值有: 启用未启用 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobCategoryName ... +type GetHireJobDetailRespJobDetailBasicInfoJobCategoryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位序列中文名称 + EnUs string `json:"en_us,omitempty"` // 职位序列英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobFunction ... +type GetHireJobDetailRespJobDetailBasicInfoJobFunction struct { + ID string `json:"id,omitempty"` // 职能分类 ID, 详情请参考: [获取职能分类列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list) + Name *GetHireJobDetailRespJobDetailBasicInfoJobFunctionName `json:"name,omitempty"` // 职能分类名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobFunctionName ... +type GetHireJobDetailRespJobDetailBasicInfoJobFunctionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职能分类中文名称 + EnUs string `json:"en_us,omitempty"` // 职能分类英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobType ... +type GetHireJobDetailRespJobDetailBasicInfoJobType struct { + ID string `json:"id,omitempty"` // 职位类别 ID, 详情请查看: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + Name *GetHireJobDetailRespJobDetailBasicInfoJobTypeName `json:"name,omitempty"` // 职位类别名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoJobTypeName ... +type GetHireJobDetailRespJobDetailBasicInfoJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoMaxJobLevel ... +type GetHireJobDetailRespJobDetailBasicInfoMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + Name *GetHireJobDetailRespJobDetailBasicInfoMaxJobLevelName `json:"name,omitempty"` // 职级名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职级启用状态可选值有: 启用未启用 +} + +// GetHireJobDetailRespJobDetailBasicInfoMaxJobLevelName ... +type GetHireJobDetailRespJobDetailBasicInfoMaxJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoMinJobLevel ... +type GetHireJobDetailRespJobDetailBasicInfoMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + Name *GetHireJobDetailRespJobDetailBasicInfoMinJobLevelName `json:"name,omitempty"` // 职级名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职级启用状态可选值有: 启用未启用 +} + +// GetHireJobDetailRespJobDetailBasicInfoMinJobLevelName ... +type GetHireJobDetailRespJobDetailBasicInfoMinJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoProcessName ... +type GetHireJobDetailRespJobDetailBasicInfoProcessName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位流程中文名称 + EnUs string `json:"en_us,omitempty"` // 职位流程英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoRecruitmentType ... +type GetHireJobDetailRespJobDetailBasicInfoRecruitmentType struct { + ID string `json:"id,omitempty"` // 雇佣类型 ID + Name *GetHireJobDetailRespJobDetailBasicInfoRecruitmentTypeName `json:"name,omitempty"` // 雇佣类型名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 雇佣类型启用状态可选值有: 启用未启用 +} + +// GetHireJobDetailRespJobDetailBasicInfoRecruitmentTypeName ... +type GetHireJobDetailRespJobDetailBasicInfoRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 雇佣类型中文名称 + EnUs string `json:"en_us,omitempty"` // 雇佣类型英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoSubject ... +type GetHireJobDetailRespJobDetailBasicInfoSubject struct { + ID string `json:"id,omitempty"` // 项目 ID, 详情请参考: [获取项目列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list) + Name *GetHireJobDetailRespJobDetailBasicInfoSubjectName `json:"name,omitempty"` // 项目名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoSubjectName ... +type GetHireJobDetailRespJobDetailBasicInfoSubjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 项目中文名称 + EnUs string `json:"en_us,omitempty"` // 项目英文名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoTargetMajor ... +type GetHireJobDetailRespJobDetailBasicInfoTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业ID, 「0」 为不限专业, 其他情况可通过[「根据主数据编码批量获取专业」](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get)获取专业详情 + Name *GetHireJobDetailRespJobDetailBasicInfoTargetMajorName `json:"name,omitempty"` // 目标专业名称 +} + +// GetHireJobDetailRespJobDetailBasicInfoTargetMajorName ... +type GetHireJobDetailRespJobDetailBasicInfoTargetMajorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 目标专业中文名称 + EnUs string `json:"en_us,omitempty"` // 目标专业英文名称 +} + +// GetHireJobDetailRespJobDetailHiringManager ... +type GetHireJobDetailRespJobDetailHiringManager struct { + ID string `json:"id,omitempty"` // 人员 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailHiringManagerName `json:"name,omitempty"` // 用人经理名称 +} + +// GetHireJobDetailRespJobDetailHiringManagerName ... +type GetHireJobDetailRespJobDetailHiringManagerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 用人经理中文名称 + EnUs string `json:"en_us,omitempty"` // 用人经理英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfig ... +type GetHireJobDetailRespJobDetailJobConfig struct { + OfferApplySchema *GetHireJobDetailRespJobDetailJobConfigOfferApplySchema `json:"offer_apply_schema,omitempty"` // Offer 申请表 + OfferProcessConf *GetHireJobDetailRespJobDetailJobConfigOfferProcessConf `json:"offer_process_conf,omitempty"` // Offer 审批流 + RecommendedEvaluatorList []*GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluator `json:"recommended_evaluator_list,omitempty"` // 建议评估人列表 + AssessmentTemplate *GetHireJobDetailRespJobDetailJobConfigAssessmentTemplate `json:"assessment_template,omitempty"` // 面试评价表 + InterviewRoundList []*GetHireJobDetailRespJobDetailJobConfigInterviewRound `json:"interview_round_list,omitempty"` // 建议面试官列表 + InterviewRegistration *GetHireJobDetailRespJobDetailJobConfigInterviewRegistration `json:"interview_registration,omitempty"` // 面试登记表 + OnboardRegistration *GetHireJobDetailRespJobDetailJobConfigOnboardRegistration `json:"onboard_registration,omitempty"` // 入职登记表 + InterviewRoundTypeList []*GetHireJobDetailRespJobDetailJobConfigInterviewRoundType `json:"interview_round_type_list,omitempty"` // 面试轮次类型列表 + RelatedJobList []*GetHireJobDetailRespJobDetailJobConfigRelatedJob `json:"related_job_list,omitempty"` // 关联职位列表 + JobAttribute int64 `json:"job_attribute,omitempty"` // 职位属性, 1是实体职位, 2是虚拟职位 + InterviewAppointmentConfig *GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfig `json:"interview_appointment_config,omitempty"` // 面试官安排面试配置 + InternshipOfferApplySchema *GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchema `json:"internship_offer_apply_schema,omitempty"` // 实习 Offer 申请表 +} + +// GetHireJobDetailRespJobDetailJobConfigAssessmentTemplate ... +type GetHireJobDetailRespJobDetailJobConfigAssessmentTemplate struct { + ID string `json:"id,omitempty"` // 面试评价表 ID, 详情请查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + Name *GetHireJobDetailRespJobDetailJobConfigAssessmentTemplateName `json:"name,omitempty"` // 面试评价表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigAssessmentTemplateName ... +type GetHireJobDetailRespJobDetailJobConfigAssessmentTemplateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试评价表中文名称 + EnUs string `json:"en_us,omitempty"` // 面试评价表英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchema ... +type GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchema struct { + ID string `json:"id,omitempty"` // 实习 Offer 申请表 ID, 详情可查看: [获取 Offer 申请表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/list) + Name *GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchemaName `json:"name,omitempty"` // 实习 Offer 申请表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchemaName ... +type GetHireJobDetailRespJobDetailJobConfigInternshipOfferApplySchemaName struct { + ZhCn string `json:"zh_cn,omitempty"` // 实习 Offer 申请表中文名称 + EnUs string `json:"en_us,omitempty"` // 实习 Offer 申请表英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfig ... +type GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfig struct { + EnableInterviewAppointmentByInterviewer bool `json:"enable_interview_appointment_by_interviewer,omitempty"` // 是否开启面试官安排面试 + Config *GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfigConfig `json:"config,omitempty"` // 配置详情 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfigConfig ... +type GetHireJobDetailRespJobDetailJobConfigInterviewAppointmentConfigConfig struct { + InterviewType int64 `json:"interview_type,omitempty"` // 面试类型可选值有: 现场面试电话面试视频面试 + TalentTimezoneCode string `json:"talent_timezone_code,omitempty"` // 时区 + ContactUserID string `json:"contact_user_id,omitempty"` // 联系人 ID, 与入参`user_id_type`类型一致 + ContactMobile string `json:"contact_mobile,omitempty"` // 联系人电话 + ContactEmail string `json:"contact_email,omitempty"` // 联系人邮箱 + AddressID string `json:"address_id,omitempty"` // 联系人地址 ID, 详情请查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + VideoType int64 `json:"video_type,omitempty"` // 视频面试类型可选值有: zoom牛客技术类型牛客非技术类型赛码飞书Hackerrank飞书(含代码考核)不使用系统工具 + Cc []string `json:"cc,omitempty"` // 抄送人 ID 列表, 与入参`user_id_type`类型一致 + Remark string `json:"remark,omitempty"` // 面试配置备注 + InterviewNotificationTemplateID string `json:"interview_notification_template_id,omitempty"` // 面试通知模板 ID + AppointmentNotificationTemplateID string `json:"appointment_notification_template_id,omitempty"` // 预约通知模板 ID + CancelInterviewNotificationTemplateID string `json:"cancel_interview_notification_template_id,omitempty"` // 取消面试通知模版 ID +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRegistration ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRegistration struct { + SchemaID string `json:"schema_id,omitempty"` // 面试登记表模版 ID, 详情可查看: [获取面试登记表模板列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_registration_schema/list) + Name string `json:"name,omitempty"` // 面试登记表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRound ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRound struct { + InterviewerList []*GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewer `json:"interviewer_list,omitempty"` // 面试官列表 + Round int64 `json:"round,omitempty"` // 面试轮次 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewer ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewer struct { + ID string `json:"id,omitempty"` // 面试官 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewerName `json:"name,omitempty"` // 面试官名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewerName ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundInterviewerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试官中文名称 + EnUs string `json:"en_us,omitempty"` // 面试官英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundType ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundType struct { + AssessmentRound *GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRound `json:"assessment_round,omitempty"` // 面试轮次类型 + AssessmentTemplate *GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplate `json:"assessment_template,omitempty"` // 面试评价表 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRound ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRound struct { + ID string `json:"id,omitempty"` // 面试轮次类型 ID, 详情请查看: [获取面试轮次类型列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_round_type/list) + Name *GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRoundName `json:"name,omitempty"` // 面试轮次类型名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRoundName ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentRoundName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试轮次类型中文名称 + EnUs string `json:"en_us,omitempty"` // 面试轮次类型英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplate ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplate struct { + ID string `json:"id,omitempty"` // 面试评价表 ID, 详情请查看: [获取面试评价表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_feedback_form/list) + Name *GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplateName `json:"name,omitempty"` // 面试评级表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplateName ... +type GetHireJobDetailRespJobDetailJobConfigInterviewRoundTypeAssessmentTemplateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 面试评级表中文名称 + EnUs string `json:"en_us,omitempty"` // 面试评级表英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigOfferApplySchema ... +type GetHireJobDetailRespJobDetailJobConfigOfferApplySchema struct { + ID string `json:"id,omitempty"` // Offer 申请表 ID, 详情请查看: [获取 Offer 申请表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/list) + Name *GetHireJobDetailRespJobDetailJobConfigOfferApplySchemaName `json:"name,omitempty"` // Offer 申请表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigOfferApplySchemaName ... +type GetHireJobDetailRespJobDetailJobConfigOfferApplySchemaName struct { + ZhCn string `json:"zh_cn,omitempty"` // Offer 申请表中文名称 + EnUs string `json:"en_us,omitempty"` // Offer 申请表英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigOfferProcessConf ... +type GetHireJobDetailRespJobDetailJobConfigOfferProcessConf struct { + ID string `json:"id,omitempty"` // Offer 审批流 ID + Name *GetHireJobDetailRespJobDetailJobConfigOfferProcessConfName `json:"name,omitempty"` // Offer 审批流名称 +} + +// GetHireJobDetailRespJobDetailJobConfigOfferProcessConfName ... +type GetHireJobDetailRespJobDetailJobConfigOfferProcessConfName struct { + ZhCn string `json:"zh_cn,omitempty"` // Offer 审批流中文名称 + EnUs string `json:"en_us,omitempty"` // Offer 审批流英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigOnboardRegistration ... +type GetHireJobDetailRespJobDetailJobConfigOnboardRegistration struct { + SchemaID string `json:"schema_id,omitempty"` // 入职登记表 ID, 详情请查看: [获取信息登记表模板列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/registration_schema/list) + Name string `json:"name,omitempty"` // 入职登记表名称 +} + +// GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluator ... +type GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluator struct { + ID string `json:"id,omitempty"` // 评估人 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluatorName `json:"name,omitempty"` // 评估人名称 +} + +// GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluatorName ... +type GetHireJobDetailRespJobDetailJobConfigRecommendedEvaluatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 评估人中文名称 + EnUs string `json:"en_us,omitempty"` // 评估人英文名称 +} + +// GetHireJobDetailRespJobDetailJobConfigRelatedJob ... +type GetHireJobDetailRespJobDetailJobConfigRelatedJob struct { + ID string `json:"id,omitempty"` // 关联职位 ID + Name *GetHireJobDetailRespJobDetailJobConfigRelatedJobName `json:"name,omitempty"` // 关联职位名称 +} + +// GetHireJobDetailRespJobDetailJobConfigRelatedJobName ... +type GetHireJobDetailRespJobDetailJobConfigRelatedJobName struct { + ZhCn string `json:"zh_cn,omitempty"` // 关联职位中文名称 + EnUs string `json:"en_us,omitempty"` // 关联职位英文名称 +} + +// GetHireJobDetailRespJobDetailJobRequirement ... +type GetHireJobDetailRespJobDetailJobRequirement struct { + ID string `json:"id,omitempty"` // 招聘需求 ID, 详情请查看: [获取招聘需求信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list_by_id) + ShortCode string `json:"short_code,omitempty"` // 招聘需求编号 + Name string `json:"name,omitempty"` // 需求名称 + DepartmentID string `json:"department_id,omitempty"` // 需求部门 ID, 与入参中的`department_id_type`类型一致 +} + +// GetHireJobDetailRespJobDetailRecruiter ... +type GetHireJobDetailRespJobDetailRecruiter struct { + ID string `json:"id,omitempty"` // 人员 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailRecruiterName `json:"name,omitempty"` // 负责人名称 +} + +// GetHireJobDetailRespJobDetailRecruiterName ... +type GetHireJobDetailRespJobDetailRecruiterName struct { + ZhCn string `json:"zh_cn,omitempty"` // 负责人中文名称 + EnUs string `json:"en_us,omitempty"` // 负责人英文名称 +} + +// GetHireJobDetailRespJobDetailStorefront ... +type GetHireJobDetailRespJobDetailStorefront struct { + ID string `json:"id,omitempty"` // 门店 ID, 详情请查看: [获取门店信息列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/store/list) + Name *GetHireJobDetailRespJobDetailStorefrontName `json:"name,omitempty"` // 门店名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用停用 + Department *GetHireJobDetailRespJobDetailStorefrontDepartment `json:"department,omitempty"` // 门店部门 + Address *GetHireJobDetailRespJobDetailStorefrontAddress `json:"address,omitempty"` // 门店地址 + Manager *GetHireJobDetailRespJobDetailStorefrontManager `json:"manager,omitempty"` // 门店负责人 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 + Remark *GetHireJobDetailRespJobDetailStorefrontRemark `json:"remark,omitempty"` // 门店备注 +} + +// GetHireJobDetailRespJobDetailStorefrontAddress ... +type GetHireJobDetailRespJobDetailStorefrontAddress struct { + ID string `json:"id,omitempty"` // 地址 ID, 详情请查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *GetHireJobDetailRespJobDetailStorefrontAddressName `json:"name,omitempty"` // 地址名称 + District *GetHireJobDetailRespJobDetailStorefrontAddressDistrict `json:"district,omitempty"` // 区域信息 + City *GetHireJobDetailRespJobDetailStorefrontAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireJobDetailRespJobDetailStorefrontAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireJobDetailRespJobDetailStorefrontAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressCity ... +type GetHireJobDetailRespJobDetailStorefrontAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *GetHireJobDetailRespJobDetailStorefrontAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressCityName ... +type GetHireJobDetailRespJobDetailStorefrontAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressCountry ... +type GetHireJobDetailRespJobDetailStorefrontAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *GetHireJobDetailRespJobDetailStorefrontAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressCountryName ... +type GetHireJobDetailRespJobDetailStorefrontAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressDistrict ... +type GetHireJobDetailRespJobDetailStorefrontAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *GetHireJobDetailRespJobDetailStorefrontAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressDistrictName ... +type GetHireJobDetailRespJobDetailStorefrontAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressName ... +type GetHireJobDetailRespJobDetailStorefrontAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地址中文名称 + EnUs string `json:"en_us,omitempty"` // 地址英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressState ... +type GetHireJobDetailRespJobDetailStorefrontAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *GetHireJobDetailRespJobDetailStorefrontAddressStateName `json:"name,omitempty"` // 省名称 +} + +// GetHireJobDetailRespJobDetailStorefrontAddressStateName ... +type GetHireJobDetailRespJobDetailStorefrontAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontDepartment ... +type GetHireJobDetailRespJobDetailStorefrontDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参中的`department_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailStorefrontDepartmentName `json:"name,omitempty"` // 部门名称 +} + +// GetHireJobDetailRespJobDetailStorefrontDepartmentName ... +type GetHireJobDetailRespJobDetailStorefrontDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 部门中文名称 + EnUs string `json:"en_us,omitempty"` // 部门英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontManager ... +type GetHireJobDetailRespJobDetailStorefrontManager struct { + ID string `json:"id,omitempty"` // 负责人 ID, 与入参`user_id_type`类型一致 + Name *GetHireJobDetailRespJobDetailStorefrontManagerName `json:"name,omitempty"` // 负责人名称 +} + +// GetHireJobDetailRespJobDetailStorefrontManagerName ... +type GetHireJobDetailRespJobDetailStorefrontManagerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 负责人中文名称 + EnUs string `json:"en_us,omitempty"` // 负责人英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontName ... +type GetHireJobDetailRespJobDetailStorefrontName struct { + ZhCn string `json:"zh_cn,omitempty"` // 门店中文名称 + EnUs string `json:"en_us,omitempty"` // 门店英文名称 +} + +// GetHireJobDetailRespJobDetailStorefrontRemark ... +type GetHireJobDetailRespJobDetailStorefrontRemark struct { + ZhCn string `json:"zh_cn,omitempty"` // 门店中文备注 + EnUs string `json:"en_us,omitempty"` // 门店英文备注 +} + +// GetHireJobDetailRespJobDetailTag ... +type GetHireJobDetailRespJobDetailTag struct { + ID string `json:"id,omitempty"` // 标签 ID + Name *GetHireJobDetailRespJobDetailTagName `json:"name,omitempty"` // 标签名称 + Order int64 `json:"order,omitempty"` // 标签顺序 +} + +// GetHireJobDetailRespJobDetailTagName ... +type GetHireJobDetailRespJobDetailTagName struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文名称 + EnUs string `json:"en_us,omitempty"` // 标签英文名称 +} + +// getHireJobDetailResp ... +type getHireJobDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireJobDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_list.go b/api_hire_job_list.go new file mode 100644 index 00000000..593a193e --- /dev/null +++ b/api_hire_job_list.go @@ -0,0 +1,220 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJob 获取职位列表, 仅支持获取默认字段信息, 获取详细信息可调用[获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get)接口。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/list-2 +func (r *HireService) ListHireJob(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) { + if r.cli.mock.mockHireListHireJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJob mock enable") + return r.cli.mock.mockHireListHireJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJob", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/jobs", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJob mock HireListHireJob method +func (r *Mock) MockHireListHireJob(f func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error)) { + r.mockHireListHireJob = f +} + +// UnMockHireListHireJob un-mock HireListHireJob method +func (r *Mock) UnMockHireListHireJob() { + r.mockHireListHireJob = nil +} + +// ListHireJobReq ... +type ListHireJobReq struct { + UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒时间戳示例值: 1618500278663 + UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒时间戳示例值: 1618500278663 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: department_id可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: people_admin_job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 可通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: people_admin_job_category_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 通过[「获取租户序列列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_family/list)接口获取默认值: `people_admin_job_category_id` +} + +// ListHireJobResp ... +type ListHireJobResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireJobRespItem `json:"items,omitempty"` // 职位列表 +} + +// ListHireJobRespItem ... +type ListHireJobRespItem struct { + ID string `json:"id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + Title string `json:"title,omitempty"` // 职位名称 + Description string `json:"description,omitempty"` // 职位描述 + Code string `json:"code,omitempty"` // 职位编号 + Requirement string `json:"requirement,omitempty"` // 职位要求 + RecruitmentType *ListHireJobRespItemRecruitmentType `json:"recruitment_type,omitempty"` // 雇佣类型 + Department *ListHireJobRespItemDepartment `json:"department,omitempty"` // 部门 + City *ListHireJobRespItemCity `json:"city,omitempty"` // 工作城市 + MinJobLevel *ListHireJobRespItemMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *ListHireJobRespItemMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + HighlightList []*ListHireJobRespItemHighlight `json:"highlight_list,omitempty"` // 职位亮点列表 + JobCategory *ListHireJobRespItemJobCategory `json:"job_category,omitempty"` // 职位序列 + JobType *ListHireJobRespItemJobType `json:"job_type,omitempty"` // 职位类别 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态可选值有: 启用未启用 + CreateUserID string `json:"create_user_id,omitempty"` // 创建人ID, 若为空则为系统或其他对接系统创建, 与入参`user_id_type`类型一致 + CreateTime int64 `json:"create_time,omitempty"` // 创建时间, 请使用create_timestamp + UpdateTime int64 `json:"update_time,omitempty"` // 更新时间, 请使用update_timestamp + ProcessType int64 `json:"process_type,omitempty"` // 招聘流程类型可选值有: 社招流程校招流程 + ProcessID string `json:"process_id,omitempty"` // 招聘流程 ID, 详情请查看: [获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) + ProcessName string `json:"process_name,omitempty"` // 招聘流程中文名称 + ProcessEnName string `json:"process_en_name,omitempty"` // 招聘流程英文名称 + JobFunction *ListHireJobRespItemJobFunction `json:"job_function,omitempty"` // 职能分类 + Subject *ListHireJobRespItemSubject `json:"subject,omitempty"` // 项目 + HeadCount int64 `json:"head_count,omitempty"` // 招聘数量 + Experience int64 `json:"experience,omitempty"` // 工作经验要求可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + ExpiryTime int64 `json:"expiry_time,omitempty"` // 到期日期 请使用expiry_timestamp + MinSalary int64 `json:"min_salary,omitempty"` // 最低薪资, 单位: K + MaxSalary int64 `json:"max_salary,omitempty"` // 最高薪资, 单位: K + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + CityList []*ListHireJobRespItemCity `json:"city_list,omitempty"` // 工作城市列表 + JobAttribute int64 `json:"job_attribute,omitempty"` // 职位属性可选值有: 实体职位虚拟职位 + CreateTimestamp string `json:"create_timestamp,omitempty"` // 创建时间, 毫秒时间戳 + UpdateTimestamp string `json:"update_timestamp,omitempty"` // 更新时间, 毫秒时间戳 + ExpiryTimestamp string `json:"expiry_timestamp,omitempty"` // 到期时间, 毫秒时间戳 + TargetMajorList []*ListHireJobRespItemTargetMajor `json:"target_major_list,omitempty"` // 目标专业 +} + +// ListHireJobRespItemCity ... +type ListHireJobRespItemCity struct { + CityCode string `json:"city_code,omitempty"` // 工作城市码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + ZhName string `json:"zh_name,omitempty"` // 工作城市中文名称 + EnName string `json:"en_name,omitempty"` // 工作城市英文名称 +} + +// ListHireJobRespItemCityName ... +type ListHireJobRespItemCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// ListHireJobRespItemDepartment ... +type ListHireJobRespItemDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参中的`department_id_type`类型一致 + ZhName string `json:"zh_name,omitempty"` // 部门中文名称 + EnName string `json:"en_name,omitempty"` // 部门英文名称 +} + +// ListHireJobRespItemHighlight ... +type ListHireJobRespItemHighlight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID, 详情请查看: 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中职位亮枚举定义」 + ZhName string `json:"zh_name,omitempty"` // 职位亮点中文名称 + EnName string `json:"en_name,omitempty"` // 职位亮点英文名称 +} + +// ListHireJobRespItemJobCategory ... +type ListHireJobRespItemJobCategory struct { + ID string `json:"id,omitempty"` // 职位序列 ID, 与入参`job_family_id_type` 类型一致 + ZhName string `json:"zh_name,omitempty"` // 职位序列中文名称 + EnName string `json:"en_name,omitempty"` // 职位序列英文名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职位序列启用状态可选值有: 启用未启用 +} + +// ListHireJobRespItemJobFunction ... +type ListHireJobRespItemJobFunction struct { + ID string `json:"id,omitempty"` // 职能分类 ID, 详情请查看: [获取职能分类列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list) + Name *ListHireJobRespItemJobFunctionName `json:"name,omitempty"` // 职能分类名称 +} + +// ListHireJobRespItemJobFunctionName ... +type ListHireJobRespItemJobFunctionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职能分类中文名称 + EnUs string `json:"en_us,omitempty"` // 职能分类英文名称 +} + +// ListHireJobRespItemJobType ... +type ListHireJobRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类别 ID, 详情请查看: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + ZhName string `json:"zh_name,omitempty"` // 职位类别中文名称 + EnName string `json:"en_name,omitempty"` // 职位类别英文名称 +} + +// ListHireJobRespItemMaxJobLevel ... +type ListHireJobRespItemMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + ZhName string `json:"zh_name,omitempty"` // 职级中文名称 + EnName string `json:"en_name,omitempty"` // 职级英文名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职级启用状态可选值有: 启用未启用 +} + +// ListHireJobRespItemMinJobLevel ... +type ListHireJobRespItemMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + ZhName string `json:"zh_name,omitempty"` // 职级中文名称 + EnName string `json:"en_name,omitempty"` // 职级英文名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 职级启用状态可选值有: 启用未启用 +} + +// ListHireJobRespItemRecruitmentType ... +type ListHireJobRespItemRecruitmentType struct { + ID string `json:"id,omitempty"` // 雇佣类型 ID, 详情请查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位性质/雇佣类型(recruitment_type)枚举定义」 + ZhName string `json:"zh_name,omitempty"` // 雇佣类型中文名称 + EnName string `json:"en_name,omitempty"` // 雇佣类型英文名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 雇佣类型启用状态可选值有: 启用未启用 +} + +// ListHireJobRespItemSubject ... +type ListHireJobRespItemSubject struct { + ID string `json:"id,omitempty"` // 项目 ID, 详情请查看: [获取项目列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list) + Name *ListHireJobRespItemSubjectName `json:"name,omitempty"` // 项目名称 +} + +// ListHireJobRespItemSubjectName ... +type ListHireJobRespItemSubjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 项目中文名称 + EnUs string `json:"en_us,omitempty"` // 项目英文名称 +} + +// ListHireJobRespItemTargetMajor ... +type ListHireJobRespItemTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业ID, 「0」 为不限专业, 其他情况可通过[「根据主数据编码批量获取专业」](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get)获取专业详情 + ZhName string `json:"zh_name,omitempty"` // 目标专业中文名称 + EnName string `json:"en_name,omitempty"` // 目标专业英文名称 +} + +// listHireJobResp ... +type listHireJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_manager_get.go b/api_hire_job_manager_get.go index a234d72d..648e788d 100644 --- a/api_hire_job_manager_get.go +++ b/api_hire_job_manager_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job-manager/get // new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/get-2 -// -// Deprecated func (r *HireService) GetHireJobManager(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) { if r.cli.mock.mockHireGetHireJobManager != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireJobManager mock enable") diff --git a/api_hire_job_open.go b/api_hire_job_open.go new file mode 100644 index 00000000..3a9c7743 --- /dev/null +++ b/api_hire_job_open.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// OpenHireJob 对于已关闭的职位, 可通过本接口重启职位。 +// +// 在调用本接口前, 须在「飞书招聘」-「设置」-「职位管理」-「职位设置」中开启「通过 API 同步职位」开关, 否则将只能在招聘系统内重启职位。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/open +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/open +func (r *HireService) OpenHireJob(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) { + if r.cli.mock.mockHireOpenHireJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#OpenHireJob mock enable") + return r.cli.mock.mockHireOpenHireJob(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "OpenHireJob", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/jobs/:job_id/open", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(openHireJobResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireOpenHireJob mock HireOpenHireJob method +func (r *Mock) MockHireOpenHireJob(f func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error)) { + r.mockHireOpenHireJob = f +} + +// UnMockHireOpenHireJob un-mock HireOpenHireJob method +func (r *Mock) UnMockHireOpenHireJob() { + r.mockHireOpenHireJob = nil +} + +// OpenHireJobReq ... +type OpenHireJobReq struct { + JobID string `path:"job_id" json:"-"` // 职位 ID, 可通过[获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)获取示例值: "6960663240925956555" + ExpiryTime *int64 `json:"expiry_time,omitempty"` // 到期日期, 毫秒时间戳(int64类型) 注意: 当`is_never_expired`为`false`时该字段必填且大于当前时间示例值: 1830259120000 + IsNeverExpired bool `json:"is_never_expired,omitempty"` // 是否长期有效 可选值有: * `true`: 长期有效* `false`: 指定到期日期示例值: true +} + +// OpenHireJobResp ... +type OpenHireJobResp struct { +} + +// openHireJobResp ... +type openHireJobResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *OpenHireJobResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_publish_record_search.go b/api_hire_job_publish_record_search.go new file mode 100644 index 00000000..9e868c18 --- /dev/null +++ b/api_hire_job_publish_record_search.go @@ -0,0 +1,330 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireJobPublishRecord 根据招聘渠道 ID 获取当前渠道下曾发布过的职位广告信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_publish_record/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/search +func (r *HireService) SearchHireJobPublishRecord(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) { + if r.cli.mock.mockHireSearchHireJobPublishRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireJobPublishRecord mock enable") + return r.cli.mock.mockHireSearchHireJobPublishRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireJobPublishRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_publish_records/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireJobPublishRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireJobPublishRecord mock HireSearchHireJobPublishRecord method +func (r *Mock) MockHireSearchHireJobPublishRecord(f func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error)) { + r.mockHireSearchHireJobPublishRecord = f +} + +// UnMockHireSearchHireJobPublishRecord un-mock HireSearchHireJobPublishRecord method +func (r *Mock) UnMockHireSearchHireJobPublishRecord() { + r.mockHireSearchHireJobPublishRecord = nil +} + +// SearchHireJobPublishRecordReq ... +type SearchHireJobPublishRecordReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `100` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: department_id可选值有: 由系统自动生成的部门 ID, ID前缀固定为 `od-`, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内, department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: people_admin_job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: people_admin_job_category_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 可通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)接口获取默认值: `people_admin_job_category_id` + JobChannelID string `json:"job_channel_id,omitempty"` // 招聘渠道 ID- 官网 ID: 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)接口获取- 三方渠道 ID: 可通过[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「三方渠道 ID」枚举定义- 猎头渠道 ID : "2"- 内推渠道 ID : "3"示例值: "7047318856652261676" +} + +// SearchHireJobPublishRecordResp ... +type SearchHireJobPublishRecordResp struct { + Items []*SearchHireJobPublishRecordRespItem `json:"items,omitempty"` // 职位广告发布记录列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// SearchHireJobPublishRecordRespItem ... +type SearchHireJobPublishRecordRespItem struct { + ID string `json:"id,omitempty"` // 职位广告 ID, 详情请查看: [获取招聘官网下职位广告详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/get) + Title string `json:"title,omitempty"` // 职位名称 + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + JobCode string `json:"job_code,omitempty"` // 职位编码 + JobExpireTime string `json:"job_expire_time,omitempty"` // 职位过期时间, 毫秒时间戳, 值为空则代表长期有效 + JobActiveStatus int64 `json:"job_active_status,omitempty"` // 职位状态可选值有: 启用态禁用态 + JobProcessType int64 `json:"job_process_type,omitempty"` // 职位流程类型可选值有: 社招校招 + JobRecruitmentType *SearchHireJobPublishRecordRespItemJobRecruitmentType `json:"job_recruitment_type,omitempty"` // 职位雇佣类型 + JobDepartment *SearchHireJobPublishRecordRespItemJobDepartment `json:"job_department,omitempty"` // 职位部门 + JobType *SearchHireJobPublishRecordRespItemJobType `json:"job_type,omitempty"` // 职位类别 + MinJobLevel *SearchHireJobPublishRecordRespItemMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *SearchHireJobPublishRecordRespItemMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + Address *SearchHireJobPublishRecordRespItemAddress `json:"address,omitempty"` // 工作地址 + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + Experience int64 `json:"experience,omitempty"` // 工作年限可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + Headcount int64 `json:"headcount,omitempty"` // 招聘数量 + HighLightList []*SearchHireJobPublishRecordRespItemHighLight `json:"high_light_list,omitempty"` // 职位亮点 + Description string `json:"description,omitempty"` // 职位描述 + Requirement string `json:"requirement,omitempty"` // 职位要求 + Creator *SearchHireJobPublishRecordRespItemCreator `json:"creator,omitempty"` // 创建人 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒时间戳 + CustomizedDataList []*SearchHireJobPublishRecordRespItemCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + AddressList []*SearchHireJobPublishRecordRespItemAddress `json:"address_list,omitempty"` // 工作地址列表 + JobSequenceInfo *SearchHireJobPublishRecordRespItemJobSequenceInfo `json:"job_sequence_info,omitempty"` // 职位序列 + Currency int64 `json:"currency,omitempty"` // 币种, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中币种(currency)枚举定义」 + TargetMajorList []*SearchHireJobPublishRecordRespItemTargetMajor `json:"target_major_list,omitempty"` // 目标专业 +} + +// SearchHireJobPublishRecordRespItemAddress ... +type SearchHireJobPublishRecordRespItemAddress struct { + ID string `json:"id,omitempty"` // 工作地址 ID, 详情可查看: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *SearchHireJobPublishRecordRespItemAddressName `json:"name,omitempty"` // 工作地址名称 + District *SearchHireJobPublishRecordRespItemAddressDistrict `json:"district,omitempty"` // 区域信息 + City *SearchHireJobPublishRecordRespItemAddressCity `json:"city,omitempty"` // 城市信息 + State *SearchHireJobPublishRecordRespItemAddressState `json:"state,omitempty"` // 省信息 + Country *SearchHireJobPublishRecordRespItemAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// SearchHireJobPublishRecordRespItemAddressCity ... +type SearchHireJobPublishRecordRespItemAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *SearchHireJobPublishRecordRespItemAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// SearchHireJobPublishRecordRespItemAddressCityName ... +type SearchHireJobPublishRecordRespItemAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// SearchHireJobPublishRecordRespItemAddressCountry ... +type SearchHireJobPublishRecordRespItemAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *SearchHireJobPublishRecordRespItemAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// SearchHireJobPublishRecordRespItemAddressCountryName ... +type SearchHireJobPublishRecordRespItemAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// SearchHireJobPublishRecordRespItemAddressDistrict ... +type SearchHireJobPublishRecordRespItemAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *SearchHireJobPublishRecordRespItemAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// SearchHireJobPublishRecordRespItemAddressDistrictName ... +type SearchHireJobPublishRecordRespItemAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// SearchHireJobPublishRecordRespItemAddressName ... +type SearchHireJobPublishRecordRespItemAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 工作地址中文名称 + EnUs string `json:"en_us,omitempty"` // 工作地址英文名称 +} + +// SearchHireJobPublishRecordRespItemAddressState ... +type SearchHireJobPublishRecordRespItemAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *SearchHireJobPublishRecordRespItemAddressStateName `json:"name,omitempty"` // 省名称 +} + +// SearchHireJobPublishRecordRespItemAddressStateName ... +type SearchHireJobPublishRecordRespItemAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// SearchHireJobPublishRecordRespItemCreator ... +type SearchHireJobPublishRecordRespItemCreator struct { + ID string `json:"id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致 + Name *SearchHireJobPublishRecordRespItemCreatorName `json:"name,omitempty"` // 创建人名称 +} + +// SearchHireJobPublishRecordRespItemCreatorName ... +type SearchHireJobPublishRecordRespItemCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人中文名称 + EnUs string `json:"en_us,omitempty"` // 创建人英文名称 +} + +// SearchHireJobPublishRecordRespItemCustomizedData ... +type SearchHireJobPublishRecordRespItemCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取职位模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list) + Name *SearchHireJobPublishRecordRespItemCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段 + Value *SearchHireJobPublishRecordRespItemCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// SearchHireJobPublishRecordRespItemCustomizedDataName ... +type SearchHireJobPublishRecordRespItemCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// SearchHireJobPublishRecordRespItemCustomizedDataValue ... +type SearchHireJobPublishRecordRespItemCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为`单行文本`、`多行文本`、`默认字段`时, 从此字段取值 + Option *SearchHireJobPublishRecordRespItemCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为`单选`时, 从此字段取值 + OptionList []*SearchHireJobPublishRecordRespItemCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为`多选`时, 从此字段取值 + TimeRange *SearchHireJobPublishRecordRespItemCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为`时间段`时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为`日期选择`、`月份选择`、`年份选择`时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为`数字`时, 从此字段取值 +} + +// SearchHireJobPublishRecordRespItemCustomizedDataValueOption ... +type SearchHireJobPublishRecordRespItemCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *SearchHireJobPublishRecordRespItemCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// SearchHireJobPublishRecordRespItemCustomizedDataValueOptionName ... +type SearchHireJobPublishRecordRespItemCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// SearchHireJobPublishRecordRespItemCustomizedDataValueTimeRange ... +type SearchHireJobPublishRecordRespItemCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// SearchHireJobPublishRecordRespItemHighLight ... +type SearchHireJobPublishRecordRespItemHighLight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID, 详情请查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位亮点枚举定义」 + Name *SearchHireJobPublishRecordRespItemHighLightName `json:"name,omitempty"` // 职位亮点名称 +} + +// SearchHireJobPublishRecordRespItemHighLightName ... +type SearchHireJobPublishRecordRespItemHighLightName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位亮点中文名称 + EnUs string `json:"en_us,omitempty"` // 职位亮点英文名称 +} + +// SearchHireJobPublishRecordRespItemJobDepartment ... +type SearchHireJobPublishRecordRespItemJobDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参中的`department_id_type`类型一致 + Name *SearchHireJobPublishRecordRespItemJobDepartmentName `json:"name,omitempty"` // 部门名称 +} + +// SearchHireJobPublishRecordRespItemJobDepartmentName ... +type SearchHireJobPublishRecordRespItemJobDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 部门中文名称 + EnUs string `json:"en_us,omitempty"` // 部门英文名称 +} + +// SearchHireJobPublishRecordRespItemJobRecruitmentType ... +type SearchHireJobPublishRecordRespItemJobRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位雇佣类型 ID, 详情请查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中职位性质/雇佣类型(recruitment_type)枚举定义 + Name *SearchHireJobPublishRecordRespItemJobRecruitmentTypeName `json:"name,omitempty"` // 职位雇佣类型名称 +} + +// SearchHireJobPublishRecordRespItemJobRecruitmentTypeName ... +type SearchHireJobPublishRecordRespItemJobRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位雇佣类型中文名称 + EnUs string `json:"en_us,omitempty"` // 职位雇佣类型英文名称 +} + +// SearchHireJobPublishRecordRespItemJobSequenceInfo ... +type SearchHireJobPublishRecordRespItemJobSequenceInfo struct { + ID string `json:"id,omitempty"` // 职位序列 ID, 与入参`job_family_id_type` 类型一致 + Name *SearchHireJobPublishRecordRespItemJobSequenceInfoName `json:"name,omitempty"` // 职位序列名称 +} + +// SearchHireJobPublishRecordRespItemJobSequenceInfoName ... +type SearchHireJobPublishRecordRespItemJobSequenceInfoName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位序列中文名称 + EnUs string `json:"en_us,omitempty"` // 职位序列英文名称 +} + +// SearchHireJobPublishRecordRespItemJobType ... +type SearchHireJobPublishRecordRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类别 ID, 详情请查看: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + Name *SearchHireJobPublishRecordRespItemJobTypeName `json:"name,omitempty"` // 职位类别名称 +} + +// SearchHireJobPublishRecordRespItemJobTypeName ... +type SearchHireJobPublishRecordRespItemJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// SearchHireJobPublishRecordRespItemMaxJobLevel ... +type SearchHireJobPublishRecordRespItemMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + Name *SearchHireJobPublishRecordRespItemMaxJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// SearchHireJobPublishRecordRespItemMaxJobLevelName ... +type SearchHireJobPublishRecordRespItemMaxJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// SearchHireJobPublishRecordRespItemMinJobLevel ... +type SearchHireJobPublishRecordRespItemMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type` 类型一致 + Name *SearchHireJobPublishRecordRespItemMinJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// SearchHireJobPublishRecordRespItemMinJobLevelName ... +type SearchHireJobPublishRecordRespItemMinJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// SearchHireJobPublishRecordRespItemTargetMajor ... +type SearchHireJobPublishRecordRespItemTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业 ID, 「0」 为不限专业, 其他情况可通过[「根据主数据编码批量获取专业」](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get)获取专业详情 + Name *SearchHireJobPublishRecordRespItemTargetMajorName `json:"name,omitempty"` // 目标专业名称 +} + +// SearchHireJobPublishRecordRespItemTargetMajorName ... +type SearchHireJobPublishRecordRespItemTargetMajorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 目标专业中文名称 + EnUs string `json:"en_us,omitempty"` // 目标专业英文名称 +} + +// searchHireJobPublishRecordResp ... +type searchHireJobPublishRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireJobPublishRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_recruiter.go b/api_hire_job_recruiter.go new file mode 100644 index 00000000..b9c9a565 --- /dev/null +++ b/api_hire_job_recruiter.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireJobRecruiter 根据职位 ID 获取职位上的招聘人员信息, 如招聘负责人、用人经理等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/recruiter +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/job/recruiter +func (r *HireService) GetHireJobRecruiter(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) { + if r.cli.mock.mockHireGetHireJobRecruiter != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireJobRecruiter mock enable") + return r.cli.mock.mockHireGetHireJobRecruiter(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireJobRecruiter", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/jobs/:job_id/recruiter", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireJobRecruiterResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireJobRecruiter mock HireGetHireJobRecruiter method +func (r *Mock) MockHireGetHireJobRecruiter(f func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error)) { + r.mockHireGetHireJobRecruiter = f +} + +// UnMockHireGetHireJobRecruiter un-mock HireGetHireJobRecruiter method +func (r *Mock) UnMockHireGetHireJobRecruiter() { + r.mockHireGetHireJobRecruiter = nil +} + +// GetHireJobRecruiterReq ... +type GetHireJobRecruiterReq struct { + JobID string `path:"job_id" json:"-"` // 职位 ID, 可通过[获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)接口获取示例值: "6960663240925956555" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireJobRecruiterResp ... +type GetHireJobRecruiterResp struct { + Info *GetHireJobRecruiterRespInfo `json:"info,omitempty"` // 职位招聘人员信息 +} + +// GetHireJobRecruiterRespInfo ... +type GetHireJobRecruiterRespInfo struct { + ID string `json:"id,omitempty"` // 职位 ID + RecruiterID string `json:"recruiter_id,omitempty"` // 招聘负责人 ID, 与入参 `user_id_type` 类型一致 + HiringManagerIDList []string `json:"hiring_manager_id_list,omitempty"` // 用人经理 ID 列表, 与入参 `user_id_type` 类型一致 + AssistantIDList []string `json:"assistant_id_list,omitempty"` // 协助人 ID 列表, 与入参 `user_id_type` 类型一致 +} + +// getHireJobRecruiterResp ... +type getHireJobRecruiterResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireJobRecruiterResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_create.go b/api_hire_job_requirement_create.go new file mode 100644 index 00000000..76b35ae6 --- /dev/null +++ b/api_hire_job_requirement_create.go @@ -0,0 +1,327 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireJobRequirement 创建招聘需求, 可指定招聘需求部门、招聘人数、需求描述等, 具体可参考「飞书招聘」-「设置」-「招聘需求字段管理」, 或者参考[获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)。 +// +// 除招聘需求编号(`short_code`)为必填外, 其他字段是否必填请参考「飞书招聘」-「设置」-「招聘需求字段管理」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/create +func (r *HireService) CreateHireJobRequirement(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) { + if r.cli.mock.mockHireCreateHireJobRequirement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireJobRequirement mock enable") + return r.cli.mock.mockHireCreateHireJobRequirement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireJobRequirement", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirements", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireJobRequirementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireJobRequirement mock HireCreateHireJobRequirement method +func (r *Mock) MockHireCreateHireJobRequirement(f func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error)) { + r.mockHireCreateHireJobRequirement = f +} + +// UnMockHireCreateHireJobRequirement un-mock HireCreateHireJobRequirement method +func (r *Mock) UnMockHireCreateHireJobRequirement() { + r.mockHireCreateHireJobRequirement = nil +} + +// CreateHireJobRequirementReq ... +type CreateHireJobRequirementReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: open_department_id可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 可通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: job_family_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 可通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)获取默认值: `people_admin_job_category_id` + EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型示例值: employee_type_enum_id可选值有: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的人员类型 ID, 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)获取默认值: `people_admin_employee_type_id` + ShortCode string `json:"short_code,omitempty"` // 招聘需求编号, 需传入唯一的编号示例值: "R01905" + Name string `json:"name,omitempty"` // 需求名称示例值: "HR部门春季招聘需求" + DisplayProgress int64 `json:"display_progress,omitempty"` // 需求状态示例值: 1可选值有: 未开始进行中已取消已暂停已完成已超期 + HeadCount int64 `json:"head_count,omitempty"` // 需求人数示例值: 10 + RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 职位性质 ID, 可在[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)查阅枚举值。- 注意: 该字段即将下线, 请使用`employee_type_id`字段, 与`employee_type_id`字段必填其一示例值: "101" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型ID, 类型需与`employee_type_id_type`保持一致示例值: "6807409776231254285" + MaxLevelID *string `json:"max_level_id,omitempty"` // 最高职级 ID, 需与`job_level_id_type`类型保持一致示例值: "6807409776231254286" + MinLevelID *string `json:"min_level_id,omitempty"` // 最低职级 ID, 需与`job_level_id_type`类型保持一致示例值: "6807409776231254287" + SequenceID *string `json:"sequence_id,omitempty"` // 职位序列 ID, 需与`job_family_id_type`类型保持一致示例值: "6911957338526091536" + Category *HelpdeskCategory `json:"category,omitempty"` // 需求类型示例值: 1可选值有: 新增替换 + DepartmentID *string `json:"department_id,omitempty"` // 需求部门 ID, 需与`department_id_type`类型一致示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" + RecruiterIDList []string `json:"recruiter_id_list,omitempty"` // 需求负责人 ID 列表, 需与`user_id_type`类型保持一致示例值: ["od-4e6ac4d14bcd5071a37a39de902c7141"] + JrHiringManagerIDList []string `json:"jr_hiring_manager_id_list,omitempty"` // 需求用人经理 ID 列表, 需与`user_id_type`类型保持一致示例值: ["ou_0c9b1b7b9b94146b9df142c349e3c4bf"] + DirectLeaderIDList []string `json:"direct_leader_id_list,omitempty"` // 直属上级 ID, 需与`user_id_type`类型保持一致示例值: ["od-4e6ac4d14bcd5071a37a39de902c7141"] + StartTime *string `json:"start_time,omitempty"` // 开始日期, 毫秒时间戳示例值: "1625729379000" + Deadline *string `json:"deadline,omitempty"` // 预计完成日期, 毫秒时间戳示例值: "1625729379000" + Priority *int64 `json:"priority,omitempty"` // 招聘优先级示例值: 1可选值有: 高中低 + RequiredDegree *int64 `json:"required_degree,omitempty"` // 学历要求示例值: 1可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + MaxSalary *string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K示例值: "10" + MinSalary *string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K示例值: "5" + AddressID *string `json:"address_id,omitempty"` // 工作地址 ID, 可通过[获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list)获取示例值: "7265901641899311105" + Description *string `json:"description,omitempty"` // 需求描述示例值: "部门人力紧缺, 需要招聘资深工程师10名" + CustomizedDataList []*CreateHireJobRequirementReqCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段, 可通过[获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)获取自定义字段列表、类型等 + ProcessType *int64 `json:"process_type,omitempty"` // 招聘类型示例值: 1可选值有: 社招校招 + JobTypeID *string `json:"job_type_id,omitempty"` // 职位类别, 可通过[获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list)获取示例值: "6930815272790114324" + JobIDList []string `json:"job_id_list,omitempty"` // 关联的职位 ID 列表。注: 若企业开启了“招聘需求审批”, 未通过审批的需求无法关联职位, 请勿传入该字段。示例值: ["6930815272790114324"] 最大长度: `200` + EmploymentJobID *string `json:"employment_job_id,omitempty"` // 职务 ID, 可通过[获取租户职务列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取(仅限飞书人事租户使用)示例值: "6807407987381831949" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID, 可通过[查询岗位信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)获取(仅限飞书人事租户使用, 若链接无法打开, 则说明飞书人事未启用岗位, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)开通)示例值: "7094136522860922111" +} + +// CreateHireJobRequirementReqCustomizedData ... +type CreateHireJobRequirementReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)获取示例值: "1213213123123" + Value *string `json:"value,omitempty"` // 自定义字段 value- 单选: `"1"`- 多选: `"[\"1\", \"2\"]"`- 单行: `"单行文本"`- 多行: `"多行文本"`- 数字: `"1"`- 月份选择: `"1627379423000"`- 年份选择: `"1627379423000"`- 日期选择: `"1627379423000"`- 时间段: `"[\"1577808000000\", \"1612108800000\"]"`示例值: "简单文本" +} + +// CreateHireJobRequirementResp ... +type CreateHireJobRequirementResp struct { + JobRequirement *CreateHireJobRequirementRespJobRequirement `json:"job_requirement,omitempty"` // 招聘需求信息 +} + +// CreateHireJobRequirementRespJobRequirement ... +type CreateHireJobRequirementRespJobRequirement struct { + ID string `json:"id,omitempty"` // 招聘需求 ID + ShortCode string `json:"short_code,omitempty"` // 招聘需求编号 + Name string `json:"name,omitempty"` // 需求名称 + DisplayProgress int64 `json:"display_progress,omitempty"` // 需求状态可选值有: 未开始进行中已取消已暂停已完成已超期 + HeadCount int64 `json:"head_count,omitempty"` // 需求人数 + RecruitmentType *CreateHireJobRequirementRespJobRequirementRecruitmentType `json:"recruitment_type,omitempty"` // 职位性质, 可在[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)文档中查看枚举值, 建议使用`employee_type`字段 + EmployeeType *CreateHireJobRequirementRespJobRequirementEmployeeType `json:"employee_type,omitempty"` // 人员类型 + MaxLevel *CreateHireJobRequirementRespJobRequirementMaxLevel `json:"max_level,omitempty"` // 最高职级 + MinLevel *CreateHireJobRequirementRespJobRequirementMinLevel `json:"min_level,omitempty"` // 最低职级 + Sequence *CreateHireJobRequirementRespJobRequirementSequence `json:"sequence,omitempty"` // 职位序列 + Category *HelpdeskCategory `json:"category,omitempty"` // 需求类型可选值有: 新增替换 + Department *CreateHireJobRequirementRespJobRequirementDepartment `json:"department,omitempty"` // 需求部门 + RecruiterList []*CreateHireJobRequirementRespJobRequirementRecruiter `json:"recruiter_list,omitempty"` // 需求负责人 + JrHiringManagers []*CreateHireJobRequirementRespJobRequirementJrHiringManager `json:"jr_hiring_managers,omitempty"` // 需求用人经理 + DirectLeaderList []*CreateHireJobRequirementRespJobRequirementDirectLeader `json:"direct_leader_list,omitempty"` // 直属上级 + StartTime string `json:"start_time,omitempty"` // 开始日期, 毫秒时间戳 + Deadline string `json:"deadline,omitempty"` // 预计完成日期, 毫秒时间戳 + Priority int64 `json:"priority,omitempty"` // 招聘优先级可选值有: 高中低 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + MaxSalary string `json:"max_salary,omitempty"` // 最高月薪, 单位: K + MinSalary string `json:"min_salary,omitempty"` // 最低月薪, 单位: K + Address *CreateHireJobRequirementRespJobRequirementAddress `json:"address,omitempty"` // 工作地址 + Description string `json:"description,omitempty"` // 需求描述 + CustomizedDataList []*CreateHireJobRequirementRespJobRequirementCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + ProcessType int64 `json:"process_type,omitempty"` // 招聘类型可选值有: 社招校招 + JobType *CreateHireJobRequirementRespJobRequirementJobType `json:"job_type,omitempty"` // 职位类别 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 + CreatorID string `json:"creator_id,omitempty"` // 创建人 ID, 与入参 `user_id_type` 类型一致 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 毫秒时间戳 + EmploymentJobID string `json:"employment_job_id,omitempty"` // 职务ID, 详情请查看: [查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get) + PositionID string `json:"position_id,omitempty"` // 岗位ID, 详情请查看: [查询岗位信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query) + CompletionTime string `json:"completion_time,omitempty"` // 完成时间, 毫秒级时间戳 + ApprovalStatus int64 `json:"approval_status,omitempty"` // 审批状态可选值有: 未发起审批中审批通过已撤回未通过 +} + +// CreateHireJobRequirementRespJobRequirementAddress ... +type CreateHireJobRequirementRespJobRequirementAddress struct { + ID string `json:"id,omitempty"` // 工作地址 ID, 详情请参考: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list)获取 + Name *CreateHireJobRequirementRespJobRequirementAddressName `json:"name,omitempty"` // 工作地址名称 +} + +// CreateHireJobRequirementRespJobRequirementAddressName ... +type CreateHireJobRequirementRespJobRequirementAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedData ... +type CreateHireJobRequirementRespJobRequirementCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请参考: [获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list) + Name *CreateHireJobRequirementRespJobRequirementCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块 + Value *CreateHireJobRequirementRespJobRequirementCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedDataName ... +type CreateHireJobRequirementRespJobRequirementCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedDataValue ... +type CreateHireJobRequirementRespJobRequirementCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *CreateHireJobRequirementRespJobRequirementCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*CreateHireJobRequirementRespJobRequirementCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *CreateHireJobRequirementRespJobRequirementCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedDataValueOption ... +type CreateHireJobRequirementRespJobRequirementCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *CreateHireJobRequirementRespJobRequirementCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedDataValueOptionName ... +type CreateHireJobRequirementRespJobRequirementCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementCustomizedDataValueTimeRange ... +type CreateHireJobRequirementRespJobRequirementCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳 +} + +// CreateHireJobRequirementRespJobRequirementDepartment ... +type CreateHireJobRequirementRespJobRequirementDepartment struct { + ID string `json:"id,omitempty"` // 需求部门 ID, 与`department_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementDepartmentName `json:"name,omitempty"` // 需求部门名称 +} + +// CreateHireJobRequirementRespJobRequirementDepartmentName ... +type CreateHireJobRequirementRespJobRequirementDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementDirectLeader ... +type CreateHireJobRequirementRespJobRequirementDirectLeader struct { + ID string `json:"id,omitempty"` // 直属上级 ID, 与`user_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementDirectLeaderName `json:"name,omitempty"` // 直属上级名称 +} + +// CreateHireJobRequirementRespJobRequirementDirectLeaderName ... +type CreateHireJobRequirementRespJobRequirementDirectLeaderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementEmployeeType ... +type CreateHireJobRequirementRespJobRequirementEmployeeType struct { + ID string `json:"id,omitempty"` // 人员类型 ID, 与`employee_type_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementEmployeeTypeName `json:"name,omitempty"` // 人员类型名称 +} + +// CreateHireJobRequirementRespJobRequirementEmployeeTypeName ... +type CreateHireJobRequirementRespJobRequirementEmployeeTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementJobType ... +type CreateHireJobRequirementRespJobRequirementJobType struct { + ID string `json:"id,omitempty"` // 职位类别 ID + Name *CreateHireJobRequirementRespJobRequirementJobTypeName `json:"name,omitempty"` // 职位类别名称 + ParentID string `json:"parent_id,omitempty"` // 父级职位类别 ID +} + +// CreateHireJobRequirementRespJobRequirementJobTypeName ... +type CreateHireJobRequirementRespJobRequirementJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementJrHiringManager ... +type CreateHireJobRequirementRespJobRequirementJrHiringManager struct { + ID string `json:"id,omitempty"` // 需求用人经理 ID, 与`user_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementJrHiringManagerName `json:"name,omitempty"` // 需求用人经理名称 +} + +// CreateHireJobRequirementRespJobRequirementJrHiringManagerName ... +type CreateHireJobRequirementRespJobRequirementJrHiringManagerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementMaxLevel ... +type CreateHireJobRequirementRespJobRequirementMaxLevel struct { + ID string `json:"id,omitempty"` // 最高职级 ID, 与`job_level_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementMaxLevelName `json:"name,omitempty"` // 最高职级名称 +} + +// CreateHireJobRequirementRespJobRequirementMaxLevelName ... +type CreateHireJobRequirementRespJobRequirementMaxLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementMinLevel ... +type CreateHireJobRequirementRespJobRequirementMinLevel struct { + ID string `json:"id,omitempty"` // 最低职级 ID, 与`job_level_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementMinLevelName `json:"name,omitempty"` // 最低职级名称 +} + +// CreateHireJobRequirementRespJobRequirementMinLevelName ... +type CreateHireJobRequirementRespJobRequirementMinLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementRecruiter ... +type CreateHireJobRequirementRespJobRequirementRecruiter struct { + ID string `json:"id,omitempty"` // 需求负责人 ID, 与`user_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementRecruiterName `json:"name,omitempty"` // 需求负责人名称 +} + +// CreateHireJobRequirementRespJobRequirementRecruiterName ... +type CreateHireJobRequirementRespJobRequirementRecruiterName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementRecruitmentType ... +type CreateHireJobRequirementRespJobRequirementRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位性质 ID + Name *CreateHireJobRequirementRespJobRequirementRecruitmentTypeName `json:"name,omitempty"` // 职位性质名称 +} + +// CreateHireJobRequirementRespJobRequirementRecruitmentTypeName ... +type CreateHireJobRequirementRespJobRequirementRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// CreateHireJobRequirementRespJobRequirementSequence ... +type CreateHireJobRequirementRespJobRequirementSequence struct { + ID string `json:"id,omitempty"` // 职位序列 ID, 与`job_family_id_type`类型一致 + Name *CreateHireJobRequirementRespJobRequirementSequenceName `json:"name,omitempty"` // 职位序列名称 +} + +// CreateHireJobRequirementRespJobRequirementSequenceName ... +type CreateHireJobRequirementRespJobRequirementSequenceName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// createHireJobRequirementResp ... +type createHireJobRequirementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireJobRequirementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_delete.go b/api_hire_job_requirement_delete.go new file mode 100644 index 00000000..f21aa4d0 --- /dev/null +++ b/api_hire_job_requirement_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireJobRequirement 删除指定的招聘需求, 请注意: 若该招聘需求已经关联到职位上, 则需先接触关联后, 才能删除招聘需求。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/delete +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/delete +func (r *HireService) DeleteHireJobRequirement(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireJobRequirement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireJobRequirement mock enable") + return r.cli.mock.mockHireDeleteHireJobRequirement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireJobRequirement", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirements/:job_requirement_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireJobRequirementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireJobRequirement mock HireDeleteHireJobRequirement method +func (r *Mock) MockHireDeleteHireJobRequirement(f func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error)) { + r.mockHireDeleteHireJobRequirement = f +} + +// UnMockHireDeleteHireJobRequirement un-mock HireDeleteHireJobRequirement method +func (r *Mock) UnMockHireDeleteHireJobRequirement() { + r.mockHireDeleteHireJobRequirement = nil +} + +// DeleteHireJobRequirementReq ... +type DeleteHireJobRequirementReq struct { + JobRequirementID string `path:"job_requirement_id" json:"-"` // 招聘需求ID, 可通过[获取招聘需求列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list)获取示例值: "6949805467799537964" +} + +// DeleteHireJobRequirementResp ... +type DeleteHireJobRequirementResp struct { +} + +// deleteHireJobRequirementResp ... +type deleteHireJobRequirementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireJobRequirementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_list.go b/api_hire_job_requirement_list.go new file mode 100644 index 00000000..8d0c1fdc --- /dev/null +++ b/api_hire_job_requirement_list.go @@ -0,0 +1,301 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobRequirement 获取招聘需求列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/list-2 +func (r *HireService) ListHireJobRequirement(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) { + if r.cli.mock.mockHireListHireJobRequirement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobRequirement mock enable") + return r.cli.mock.mockHireListHireJobRequirement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobRequirement", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirements", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobRequirementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobRequirement mock HireListHireJobRequirement method +func (r *Mock) MockHireListHireJobRequirement(f func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error)) { + r.mockHireListHireJobRequirement = f +} + +// UnMockHireListHireJobRequirement un-mock HireListHireJobRequirement method +func (r *Mock) UnMockHireListHireJobRequirement() { + r.mockHireListHireJobRequirement = nil +} + +// ListHireJobRequirementReq ... +type ListHireJobRequirementReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1231231987 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 最大值100示例值: 20默认值: `1` + JobID *string `query:"job_id" json:"-"` // 职位ID, 详情请参考: [获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)示例值: 6001 + CreateTimeBegin *string `query:"create_time_begin" json:"-"` // 起始创建时间, 传入毫秒级时间戳示例值: 1658980233000 + CreateTimeEnd *string `query:"create_time_end" json:"-"` // 截止创建时间, 传入毫秒级时间戳示例值: 1658980233000 + UpdateTimeBegin *string `query:"update_time_begin" json:"-"` // 起始更新时间, 传入毫秒级时间戳示例值: 1658980233000 + UpdateTimeEnd *string `query:"update_time_end" json:"-"` // 截止更新时间, 传入毫秒级时间戳示例值: 1658980233000 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: "open_department_id"可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: "people_admin_job_level_id"可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: "people_admin_job_category_id"可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)接口获取默认值: `people_admin_job_category_id` + EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型示例值: "employee_type_enum_id"可选值有: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的人员类型 ID, 通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)接口获取默认值: `people_admin_employee_type_id` +} + +// ListHireJobRequirementResp ... +type ListHireJobRequirementResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireJobRequirementRespItem `json:"items,omitempty"` // 查询的招聘需求信息 +} + +// ListHireJobRequirementRespItem ... +type ListHireJobRequirementRespItem struct { + ID string `json:"id,omitempty"` // 招聘需求 ID + ShortCode string `json:"short_code,omitempty"` // 招聘需求编号 + Name string `json:"name,omitempty"` // 需求名称 + DisplayProgress int64 `json:"display_progress,omitempty"` // 需求状态可选值有: 未开始进行中已取消已暂停已完成已超期 + HeadCount int64 `json:"head_count,omitempty"` // 需求人数 + RecruitmentType *ListHireJobRequirementRespItemRecruitmentType `json:"recruitment_type,omitempty"` // 职位性质, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位性质/雇佣类型(recruitment_type)枚举定义」, 即将下线字段, 不建议使用, 推荐使用「employee_type」字段 + EmployeeType *ListHireJobRequirementRespItemEmployeeType `json:"employee_type,omitempty"` // 人员类型 + MaxLevel *ListHireJobRequirementRespItemMaxLevel `json:"max_level,omitempty"` // 最高职级, 与入参`job_level_id_type` 类型一致 + MinLevel *ListHireJobRequirementRespItemMinLevel `json:"min_level,omitempty"` // 最低职级, 与入参`job_level_id_type` 类型一致 + Sequence *ListHireJobRequirementRespItemSequence `json:"sequence,omitempty"` // 职位序列, 与入参`job_family_id_type` 类型一致 + Category *HelpdeskCategory `json:"category,omitempty"` // 需求类型可选值有: 新增替换 + Department *ListHireJobRequirementRespItemDepartment `json:"department,omitempty"` // 需求部门 + RecruiterList []*ListHireJobRequirementRespItemRecruiter `json:"recruiter_list,omitempty"` // 需求负责人 + JrHiringManagers []*ListHireJobRequirementRespItemJrHiringManager `json:"jr_hiring_managers,omitempty"` // 需求用人经理 + DirectLeaderList []*ListHireJobRequirementRespItemDirectLeader `json:"direct_leader_list,omitempty"` // 直属上级 + StartTime string `json:"start_time,omitempty"` // 开始日期, 毫秒级时间戳 + Deadline string `json:"deadline,omitempty"` // 预计完成日期, 毫秒级时间戳 + Priority int64 `json:"priority,omitempty"` // 招聘优先级可选值有: 高中低 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K + Address *ListHireJobRequirementRespItemAddress `json:"address,omitempty"` // 工作地点 + Description string `json:"description,omitempty"` // 需求描述 + CustomizedDataList []*ListHireJobRequirementRespItemCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段, 请参考[获取招聘需求模板列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)中的自定义字段 + JobIDList []string `json:"job_id_list,omitempty"` // 关联职位 ID + ProcessType int64 `json:"process_type,omitempty"` // 招聘需求支持的招聘类型可选值有: 社招校招 + JobType *ListHireJobRequirementRespItemJobType `json:"job_type,omitempty"` // 职位类别, [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳 + CreatorID string `json:"creator_id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 毫秒级时间戳 + EmploymentJobID string `json:"employment_job_id,omitempty"` // 职务ID, 详情请查看: [查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get) + PositionID string `json:"position_id,omitempty"` // 岗位ID, 详情请查看: [查询岗位信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)(仅限飞书人事租户使用, 若链接无法打开, 则说明飞书人事未启用岗位, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)开通) + CompletionTime string `json:"completion_time,omitempty"` // 完成时间, 毫秒级时间戳, 只有当「需求状态」字段为”已完成“的情况下返回(灰度范围内的租户可见该字段) + ApprovalStatus int64 `json:"approval_status,omitempty"` // 审批状态(灰度范围内的租户可见该字段)可选值有: 未发起审批中审批通过已撤回未通过 +} + +// ListHireJobRequirementRespItemAddress ... +type ListHireJobRequirementRespItemAddress struct { + ID string `json:"id,omitempty"` // 工作地点 ID, 详情可参考: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + Name *ListHireJobRequirementRespItemAddressName `json:"name,omitempty"` // 工作地点名称 +} + +// ListHireJobRequirementRespItemAddressName ... +type ListHireJobRequirementRespItemAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 工作地点中文名称 + EnUs string `json:"en_us,omitempty"` // 工作地点英文名称 +} + +// ListHireJobRequirementRespItemCustomizedData ... +type ListHireJobRequirementRespItemCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID + Name *ListHireJobRequirementRespItemCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块 + Value *ListHireJobRequirementRespItemCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// ListHireJobRequirementRespItemCustomizedDataName ... +type ListHireJobRequirementRespItemCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// ListHireJobRequirementRespItemCustomizedDataValue ... +type ListHireJobRequirementRespItemCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *ListHireJobRequirementRespItemCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*ListHireJobRequirementRespItemCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *ListHireJobRequirementRespItemCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// ListHireJobRequirementRespItemCustomizedDataValueOption ... +type ListHireJobRequirementRespItemCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireJobRequirementRespItemCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// ListHireJobRequirementRespItemCustomizedDataValueOptionName ... +type ListHireJobRequirementRespItemCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireJobRequirementRespItemCustomizedDataValueTimeRange ... +type ListHireJobRequirementRespItemCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// ListHireJobRequirementRespItemDepartment ... +type ListHireJobRequirementRespItemDepartment struct { + ID string `json:"id,omitempty"` // 需求部门 ID, 与入参中的`department_id_type`类型一致 + Name *ListHireJobRequirementRespItemDepartmentName `json:"name,omitempty"` // 需求部门名称 +} + +// ListHireJobRequirementRespItemDepartmentName ... +type ListHireJobRequirementRespItemDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求部门中文名称 + EnUs string `json:"en_us,omitempty"` // 需求部门英文名称 +} + +// ListHireJobRequirementRespItemDirectLeader ... +type ListHireJobRequirementRespItemDirectLeader struct { + ID string `json:"id,omitempty"` // 直属上级 ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementRespItemDirectLeaderName `json:"name,omitempty"` // 直属上级名称 +} + +// ListHireJobRequirementRespItemDirectLeaderName ... +type ListHireJobRequirementRespItemDirectLeaderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 直属上级中文名称 + EnUs string `json:"en_us,omitempty"` // 直属上级英文名称 +} + +// ListHireJobRequirementRespItemEmployeeType ... +type ListHireJobRequirementRespItemEmployeeType struct { + ID string `json:"id,omitempty"` // 人员类型ID, 与入参`employee_type_id_type` 类型一致 + Name *ListHireJobRequirementRespItemEmployeeTypeName `json:"name,omitempty"` // 人员类型名称 +} + +// ListHireJobRequirementRespItemEmployeeTypeName ... +type ListHireJobRequirementRespItemEmployeeTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 人员类型中文名称 + EnUs string `json:"en_us,omitempty"` // 人员类型英文名称 +} + +// ListHireJobRequirementRespItemJobType ... +type ListHireJobRequirementRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类别ID + Name *ListHireJobRequirementRespItemJobTypeName `json:"name,omitempty"` // 职位类别名称 + ParentID string `json:"parent_id,omitempty"` // 父级职位类别ID +} + +// ListHireJobRequirementRespItemJobTypeName ... +type ListHireJobRequirementRespItemJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// ListHireJobRequirementRespItemJrHiringManager ... +type ListHireJobRequirementRespItemJrHiringManager struct { + ID string `json:"id,omitempty"` // 需求用人经理ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementRespItemJrHiringManagerName `json:"name,omitempty"` // 需求用人经理名称 +} + +// ListHireJobRequirementRespItemJrHiringManagerName ... +type ListHireJobRequirementRespItemJrHiringManagerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求用人经理中文名称 + EnUs string `json:"en_us,omitempty"` // 需求用人经理英文名称 +} + +// ListHireJobRequirementRespItemMaxLevel ... +type ListHireJobRequirementRespItemMaxLevel struct { + ID string `json:"id,omitempty"` // 最高职级 ID + Name *ListHireJobRequirementRespItemMaxLevelName `json:"name,omitempty"` // 职级名称 +} + +// ListHireJobRequirementRespItemMaxLevelName ... +type ListHireJobRequirementRespItemMaxLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireJobRequirementRespItemMinLevel ... +type ListHireJobRequirementRespItemMinLevel struct { + ID string `json:"id,omitempty"` // 最低职级ID + Name *ListHireJobRequirementRespItemMinLevelName `json:"name,omitempty"` // 职级名称名称 +} + +// ListHireJobRequirementRespItemMinLevelName ... +type ListHireJobRequirementRespItemMinLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireJobRequirementRespItemRecruiter ... +type ListHireJobRequirementRespItemRecruiter struct { + ID string `json:"id,omitempty"` // 需求负责人ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementRespItemRecruiterName `json:"name,omitempty"` // 需求负责人名称 +} + +// ListHireJobRequirementRespItemRecruiterName ... +type ListHireJobRequirementRespItemRecruiterName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求负责人中文名称 + EnUs string `json:"en_us,omitempty"` // 需求负责人英文名称 +} + +// ListHireJobRequirementRespItemRecruitmentType ... +type ListHireJobRequirementRespItemRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位性质 ID + Name *ListHireJobRequirementRespItemRecruitmentTypeName `json:"name,omitempty"` // 职位性质名称 +} + +// ListHireJobRequirementRespItemRecruitmentTypeName ... +type ListHireJobRequirementRespItemRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位性质中文名称 + EnUs string `json:"en_us,omitempty"` // 职位性质英文名称 +} + +// ListHireJobRequirementRespItemSequence ... +type ListHireJobRequirementRespItemSequence struct { + ID string `json:"id,omitempty"` // 职位序列ID + Name *ListHireJobRequirementRespItemSequenceName `json:"name,omitempty"` // 职位序列名称 +} + +// ListHireJobRequirementRespItemSequenceName ... +type ListHireJobRequirementRespItemSequenceName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位序列中文名称 + EnUs string `json:"en_us,omitempty"` // 职位序列英文名称 +} + +// listHireJobRequirementResp ... +type listHireJobRequirementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobRequirementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_list_by_id.go b/api_hire_job_requirement_list_by_id.go new file mode 100644 index 00000000..2f4a53b5 --- /dev/null +++ b/api_hire_job_requirement_list_by_id.go @@ -0,0 +1,304 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobRequirementByID 根据「招聘需求ID」获取招聘需求信息, 支持批量查询。 +// +// 注意: 本接口不返回审批状态为「审批中」的招聘需求信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list_by_id +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/list_by_id +func (r *HireService) ListHireJobRequirementByID(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) { + if r.cli.mock.mockHireListHireJobRequirementByID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobRequirementByID mock enable") + return r.cli.mock.mockHireListHireJobRequirementByID(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobRequirementByID", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirements/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobRequirementByIDResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobRequirementByID mock HireListHireJobRequirementByID method +func (r *Mock) MockHireListHireJobRequirementByID(f func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error)) { + r.mockHireListHireJobRequirementByID = f +} + +// UnMockHireListHireJobRequirementByID un-mock HireListHireJobRequirementByID method +func (r *Mock) UnMockHireListHireJobRequirementByID() { + r.mockHireListHireJobRequirementByID = nil +} + +// ListHireJobRequirementByIDReq ... +type ListHireJobRequirementByIDReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: "open_department_id"可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: "job_level_id"可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: "people_admin_job_category_id"可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)接口获取默认值: `people_admin_job_category_id` + EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型示例值: "people_admin_employee_type_id"可选值有: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的人员类型 ID, 通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)接口获取默认值: `people_admin_employee_type_id` + IDList []string `json:"id_list,omitempty"` // 招聘需求ID列表, 详情请参考: [获取招聘需求列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list)不允许和招聘需求编号列表同时使用, 否则报错(详见错误码1002725)限制单次最大100条, 该字段和编号列表都不传则返回空示例值: ["6952811314255265796"] + ShortCodeList []string `json:"short_code_list,omitempty"` // 招聘需求编号列表, 详情请参考: [获取招聘需求列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list)不允许和招聘需求ID列表同时使用, 否则报错(详见错误码1002725)限制单次最大100条, 该字段和ID列表都不传则返回空示例值: ["R00407"] +} + +// ListHireJobRequirementByIDResp ... +type ListHireJobRequirementByIDResp struct { + Items []*ListHireJobRequirementByIDRespItem `json:"items,omitempty"` // 招聘需求列表 +} + +// ListHireJobRequirementByIDRespItem ... +type ListHireJobRequirementByIDRespItem struct { + ID string `json:"id,omitempty"` // 招聘需求 ID + ShortCode string `json:"short_code,omitempty"` // 招聘需求编号 + Name string `json:"name,omitempty"` // 需求名称 + DisplayProgress int64 `json:"display_progress,omitempty"` // 需求状态可选值有: 未开始进行中已取消已暂停已完成已超期 + HeadCount int64 `json:"head_count,omitempty"` // 需求人数 + RecruitmentType *ListHireJobRequirementByIDRespItemRecruitmentType `json:"recruitment_type,omitempty"` // 职位性质, 可在[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)文档中查看枚举值, 即将下线字段, 不建议使用, 推荐使用「employee_type」字段 + EmployeeType *ListHireJobRequirementByIDRespItemEmployeeType `json:"employee_type,omitempty"` // 人员类型 + MaxLevel *ListHireJobRequirementByIDRespItemMaxLevel `json:"max_level,omitempty"` // 最高职级 + MinLevel *ListHireJobRequirementByIDRespItemMinLevel `json:"min_level,omitempty"` // 最低职级 + Sequence *ListHireJobRequirementByIDRespItemSequence `json:"sequence,omitempty"` // 职位序列 + Category *HelpdeskCategory `json:"category,omitempty"` // 需求类型可选值有: 新增替换 + Department *ListHireJobRequirementByIDRespItemDepartment `json:"department,omitempty"` // 需求部门 + RecruiterList []*ListHireJobRequirementByIDRespItemRecruiter `json:"recruiter_list,omitempty"` // 需求负责人 + JrHiringManagers []*ListHireJobRequirementByIDRespItemJrHiringManager `json:"jr_hiring_managers,omitempty"` // 需求用人经理 + DirectLeaderList []*ListHireJobRequirementByIDRespItemDirectLeader `json:"direct_leader_list,omitempty"` // 直属上级 + StartTime string `json:"start_time,omitempty"` // 开始日期, 毫秒级时间戳 + Deadline string `json:"deadline,omitempty"` // 预计完成日期, 毫秒级时间戳 + Priority int64 `json:"priority,omitempty"` // 招聘优先级可选值有: 高中低 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K + Address []*ListHireJobRequirementByIDRespItemAddre `json:"address,omitempty"` // 工作地点, 详情请参考: [获取地址列表](https://open.larkoffice.com/document/server-docs/hire-v1/recruitment-related-configuration/location/list) + Description string `json:"description,omitempty"` // 需求描述 + CustomizedDataList []*ListHireJobRequirementByIDRespItemCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + JobIDList []string `json:"job_id_list,omitempty"` // 关联职位 ID, 详情请参考: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + ProcessType int64 `json:"process_type,omitempty"` // 招聘需求支持的招聘类型可选值有: 社招校招 + JobType *ListHireJobRequirementByIDRespItemJobType `json:"job_type,omitempty"` // 职位类别, 详情请参考: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳 + CreatorID string `json:"creator_id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致 + UpdateTime string `json:"update_time,omitempty"` // 更新时间, 毫秒级时间戳 + EmploymentJobID string `json:"employment_job_id,omitempty"` // 职务ID, 详情请查看: [查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get) + PositionID string `json:"position_id,omitempty"` // 岗位ID, 详情请查看: [查询岗位信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)(仅限飞书人事租户使用, 若链接无法打开, 则说明飞书人事未启用岗位, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)开通) + CompletionTime string `json:"completion_time,omitempty"` // 完成时间, 毫秒级时间戳, 只有当「需求状态」字段为”已完成“的情况下返回(灰度范围内的租户可见该字段) + ApprovalStatus int64 `json:"approval_status,omitempty"` // 审批状态(灰度范围内的租户可见该字段)可选值有: 未发起审批中审批通过已撤回未通过 + CountData *ListHireJobRequirementByIDRespItemCountData `json:"count_data,omitempty"` // 招聘需求招聘进展统计数值 +} + +// ListHireJobRequirementByIDRespItemAddre ... +type ListHireJobRequirementByIDRespItemAddre struct { + ID string `json:"id,omitempty"` // 工作地点 ID + Name *ListHireJobRequirementByIDRespItemAddreName `json:"name,omitempty"` // 工作地点名称 +} + +// ListHireJobRequirementByIDRespItemAddreName ... +type ListHireJobRequirementByIDRespItemAddreName struct { + ZhCn string `json:"zh_cn,omitempty"` // 工作地点中文名称 + EnUs string `json:"en_us,omitempty"` // 工作地点英文名称 +} + +// ListHireJobRequirementByIDRespItemCountData ... +type ListHireJobRequirementByIDRespItemCountData struct { + OfferCount int64 `json:"offer_count,omitempty"` // Offer 沟通中的数量 + PreHireCount int64 `json:"pre_hire_count,omitempty"` // 待入职中的数量 + CompleteCount int64 `json:"complete_count,omitempty"` // 已完成的数量 +} + +// ListHireJobRequirementByIDRespItemCustomizedData ... +type ListHireJobRequirementByIDRespItemCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID + Name *ListHireJobRequirementByIDRespItemCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块 + Value *ListHireJobRequirementByIDRespItemCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// ListHireJobRequirementByIDRespItemCustomizedDataName ... +type ListHireJobRequirementByIDRespItemCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// ListHireJobRequirementByIDRespItemCustomizedDataValue ... +type ListHireJobRequirementByIDRespItemCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *ListHireJobRequirementByIDRespItemCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*ListHireJobRequirementByIDRespItemCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *ListHireJobRequirementByIDRespItemCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// ListHireJobRequirementByIDRespItemCustomizedDataValueOption ... +type ListHireJobRequirementByIDRespItemCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireJobRequirementByIDRespItemCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// ListHireJobRequirementByIDRespItemCustomizedDataValueOptionName ... +type ListHireJobRequirementByIDRespItemCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireJobRequirementByIDRespItemCustomizedDataValueTimeRange ... +type ListHireJobRequirementByIDRespItemCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// ListHireJobRequirementByIDRespItemDepartment ... +type ListHireJobRequirementByIDRespItemDepartment struct { + ID string `json:"id,omitempty"` // 需求部门 ID, 与入参中的`department_id_type`类型一致 + Name *ListHireJobRequirementByIDRespItemDepartmentName `json:"name,omitempty"` // 需求部门名称 +} + +// ListHireJobRequirementByIDRespItemDepartmentName ... +type ListHireJobRequirementByIDRespItemDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求部门中文名称 + EnUs string `json:"en_us,omitempty"` // 需求部门英文名称 +} + +// ListHireJobRequirementByIDRespItemDirectLeader ... +type ListHireJobRequirementByIDRespItemDirectLeader struct { + ID string `json:"id,omitempty"` // 直属上级ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementByIDRespItemDirectLeaderName `json:"name,omitempty"` // 直属上级名称 +} + +// ListHireJobRequirementByIDRespItemDirectLeaderName ... +type ListHireJobRequirementByIDRespItemDirectLeaderName struct { + ZhCn string `json:"zh_cn,omitempty"` // 直属上级中文名称 + EnUs string `json:"en_us,omitempty"` // 直属上级英文名称 +} + +// ListHireJobRequirementByIDRespItemEmployeeType ... +type ListHireJobRequirementByIDRespItemEmployeeType struct { + ID string `json:"id,omitempty"` // 人员类型ID, 与入参`employee_type_id_type` 类型一致 + Name *ListHireJobRequirementByIDRespItemEmployeeTypeName `json:"name,omitempty"` // 人员类型名称 +} + +// ListHireJobRequirementByIDRespItemEmployeeTypeName ... +type ListHireJobRequirementByIDRespItemEmployeeTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 人员类型中文名称 + EnUs string `json:"en_us,omitempty"` // 人员类型英文名称 +} + +// ListHireJobRequirementByIDRespItemJobType ... +type ListHireJobRequirementByIDRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类别ID + Name *ListHireJobRequirementByIDRespItemJobTypeName `json:"name,omitempty"` // 职位类别名称 + ParentID string `json:"parent_id,omitempty"` // 父级职位类别ID +} + +// ListHireJobRequirementByIDRespItemJobTypeName ... +type ListHireJobRequirementByIDRespItemJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// ListHireJobRequirementByIDRespItemJrHiringManager ... +type ListHireJobRequirementByIDRespItemJrHiringManager struct { + ID string `json:"id,omitempty"` // 需求用人经理ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementByIDRespItemJrHiringManagerName `json:"name,omitempty"` // 需求用人经理名称 +} + +// ListHireJobRequirementByIDRespItemJrHiringManagerName ... +type ListHireJobRequirementByIDRespItemJrHiringManagerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求用人经理中文名称 + EnUs string `json:"en_us,omitempty"` // 需求用人经理英文名称 +} + +// ListHireJobRequirementByIDRespItemMaxLevel ... +type ListHireJobRequirementByIDRespItemMaxLevel struct { + ID string `json:"id,omitempty"` // 最高职级 ID, 与入参`job_level_id_type` 类型一致 + Name *ListHireJobRequirementByIDRespItemMaxLevelName `json:"name,omitempty"` // 职级名称 +} + +// ListHireJobRequirementByIDRespItemMaxLevelName ... +type ListHireJobRequirementByIDRespItemMaxLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireJobRequirementByIDRespItemMinLevel ... +type ListHireJobRequirementByIDRespItemMinLevel struct { + ID string `json:"id,omitempty"` // 最低职级 ID, 与入参`job_level_id_type` 类型一致 + Name *ListHireJobRequirementByIDRespItemMinLevelName `json:"name,omitempty"` // 职级名称 +} + +// ListHireJobRequirementByIDRespItemMinLevelName ... +type ListHireJobRequirementByIDRespItemMinLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireJobRequirementByIDRespItemRecruiter ... +type ListHireJobRequirementByIDRespItemRecruiter struct { + ID string `json:"id,omitempty"` // 需求负责人 ID, 与入参`user_id_type`类型一致 + Name *ListHireJobRequirementByIDRespItemRecruiterName `json:"name,omitempty"` // 需求负责人名称 +} + +// ListHireJobRequirementByIDRespItemRecruiterName ... +type ListHireJobRequirementByIDRespItemRecruiterName struct { + ZhCn string `json:"zh_cn,omitempty"` // 需求负责人中文名称 + EnUs string `json:"en_us,omitempty"` // 需求负责人英文名称 +} + +// ListHireJobRequirementByIDRespItemRecruitmentType ... +type ListHireJobRequirementByIDRespItemRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位性质 ID + Name *ListHireJobRequirementByIDRespItemRecruitmentTypeName `json:"name,omitempty"` // 职位性质名称 +} + +// ListHireJobRequirementByIDRespItemRecruitmentTypeName ... +type ListHireJobRequirementByIDRespItemRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位性质中文名称 + EnUs string `json:"en_us,omitempty"` // 职位性质英文名称 +} + +// ListHireJobRequirementByIDRespItemSequence ... +type ListHireJobRequirementByIDRespItemSequence struct { + ID string `json:"id,omitempty"` // 职位序列 ID, 与入参`job_family_id_type` 类型一致 + Name *ListHireJobRequirementByIDRespItemSequenceName `json:"name,omitempty"` // 职位序列名称 +} + +// ListHireJobRequirementByIDRespItemSequenceName ... +type ListHireJobRequirementByIDRespItemSequenceName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位序列中文名称 + EnUs string `json:"en_us,omitempty"` // 职位序列英文名称 +} + +// listHireJobRequirementByIDResp ... +type listHireJobRequirementByIDResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobRequirementByIDResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_schema_list.go b/api_hire_job_requirement_schema_list.go new file mode 100644 index 00000000..f0db6411 --- /dev/null +++ b/api_hire_job_requirement_schema_list.go @@ -0,0 +1,204 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobRequirementSchema 获取招聘需求模板列表, 包含需求模板ID, 以及模板里的字段定义等。招聘需求模板可参考「飞书招聘」-「设置」-「招聘需求字段管理」。 +// +// [创建招聘需求](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/create)、 +// [更新招聘需求](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/update)等接口, 都需要按照招聘需求模板的定义进行传值。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/list +func (r *HireService) ListHireJobRequirementSchema(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) { + if r.cli.mock.mockHireListHireJobRequirementSchema != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobRequirementSchema mock enable") + return r.cli.mock.mockHireListHireJobRequirementSchema(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobRequirementSchema", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirement_schemas", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobRequirementSchemaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobRequirementSchema mock HireListHireJobRequirementSchema method +func (r *Mock) MockHireListHireJobRequirementSchema(f func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error)) { + r.mockHireListHireJobRequirementSchema = f +} + +// UnMockHireListHireJobRequirementSchema un-mock HireListHireJobRequirementSchema method +func (r *Mock) UnMockHireListHireJobRequirementSchema() { + r.mockHireListHireJobRequirementSchema = nil +} + +// ListHireJobRequirementSchemaReq ... +type ListHireJobRequirementSchemaReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1NTUyMjM2NzIsImlkIjpudWxsfQ + PageSize *int64 `query:"page_size" json:"-"` // 分页大小最大值: `100`示例值: 100默认值: `10` +} + +// ListHireJobRequirementSchemaResp ... +type ListHireJobRequirementSchemaResp struct { + Items []*ListHireJobRequirementSchemaRespItem `json:"items,omitempty"` // 招聘需求模板列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireJobRequirementSchemaRespItem ... +type ListHireJobRequirementSchemaRespItem struct { + ID string `json:"id,omitempty"` // 招聘需求模板 ID + Name *ListHireJobRequirementSchemaRespItemName `json:"name,omitempty"` // 招聘需求模板名称 + ObjectList []*ListHireJobRequirementSchemaRespItemObject `json:"object_list,omitempty"` // 招聘需求模板模块列表 +} + +// ListHireJobRequirementSchemaRespItemName ... +type ListHireJobRequirementSchemaRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobRequirementSchemaRespItemObject ... +type ListHireJobRequirementSchemaRespItemObject struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *ListHireJobRequirementSchemaRespItemObjectName `json:"name,omitempty"` // 模块名称 + Description *ListHireJobRequirementSchemaRespItemObjectDescription `json:"description,omitempty"` // 模块描述 + Setting *ListHireJobRequirementSchemaRespItemObjectSetting `json:"setting,omitempty"` // 模块信息 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义模块- true: 自定义模块- false: 系统预制模块 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 + ChildrenList []*ListHireJobRequirementSchemaRespItemObjectChildren `json:"children_list,omitempty"` // 模块中的字段列表 +} + +// ListHireJobRequirementSchemaRespItemObjectChildren ... +type ListHireJobRequirementSchemaRespItemObjectChildren struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *ListHireJobRequirementSchemaRespItemObjectChildrenName `json:"name,omitempty"` // 字段名称 + Description *ListHireJobRequirementSchemaRespItemObjectChildrenDescription `json:"description,omitempty"` // 字段描述 + Setting *ListHireJobRequirementSchemaRespItemObjectChildrenSetting `json:"setting,omitempty"` // 字段配置信息 + ParentID string `json:"parent_id,omitempty"` // 所属模块 ID + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义字段- true: 自定义字段- false: 系统预制字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenDescription ... +type ListHireJobRequirementSchemaRespItemObjectChildrenDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenName ... +type ListHireJobRequirementSchemaRespItemObjectChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenSetting ... +type ListHireJobRequirementSchemaRespItemObjectChildrenSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型, 可选值为1-10, 不会返回为11、13可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfig ... +type ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfig struct { + Options []*ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOption `json:"options,omitempty"` // 选项信息, 仅适用于字段类型为单选(`3`)或多选(`4`) +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOption ... +type ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项Key + Name *ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionDescription ... +type ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionName ... +type ListHireJobRequirementSchemaRespItemObjectChildrenSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobRequirementSchemaRespItemObjectDescription ... +type ListHireJobRequirementSchemaRespItemObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobRequirementSchemaRespItemObjectName ... +type ListHireJobRequirementSchemaRespItemObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobRequirementSchemaRespItemObjectSetting ... +type ListHireJobRequirementSchemaRespItemObjectSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 模块类型, 固定返回`11`可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireJobRequirementSchemaRespItemObjectSettingConfig `json:"config,omitempty"` // 配置信息, 固定返回空 +} + +// ListHireJobRequirementSchemaRespItemObjectSettingConfig ... +type ListHireJobRequirementSchemaRespItemObjectSettingConfig struct { + Options []*ListHireJobRequirementSchemaRespItemObjectSettingConfigOption `json:"options,omitempty"` // 选项信息 +} + +// ListHireJobRequirementSchemaRespItemObjectSettingConfigOption ... +type ListHireJobRequirementSchemaRespItemObjectSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionDescription ... +type ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionName ... +type ListHireJobRequirementSchemaRespItemObjectSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireJobRequirementSchemaResp ... +type listHireJobRequirementSchemaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobRequirementSchemaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_requirement_update.go b/api_hire_job_requirement_update.go new file mode 100644 index 00000000..89b74034 --- /dev/null +++ b/api_hire_job_requirement_update.go @@ -0,0 +1,120 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireJobRequirement 更新指定招聘需求的信息, 包含招聘需求的名称、状态、需求人数等。(审批中的招聘需求无法更新) +// +// - 除文档中描述的必填字段(`name`、`display_progress`、`head_count`)外, 其他字段是否必填请参考「飞书招聘」-「设置」-「招聘需求字段管理」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/update +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job_requirement/update +func (r *HireService) UpdateHireJobRequirement(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireJobRequirement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireJobRequirement mock enable") + return r.cli.mock.mockHireUpdateHireJobRequirement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireJobRequirement", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_requirements/:job_requirement_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireJobRequirementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireJobRequirement mock HireUpdateHireJobRequirement method +func (r *Mock) MockHireUpdateHireJobRequirement(f func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error)) { + r.mockHireUpdateHireJobRequirement = f +} + +// UnMockHireUpdateHireJobRequirement un-mock HireUpdateHireJobRequirement method +func (r *Mock) UnMockHireUpdateHireJobRequirement() { + r.mockHireUpdateHireJobRequirement = nil +} + +// UpdateHireJobRequirementReq ... +type UpdateHireJobRequirementReq struct { + JobRequirementID string `path:"job_requirement_id" json:"-"` // 招聘需求ID, 可通过[获取招聘需求列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/list)获取示例值: "6949805467799537964" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: department_id可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 可通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)获取默认值: `people_admin_job_level_id` + JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型示例值: job_family_id可选值有: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的序列 ID, 可通过[获取租户序列列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_family/list)获取默认值: `people_admin_job_category_id` + EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型示例值: employee_type_enum_id可选值有: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的人员类型 ID, 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)获取默认值: `people_admin_employee_type_id` + Name string `json:"name,omitempty"` // 需求名称示例值: "HR部门春季招聘需求" + DisplayProgress int64 `json:"display_progress,omitempty"` // 需求状态示例值: 1可选值有: 待启动进行中已取消已暂停已完成已超期 + HeadCount int64 `json:"head_count,omitempty"` // 需求人数示例值: 11 + RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 职位性质 ID, 可在[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)查阅枚举值。- 注意: 该字段即将下线, 请使用「employee_type_id」字段。与「employee_type_id」字段必填其一示例值: "101" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型ID, 类型需与`employee_type_id_type`保持一致示例值: "6807409776231254285" + MaxLevelID *string `json:"max_level_id,omitempty"` // 最高职级 ID, 需与`job_level_id_type`类型保持一致示例值: "6807409776231254286" + MinLevelID *string `json:"min_level_id,omitempty"` // 最低职级 ID, 需与`job_level_id_type`类型保持一致示例值: "6807409776231254287" + SequenceID *string `json:"sequence_id,omitempty"` // 职位序列 ID, 需与`job_family_id_type`类型保持一致示例值: "6911957338526091536" + Category *HelpdeskCategory `json:"category,omitempty"` // 需求类型示例值: 1可选值有: 新增替换 + DepartmentID *string `json:"department_id,omitempty"` // 需求部门ID, 需与`department_id_type`类型一致示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" + RecruiterIDList []string `json:"recruiter_id_list,omitempty"` // 需求负责人 ID 列表, 需与`user_id_type`类型保持一致示例值: ["od-4e6ac4d14bcd5071a37a39de902c7141"] + JrHiringManagerIDList []string `json:"jr_hiring_manager_id_list,omitempty"` // 需求用人经理 ID 列表, 需与`user_id_type`类型保持一致示例值: ["ou_0c9b1b7b9b94146b9df142c349e3c4bf"] + DirectLeaderIDList []string `json:"direct_leader_id_list,omitempty"` // 直属上级 ID, 需与`user_id_type`类型保持一致示例值: ["od-4e6ac4d14bcd5071a37a39de902c7141"] + StartTime *string `json:"start_time,omitempty"` // 开始日期, 毫秒时间戳示例值: "1625729379000" + Deadline *string `json:"deadline,omitempty"` // 预计完成日期, 毫秒时间戳示例值: "1625729379000" + Priority *int64 `json:"priority,omitempty"` // 招聘优先级示例值: 1可选值有: 高中低 + RequiredDegree *int64 `json:"required_degree,omitempty"` // 学历要求示例值: 1可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + MaxSalary *string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K示例值: "10" + MinSalary *string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K示例值: "5" + AddressID *string `json:"address_id,omitempty"` // 工作地点 ID, 可通过[获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list)获取示例值: "7265901641899311105" + Description *string `json:"description,omitempty"` // 需求描述示例值: "部门人力紧缺, 需要招聘资深工程师10名" + CustomizedDataList []*UpdateHireJobRequirementReqCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段, 可通过[获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)获取, 自定义字段是否必填需依据需求模板中自定义字段的定义。- 注意: 更新时会全量覆盖 + ProcessType *int64 `json:"process_type,omitempty"` // 招聘类型示例值: 1可选值有: 社招校招 + JobTypeID *string `json:"job_type_id,omitempty"` // 职位类别, 可通过[获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list)获取示例值: "6930815272790114324" + JobIDList []string `json:"job_id_list,omitempty"` // 关联的职位 ID 列表(与 update_option. need_update_related_job 配合使用)示例值: ["6930815272790114324"] 最大长度: `200` + EmploymentJobID *string `json:"employment_job_id,omitempty"` // 职务 ID, 可通过[获取租户职务列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取(仅限飞书人事租户使用)示例值: "6807407987381831949" + PositionID *string `json:"position_id,omitempty"` // 岗位 ID, 可通过[查询岗位信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)获取(仅限飞书人事租户使用, 若链接无法打开, 则说明飞书人事未启用岗位, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)开通)示例值: "7094136522860922111" + UpdateOption *UpdateHireJobRequirementReqUpdateOption `json:"update_option,omitempty"` // 招聘需求修改确认控制 +} + +// UpdateHireJobRequirementReqCustomizedData ... +type UpdateHireJobRequirementReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取招聘需求模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement_schema/list)获取示例值: "1213213123123" + Value *string `json:"value,omitempty"` // 自定义字段 value- 单选: `"1"`- 多选: `"[\"1\", \"2\"]"`- 单行: `"单行文本"`- 多行: `"多行文本"`- 数字: `"1"`- 月份选择: `"1627379423000"`- 年份选择: `"1627379423000"`- 日期选择: `"1627379423000"`- 时间段: `"[\"1577808000000\", \"1612108800000\"]"`示例值: "简单文本" +} + +// UpdateHireJobRequirementReqUpdateOption ... +type UpdateHireJobRequirementReqUpdateOption struct { + NeedUpdateRelatedJob *bool `json:"need_update_related_job,omitempty"` // 是否需要修改关联的职位示例值: false默认值: `false` +} + +// UpdateHireJobRequirementResp ... +type UpdateHireJobRequirementResp struct { +} + +// updateHireJobRequirementResp ... +type updateHireJobRequirementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireJobRequirementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_schema_list.go b/api_hire_job_schema_list.go new file mode 100644 index 00000000..b94de863 --- /dev/null +++ b/api_hire_job_schema_list.go @@ -0,0 +1,203 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobSchema 获取社招、校招职位模板中的职位字段, 返回结果包括系统默认字段和自定义字段。招聘管理员可在「飞书招聘」-「设置」-「职位管理」-「职位字段管理」中修改职位模板。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/job/list +func (r *HireService) ListHireJobSchema(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) { + if r.cli.mock.mockHireListHireJobSchema != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobSchema mock enable") + return r.cli.mock.mockHireListHireJobSchema(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobSchema", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_schemas", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobSchemaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobSchema mock HireListHireJobSchema method +func (r *Mock) MockHireListHireJobSchema(f func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error)) { + r.mockHireListHireJobSchema = f +} + +// UnMockHireListHireJobSchema un-mock HireListHireJobSchema method +func (r *Mock) UnMockHireListHireJobSchema() { + r.mockHireListHireJobSchema = nil +} + +// ListHireJobSchemaReq ... +type ListHireJobSchemaReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE3MjQ2NTQ0OTc2OTd9 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小 默认值: 10 * 最大值: 100示例值: 10 + Scenario *int64 `query:"scenario" json:"-"` // 职位模板类型示例值: 1可选值有: 社招校招 +} + +// ListHireJobSchemaResp ... +type ListHireJobSchemaResp struct { + Items []*ListHireJobSchemaRespItem `json:"items,omitempty"` // 职位模板列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireJobSchemaRespItem ... +type ListHireJobSchemaRespItem struct { + ID string `json:"id,omitempty"` // 职位模板 ID + Name *ListHireJobSchemaRespItemName `json:"name,omitempty"` // 职位模板名称 + ScenarioType int64 `json:"scenario_type,omitempty"` // 职位模板类型可选值有: 社招校招 + ObjectList []*ListHireJobSchemaRespItemObject `json:"object_list,omitempty"` // 模块列表 +} + +// ListHireJobSchemaRespItemName ... +type ListHireJobSchemaRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobSchemaRespItemObject ... +type ListHireJobSchemaRespItemObject struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *ListHireJobSchemaRespItemObjectName `json:"name,omitempty"` // 模块名称 + Description *ListHireJobSchemaRespItemObjectDescription `json:"description,omitempty"` // 模块描述 + Setting *ListHireJobSchemaRespItemObjectSetting `json:"setting,omitempty"` // 模块信息 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义模块 可选值有: * `true`: 自定义模块* `false`: 系统默认模块 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 可选值有: * `true`: 必填* `false`: 非必填 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 + ChildrenList []*ListHireJobSchemaRespItemObjectChildren `json:"children_list,omitempty"` // 字段列表 +} + +// ListHireJobSchemaRespItemObjectChildren ... +type ListHireJobSchemaRespItemObjectChildren struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *ListHireJobSchemaRespItemObjectChildrenName `json:"name,omitempty"` // 字段名称 + Description *ListHireJobSchemaRespItemObjectChildrenDescription `json:"description,omitempty"` // 字段描述 + Setting *ListHireJobSchemaRespItemObjectChildrenSetting `json:"setting,omitempty"` // 字段信息 + ParentID string `json:"parent_id,omitempty"` // 所属模块 ID, 对应外层`object_list.id`字段 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义字段 可选值有: * `true`: 自定义字段* `false`: 系统默认字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 可选值有: * `true`: 必填* `false`: 非必填 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobSchemaRespItemObjectChildrenDescription ... +type ListHireJobSchemaRespItemObjectChildrenDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobSchemaRespItemObjectChildrenName ... +type ListHireJobSchemaRespItemObjectChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobSchemaRespItemObjectChildrenSetting ... +type ListHireJobSchemaRespItemObjectChildrenSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型, 目前仅支持`1`/`2`/`3`/`4`/`5`/`9`/`10`可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireJobSchemaRespItemObjectChildrenSettingConfig `json:"config,omitempty"` // 字段配置信息 +} + +// ListHireJobSchemaRespItemObjectChildrenSettingConfig ... +type ListHireJobSchemaRespItemObjectChildrenSettingConfig struct { + Options []*ListHireJobSchemaRespItemObjectChildrenSettingConfigOption `json:"options,omitempty"` // 选项信息, 当`object_type `为`3`(单选)或`4`(多选)时有值 +} + +// ListHireJobSchemaRespItemObjectChildrenSettingConfigOption ... +type ListHireJobSchemaRespItemObjectChildrenSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionDescription ... +type ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionName ... +type ListHireJobSchemaRespItemObjectChildrenSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobSchemaRespItemObjectDescription ... +type ListHireJobSchemaRespItemObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobSchemaRespItemObjectName ... +type ListHireJobSchemaRespItemObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireJobSchemaRespItemObjectSetting ... +type ListHireJobSchemaRespItemObjectSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 类型, 目前仅支持`11`可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireJobSchemaRespItemObjectSettingConfig `json:"config,omitempty"` // 模块配置信息 +} + +// ListHireJobSchemaRespItemObjectSettingConfig ... +type ListHireJobSchemaRespItemObjectSettingConfig struct { + Options []*ListHireJobSchemaRespItemObjectSettingConfigOption `json:"options,omitempty"` // 选项信息 +} + +// ListHireJobSchemaRespItemObjectSettingConfigOption ... +type ListHireJobSchemaRespItemObjectSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireJobSchemaRespItemObjectSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireJobSchemaRespItemObjectSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireJobSchemaRespItemObjectSettingConfigOptionDescription ... +type ListHireJobSchemaRespItemObjectSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireJobSchemaRespItemObjectSettingConfigOptionName ... +type ListHireJobSchemaRespItemObjectSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireJobSchemaResp ... +type listHireJobSchemaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobSchemaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_job_type_list.go b/api_hire_job_type_list.go new file mode 100644 index 00000000..cfbfb8a7 --- /dev/null +++ b/api_hire_job_type_list.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireJobType 获取招聘系统预置的职位类别列表, 可用于操作职位(如[新建职位](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/combined_create)), 操作招聘需求(如[创建招聘需求](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_requirement/create))时回填职位类别字段。返回列表默认按创建时间升序排序, 且包含节点的层级关系(节点的父节点 ID), 可在获取全量数据后自行构建职位类别树。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/job/list-4 +func (r *HireService) ListHireJobType(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) { + if r.cli.mock.mockHireListHireJobType != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireJobType mock enable") + return r.cli.mock.mockHireListHireJobType(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireJobType", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/job_types", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireJobTypeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireJobType mock HireListHireJobType method +func (r *Mock) MockHireListHireJobType(f func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error)) { + r.mockHireListHireJobType = f +} + +// UnMockHireListHireJobType un-mock HireListHireJobType method +func (r *Mock) UnMockHireListHireJobType() { + r.mockHireListHireJobType = nil +} + +// ListHireJobTypeReq ... +type ListHireJobTypeReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小 默认值: 10示例值: 10 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListHireJobTypeResp ... +type ListHireJobTypeResp struct { + Items []*ListHireJobTypeRespItem `json:"items,omitempty"` // 职位类别列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireJobTypeRespItem ... +type ListHireJobTypeRespItem struct { + ID string `json:"id,omitempty"` // 职位类别 ID + Name *ListHireJobTypeRespItemName `json:"name,omitempty"` // 职位类别名称 + ParentID string `json:"parent_id,omitempty"` // 父级职位类别 ID +} + +// ListHireJobTypeRespItemName ... +type ListHireJobTypeRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// listHireJobTypeResp ... +type listHireJobTypeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireJobTypeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_location_list.go b/api_hire_location_list.go new file mode 100644 index 00000000..b8841dc1 --- /dev/null +++ b/api_hire_location_list.go @@ -0,0 +1,149 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireLocation 获取地址列表, 可查询到的信息包括地址与地点信息, 可应用在职位地点、面试地点、人才意向工作城市等场景。 +// +// ## 名词解释 +// 地点和地址的描述如下: +// - 地点: 行政区域划分, 如 「中国大陆」、「四川省」、「成都市」、「高新区」 +// - 地址: 具体地理位置, 包括职位地址、面试地址、门店地址, 如: 「中国四川省成都市成华区熊猫大道 1375 号」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/location/list +func (r *HireService) ListHireLocation(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) { + if r.cli.mock.mockHireListHireLocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireLocation mock enable") + return r.cli.mock.mockHireListHireLocation(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireLocation", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/locations", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireLocationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireLocation mock HireListHireLocation method +func (r *Mock) MockHireListHireLocation(f func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error)) { + r.mockHireListHireLocation = f +} + +// UnMockHireListHireLocation un-mock HireListHireLocation method +func (r *Mock) UnMockHireListHireLocation() { + r.mockHireListHireLocation = nil +} + +// ListHireLocationReq ... +type ListHireLocationReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 100默认值: `10` 最大值: `100` + Usage string `query:"usage" json:"-"` // 地址类型示例值: interview_location可选值有: 职位地址面试地址门店地址。当前仅支持未接入飞书人事的租户使用 +} + +// ListHireLocationResp ... +type ListHireLocationResp struct { + Items []*ListHireLocationRespItem `json:"items,omitempty"` // 地址和地点信息列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireLocationRespItem ... +type ListHireLocationRespItem struct { + ID string `json:"id,omitempty"` // 地址 ID + Name *ListHireLocationRespItemName `json:"name,omitempty"` // 地址名称 + District *ListHireLocationRespItemDistrict `json:"district,omitempty"` // 区信息 + City *ListHireLocationRespItemCity `json:"city,omitempty"` // 市信息 + State *ListHireLocationRespItemState `json:"state,omitempty"` // 省份/州信息 + Country *ListHireLocationRespItemCountry `json:"country,omitempty"` // 国家信息 + ActiveStatus int64 `json:"active_status,omitempty"` // 地址启用状态可选值有: 已启用已禁用 +} + +// ListHireLocationRespItemCity ... +type ListHireLocationRespItemCity struct { + Code string `json:"code,omitempty"` // 市编码 + Name *ListHireLocationRespItemCityName `json:"name,omitempty"` // 市名称 +} + +// ListHireLocationRespItemCityName ... +type ListHireLocationRespItemCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 市中文名称 + EnUs string `json:"en_us,omitempty"` // 市英文名称 +} + +// ListHireLocationRespItemCountry ... +type ListHireLocationRespItemCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *ListHireLocationRespItemCountryName `json:"name,omitempty"` // 国家名称 +} + +// ListHireLocationRespItemCountryName ... +type ListHireLocationRespItemCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// ListHireLocationRespItemDistrict ... +type ListHireLocationRespItemDistrict struct { + Code string `json:"code,omitempty"` // 区编码 + Name *ListHireLocationRespItemDistrictName `json:"name,omitempty"` // 区名称 +} + +// ListHireLocationRespItemDistrictName ... +type ListHireLocationRespItemDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区中文名称 + EnUs string `json:"en_us,omitempty"` // 区英文名称 +} + +// ListHireLocationRespItemName ... +type ListHireLocationRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 地址中文名称 + EnUs string `json:"en_us,omitempty"` // 地址英文名称 +} + +// ListHireLocationRespItemState ... +type ListHireLocationRespItemState struct { + Code string `json:"code,omitempty"` // 省份/州编码 + Name *ListHireLocationRespItemStateName `json:"name,omitempty"` // 省份/州名称 +} + +// ListHireLocationRespItemStateName ... +type ListHireLocationRespItemStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省份/州中文名称 + EnUs string `json:"en_us,omitempty"` // 省份/州英文名称 +} + +// listHireLocationResp ... +type listHireLocationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireLocationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_location_query.go b/api_hire_location_query.go new file mode 100644 index 00000000..32afbf5c --- /dev/null +++ b/api_hire_location_query.go @@ -0,0 +1,150 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryHireLocation 根据地点类型和地点码查询地点列表, 获取地点名称信息。 +// +// ## 名词解释 +// 地点: 行政区域划分, 如 「中国大陆」、「四川省」、「成都市」、「高新区」 +// 地址: 分为职位地址与面试地址, 如: 「中国四川省成都市成华区熊猫大道1375号」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/location/query +func (r *HireService) QueryHireLocation(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) { + if r.cli.mock.mockHireQueryHireLocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#QueryHireLocation mock enable") + return r.cli.mock.mockHireQueryHireLocation(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "QueryHireLocation", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/locations/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryHireLocationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireQueryHireLocation mock HireQueryHireLocation method +func (r *Mock) MockHireQueryHireLocation(f func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error)) { + r.mockHireQueryHireLocation = f +} + +// UnMockHireQueryHireLocation un-mock HireQueryHireLocation method +func (r *Mock) UnMockHireQueryHireLocation() { + r.mockHireQueryHireLocation = nil +} + +// QueryHireLocationReq ... +type QueryHireLocationReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize int64 `query:"page_size" json:"-"` // 每页限制示例值: 100 取值范围: `1` ~ `100` + CodeList []string `json:"code_list,omitempty"` // 地点码列表, 最大长度不超过100, 不传则根据地点类型分页查询全量列表示例值: ["CN_1"] + LocationType int64 `json:"location_type,omitempty"` // 地点类型示例值: 1可选值有: 国家类型省份/州类型市类型区类型 +} + +// QueryHireLocationResp ... +type QueryHireLocationResp struct { + Items []*QueryHireLocationRespItem `json:"items,omitempty"` // 地点数据列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryHireLocationRespItem ... +type QueryHireLocationRespItem struct { + Country *QueryHireLocationRespItemCountry `json:"country,omitempty"` // 国家信息列表, 仅当 location_type=1 时返回 + State *QueryHireLocationRespItemState `json:"state,omitempty"` // 省份/州信息列表, 仅当 location_type=2 时返回 + City *QueryHireLocationRespItemCity `json:"city,omitempty"` // 市信息列表, 仅当 location_type=3 时返回 + District *QueryHireLocationRespItemDistrict `json:"district,omitempty"` // 区/县信息列表, 仅当 location_type=4 时返回 +} + +// QueryHireLocationRespItemCity ... +type QueryHireLocationRespItemCity struct { + CityCode string `json:"city_code,omitempty"` // 市Code码 + StateCode string `json:"state_code,omitempty"` // 省份/州Code码 + CountryCode string `json:"country_code,omitempty"` // 国家Code码 + CityNameInfo *QueryHireLocationRespItemCityCityNameInfo `json:"city_name_info,omitempty"` // 市名称信息聚合 +} + +// QueryHireLocationRespItemCityCityNameInfo ... +type QueryHireLocationRespItemCityCityNameInfo struct { + ZhName string `json:"zh_name,omitempty"` // 市中文名 + EnName string `json:"en_name,omitempty"` // 市英文名 + PyName string `json:"py_name,omitempty"` // 市拼音名 +} + +// QueryHireLocationRespItemCountry ... +type QueryHireLocationRespItemCountry struct { + CountryCode string `json:"country_code,omitempty"` // 国家Code码 + CountryNameInfo *QueryHireLocationRespItemCountryCountryNameInfo `json:"country_name_info,omitempty"` // 国家名称信息聚合 +} + +// QueryHireLocationRespItemCountryCountryNameInfo ... +type QueryHireLocationRespItemCountryCountryNameInfo struct { + ZhName string `json:"zh_name,omitempty"` // 国家中文名 + EnName string `json:"en_name,omitempty"` // 国家英文名 + PyName string `json:"py_name,omitempty"` // 国家拼音名 +} + +// QueryHireLocationRespItemDistrict ... +type QueryHireLocationRespItemDistrict struct { + DistrictCode string `json:"district_code,omitempty"` // 区/县Code码 + CityCode string `json:"city_code,omitempty"` // 市Code码 + StateCode string `json:"state_code,omitempty"` // 省份/州Code码 + CountryCode string `json:"country_code,omitempty"` // 国家Code码 + DistrictNameInfo *QueryHireLocationRespItemDistrictDistrictNameInfo `json:"district_name_info,omitempty"` // 区/县名称信息聚合 +} + +// QueryHireLocationRespItemDistrictDistrictNameInfo ... +type QueryHireLocationRespItemDistrictDistrictNameInfo struct { + ZhName string `json:"zh_name,omitempty"` // 区/县中文名 + EnName string `json:"en_name,omitempty"` // 区/县英文名 + PyName string `json:"py_name,omitempty"` // 区/县拼音名 +} + +// QueryHireLocationRespItemState ... +type QueryHireLocationRespItemState struct { + StateCode string `json:"state_code,omitempty"` // 省份/州Code码 + CountryCode string `json:"country_code,omitempty"` // 国家Code码 + StateNameInfo *QueryHireLocationRespItemStateStateNameInfo `json:"state_name_info,omitempty"` // 省份/州名称信息聚合 +} + +// QueryHireLocationRespItemStateStateNameInfo ... +type QueryHireLocationRespItemStateStateNameInfo struct { + ZhName string `json:"zh_name,omitempty"` // 省份/州中文名 + EnName string `json:"en_name,omitempty"` // 省份/州英文名 + PyName string `json:"py_name,omitempty"` // 省份/州拼音名 +} + +// queryHireLocationResp ... +type queryHireLocationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryHireLocationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_minutes_get.go b/api_hire_minutes_get.go new file mode 100644 index 00000000..792f8600 --- /dev/null +++ b/api_hire_minutes_get.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireMinutes 获取指定面试的面试速记明细记录 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/minutes/get +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/interview/get-4 +func (r *HireService) GetHireMinutes(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) { + if r.cli.mock.mockHireGetHireMinutes != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireMinutes mock enable") + return r.cli.mock.mockHireGetHireMinutes(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireMinutes", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/minutes", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireMinutesResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireMinutes mock HireGetHireMinutes method +func (r *Mock) MockHireGetHireMinutes(f func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error)) { + r.mockHireGetHireMinutes = f +} + +// UnMockHireGetHireMinutes un-mock HireGetHireMinutes method +func (r *Mock) UnMockHireGetHireMinutes() { + r.mockHireGetHireMinutes = nil +} + +// GetHireMinutesReq ... +type GetHireMinutesReq struct { + InterviewID string `query:"interview_id" json:"-"` // 面试ID, 可根据接口[获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list)、[获取人才面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/get_by_talent)获取示例值: 7085989097067563300 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: NzM5MTgyNjQyNDY2MDc4OTU0OA[ + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 表示本次请求获取的速记中的语句的最大数量示例值: 10默认值: `20` 取值范围: `1` ~ `100` +} + +// GetHireMinutesResp ... +type GetHireMinutesResp struct { + Minutes *GetHireMinutesRespMinutes `json:"minutes,omitempty"` // 面试速记 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// GetHireMinutesRespMinutes ... +type GetHireMinutesRespMinutes struct { + Sentences []*GetHireMinutesRespMinutesSentence `json:"sentences,omitempty"` // 速记句子列表 +} + +// GetHireMinutesRespMinutesSentence ... +type GetHireMinutesRespMinutesSentence struct { + Content string `json:"content,omitempty"` // 速记句子文本 + SpeakTime string `json:"speak_time,omitempty"` // 句子开始讲话的时间, 毫秒时间戳 + UserType int64 `json:"user_type,omitempty"` // 句子说话人的用户类型可选值有: 面试官候选人 + SpeakerName *GetHireMinutesRespMinutesSentenceSpeakerName `json:"speaker_name,omitempty"` // 句子说话人名字 +} + +// GetHireMinutesRespMinutesSentenceSpeakerName ... +type GetHireMinutesRespMinutesSentenceSpeakerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 说话人的中文名称 + EnUs string `json:"en_us,omitempty"` // 说话人的英文名称 +} + +// getHireMinutesResp ... +type getHireMinutesResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireMinutesResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_note_create.go b/api_hire_note_create.go index 117b2880..d8dee830 100644 --- a/api_hire_note_create.go +++ b/api_hire_note_create.go @@ -71,6 +71,12 @@ type CreateHireNoteReq struct { MentionEntityList []*Mention `json:"mention_entity_list,omitempty"` // 被@用户列表 } +// CreateHireNoteReqMentionEntity ... +type CreateHireNoteReqMentionEntity struct { + Offset int64 `json:"offset,omitempty"` // 被@用户在 content 中的偏移量- 取值范围: 0 ~ content.length示例值: 3 + UserID string `json:"user_id,omitempty"` // 被@用户的 ID, 请传入与 `user_id_type` 类型相匹配的 ID示例值: "on_94a1ee5551019f18cd73d9f111898cf2" +} + // CreateHireNoteResp ... type CreateHireNoteResp struct { Note *CreateHireNoteRespNote `json:"note,omitempty"` // 备注信息 diff --git a/api_hire_note_delete.go b/api_hire_note_delete.go new file mode 100644 index 00000000..3de11142 --- /dev/null +++ b/api_hire_note_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireNote 根据备注 ID 删除备注。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/note/delete +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/note/delete +func (r *HireService) DeleteHireNote(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireNote != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireNote mock enable") + return r.cli.mock.mockHireDeleteHireNote(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireNote", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/notes/:note_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireNoteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireNote mock HireDeleteHireNote method +func (r *Mock) MockHireDeleteHireNote(f func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error)) { + r.mockHireDeleteHireNote = f +} + +// UnMockHireDeleteHireNote un-mock HireDeleteHireNote method +func (r *Mock) UnMockHireDeleteHireNote() { + r.mockHireDeleteHireNote = nil +} + +// DeleteHireNoteReq ... +type DeleteHireNoteReq struct { + NoteID string `path:"note_id" json:"-"` // 备注 ID, 可通过[获取备注列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/note/list)获取示例值: "6996605821056812588" +} + +// DeleteHireNoteResp ... +type DeleteHireNoteResp struct { +} + +// deleteHireNoteResp ... +type deleteHireNoteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireNoteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_note_update.go b/api_hire_note_update.go index ce846782..f384fe05 100644 --- a/api_hire_note_update.go +++ b/api_hire_note_update.go @@ -69,6 +69,12 @@ type UpdateHireNoteReq struct { MentionEntityList []*Mention `json:"mention_entity_list,omitempty"` // 被@用户列表 } +// UpdateHireNoteReqMentionEntity ... +type UpdateHireNoteReqMentionEntity struct { + Offset int64 `json:"offset,omitempty"` // 被@用户在 content 中的偏移量- 取值范围: 0 ~ content.length示例值: 3 + UserID string `json:"user_id,omitempty"` // 被@用户的 ID, 请传入与 `user_id_type` 类型相匹配的 ID示例值: "on_94a1ee5551019f18cd73d9f111898cf2" +} + // UpdateHireNoteResp ... type UpdateHireNoteResp struct { Note *UpdateHireNoteRespNote `json:"note,omitempty"` // 备注数据 diff --git a/api_hire_offer_application_form_get.go b/api_hire_offer_application_form_get.go new file mode 100644 index 00000000..76f1fb26 --- /dev/null +++ b/api_hire_offer_application_form_get.go @@ -0,0 +1,205 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireOfferApplicationForm 根据 Offer 申请表 ID 获取 Offer 申请表信息, 可获取到的信息包括申请表名称、申请表模块、申请表字段等。 +// +// ## Offer 申请表产品示意图 +// ![whiteboard_exported_image (7).png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/945f549ba9d2ad3e9e70474c576189ff_n7LaFh6hLs.png?maxWidth=500px) +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/offer-settings/offer_application_form/get +func (r *HireService) GetHireOfferApplicationForm(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) { + if r.cli.mock.mockHireGetHireOfferApplicationForm != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireOfferApplicationForm mock enable") + return r.cli.mock.mockHireGetHireOfferApplicationForm(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireOfferApplicationForm", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/offer_application_forms/:offer_application_form_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireOfferApplicationFormResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireOfferApplicationForm mock HireGetHireOfferApplicationForm method +func (r *Mock) MockHireGetHireOfferApplicationForm(f func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error)) { + r.mockHireGetHireOfferApplicationForm = f +} + +// UnMockHireGetHireOfferApplicationForm un-mock HireGetHireOfferApplicationForm method +func (r *Mock) UnMockHireGetHireOfferApplicationForm() { + r.mockHireGetHireOfferApplicationForm = nil +} + +// GetHireOfferApplicationFormReq ... +type GetHireOfferApplicationFormReq struct { + OfferApplicationFormID string `path:"offer_application_form_id" json:"-"` // Offer 申请表 ID, 可通过[获取 Offer 申请表列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/list)接口获取示例值: "7680792645903286275" +} + +// GetHireOfferApplicationFormResp ... +type GetHireOfferApplicationFormResp struct { + OfferApplyForm *GetHireOfferApplicationFormRespOfferApplyForm `json:"offer_apply_form,omitempty"` // Offer 申请表详情 +} + +// GetHireOfferApplicationFormRespOfferApplyForm ... +type GetHireOfferApplicationFormRespOfferApplyForm struct { + ID string `json:"id,omitempty"` // Offer 申请表 ID + Name *GetHireOfferApplicationFormRespOfferApplyFormName `json:"name,omitempty"` // Offer 申请表名称 + Schema *GetHireOfferApplicationFormRespOfferApplyFormSchema `json:"schema,omitempty"` // schema 信息, 用于描述申请表单结构的元数据定义, 即对申请表内容的描述 +} + +// GetHireOfferApplicationFormRespOfferApplyFormName ... +type GetHireOfferApplicationFormRespOfferApplyFormName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchema ... +type GetHireOfferApplicationFormRespOfferApplyFormSchema struct { + ID string `json:"id,omitempty"` // schema ID + ModuleList []*GetHireOfferApplicationFormRespOfferApplyFormSchemaModule `json:"module_list,omitempty"` // 模块列表 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModule ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModule struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleName `json:"name,omitempty"` // 模块名称 + IsCustomized bool `json:"is_customized,omitempty"` // 是否为自定义模块: true: 自定义模块- false: 系统预置模块 + ActiveStatus int64 `json:"active_status,omitempty"` // 模块启用状态可选值有: 已启用已停用 + Hint *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleHint `json:"hint,omitempty"` // 模块填写提示 + ObjectList []*GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObject `json:"object_list,omitempty"` // 字段列表 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleHint ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleHint struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文提示 + EnUs string `json:"en_us,omitempty"` // 英文提示 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleName ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObject ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObject struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectName `json:"name,omitempty"` // 字段名称 + Description *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectDescription `json:"description,omitempty"` // 字段描述 + ModuleID string `json:"module_id,omitempty"` // 所属模块 ID + IsCustomized bool `json:"is_customized,omitempty"` // 是否为自定义字段: true: 自定义字段- false: 系统预置字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填: true: 必填- false: 非必填 + ActiveStatus int64 `json:"active_status,omitempty"` // 字段启用状态可选值有: 已启用已停用 + NeedApprove bool `json:"need_approve,omitempty"` // 修改后是否需要审批: true: 需要审批- false: 不需要审批 + IsSensitive bool `json:"is_sensitive,omitempty"` // 是否敏感字段(敏感字段会在发起 Offer 审批时隐藏)- true: 敏感字段- false: 非敏感字段 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型(废弃)可选值有: 单行文本多行文本单选多选日期月份选择年份选择数字金额公式默认字段 + ObjectTypeV2 string `json:"object_type_v2,omitempty"` // 字段类型枚举可选值有: 单行文本多行文本单选多选日期选择月份选择年份选择数字金额公式布尔值附件人员单选人员多选城市单选单行文本(引用自人事)多行文本(引用自人事)单选(引用自人事)多选(引用自人事)日期选择(引用自人事)数字(引用自人事)布尔值(引用自人事)附件(引用自人事)人员单选(引用自人事)人员多选(引用自人事)默认字段 + Config *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfig `json:"config,omitempty"` // 字段配置信息 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfig ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfig struct { + Options []*GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOption `json:"options,omitempty"` // 选项信息, 仅在在字段类型object_type_v2为单选、多选时有值 + Formula *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormula `json:"formula,omitempty"` // 公式信息, 仅在在字段类型object_type_v2为公式时有值 + ObjectDisplayConfig *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfig `json:"object_display_config,omitempty"` // 字段显示条件配置 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormula ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormula struct { + Value string `json:"value,omitempty"` // 计算公式。由薪资字段ID、运算符组成, 薪资字段来源于offer申请表-薪资信息模块, 公式中包含的薪资字段具体信息通过同级字段extra_map获取。示例: "( [6872592813776914699] * 12 + 20 / 2 ) / [6872592813776914699] + 2000", 其中6872592813776914699为薪资字段ID + Result int64 `json:"result,omitempty"` // 计算结果显示格式可选值有: 金额数字百分比 + ExtraMap []*GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMap `json:"extra_map,omitempty"` // 公式字段信息 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMap ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMap struct { + Key string `json:"key,omitempty"` // 公式字段 ID, 字段来源于Offer申请表 - 薪资信息模块。如value示例中的: 6872592813776914699 + Value *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMapValue `json:"value,omitempty"` // 公式字段名称 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMapValue ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigFormulaExtraMapValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称。如: 基本工资 + EnUs string `json:"en_us,omitempty"` // 英文名称。如: Basic salary +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfig ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfig struct { + DisplayCondition int64 `json:"display_condition,omitempty"` // 显示条件类型可选值有: 全部满足任一满足 + PreObjectConfigList []*GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfigPreObjectConfig `json:"pre_object_config_list,omitempty"` // 条件列表。由字段 ID、运算符、字段值组合成一个条件。如: - 招聘类型(字段 ID 对应的字段)--等于--社招 - 入职部门(字段 ID 对应的字段)--包含--人事部 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfigPreObjectConfig ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigObjectDisplayConfigPreObjectConfig struct { + ID string `json:"id,omitempty"` // 字段 ID, 字段来源于offer申请表 + Operator int64 `json:"operator,omitempty"` // 运算符可选值有: 等于不等于包含不包含 + Value []string `json:"value,omitempty"` // 字段值 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOption ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOption struct { + ID string `json:"id,omitempty"` // 选项 ID + Name *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionDescription `json:"description,omitempty"` // 选项描述 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionDescription ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionName ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectDescription ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectName ... +type GetHireOfferApplicationFormRespOfferApplyFormSchemaModuleObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// getHireOfferApplicationFormResp ... +type getHireOfferApplicationFormResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireOfferApplicationFormResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_offer_application_form_list.go b/api_hire_offer_application_form_list.go new file mode 100644 index 00000000..f8575271 --- /dev/null +++ b/api_hire_offer_application_form_list.go @@ -0,0 +1,91 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireOfferApplicationForm 获取 Offer 申请表列表, 可获取的信息包括申请表名称、创建时间等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/offer-settings/offer_application_form/list +func (r *HireService) ListHireOfferApplicationForm(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) { + if r.cli.mock.mockHireListHireOfferApplicationForm != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireOfferApplicationForm mock enable") + return r.cli.mock.mockHireListHireOfferApplicationForm(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireOfferApplicationForm", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/offer_application_forms", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireOfferApplicationFormResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireOfferApplicationForm mock HireListHireOfferApplicationForm method +func (r *Mock) MockHireListHireOfferApplicationForm(f func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error)) { + r.mockHireListHireOfferApplicationForm = f +} + +// UnMockHireListHireOfferApplicationForm un-mock HireListHireOfferApplicationForm method +func (r *Mock) UnMockHireListHireOfferApplicationForm() { + r.mockHireListHireOfferApplicationForm = nil +} + +// ListHireOfferApplicationFormReq ... +type ListHireOfferApplicationFormReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1231231987 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 无效参数, 请忽略示例值: 100默认值: `1` 最大值: `100` +} + +// ListHireOfferApplicationFormResp ... +type ListHireOfferApplicationFormResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireOfferApplicationFormRespItem `json:"items,omitempty"` // Offer 申请表列表 +} + +// ListHireOfferApplicationFormRespItem ... +type ListHireOfferApplicationFormRespItem struct { + ID string `json:"id,omitempty"` // 申请表ID + Name *ListHireOfferApplicationFormRespItemName `json:"name,omitempty"` // 申请表名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒时间戳 +} + +// ListHireOfferApplicationFormRespItemName ... +type ListHireOfferApplicationFormRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireOfferApplicationFormResp ... +type listHireOfferApplicationFormResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireOfferApplicationFormResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_offer_approval_template_list.go b/api_hire_offer_approval_template_list.go new file mode 100644 index 00000000..2fb37738 --- /dev/null +++ b/api_hire_offer_approval_template_list.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireOfferApprovalTemplate 获取飞书招聘系统中默认和自定义 Offer 审批流列表。Offer 审批流可以在「飞书招聘」-「设置」-「Offer 设置」-「Offer 审批设置」中维护。可在职位设置的「Offer 审批流程」中使用。 +// +// 若当前租户开通了「飞书人事」, 且使用了「流程平台」配置的审批流, 当前接口无法获取「流程平台」配置的审批流。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_approval_template/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/offer-settings/offer_approval_template/list +func (r *HireService) ListHireOfferApprovalTemplate(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) { + if r.cli.mock.mockHireListHireOfferApprovalTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireOfferApprovalTemplate mock enable") + return r.cli.mock.mockHireListHireOfferApprovalTemplate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireOfferApprovalTemplate", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/offer_approval_templates", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireOfferApprovalTemplateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireOfferApprovalTemplate mock HireListHireOfferApprovalTemplate method +func (r *Mock) MockHireListHireOfferApprovalTemplate(f func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error)) { + r.mockHireListHireOfferApprovalTemplate = f +} + +// UnMockHireListHireOfferApprovalTemplate un-mock HireListHireOfferApprovalTemplate method +func (r *Mock) UnMockHireListHireOfferApprovalTemplate() { + r.mockHireListHireOfferApprovalTemplate = nil +} + +// ListHireOfferApprovalTemplateReq ... +type ListHireOfferApprovalTemplateReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1231231987 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小。最大为 200示例值: 100默认值: `10` + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 的类型示例值: department_id可选值有: 以 open_department_id 来标识部门, 该 ID 为[获取单个部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/get)中的 open_department_id以 department_id 来标识部门, 该 ID 为[获取单个部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/get)中的 department_id以 people_admin_department_id 来标识部门, 该 ID 类型即将下线, 不推荐使用默认值: `people_admin_department_id` +} + +// ListHireOfferApprovalTemplateResp ... +type ListHireOfferApprovalTemplateResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireOfferApprovalTemplateRespItem `json:"items,omitempty"` // Offer 审批流列表 +} + +// ListHireOfferApprovalTemplateRespItem ... +type ListHireOfferApprovalTemplateRespItem struct { + ID string `json:"id,omitempty"` // Offer 审批流 ID + Name *ListHireOfferApprovalTemplateRespItemName `json:"name,omitempty"` // Offer 审批流名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间戳(单位: 毫秒) + Remark string `json:"remark,omitempty"` // 备注 + DepartmentList []*ListHireOfferApprovalTemplateRespItemDepartment `json:"department_list,omitempty"` // 适用部门 +} + +// ListHireOfferApprovalTemplateRespItemDepartment ... +type ListHireOfferApprovalTemplateRespItemDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参`department_id_type`类型一致 + Name string `json:"name,omitempty"` // 部门中文名 + EnName string `json:"en_name,omitempty"` // 部门英文名 +} + +// ListHireOfferApprovalTemplateRespItemName ... +type ListHireOfferApprovalTemplateRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // Offer 审批流中文名 + EnUs string `json:"en_us,omitempty"` // Offer 审批流英文名 +} + +// listHireOfferApprovalTemplateResp ... +type listHireOfferApprovalTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireOfferApprovalTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_offer_custom_field_update.go b/api_hire_offer_custom_field_update.go new file mode 100644 index 00000000..0ef708a4 --- /dev/null +++ b/api_hire_offer_custom_field_update.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireOfferCustomField 本接口支持修改 Offer 申请表的自定义字段, Offer 申请表的定义可参考「飞书招聘」-「设置」-「Offer 设置」-「Offer 申请表设置」中的内容。 +// +// ## 注意事项 +// - Offer 申请表通过版本 (schema_id) 进行变更管理, 自定义字段每次修改, 全量申请表的 schema_id 会同步更新。 +// - 本接口不支持修改自定义字段类型。 +// - 本接口不支持修改字段类型为「公式」类型的字段值。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_custom_field/update +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/offer-settings/offer_application_form/update +func (r *HireService) UpdateHireOfferCustomField(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireOfferCustomField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireOfferCustomField mock enable") + return r.cli.mock.mockHireUpdateHireOfferCustomField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireOfferCustomField", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/offer_custom_fields/:offer_custom_field_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireOfferCustomFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireOfferCustomField mock HireUpdateHireOfferCustomField method +func (r *Mock) MockHireUpdateHireOfferCustomField(f func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error)) { + r.mockHireUpdateHireOfferCustomField = f +} + +// UnMockHireUpdateHireOfferCustomField un-mock HireUpdateHireOfferCustomField method +func (r *Mock) UnMockHireUpdateHireOfferCustomField() { + r.mockHireUpdateHireOfferCustomField = nil +} + +// UpdateHireOfferCustomFieldReq ... +type UpdateHireOfferCustomFieldReq struct { + OfferCustomFieldID string `path:"offer_custom_field_id" json:"-"` // Offer 申请表自定义字段 ID, 可通过接口[获取 Offer 申请表信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/get)获取示例值: "6906755946257615112" + Name *UpdateHireOfferCustomFieldReqName `json:"name,omitempty"` // 自定义字段名称, zh_cn和en_us必填其一 + Config *UpdateHireOfferCustomFieldReqConfig `json:"config,omitempty"` // 自定义字段配置信息 +} + +// UpdateHireOfferCustomFieldReqConfig ... +type UpdateHireOfferCustomFieldReqConfig struct { + Options []*UpdateHireOfferCustomFieldReqConfigOption `json:"options,omitempty"` // 选项列表, 仅字段类型为「单选」、「多选」时需传配置选项信息。字段类型可通过接口[获取 Offer 申请表信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer_application_form/get)获取 +} + +// UpdateHireOfferCustomFieldReqConfigOption ... +type UpdateHireOfferCustomFieldReqConfigOption struct { + Name *UpdateHireOfferCustomFieldReqConfigOptionName `json:"name,omitempty"` // 选项名称, zh_cn和en_us必填其一 +} + +// UpdateHireOfferCustomFieldReqConfigOptionName ... +type UpdateHireOfferCustomFieldReqConfigOptionName struct { + ZhCn *string `json:"zh_cn,omitempty"` // 选项中文名称示例值: "无业" + EnUs *string `json:"en_us,omitempty"` // 选项英文名称示例值: "Unemployed" +} + +// UpdateHireOfferCustomFieldReqName ... +type UpdateHireOfferCustomFieldReqName struct { + ZhCn *string `json:"zh_cn,omitempty"` // 字段中文名称示例值: "就职状态" + EnUs *string `json:"en_us,omitempty"` // 字段英文名称示例值: "Employment status" +} + +// UpdateHireOfferCustomFieldResp ... +type UpdateHireOfferCustomFieldResp struct { +} + +// updateHireOfferCustomFieldResp ... +type updateHireOfferCustomFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireOfferCustomFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_offset_status_update.go b/api_hire_offset_status_update.go index 9282ab1a..c08cf186 100644 --- a/api_hire_offset_status_update.go +++ b/api_hire_offset_status_update.go @@ -81,7 +81,8 @@ type UpdateHireOfferStatusReq struct { } // UpdateHireOfferStatusResp ... -type UpdateHireOfferStatusResp struct{} +type UpdateHireOfferStatusResp struct { +} // updateHireOfferStatusResp ... type updateHireOfferStatusResp struct { diff --git a/api_hire_portal_apply_schema_list.go b/api_hire_portal_apply_schema_list.go new file mode 100644 index 00000000..c644c6f2 --- /dev/null +++ b/api_hire_portal_apply_schema_list.go @@ -0,0 +1,201 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHirePortalApplySchema 获取招聘官网申请表模板列表, 在官网申请职位时, 申请表需按照官网申请表模板的格式进行填写。 +// +// 该功能尚在灰度阶段, 如需使用请联系客户经理申请灰度 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/portal_apply_schema/list +// new doc: https://open.feishu.cn/document/hire-v1/portal_apply_schema/list +func (r *HireService) ListHirePortalApplySchema(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) { + if r.cli.mock.mockHireListHirePortalApplySchema != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHirePortalApplySchema mock enable") + return r.cli.mock.mockHireListHirePortalApplySchema(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHirePortalApplySchema", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/portal_apply_schemas", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listHirePortalApplySchemaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHirePortalApplySchema mock HireListHirePortalApplySchema method +func (r *Mock) MockHireListHirePortalApplySchema(f func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error)) { + r.mockHireListHirePortalApplySchema = f +} + +// UnMockHireListHirePortalApplySchema un-mock HireListHirePortalApplySchema method +func (r *Mock) UnMockHireListHirePortalApplySchema() { + r.mockHireListHirePortalApplySchema = nil +} + +// ListHirePortalApplySchemaReq ... +type ListHirePortalApplySchemaReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `10` 最大值: `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6930815272790114324 +} + +// ListHirePortalApplySchemaResp ... +type ListHirePortalApplySchemaResp struct { + Items []*ListHirePortalApplySchemaRespItem `json:"items,omitempty"` // 申请表模板列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHirePortalApplySchemaRespItem ... +type ListHirePortalApplySchemaRespItem struct { + ID string `json:"id,omitempty"` // 申请表模板 ID + Name string `json:"name,omitempty"` // 申请表模板名称 + Scenarios []int64 `json:"scenarios,omitempty"` // 申请表模板适用场景可选值有: 面试登记表入职登记表信息更新登记表 + Objects []*ListHirePortalApplySchemaRespItemObject `json:"objects,omitempty"` // 模块列表 +} + +// ListHirePortalApplySchemaRespItemObject ... +type ListHirePortalApplySchemaRespItemObject struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *ListHirePortalApplySchemaRespItemObjectName `json:"name,omitempty"` // 模块名称 + Description *ListHirePortalApplySchemaRespItemObjectDescription `json:"description,omitempty"` // 模块描述 + Setting *ListHirePortalApplySchemaRespItemObjectSetting `json:"setting,omitempty"` // 模块信息 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义模块 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 + ChildrenList []*ListHirePortalApplySchemaRespItemObjectChildren `json:"children_list,omitempty"` // 字段列表 +} + +// ListHirePortalApplySchemaRespItemObjectChildren ... +type ListHirePortalApplySchemaRespItemObjectChildren struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *ListHirePortalApplySchemaRespItemObjectChildrenName `json:"name,omitempty"` // 字段名称 + Description *ListHirePortalApplySchemaRespItemObjectChildrenDescription `json:"description,omitempty"` // 字段描述 + Setting *ListHirePortalApplySchemaRespItemObjectChildrenSetting `json:"setting,omitempty"` // 字段信息 + ParentID string `json:"parent_id,omitempty"` // 所属模块 ID + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenDescription ... +type ListHirePortalApplySchemaRespItemObjectChildrenDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenName ... +type ListHirePortalApplySchemaRespItemObjectChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenSetting ... +type ListHirePortalApplySchemaRespItemObjectChildrenSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHirePortalApplySchemaRespItemObjectChildrenSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenSettingConfig ... +type ListHirePortalApplySchemaRespItemObjectChildrenSettingConfig struct { + Options []*ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOption `json:"options,omitempty"` // 选项信息 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOption ... +type ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionDescription ... +type ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionName ... +type ListHirePortalApplySchemaRespItemObjectChildrenSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectDescription ... +type ListHirePortalApplySchemaRespItemObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectName ... +type ListHirePortalApplySchemaRespItemObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectSetting ... +type ListHirePortalApplySchemaRespItemObjectSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHirePortalApplySchemaRespItemObjectSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHirePortalApplySchemaRespItemObjectSettingConfig ... +type ListHirePortalApplySchemaRespItemObjectSettingConfig struct { + Options []*ListHirePortalApplySchemaRespItemObjectSettingConfigOption `json:"options,omitempty"` // 选项信息, 当字段类型为单选/多选时会返回该信息 +} + +// ListHirePortalApplySchemaRespItemObjectSettingConfigOption ... +type ListHirePortalApplySchemaRespItemObjectSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHirePortalApplySchemaRespItemObjectSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHirePortalApplySchemaRespItemObjectSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHirePortalApplySchemaRespItemObjectSettingConfigOptionDescription ... +type ListHirePortalApplySchemaRespItemObjectSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHirePortalApplySchemaRespItemObjectSettingConfigOptionName ... +type ListHirePortalApplySchemaRespItemObjectSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// listHirePortalApplySchemaResp ... +type listHirePortalApplySchemaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHirePortalApplySchemaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_referral_account_enable.go b/api_hire_referral_account_enable.go new file mode 100644 index 00000000..f532b60f --- /dev/null +++ b/api_hire_referral_account_enable.go @@ -0,0 +1,99 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireReferralAccountEnable 根据账户 ID 启用账户, 启用后可通过[「内推账户余额变更事件」](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/events/assets_update)监听余额变更、通过[「全额提取内推账户余额」](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/withdraw)提取余额。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/enable +// new doc: https://open.feishu.cn/document/hire-v1/referral_account/enable +func (r *HireService) CreateHireReferralAccountEnable(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) { + if r.cli.mock.mockHireCreateHireReferralAccountEnable != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireReferralAccountEnable mock enable") + return r.cli.mock.mockHireCreateHireReferralAccountEnable(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireReferralAccountEnable", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/referral_account/enable", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireReferralAccountEnableResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireReferralAccountEnable mock HireCreateHireReferralAccountEnable method +func (r *Mock) MockHireCreateHireReferralAccountEnable(f func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error)) { + r.mockHireCreateHireReferralAccountEnable = f +} + +// UnMockHireCreateHireReferralAccountEnable un-mock HireCreateHireReferralAccountEnable method +func (r *Mock) UnMockHireCreateHireReferralAccountEnable() { + r.mockHireCreateHireReferralAccountEnable = nil +} + +// CreateHireReferralAccountEnableReq ... +type CreateHireReferralAccountEnableReq struct { + ReferralAccountID *string `json:"referral_account_id,omitempty"` // 账户 ID, 注册账户后获取: [注册内推账户](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/create)示例值: "6942778198054125570" +} + +// CreateHireReferralAccountEnableResp ... +type CreateHireReferralAccountEnableResp struct { + Account *CreateHireReferralAccountEnableRespAccount `json:"account,omitempty"` // 账户信息 +} + +// CreateHireReferralAccountEnableRespAccount ... +type CreateHireReferralAccountEnableRespAccount struct { + AccountID string `json:"account_id,omitempty"` // 账户 ID + Assets *CreateHireReferralAccountEnableRespAccountAssets `json:"assets,omitempty"` // 账户资产 + Status int64 `json:"status,omitempty"` // 账户状态可选值有: 可用停用 +} + +// CreateHireReferralAccountEnableRespAccountAssets ... +type CreateHireReferralAccountEnableRespAccountAssets struct { + ConfirmedBonus *CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonus `json:"confirmed_bonus,omitempty"` // 已确认的奖励 +} + +// CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonus ... +type CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonus struct { + PointBonus int64 `json:"point_bonus,omitempty"` // 积分奖励 + CashBonus []*CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonusCashBonu `json:"cash_bonus,omitempty"` // 现金奖励 +} + +// CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonusCashBonu ... +type CreateHireReferralAccountEnableRespAccountAssetsConfirmedBonusCashBonu struct { + CurrencyType string `json:"currency_type,omitempty"` // 币种, 详情可查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「币种(currency)枚举定义」 + Amount float64 `json:"amount,omitempty"` // 数额, 保留到小数点后两位 +} + +// createHireReferralAccountEnableResp ... +type createHireReferralAccountEnableResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireReferralAccountEnableResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_referral_account_get_account_assets.go b/api_hire_referral_account_get_account_assets.go new file mode 100644 index 00000000..c894c484 --- /dev/null +++ b/api_hire_referral_account_get_account_assets.go @@ -0,0 +1,115 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireReferralAccountAssets 根据账户 ID 查询内推账户信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/get_account_assets +// new doc: https://open.feishu.cn/document/hire-v1/referral_account/get_account_assets +func (r *HireService) GetHireReferralAccountAssets(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) { + if r.cli.mock.mockHireGetHireReferralAccountAssets != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireReferralAccountAssets mock enable") + return r.cli.mock.mockHireGetHireReferralAccountAssets(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireReferralAccountAssets", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/referral_account/get_account_assets", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireReferralAccountAssetsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireReferralAccountAssets mock HireGetHireReferralAccountAssets method +func (r *Mock) MockHireGetHireReferralAccountAssets(f func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error)) { + r.mockHireGetHireReferralAccountAssets = f +} + +// UnMockHireGetHireReferralAccountAssets un-mock HireGetHireReferralAccountAssets method +func (r *Mock) UnMockHireGetHireReferralAccountAssets() { + r.mockHireGetHireReferralAccountAssets = nil +} + +// GetHireReferralAccountAssetsReq ... +type GetHireReferralAccountAssetsReq struct { + ReferralAccountID string `query:"referral_account_id" json:"-"` // 账户 ID, 注册账户后获取: [注册内推账户](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral_account/create)示例值: 6942778198054125570 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireReferralAccountAssetsResp ... +type GetHireReferralAccountAssetsResp struct { + Account *GetHireReferralAccountAssetsRespAccount `json:"account,omitempty"` // 账户信息 +} + +// GetHireReferralAccountAssetsRespAccount ... +type GetHireReferralAccountAssetsRespAccount struct { + AccountID string `json:"account_id,omitempty"` // 账户 ID + Assets *GetHireReferralAccountAssetsRespAccountAssets `json:"assets,omitempty"` // 账户资产 + Status int64 `json:"status,omitempty"` // 账户状态可选值有: 可用停用 + Referrer *GetHireReferralAccountAssetsRespAccountReferrer `json:"referrer,omitempty"` // 账户绑定的内推人信息 +} + +// GetHireReferralAccountAssetsRespAccountAssets ... +type GetHireReferralAccountAssetsRespAccountAssets struct { + ConfirmedBonus *GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonus `json:"confirmed_bonus,omitempty"` // 已确认的奖励 +} + +// GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonus ... +type GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonus struct { + PointBonus int64 `json:"point_bonus,omitempty"` // 积分奖励 + CashBonus []*GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonusCashBonu `json:"cash_bonus,omitempty"` // 现金奖励 +} + +// GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonusCashBonu ... +type GetHireReferralAccountAssetsRespAccountAssetsConfirmedBonusCashBonu struct { + CurrencyType string `json:"currency_type,omitempty"` // 币种, 详情可查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「币种(currency)枚举定义」 + Amount float64 `json:"amount,omitempty"` // 数额, 保留到小数点后两位 +} + +// GetHireReferralAccountAssetsRespAccountReferrer ... +type GetHireReferralAccountAssetsRespAccountReferrer struct { + ID string `json:"id,omitempty"` // 内推人 ID, 与入参`user_id_type`类型一致 + Name *GetHireReferralAccountAssetsRespAccountReferrerName `json:"name,omitempty"` // 内推人名称 + Email string `json:"email,omitempty"` // 内推人邮箱字段权限要求: 查看员工邮箱 + Mobile string `json:"mobile,omitempty"` // 内推人手机字段权限要求: 查看员工手机号 +} + +// GetHireReferralAccountAssetsRespAccountReferrerName ... +type GetHireReferralAccountAssetsRespAccountReferrerName struct { + ZhCn string `json:"zh_cn,omitempty"` // 内推人中文名称 + EnUs string `json:"en_us,omitempty"` // 内推人英文名称 +} + +// getHireReferralAccountAssetsResp ... +type getHireReferralAccountAssetsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireReferralAccountAssetsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_referral_account_reconciliation.go b/api_hire_referral_account_reconciliation.go index aa1fd9b0..7b56fd93 100644 --- a/api_hire_referral_account_reconciliation.go +++ b/api_hire_referral_account_reconciliation.go @@ -69,6 +69,11 @@ type ReconcileHireReferralAccountReqTradeDetail struct { TotalRechargeRewardInfo *int64 `json:"total_recharge_reward_info,omitempty"` // 时段内该账户发生在调用方系统的积分之和 } +// ReconcileHireReferralAccountReqTradeDetailTotalRechargeRewardInfo ... +type ReconcileHireReferralAccountReqTradeDetailTotalRechargeRewardInfo struct { + PointBonus *int64 `json:"point_bonus,omitempty"` // 变动的积分数量示例值: 100 +} + // ReconcileHireReferralAccountResp ... type ReconcileHireReferralAccountResp struct { CheckFailedList []*ReconcileHireReferralAccountRespCheckFailed `json:"check_failed_list,omitempty"` // 核对失败的信息 @@ -81,6 +86,16 @@ type ReconcileHireReferralAccountRespCheckFailed struct { TotalRechargeRewardInfo int64 `json:"total_recharge_reward_info,omitempty"` // 调用方系统的积分变动数量 } +// ReconcileHireReferralAccountRespCheckFailedTotalRechargeRewardInfo ... +type ReconcileHireReferralAccountRespCheckFailedTotalRechargeRewardInfo struct { + PointBonus int64 `json:"point_bonus,omitempty"` // 积分数量 +} + +// ReconcileHireReferralAccountRespCheckFailedTotalWithdrawRewardInfo ... +type ReconcileHireReferralAccountRespCheckFailedTotalWithdrawRewardInfo struct { + PointBonus int64 `json:"point_bonus,omitempty"` // 积分数量 +} + // reconcileHireReferralAccountResp ... type reconcileHireReferralAccountResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_hire_referral_search.go b/api_hire_referral_search.go new file mode 100644 index 00000000..b097d68a --- /dev/null +++ b/api_hire_referral_search.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireReferral 根据人才查询内推信息列表, 包含内推人信息、内推时间、投递 ID等, 按内推投递的`创建时间`从小到大排序返回。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/referral/search +// new doc: https://open.feishu.cn/document/hire-v1/get-candidates/referral/search +func (r *HireService) SearchHireReferral(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) { + if r.cli.mock.mockHireSearchHireReferral != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireReferral mock enable") + return r.cli.mock.mockHireSearchHireReferral(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireReferral", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/referrals/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireReferralResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireReferral mock HireSearchHireReferral method +func (r *Mock) MockHireSearchHireReferral(f func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error)) { + r.mockHireSearchHireReferral = f +} + +// UnMockHireSearchHireReferral un-mock HireSearchHireReferral method +func (r *Mock) UnMockHireSearchHireReferral() { + r.mockHireSearchHireReferral = nil +} + +// SearchHireReferralReq ... +type SearchHireReferralReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[批量获取人才ID](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/batch_get_id)获取示例值: "6930815272790114324" + StartTime *string `json:"start_time,omitempty"` // 内推记录最早创建时间, 毫秒时间戳。若不填, 默认为指定人才下的全部记录, 但最多返回200条示例值: "1701226882718" + EndTime *string `json:"end_time,omitempty"` // 内推记录最晚创建时间, 毫秒时间戳。默认为指定人才下的全部记录, 但最多返回200条示例值: "1701226882719" +} + +// SearchHireReferralResp ... +type SearchHireReferralResp struct { + Items []*SearchHireReferralRespItem `json:"items,omitempty"` // 内推信息列表 +} + +// SearchHireReferralRespItem ... +type SearchHireReferralRespItem struct { + ID string `json:"id,omitempty"` // 内推 ID + ApplicationIDs []string `json:"application_ids,omitempty"` // 投递 ID 列表, 详情请查看[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get)。通常情况下1次内推仅有1个投递 ID, 即内推原始投递 ID(列表中的第一个 ID)。若投递发生过转移, 还会包含「转移到其他职位后的投递 ID」。但不包含投递结束后被HR复捞(加入职位)的投递 ID。 + CreateTime string `json:"create_time,omitempty"` // 内推创建时间, 毫秒时间戳 + ReferralUser *SearchHireReferralRespItemReferralUser `json:"referral_user,omitempty"` // 内推人信息 +} + +// SearchHireReferralRespItemReferralUser ... +type SearchHireReferralRespItemReferralUser struct { + ID string `json:"id,omitempty"` // 内推人 ID, 跟`user_id_type`类型一致 + Name *SearchHireReferralRespItemReferralUserName `json:"name,omitempty"` // 内推人名称 +} + +// SearchHireReferralRespItemReferralUserName ... +type SearchHireReferralRespItemReferralUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// searchHireReferralResp ... +type searchHireReferralResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireReferralResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_registration_schema_list.go b/api_hire_registration_schema_list.go new file mode 100644 index 00000000..f2fb69ef --- /dev/null +++ b/api_hire_registration_schema_list.go @@ -0,0 +1,201 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireRegistrationSchema 根据适用场景获取信息登记表列表, 可获取到的信息包括登记表名称、登记表模块、登记表字段等 +// +// 信息登记表配置请参考「飞书招聘」-「设置」-「候选人信息管理」- 「信息登记表设置」 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/registration_schema/list +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/application/list +func (r *HireService) ListHireRegistrationSchema(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) { + if r.cli.mock.mockHireListHireRegistrationSchema != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireRegistrationSchema mock enable") + return r.cli.mock.mockHireListHireRegistrationSchema(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireRegistrationSchema", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/registration_schemas", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireRegistrationSchemaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireRegistrationSchema mock HireListHireRegistrationSchema method +func (r *Mock) MockHireListHireRegistrationSchema(f func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error)) { + r.mockHireListHireRegistrationSchema = f +} + +// UnMockHireListHireRegistrationSchema un-mock HireListHireRegistrationSchema method +func (r *Mock) UnMockHireListHireRegistrationSchema() { + r.mockHireListHireRegistrationSchema = nil +} + +// ListHireRegistrationSchemaReq ... +type ListHireRegistrationSchemaReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `10` 最大值: `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6930815272790114324 + Scenario *int64 `query:"scenario" json:"-"` // 登记表适用场景;不填表示获取全部类型信息登记表示例值: 5可选值有: 面试登记表入职登记表信息更新登记表 +} + +// ListHireRegistrationSchemaResp ... +type ListHireRegistrationSchemaResp struct { + Items []*ListHireRegistrationSchemaRespItem `json:"items,omitempty"` // 信息登记表列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireRegistrationSchemaRespItem ... +type ListHireRegistrationSchemaRespItem struct { + ID string `json:"id,omitempty"` // 信息登记表 ID + Name string `json:"name,omitempty"` // 信息登记表名称 + Scenarios []int64 `json:"scenarios,omitempty"` // 登记表适用场景可选值有: 面试登记表入职登记表信息更新登记表 + Objects []*ListHireRegistrationSchemaRespItemObject `json:"objects,omitempty"` // 模块列表 +} + +// ListHireRegistrationSchemaRespItemObject ... +type ListHireRegistrationSchemaRespItemObject struct { + ID string `json:"id,omitempty"` // 模块 ID + Name *ListHireRegistrationSchemaRespItemObjectName `json:"name,omitempty"` // 模块名称 + Description *ListHireRegistrationSchemaRespItemObjectDescription `json:"description,omitempty"` // 模块描述 + Setting *ListHireRegistrationSchemaRespItemObjectSetting `json:"setting,omitempty"` // 模块信息 + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义模块: `true`: 自定义模块- `false`: 系统预置模块 + IsRequired bool `json:"is_required,omitempty"` // 是否必填: `true`: 必填- `false`: 非必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见: `true`: 可见- `false`: 不可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 + ChildrenList []*ListHireRegistrationSchemaRespItemObjectChildren `json:"children_list,omitempty"` // 字段列表 +} + +// ListHireRegistrationSchemaRespItemObjectChildren ... +type ListHireRegistrationSchemaRespItemObjectChildren struct { + ID string `json:"id,omitempty"` // 字段 ID + Name *ListHireRegistrationSchemaRespItemObjectChildrenName `json:"name,omitempty"` // 字段名称 + Description *ListHireRegistrationSchemaRespItemObjectChildrenDescription `json:"description,omitempty"` // 字段描述 + Setting *ListHireRegistrationSchemaRespItemObjectChildrenSetting `json:"setting,omitempty"` // 字段信息 + ParentID string `json:"parent_id,omitempty"` // 所属模块 ID, 即外层的object.id + IsCustomized bool `json:"is_customized,omitempty"` // 是否是自定义字段: `true`: 自定义字段- `false`: 系统预置字段 + IsRequired bool `json:"is_required,omitempty"` // 是否必填: `true`: 必填- `false`: 非必填 + IsVisible bool `json:"is_visible,omitempty"` // 是否可见: `true`: 可见- `false`: 不可见 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenDescription ... +type ListHireRegistrationSchemaRespItemObjectChildrenDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenName ... +type ListHireRegistrationSchemaRespItemObjectChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenSetting ... +type ListHireRegistrationSchemaRespItemObjectChildrenSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireRegistrationSchemaRespItemObjectChildrenSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenSettingConfig ... +type ListHireRegistrationSchemaRespItemObjectChildrenSettingConfig struct { + Options []*ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOption `json:"options,omitempty"` // 选项信息, 仅在字段类型object_type为单选、多选时有值 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOption ... +type ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription ... +type ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName ... +type ListHireRegistrationSchemaRespItemObjectChildrenSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireRegistrationSchemaRespItemObjectDescription ... +type ListHireRegistrationSchemaRespItemObjectDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireRegistrationSchemaRespItemObjectName ... +type ListHireRegistrationSchemaRespItemObjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// ListHireRegistrationSchemaRespItemObjectSetting ... +type ListHireRegistrationSchemaRespItemObjectSetting struct { + ObjectType int64 `json:"object_type,omitempty"` // 字段类型, 在模块信息中该字段将固定返回`11`可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块附件 + Config *ListHireRegistrationSchemaRespItemObjectSettingConfig `json:"config,omitempty"` // 配置信息 +} + +// ListHireRegistrationSchemaRespItemObjectSettingConfig ... +type ListHireRegistrationSchemaRespItemObjectSettingConfig struct { + Options []*ListHireRegistrationSchemaRespItemObjectSettingConfigOption `json:"options,omitempty"` // 选项信息, 仅在类型`object_type`为单选、多选时有值 +} + +// ListHireRegistrationSchemaRespItemObjectSettingConfigOption ... +type ListHireRegistrationSchemaRespItemObjectSettingConfigOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireRegistrationSchemaRespItemObjectSettingConfigOptionName `json:"name,omitempty"` // 选项名称 + Description *ListHireRegistrationSchemaRespItemObjectSettingConfigOptionDescription `json:"description,omitempty"` // 选项描述 + ActiveStatus int64 `json:"active_status,omitempty"` // 是否启用可选值有: 已启用已停用 +} + +// ListHireRegistrationSchemaRespItemObjectSettingConfigOptionDescription ... +type ListHireRegistrationSchemaRespItemObjectSettingConfigOptionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireRegistrationSchemaRespItemObjectSettingConfigOptionName ... +type ListHireRegistrationSchemaRespItemObjectSettingConfigOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireRegistrationSchemaResp ... +type listHireRegistrationSchemaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireRegistrationSchemaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_role_get.go b/api_hire_role_get.go new file mode 100644 index 00000000..b8befa6a --- /dev/null +++ b/api_hire_role_get.go @@ -0,0 +1,249 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireRole 可通过此接口获取角色详情信息, 包括名称、描述、权限列表等 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/role/get +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/auth/get +func (r *HireService) GetHireRole(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) { + if r.cli.mock.mockHireGetHireRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireRole mock enable") + return r.cli.mock.mockHireGetHireRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireRole", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/roles/:role_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireRole mock HireGetHireRole method +func (r *Mock) MockHireGetHireRole(f func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error)) { + r.mockHireGetHireRole = f +} + +// UnMockHireGetHireRole un-mock HireGetHireRole method +func (r *Mock) UnMockHireGetHireRole() { + r.mockHireGetHireRole = nil +} + +// GetHireRoleReq ... +type GetHireRoleReq struct { + RoleID string `path:"role_id" json:"-"` // 角色 ID, 调用 [获取角色列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/role/list)获取。示例值: "7350589232462807068" +} + +// GetHireRoleResp ... +type GetHireRoleResp struct { + Role *GetHireRoleRespRole `json:"role,omitempty"` // 角色详情 +} + +// GetHireRoleRespRole ... +type GetHireRoleRespRole struct { + ID string `json:"id,omitempty"` // 角色 ID + Name *GetHireRoleRespRoleName `json:"name,omitempty"` // 角色名称 + Description *GetHireRoleRespRoleDescription `json:"description,omitempty"` // 角色描述 + ModifyTime string `json:"modify_time,omitempty"` // 更新时间, 毫秒时间戳 + RoleStatus int64 `json:"role_status,omitempty"` // 角色启用状态可选值有: 启用停用 + RoleType int64 `json:"role_type,omitempty"` // 角色类型可选值有: 系统内置角色普通用户自定义角色 + ScopeOfApplication int64 `json:"scope_of_application,omitempty"` // 角色适用范围可选值有: 社招校招都包含 + HasBusinessManagementScope bool `json:"has_business_management_scope,omitempty"` // 是否在角色上配置业务管理范围- `true`: 配置了业务管理范围- `false`: 未配置业务管理范围 + SocailPermissionCollection *GetHireRoleRespRoleSocailPermissionCollection `json:"socail_permission_collection,omitempty"` // 社招权限配置, 仅当`scope_of_application`为“社招”或“都包含”时有值 + CampusPermissionCollection *GetHireRoleRespRoleCampusPermissionCollection `json:"campus_permission_collection,omitempty"` // 校招权限配置, 仅当`scope_of_application`为“校招”或“都包含”时有值 +} + +// GetHireRoleRespRoleCampusPermissionCollection ... +type GetHireRoleRespRoleCampusPermissionCollection struct { + FeaturePermissions []*GetHireRoleRespRoleCampusPermissionCollectionFeaturePermission `json:"feature_permissions,omitempty"` // 功能权限 + ManagementPermissions []*GetHireRoleRespRoleCampusPermissionCollectionManagementPermission `json:"management_permissions,omitempty"` // 管理权限 + DataPermissions []*GetHireRoleRespRoleCampusPermissionCollectionDataPermission `json:"data_permissions,omitempty"` // 数据权限 + BusinessManagementScopes []*GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScope `json:"business_management_scopes,omitempty"` // 业务管理范围 +} + +// GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScope ... +type GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScope struct { + Entity *GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntity `json:"entity,omitempty"` // 实体 + PermissionGroups []*GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroup `json:"permission_groups,omitempty"` // 权限分组 +} + +// GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntity ... +type GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntity struct { + Code string `json:"code,omitempty"` // 实体code, 枚举如下- `talent`: 人才- `application`: 投递- `interview`: 面试- `interview_appointment_project`: 预约面试- `jobfair`: 集中面试- `exam_session`: 集中笔试- `offer`: Offer- `job`: 职位- `job_recruitment`: 招聘需求- `reward`: 内推奖励- `info_session`: 宣讲会- `bi`: BI- `subject`: 对应项目 + Name *GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntityName `json:"name,omitempty"` // 实体名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntityName ... +type GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopeEntityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 实体中文名称 + EnUs string `json:"en_us,omitempty"` // 实体英文名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroup ... +type GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroup struct { + PermissionIDs []string `json:"permission_ids,omitempty"` // 权限点 ID列表 + ScopeRule *GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroupScopeRule `json:"scope_rule,omitempty"` // 管理范围规则 +} + +// GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroupScopeRule ... +type GetHireRoleRespRoleCampusPermissionCollectionBusinessManagementScopePermissionGroupScopeRule struct { + RuleType int64 `json:"rule_type,omitempty"` // 规则类型可选值有: 无数据权限全部数据权限按规则指定范围, 当前系统暂不支持返回详细规则 +} + +// GetHireRoleRespRoleCampusPermissionCollectionDataPermission ... +type GetHireRoleRespRoleCampusPermissionCollectionDataPermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleCampusPermissionCollectionDataPermissionName `json:"name,omitempty"` // 权限点名称 + SelectStatus int64 `json:"select_status,omitempty"` // 数据权限状态可选值有: 不可见可见可编辑 +} + +// GetHireRoleRespRoleCampusPermissionCollectionDataPermissionName ... +type GetHireRoleRespRoleCampusPermissionCollectionDataPermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionFeaturePermission ... +type GetHireRoleRespRoleCampusPermissionCollectionFeaturePermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleCampusPermissionCollectionFeaturePermissionName `json:"name,omitempty"` // 权限点名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionFeaturePermissionName ... +type GetHireRoleRespRoleCampusPermissionCollectionFeaturePermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionManagementPermission ... +type GetHireRoleRespRoleCampusPermissionCollectionManagementPermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleCampusPermissionCollectionManagementPermissionName `json:"name,omitempty"` // 权限点名称 +} + +// GetHireRoleRespRoleCampusPermissionCollectionManagementPermissionName ... +type GetHireRoleRespRoleCampusPermissionCollectionManagementPermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// GetHireRoleRespRoleDescription ... +type GetHireRoleRespRoleDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 角色中文描述 + EnUs string `json:"en_us,omitempty"` // 角色英文描述 +} + +// GetHireRoleRespRoleName ... +type GetHireRoleRespRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 角色中文名称 + EnUs string `json:"en_us,omitempty"` // 角色英文名称 +} + +// GetHireRoleRespRoleSocailPermissionCollection ... +type GetHireRoleRespRoleSocailPermissionCollection struct { + FeaturePermissions []*GetHireRoleRespRoleSocailPermissionCollectionFeaturePermission `json:"feature_permissions,omitempty"` // 功能权限 + ManagementPermissions []*GetHireRoleRespRoleSocailPermissionCollectionManagementPermission `json:"management_permissions,omitempty"` // 管理权限 + DataPermissions []*GetHireRoleRespRoleSocailPermissionCollectionDataPermission `json:"data_permissions,omitempty"` // 数据权限 + BusinessManagementScopes []*GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScope `json:"business_management_scopes,omitempty"` // 业务管理范围 +} + +// GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScope ... +type GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScope struct { + Entity *GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntity `json:"entity,omitempty"` // 实体 + PermissionGroups []*GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroup `json:"permission_groups,omitempty"` // 权限分组 +} + +// GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntity ... +type GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntity struct { + Code string `json:"code,omitempty"` // 实体code, 枚举如下- `talent`: 人才- `application`: 投递- `interview`: 面试- `interview_appointment_project`: 预约面试- `jobfair`: 集中面试- `exam_session`: 集中笔试- `offer`: Offer- `job`: 职位- `job_recruitment`: 招聘需求- `reward`: 内推奖励- `info_session`: 宣讲会- `bi`: BI- `subject`: 对应项目 + Name *GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntityName `json:"name,omitempty"` // 实体名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntityName ... +type GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopeEntityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 实体中文名称 + EnUs string `json:"en_us,omitempty"` // 实体英文名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroup ... +type GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroup struct { + PermissionIDs []string `json:"permission_ids,omitempty"` // 权限点 ID列表 + ScopeRule *GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroupScopeRule `json:"scope_rule,omitempty"` // 管理范围规则 +} + +// GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroupScopeRule ... +type GetHireRoleRespRoleSocailPermissionCollectionBusinessManagementScopePermissionGroupScopeRule struct { + RuleType int64 `json:"rule_type,omitempty"` // 规则类型可选值有: 无数据权限全部数据权限按规则指定范围, 当前系统暂不支持返回详细规则 +} + +// GetHireRoleRespRoleSocailPermissionCollectionDataPermission ... +type GetHireRoleRespRoleSocailPermissionCollectionDataPermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleSocailPermissionCollectionDataPermissionName `json:"name,omitempty"` // 权限点名称 + SelectStatus int64 `json:"select_status,omitempty"` // 数据权限状态可选值有: 不可见可见可编辑 +} + +// GetHireRoleRespRoleSocailPermissionCollectionDataPermissionName ... +type GetHireRoleRespRoleSocailPermissionCollectionDataPermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionFeaturePermission ... +type GetHireRoleRespRoleSocailPermissionCollectionFeaturePermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleSocailPermissionCollectionFeaturePermissionName `json:"name,omitempty"` // 权限点名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionFeaturePermissionName ... +type GetHireRoleRespRoleSocailPermissionCollectionFeaturePermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionManagementPermission ... +type GetHireRoleRespRoleSocailPermissionCollectionManagementPermission struct { + ID string `json:"id,omitempty"` // 权限点 ID + Name *GetHireRoleRespRoleSocailPermissionCollectionManagementPermissionName `json:"name,omitempty"` // 权限点名称 +} + +// GetHireRoleRespRoleSocailPermissionCollectionManagementPermissionName ... +type GetHireRoleRespRoleSocailPermissionCollectionManagementPermissionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 权限点中文名称 + EnUs string `json:"en_us,omitempty"` // 权限点英文名称 +} + +// getHireRoleResp ... +type getHireRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_role_list.go b/api_hire_role_list.go new file mode 100644 index 00000000..7e339eb1 --- /dev/null +++ b/api_hire_role_list.go @@ -0,0 +1,101 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireRole 根据 page_token 与 page_size 对权限角色进行游标分页查询, 可查询到的信息包括: 权限角色ID、角色名、角色描述。可应用于权限判断等鉴权场景。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/role/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/auth/list +func (r *HireService) ListHireRole(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) { + if r.cli.mock.mockHireListHireRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireRole mock enable") + return r.cli.mock.mockHireListHireRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireRole", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/roles", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireRole mock HireListHireRole method +func (r *Mock) MockHireListHireRole(f func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error)) { + r.mockHireListHireRole = f +} + +// UnMockHireListHireRole un-mock HireListHireRole method +func (r *Mock) UnMockHireListHireRole() { + r.mockHireListHireRole = nil +} + +// ListHireRoleReq ... +type ListHireRoleReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 100默认值: `10` 最大值: `200` +} + +// ListHireRoleResp ... +type ListHireRoleResp struct { + Items []*ListHireRoleRespItem `json:"items,omitempty"` // 角色列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireRoleRespItem ... +type ListHireRoleRespItem struct { + ID string `json:"id,omitempty"` // 角色 ID + Name *ListHireRoleRespItemName `json:"name,omitempty"` // 角色名称 + Description *ListHireRoleRespItemDescription `json:"description,omitempty"` // 角色描述 + ScopeOfApplication int64 `json:"scope_of_application,omitempty"` // 适用范围可选值有: 社招校招都包含(适用于新版权限) + ModifyTime string `json:"modify_time,omitempty"` // 更新时间, 单位ms的Unix时间戳 + RoleStatus int64 `json:"role_status,omitempty"` // 停启用状态可选值有: 启用停用 + RoleType int64 `json:"role_type,omitempty"` // 角色类型可选值有: 系统内置角色普通用户自定义角色 +} + +// ListHireRoleRespItemDescription ... +type ListHireRoleRespItemDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHireRoleRespItemName ... +type ListHireRoleRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// listHireRoleResp ... +type listHireRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_subject_list.go b/api_hire_subject_list.go new file mode 100644 index 00000000..f4906151 --- /dev/null +++ b/api_hire_subject_list.go @@ -0,0 +1,107 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireSubject 获取项目列表(概念上一批集体启动和管理的职位可以定义为一个项目, 例如 「2012 秋招项目」)。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/subject/list +func (r *HireService) ListHireSubject(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) { + if r.cli.mock.mockHireListHireSubject != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireSubject mock enable") + return r.cli.mock.mockHireListHireSubject(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireSubject", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/subjects", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireSubjectResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireSubject mock HireListHireSubject method +func (r *Mock) MockHireListHireSubject(f func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error)) { + r.mockHireListHireSubject = f +} + +// UnMockHireListHireSubject un-mock HireListHireSubject method +func (r *Mock) UnMockHireListHireSubject() { + r.mockHireListHireSubject = nil +} + +// ListHireSubjectReq ... +type ListHireSubjectReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1231231987 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 不能超过 200示例值: 100默认值: `1` +} + +// ListHireSubjectResp ... +type ListHireSubjectResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + Items []*ListHireSubjectRespItem `json:"items,omitempty"` // 项目列表 +} + +// ListHireSubjectRespItem ... +type ListHireSubjectRespItem struct { + ID string `json:"id,omitempty"` // 项目ID + Name *ListHireSubjectRespItemName `json:"name,omitempty"` // 名称 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + ActiveStatus int64 `json:"active_status,omitempty"` // 状态可选值有: 已启用已禁用 + ApplicationLimit int64 `json:"application_limit,omitempty"` // 投递职位数上限, 已废弃 + Creator *ListHireSubjectRespItemCreator `json:"creator,omitempty"` // 创建人 +} + +// ListHireSubjectRespItemCreator ... +type ListHireSubjectRespItemCreator struct { + ID string `json:"id,omitempty"` // 创建人用户ID, 与查询参数user_id_type的取值相关 + Name *ListHireSubjectRespItemCreatorName `json:"name,omitempty"` // 名称 +} + +// ListHireSubjectRespItemCreatorName ... +type ListHireSubjectRespItemCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHireSubjectRespItemName ... +type ListHireSubjectRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// listHireSubjectResp ... +type listHireSubjectResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireSubjectResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_blocklist_change_talent_block.go b/api_hire_talent_blocklist_change_talent_block.go new file mode 100644 index 00000000..ff43a65d --- /dev/null +++ b/api_hire_talent_blocklist_change_talent_block.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentBlocklistChangeTalentBlock 根据人才 ID 将人才加入或移除屏蔽名单。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_blocklist/change_talent_block +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/talent/change_talent_block +func (r *HireService) CreateHireTalentBlocklistChangeTalentBlock(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentBlocklistChangeTalentBlock != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentBlocklistChangeTalentBlock mock enable") + return r.cli.mock.mockHireCreateHireTalentBlocklistChangeTalentBlock(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentBlocklistChangeTalentBlock", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_blocklist/change_talent_block", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentBlocklistChangeTalentBlockResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentBlocklistChangeTalentBlock mock HireCreateHireTalentBlocklistChangeTalentBlock method +func (r *Mock) MockHireCreateHireTalentBlocklistChangeTalentBlock(f func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error)) { + r.mockHireCreateHireTalentBlocklistChangeTalentBlock = f +} + +// UnMockHireCreateHireTalentBlocklistChangeTalentBlock un-mock HireCreateHireTalentBlocklistChangeTalentBlock method +func (r *Mock) UnMockHireCreateHireTalentBlocklistChangeTalentBlock() { + r.mockHireCreateHireTalentBlocklistChangeTalentBlock = nil +} + +// CreateHireTalentBlocklistChangeTalentBlockReq ... +type CreateHireTalentBlocklistChangeTalentBlockReq struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "6930815272790114325" + Option int64 `json:"option,omitempty"` // 操作类型示例值: 1可选值有: 加入屏蔽名单从屏蔽名单中移除 + Reason *string `json:"reason,omitempty"` // 屏蔽原因, 当`option`为`1`时必填示例值: "人才作弊" +} + +// CreateHireTalentBlocklistChangeTalentBlockResp ... +type CreateHireTalentBlocklistChangeTalentBlockResp struct { +} + +// createHireTalentBlocklistChangeTalentBlockResp ... +type createHireTalentBlocklistChangeTalentBlockResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentBlocklistChangeTalentBlockResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_combined_create.go b/api_hire_talent_combined_create.go new file mode 100644 index 00000000..3f85530a --- /dev/null +++ b/api_hire_talent_combined_create.go @@ -0,0 +1,318 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentCombinedCreate 用于在企业内创建一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) +// +// 接口获取自定义字段信息使用。 +// ## 注意事项 +// 请求参数中邮箱/电话字段请在「飞书招聘」-「设置」-「候选人信息管理」-「标准简历设置」中确认是否必填。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/combined_create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/combined_create +func (r *HireService) CreateHireTalentCombinedCreate(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentCombinedCreate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentCombinedCreate mock enable") + return r.cli.mock.mockHireCreateHireTalentCombinedCreate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentCombinedCreate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/combined_create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentCombinedCreateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentCombinedCreate mock HireCreateHireTalentCombinedCreate method +func (r *Mock) MockHireCreateHireTalentCombinedCreate(f func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error)) { + r.mockHireCreateHireTalentCombinedCreate = f +} + +// UnMockHireCreateHireTalentCombinedCreate un-mock HireCreateHireTalentCombinedCreate method +func (r *Mock) UnMockHireCreateHireTalentCombinedCreate() { + r.mockHireCreateHireTalentCombinedCreate = nil +} + +// CreateHireTalentCombinedCreateReq ... +type CreateHireTalentCombinedCreateReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 已弃用, 请使用 resume_source_id 字段示例值: "1" + ResumeSourceID *string `json:"resume_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询示例值: "1" + FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["6942778198054125570"] 最大长度: `100` + CreatorID *string `json:"creator_id,omitempty"` // 创建人 ID, 和入参 `user_id_type` 类型保持一致, 默认为系统用户 ID, 当创建人类型为「系统」时无需填写该字段示例值: "ou_84aad35d084aa403a838cf73ee18467" + CreatorAccountType *int64 `json:"creator_account_type,omitempty"` // 创建人类型示例值: 1可选值有: 员工系统 + ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)示例值: "7383906146040678700" + BasicInfo *CreateHireTalentCombinedCreateReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*CreateHireTalentCombinedCreateReqEducation `json:"education_list,omitempty"` // 教育经历 最大长度: `100` + CareerList []*CreateHireTalentCombinedCreateReqCareer `json:"career_list,omitempty"` // 工作经历 最大长度: `100` + ProjectList []*CreateHireTalentCombinedCreateReqProject `json:"project_list,omitempty"` // 项目经历 最大长度: `100` + WorksList []*CreateHireTalentCombinedCreateReqWorks `json:"works_list,omitempty"` // 作品 最大长度: `100` + AwardList []*CreateHireTalentCombinedCreateReqAward `json:"award_list,omitempty"` // 获奖 最大长度: `100` + LanguageList []*CreateHireTalentCombinedCreateReqLanguage `json:"language_list,omitempty"` // 语言能力 最大长度: `100` + SnsList []*CreateHireTalentCombinedCreateReqSns `json:"sns_list,omitempty"` // 社交账号示例值: [CN_1] 最大长度: `100` + PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["6942778198054125571"] 最大长度: `100` + SelfEvaluation *CreateHireTalentCombinedCreateReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 + CustomizedData []*CreateHireTalentCombinedCreateReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例 +} + +// CreateHireTalentCombinedCreateReqAward ... +type CreateHireTalentCombinedCreateReqAward struct { + ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" + AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "1687180087000" + Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" + CustomizedData []*CreateHireTalentCombinedCreateReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqAwardCustomizedData ... +type CreateHireTalentCombinedCreateReqAwardCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqBasicInfo ... +type CreateHireTalentCombinedCreateReqBasicInfo struct { + Name string `json:"name,omitempty"` // 名字示例值: "小明" + Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182900291190" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" + Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" + Identification *CreateHireTalentCombinedCreateReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 + StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" + Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "1293016767159" + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 + NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" + CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + CustomizedData []*CreateHireTalentCombinedCreateReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqBasicInfoCustomizedData ... +type CreateHireTalentCombinedCreateReqBasicInfoCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqBasicInfoIdentification ... +type CreateHireTalentCombinedCreateReqBasicInfoIdentification struct { + IdentificationType *int64 `json:"identification_type,omitempty"` // 证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 + IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号示例值: "511699199x1x111234" +} + +// CreateHireTalentCombinedCreateReqCareer ... +type CreateHireTalentCombinedCreateReqCareer struct { + ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Company *string `json:"company,omitempty"` // 工作经历公司名称示例值: "明日科技公司" + Title *string `json:"title,omitempty"` // 工作经历职位名称示例值: "高级工程师" + Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" + StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "1687180087000" + CareerType *int64 `json:"career_type,omitempty"` // 工作经历经历类型示例值: 1可选值有: 实习经历工作经历 + CustomizedData []*CreateHireTalentCombinedCreateReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqCareerCustomizedData ... +type CreateHireTalentCombinedCreateReqCareerCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqCustomizedData ... +type CreateHireTalentCombinedCreateReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqEducation ... +type CreateHireTalentCombinedCreateReqEducation struct { + ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 + School *string `json:"school,omitempty"` // 教育经历学校示例值: "香港大学" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" + StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "1687180087000" + EducationType *int64 `json:"education_type,omitempty"` // 教育经历学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 教育经历成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedData []*CreateHireTalentCombinedCreateReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqEducationCustomizedData ... +type CreateHireTalentCombinedCreateReqEducationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqLanguage ... +type CreateHireTalentCombinedCreateReqLanguage struct { + ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 + Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 + CustomizedData []*CreateHireTalentCombinedCreateReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqLanguageCustomizedData ... +type CreateHireTalentCombinedCreateReqLanguageCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqProject ... +type CreateHireTalentCombinedCreateReqProject struct { + ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" + Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" + Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" + StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "1687180087000" + CustomizedData []*CreateHireTalentCombinedCreateReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqProjectCustomizedData ... +type CreateHireTalentCombinedCreateReqProjectCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqSelfEvaluation ... +type CreateHireTalentCombinedCreateReqSelfEvaluation struct { + ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" + CustomizedData []*CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData ... +type CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqSns ... +type CreateHireTalentCombinedCreateReqSns struct { + ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" + CustomizedData []*CreateHireTalentCombinedCreateReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqSnsCustomizedData ... +type CreateHireTalentCombinedCreateReqSnsCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateReqWorks ... +type CreateHireTalentCombinedCreateReqWorks struct { + ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" + AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" + CustomizedData []*CreateHireTalentCombinedCreateReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedCreateReqWorksCustomizedData ... +type CreateHireTalentCombinedCreateReqWorksCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren ... +type CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" +} + +// CreateHireTalentCombinedCreateResp ... +type CreateHireTalentCombinedCreateResp struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID + CreatorID string `json:"creator_id,omitempty"` // 创建人 ID, 与入参 `user_id_type` 类型一致 + CreatorAccountType int64 `json:"creator_account_type,omitempty"` // 创建人类型可选值有: 员工系统 +} + +// createHireTalentCombinedCreateResp ... +type createHireTalentCombinedCreateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentCombinedCreateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_combined_update.go b/api_hire_talent_combined_update.go new file mode 100644 index 00000000..d28ab6dd --- /dev/null +++ b/api_hire_talent_combined_update.go @@ -0,0 +1,318 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentCombinedUpdate 用于在企业内更新一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) +// +// 接口获取自定义字段信息使用。 +// ## 注意事项 +// 请求参数中邮箱/电话字段请在「飞书招聘」-「设置」-「候选人信息管理」-「标准简历设置」中确认是否必填。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/combined_update +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/combined_update +func (r *HireService) CreateHireTalentCombinedUpdate(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentCombinedUpdate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentCombinedUpdate mock enable") + return r.cli.mock.mockHireCreateHireTalentCombinedUpdate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentCombinedUpdate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/combined_update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentCombinedUpdateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentCombinedUpdate mock HireCreateHireTalentCombinedUpdate method +func (r *Mock) MockHireCreateHireTalentCombinedUpdate(f func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error)) { + r.mockHireCreateHireTalentCombinedUpdate = f +} + +// UnMockHireCreateHireTalentCombinedUpdate un-mock HireCreateHireTalentCombinedUpdate method +func (r *Mock) UnMockHireCreateHireTalentCombinedUpdate() { + r.mockHireCreateHireTalentCombinedUpdate = nil +} + +// CreateHireTalentCombinedUpdateReq ... +type CreateHireTalentCombinedUpdateReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "7158793341499426348" + InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询, 已弃用, 请使用 resume_source_id 字段示例值: "1" + FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["702551782317613290"] 最大长度: `100` + OperatorID *string `json:"operator_id,omitempty"` // 更新人 ID, 与入参 `user_id_type` 类型一致示例值: "ou_84aad35d084aa403a838cf73ee18467" + OperatorAccountType *int64 `json:"operator_account_type,omitempty"` // 更新人类型示例值: 1可选值有: 员工系统 + ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment);请注意: 本接口仅会给人才增加一个附件简历, 不会解析附件简历中的内容并更新人才示例值: "7383906146040678700" + BasicInfo *CreateHireTalentCombinedUpdateReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*CreateHireTalentCombinedUpdateReqEducation `json:"education_list,omitempty"` // 教育经历 注意: 更新时会全量覆盖 最大长度: `100` + CareerList []*CreateHireTalentCombinedUpdateReqCareer `json:"career_list,omitempty"` // 工作经历 注意: 更新时会全量覆盖 最大长度: `100` + ProjectList []*CreateHireTalentCombinedUpdateReqProject `json:"project_list,omitempty"` // 项目经历 注意: 更新时会全量覆盖 最大长度: `100` + WorksList []*CreateHireTalentCombinedUpdateReqWorks `json:"works_list,omitempty"` // 作品 注意: 更新时会全量覆盖 最大长度: `100` + AwardList []*CreateHireTalentCombinedUpdateReqAward `json:"award_list,omitempty"` // 获奖 注意: 更新时会全量覆盖 最大长度: `100` + LanguageList []*CreateHireTalentCombinedUpdateReqLanguage `json:"language_list,omitempty"` // 语言能力 注意: 更新时会全量覆盖 最大长度: `100` + SnsList []*CreateHireTalentCombinedUpdateReqSns `json:"sns_list,omitempty"` // 社交账号 注意: 更新时会全量覆盖 最大长度: `100` + PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["CT_1"] 最大长度: `100` + SelfEvaluation *CreateHireTalentCombinedUpdateReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 + CustomizedData []*CreateHireTalentCombinedUpdateReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例- 更新时会全量覆盖 +} + +// CreateHireTalentCombinedUpdateReqAward ... +type CreateHireTalentCombinedUpdateReqAward struct { + ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" + AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "293016767159" + Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" + CustomizedData []*CreateHireTalentCombinedUpdateReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqAwardCustomizedData ... +type CreateHireTalentCombinedUpdateReqAwardCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqBasicInfo ... +type CreateHireTalentCombinedUpdateReqBasicInfo struct { + Name *string `json:"name,omitempty"` // 名字示例值: "张三" + Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182xxxx9190" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" + Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" + Identification *CreateHireTalentCombinedUpdateReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 + StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" + Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "293016767159" + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 + NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" + CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + CustomizedData []*CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData ... +type CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqBasicInfoIdentification ... +type CreateHireTalentCombinedUpdateReqBasicInfoIdentification struct { + IdentificationType *int64 `json:"identification_type,omitempty"` // 证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 + IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号示例值: "511699199x1x111234" +} + +// CreateHireTalentCombinedUpdateReqCareer ... +type CreateHireTalentCombinedUpdateReqCareer struct { + ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Company *string `json:"company,omitempty"` // 公司名称示例值: "明日科技公司" + Title *string `json:"title,omitempty"` // 职位名称示例值: "高级工程师" + Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" + StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "293016767159" + CareerType *int64 `json:"career_type,omitempty"` // 工作经历类型示例值: 1可选值有: 实习经历工作经历 + CustomizedData []*CreateHireTalentCombinedUpdateReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqCareerCustomizedData ... +type CreateHireTalentCombinedUpdateReqCareerCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqCustomizedData ... +type CreateHireTalentCombinedUpdateReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqEducation ... +type CreateHireTalentCombinedUpdateReqEducation struct { + ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 + School *string `json:"school,omitempty"` // 学校示例值: "香港大学" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" + StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "293016767159" + EducationType *int64 `json:"education_type,omitempty"` // 学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedData []*CreateHireTalentCombinedUpdateReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqEducationCustomizedData ... +type CreateHireTalentCombinedUpdateReqEducationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqLanguage ... +type CreateHireTalentCombinedUpdateReqLanguage struct { + ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 + Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 + CustomizedData []*CreateHireTalentCombinedUpdateReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqLanguageCustomizedData ... +type CreateHireTalentCombinedUpdateReqLanguageCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqProject ... +type CreateHireTalentCombinedUpdateReqProject struct { + ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" + Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" + Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" + StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "293016767159" + CustomizedData []*CreateHireTalentCombinedUpdateReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqProjectCustomizedData ... +type CreateHireTalentCombinedUpdateReqProjectCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqSelfEvaluation ... +type CreateHireTalentCombinedUpdateReqSelfEvaluation struct { + ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" + CustomizedData []*CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData ... +type CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqSns ... +type CreateHireTalentCombinedUpdateReqSns struct { + ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" + CustomizedData []*CreateHireTalentCombinedUpdateReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqSnsCustomizedData ... +type CreateHireTalentCombinedUpdateReqSnsCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateReqWorks ... +type CreateHireTalentCombinedUpdateReqWorks struct { + ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" + AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" + CustomizedData []*CreateHireTalentCombinedUpdateReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedUpdateReqWorksCustomizedData ... +type CreateHireTalentCombinedUpdateReqWorksCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +} + +// CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren ... +type CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" +} + +// CreateHireTalentCombinedUpdateResp ... +type CreateHireTalentCombinedUpdateResp struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID + OperatorID string `json:"operator_id,omitempty"` // 更新人 ID, 与入参 `user_id_type` 类型一致 + OperatorAccountType int64 `json:"operator_account_type,omitempty"` // 更新人类型可选值有: 员工系统 +} + +// createHireTalentCombinedUpdateResp ... +type createHireTalentCombinedUpdateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentCombinedUpdateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_external_info_create.go b/api_hire_talent_external_info_create.go new file mode 100644 index 00000000..7b0bcb0e --- /dev/null +++ b/api_hire_talent_external_info_create.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentExternalInfo 创建外部人才, 可将已存在人才标记为外部人才, 并写入外部系统创建时间。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent-external_info/create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/import-external-system-information/create-5 +func (r *HireService) CreateHireTalentExternalInfo(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentExternalInfo != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentExternalInfo mock enable") + return r.cli.mock.mockHireCreateHireTalentExternalInfo(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentExternalInfo", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/:talent_id/external_info", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentExternalInfoResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentExternalInfo mock HireCreateHireTalentExternalInfo method +func (r *Mock) MockHireCreateHireTalentExternalInfo(f func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error)) { + r.mockHireCreateHireTalentExternalInfo = f +} + +// UnMockHireCreateHireTalentExternalInfo un-mock HireCreateHireTalentExternalInfo method +func (r *Mock) UnMockHireCreateHireTalentExternalInfo() { + r.mockHireCreateHireTalentExternalInfo = nil +} + +// CreateHireTalentExternalInfoReq ... +type CreateHireTalentExternalInfoReq struct { + TalentID string `path:"talent_id" json:"-"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)获取示例值: "7043758982146345223" + ExternalCreateTime string `json:"external_create_time,omitempty"` // 人才在外部系统的创建时间, 毫秒时间戳示例值: "1639992265035" +} + +// CreateHireTalentExternalInfoResp ... +type CreateHireTalentExternalInfoResp struct { + ExternalInfo *CreateHireTalentExternalInfoRespExternalInfo `json:"external_info,omitempty"` // 人才外部信息 +} + +// CreateHireTalentExternalInfoRespExternalInfo ... +type CreateHireTalentExternalInfoRespExternalInfo struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + ExternalCreateTime string `json:"external_create_time,omitempty"` // 人才在外部系统的创建时间, 毫秒时间戳 +} + +// createHireTalentExternalInfoResp ... +type createHireTalentExternalInfoResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentExternalInfoResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_external_info_update.go b/api_hire_talent_external_info_update.go new file mode 100644 index 00000000..af2321b0 --- /dev/null +++ b/api_hire_talent_external_info_update.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireTalentExternalInfo 更新人才外部信息, 包含外部系统创建时间。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent-external_info/update +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/import-external-system-information/update +func (r *HireService) UpdateHireTalentExternalInfo(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireTalentExternalInfo != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireTalentExternalInfo mock enable") + return r.cli.mock.mockHireUpdateHireTalentExternalInfo(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireTalentExternalInfo", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/:talent_id/external_info", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireTalentExternalInfoResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireTalentExternalInfo mock HireUpdateHireTalentExternalInfo method +func (r *Mock) MockHireUpdateHireTalentExternalInfo(f func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error)) { + r.mockHireUpdateHireTalentExternalInfo = f +} + +// UnMockHireUpdateHireTalentExternalInfo un-mock HireUpdateHireTalentExternalInfo method +func (r *Mock) UnMockHireUpdateHireTalentExternalInfo() { + r.mockHireUpdateHireTalentExternalInfo = nil +} + +// UpdateHireTalentExternalInfoReq ... +type UpdateHireTalentExternalInfoReq struct { + TalentID string `path:"talent_id" json:"-"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "7043758982146345223" + ExternalCreateTime string `json:"external_create_time,omitempty"` // 人才在外部系统的创建时间, 毫秒时间戳示例值: "1639992265035" +} + +// UpdateHireTalentExternalInfoResp ... +type UpdateHireTalentExternalInfoResp struct { + ExternalInfo *UpdateHireTalentExternalInfoRespExternalInfo `json:"external_info,omitempty"` // 人才外部信息 +} + +// UpdateHireTalentExternalInfoRespExternalInfo ... +type UpdateHireTalentExternalInfoRespExternalInfo struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看: [获取人才信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + ExternalCreateTime string `json:"external_create_time,omitempty"` // 人才在外部系统的创建时间, 毫秒时间戳 +} + +// updateHireTalentExternalInfoResp ... +type updateHireTalentExternalInfoResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireTalentExternalInfoResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_get_v2.go b/api_hire_talent_get_v2.go new file mode 100644 index 00000000..7df556f9 --- /dev/null +++ b/api_hire_talent_get_v2.go @@ -0,0 +1,828 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireTalentV2 根据人才 ID 获取人才详情, 包含人才加入文件夹列表、标签、人才库、备注以及屏蔽名单等信息。 +// +// 目前暂不支持查询被删除的人才详情 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/get-2 +func (r *HireService) GetHireTalentV2(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) { + if r.cli.mock.mockHireGetHireTalentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireTalentV2 mock enable") + return r.cli.mock.mockHireGetHireTalentV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireTalentV2", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v2/talents/:talent_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireTalentV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireTalentV2 mock HireGetHireTalentV2 method +func (r *Mock) MockHireGetHireTalentV2(f func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error)) { + r.mockHireGetHireTalentV2 = f +} + +// UnMockHireGetHireTalentV2 un-mock HireGetHireTalentV2 method +func (r *Mock) UnMockHireGetHireTalentV2() { + r.mockHireGetHireTalentV2 = nil +} + +// GetHireTalentV2Req ... +type GetHireTalentV2Req struct { + TalentID string `path:"talent_id" json:"-"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "6960663240925956555" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以 people_admin_id 来识别用户默认值: `people_admin_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetHireTalentV2Resp ... +type GetHireTalentV2Resp struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID + BasicInfo *GetHireTalentV2RespBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*GetHireTalentV2RespEducation `json:"education_list,omitempty"` // 教育经历 + CareerList []*GetHireTalentV2RespCareer `json:"career_list,omitempty"` // 工作经历 + ProjectList []*GetHireTalentV2RespProject `json:"project_list,omitempty"` // 项目经历 + WorksList []*GetHireTalentV2RespWorks `json:"works_list,omitempty"` // 作品 + AwardList []*GetHireTalentV2RespAward `json:"award_list,omitempty"` // 获奖 + LanguageList []*GetHireTalentV2RespLanguage `json:"language_list,omitempty"` // 语言能力 + SnsList []*GetHireTalentV2RespSns `json:"sns_list,omitempty"` // 社交账号 + ResumeSourceList []*GetHireTalentV2RespResumeSource `json:"resume_source_list,omitempty"` // 简历来源 + InternshipList []*GetHireTalentV2RespInternship `json:"internship_list,omitempty"` // 实习经历 + CustomizedDataList []*GetHireTalentV2RespCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + ResumeAttachmentIDList []string `json:"resume_attachment_id_list,omitempty"` // 简历附件id列表(按照简历创建时间降序), 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + ResumeAttachmentList []*GetHireTalentV2RespResumeAttachment `json:"resume_attachment_list,omitempty"` // 简历附件列表(按照简历创建时间降序) + InterviewRegistrationList []*GetHireTalentV2RespInterviewRegistration `json:"interview_registration_list,omitempty"` // 面试登记表, 推荐使用`registration_list`字段获取完整登记表列表 + RegistrationList []*GetHireTalentV2RespRegistration `json:"registration_list,omitempty"` // 登记表列表 + IsOnboarded bool `json:"is_onboarded,omitempty"` // 是否已入职可选值有: 未入职已入职 + IsInAgencyPeriod bool `json:"is_in_agency_period,omitempty"` // 是否在猎头保护期可选值有: 未在猎头保护期在猎头保护期 + TopDegree int64 `json:"top_degree,omitempty"` // 最高学历, 详情请参考[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中 DegreeType 枚举 + TalentPoolIDList []string `json:"talent_pool_id_list,omitempty"` // 人才已加入的人才库列表, 详情请查看: [获取人才库列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/search) + TalentFolderRefListV2 []*GetHireTalentV2RespTalentFolderRefListV2 `json:"talent_folder_ref_list_v2,omitempty"` // 文件夹列表字段权限要求(满足任一): 获取人才库信息更新人才库信息 + TagList []*GetHireTalentV2RespTag `json:"tag_list,omitempty"` // 标签列表字段权限要求(满足任一): 更新人才标签获取人才标签 + SimilarInfoV2 *GetHireTalentV2RespSimilarInfoV2 `json:"similar_info_v2,omitempty"` // 相似人才信息 + BlockInfo *GetHireTalentV2RespBlockInfo `json:"block_info,omitempty"` // 人才屏蔽名单信息字段权限要求(满足任一): 更新人才屏蔽名单信息查看人才屏蔽名单信息 + TalentPoolRefListV2 []*GetHireTalentV2RespTalentPoolRefListV2 `json:"talent_pool_ref_list_v2,omitempty"` // 人才已经加入的人才库列表字段权限要求(满足任一): 获取人才库信息更新人才库信息 + NoteListV2 []*GetHireTalentV2RespNoteListV2 `json:"note_list_v2,omitempty"` // 备注列表字段权限要求(满足任一): 获取招聘备注信息更新招聘备注信息 +} + +// GetHireTalentV2RespAward ... +type GetHireTalentV2RespAward struct { + AwardName string `json:"award_name,omitempty"` // 获奖名称 + AwardTime string `json:"award_time,omitempty"` // 获奖日期, 精确到月份, 格式为YYYY-MM + Description string `json:"description,omitempty"` // 获奖描述 + CustomizedDataList []*GetHireTalentV2RespAwardCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespAwardCustomizedData ... +type GetHireTalentV2RespAwardCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespAwardCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespAwardCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespAwardCustomizedDataName ... +type GetHireTalentV2RespAwardCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespAwardCustomizedDataValue ... +type GetHireTalentV2RespAwardCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespAwardCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespAwardCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespAwardCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespAwardCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespAwardCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespAwardCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespAwardCustomizedDataValueOption ... +type GetHireTalentV2RespAwardCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespAwardCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespAwardCustomizedDataValueOptionName ... +type GetHireTalentV2RespAwardCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespAwardCustomizedDataValueTimeRange ... +type GetHireTalentV2RespAwardCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespBasicInfo ... +type GetHireTalentV2RespBasicInfo struct { + Name string `json:"name,omitempty"` // 姓名 + MobileNumber string `json:"mobile_number,omitempty"` // 手机 + MobileCode string `json:"mobile_code,omitempty"` // 手机国家区号, 遵守国际统一标准, 请参考[百度百科-国际长途电话区号](https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E9%95%BF%E9%80%94%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E8%A1%A8/12803495?fr=ge_ala) + Email string `json:"email,omitempty"` // 邮箱 + ExperienceYears int64 `json:"experience_years,omitempty"` // 工作年限 + Age int64 `json:"age,omitempty"` // 年龄 + NationalityCode string `json:"nationality_code,omitempty"` // 国籍(地区), 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + Gender int64 `json:"gender,omitempty"` // 性别可选值有: 男女其他 + CurrentLocationCode string `json:"current_location_code,omitempty"` // 所在地点, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + HometownLocationCode string `json:"hometown_location_code,omitempty"` // 家乡, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + PreferredLocationCodeList []string `json:"preferred_location_code_list,omitempty"` // 意向地点, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + HomeAddress string `json:"home_address,omitempty"` // 家庭住址 + IdentificationType int64 `json:"identification_type,omitempty"` // 证件类型可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 + IdentificationNumber string `json:"identification_number,omitempty"` // 证件号 + Birthday int64 `json:"birthday,omitempty"` // 生日, 秒时间戳 + MaritalStatus int64 `json:"marital_status,omitempty"` // 婚姻状况可选值有: 已婚未婚 + CustomizedDataList []*GetHireTalentV2RespBasicInfoCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + HukouLocationCode string `json:"hukou_location_code,omitempty"` // 户口所在地, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + UpdateTime string `json:"update_time,omitempty"` // 人才更新时间, 毫秒时间戳 + CreateTime string `json:"create_time,omitempty"` // 人才创建时间, 毫秒时间戳 + Confidential int64 `json:"confidential,omitempty"` // 人才隐藏状态可选值有: 隐藏公开 +} + +// GetHireTalentV2RespBasicInfoCustomizedData ... +type GetHireTalentV2RespBasicInfoCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespBasicInfoCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespBasicInfoCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataName ... +type GetHireTalentV2RespBasicInfoCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataValue ... +type GetHireTalentV2RespBasicInfoCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespBasicInfoCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespBasicInfoCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespBasicInfoCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespBasicInfoCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespBasicInfoCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataValueOption ... +type GetHireTalentV2RespBasicInfoCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespBasicInfoCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataValueOptionName ... +type GetHireTalentV2RespBasicInfoCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespBasicInfoCustomizedDataValueTimeRange ... +type GetHireTalentV2RespBasicInfoCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespBlockInfo ... +type GetHireTalentV2RespBlockInfo struct { + BlockedTime string `json:"blocked_time,omitempty"` // 加入屏蔽名单时间, 毫秒时间戳 + CreatorID string `json:"creator_id,omitempty"` // 屏蔽名单创建者 ID, 与入参`user_id_type`类型一致 + Reason string `json:"reason,omitempty"` // 加入屏蔽名单原因 +} + +// GetHireTalentV2RespCareer ... +type GetHireTalentV2RespCareer struct { + CompanyName string `json:"company_name,omitempty"` // 公司名称 + Description string `json:"description,omitempty"` // 工作经历描述 + EndTime string `json:"end_time,omitempty"` // 工作经历的结束日期, 精确到月份, 格式为YYYY-MM + StartTime string `json:"start_time,omitempty"` // 工作经历的开始日期, 精确到月份, 格式为YYYY-MM + Title string `json:"title,omitempty"` // 职位名称 + CustomizedDataList []*GetHireTalentV2RespCareerCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespCareerCustomizedData ... +type GetHireTalentV2RespCareerCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespCareerCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespCareerCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespCareerCustomizedDataName ... +type GetHireTalentV2RespCareerCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespCareerCustomizedDataValue ... +type GetHireTalentV2RespCareerCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespCareerCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespCareerCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespCareerCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespCareerCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespCareerCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespCareerCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespCareerCustomizedDataValueOption ... +type GetHireTalentV2RespCareerCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespCareerCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespCareerCustomizedDataValueOptionName ... +type GetHireTalentV2RespCareerCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespCareerCustomizedDataValueTimeRange ... +type GetHireTalentV2RespCareerCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespCustomizedData ... +type GetHireTalentV2RespCustomizedData struct { + ModuleID string `json:"module_id,omitempty"` // 模块 ID + Name *GetHireTalentV2RespCustomizedDataName `json:"name,omitempty"` // 模块名称 + ObjectType int64 `json:"object_type,omitempty"` // 模块类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块 + Children []*GetHireTalentV2RespCustomizedDataChildren `json:"children,omitempty"` // 模块下的字段 +} + +// GetHireTalentV2RespCustomizedDataChildren ... +type GetHireTalentV2RespCustomizedDataChildren struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespCustomizedDataChildrenName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespCustomizedDataChildrenValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespCustomizedDataChildrenName ... +type GetHireTalentV2RespCustomizedDataChildrenName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespCustomizedDataChildrenValue ... +type GetHireTalentV2RespCustomizedDataChildrenValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespCustomizedDataChildrenValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespCustomizedDataChildrenValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespCustomizedDataChildrenValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespCustomizedDataChildrenValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespCustomizedDataChildrenValueCustomizedAttachment ... +type GetHireTalentV2RespCustomizedDataChildrenValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespCustomizedDataChildrenValueOption ... +type GetHireTalentV2RespCustomizedDataChildrenValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespCustomizedDataChildrenValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespCustomizedDataChildrenValueOptionName ... +type GetHireTalentV2RespCustomizedDataChildrenValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespCustomizedDataChildrenValueTimeRange ... +type GetHireTalentV2RespCustomizedDataChildrenValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespCustomizedDataName ... +type GetHireTalentV2RespCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模块中文名称 + EnUs string `json:"en_us,omitempty"` // 模块英文名称 +} + +// GetHireTalentV2RespEducation ... +type GetHireTalentV2RespEducation struct { + Degree int64 `json:"degree,omitempty"` // 学位可选值有: 小学初中专职高中大专本科硕士博士其他 + SchoolName string `json:"school_name,omitempty"` // 学校名称 + Major string `json:"major,omitempty"` // 专业 + StartTime string `json:"start_time,omitempty"` // 教育经历的起始日期, 精确到月份, 格式为YYYY-MM + EndTime string `json:"end_time,omitempty"` // 教育经历的结束时间, 精确到月份, 格式为YYYY-MM + EducationType int64 `json:"education_type,omitempty"` // 学历类型可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking int64 `json:"academic_ranking,omitempty"` // 成绩排名可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedDataList []*GetHireTalentV2RespEducationCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespEducationCustomizedData ... +type GetHireTalentV2RespEducationCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespEducationCustomizedDataName `json:"name,omitempty"` // 自定义字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 自定义字段字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespEducationCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespEducationCustomizedDataName ... +type GetHireTalentV2RespEducationCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 自定义字段中文名称 + EnUs string `json:"en_us,omitempty"` // 自定义字段英文名称 +} + +// GetHireTalentV2RespEducationCustomizedDataValue ... +type GetHireTalentV2RespEducationCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespEducationCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespEducationCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespEducationCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespEducationCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespEducationCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespEducationCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespEducationCustomizedDataValueOption ... +type GetHireTalentV2RespEducationCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespEducationCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespEducationCustomizedDataValueOptionName ... +type GetHireTalentV2RespEducationCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespEducationCustomizedDataValueTimeRange ... +type GetHireTalentV2RespEducationCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespInternship ... +type GetHireTalentV2RespInternship struct { + CompanyName string `json:"company_name,omitempty"` // 实习公司名称 + Description string `json:"description,omitempty"` // 实习公司描述 + EndTime string `json:"end_time,omitempty"` // 实习的结束日期, 精确到月份, 格式为YYYY-MM + StartTime string `json:"start_time,omitempty"` // 实习的开始日期, 精确到月份, 格式为YYYY-MM + Title string `json:"title,omitempty"` // 职位名称 + CustomizedDataList []*GetHireTalentV2RespInternshipCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespInternshipCustomizedData ... +type GetHireTalentV2RespInternshipCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespInternshipCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespInternshipCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespInternshipCustomizedDataName ... +type GetHireTalentV2RespInternshipCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespInternshipCustomizedDataValue ... +type GetHireTalentV2RespInternshipCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespInternshipCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespInternshipCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespInternshipCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespInternshipCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespInternshipCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespInternshipCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespInternshipCustomizedDataValueOption ... +type GetHireTalentV2RespInternshipCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespInternshipCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespInternshipCustomizedDataValueOptionName ... +type GetHireTalentV2RespInternshipCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespInternshipCustomizedDataValueTimeRange ... +type GetHireTalentV2RespInternshipCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespInterviewRegistration ... +type GetHireTalentV2RespInterviewRegistration struct { + ID string `json:"id,omitempty"` // 登记表 ID + RegistrationTime int64 `json:"registration_time,omitempty"` // 创建时间, 毫秒时间戳 + DownloadURL string `json:"download_url,omitempty"` // 下载链接(有效期7天) +} + +// GetHireTalentV2RespLanguage ... +type GetHireTalentV2RespLanguage struct { + Language int64 `json:"language,omitempty"` // 语言类别可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语 + Proficiency int64 `json:"proficiency,omitempty"` // 熟练程度可选值有: 入门日常会话商务会话无障碍沟通母语 + CustomizedDataList []*GetHireTalentV2RespLanguageCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespLanguageCustomizedData ... +type GetHireTalentV2RespLanguageCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespLanguageCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespLanguageCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespLanguageCustomizedDataName ... +type GetHireTalentV2RespLanguageCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespLanguageCustomizedDataValue ... +type GetHireTalentV2RespLanguageCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespLanguageCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespLanguageCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespLanguageCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespLanguageCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespLanguageCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespLanguageCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespLanguageCustomizedDataValueOption ... +type GetHireTalentV2RespLanguageCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespLanguageCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespLanguageCustomizedDataValueOptionName ... +type GetHireTalentV2RespLanguageCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespLanguageCustomizedDataValueTimeRange ... +type GetHireTalentV2RespLanguageCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespNoteListV2 ... +type GetHireTalentV2RespNoteListV2 struct { + ID string `json:"id,omitempty"` // 备注 ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + CreateTime string `json:"create_time,omitempty"` // 人才备注创建时间, 毫秒级时间戳 + UpdateTime string `json:"update_time,omitempty"` // 人才备注更新时间, 毫秒级时间戳 + CreatorID string `json:"creator_id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致 + Content string `json:"content,omitempty"` // 备注内容 + Privacy int64 `json:"privacy,omitempty"` // 备注私密属性可选值有: 私密公开 +} + +// GetHireTalentV2RespProject ... +type GetHireTalentV2RespProject struct { + ProjectName string `json:"project_name,omitempty"` // 项目名称 + Role string `json:"role,omitempty"` // 项目角色 + Link string `json:"link,omitempty"` // 项目链接(访问型链接, 无有效期限制) + Description string `json:"description,omitempty"` // 项目描述 + StartTime string `json:"start_time,omitempty"` // 项目的开始日期, 精确到月份, 格式为YYYY-MM + EndTime string `json:"end_time,omitempty"` // 项目的结束日期, 精确到月份, 格式为YYYY-MM + CustomizedDataList []*GetHireTalentV2RespProjectCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespProjectCustomizedData ... +type GetHireTalentV2RespProjectCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespProjectCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespProjectCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespProjectCustomizedDataName ... +type GetHireTalentV2RespProjectCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespProjectCustomizedDataValue ... +type GetHireTalentV2RespProjectCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespProjectCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespProjectCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespProjectCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespProjectCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespProjectCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespProjectCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespProjectCustomizedDataValueOption ... +type GetHireTalentV2RespProjectCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespProjectCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespProjectCustomizedDataValueOptionName ... +type GetHireTalentV2RespProjectCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespProjectCustomizedDataValueTimeRange ... +type GetHireTalentV2RespProjectCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespRegistration ... +type GetHireTalentV2RespRegistration struct { + ID string `json:"id,omitempty"` // 登记表 ID + RegistrationTime int64 `json:"registration_time,omitempty"` // 创建时间, 毫秒时间戳 + DownloadURL string `json:"download_url,omitempty"` // 下载链接(有效期7天) + Scenario int64 `json:"scenario,omitempty"` // 登记表场景可选值有: 面试登记表入职登记表信息更新登记表 +} + +// GetHireTalentV2RespResumeAttachment ... +type GetHireTalentV2RespResumeAttachment struct { + ID string `json:"id,omitempty"` // ID + Name string `json:"name,omitempty"` // 附件名, 包含文件类型后缀, 例如【简历.pdf】 + Mime string `json:"mime,omitempty"` // 附件MIME类型 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 为毫秒级的时间戳 +} + +// GetHireTalentV2RespResumeSource ... +type GetHireTalentV2RespResumeSource struct { + ID string `json:"id,omitempty"` // 简历来源 ID, 详情请查看: [获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list) + ZhName string `json:"zh_name,omitempty"` // 简历来源中文名称 + EnName string `json:"en_name,omitempty"` // 简历来源英文名称 +} + +// GetHireTalentV2RespSimilarInfoV2 ... +type GetHireTalentV2RespSimilarInfoV2 struct { + IsSimilarTalent bool `json:"is_similar_talent,omitempty"` // 是否相似人才 + SimilarTalentIDList []string `json:"similar_talent_id_list,omitempty"` // 相似人才 ID 列表 +} + +// GetHireTalentV2RespSns ... +type GetHireTalentV2RespSns struct { + SnsType int64 `json:"sns_type,omitempty"` // 社交平台可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + Link string `json:"link,omitempty"` // URL/ID + CustomizedDataList []*GetHireTalentV2RespSnsCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespSnsCustomizedData ... +type GetHireTalentV2RespSnsCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespSnsCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespSnsCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespSnsCustomizedDataName ... +type GetHireTalentV2RespSnsCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespSnsCustomizedDataValue ... +type GetHireTalentV2RespSnsCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespSnsCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespSnsCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespSnsCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespSnsCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespSnsCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespSnsCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespSnsCustomizedDataValueOption ... +type GetHireTalentV2RespSnsCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespSnsCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespSnsCustomizedDataValueOptionName ... +type GetHireTalentV2RespSnsCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespSnsCustomizedDataValueTimeRange ... +type GetHireTalentV2RespSnsCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// GetHireTalentV2RespTag ... +type GetHireTalentV2RespTag struct { + ID string `json:"id,omitempty"` // 标签 ID + Name *GetHireTalentV2RespTagName `json:"name,omitempty"` // 标签名称 + Description *GetHireTalentV2RespTagDescription `json:"description,omitempty"` // 标签描述 + Type int64 `json:"type,omitempty"` // 标签类型可选值有: 手动标签自动标签 +} + +// GetHireTalentV2RespTagDescription ... +type GetHireTalentV2RespTagDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文描述 + EnUs string `json:"en_us,omitempty"` // 标签英文描述 +} + +// GetHireTalentV2RespTagName ... +type GetHireTalentV2RespTagName struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文名称 + EnUs string `json:"en_us,omitempty"` // 标签英文名称 +} + +// GetHireTalentV2RespTalentFolderRefListV2 ... +type GetHireTalentV2RespTalentFolderRefListV2 struct { + Name string `json:"name,omitempty"` // 文件夹名称 + FolderID string `json:"folder_id,omitempty"` // 文件夹 ID + OwnerID string `json:"owner_id,omitempty"` // 所有者 ID + AddTime string `json:"add_time,omitempty"` // 文件夹加入时间, 毫秒时间戳 +} + +// GetHireTalentV2RespTalentPoolRefListV2 ... +type GetHireTalentV2RespTalentPoolRefListV2 struct { + ID string `json:"id,omitempty"` // 人才库 ID + Name *GetHireTalentV2RespTalentPoolRefListV2Name `json:"name,omitempty"` // 人才库名称 + Description *GetHireTalentV2RespTalentPoolRefListV2Description `json:"description,omitempty"` // 人才库描述 + AddTime string `json:"add_time,omitempty"` // 人才库加入时间, 毫秒级时间戳 +} + +// GetHireTalentV2RespTalentPoolRefListV2Description ... +type GetHireTalentV2RespTalentPoolRefListV2Description struct { + ZhCn string `json:"zh_cn,omitempty"` // 人才库中文描述 + EnUs string `json:"en_us,omitempty"` // 人才库英文名称 +} + +// GetHireTalentV2RespTalentPoolRefListV2Name ... +type GetHireTalentV2RespTalentPoolRefListV2Name struct { + ZhCn string `json:"zh_cn,omitempty"` // 人才库中文名称 + EnUs string `json:"en_us,omitempty"` // 人才库英文名称 +} + +// GetHireTalentV2RespWorks ... +type GetHireTalentV2RespWorks struct { + ID string `json:"id,omitempty"` // 作品 ID + Link string `json:"link,omitempty"` // 作品链接(访问型链接, 无有效期限制) + Description string `json:"description,omitempty"` // 作品描述 + CustomizedDataList []*GetHireTalentV2RespWorksCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 +} + +// GetHireTalentV2RespWorksCustomizedData ... +type GetHireTalentV2RespWorksCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请查看: [获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) + Name *GetHireTalentV2RespWorksCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段模块日期附件 + Value *GetHireTalentV2RespWorksCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireTalentV2RespWorksCustomizedDataName ... +type GetHireTalentV2RespWorksCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireTalentV2RespWorksCustomizedDataValue ... +type GetHireTalentV2RespWorksCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireTalentV2RespWorksCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireTalentV2RespWorksCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireTalentV2RespWorksCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 + CustomizedAttachment []*GetHireTalentV2RespWorksCustomizedDataValueCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时, 从此字段取值 +} + +// GetHireTalentV2RespWorksCustomizedDataValueCustomizedAttachment ... +type GetHireTalentV2RespWorksCustomizedDataValueCustomizedAttachment struct { + FileID string `json:"file_id,omitempty"` // 附件 ID, 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + FileName string `json:"file_name,omitempty"` // 附件名称 + ContentType string `json:"content_type,omitempty"` // 附件类型 + FileSize int64 `json:"file_size,omitempty"` // 附件大小 +} + +// GetHireTalentV2RespWorksCustomizedDataValueOption ... +type GetHireTalentV2RespWorksCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireTalentV2RespWorksCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireTalentV2RespWorksCustomizedDataValueOptionName ... +type GetHireTalentV2RespWorksCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireTalentV2RespWorksCustomizedDataValueTimeRange ... +type GetHireTalentV2RespWorksCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 当值为至今时, 返回「-」, 秒级时间戳 +} + +// getHireTalentV2Resp ... +type getHireTalentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireTalentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_list.go b/api_hire_talent_list.go index 415c1766..2e151ea7 100644 --- a/api_hire_talent_list.go +++ b/api_hire_talent_list.go @@ -21,7 +21,7 @@ import ( "context" ) -// GetHireTalentList 根据更新时间获取人才列表, 仅支持获取默认字段信息, 获取详细信息可调用「获取人才详细」接口。 +// GetHireTalentList 批量获取人才摘要信息, 包括人才 ID、人才基信息、教育经历、工作经历等。若需要获取人才详细信息请使用[获取人才详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get)接口。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list // new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/list @@ -58,27 +58,29 @@ func (r *Mock) UnMockHireGetHireTalentList() { // GetHireTalentListReq ... type GetHireTalentListReq struct { - UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒级时间戳, 示例值: 1618500278663 - UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒级时间戳, 示例值: 1618500278663 - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 10, 最大值: `20` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_admin_id: 以 people_admin_id 来识别用户, 默认值: `people_admin_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - QueryOption *string `query:"query_option" json:"-"` // 请求控制参数, 示例值: ignore_empty_error, 可选值有: ignore_empty_error: 忽略结果为空时的报错 + Keyword *string `query:"keyword" json:"-"` // 搜索关键词, 支持布尔语言(使用 and、or、not 连接关键词)示例值: 张三 and 产品经理 + UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒时间戳示例值: 1618500278663 + UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒时间戳示例值: 1618500278663 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `20` + SortBy *int64 `query:"sort_by" json:"-"` // 排序规则示例值: 1可选值有: 按更新日期降序按相关度降序按投递时间降序按入库时间降序默认值: `1` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以 people_admin_id 来识别用户默认值: `people_admin_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + QueryOption *string `query:"query_option" json:"-"` // 请求控制参数示例值: ignore_empty_error可选值有: 忽略结果为空时的报错 } // GetHireTalentListResp ... type GetHireTalentListResp struct { HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token - Items []*GetHireTalentListRespItem `json:"items,omitempty"` // 列表 + Items []*GetHireTalentListRespItem `json:"items,omitempty"` // 人才摘要信息列表 } // GetHireTalentListRespItem ... type GetHireTalentListRespItem struct { - ID string `json:"id,omitempty"` // 人才ID - IsInAgencyPeriod bool `json:"is_in_agency_period,omitempty"` // 是否在猎头保护期, 可选值有: false: 未在猎头保护期, true: 在猎头保护期 - IsOnboarded bool `json:"is_onboarded,omitempty"` // 是否已入职, 可选值有: false: 未入职, true: 已入职 - BasicInfo *GetHireTalentListRespItemBasicInfo `json:"basic_info,omitempty"` // 基础信息 + ID string `json:"id,omitempty"` // 人才 ID, 详情可查看: [获取人才详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + IsInAgencyPeriod bool `json:"is_in_agency_period,omitempty"` // 是否在猎头保护期可选值有: 未在猎头保护期在猎头保护期 + IsOnboarded bool `json:"is_onboarded,omitempty"` // 是否已入职可选值有: 未入职已入职 + BasicInfo *GetHireTalentListRespItemBasicInfo `json:"basic_info,omitempty"` // 基本信息 EducationList []*GetHireTalentListRespItemEducation `json:"education_list,omitempty"` // 教育经历 CareerList []*GetHireTalentListRespItemCareer `json:"career_list,omitempty"` // 工作经历 ProjectList []*GetHireTalentListRespItemProject `json:"project_list,omitempty"` // 项目经历 @@ -88,139 +90,140 @@ type GetHireTalentListRespItem struct { SnsList []*GetHireTalentListRespItemSns `json:"sns_list,omitempty"` // 社交账号 ResumeSourceList []*GetHireTalentListRespItemResumeSource `json:"resume_source_list,omitempty"` // 简历来源 InterviewRegistrationList []*GetHireTalentListRespItemInterviewRegistration `json:"interview_registration_list,omitempty"` // 面试登记表 - ResumeAttachmentIDList []string `json:"resume_attachment_id_list,omitempty"` // 简历附件id列表(按照简历创建时间降序) - TopDegree int64 `json:"top_degree,omitempty"` // 最高学历, 可选值有: 1: 小学, 2: 初中, 3: 专职, 4: 高中, 5: 大专, 6: 本科, 7: 硕士, 8: 博士, 9: 其他 - FirstDegree int64 `json:"first_degree,omitempty"` // 第一学历, 可选值有: 1: 低于大专, 2: 大专, 3: 本科, 4: 硕士, 5: 博士, 6: 其他, 7: 无 + ResumeAttachmentIDList []string `json:"resume_attachment_id_list,omitempty"` // 简历附件 ID 列表(按照简历创建时间降序), 详情请查看: [获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get) + TopDegree int64 `json:"top_degree,omitempty"` // 最高学历可选值有: 小学初中专职高中大专本科硕士博士其他 + FirstDegree int64 `json:"first_degree,omitempty"` // 第一学历可选值有: 低于大专大专本科硕士博士其他无 } // GetHireTalentListRespItemAward ... type GetHireTalentListRespItemAward struct { - ID string `json:"id,omitempty"` // ID + ID string `json:"id,omitempty"` // 获奖 ID Title string `json:"title,omitempty"` // 获奖名称 - AwardTime string `json:"award_time,omitempty"` // 获奖时间 - Desc string `json:"desc,omitempty"` // 描述 + AwardTime string `json:"award_time,omitempty"` // 获奖日期, 精确到年份 + Desc string `json:"desc,omitempty"` // 获奖描述 } // GetHireTalentListRespItemBasicInfo ... type GetHireTalentListRespItemBasicInfo struct { - Name string `json:"name,omitempty"` // 名字 + Name string `json:"name,omitempty"` // 姓名 Mobile string `json:"mobile,omitempty"` // 手机 - MobileCode string `json:"mobile_code,omitempty"` // 手机国家区号 - MobileCountryCode string `json:"mobile_country_code,omitempty"` // 手机国家代码 + MobileCode string `json:"mobile_code,omitempty"` // 手机国家区号, 遵守国际统一标准, 请参考[百度百科-国际长途电话区号](https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E9%95%BF%E9%80%94%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E8%A1%A8/12803495?fr=ge_ala) + MobileCountryCode string `json:"mobile_country_code,omitempty"` // 手机国家代码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) Email string `json:"email,omitempty"` // 邮箱 ExperienceYears int64 `json:"experience_years,omitempty"` // 工作年限 Age int64 `json:"age,omitempty"` // 年龄 - Nationality *GetHireTalentListRespItemBasicInfoNationality `json:"nationality,omitempty"` // 国籍 - Gender int64 `json:"gender,omitempty"` // 性别, 可选值有: 1: 男, 2: 女, 3: 其他 + Nationality *GetHireTalentListRespItemBasicInfoNationality `json:"nationality,omitempty"` // 国籍(地区) + Gender int64 `json:"gender,omitempty"` // 性别可选值有: 男女其他 CurrentCity *GetHireTalentListRespItemBasicInfoCurrentCity `json:"current_city,omitempty"` // 所在地点 HometownCity *GetHireTalentListRespItemBasicInfoHometownCity `json:"hometown_city,omitempty"` // 家乡 - PreferredCityList []*GetHireTalentListRespItemBasicInfoPreferredCity `json:"preferred_city_list,omitempty"` // 意向地点 - IdentificationType int64 `json:"identification_type,omitempty"` // 证件类型, 可选值有: 1: 中国 - 居民身份证, 2: 护照, 3: 中国 - 港澳居民居住证, 4: 中国 - 台湾居民来往大陆通行证, 5: 其他, 6: 中国 - 港澳居民来往内地通行证, 9: 中国 - 台湾居民居住证 - IdentificationNumber string `json:"identification_number,omitempty"` // 证件号 - Birthday int64 `json:"birthday,omitempty"` // 生日 - CreatorID string `json:"creator_id,omitempty"` // 创建人 - MaritalStatus int64 `json:"marital_status,omitempty"` // 婚姻状况, 可选值有: 1: 已婚, 2: 未婚 + PreferredCityList []*GetHireTalentListRespItemBasicInfoPreferredCity `json:"preferred_city_list,omitempty"` // 期望工作地点 + IdentificationType int64 `json:"identification_type,omitempty"` // 个人证件类型可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 + IdentificationNumber string `json:"identification_number,omitempty"` // 个人证件号 + Birthday int64 `json:"birthday,omitempty"` // 出生日期, 秒时间戳 + CreatorID string `json:"creator_id,omitempty"` // 创建人 ID, 与入参 `user_id_type` 类型一致 + MaritalStatus int64 `json:"marital_status,omitempty"` // 婚姻状况可选值有: 已婚未婚 CurrentHomeAddress string `json:"current_home_address,omitempty"` // 家庭住址 - ModifyTime string `json:"modify_time,omitempty"` // 修改时间 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒时间戳 } // GetHireTalentListRespItemBasicInfoCurrentCity ... type GetHireTalentListRespItemBasicInfoCurrentCity struct { - CityCode string `json:"city_code,omitempty"` // 城市码 - ZhName string `json:"zh_name,omitempty"` // 中文名 - EnName string `json:"en_name,omitempty"` // 英文名 + CityCode string `json:"city_code,omitempty"` // 城市码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + ZhName string `json:"zh_name,omitempty"` // 地点中文名 + EnName string `json:"en_name,omitempty"` // 地点英文名 } // GetHireTalentListRespItemBasicInfoHometownCity ... type GetHireTalentListRespItemBasicInfoHometownCity struct { - CityCode string `json:"city_code,omitempty"` // 城市码 - ZhName string `json:"zh_name,omitempty"` // 中文名 - EnName string `json:"en_name,omitempty"` // 英文名 + CityCode string `json:"city_code,omitempty"` // 城市码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + ZhName string `json:"zh_name,omitempty"` // 地点中文名 + EnName string `json:"en_name,omitempty"` // 地点英文名 } // GetHireTalentListRespItemBasicInfoNationality ... type GetHireTalentListRespItemBasicInfoNationality struct { - NationalityCode string `json:"nationality_code,omitempty"` // 国家编码 - ZhName string `json:"zh_name,omitempty"` // 中文名 - EnName string `json:"en_name,omitempty"` // 英文名 + NationalityCode string `json:"nationality_code,omitempty"` // 国家编码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + ZhName string `json:"zh_name,omitempty"` // 国籍(地区)中文名 + EnName string `json:"en_name,omitempty"` // 国籍(地区)英文名 } // GetHireTalentListRespItemBasicInfoPreferredCity ... type GetHireTalentListRespItemBasicInfoPreferredCity struct { - CityCode string `json:"city_code,omitempty"` // 城市码 - ZhName string `json:"zh_name,omitempty"` // 中文名 - EnName string `json:"en_name,omitempty"` // 英文名 + CityCode string `json:"city_code,omitempty"` // 城市码, 详情请查看: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query) + ZhName string `json:"zh_name,omitempty"` // 地点中文名 + EnName string `json:"en_name,omitempty"` // 地点英文名 } // GetHireTalentListRespItemCareer ... type GetHireTalentListRespItemCareer struct { - ID string `json:"id,omitempty"` // ID + ID string `json:"id,omitempty"` // 工作经历 ID Company string `json:"company,omitempty"` // 公司名称 Title string `json:"title,omitempty"` // 职位名称 - Desc string `json:"desc,omitempty"` // 描述 - StartTime string `json:"start_time,omitempty"` // 开始时间 - EndTime string `json:"end_time,omitempty"` // 结束时间 - CareerType int64 `json:"career_type,omitempty"` // 经历类型, 可选值有: 1: 实习经历, 2: 工作经历 - TagList []int64 `json:"tag_list,omitempty"` // 工作经历标签, 可选值有: 5: 百度 阿里 腾讯, 6: 头条, 美团, 滴滴, 7: 其它大厂 + Desc string `json:"desc,omitempty"` // 工作经历描述 + StartTime string `json:"start_time,omitempty"` // 工作经历的开始日期, 精确到月份 + EndTime string `json:"end_time,omitempty"` // 工作经历的结束日期, 精确到月份 + CareerType int64 `json:"career_type,omitempty"` // 经历类型可选值有: 实习经历工作经历兼职经历其他经历 + TagList []int64 `json:"tag_list,omitempty"` // 工作经历标签可选值有: 百度/阿里/腾讯头条/美团/滴滴互联网 100 强 } // GetHireTalentListRespItemEducation ... type GetHireTalentListRespItemEducation struct { - ID string `json:"id,omitempty"` // ID - Degree int64 `json:"degree,omitempty"` // 学位, 可选值有: 1: 小学, 2: 初中, 3: 专职, 4: 高中, 5: 大专, 6: 本科, 7: 硕士, 8: 博士, 9: 其他 - School string `json:"school,omitempty"` // 学校 + ID string `json:"id,omitempty"` // 教育经历 ID + Degree int64 `json:"degree,omitempty"` // 学位可选值有: 小学初中专职高中大专本科硕士博士其他 + School string `json:"school,omitempty"` // 学校名称 FieldOfStudy string `json:"field_of_study,omitempty"` // 专业 - StartTime string `json:"start_time,omitempty"` // 开始时间 - EndTime string `json:"end_time,omitempty"` // 结束时间 - EducationType int64 `json:"education_type,omitempty"` // 学历类型, 可选值有: 1: 海外及港台, 2: 统招全日制, 3: 非全日制, 4: 自考, 5: 其他 - AcademicRanking int64 `json:"academic_ranking,omitempty"` // 成绩排名, 可选值有: 5: 前 5 %, 10: 前 10 %, 20: 前 20 %, 30: 前 30 %, 50: 前 50 %, -1: 其他 - TagList []int64 `json:"tag_list,omitempty"` // 教育经历标签, 可选值有: 1: 985学校, 2: 211学校, 3: 一本, 4: 国外院校QS200 + StartTime string `json:"start_time,omitempty"` // 教育经历的起始日期, 精确到月份 + EndTime string `json:"end_time,omitempty"` // 教育经历的结束时间, 精确到月份 + EndTimeV2 string `json:"end_time_v2,omitempty"` // 结束时间-新, 无「至今」传值。建议使用此字段, 避免模糊的毕业时间影响候选人筛选 + EducationType int64 `json:"education_type,omitempty"` // 学历类型可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking int64 `json:"academic_ranking,omitempty"` // 成绩排名可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + TagList []int64 `json:"tag_list,omitempty"` // 教育经历标签可选值有: 985学校211学校一本国外院校QS200 } // GetHireTalentListRespItemInterviewRegistration ... type GetHireTalentListRespItemInterviewRegistration struct { - ID string `json:"id,omitempty"` // ID - RegistrationTime int64 `json:"registration_time,omitempty"` // 创建时间 + ID string `json:"id,omitempty"` // 面试登记表 ID, 详情可查看: [获取面试登记表模板列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview_registration_schema/list) + RegistrationTime int64 `json:"registration_time,omitempty"` // 面试登记表创建时间, 毫秒时间戳 } // GetHireTalentListRespItemLanguage ... type GetHireTalentListRespItemLanguage struct { - ID string `json:"id,omitempty"` // ID - Language int64 `json:"language,omitempty"` // 语言, 可选值有: 1: 英语, 2: 法语, 3: 日语, 4: 韩语, 5: 德语, 6: 俄语, 7: 西班牙语, 8: 葡萄牙语, 9: 阿拉伯语, 10: 印地语, 11: 印度斯坦语, 12: 孟加拉语, 13: 豪萨语, 14: 旁遮普语, 15: 波斯语, 16: 斯瓦西里语, 17: 泰卢固语, 18: 土耳其语, 19: 意大利语, 20: 爪哇语, 21: 泰米尔语, 22: 马拉地语, 23: 越南语, 24: 普通话, 25: 粤语 - Proficiency int64 `json:"proficiency,omitempty"` // 精通程度, 可选值有: 1: 入门, 2: 日常会话, 3: 商务会话, 4: 无障碍沟通, 5: 母语 + ID string `json:"id,omitempty"` // 语言能力 ID + Language int64 `json:"language,omitempty"` // 语言可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语 + Proficiency int64 `json:"proficiency,omitempty"` // 精通程度可选值有: 入门日常会话商务会话无障碍沟通母语 } // GetHireTalentListRespItemProject ... type GetHireTalentListRespItemProject struct { - ID string `json:"id,omitempty"` // ID + ID string `json:"id,omitempty"` // 项目经历 ID Name string `json:"name,omitempty"` // 项目名称 Role string `json:"role,omitempty"` // 项目角色 Link string `json:"link,omitempty"` // 项目链接 - Desc string `json:"desc,omitempty"` // 描述 - StartTime string `json:"start_time,omitempty"` // 开始时间 - EndTime string `json:"end_time,omitempty"` // 结束时间 + Desc string `json:"desc,omitempty"` // 项目描述 + StartTime string `json:"start_time,omitempty"` // 项目的开始日期, 精确到月份 + EndTime string `json:"end_time,omitempty"` // 项目的结束日期, 精确到月份 } // GetHireTalentListRespItemResumeSource ... type GetHireTalentListRespItemResumeSource struct { - ID string `json:"id,omitempty"` // ID - ZhName string `json:"zh_name,omitempty"` // 中文名 - EnName string `json:"en_name,omitempty"` // 英文名 + ID string `json:"id,omitempty"` // 简历来源 ID, 详情请查看: [获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list) + ZhName string `json:"zh_name,omitempty"` // 简历来源中文名 + EnName string `json:"en_name,omitempty"` // 简历来源英文名 } // GetHireTalentListRespItemSns ... type GetHireTalentListRespItemSns struct { - ID string `json:"id,omitempty"` // ID - SnsType int64 `json:"sns_type,omitempty"` // SNS名称, 可选值有: 1: 领英, 2: 脉脉, 3: 微信, 4: 微博, 5: Github, 6: 知乎, 7: 脸书, 8: 推特, 9: Whatsapp, 10: 个人网站, 11: QQ + ID string `json:"id,omitempty"` // 社交账号 ID + SnsType int64 `json:"sns_type,omitempty"` // SNS 名称可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ Link string `json:"link,omitempty"` // URL/ID } // GetHireTalentListRespItemWorks ... type GetHireTalentListRespItemWorks struct { - ID string `json:"id,omitempty"` // ID + ID string `json:"id,omitempty"` // 作品 ID, 可通过[获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get)获取作品附件信息 Link string `json:"link,omitempty"` // 作品链接 - Desc string `json:"desc,omitempty"` // 描述 - Name string `json:"name,omitempty"` // 作品附件名称, 若需获取作品附件预览信息可调用「获取附件预览信息」接口 + Desc string `json:"desc,omitempty"` // 作品描述 + Name string `json:"name,omitempty"` // 作品附件名称 } // getHireTalentListResp ... diff --git a/api_hire_talent_object_query.go b/api_hire_talent_object_query.go index 27f5957e..78d356a8 100644 --- a/api_hire_talent_object_query.go +++ b/api_hire_talent_object_query.go @@ -61,7 +61,8 @@ func (r *Mock) UnMockHireQueryHireTalentObject() { } // QueryHireTalentObjectReq ... -type QueryHireTalentObjectReq struct{} +type QueryHireTalentObjectReq struct { +} // QueryHireTalentObjectResp ... type QueryHireTalentObjectResp struct { diff --git a/api_hire_talent_onboard_status.go b/api_hire_talent_onboard_status.go new file mode 100644 index 00000000..1b250841 --- /dev/null +++ b/api_hire_talent_onboard_status.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentOnboardStatus 更新人才的在职状态, 可进行的操作包括入职与离职。 +// +// ## 注意事项 +// - 进行入职、离职操作后, 「飞书招聘」- 「人才库」-「人才详情页」等场景会相应展示已入职、已离职标签 +// - 已入职的人才不能进行入职操作, 已离职的人才不能进行入职操作。已离职的人才若需入职, 需走正常的招聘流程 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/onboard_status +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/onboard_status +func (r *HireService) CreateHireTalentOnboardStatus(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentOnboardStatus != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentOnboardStatus mock enable") + return r.cli.mock.mockHireCreateHireTalentOnboardStatus(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentOnboardStatus", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/:talent_id/onboard_status", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentOnboardStatusResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentOnboardStatus mock HireCreateHireTalentOnboardStatus method +func (r *Mock) MockHireCreateHireTalentOnboardStatus(f func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error)) { + r.mockHireCreateHireTalentOnboardStatus = f +} + +// UnMockHireCreateHireTalentOnboardStatus un-mock HireCreateHireTalentOnboardStatus method +func (r *Mock) UnMockHireCreateHireTalentOnboardStatus() { + r.mockHireCreateHireTalentOnboardStatus = nil +} + +// CreateHireTalentOnboardStatusReq ... +type CreateHireTalentOnboardStatusReq struct { + TalentID string `path:"talent_id" json:"-"` // 人才ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "6960663240925956661" + Operation int64 `json:"operation,omitempty"` // 操作类型示例值: 1可选值有: 入职离职 + OnboardTime *string `json:"onboard_time,omitempty"` // 入职时间, 毫秒时间戳;当操作类型为入职的时候时必填示例值: "1676548784889" + OverboardTime *string `json:"overboard_time,omitempty"` // 离职时间, 毫秒时间戳;当操作类型为离职的时候时必填示例值: "1676548784890" +} + +// CreateHireTalentOnboardStatusResp ... +type CreateHireTalentOnboardStatusResp struct { +} + +// createHireTalentOnboardStatusResp ... +type createHireTalentOnboardStatusResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentOnboardStatusResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_operation_log_search.go b/api_hire_talent_operation_log_search.go new file mode 100644 index 00000000..14c7c434 --- /dev/null +++ b/api_hire_talent_operation_log_search.go @@ -0,0 +1,104 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireTalentOperationLog 根据操作人和操作类型查询人才的操作记录。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/talent_operation_log/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/search +func (r *HireService) SearchHireTalentOperationLog(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) { + if r.cli.mock.mockHireSearchHireTalentOperationLog != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireTalentOperationLog mock enable") + return r.cli.mock.mockHireSearchHireTalentOperationLog(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireTalentOperationLog", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_operation_logs/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireTalentOperationLogResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireTalentOperationLog mock HireSearchHireTalentOperationLog method +func (r *Mock) MockHireSearchHireTalentOperationLog(f func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error)) { + r.mockHireSearchHireTalentOperationLog = f +} + +// UnMockHireSearchHireTalentOperationLog un-mock HireSearchHireTalentOperationLog method +func (r *Mock) UnMockHireSearchHireTalentOperationLog() { + r.mockHireSearchHireTalentOperationLog = nil +} + +// SearchHireTalentOperationLogReq ... +type SearchHireTalentOperationLogReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `10` 最大值: `100` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + JobIDList []string `json:"job_id_list,omitempty"` // 职位 ID 列表, 可通过[获取职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/list)接口获取示例值: ["6949805467799537965"] + OperatorIDList []string `json:"operator_id_list,omitempty"` // 操作人 ID 列表, 与入参 `user_id_type` 类型一致示例值: ["ou_b29276c7c3e2ff4bd3fcfb567ce690e3"] + OperationList []int64 `json:"operation_list,omitempty"` // 操作类型 ID 列表, 操作类型枚举可查看[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中 `操作类型枚举定义`示例值: [1] +} + +// SearchHireTalentOperationLogResp ... +type SearchHireTalentOperationLogResp struct { + Items []*SearchHireTalentOperationLogRespItem `json:"items,omitempty"` // 操作记录列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// SearchHireTalentOperationLogRespItem ... +type SearchHireTalentOperationLogRespItem struct { + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可参考: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + Operator *SearchHireTalentOperationLogRespItemOperator `json:"operator,omitempty"` // 操作人 + OperationType int64 `json:"operation_type,omitempty"` // 操作类型, 操作类型枚举可查看[枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中 `操作类型枚举定义` + OperationTime string `json:"operation_time,omitempty"` // 操作时间, 毫秒时间戳 + OperatorType int64 `json:"operator_type,omitempty"` // 操作人类型 注意: 当前只会返回类型为 `1`: 员工 的操作记录可选值有: 员工 +} + +// SearchHireTalentOperationLogRespItemOperator ... +type SearchHireTalentOperationLogRespItemOperator struct { + ID string `json:"id,omitempty"` // 操作人 ID, 与入参 `user_id_type` 类型一致 + Name *SearchHireTalentOperationLogRespItemOperatorName `json:"name,omitempty"` // 操作人姓名 +} + +// SearchHireTalentOperationLogRespItemOperatorName ... +type SearchHireTalentOperationLogRespItemOperatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 操作人中文名 + EnUs string `json:"en_us,omitempty"` // 操作人英文名 +} + +// searchHireTalentOperationLogResp ... +type searchHireTalentOperationLogResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireTalentOperationLogResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_pool_batch_change.go b/api_hire_talent_pool_batch_change.go new file mode 100644 index 00000000..b543fc8b --- /dev/null +++ b/api_hire_talent_pool_batch_change.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchHireTalentPoolChangeTalentPool 对于同一个人才库, 可批量执行人才加入或移除操作 +// +// - 执行加入操作: 当传入不存在人才 ID 时, 接口会报错返回不存在人才 ID 列表。 当人才已在人才库中时, 接口静默处理。 +// - 执行移除操作: 当传入不存在人才 ID 时, 接口会报错返回不存在人才 ID 列表。 当人才未在人才库中时, 接口静默处理。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/batch_change_talent_pool +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/talent_pool/batch_change_talent_pool +func (r *HireService) BatchHireTalentPoolChangeTalentPool(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) { + if r.cli.mock.mockHireBatchHireTalentPoolChangeTalentPool != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#BatchHireTalentPoolChangeTalentPool mock enable") + return r.cli.mock.mockHireBatchHireTalentPoolChangeTalentPool(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "BatchHireTalentPoolChangeTalentPool", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_pools/:talent_pool_id/batch_change_talent_pool", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(batchHireTalentPoolChangeTalentPoolResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireBatchHireTalentPoolChangeTalentPool mock HireBatchHireTalentPoolChangeTalentPool method +func (r *Mock) MockHireBatchHireTalentPoolChangeTalentPool(f func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error)) { + r.mockHireBatchHireTalentPoolChangeTalentPool = f +} + +// UnMockHireBatchHireTalentPoolChangeTalentPool un-mock HireBatchHireTalentPoolChangeTalentPool method +func (r *Mock) UnMockHireBatchHireTalentPoolChangeTalentPool() { + r.mockHireBatchHireTalentPoolChangeTalentPool = nil +} + +// BatchHireTalentPoolChangeTalentPoolReq ... +type BatchHireTalentPoolChangeTalentPoolReq struct { + TalentPoolID string `path:"talent_pool_id" json:"-"` // 人才库 ID, 可通过[获取人才库列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/search)接口获取示例值: "6930815272790114325" + TalentIDList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: ["6930815272790114324"] 长度范围: `1` ~ `50` + OptionType int64 `json:"option_type,omitempty"` // 操作类型示例值: 1可选值有: 将人才添加至指定人才库将人才从指定人才库中移除 +} + +// BatchHireTalentPoolChangeTalentPoolResp ... +type BatchHireTalentPoolChangeTalentPoolResp struct { +} + +// batchHireTalentPoolChangeTalentPoolResp ... +type batchHireTalentPoolChangeTalentPoolResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchHireTalentPoolChangeTalentPoolResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_pool_move_talent.go b/api_hire_talent_pool_move_talent.go new file mode 100644 index 00000000..e1f65925 --- /dev/null +++ b/api_hire_talent_pool_move_talent.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentPoolMoveTalent 将人才加入人才库。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/move_talent +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent_pool/move_talent +func (r *HireService) CreateHireTalentPoolMoveTalent(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentPoolMoveTalent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentPoolMoveTalent mock enable") + return r.cli.mock.mockHireCreateHireTalentPoolMoveTalent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentPoolMoveTalent", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_pools/:talent_pool_id/talent_relationship", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentPoolMoveTalentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentPoolMoveTalent mock HireCreateHireTalentPoolMoveTalent method +func (r *Mock) MockHireCreateHireTalentPoolMoveTalent(f func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error)) { + r.mockHireCreateHireTalentPoolMoveTalent = f +} + +// UnMockHireCreateHireTalentPoolMoveTalent un-mock HireCreateHireTalentPoolMoveTalent method +func (r *Mock) UnMockHireCreateHireTalentPoolMoveTalent() { + r.mockHireCreateHireTalentPoolMoveTalent = nil +} + +// CreateHireTalentPoolMoveTalentReq ... +type CreateHireTalentPoolMoveTalentReq struct { + TalentPoolID string `path:"talent_pool_id" json:"-"` // 人才库 ID, 可通过接口 [获取人才库列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/search) 获取示例值: "6930815272790114325" + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过接口 [获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list) 获取示例值: "6930815272790114324" + AddType int64 `json:"add_type,omitempty"` // 加入类型, 加入后是否从其他库移出示例值: 1可选值有: 否是 +} + +// CreateHireTalentPoolMoveTalentResp ... +type CreateHireTalentPoolMoveTalentResp struct { + TalentPoolID string `json:"talent_pool_id,omitempty"` // 人才库 ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请查看接口: [获取人才详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) +} + +// createHireTalentPoolMoveTalentResp ... +type createHireTalentPoolMoveTalentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentPoolMoveTalentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_pool_search.go b/api_hire_talent_pool_search.go new file mode 100644 index 00000000..4e283bb8 --- /dev/null +++ b/api_hire_talent_pool_search.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireTalentPool 获取人才库列表, 可获取的信息包括人才库 ID、人才库名称等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_pool/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent_pool/search +func (r *HireService) SearchHireTalentPool(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) { + if r.cli.mock.mockHireSearchHireTalentPool != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireTalentPool mock enable") + return r.cli.mock.mockHireSearchHireTalentPool(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireTalentPool", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_pools/", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireTalentPoolResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireTalentPool mock HireSearchHireTalentPool method +func (r *Mock) MockHireSearchHireTalentPool(f func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error)) { + r.mockHireSearchHireTalentPool = f +} + +// UnMockHireSearchHireTalentPool un-mock HireSearchHireTalentPool method +func (r *Mock) UnMockHireSearchHireTalentPool() { + r.mockHireSearchHireTalentPool = nil +} + +// SearchHireTalentPoolReq ... +type SearchHireTalentPoolReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `10` 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ== + IDList []string `query:"id_list" json:"-"` // 人才库 ID 列表。当传入该参数时, 返回min(page_size, len(id_list))的人才库信息示例值: ["6930815272790114324", "6940815272790114325" 最大长度: `50` +} + +// SearchHireTalentPoolResp ... +type SearchHireTalentPoolResp struct { + Items []*SearchHireTalentPoolRespItem `json:"items,omitempty"` // 人才库列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// SearchHireTalentPoolRespItem ... +type SearchHireTalentPoolRespItem struct { + ID string `json:"id,omitempty"` // 人才库 ID + I18nName *SearchHireTalentPoolRespItemI18nName `json:"i18n_name,omitempty"` // 人才库名称 + I18nDescription *SearchHireTalentPoolRespItemI18nDescription `json:"i18n_description,omitempty"` // 人才库描述 + ParentID string `json:"parent_id,omitempty"` // 父级人才库 ID + IsPrivate int64 `json:"is_private,omitempty"` // 是否「部分用户可见」可选值有: 代表部分用户可见。具体而言, 只有满足授权条件的用户, 才能查看人才库。授权条件的维度包括: 角色、部门、用户代表全部用户可见。这里的全部用户指的是拥有「查看人才库」权限的用户 + CreateTime string `json:"create_time,omitempty"` // 人才库创建时间, 毫秒时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 人才库修改时间, 毫秒时间戳 +} + +// SearchHireTalentPoolRespItemI18nDescription ... +type SearchHireTalentPoolRespItemI18nDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// SearchHireTalentPoolRespItemI18nName ... +type SearchHireTalentPoolRespItemI18nName struct { + ZhCn string `json:"zh_cn,omitempty"` // 人才库中文名称 + EnUs string `json:"en_us,omitempty"` // 人才库英文名称 +} + +// searchHireTalentPoolResp ... +type searchHireTalentPoolResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireTalentPoolResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_remove_to_folder.go b/api_hire_talent_remove_to_folder.go new file mode 100644 index 00000000..01142969 --- /dev/null +++ b/api_hire_talent_remove_to_folder.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// RemoveHireTalentToFolder 根据人才 ID 列表将人才从指定文件夹移除。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/remove_to_folder +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/talent/remove_to_folder +func (r *HireService) RemoveHireTalentToFolder(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) { + if r.cli.mock.mockHireRemoveHireTalentToFolder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#RemoveHireTalentToFolder mock enable") + return r.cli.mock.mockHireRemoveHireTalentToFolder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "RemoveHireTalentToFolder", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/remove_to_folder", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(removeHireTalentToFolderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireRemoveHireTalentToFolder mock HireRemoveHireTalentToFolder method +func (r *Mock) MockHireRemoveHireTalentToFolder(f func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error)) { + r.mockHireRemoveHireTalentToFolder = f +} + +// UnMockHireRemoveHireTalentToFolder un-mock HireRemoveHireTalentToFolder method +func (r *Mock) UnMockHireRemoveHireTalentToFolder() { + r.mockHireRemoveHireTalentToFolder = nil +} + +// RemoveHireTalentToFolderReq ... +type RemoveHireTalentToFolderReq struct { + TalentIDList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获得示例值: ["7381815850065463596"] 长度范围: `1` ~ `200` + FolderID string `json:"folder_id,omitempty"` // 文件夹 ID, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: "7039620186502138156" +} + +// RemoveHireTalentToFolderResp ... +type RemoveHireTalentToFolderResp struct { + TalentIDList []string `json:"talent_id_list,omitempty"` // 已成功移除的人才 ID 列表, 详情请查看: [获取人才信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/get) + FolderID string `json:"folder_id,omitempty"` // 文件夹 ID +} + +// removeHireTalentToFolderResp ... +type removeHireTalentToFolderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RemoveHireTalentToFolderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_tag.go b/api_hire_talent_tag.go new file mode 100644 index 00000000..49a253c5 --- /dev/null +++ b/api_hire_talent_tag.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTalentTag 可为人才新增、删除标签。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/tag +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/talent/tag +func (r *HireService) CreateHireTalentTag(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentTag != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentTag mock enable") + return r.cli.mock.mockHireCreateHireTalentTag(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTalentTag", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/:talent_id/tag", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTalentTagResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTalentTag mock HireCreateHireTalentTag method +func (r *Mock) MockHireCreateHireTalentTag(f func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error)) { + r.mockHireCreateHireTalentTag = f +} + +// UnMockHireCreateHireTalentTag un-mock HireCreateHireTalentTag method +func (r *Mock) UnMockHireCreateHireTalentTag() { + r.mockHireCreateHireTalentTag = nil +} + +// CreateHireTalentTagReq ... +type CreateHireTalentTagReq struct { + TalentID string `path:"talent_id" json:"-"` // 人才 ID, 可通过[批量获取人才ID](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/batch_get_id)获取示例值: "6960663240925956661" + Operation int64 `json:"operation,omitempty"` // 操作类型示例值: 1可选值有: 新增删除 + TagIDList []string `json:"tag_id_list,omitempty"` // 标签 ID 列表, 可通过以下接口获取[获取人才标签信息列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_tag/list)示例值: ["6960663240925956661"] +} + +// CreateHireTalentTagResp ... +type CreateHireTalentTagResp struct { +} + +// createHireTalentTagResp ... +type createHireTalentTagResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentTagResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_talent_tag_list.go b/api_hire_talent_tag_list.go new file mode 100644 index 00000000..dccc44a3 --- /dev/null +++ b/api_hire_talent_tag_list.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireTalentTag 可通过关键词、ID 列表、标签类型、停用状态等获取人才标签信息列表, 结果按照创建时间倒序排序。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_tag/list +// new doc: https://open.feishu.cn/document/hire-v1/recruitment-related-configuration/application/list-2 +func (r *HireService) ListHireTalentTag(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) { + if r.cli.mock.mockHireListHireTalentTag != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireTalentTag mock enable") + return r.cli.mock.mockHireListHireTalentTag(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireTalentTag", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/talent_tags", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireTalentTagResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireTalentTag mock HireListHireTalentTag method +func (r *Mock) MockHireListHireTalentTag(f func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error)) { + r.mockHireListHireTalentTag = f +} + +// UnMockHireListHireTalentTag un-mock HireListHireTalentTag method +func (r *Mock) UnMockHireListHireTalentTag() { + r.mockHireListHireTalentTag = nil +} + +// ListHireTalentTagReq ... +type ListHireTalentTagReq struct { + Keyword *string `query:"keyword" json:"-"` // 搜索关键词示例值: 985 + IDList []string `query:"id_list" json:"-"` // 标签 ID 列表示例值: ["6887469228283299336"] + Type *int64 `query:"type" json:"-"` // 标签类型示例值: 1可选值有: 手动标签自动标签 + IncludeInactive *bool `query:"include_inactive" json:"-"` // 是否包含停用标签示例值: true + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `20` 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ +} + +// ListHireTalentTagResp ... +type ListHireTalentTagResp struct { + Items []*ListHireTalentTagRespItem `json:"items,omitempty"` // 标签列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireTalentTagRespItem ... +type ListHireTalentTagRespItem struct { + ID string `json:"id,omitempty"` // 标签 ID + Name *ListHireTalentTagRespItemName `json:"name,omitempty"` // 标签名称 + Description *ListHireTalentTagRespItemDescription `json:"description,omitempty"` // 描述名称 + Type int64 `json:"type,omitempty"` // 标签类型可选值有: 手动标签自动标签 + ActiveStatus int64 `json:"active_status,omitempty"` // 启停用状态可选值有: 启用停用 +} + +// ListHireTalentTagRespItemDescription ... +type ListHireTalentTagRespItemDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文描述 + EnUs string `json:"en_us,omitempty"` // 英文描述 +} + +// ListHireTalentTagRespItemName ... +type ListHireTalentTagRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listHireTalentTagResp ... +type listHireTalentTagResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireTalentTagResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_termination_reason_list.go b/api_hire_termination_reason_list.go new file mode 100644 index 00000000..997939f7 --- /dev/null +++ b/api_hire_termination_reason_list.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireTerminationReason 获取系统中默认的投递终止原因以及用户配置的自定义投递终止原因。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/termination_reason/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/application/list-2 +func (r *HireService) ListHireTerminationReason(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) { + if r.cli.mock.mockHireListHireTerminationReason != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireTerminationReason mock enable") + return r.cli.mock.mockHireListHireTerminationReason(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireTerminationReason", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/termination_reasons", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireTerminationReasonResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireTerminationReason mock HireListHireTerminationReason method +func (r *Mock) MockHireListHireTerminationReason(f func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error)) { + r.mockHireListHireTerminationReason = f +} + +// UnMockHireListHireTerminationReason un-mock HireListHireTerminationReason method +func (r *Mock) UnMockHireListHireTerminationReason() { + r.mockHireListHireTerminationReason = nil +} + +// ListHireTerminationReasonReq ... +type ListHireTerminationReasonReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量, 默认值为 10示例值: 10 最大值: `200` +} + +// ListHireTerminationReasonResp ... +type ListHireTerminationReasonResp struct { + Items []*ListHireTerminationReasonRespItem `json:"items,omitempty"` // 列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireTerminationReasonRespItem ... +type ListHireTerminationReasonRespItem struct { + ID string `json:"id,omitempty"` // 终止原因 ID + Name *ListHireTerminationReasonRespItemName `json:"name,omitempty"` // 终止原因名称 + ReferralName *ListHireTerminationReasonRespItemReferralName `json:"referral_name,omitempty"` // 内推渠道展示文案 + TerminationType int64 `json:"termination_type,omitempty"` // 终止原因类型可选值有: 我们拒绝了候选人候选人拒绝了我们其他 + IsUsedAsEvaluation bool `json:"is_used_as_evaluation,omitempty"` // 是否用于评估 + ActiveStatus int64 `json:"active_status,omitempty"` // 状态可选值有: 已启用已停用 +} + +// ListHireTerminationReasonRespItemName ... +type ListHireTerminationReasonRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// ListHireTerminationReasonRespItemReferralName ... +type ListHireTerminationReasonRespItemReferralName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// listHireTerminationReasonResp ... +type listHireTerminationReasonResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireTerminationReasonResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_test_search.go b/api_hire_test_search.go new file mode 100644 index 00000000..a03b9090 --- /dev/null +++ b/api_hire_test_search.go @@ -0,0 +1,124 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireTest 批量获取人才在投递流程中的笔试信息。如作答状态、笔试得分等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/test/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/exam/search +func (r *HireService) SearchHireTest(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) { + if r.cli.mock.mockHireSearchHireTest != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireTest mock enable") + return r.cli.mock.mockHireSearchHireTest(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireTest", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/tests/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireTestResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireTest mock HireSearchHireTest method +func (r *Mock) MockHireSearchHireTest(f func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error)) { + r.mockHireSearchHireTest = f +} + +// UnMockHireSearchHireTest un-mock HireSearchHireTest method +func (r *Mock) UnMockHireSearchHireTest() { + r.mockHireSearchHireTest = nil +} + +// SearchHireTestReq ... +type SearchHireTestReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `100` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ApplicationIDList []string `json:"application_id_list,omitempty"` // 投递 ID 列表, 可通过[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get)接口获取示例值: ["7230753910687080000"] 最大长度: `100` + TestStartTimeMin *string `json:"test_start_time_min,omitempty"` // 笔试最早开始时间(毫秒时间戳)示例值: "1608725989000" + TestStartTimeMax *string `json:"test_start_time_max,omitempty"` // 笔试最晚开始时间(毫秒时间戳)示例值: "1608726999000" +} + +// SearchHireTestResp ... +type SearchHireTestResp struct { + Items []*SearchHireTestRespItem `json:"items,omitempty"` // 笔试列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// SearchHireTestRespItem ... +type SearchHireTestRespItem struct { + TestID string `json:"test_id,omitempty"` // 笔试 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情请参考[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情请参考[获取人才详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情请参考[获取职位详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get_detail) + TestPaperID string `json:"test_paper_id,omitempty"` // 试卷 ID + TestPaperName string `json:"test_paper_name,omitempty"` // 试卷名称 + TestPaperSourceID string `json:"test_paper_source_id,omitempty"` // 试卷来源 ID + TestPaperSourceName *SearchHireTestRespItemTestPaperSourceName `json:"test_paper_source_name,omitempty"` // 试卷来源名称 + ReplyStatus int64 `json:"reply_status,omitempty"` // 笔试答复状态可选值有: 已接受已拒绝未反馈 + TestStatus int64 `json:"test_status,omitempty"` // 笔试状态可选值有: 未安排未作答已作答待阅卷通过不通过安排失败 + TestSchedule *SearchHireTestRespItemTestSchedule `json:"test_schedule,omitempty"` // 笔试时间(毫秒时间戳) + TestCompleteTime string `json:"test_complete_time,omitempty"` // 笔试作答完成时间(毫秒时间戳) + ReportURLList []string `json:"report_url_list,omitempty"` // 笔试报告链接列表 + ResultDetailList []*SearchHireTestRespItemResultDetail `json:"result_detail_list,omitempty"` // 笔试详细成绩 + ResultUploadTime string `json:"result_upload_time,omitempty"` // 笔试结果上传时间(毫秒时间戳) 注意: 只有手动录入的笔试成绩才有 + Score string `json:"score,omitempty"` // 阅卷得分 + ScoreSubmitTime string `json:"score_submit_time,omitempty"` // 阅卷结果最新提交时间(毫秒时间戳) + Reviewer string `json:"reviewer,omitempty"` // 阅卷人用户 ID, 与入参 `user_id_type` 类型一致 + ReviewCreatedAt string `json:"review_created_at,omitempty"` // 阅卷安排时间(毫秒时间戳) + CreatedAt string `json:"created_at,omitempty"` // 笔试创建时间(毫秒时间戳) +} + +// SearchHireTestRespItemResultDetail ... +type SearchHireTestRespItemResultDetail struct { + Subject string `json:"subject,omitempty"` // 笔试科目 + Result string `json:"result,omitempty"` // 笔试科目结论 +} + +// SearchHireTestRespItemTestPaperSourceName ... +type SearchHireTestRespItemTestPaperSourceName struct { + ZhCn string `json:"zh_cn,omitempty"` // 试卷来源中文名称 + EnUs string `json:"en_us,omitempty"` // 试卷来源英文名称 +} + +// SearchHireTestRespItemTestSchedule ... +type SearchHireTestRespItemTestSchedule struct { + StartTime string `json:"start_time,omitempty"` // 开始时间(毫秒时间戳) + EndTime string `json:"end_time,omitempty"` // 结束时间(毫秒时间戳) +} + +// searchHireTestResp ... +type searchHireTestResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireTestResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_todo_list.go b/api_hire_todo_list.go new file mode 100644 index 00000000..2cf3400a --- /dev/null +++ b/api_hire_todo_list.go @@ -0,0 +1,121 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireTodo 批量获取当前用户的待办事项信息, 包含评估待办事项、面试待办事项、笔试待办事项和 Offer 待办事项。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/todo/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/recruitment-process-follow-up/list +func (r *HireService) ListHireTodo(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) { + if r.cli.mock.mockHireListHireTodo != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireTodo mock enable") + return r.cli.mock.mockHireListHireTodo(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireTodo", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/todos", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(listHireTodoResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireTodo mock HireListHireTodo method +func (r *Mock) MockHireListHireTodo(f func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error)) { + r.mockHireListHireTodo = f +} + +// UnMockHireListHireTodo un-mock HireListHireTodo method +func (r *Mock) UnMockHireListHireTodo() { + r.mockHireListHireTodo = nil +} + +// ListHireTodoReq ... +type ListHireTodoReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `100` + UserID *string `query:"user_id" json:"-"` // 用户 ID, 该字段无效, 请勿使用示例值: 6894116548131161608 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以 people_admin_id 来识别用户默认值: `people_admin_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Type string `query:"type" json:"-"` // 待办类型示例值: interview可选值有: 评估待办Offer 待办笔试待办面试待办 +} + +// ListHireTodoResp ... +type ListHireTodoResp struct { + Items []*ListHireTodoRespItem `json:"items,omitempty"` // 待办事项列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireTodoRespItem ... +type ListHireTodoRespItem struct { + Evaluation *ListHireTodoRespItemEvaluation `json:"evaluation,omitempty"` // 简历评估待办事项, 仅当待办类型为 `evaluation` 时返回 + Offer *ListHireTodoRespItemOffer `json:"offer,omitempty"` // Offer 待办事项, 仅当待办类型为 `offer` 时返回 + Exam *ListHireTodoRespItemExam `json:"exam,omitempty"` // 笔试待办事项, 仅当类型为 `exam` 时返回 + Interview *ListHireTodoRespItemInterview `json:"interview,omitempty"` // 面试待办事项, 仅当类型为 `interview` 时返回 +} + +// ListHireTodoRespItemEvaluation ... +type ListHireTodoRespItemEvaluation struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情可查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ID string `json:"id,omitempty"` // 评估 ID, 详情可查看: [批量获取简历评估信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/evaluation/list) +} + +// ListHireTodoRespItemExam ... +type ListHireTodoRespItemExam struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情可查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ID string `json:"id,omitempty"` // 笔试 ID +} + +// ListHireTodoRespItemInterview ... +type ListHireTodoRespItemInterview struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情可查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ID string `json:"id,omitempty"` // 面试 ID, 详情可查看: [获取面试信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/interview/list) +} + +// ListHireTodoRespItemOffer ... +type ListHireTodoRespItemOffer struct { + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可查看: [获取人才信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情可查看: [获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get) + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + ID string `json:"id,omitempty"` // Offer 审批流程 ID +} + +// listHireTodoResp ... +type listHireTodoResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireTodoResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_tripartite_agreement_create.go b/api_hire_tripartite_agreement_create.go new file mode 100644 index 00000000..fdcc6866 --- /dev/null +++ b/api_hire_tripartite_agreement_create.go @@ -0,0 +1,82 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireTripartiteAgreement 在校招投递上创建三方协议。 +// +// ## 前提条件 +// - 在「飞书招聘」-「设置」-「候选人流程管理」-「三方协议设置」中勾选了「通过 API 维护三方协议」。 +// - 该投递为校招投递。 +// - 该投递的 Offer 办公地点在中国大陆。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/create +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/tripartite_agreement/create +func (r *HireService) CreateHireTripartiteAgreement(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTripartiteAgreement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTripartiteAgreement mock enable") + return r.cli.mock.mockHireCreateHireTripartiteAgreement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireTripartiteAgreement", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/tripartite_agreements", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireTripartiteAgreementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireTripartiteAgreement mock HireCreateHireTripartiteAgreement method +func (r *Mock) MockHireCreateHireTripartiteAgreement(f func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error)) { + r.mockHireCreateHireTripartiteAgreement = f +} + +// UnMockHireCreateHireTripartiteAgreement un-mock HireCreateHireTripartiteAgreement method +func (r *Mock) UnMockHireCreateHireTripartiteAgreement() { + r.mockHireCreateHireTripartiteAgreement = nil +} + +// CreateHireTripartiteAgreementReq ... +type CreateHireTripartiteAgreementReq struct { + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "6930815272790114325" + State int64 `json:"state,omitempty"` // 三方协议状态示例值: 1可选值有: 未开始已申请学生处理中公司处理中学校处理中已终止已完成解约处理中已解约 + CreateTime string `json:"create_time,omitempty"` // 三方协议创建时间, 毫秒时间戳示例值: "1698292282660" +} + +// CreateHireTripartiteAgreementResp ... +type CreateHireTripartiteAgreementResp struct { + ID string `json:"id,omitempty"` // 创建的三方协议的 id +} + +// createHireTripartiteAgreementResp ... +type createHireTripartiteAgreementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTripartiteAgreementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_tripartite_agreement_delete.go b/api_hire_tripartite_agreement_delete.go new file mode 100644 index 00000000..581cd6c8 --- /dev/null +++ b/api_hire_tripartite_agreement_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireTripartiteAgreement 删除投递的三方协议。 +// +// ## 前提条件 +// 在「飞书招聘」-「设置」-「候选人流程管理」-「三方协议设置」中勾选了「通过 API 维护三方协议」。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/delete +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/tripartite_agreement/delete +func (r *HireService) DeleteHireTripartiteAgreement(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireTripartiteAgreement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireTripartiteAgreement mock enable") + return r.cli.mock.mockHireDeleteHireTripartiteAgreement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireTripartiteAgreement", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/tripartite_agreements/:tripartite_agreement_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireTripartiteAgreementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireTripartiteAgreement mock HireDeleteHireTripartiteAgreement method +func (r *Mock) MockHireDeleteHireTripartiteAgreement(f func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error)) { + r.mockHireDeleteHireTripartiteAgreement = f +} + +// UnMockHireDeleteHireTripartiteAgreement un-mock HireDeleteHireTripartiteAgreement method +func (r *Mock) UnMockHireDeleteHireTripartiteAgreement() { + r.mockHireDeleteHireTripartiteAgreement = nil +} + +// DeleteHireTripartiteAgreementReq ... +type DeleteHireTripartiteAgreementReq struct { + TripartiteAgreementID string `path:"tripartite_agreement_id" json:"-"` // 三方协议 ID, 由[创建三方协议](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/create)接口返回或通过[获取三方协议](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/list)获取示例值: "6930815272790114324" +} + +// DeleteHireTripartiteAgreementResp ... +type DeleteHireTripartiteAgreementResp struct { +} + +// deleteHireTripartiteAgreementResp ... +type deleteHireTripartiteAgreementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireTripartiteAgreementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_tripartite_agreement_list.go b/api_hire_tripartite_agreement_list.go new file mode 100644 index 00000000..03a0bbee --- /dev/null +++ b/api_hire_tripartite_agreement_list.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireTripartiteAgreement 根据三方协议 ID 或投递 ID 获取三方协议信息, 如三方协议状态、创建时间等信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/list +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/tripartite_agreement/list +func (r *HireService) ListHireTripartiteAgreement(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) { + if r.cli.mock.mockHireListHireTripartiteAgreement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireTripartiteAgreement mock enable") + return r.cli.mock.mockHireListHireTripartiteAgreement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireTripartiteAgreement", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/tripartite_agreements", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireTripartiteAgreementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireTripartiteAgreement mock HireListHireTripartiteAgreement method +func (r *Mock) MockHireListHireTripartiteAgreement(f func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error)) { + r.mockHireListHireTripartiteAgreement = f +} + +// UnMockHireListHireTripartiteAgreement un-mock HireListHireTripartiteAgreement method +func (r *Mock) UnMockHireListHireTripartiteAgreement() { + r.mockHireListHireTripartiteAgreement = nil +} + +// ListHireTripartiteAgreementReq ... +type ListHireTripartiteAgreementReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + ApplicationID *string `query:"application_id" json:"-"` // 投递 ID, 可通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: 6930815272790114324 + TripartiteAgreementID *string `query:"tripartite_agreement_id" json:"-"` // 三方协议 ID, 由[创建三方协议](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/create)接口返回示例值: 6930815272790114325 +} + +// ListHireTripartiteAgreementResp ... +type ListHireTripartiteAgreementResp struct { + Items []*ListHireTripartiteAgreementRespItem `json:"items,omitempty"` // 三方协议信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListHireTripartiteAgreementRespItem ... +type ListHireTripartiteAgreementRespItem struct { + ID string `json:"id,omitempty"` // 三方协议 ID + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 详情可查看: [获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get) + State int64 `json:"state,omitempty"` // 三方协议状态可选值有: 未开始已申请学生处理中公司处理中学校处理中已终止已完成解约处理中已解约 + CreateTime string `json:"create_time,omitempty"` // 三方协议创建时间, 毫秒时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 三方协议修改时间, 毫秒时间戳 +} + +// listHireTripartiteAgreementResp ... +type listHireTripartiteAgreementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireTripartiteAgreementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_tripartite_agreement_update.go b/api_hire_tripartite_agreement_update.go new file mode 100644 index 00000000..c092ba81 --- /dev/null +++ b/api_hire_tripartite_agreement_update.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireTripartiteAgreement 更新三方协议的状态及修改时间信息。 +// +// ## 前提条件 +// 在「飞书招聘」-「设置」-「候选人流程管理」-「三方协议设置」中勾选了「通过 API 维护三方协议」。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/update +// new doc: https://open.feishu.cn/document/hire-v1/candidate-management/delivery-process-management/tripartite_agreement/update +func (r *HireService) UpdateHireTripartiteAgreement(ctx context.Context, request *UpdateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*UpdateHireTripartiteAgreementResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireTripartiteAgreement != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireTripartiteAgreement mock enable") + return r.cli.mock.mockHireUpdateHireTripartiteAgreement(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireTripartiteAgreement", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/tripartite_agreements/:tripartite_agreement_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireTripartiteAgreementResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireTripartiteAgreement mock HireUpdateHireTripartiteAgreement method +func (r *Mock) MockHireUpdateHireTripartiteAgreement(f func(ctx context.Context, request *UpdateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*UpdateHireTripartiteAgreementResp, *Response, error)) { + r.mockHireUpdateHireTripartiteAgreement = f +} + +// UnMockHireUpdateHireTripartiteAgreement un-mock HireUpdateHireTripartiteAgreement method +func (r *Mock) UnMockHireUpdateHireTripartiteAgreement() { + r.mockHireUpdateHireTripartiteAgreement = nil +} + +// UpdateHireTripartiteAgreementReq ... +type UpdateHireTripartiteAgreementReq struct { + TripartiteAgreementID string `path:"tripartite_agreement_id" json:"-"` // 三方协议 ID, 可通过[获取三方协议](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/tripartite_agreement/list)获取示例值: "7084008015948283905" + State int64 `json:"state,omitempty"` // 三方协议状态示例值: 1可选值有: 未开始已申请学生处理中公司处理中学校处理中已终止已完成解约处理中已解约 + ModifyTime string `json:"modify_time,omitempty"` // 三方协议修改时间, 毫秒时间戳 注意: 不可小于创建时间或者上次修改时间示例值: "1698292282661" +} + +// UpdateHireTripartiteAgreementResp ... +type UpdateHireTripartiteAgreementResp struct { +} + +// updateHireTripartiteAgreementResp ... +type updateHireTripartiteAgreementResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireTripartiteAgreementResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_user_role_list.go b/api_hire_user_role_list.go new file mode 100644 index 00000000..5af7b56e --- /dev/null +++ b/api_hire_user_role_list.go @@ -0,0 +1,128 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireUserRole 通过用户ID、角色ID等筛选条件获取用户角色列表, 可获取的信息包括用户ID、角色ID、角色姓名、业务管理范围等 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/user_role/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/recruitment-related-configuration/auth/list-2 +func (r *HireService) ListHireUserRole(ctx context.Context, request *ListHireUserRoleReq, options ...MethodOptionFunc) (*ListHireUserRoleResp, *Response, error) { + if r.cli.mock.mockHireListHireUserRole != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireUserRole mock enable") + return r.cli.mock.mockHireListHireUserRole(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireUserRole", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/user_roles", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireUserRoleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireUserRole mock HireListHireUserRole method +func (r *Mock) MockHireListHireUserRole(f func(ctx context.Context, request *ListHireUserRoleReq, options ...MethodOptionFunc) (*ListHireUserRoleResp, *Response, error)) { + r.mockHireListHireUserRole = f +} + +// UnMockHireListHireUserRole un-mock HireListHireUserRole method +func (r *Mock) UnMockHireListHireUserRole() { + r.mockHireListHireUserRole = nil +} + +// ListHireUserRoleReq ... +type ListHireUserRoleReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量示例值: 10默认值: `10` 最大值: `100` + UserID *string `query:"user_id" json:"-"` // 用户 ID, 与入参 `user_id_type` 类型一致示例值: 7326856229396906012 + RoleID *string `query:"role_id" json:"-"` // 角色 ID, 可通过接口 [获取角色列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/role/list) 获取示例值: 101 + UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒时间戳示例值: 1618500278663 + UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒时间戳示例值: 1618500278663 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// ListHireUserRoleResp ... +type ListHireUserRoleResp struct { + Items []*ListHireUserRoleRespItem `json:"items,omitempty"` // 用户角色列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireUserRoleRespItem ... +type ListHireUserRoleRespItem struct { + UserID string `json:"user_id,omitempty"` // 用户 ID, 与入参 `user_id_type` 类型一致 + RoleID string `json:"role_id,omitempty"` // 角色 ID, 可通过接口 [获取角色列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/role/list) 获取 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒时间戳 + RoleName *ListHireUserRoleRespItemRoleName `json:"role_name,omitempty"` // 角色名称 + RoleDescription *ListHireUserRoleRespItemRoleDescription `json:"role_description,omitempty"` // 角色描述 + BusinessManagementScopes []*ListHireUserRoleRespItemBusinessManagementScope `json:"business_management_scopes,omitempty"` // 业务管理范围 +} + +// ListHireUserRoleRespItemBusinessManagementScope ... +type ListHireUserRoleRespItemBusinessManagementScope struct { + Entity *ListHireUserRoleRespItemBusinessManagementScopeEntity `json:"entity,omitempty"` // 实体 + ScopeRule *ListHireUserRoleRespItemBusinessManagementScopeScopeRule `json:"scope_rule,omitempty"` // 管理范围规则 +} + +// ListHireUserRoleRespItemBusinessManagementScopeEntity ... +type ListHireUserRoleRespItemBusinessManagementScopeEntity struct { + Code string `json:"code,omitempty"` // 实体code, 枚举如下- `talent`: 人才- `application`: 投递- `interview`: 面试- `interview_appointment_project`: 预约面试- `jobfair`: 集中面试- `exam_session`: 集中笔试- `offer`: Offer- `job`: 职位- `job_recruitment`: 招聘需求- `reward`: 内推奖励- `info_session`: 宣讲会- `bi`: BI- `subject`: 对应项目 + Name *ListHireUserRoleRespItemBusinessManagementScopeEntityName `json:"name,omitempty"` // 实体名称 +} + +// ListHireUserRoleRespItemBusinessManagementScopeEntityName ... +type ListHireUserRoleRespItemBusinessManagementScopeEntityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 实体中文名称 + EnUs string `json:"en_us,omitempty"` // 实体英文名称 +} + +// ListHireUserRoleRespItemBusinessManagementScopeScopeRule ... +type ListHireUserRoleRespItemBusinessManagementScopeScopeRule struct { + RuleType int64 `json:"rule_type,omitempty"` // 规则类型可选值有: 无数据权限全部数据权限按规则制定范围 +} + +// ListHireUserRoleRespItemRoleDescription ... +type ListHireUserRoleRespItemRoleDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 角色中文描述 + EnUs string `json:"en_us,omitempty"` // 角色英文描述 +} + +// ListHireUserRoleRespItemRoleName ... +type ListHireUserRoleRespItemRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 角色中文名称 + EnUs string `json:"en_us,omitempty"` // 角色英文名称 +} + +// listHireUserRoleResp ... +type listHireUserRoleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireUserRoleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_channel_create.go b/api_hire_website_channel_create.go new file mode 100644 index 00000000..6d419d25 --- /dev/null +++ b/api_hire_website_channel_create.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireWebsiteChannel 新建指定官网的推广渠道。每个官网可以新建多个推广渠道, 每个推广渠道具有不同的推广链接和推广码。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/create-2 +func (r *HireService) CreateHireWebsiteChannel(ctx context.Context, request *CreateHireWebsiteChannelReq, options ...MethodOptionFunc) (*CreateHireWebsiteChannelResp, *Response, error) { + if r.cli.mock.mockHireCreateHireWebsiteChannel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireWebsiteChannel mock enable") + return r.cli.mock.mockHireCreateHireWebsiteChannel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireWebsiteChannel", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/channels", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireWebsiteChannelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireWebsiteChannel mock HireCreateHireWebsiteChannel method +func (r *Mock) MockHireCreateHireWebsiteChannel(f func(ctx context.Context, request *CreateHireWebsiteChannelReq, options ...MethodOptionFunc) (*CreateHireWebsiteChannelResp, *Response, error)) { + r.mockHireCreateHireWebsiteChannel = f +} + +// UnMockHireCreateHireWebsiteChannel un-mock HireCreateHireWebsiteChannel method +func (r *Mock) UnMockHireCreateHireWebsiteChannel() { + r.mockHireCreateHireWebsiteChannel = nil +} + +// CreateHireWebsiteChannelReq ... +type CreateHireWebsiteChannelReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + ChannelName string `json:"channel_name,omitempty"` // 推广渠道名称示例值: "微信推广渠道" +} + +// CreateHireWebsiteChannelResp ... +type CreateHireWebsiteChannelResp struct { + ID string `json:"id,omitempty"` // 推广渠道 ID + Name string `json:"name,omitempty"` // 推广渠道名称 + Link string `json:"link,omitempty"` // 推广渠道链接 + Code string `json:"code,omitempty"` // 推广渠道推广码 +} + +// createHireWebsiteChannelResp ... +type createHireWebsiteChannelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireWebsiteChannelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_channel_delete.go b/api_hire_website_channel_delete.go new file mode 100644 index 00000000..d46e7d86 --- /dev/null +++ b/api_hire_website_channel_delete.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteHireWebsiteChannel 根据招聘官网 ID 和推广渠道 ID 删除推广渠道。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/delete +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/delete +func (r *HireService) DeleteHireWebsiteChannel(ctx context.Context, request *DeleteHireWebsiteChannelReq, options ...MethodOptionFunc) (*DeleteHireWebsiteChannelResp, *Response, error) { + if r.cli.mock.mockHireDeleteHireWebsiteChannel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#DeleteHireWebsiteChannel mock enable") + return r.cli.mock.mockHireDeleteHireWebsiteChannel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "DeleteHireWebsiteChannel", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/channels/:channel_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteHireWebsiteChannelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireDeleteHireWebsiteChannel mock HireDeleteHireWebsiteChannel method +func (r *Mock) MockHireDeleteHireWebsiteChannel(f func(ctx context.Context, request *DeleteHireWebsiteChannelReq, options ...MethodOptionFunc) (*DeleteHireWebsiteChannelResp, *Response, error)) { + r.mockHireDeleteHireWebsiteChannel = f +} + +// UnMockHireDeleteHireWebsiteChannel un-mock HireDeleteHireWebsiteChannel method +func (r *Mock) UnMockHireDeleteHireWebsiteChannel() { + r.mockHireDeleteHireWebsiteChannel = nil +} + +// DeleteHireWebsiteChannelReq ... +type DeleteHireWebsiteChannelReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + ChannelID string `path:"channel_id" json:"-"` // 推广渠道 ID, 可通过[获取推广渠道列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list)获取示例值: "7085989097067563300" +} + +// DeleteHireWebsiteChannelResp ... +type DeleteHireWebsiteChannelResp struct { +} + +// deleteHireWebsiteChannelResp ... +type deleteHireWebsiteChannelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteHireWebsiteChannelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_channel_list.go b/api_hire_website_channel_list.go new file mode 100644 index 00000000..b289680a --- /dev/null +++ b/api_hire_website_channel_list.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireWebsiteChannel 根据官网 ID 获取推广渠道列表, 支持分页查询。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/list-3 +func (r *HireService) ListHireWebsiteChannel(ctx context.Context, request *ListHireWebsiteChannelReq, options ...MethodOptionFunc) (*ListHireWebsiteChannelResp, *Response, error) { + if r.cli.mock.mockHireListHireWebsiteChannel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireWebsiteChannel mock enable") + return r.cli.mock.mockHireListHireWebsiteChannel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireWebsiteChannel", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/channels", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireWebsiteChannelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireWebsiteChannel mock HireListHireWebsiteChannel method +func (r *Mock) MockHireListHireWebsiteChannel(f func(ctx context.Context, request *ListHireWebsiteChannelReq, options ...MethodOptionFunc) (*ListHireWebsiteChannelResp, *Response, error)) { + r.mockHireListHireWebsiteChannel = f +} + +// UnMockHireListHireWebsiteChannel un-mock HireListHireWebsiteChannel method +func (r *Mock) UnMockHireListHireWebsiteChannel() { + r.mockHireListHireWebsiteChannel = nil +} + +// ListHireWebsiteChannelReq ... +type ListHireWebsiteChannelReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `10` 最大值: `200` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1NTUyMjM2NzIsImlkIjpudWxsfQ +} + +// ListHireWebsiteChannelResp ... +type ListHireWebsiteChannelResp struct { + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + WebsiteChannelList []*ListHireWebsiteChannelRespWebsiteChannel `json:"website_channel_list,omitempty"` // 官网推广渠道列表 +} + +// ListHireWebsiteChannelRespWebsiteChannel ... +type ListHireWebsiteChannelRespWebsiteChannel struct { + ID string `json:"id,omitempty"` // 推广渠道 ID + Name string `json:"name,omitempty"` // 推广渠道名称 + Link string `json:"link,omitempty"` // 推广渠道链接 + Code string `json:"code,omitempty"` // 推广渠道推广码 +} + +// listHireWebsiteChannelResp ... +type listHireWebsiteChannelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireWebsiteChannelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_channel_update.go b/api_hire_website_channel_update.go new file mode 100644 index 00000000..6cf1e100 --- /dev/null +++ b/api_hire_website_channel_update.go @@ -0,0 +1,80 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateHireWebsiteChannel 根据招聘官网 ID 和推广渠道 ID 更改推广渠道, 仅支持修改推广渠道名称。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/update +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/update +func (r *HireService) UpdateHireWebsiteChannel(ctx context.Context, request *UpdateHireWebsiteChannelReq, options ...MethodOptionFunc) (*UpdateHireWebsiteChannelResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireWebsiteChannel != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireWebsiteChannel mock enable") + return r.cli.mock.mockHireUpdateHireWebsiteChannel(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "UpdateHireWebsiteChannel", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/channels/:channel_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateHireWebsiteChannelResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireUpdateHireWebsiteChannel mock HireUpdateHireWebsiteChannel method +func (r *Mock) MockHireUpdateHireWebsiteChannel(f func(ctx context.Context, request *UpdateHireWebsiteChannelReq, options ...MethodOptionFunc) (*UpdateHireWebsiteChannelResp, *Response, error)) { + r.mockHireUpdateHireWebsiteChannel = f +} + +// UnMockHireUpdateHireWebsiteChannel un-mock HireUpdateHireWebsiteChannel method +func (r *Mock) UnMockHireUpdateHireWebsiteChannel() { + r.mockHireUpdateHireWebsiteChannel = nil +} + +// UpdateHireWebsiteChannelReq ... +type UpdateHireWebsiteChannelReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + ChannelID string `path:"channel_id" json:"-"` // 推广渠道 ID, 可通过[获取推广渠道列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list)获取示例值: "7085989097067563300" + ChannelName string `json:"channel_name,omitempty"` // 推广渠道名称示例值: "微信推广渠道" +} + +// UpdateHireWebsiteChannelResp ... +type UpdateHireWebsiteChannelResp struct { + ID string `json:"id,omitempty"` // 推广渠道 ID + Name string `json:"name,omitempty"` // 推广渠道名称 + Link string `json:"link,omitempty"` // 推广渠道链接 + Code string `json:"code,omitempty"` // 推广渠道推广码 +} + +// updateHireWebsiteChannelResp ... +type updateHireWebsiteChannelResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireWebsiteChannelResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_delivery_create_by_attachment.go b/api_hire_website_delivery_create_by_attachment.go new file mode 100644 index 00000000..6047cd8f --- /dev/null +++ b/api_hire_website_delivery_create_by_attachment.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireWebsiteDeliveryByAttachment 根据简历附件创建招聘官网投递任务, 创建投递的最终结果请通过[获取招聘官网投递任务结果](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery_task/get)获取。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_attachment +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/create_by_attachment +func (r *HireService) CreateHireWebsiteDeliveryByAttachment(ctx context.Context, request *CreateHireWebsiteDeliveryByAttachmentReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByAttachmentResp, *Response, error) { + if r.cli.mock.mockHireCreateHireWebsiteDeliveryByAttachment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireWebsiteDeliveryByAttachment mock enable") + return r.cli.mock.mockHireCreateHireWebsiteDeliveryByAttachment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireWebsiteDeliveryByAttachment", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/deliveries/create_by_attachment", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireWebsiteDeliveryByAttachmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireWebsiteDeliveryByAttachment mock HireCreateHireWebsiteDeliveryByAttachment method +func (r *Mock) MockHireCreateHireWebsiteDeliveryByAttachment(f func(ctx context.Context, request *CreateHireWebsiteDeliveryByAttachmentReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByAttachmentResp, *Response, error)) { + r.mockHireCreateHireWebsiteDeliveryByAttachment = f +} + +// UnMockHireCreateHireWebsiteDeliveryByAttachment un-mock HireCreateHireWebsiteDeliveryByAttachment method +func (r *Mock) UnMockHireCreateHireWebsiteDeliveryByAttachment() { + r.mockHireCreateHireWebsiteDeliveryByAttachment = nil +} + +// CreateHireWebsiteDeliveryByAttachmentReq ... +type CreateHireWebsiteDeliveryByAttachmentReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.larkoffice.com/document/server-docs/hire-v1/get-candidates/website/list)获取示例值: "7047318856652261676" + JobPostID string `json:"job_post_id,omitempty"` // 职位广告 ID, 可通过[获取招聘官网下的职位列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/list)获取示例值: "6960663240925956636" + UserID string `json:"user_id,omitempty"` // 官网用户ID, 暂无直接查询接口, 需在[新建招聘官网用户](https://open.larkoffice.com/document/server-docs/hire-v1/get-candidates/website/create)获取并保存示例值: "6960663240925956634" + ResumeFileID string `json:"resume_file_id,omitempty"` // 简历文件 ID, 通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)生成示例值: "7095614894070434092" + ChannelID *string `json:"channel_id,omitempty"` // 官网推广渠道 ID, 可通过[获取招聘官网推广渠道列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list)获取示例值: "6891560630172518670" + ApplicationPreferredCityCodeList []string `json:"application_preferred_city_code_list,omitempty"` // 意向投递城市列表, 最多可填入一个意向城市, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: ["CT_100121"] 最大长度: `1` + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 电话国际区号, 遵守国际统一标准, 请参考[百度百科-国际长途电话区号](https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E9%95%BF%E9%80%94%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E8%A1%A8/12803495?fr=ge_ala)(当该参数值与简历附件中的相关值不一致时, 将以该参数值为准)示例值: "+86" + Mobile *string `json:"mobile,omitempty"` // 电话号码(当该参数值与简历附件中的相关值不一致时, 将以该参数值为准)示例值: "182900291190" + Email *string `json:"email,omitempty"` // 邮箱(当该参数值与简历附件中的相关值不一致时, 将以该参数值为准)示例值: "foo@bytedance.com" + Identification *CreateHireWebsiteDeliveryByAttachmentReqIdentification `json:"identification,omitempty"` // 证件(当该参数值与简历附件中的相关值不一致时, 将以该参数值为准) +} + +// CreateHireWebsiteDeliveryByAttachmentReqIdentification ... +type CreateHireWebsiteDeliveryByAttachmentReqIdentification struct { + IdentificationType *int64 `json:"identification_type,omitempty"` // 证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 + IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号码示例值: "11002030131312312" +} + +// CreateHireWebsiteDeliveryByAttachmentResp ... +type CreateHireWebsiteDeliveryByAttachmentResp struct { + TaskID string `json:"task_id,omitempty"` // 异步任务 ID, 可根据此 ID 通过[获取招聘官网投递任务结果](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery_task/get)查询最终的投递结果 +} + +// createHireWebsiteDeliveryByAttachmentResp ... +type createHireWebsiteDeliveryByAttachmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireWebsiteDeliveryByAttachmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_delivery_create_by_resume.go b/api_hire_website_delivery_create_by_resume.go new file mode 100644 index 00000000..974d8e29 --- /dev/null +++ b/api_hire_website_delivery_create_by_resume.go @@ -0,0 +1,297 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireWebsiteDeliveryByResume 新建招聘官网投递。 +// +// ## 注意事项 +// - 请求参数中邮箱/电话等字段请在「飞书招聘」-「设置」-「招聘官网设置」-「申请表」中确认是否必填。 +// - 请求参数中的时间字段 (start_time/end_time 等), 时间格式为毫秒时间戳, 类型均为 bigint。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_resume +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/create_by_resume +func (r *HireService) CreateHireWebsiteDeliveryByResume(ctx context.Context, request *CreateHireWebsiteDeliveryByResumeReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByResumeResp, *Response, error) { + if r.cli.mock.mockHireCreateHireWebsiteDeliveryByResume != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireWebsiteDeliveryByResume mock enable") + return r.cli.mock.mockHireCreateHireWebsiteDeliveryByResume(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireWebsiteDeliveryByResume", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/deliveries/create_by_resume", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireWebsiteDeliveryByResumeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireWebsiteDeliveryByResume mock HireCreateHireWebsiteDeliveryByResume method +func (r *Mock) MockHireCreateHireWebsiteDeliveryByResume(f func(ctx context.Context, request *CreateHireWebsiteDeliveryByResumeReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByResumeResp, *Response, error)) { + r.mockHireCreateHireWebsiteDeliveryByResume = f +} + +// UnMockHireCreateHireWebsiteDeliveryByResume un-mock HireCreateHireWebsiteDeliveryByResume method +func (r *Mock) UnMockHireCreateHireWebsiteDeliveryByResume() { + r.mockHireCreateHireWebsiteDeliveryByResume = nil +} + +// CreateHireWebsiteDeliveryByResumeReq ... +type CreateHireWebsiteDeliveryByResumeReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + JobPostID string `json:"job_post_id,omitempty"` // 职位广告 ID, 可通过[搜索招聘官网下的职位广告列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/search)或者[获取招聘官网下的职位广告列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/list)获取示例值: "6960663240925956636" + Resume *CreateHireWebsiteDeliveryByResumeReqResume `json:"resume,omitempty"` // 人才信息 + UserID string `json:"user_id,omitempty"` // 官网用户 ID, 需通过[新建招聘官网用户](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-site_user/create)生成示例值: "6960663240925956634" + ApplicationPreferredCityCodeList []string `json:"application_preferred_city_code_list,omitempty"` // 意向投递城市列表, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: ["6960663240925956636"] + ChannelID *string `json:"channel_id,omitempty"` // 官网推广渠道 ID, 可通过[获取招聘官网推广渠道列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-channel/list)获取示例值: "6891560630172518670" +} + +// CreateHireWebsiteDeliveryByResumeReqResume ... +type CreateHireWebsiteDeliveryByResumeReqResume struct { + InternshipList []*CreateHireWebsiteDeliveryByResumeReqResumeInternship `json:"internship_list,omitempty"` // 实习经历 + BasicInfo *CreateHireWebsiteDeliveryByResumeReqResumeBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*CreateHireWebsiteDeliveryByResumeReqResumeEducation `json:"education_list,omitempty"` // 教育经历 + SelfEvaluation *CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 + CareerList []*CreateHireWebsiteDeliveryByResumeReqResumeCareer `json:"career_list,omitempty"` // 工作经历 + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeCustomizedData `json:"customized_data,omitempty"` // 自定义模块 + ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件ID, 需通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)生成示例值: "6960663240925956654" + SnsList []*CreateHireWebsiteDeliveryByResumeReqResumeSns `json:"sns_list,omitempty"` // 社交账号 + WorksList []*CreateHireWebsiteDeliveryByResumeReqResumeWorks `json:"works_list,omitempty"` // 作品 + AwardList []*CreateHireWebsiteDeliveryByResumeReqResumeAward `json:"award_list,omitempty"` // 获奖记录 + ProjectList []*CreateHireWebsiteDeliveryByResumeReqResumeProject `json:"project_list,omitempty"` // 项目经历 + LanguageList []*CreateHireWebsiteDeliveryByResumeReqResumeLanguage `json:"language_list,omitempty"` // 语言能力 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeAward ... +type CreateHireWebsiteDeliveryByResumeReqResumeAward struct { + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "ACM国际大学生程序设计竞赛" + Title *string `json:"title,omitempty"` // 奖项名称示例值: "ACM 亚洲区金牌" + AwardTime *int64 `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: 1609430400000 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeAwardCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeAwardCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeBasicInfo ... +type CreateHireWebsiteDeliveryByResumeReqResumeBasicInfo struct { + NationalityID *string `json:"nationality_id,omitempty"` // 国家码, 可通过[查询地点列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_1" + StartWorkTime *int64 `json:"start_work_time,omitempty"` // 起始工作时间, 毫秒时间戳示例值: 1609430400000 + CurrentHomeAddress *string `json:"current_home_address,omitempty"` // 家庭住址示例值: "成都" + HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡, 可通过[查询地点列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_1" + Identification *CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoIdentification `json:"identification,omitempty"` // 身份证件 + MaritalStatus *int64 `json:"marital_status,omitempty"` // 婚姻状况示例值: 1可选值有: 已婚未婚 + Mobile *string `json:"mobile,omitempty"` // 电话示例值: "182900291190" + CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在城市, 可通过[查询地点列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_11" + ExperienceYears *int64 `json:"experience_years,omitempty"` // 工作年限示例值: 3 + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 + Birthday *int64 `json:"birthday,omitempty"` // 出生日期, 毫秒时间戳示例值: 1609430400000 + Name string `json:"name,omitempty"` // 姓名示例值: "张三" + PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向城市列表, 可通过[查询地点列表](https://open.larkoffice.com/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: ["CT_12"] + ResumeSourceID *string `json:"resume_source_id,omitempty"` // 简历来源, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)获取示例值: "6982104077248219436" + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Email *string `json:"email,omitempty"` // 邮箱示例值: "foo@bytedance.com" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoIdentification ... +type CreateHireWebsiteDeliveryByResumeReqResumeBasicInfoIdentification struct { + IdentificationNumber *string `json:"identification_number,omitempty"` // 身份证件号码示例值: "11002030131312312" + IdentificationType *int64 `json:"identification_type,omitempty"` // 身份证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeCareer ... +type CreateHireWebsiteDeliveryByResumeReqResumeCareer struct { + Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "在抖音公司工作了5年, 表现优秀" + EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳, 如果是「至今」可传值 -1示例值: 1618500278667 + StartTime *int64 `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳示例值: 1609430400000 + Title *string `json:"title,omitempty"` // 职位名称示例值: "后端研发工程师" + Company *string `json:"company,omitempty"` // 公司示例值: "抖音公司" + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeCareerCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeCareerCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义模块ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956651" + Children []*CreateHireWebsiteDeliveryByResumeReqResumeCustomizedDataChildren `json:"children,omitempty"` // 字段列表 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeCustomizedDataChildren ... +type CreateHireWebsiteDeliveryByResumeReqResumeCustomizedDataChildren struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeEducation ... +type CreateHireWebsiteDeliveryByResumeReqResumeEducation struct { + EducationType *int64 `json:"education_type,omitempty"` // 学历类型示例值: 1可选值有: 非中国大陆统招全日制非全日制自考其他 + EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳, 如果是「至今」可传值 -1。请注意: 若传值-1, 投递创建成功后在系统中可正常查看, 但若编辑则需要填一个具体时间示例值: 1618500278663 + EndTimeV2 *int64 `json:"end_time_v2,omitempty"` // 结束时间(新), 毫秒时间戳, 无「至今」传值。建议使用此字段, 避免模糊的毕业时间影响候选人筛选示例值: 1618500278663 + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "汉语言文学" + School *string `json:"school,omitempty"` // 学校示例值: "香港中文大学" + StartTime *int64 `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳示例值: 1609430400000 + AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 专业排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Degree *int64 `json:"degree,omitempty"` // 学位示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeEducationCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeEducationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeInternship ... +type CreateHireWebsiteDeliveryByResumeReqResumeInternship struct { + Desc *string `json:"desc,omitempty"` // 实习经历描述示例值: "在抖音工作实习3个月, 表现优秀" + EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳, 如果是「至今」可传值 -1示例值: 1618500278667 + StartTime *int64 `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳示例值: 1609430400000 + Title *string `json:"title,omitempty"` // 职位名称示例值: "后端研发实习生" + Company *string `json:"company,omitempty"` // 公司名称示例值: "抖音公司" + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeInternshipCustomizedData `json:"customized_data,omitempty"` // 自定义字段 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeInternshipCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeInternshipCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeLanguage ... +type CreateHireWebsiteDeliveryByResumeReqResumeLanguage struct { + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Language *int64 `json:"language,omitempty"` // 语言示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语 + Proficiency *int64 `json:"proficiency,omitempty"` // 熟悉程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeLanguageCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeLanguageCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeProject ... +type CreateHireWebsiteDeliveryByResumeReqResumeProject struct { + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Desc *string `json:"desc,omitempty"` // 项目描述示例值: "项目描述: 课程管理系统" + EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 毫秒时间戳, 如果是「至今」可传值-1示例值: 1618500278669 + Link *string `json:"link,omitempty"` // 项目链接示例值: "www.toutiao.com" + Name *string `json:"name,omitempty"` // 项目名称示例值: "大学生课程设计" + Role *string `json:"role,omitempty"` // 项目角色示例值: "核心开发" + StartTime *int64 `json:"start_time,omitempty"` // 开始时间, 毫秒时间戳示例值: 1609430400000 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeProjectCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeProjectCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluation ... +type CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluation struct { + Content *string `json:"content,omitempty"` // 评价内容示例值: "自我评价: 平常心" + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluationCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeSelfEvaluationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeSns ... +type CreateHireWebsiteDeliveryByResumeReqResumeSns struct { + SnsType *int64 `json:"sns_type,omitempty"` // 社交账号类型示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段 + Link *string `json:"link,omitempty"` // 社交账号链接示例值: "www.toutiao.com" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeSnsCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeSnsCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeWorks ... +type CreateHireWebsiteDeliveryByResumeReqResumeWorks struct { + Desc *string `json:"desc,omitempty"` // 作品描述示例值: "作品描述: 研究生阶段发表了顶刊论文" + Link *string `json:"link,omitempty"` // 作品链接示例值: "www.toutiao.com" + Attachment *CreateHireWebsiteDeliveryByResumeReqResumeWorksAttachment `json:"attachment,omitempty"` // 附件 + CustomizedData []*CreateHireWebsiteDeliveryByResumeReqResumeWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段 +} + +// CreateHireWebsiteDeliveryByResumeReqResumeWorksAttachment ... +type CreateHireWebsiteDeliveryByResumeReqResumeWorksAttachment struct { + FileID *string `json:"file_id,omitempty"` // 文件ID, 需通过[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)生成示例值: "6982104077248219436" +} + +// CreateHireWebsiteDeliveryByResumeReqResumeWorksCustomizedData ... +type CreateHireWebsiteDeliveryByResumeReqResumeWorksCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)获取示例值: "6960663240925956649" + Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "AA" +} + +// CreateHireWebsiteDeliveryByResumeResp ... +type CreateHireWebsiteDeliveryByResumeResp struct { + Delivery *CreateHireWebsiteDeliveryByResumeRespDelivery `json:"delivery,omitempty"` // 官网投递信息 +} + +// CreateHireWebsiteDeliveryByResumeRespDelivery ... +type CreateHireWebsiteDeliveryByResumeRespDelivery struct { + ApplicationID string `json:"application_id,omitempty"` // 招聘投递 ID, 可通过[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get)获取详细信息 + ID string `json:"id,omitempty"` // 官网投递ID + JobID string `json:"job_id,omitempty"` // 职位 ID + JobPostID string `json:"job_post_id,omitempty"` // 职位广告 ID + PortalResumeID string `json:"portal_resume_id,omitempty"` // 简历 ID + UserID string `json:"user_id,omitempty"` // 官网用户 ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 详情可参考[获取人才信息 ](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/hire-v2/talent/get) +} + +// createHireWebsiteDeliveryByResumeResp ... +type createHireWebsiteDeliveryByResumeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireWebsiteDeliveryByResumeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_delivery_task_get.go b/api_hire_website_delivery_task_get.go new file mode 100644 index 00000000..9ef6ae77 --- /dev/null +++ b/api_hire_website_delivery_task_get.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireWebsiteDeliveryTask 通过[根据简历附件创建招聘官网投递](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_attachment)接口创建的投递任务, 可通过本接口获取投递任务结果。如果获取到的数据 data 为空, 可继续轮询(正常情况下不会超过1分钟)直到获取到的 data 不为空。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery_task/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/get-2 +func (r *HireService) GetHireWebsiteDeliveryTask(ctx context.Context, request *GetHireWebsiteDeliveryTaskReq, options ...MethodOptionFunc) (*GetHireWebsiteDeliveryTaskResp, *Response, error) { + if r.cli.mock.mockHireGetHireWebsiteDeliveryTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireWebsiteDeliveryTask mock enable") + return r.cli.mock.mockHireGetHireWebsiteDeliveryTask(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireWebsiteDeliveryTask", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/delivery_tasks/:delivery_task_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireWebsiteDeliveryTaskResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireWebsiteDeliveryTask mock HireGetHireWebsiteDeliveryTask method +func (r *Mock) MockHireGetHireWebsiteDeliveryTask(f func(ctx context.Context, request *GetHireWebsiteDeliveryTaskReq, options ...MethodOptionFunc) (*GetHireWebsiteDeliveryTaskResp, *Response, error)) { + r.mockHireGetHireWebsiteDeliveryTask = f +} + +// UnMockHireGetHireWebsiteDeliveryTask un-mock HireGetHireWebsiteDeliveryTask method +func (r *Mock) UnMockHireGetHireWebsiteDeliveryTask() { + r.mockHireGetHireWebsiteDeliveryTask = nil +} + +// GetHireWebsiteDeliveryTaskReq ... +type GetHireWebsiteDeliveryTaskReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.larkoffice.com/document/server-docs/hire-v1/get-candidates/website/list)获取示例值: "7047318856652261676" + DeliveryTaskID string `path:"delivery_task_id" json:"-"` // 投递任务 ID, 可通过[根据简历附件创建招聘官网投递](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_attachment)获取示例值: "f1c2a0f138ec492d99d7ab73594158ad" +} + +// GetHireWebsiteDeliveryTaskResp ... +type GetHireWebsiteDeliveryTaskResp struct { + Status int64 `json:"status,omitempty"` // 任务状态可选值有: 新建处理中成功失败 + Delivery *GetHireWebsiteDeliveryTaskRespDelivery `json:"delivery,omitempty"` // 官网投递信息 + StatusMsg string `json:"status_msg,omitempty"` // 状态信息, 仅在任务状态(status)为失败(3)时返回 + ExtraInfo string `json:"extra_info,omitempty"` // 附加信息, 在任务状态(status)为失败(3)时、且状态信息(status_msg)标识为重复投递时, 返回重复投递的 ID +} + +// GetHireWebsiteDeliveryTaskRespDelivery ... +type GetHireWebsiteDeliveryTaskRespDelivery struct { + ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 可通过[获取投递信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/get)获取详细信息 + ID string `json:"id,omitempty"` // ID, 废弃字段, 请勿使用 + JobID string `json:"job_id,omitempty"` // 职位 ID, 可通过[获取职位信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get)获取详细信息 + JobPostID string `json:"job_post_id,omitempty"` // 职位广告 ID, 可通过[获取招聘官网下职位广告详情](https://open.larkoffice.com/document/server-docs/hire-v1/get-candidates/website/get)获取详细信息 + PortalResumeID string `json:"portal_resume_id,omitempty"` // 官网简历 ID, 可通过[获取附件信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/attachment/get)获取详细信息 + UserID string `json:"user_id,omitempty"` // 官网用户 ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[获取人才信息](https://open.larkoffice.com/document/server-docs/hire-v1/candidate-management/talent/get-2)获取详细信息 +} + +// getHireWebsiteDeliveryTaskResp ... +type getHireWebsiteDeliveryTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireWebsiteDeliveryTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_job_post_get.go b/api_hire_website_job_post_get.go new file mode 100644 index 00000000..10f58db3 --- /dev/null +++ b/api_hire_website_job_post_get.go @@ -0,0 +1,341 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetHireWebsiteJobPost 获取招聘官网下的职位广告详情, 包含职位广告 ID、名称、关联职位 ID、关联职位编码等信息。 +// +// 提示 +// 官网上创建的投递, 都是通过 `job_post_id`(职位广告 ID)而不是 `job_id`(职位 ID)创建的。例如: [新建招聘官网投递](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_resume), [根据简历附件创建招聘官网投递任务](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_attachment)等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/get +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/get +func (r *HireService) GetHireWebsiteJobPost(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) { + if r.cli.mock.mockHireGetHireWebsiteJobPost != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#GetHireWebsiteJobPost mock enable") + return r.cli.mock.mockHireGetHireWebsiteJobPost(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "GetHireWebsiteJobPost", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/job_posts/:job_post_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getHireWebsiteJobPostResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireGetHireWebsiteJobPost mock HireGetHireWebsiteJobPost method +func (r *Mock) MockHireGetHireWebsiteJobPost(f func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error)) { + r.mockHireGetHireWebsiteJobPost = f +} + +// UnMockHireGetHireWebsiteJobPost un-mock HireGetHireWebsiteJobPost method +func (r *Mock) UnMockHireGetHireWebsiteJobPost() { + r.mockHireGetHireWebsiteJobPost = nil +} + +// GetHireWebsiteJobPostReq ... +type GetHireWebsiteJobPostReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "7047318856652261676" + JobPostID string `path:"job_post_id" json:"-"` // 职位广告 ID, 可通过[获取招聘官网下的职位广告列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/list)或[搜索招聘官网下的职位广告列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/search)获取示例值: "7392894182636144946" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门资源介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: department_id可选值有: 由系统自动生成的部门 ID, ID前缀固定为 `od-`, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内, department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: job_level_id可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[「获取租户职级列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` +} + +// GetHireWebsiteJobPostResp ... +type GetHireWebsiteJobPostResp struct { + JobPost *GetHireWebsiteJobPostRespJobPost `json:"job_post,omitempty"` // 职位广告信息 +} + +// GetHireWebsiteJobPostRespJobPost ... +type GetHireWebsiteJobPostRespJobPost struct { + ID string `json:"id,omitempty"` // 职位广告 ID + Title string `json:"title,omitempty"` // 职位广告标题 + JobID string `json:"job_id,omitempty"` // 职位 ID + JobCode string `json:"job_code,omitempty"` // 职位编码 + JobExpireTime string `json:"job_expire_time,omitempty"` // 职位过期时间, 毫秒时间戳, 「null」代表「长期有效」 + JobActiveStatus int64 `json:"job_active_status,omitempty"` // 职位状态可选值有: 启用态禁用态 + JobProcessType int64 `json:"job_process_type,omitempty"` // 职位流程类型可选值有: 社招校招 + JobRecruitmentType *GetHireWebsiteJobPostRespJobPostJobRecruitmentType `json:"job_recruitment_type,omitempty"` // 职位雇佣类型, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位性质/雇佣类型(recruitment_type)枚举定义」 + JobDepartment *GetHireWebsiteJobPostRespJobPostJobDepartment `json:"job_department,omitempty"` // 职位部门 + JobType *GetHireWebsiteJobPostRespJobPostJobType `json:"job_type,omitempty"` // 职位类别, 详情请参考: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + MinJobLevel *GetHireWebsiteJobPostRespJobPostMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *GetHireWebsiteJobPostRespJobPostMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + Address *GetHireWebsiteJobPostRespJobPostAddress `json:"address,omitempty"` // 职位地址, 废弃字段, 请使用`address_list` + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: K + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: K + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + Experience int64 `json:"experience,omitempty"` // 经验可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + Headcount int64 `json:"headcount,omitempty"` // 招聘数量 + HighLightList []*GetHireWebsiteJobPostRespJobPostHighLight `json:"high_light_list,omitempty"` // 职位亮点, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位亮枚举定义」 + Description string `json:"description,omitempty"` // 职位描述 + Requirement string `json:"requirement,omitempty"` // 职位要求 + Creator *GetHireWebsiteJobPostRespJobPostCreator `json:"creator,omitempty"` // 创建人 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒级时间戳 + CustomizedDataList []*GetHireWebsiteJobPostRespJobPostCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + JobFunction *GetHireWebsiteJobPostRespJobPostJobFunction `json:"job_function,omitempty"` // 职能分类, 详情请参考: [获取职能分类列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list) + Subject *GetHireWebsiteJobPostRespJobPostSubject `json:"subject,omitempty"` // 职位项目, 详情请参考: [获取项目列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list) + AddressList []*GetHireWebsiteJobPostRespJobPostAddress `json:"address_list,omitempty"` // 职位地址列表, 详情请参考: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + TargetMajorList []*GetHireWebsiteJobPostRespJobPostTargetMajor `json:"target_major_list,omitempty"` // 目标专业 +} + +// GetHireWebsiteJobPostRespJobPostAddress ... +type GetHireWebsiteJobPostRespJobPostAddress struct { + ID string `json:"id,omitempty"` // 职位地址 ID + Name *GetHireWebsiteJobPostRespJobPostAddressName `json:"name,omitempty"` // 职位地址名称 + District *GetHireWebsiteJobPostRespJobPostAddressDistrict `json:"district,omitempty"` // 区信息 + City *GetHireWebsiteJobPostRespJobPostAddressCity `json:"city,omitempty"` // 城市信息 + State *GetHireWebsiteJobPostRespJobPostAddressState `json:"state,omitempty"` // 省信息 + Country *GetHireWebsiteJobPostRespJobPostAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// GetHireWebsiteJobPostRespJobPostAddressCity ... +type GetHireWebsiteJobPostRespJobPostAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *GetHireWebsiteJobPostRespJobPostAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressCityName ... +type GetHireWebsiteJobPostRespJobPostAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressCountry ... +type GetHireWebsiteJobPostRespJobPostAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *GetHireWebsiteJobPostRespJobPostAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressCountryName ... +type GetHireWebsiteJobPostRespJobPostAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressDistrict ... +type GetHireWebsiteJobPostRespJobPostAddressDistrict struct { + Code string `json:"code,omitempty"` // 区编码 + Name *GetHireWebsiteJobPostRespJobPostAddressDistrictName `json:"name,omitempty"` // 区名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressDistrictName ... +type GetHireWebsiteJobPostRespJobPostAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区中文名称 + EnUs string `json:"en_us,omitempty"` // 区英文名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressName ... +type GetHireWebsiteJobPostRespJobPostAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位地址中文名称 + EnUs string `json:"en_us,omitempty"` // 职位地址英文名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressState ... +type GetHireWebsiteJobPostRespJobPostAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *GetHireWebsiteJobPostRespJobPostAddressStateName `json:"name,omitempty"` // 省名称 +} + +// GetHireWebsiteJobPostRespJobPostAddressStateName ... +type GetHireWebsiteJobPostRespJobPostAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// GetHireWebsiteJobPostRespJobPostCreator ... +type GetHireWebsiteJobPostRespJobPostCreator struct { + ID string `json:"id,omitempty"` // 创建人 ID, 与入参`user_id_type`类型一致 + Name *GetHireWebsiteJobPostRespJobPostCreatorName `json:"name,omitempty"` // 创建人名称 +} + +// GetHireWebsiteJobPostRespJobPostCreatorName ... +type GetHireWebsiteJobPostRespJobPostCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人中文名称 + EnUs string `json:"en_us,omitempty"` // 创建人英文名称 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedData ... +type GetHireWebsiteJobPostRespJobPostCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请参考: [获取职位模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list) + Name *GetHireWebsiteJobPostRespJobPostCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段 + Value *GetHireWebsiteJobPostRespJobPostCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedDataName ... +type GetHireWebsiteJobPostRespJobPostCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedDataValue ... +type GetHireWebsiteJobPostRespJobPostCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *GetHireWebsiteJobPostRespJobPostCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*GetHireWebsiteJobPostRespJobPostCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *GetHireWebsiteJobPostRespJobPostCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedDataValueOption ... +type GetHireWebsiteJobPostRespJobPostCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *GetHireWebsiteJobPostRespJobPostCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedDataValueOptionName ... +type GetHireWebsiteJobPostRespJobPostCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// GetHireWebsiteJobPostRespJobPostCustomizedDataValueTimeRange ... +type GetHireWebsiteJobPostRespJobPostCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// GetHireWebsiteJobPostRespJobPostHighLight ... +type GetHireWebsiteJobPostRespJobPostHighLight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID + Name *GetHireWebsiteJobPostRespJobPostHighLightName `json:"name,omitempty"` // 职位亮点 +} + +// GetHireWebsiteJobPostRespJobPostHighLightName ... +type GetHireWebsiteJobPostRespJobPostHighLightName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位亮点中文 + EnUs string `json:"en_us,omitempty"` // 职位亮点英文 +} + +// GetHireWebsiteJobPostRespJobPostJobDepartment ... +type GetHireWebsiteJobPostRespJobPostJobDepartment struct { + ID string `json:"id,omitempty"` // 职位部门ID, 与入参中的`department_id_type`类型一致 + Name *GetHireWebsiteJobPostRespJobPostJobDepartmentName `json:"name,omitempty"` // 职位部门名称 +} + +// GetHireWebsiteJobPostRespJobPostJobDepartmentName ... +type GetHireWebsiteJobPostRespJobPostJobDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位部门中文名称 + EnUs string `json:"en_us,omitempty"` // 职位部门英文名称 +} + +// GetHireWebsiteJobPostRespJobPostJobFunction ... +type GetHireWebsiteJobPostRespJobPostJobFunction struct { + ID string `json:"id,omitempty"` // 职能分类 ID + Name *GetHireWebsiteJobPostRespJobPostJobFunctionName `json:"name,omitempty"` // 职能分类名称 +} + +// GetHireWebsiteJobPostRespJobPostJobFunctionName ... +type GetHireWebsiteJobPostRespJobPostJobFunctionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职能分类中文名称 + EnUs string `json:"en_us,omitempty"` // 职能分类英文名称 +} + +// GetHireWebsiteJobPostRespJobPostJobRecruitmentType ... +type GetHireWebsiteJobPostRespJobPostJobRecruitmentType struct { + ID string `json:"id,omitempty"` // 雇佣类型 ID + Name *GetHireWebsiteJobPostRespJobPostJobRecruitmentTypeName `json:"name,omitempty"` // 职位雇佣名称 +} + +// GetHireWebsiteJobPostRespJobPostJobRecruitmentTypeName ... +type GetHireWebsiteJobPostRespJobPostJobRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位雇佣类型中文名称 + EnUs string `json:"en_us,omitempty"` // 职位雇佣类型英文名称 +} + +// GetHireWebsiteJobPostRespJobPostJobType ... +type GetHireWebsiteJobPostRespJobPostJobType struct { + ID string `json:"id,omitempty"` // 职位类别 ID + Name *GetHireWebsiteJobPostRespJobPostJobTypeName `json:"name,omitempty"` // 职位类别名称 +} + +// GetHireWebsiteJobPostRespJobPostJobTypeName ... +type GetHireWebsiteJobPostRespJobPostJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类别中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类别英文名称 +} + +// GetHireWebsiteJobPostRespJobPostMaxJobLevel ... +type GetHireWebsiteJobPostRespJobPostMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID, 与入参 `job_level_id_type `类型一致 + Name *GetHireWebsiteJobPostRespJobPostMaxJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// GetHireWebsiteJobPostRespJobPostMaxJobLevelName ... +type GetHireWebsiteJobPostRespJobPostMaxJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// GetHireWebsiteJobPostRespJobPostMinJobLevel ... +type GetHireWebsiteJobPostRespJobPostMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID, 与入参`job_level_id_type `类型一致 + Name *GetHireWebsiteJobPostRespJobPostMinJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// GetHireWebsiteJobPostRespJobPostMinJobLevelName ... +type GetHireWebsiteJobPostRespJobPostMinJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// GetHireWebsiteJobPostRespJobPostSubject ... +type GetHireWebsiteJobPostRespJobPostSubject struct { + ID string `json:"id,omitempty"` // 职位项目 ID + Name *GetHireWebsiteJobPostRespJobPostSubjectName `json:"name,omitempty"` // 职位项目名称 +} + +// GetHireWebsiteJobPostRespJobPostSubjectName ... +type GetHireWebsiteJobPostRespJobPostSubjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位项目中文名称 + EnUs string `json:"en_us,omitempty"` // 职位项目英文名称 +} + +// GetHireWebsiteJobPostRespJobPostTargetMajor ... +type GetHireWebsiteJobPostRespJobPostTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业 ID, 「0」 为不限专业, 其他情况可参考[根据主数据编码批量获取专业](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get) + Name *GetHireWebsiteJobPostRespJobPostTargetMajorName `json:"name,omitempty"` // 目标专业名称 +} + +// GetHireWebsiteJobPostRespJobPostTargetMajorName ... +type GetHireWebsiteJobPostRespJobPostTargetMajorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 目标专业中文名称 + EnUs string `json:"en_us,omitempty"` // 目标专业英文名称 +} + +// getHireWebsiteJobPostResp ... +type getHireWebsiteJobPostResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetHireWebsiteJobPostResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_job_post_list.go b/api_hire_website_job_post_list.go new file mode 100644 index 00000000..998e1a19 --- /dev/null +++ b/api_hire_website_job_post_list.go @@ -0,0 +1,386 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireWebsiteJobPost 获取招聘官网下的职位信息列表。 +// +// ## 注意事项 +// 该接口暂不支持获取自定义数据。你可使用「获取招聘官网下职位广告详情」接口获取。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/list-2 +func (r *HireService) ListHireWebsiteJobPost(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) { + if r.cli.mock.mockHireListHireWebsiteJobPost != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireWebsiteJobPost mock enable") + return r.cli.mock.mockHireListHireWebsiteJobPost(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireWebsiteJobPost", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/job_posts", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireWebsiteJobPostResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireWebsiteJobPost mock HireListHireWebsiteJobPost method +func (r *Mock) MockHireListHireWebsiteJobPost(f func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error)) { + r.mockHireListHireWebsiteJobPost = f +} + +// UnMockHireListHireWebsiteJobPost un-mock HireListHireWebsiteJobPost method +func (r *Mock) UnMockHireListHireWebsiteJobPost() { + r.mockHireListHireWebsiteJobPost = nil +} + +// ListHireWebsiteJobPostReq ... +type ListHireWebsiteJobPostReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 通过[「获取招聘官网列表」](https://open.larkoffice.com/document/server-docs/hire-v1/get-candidates/website/list)接口获得示例值: "7368811146881042700" + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量, 最大10, 不传则默认值为10示例值: 10 最大值: `10` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: "department_id"可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: "people_admin_job_level_id"可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + UpdateStartTime *string `query:"update_start_time" json:"-"` // 最早更新时间, 毫秒级时间戳示例值: 1618500278663 + UpdateEndTime *string `query:"update_end_time" json:"-"` // 最晚更新时间, 毫秒级时间戳示例值: 1618500278663 + CreateStartTime *string `query:"create_start_time" json:"-"` // 最早创建时间, 毫秒级时间戳示例值: 1618500278663 + CreateEndTime *string `query:"create_end_time" json:"-"` // 最晚创建时间, 毫秒级时间戳示例值: 1618500278663 +} + +// ListHireWebsiteJobPostResp ... +type ListHireWebsiteJobPostResp struct { + Items []*ListHireWebsiteJobPostRespItem `json:"items,omitempty"` // 列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireWebsiteJobPostRespItem ... +type ListHireWebsiteJobPostRespItem struct { + ID string `json:"id,omitempty"` // 职位广告 ID + Title string `json:"title,omitempty"` // 标题 + JobID string `json:"job_id,omitempty"` // 职位 ID + JobCode string `json:"job_code,omitempty"` // 职位编码 + JobExpireTime string `json:"job_expire_time,omitempty"` // 职位过期时间, 「null」代表「长期有效」, 毫秒级时间戳 + JobActiveStatus int64 `json:"job_active_status,omitempty"` // 职位状态可选值有: 启用态禁用态 + JobProcessType int64 `json:"job_process_type,omitempty"` // 职位流程类型可选值有: 社招校招 + JobRecruitmentType *ListHireWebsiteJobPostRespItemJobRecruitmentType `json:"job_recruitment_type,omitempty"` // 职位雇佣类型, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位性质/雇佣类型(recruitment_type)枚举定义」 + JobDepartment *ListHireWebsiteJobPostRespItemJobDepartment `json:"job_department,omitempty"` // 职位部门 + JobType *ListHireWebsiteJobPostRespItemJobType `json:"job_type,omitempty"` // 职位类型, 详情请参考: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + MinJobLevel *ListHireWebsiteJobPostRespItemMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *ListHireWebsiteJobPostRespItemMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + Address []*ListHireWebsiteJobPostRespItemAddre `json:"address,omitempty"` // 职位地址, 详情请参考: [获取地址列表](https://open.larkoffice.com/document/server-docs/hire-v1/recruitment-related-configuration/location/list) + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: 千 + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: 千 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + Experience int64 `json:"experience,omitempty"` // 经验可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + Headcount int64 `json:"headcount,omitempty"` // 数量 + HighLightList []*ListHireWebsiteJobPostRespItemHighLight `json:"high_light_list,omitempty"` // 职位亮点, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位亮枚举定义」 + Description string `json:"description,omitempty"` // 职位描述 + Requirement string `json:"requirement,omitempty"` // 职位要求 + Creator *ListHireWebsiteJobPostRespItemCreator `json:"creator,omitempty"` // 创建人 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒级时间戳 + CustomizedDataList []*ListHireWebsiteJobPostRespItemCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + AddressList []*ListHireWebsiteJobPostRespItemAddress `json:"address_list,omitempty"` // 职位地址列表, 详情请参考: [获取地址列表](https://open.larkoffice.com/document/server-docs/hire-v1/recruitment-related-configuration/location/list) + TargetMajorList []*ListHireWebsiteJobPostRespItemTargetMajor `json:"target_major_list,omitempty"` // 目标专业 +} + +// ListHireWebsiteJobPostRespItemAddre ... +type ListHireWebsiteJobPostRespItemAddre struct { + ID string `json:"id,omitempty"` // 职位地址 ID + Name *ListHireWebsiteJobPostRespItemAddreName `json:"name,omitempty"` // 职位地址名称 + District *ListHireWebsiteJobPostRespItemAddreDistrict `json:"district,omitempty"` // 区域信息 + City *ListHireWebsiteJobPostRespItemAddreCity `json:"city,omitempty"` // 城市信息 + State *ListHireWebsiteJobPostRespItemAddreState `json:"state,omitempty"` // 省信息 + Country *ListHireWebsiteJobPostRespItemAddreCountry `json:"country,omitempty"` // 国家信息 +} + +// ListHireWebsiteJobPostRespItemAddreCity ... +type ListHireWebsiteJobPostRespItemAddreCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *ListHireWebsiteJobPostRespItemAddreCityName `json:"name,omitempty"` // 城市名称 +} + +// ListHireWebsiteJobPostRespItemAddreCityName ... +type ListHireWebsiteJobPostRespItemAddreCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// ListHireWebsiteJobPostRespItemAddreCountry ... +type ListHireWebsiteJobPostRespItemAddreCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *ListHireWebsiteJobPostRespItemAddreCountryName `json:"name,omitempty"` // 国家名称 +} + +// ListHireWebsiteJobPostRespItemAddreCountryName ... +type ListHireWebsiteJobPostRespItemAddreCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// ListHireWebsiteJobPostRespItemAddreDistrict ... +type ListHireWebsiteJobPostRespItemAddreDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *ListHireWebsiteJobPostRespItemAddreDistrictName `json:"name,omitempty"` // 区域名称 +} + +// ListHireWebsiteJobPostRespItemAddreDistrictName ... +type ListHireWebsiteJobPostRespItemAddreDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// ListHireWebsiteJobPostRespItemAddreName ... +type ListHireWebsiteJobPostRespItemAddreName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位地址中文名称 + EnUs string `json:"en_us,omitempty"` // 职位地址英文名称 +} + +// ListHireWebsiteJobPostRespItemAddreState ... +type ListHireWebsiteJobPostRespItemAddreState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *ListHireWebsiteJobPostRespItemAddreStateName `json:"name,omitempty"` // 省名称 +} + +// ListHireWebsiteJobPostRespItemAddreStateName ... +type ListHireWebsiteJobPostRespItemAddreStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// ListHireWebsiteJobPostRespItemAddress ... +type ListHireWebsiteJobPostRespItemAddress struct { + ID string `json:"id,omitempty"` // 职位地址ID + Name *ListHireWebsiteJobPostRespItemAddressName `json:"name,omitempty"` // 职位地址名称 + District *ListHireWebsiteJobPostRespItemAddressDistrict `json:"district,omitempty"` // 区域信息 + City *ListHireWebsiteJobPostRespItemAddressCity `json:"city,omitempty"` // 城市信息 + State *ListHireWebsiteJobPostRespItemAddressState `json:"state,omitempty"` // 省信息 + Country *ListHireWebsiteJobPostRespItemAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// ListHireWebsiteJobPostRespItemAddressCity ... +type ListHireWebsiteJobPostRespItemAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *ListHireWebsiteJobPostRespItemAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// ListHireWebsiteJobPostRespItemAddressCityName ... +type ListHireWebsiteJobPostRespItemAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// ListHireWebsiteJobPostRespItemAddressCountry ... +type ListHireWebsiteJobPostRespItemAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *ListHireWebsiteJobPostRespItemAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// ListHireWebsiteJobPostRespItemAddressCountryName ... +type ListHireWebsiteJobPostRespItemAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// ListHireWebsiteJobPostRespItemAddressDistrict ... +type ListHireWebsiteJobPostRespItemAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *ListHireWebsiteJobPostRespItemAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// ListHireWebsiteJobPostRespItemAddressDistrictName ... +type ListHireWebsiteJobPostRespItemAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// ListHireWebsiteJobPostRespItemAddressName ... +type ListHireWebsiteJobPostRespItemAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位地址中文名称 + EnUs string `json:"en_us,omitempty"` // 职位地址英文名称 +} + +// ListHireWebsiteJobPostRespItemAddressState ... +type ListHireWebsiteJobPostRespItemAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *ListHireWebsiteJobPostRespItemAddressStateName `json:"name,omitempty"` // 省名称 +} + +// ListHireWebsiteJobPostRespItemAddressStateName ... +type ListHireWebsiteJobPostRespItemAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// ListHireWebsiteJobPostRespItemCreator ... +type ListHireWebsiteJobPostRespItemCreator struct { + ID string `json:"id,omitempty"` // 创建人ID, 与入参`user_id_type`类型一致 + Name *ListHireWebsiteJobPostRespItemCreatorName `json:"name,omitempty"` // 创建人名称 +} + +// ListHireWebsiteJobPostRespItemCreatorName ... +type ListHireWebsiteJobPostRespItemCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人名称中文名称 + EnUs string `json:"en_us,omitempty"` // 创建人名称英文名称 +} + +// ListHireWebsiteJobPostRespItemCustomizedData ... +type ListHireWebsiteJobPostRespItemCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请参考: [获取职位模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list) + Name *ListHireWebsiteJobPostRespItemCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段 + Value *ListHireWebsiteJobPostRespItemCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// ListHireWebsiteJobPostRespItemCustomizedDataName ... +type ListHireWebsiteJobPostRespItemCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// ListHireWebsiteJobPostRespItemCustomizedDataValue ... +type ListHireWebsiteJobPostRespItemCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *ListHireWebsiteJobPostRespItemCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*ListHireWebsiteJobPostRespItemCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *ListHireWebsiteJobPostRespItemCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// ListHireWebsiteJobPostRespItemCustomizedDataValueOption ... +type ListHireWebsiteJobPostRespItemCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *ListHireWebsiteJobPostRespItemCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// ListHireWebsiteJobPostRespItemCustomizedDataValueOptionName ... +type ListHireWebsiteJobPostRespItemCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// ListHireWebsiteJobPostRespItemCustomizedDataValueTimeRange ... +type ListHireWebsiteJobPostRespItemCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// ListHireWebsiteJobPostRespItemHighLight ... +type ListHireWebsiteJobPostRespItemHighLight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID + Name *ListHireWebsiteJobPostRespItemHighLightName `json:"name,omitempty"` // 职位亮点名称 +} + +// ListHireWebsiteJobPostRespItemHighLightName ... +type ListHireWebsiteJobPostRespItemHighLightName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位亮点中文名称 + EnUs string `json:"en_us,omitempty"` // 职位亮点英文名称 +} + +// ListHireWebsiteJobPostRespItemJobDepartment ... +type ListHireWebsiteJobPostRespItemJobDepartment struct { + ID string `json:"id,omitempty"` // 职位部门ID, 与入参中的`department_id_type`类型一致 + Name *ListHireWebsiteJobPostRespItemJobDepartmentName `json:"name,omitempty"` // 职位部门名称 +} + +// ListHireWebsiteJobPostRespItemJobDepartmentName ... +type ListHireWebsiteJobPostRespItemJobDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位部门中文名称 + EnUs string `json:"en_us,omitempty"` // 职位部门英文名称 +} + +// ListHireWebsiteJobPostRespItemJobRecruitmentType ... +type ListHireWebsiteJobPostRespItemJobRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位雇佣类型 ID + Name *ListHireWebsiteJobPostRespItemJobRecruitmentTypeName `json:"name,omitempty"` // 职位雇佣类型名称 +} + +// ListHireWebsiteJobPostRespItemJobRecruitmentTypeName ... +type ListHireWebsiteJobPostRespItemJobRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位雇佣类型中文名称 + EnUs string `json:"en_us,omitempty"` // 职位雇佣类型英文名称 +} + +// ListHireWebsiteJobPostRespItemJobType ... +type ListHireWebsiteJobPostRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类型ID + Name *ListHireWebsiteJobPostRespItemJobTypeName `json:"name,omitempty"` // 职位类型名称 +} + +// ListHireWebsiteJobPostRespItemJobTypeName ... +type ListHireWebsiteJobPostRespItemJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类型中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类型英文名称 +} + +// ListHireWebsiteJobPostRespItemMaxJobLevel ... +type ListHireWebsiteJobPostRespItemMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID, 与入参`job_level_id_type` 类型一致 + Name *ListHireWebsiteJobPostRespItemMaxJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// ListHireWebsiteJobPostRespItemMaxJobLevelName ... +type ListHireWebsiteJobPostRespItemMaxJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireWebsiteJobPostRespItemMinJobLevel ... +type ListHireWebsiteJobPostRespItemMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID, 与入参`job_level_id_type` 类型一致 + Name *ListHireWebsiteJobPostRespItemMinJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// ListHireWebsiteJobPostRespItemMinJobLevelName ... +type ListHireWebsiteJobPostRespItemMinJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// ListHireWebsiteJobPostRespItemTargetMajor ... +type ListHireWebsiteJobPostRespItemTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业ID, 「0」 为不限专业, 其他情况可通过[「根据主数据编码批量获取专业」](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get)获取专业详情 + Name *ListHireWebsiteJobPostRespItemTargetMajorName `json:"name,omitempty"` // 目标专业名称 +} + +// ListHireWebsiteJobPostRespItemTargetMajorName ... +type ListHireWebsiteJobPostRespItemTargetMajorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 目标专业中文名称 + EnUs string `json:"en_us,omitempty"` // 目标专业英文名称 +} + +// listHireWebsiteJobPostResp ... +type listHireWebsiteJobPostResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireWebsiteJobPostResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_job_post_search.go b/api_hire_website_job_post_search.go new file mode 100644 index 00000000..05e2b4d6 --- /dev/null +++ b/api_hire_website_job_post_search.go @@ -0,0 +1,414 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchHireWebsiteJobPost 搜索招聘官网下的职位列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-job_post/search +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/search +func (r *HireService) SearchHireWebsiteJobPost(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) { + if r.cli.mock.mockHireSearchHireWebsiteJobPost != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#SearchHireWebsiteJobPost mock enable") + return r.cli.mock.mockHireSearchHireWebsiteJobPost(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "SearchHireWebsiteJobPost", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/job_posts/search", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(searchHireWebsiteJobPostResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireSearchHireWebsiteJobPost mock HireSearchHireWebsiteJobPost method +func (r *Mock) MockHireSearchHireWebsiteJobPost(f func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error)) { + r.mockHireSearchHireWebsiteJobPost = f +} + +// UnMockHireSearchHireWebsiteJobPost un-mock HireSearchHireWebsiteJobPost method +func (r *Mock) UnMockHireSearchHireWebsiteJobPost() { + r.mockHireSearchHireWebsiteJobPost = nil +} + +// SearchHireWebsiteJobPostReq ... +type SearchHireWebsiteJobPostReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "7098921721789513756" + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量, 最大10, 不传则默认值为10示例值: 10 最大值: `10` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)。示例值: "department_id"可选值有: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。默认值: `open_department_id` + JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型示例值: "job_level_id_type"可选值有: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。「飞书管理后台」适用的职级 ID, 通过[获取租户职级列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/job_level/list)接口获取默认值: `people_admin_job_level_id` + JobTypeIDList []string `json:"job_type_id_list,omitempty"` // 职位类别列表, 详情请参考: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list)示例值: ["6791698585114724616"] 最大长度: `100` + CityCodeList []string `json:"city_code_list,omitempty"` // 职位城市列表, 详情请参考: [查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)示例值: ["CN_1"] 最大长度: `100` + JobFunctionIDList []string `json:"job_function_id_list,omitempty"` // 职能分类列表, 详情请参考: [获取职能分类列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list)示例值: ["101"] 最大长度: `100` + SubjectIDList []string `json:"subject_id_list,omitempty"` // 职位项目列表, 详情请参考: [获取项目列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list)示例值: ["7220407512049240376"] 最大长度: `100` + Keyword *string `json:"keyword,omitempty"` // 关键字示例值: "HR" + UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间, 毫秒级时间戳示例值: "1618500278663" + UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间, 毫秒级时间戳示例值: "1618500278663" + CreateStartTime *string `json:"create_start_time,omitempty"` // 最早创建时间, 毫秒级时间戳示例值: "1618500278663" + CreateEndTime *string `json:"create_end_time,omitempty"` // 最晚创建时间, 毫秒级时间戳示例值: "1618500278663" +} + +// SearchHireWebsiteJobPostResp ... +type SearchHireWebsiteJobPostResp struct { + Items []*SearchHireWebsiteJobPostRespItem `json:"items,omitempty"` // 列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// SearchHireWebsiteJobPostRespItem ... +type SearchHireWebsiteJobPostRespItem struct { + ID string `json:"id,omitempty"` // 职位广告 ID + Title string `json:"title,omitempty"` // 职位名称 + JobID string `json:"job_id,omitempty"` // 职位 ID, 详情可参考: [获取职位详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job/get_detail) + JobCode string `json:"job_code,omitempty"` // 职位编码 + JobExpireTime string `json:"job_expire_time,omitempty"` // 职位过期时间, 「null」代表「长期有效」, 毫秒级时间戳 + JobActiveStatus int64 `json:"job_active_status,omitempty"` // 职位状态可选值有: 启用态禁用态 + JobProcessType int64 `json:"job_process_type,omitempty"` // 职位流程类型可选值有: 社招校招 + JobRecruitmentType *SearchHireWebsiteJobPostRespItemJobRecruitmentType `json:"job_recruitment_type,omitempty"` // 职位雇佣类型, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位性质/雇佣类型(recruitment_type)枚举定义」 + JobDepartment *SearchHireWebsiteJobPostRespItemJobDepartment `json:"job_department,omitempty"` // 职位部门 + JobType *SearchHireWebsiteJobPostRespItemJobType `json:"job_type,omitempty"` // 职位类别, 详情请参考: [获取职位类别列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_type/list) + MinJobLevel *SearchHireWebsiteJobPostRespItemMinJobLevel `json:"min_job_level,omitempty"` // 最低职级 + MaxJobLevel *SearchHireWebsiteJobPostRespItemMaxJobLevel `json:"max_job_level,omitempty"` // 最高职级 + Address []*SearchHireWebsiteJobPostRespItemAddre `json:"address,omitempty"` // 职位地址, 详情请参考: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + MinSalary string `json:"min_salary,omitempty"` // 月薪范围-最低薪资, 单位: 千 + MaxSalary string `json:"max_salary,omitempty"` // 月薪范围-最高薪资, 单位: 千 + RequiredDegree int64 `json:"required_degree,omitempty"` // 学历要求可选值有: 小学及以上初中及以上专职及以上高中及以上大专及以上本科及以上硕士及以上博士及以上不限 + Experience int64 `json:"experience,omitempty"` // 经验可选值有: 不限应届毕业生1年以下1-3年3-5年5-7年7-10年10年以上 + Headcount int64 `json:"headcount,omitempty"` // 数量 + HighLightList []*SearchHireWebsiteJobPostRespItemHighLight `json:"high_light_list,omitempty"` // 职位亮点, 详情请参考: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「职位亮枚举定义」 + Description string `json:"description,omitempty"` // 职位描述 + Requirement string `json:"requirement,omitempty"` // 职位要求 + Creator *SearchHireWebsiteJobPostRespItemCreator `json:"creator,omitempty"` // 创建人 + CreateTime string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 修改时间, 毫秒级时间戳 + CustomizedDataList []*SearchHireWebsiteJobPostRespItemCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段 + JobFunction *SearchHireWebsiteJobPostRespItemJobFunction `json:"job_function,omitempty"` // 职能分类, 详情请参考: [获取职能分类列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_function/list) + Subject *SearchHireWebsiteJobPostRespItemSubject `json:"subject,omitempty"` // 职位项目, 详情请参考: [获取项目列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/subject/list) + AddressList []*SearchHireWebsiteJobPostRespItemAddress `json:"address_list,omitempty"` // 职位地址列表, 详情请参考: [获取地址列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/list) + TargetMajorList []*SearchHireWebsiteJobPostRespItemTargetMajor `json:"target_major_list,omitempty"` // 目标专业 +} + +// SearchHireWebsiteJobPostRespItemAddre ... +type SearchHireWebsiteJobPostRespItemAddre struct { + ID string `json:"id,omitempty"` // 职位地址 ID + Name *SearchHireWebsiteJobPostRespItemAddreName `json:"name,omitempty"` // 职位地址名称 + District *SearchHireWebsiteJobPostRespItemAddreDistrict `json:"district,omitempty"` // 区域信息 + City *SearchHireWebsiteJobPostRespItemAddreCity `json:"city,omitempty"` // 城市信息 + State *SearchHireWebsiteJobPostRespItemAddreState `json:"state,omitempty"` // 省信息 + Country *SearchHireWebsiteJobPostRespItemAddreCountry `json:"country,omitempty"` // 国家信息 +} + +// SearchHireWebsiteJobPostRespItemAddreCity ... +type SearchHireWebsiteJobPostRespItemAddreCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *SearchHireWebsiteJobPostRespItemAddreCityName `json:"name,omitempty"` // 城市名称 +} + +// SearchHireWebsiteJobPostRespItemAddreCityName ... +type SearchHireWebsiteJobPostRespItemAddreCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddreCountry ... +type SearchHireWebsiteJobPostRespItemAddreCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *SearchHireWebsiteJobPostRespItemAddreCountryName `json:"name,omitempty"` // 国家名称 +} + +// SearchHireWebsiteJobPostRespItemAddreCountryName ... +type SearchHireWebsiteJobPostRespItemAddreCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddreDistrict ... +type SearchHireWebsiteJobPostRespItemAddreDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *SearchHireWebsiteJobPostRespItemAddreDistrictName `json:"name,omitempty"` // 区域名称 +} + +// SearchHireWebsiteJobPostRespItemAddreDistrictName ... +type SearchHireWebsiteJobPostRespItemAddreDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddreName ... +type SearchHireWebsiteJobPostRespItemAddreName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位地址中文名称 + EnUs string `json:"en_us,omitempty"` // 职位地址英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddreState ... +type SearchHireWebsiteJobPostRespItemAddreState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *SearchHireWebsiteJobPostRespItemAddreStateName `json:"name,omitempty"` // 省名称 +} + +// SearchHireWebsiteJobPostRespItemAddreStateName ... +type SearchHireWebsiteJobPostRespItemAddreStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddress ... +type SearchHireWebsiteJobPostRespItemAddress struct { + ID string `json:"id,omitempty"` // 职位地址ID + Name *SearchHireWebsiteJobPostRespItemAddressName `json:"name,omitempty"` // 职位地址名称 + District *SearchHireWebsiteJobPostRespItemAddressDistrict `json:"district,omitempty"` // 区信息 + City *SearchHireWebsiteJobPostRespItemAddressCity `json:"city,omitempty"` // 城市信息 + State *SearchHireWebsiteJobPostRespItemAddressState `json:"state,omitempty"` // 省信息 + Country *SearchHireWebsiteJobPostRespItemAddressCountry `json:"country,omitempty"` // 国家信息 +} + +// SearchHireWebsiteJobPostRespItemAddressCity ... +type SearchHireWebsiteJobPostRespItemAddressCity struct { + Code string `json:"code,omitempty"` // 城市编码 + Name *SearchHireWebsiteJobPostRespItemAddressCityName `json:"name,omitempty"` // 城市名称 +} + +// SearchHireWebsiteJobPostRespItemAddressCityName ... +type SearchHireWebsiteJobPostRespItemAddressCityName struct { + ZhCn string `json:"zh_cn,omitempty"` // 城市中文名称 + EnUs string `json:"en_us,omitempty"` // 城市英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddressCountry ... +type SearchHireWebsiteJobPostRespItemAddressCountry struct { + Code string `json:"code,omitempty"` // 国家编码 + Name *SearchHireWebsiteJobPostRespItemAddressCountryName `json:"name,omitempty"` // 国家名称 +} + +// SearchHireWebsiteJobPostRespItemAddressCountryName ... +type SearchHireWebsiteJobPostRespItemAddressCountryName struct { + ZhCn string `json:"zh_cn,omitempty"` // 国家中文名称 + EnUs string `json:"en_us,omitempty"` // 国家英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddressDistrict ... +type SearchHireWebsiteJobPostRespItemAddressDistrict struct { + Code string `json:"code,omitempty"` // 区域编码 + Name *SearchHireWebsiteJobPostRespItemAddressDistrictName `json:"name,omitempty"` // 区域名称 +} + +// SearchHireWebsiteJobPostRespItemAddressDistrictName ... +type SearchHireWebsiteJobPostRespItemAddressDistrictName struct { + ZhCn string `json:"zh_cn,omitempty"` // 区域中文名称 + EnUs string `json:"en_us,omitempty"` // 区域英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddressName ... +type SearchHireWebsiteJobPostRespItemAddressName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位地址中文名称 + EnUs string `json:"en_us,omitempty"` // 职位地址英文名称 +} + +// SearchHireWebsiteJobPostRespItemAddressState ... +type SearchHireWebsiteJobPostRespItemAddressState struct { + Code string `json:"code,omitempty"` // 省编码 + Name *SearchHireWebsiteJobPostRespItemAddressStateName `json:"name,omitempty"` // 省名称 +} + +// SearchHireWebsiteJobPostRespItemAddressStateName ... +type SearchHireWebsiteJobPostRespItemAddressStateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 省中文名称 + EnUs string `json:"en_us,omitempty"` // 省英文名称 +} + +// SearchHireWebsiteJobPostRespItemCreator ... +type SearchHireWebsiteJobPostRespItemCreator struct { + ID string `json:"id,omitempty"` // 创建人 ID, 与入参`user_id_type`类型一致 + Name *SearchHireWebsiteJobPostRespItemCreatorName `json:"name,omitempty"` // 创建人名称 +} + +// SearchHireWebsiteJobPostRespItemCreatorName ... +type SearchHireWebsiteJobPostRespItemCreatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 创建人中文名称 + EnUs string `json:"en_us,omitempty"` // 创建人英文名称 +} + +// SearchHireWebsiteJobPostRespItemCustomizedData ... +type SearchHireWebsiteJobPostRespItemCustomizedData struct { + ObjectID string `json:"object_id,omitempty"` // 自定义字段 ID, 详情请参考: [获取职位模板](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_schema/list) + Name *SearchHireWebsiteJobPostRespItemCustomizedDataName `json:"name,omitempty"` // 字段名称 + ObjectType int64 `json:"object_type,omitempty"` // 字段类型可选值有: 单行文本多行文本单选多选日期月份选择年份选择时间段数字默认字段 + Value *SearchHireWebsiteJobPostRespItemCustomizedDataValue `json:"value,omitempty"` // 自定义字段值 +} + +// SearchHireWebsiteJobPostRespItemCustomizedDataName ... +type SearchHireWebsiteJobPostRespItemCustomizedDataName struct { + ZhCn string `json:"zh_cn,omitempty"` // 字段中文名称 + EnUs string `json:"en_us,omitempty"` // 字段英文名称 +} + +// SearchHireWebsiteJobPostRespItemCustomizedDataValue ... +type SearchHireWebsiteJobPostRespItemCustomizedDataValue struct { + Content string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时, 从此字段取值 + Option *SearchHireWebsiteJobPostRespItemCustomizedDataValueOption `json:"option,omitempty"` // 当字段类型为单选时, 从此字段取值 + OptionList []*SearchHireWebsiteJobPostRespItemCustomizedDataValueOption `json:"option_list,omitempty"` // 当字段类型为多选时, 从此字段取值 + TimeRange *SearchHireWebsiteJobPostRespItemCustomizedDataValueTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时, 从此字段取值 + Time string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时, 从此字段取值, 该字段是毫秒级时间戳 + Number string `json:"number,omitempty"` // 当字段类型为数字时, 从此字段取值 +} + +// SearchHireWebsiteJobPostRespItemCustomizedDataValueOption ... +type SearchHireWebsiteJobPostRespItemCustomizedDataValueOption struct { + Key string `json:"key,omitempty"` // 选项 ID + Name *SearchHireWebsiteJobPostRespItemCustomizedDataValueOptionName `json:"name,omitempty"` // 选项名称 +} + +// SearchHireWebsiteJobPostRespItemCustomizedDataValueOptionName ... +type SearchHireWebsiteJobPostRespItemCustomizedDataValueOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 选项中文名称 + EnUs string `json:"en_us,omitempty"` // 选项英文名称 +} + +// SearchHireWebsiteJobPostRespItemCustomizedDataValueTimeRange ... +type SearchHireWebsiteJobPostRespItemCustomizedDataValueTimeRange struct { + StartTime string `json:"start_time,omitempty"` // 开始时间, 毫秒级时间戳 + EndTime string `json:"end_time,omitempty"` // 结束时间, 毫秒级时间戳 +} + +// SearchHireWebsiteJobPostRespItemHighLight ... +type SearchHireWebsiteJobPostRespItemHighLight struct { + ID string `json:"id,omitempty"` // 职位亮点 ID + Name *SearchHireWebsiteJobPostRespItemHighLightName `json:"name,omitempty"` // 职位亮点名称 +} + +// SearchHireWebsiteJobPostRespItemHighLightName ... +type SearchHireWebsiteJobPostRespItemHighLightName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位亮点中文名称 + EnUs string `json:"en_us,omitempty"` // 职位亮点英文 +} + +// SearchHireWebsiteJobPostRespItemJobDepartment ... +type SearchHireWebsiteJobPostRespItemJobDepartment struct { + ID string `json:"id,omitempty"` // 职位部门ID, 与入参中的`department_id_type`类型一致 + Name *SearchHireWebsiteJobPostRespItemJobDepartmentName `json:"name,omitempty"` // 职位部门名称 +} + +// SearchHireWebsiteJobPostRespItemJobDepartmentName ... +type SearchHireWebsiteJobPostRespItemJobDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位部门中文名称 + EnUs string `json:"en_us,omitempty"` // 职位部门英文名称 +} + +// SearchHireWebsiteJobPostRespItemJobFunction ... +type SearchHireWebsiteJobPostRespItemJobFunction struct { + ID string `json:"id,omitempty"` // 职能分类 ID + Name *SearchHireWebsiteJobPostRespItemJobFunctionName `json:"name,omitempty"` // 职能分类名称 +} + +// SearchHireWebsiteJobPostRespItemJobFunctionName ... +type SearchHireWebsiteJobPostRespItemJobFunctionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职能分类中文名称 + EnUs string `json:"en_us,omitempty"` // 职能分类英文名称 +} + +// SearchHireWebsiteJobPostRespItemJobRecruitmentType ... +type SearchHireWebsiteJobPostRespItemJobRecruitmentType struct { + ID string `json:"id,omitempty"` // 职位雇佣类型 ID + Name *SearchHireWebsiteJobPostRespItemJobRecruitmentTypeName `json:"name,omitempty"` // 职位雇佣类型名称 +} + +// SearchHireWebsiteJobPostRespItemJobRecruitmentTypeName ... +type SearchHireWebsiteJobPostRespItemJobRecruitmentTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位雇佣类型中文 + EnUs string `json:"en_us,omitempty"` // 职位雇佣类型英文 +} + +// SearchHireWebsiteJobPostRespItemJobType ... +type SearchHireWebsiteJobPostRespItemJobType struct { + ID string `json:"id,omitempty"` // 职位类别ID + Name *SearchHireWebsiteJobPostRespItemJobTypeName `json:"name,omitempty"` // 职位类别名称 +} + +// SearchHireWebsiteJobPostRespItemJobTypeName ... +type SearchHireWebsiteJobPostRespItemJobTypeName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位类型中文名称 + EnUs string `json:"en_us,omitempty"` // 职位类型英文名称 +} + +// SearchHireWebsiteJobPostRespItemMaxJobLevel ... +type SearchHireWebsiteJobPostRespItemMaxJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID, 与入参 `job_level_id_type `类型一致 + Name *SearchHireWebsiteJobPostRespItemMaxJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// SearchHireWebsiteJobPostRespItemMaxJobLevelName ... +type SearchHireWebsiteJobPostRespItemMaxJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// SearchHireWebsiteJobPostRespItemMinJobLevel ... +type SearchHireWebsiteJobPostRespItemMinJobLevel struct { + ID string `json:"id,omitempty"` // 职级ID, 与入参`job_level_id_type `类型一致 + Name *SearchHireWebsiteJobPostRespItemMinJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// SearchHireWebsiteJobPostRespItemMinJobLevelName ... +type SearchHireWebsiteJobPostRespItemMinJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职级中文名称 + EnUs string `json:"en_us,omitempty"` // 职级英文名称 +} + +// SearchHireWebsiteJobPostRespItemSubject ... +type SearchHireWebsiteJobPostRespItemSubject struct { + ID string `json:"id,omitempty"` // 职位项目 ID + Name *SearchHireWebsiteJobPostRespItemSubjectName `json:"name,omitempty"` // 职位项目名称 +} + +// SearchHireWebsiteJobPostRespItemSubjectName ... +type SearchHireWebsiteJobPostRespItemSubjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 职位项目中文名称 + EnUs string `json:"en_us,omitempty"` // 职位项目英文名称 +} + +// SearchHireWebsiteJobPostRespItemTargetMajor ... +type SearchHireWebsiteJobPostRespItemTargetMajor struct { + ID string `json:"id,omitempty"` // 目标专业 ID, 「0」 为不限专业, 其他情况可参考[根据主数据编码批量获取专业](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_major/get) + Name *SearchHireWebsiteJobPostRespItemTargetMajorName `json:"name,omitempty"` // 目标专业名称 +} + +// SearchHireWebsiteJobPostRespItemTargetMajorName ... +type SearchHireWebsiteJobPostRespItemTargetMajorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 目标专业中文名称 + EnUs string `json:"en_us,omitempty"` // 目标专业英文名称 +} + +// searchHireWebsiteJobPostResp ... +type searchHireWebsiteJobPostResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchHireWebsiteJobPostResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_list.go b/api_hire_website_list.go new file mode 100644 index 00000000..78bdea6b --- /dev/null +++ b/api_hire_website_list.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListHireWebsite 获取招聘官网列表, 返回信息包括官网名称、官网ID、招聘渠道ID等。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/list +func (r *HireService) ListHireWebsite(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) { + if r.cli.mock.mockHireListHireWebsite != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#ListHireWebsite mock enable") + return r.cli.mock.mockHireListHireWebsite(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "ListHireWebsite", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listHireWebsiteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireListHireWebsite mock HireListHireWebsite method +func (r *Mock) MockHireListHireWebsite(f func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error)) { + r.mockHireListHireWebsite = f +} + +// UnMockHireListHireWebsite un-mock HireListHireWebsite method +func (r *Mock) UnMockHireListHireWebsite() { + r.mockHireListHireWebsite = nil +} + +// ListHireWebsiteReq ... +type ListHireWebsiteReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ[ + PageSize *int64 `query:"page_size" json:"-"` // 每页获取记录数量 默认值 : 10示例值: 10 最大值: `10` +} + +// ListHireWebsiteResp ... +type ListHireWebsiteResp struct { + Items []*ListHireWebsiteRespItem `json:"items,omitempty"` // 官网列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListHireWebsiteRespItem ... +type ListHireWebsiteRespItem struct { + ID string `json:"id,omitempty"` // 官网ID + Name *ListHireWebsiteRespItemName `json:"name,omitempty"` // 官网名称 + ProcessTypeList []int64 `json:"process_type_list,omitempty"` // 流程类型- 1: 社招- 2: 校招 + JobChannelID string `json:"job_channel_id,omitempty"` // 招聘渠道ID, 每个官网拥有唯一的招聘渠道ID, 可用于[职位发布至官网](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/advertisement/publish) +} + +// ListHireWebsiteRespItemName ... +type ListHireWebsiteRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 官网中文名称 + EnUs string `json:"en_us,omitempty"` // 官网英文名称 +} + +// listHireWebsiteResp ... +type listHireWebsiteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListHireWebsiteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_hire_website_site_user_create.go b/api_hire_website_site_user_create.go new file mode 100644 index 00000000..7910a1f9 --- /dev/null +++ b/api_hire_website_site_user_create.go @@ -0,0 +1,90 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateHireWebsiteSiteUser 注册指定招聘官网的用户, 注册完成后, 可通过[根据简历附件创建招聘官网投递任务](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_attachment)创建官网投递任务, 或通过[新建招聘官网投递](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-delivery/create_by_resume)创建官网投递 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website-site_user/create +// new doc: https://open.feishu.cn/document/server-docs/hire-v1/get-candidates/website/create +func (r *HireService) CreateHireWebsiteSiteUser(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) { + if r.cli.mock.mockHireCreateHireWebsiteSiteUser != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireWebsiteSiteUser mock enable") + return r.cli.mock.mockHireCreateHireWebsiteSiteUser(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Hire", + API: "CreateHireWebsiteSiteUser", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/hire/v1/websites/:website_id/site_users", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createHireWebsiteSiteUserResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockHireCreateHireWebsiteSiteUser mock HireCreateHireWebsiteSiteUser method +func (r *Mock) MockHireCreateHireWebsiteSiteUser(f func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error)) { + r.mockHireCreateHireWebsiteSiteUser = f +} + +// UnMockHireCreateHireWebsiteSiteUser un-mock HireCreateHireWebsiteSiteUser method +func (r *Mock) UnMockHireCreateHireWebsiteSiteUser() { + r.mockHireCreateHireWebsiteSiteUser = nil +} + +// CreateHireWebsiteSiteUserReq ... +type CreateHireWebsiteSiteUserReq struct { + WebsiteID string `path:"website_id" json:"-"` // 官网 ID, 可通过[获取招聘官网列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/website/list)获取示例值: "1618209327096" + Name *string `json:"name,omitempty"` // 用户姓名示例值: "张敏" + Email *string `json:"email,omitempty"` // 用户邮箱示例值: "zhangmin@163.com" + ExternalID string `json:"external_id,omitempty"` // 外部 ID, 幂等字段, 同一外部 ID只会创建1个官网用户;当系统中已存在`external_id`对应的官网用户时, 接口会返回已存在的官网用户信息示例值: "6960663240925956621" + Mobile *string `json:"mobile,omitempty"` // 电话, 若填写了该字段, 国家码(mobile_country_code)字段必填示例值: "182900291190" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 国家码, 若填写了该字段, 电话(mobile)字段必填, 可通过[获取地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_1" +} + +// CreateHireWebsiteSiteUserResp ... +type CreateHireWebsiteSiteUserResp struct { + SiteUser *CreateHireWebsiteSiteUserRespSiteUser `json:"site_user,omitempty"` // 官网用户信息 +} + +// CreateHireWebsiteSiteUserRespSiteUser ... +type CreateHireWebsiteSiteUserRespSiteUser struct { + UserID string `json:"user_id,omitempty"` // 官网用户 ID + Name string `json:"name,omitempty"` // 用户姓名 + Email string `json:"email,omitempty"` // 用户邮箱 + ExternalID string `json:"external_id,omitempty"` // 外部 ID + Mobile string `json:"mobile,omitempty"` // 电话 + MobileCountryCode string `json:"mobile_country_code,omitempty"` // 国家码 +} + +// createHireWebsiteSiteUserResp ... +type createHireWebsiteSiteUserResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireWebsiteSiteUserResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_im_feed_card_bot_time_sentive.go b/api_im_feed_card_bot_time_sentive.go new file mode 100644 index 00000000..2e7c8759 --- /dev/null +++ b/api_im_feed_card_bot_time_sentive.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateIMFeedCardBotTimeSentive 可将机器人对话在消息列表中置顶展示, 打开飞书首页即可处理重要任务。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/feed_card/bot_time_sentive +// new doc: https://open.feishu.cn/document/im-v2/groups-bots/bot_time_sentive +func (r *MessageService) UpdateIMFeedCardBotTimeSentive(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) { + if r.cli.mock.mockMessageUpdateIMFeedCardBotTimeSentive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Message#UpdateIMFeedCardBotTimeSentive mock enable") + return r.cli.mock.mockMessageUpdateIMFeedCardBotTimeSentive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Message", + API: "UpdateIMFeedCardBotTimeSentive", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/im/v2/feed_cards/bot_time_sentive", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateIMFeedCardBotTimeSentiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMessageUpdateIMFeedCardBotTimeSentive mock MessageUpdateIMFeedCardBotTimeSentive method +func (r *Mock) MockMessageUpdateIMFeedCardBotTimeSentive(f func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error)) { + r.mockMessageUpdateIMFeedCardBotTimeSentive = f +} + +// UnMockMessageUpdateIMFeedCardBotTimeSentive un-mock MessageUpdateIMFeedCardBotTimeSentive method +func (r *Mock) UnMockMessageUpdateIMFeedCardBotTimeSentive() { + r.mockMessageUpdateIMFeedCardBotTimeSentive = nil +} + +// UpdateIMFeedCardBotTimeSentiveReq ... +type UpdateIMFeedCardBotTimeSentiveReq struct { + UserIDType IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TimeSensitive bool `json:"time_sensitive,omitempty"` // 即时提醒状态(设置为 true 后, 卡片在消息列表临时置顶;设置为 false, 消息卡片不置顶)示例值: true + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用, 因不支持获取用户 user ID 权限, 所以无法使用 user_id 类型的用户 ID)示例值: ["ou_9d2beb613c85a2412862a49a924558c5"] 长度范围: `1` ~ `50` +} + +// UpdateIMFeedCardBotTimeSentiveResp ... +type UpdateIMFeedCardBotTimeSentiveResp struct { + FailedUserReasons []*UpdateIMFeedCardBotTimeSentiveRespFailedUserReason `json:"failed_user_reasons,omitempty"` // 失败原因 +} + +// UpdateIMFeedCardBotTimeSentiveRespFailedUserReason ... +type UpdateIMFeedCardBotTimeSentiveRespFailedUserReason struct { + ErrorCode int64 `json:"error_code,omitempty"` // 错误码 + ErrorMessage string `json:"error_message,omitempty"` // 错误信息 + UserID string `json:"user_id,omitempty"` // 用户id +} + +// updateIMFeedCardBotTimeSentiveResp ... +type updateIMFeedCardBotTimeSentiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateIMFeedCardBotTimeSentiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_im_message_push_follow_up.go b/api_im_message_push_follow_up.go new file mode 100644 index 00000000..c306c37b --- /dev/null +++ b/api_im_message_push_follow_up.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateIMMessagePushFollowUp 调用该接口在最新一条消息下方添加气泡样式的内容, 当消息接收者点击气泡或者新消息到达后, 气泡消失。 +// +// ![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/05f992f251e9949661370b6c73aa6eda_DseiZlt09t.png?height=278&maxWidth=450&width=1383) +// ## 前提条件 +// - 应用需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。 +// - 跟随气泡的效果在飞书客户端 v7.20 及以上版本生效。 +// - 仅支持在当前机器人与用户单聊的消息上添加跟随气泡, 且消息需要符合: +// - 消息是机器人发送的。 +// - 消息是会话内最新的消息。 +// - 消息发送后未超过 600 秒。 +// ## 注意事项 +// 添加跟随气泡后, 会话内的用户点击气泡会自动转换为该用户发送的一条消息, 你可以为应用订阅[接收消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive)事件, 接收用户发送的消息并判断是否为跟随气泡的内容。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/push_follow_up +// new doc: https://open.feishu.cn/document/im-v1/message/push_follow_up +func (r *MessageService) CreateIMMessagePushFollowUp(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) { + if r.cli.mock.mockMessageCreateIMMessagePushFollowUp != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Message#CreateIMMessagePushFollowUp mock enable") + return r.cli.mock.mockMessageCreateIMMessagePushFollowUp(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Message", + API: "CreateIMMessagePushFollowUp", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/im/v1/messages/:message_id/push_follow_up", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createIMMessagePushFollowUpResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMessageCreateIMMessagePushFollowUp mock MessageCreateIMMessagePushFollowUp method +func (r *Mock) MockMessageCreateIMMessagePushFollowUp(f func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error)) { + r.mockMessageCreateIMMessagePushFollowUp = f +} + +// UnMockMessageCreateIMMessagePushFollowUp un-mock MessageCreateIMMessagePushFollowUp method +func (r *Mock) UnMockMessageCreateIMMessagePushFollowUp() { + r.mockMessageCreateIMMessagePushFollowUp = nil +} + +// CreateIMMessagePushFollowUpReq ... +type CreateIMMessagePushFollowUpReq struct { + MessageID string `path:"message_id" json:"-"` // 机器人发送的消息 ID。ID 获取方式: - 调用[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)接口后, 从响应结果的 `message_id` 参数获取。- 监听[接收消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive)事件, 当触发该事件后可以从事件体内获取消息的 `message_id`。- 调用[获取会话历史消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/list)接口, 从响应结果的 `message_id` 参数获取。示例值: "om_3210a18894e206715a4359115f4cf2f5" + FollowUps []*CreateIMMessagePushFollowUpReqFollowUp `json:"follow_ups,omitempty"` // 跟随气泡列表。 长度范围: `1` ~ `3` +} + +// CreateIMMessagePushFollowUpReqFollowUp ... +type CreateIMMessagePushFollowUpReqFollowUp struct { + Content string `json:"content,omitempty"` // 气泡的内容。示例值: "你好" 长度范围: `1` ~ `200` 字符 + I18nContents []*CreateIMMessagePushFollowUpReqFollowUpI18nContent `json:"i18n_contents,omitempty"` // 气泡的多语言内容。 长度范围: `0` ~ `50` +} + +// CreateIMMessagePushFollowUpReqFollowUpI18nContent ... +type CreateIMMessagePushFollowUpReqFollowUpI18nContent struct { + Content string `json:"content,omitempty"` // `language` 参数对应的内容。示例值: "hello" 长度范围: `1` ~ `200` 字符 + Language string `json:"language,omitempty"` // 语言类型。示例值: "en_us"可选值有: 英文简体中文繁体中文-香港繁体中文-台湾日语印尼语越南语泰语葡萄牙语西班牙语韩语德语法语意大利语俄语马来语 +} + +// CreateIMMessagePushFollowUpResp ... +type CreateIMMessagePushFollowUpResp struct { +} + +// createIMMessagePushFollowUpResp ... +type createIMMessagePushFollowUpResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateIMMessagePushFollowUpResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_im_tag_create.go b/api_im_tag_create.go index 8ef3869d..742d4c82 100644 --- a/api_im_tag_create.go +++ b/api_im_tag_create.go @@ -23,7 +23,8 @@ import ( // CreateIMTag 创建标签并返回标签 ID。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/tag/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/tag/create +// new doc: https://open.feishu.cn/document/tenant-tag/create func (r *MessageService) CreateIMTag(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) { if r.cli.mock.mockMessageCreateIMTag != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#CreateIMTag mock enable") @@ -62,15 +63,15 @@ type CreateIMTagReq struct { // CreateIMTagReqCreateTag ... type CreateIMTagReqCreateTag struct { - TagType string `json:"tag_type,omitempty"` // 标签类型, 示例值: "tenant", 可选值有: tenant: 租户类型标签 - Name string `json:"name,omitempty"` // 标签默认名称, 示例值: "default name" - I18nNames []*CreateIMTagReqCreateTagI18nName `json:"i18n_names,omitempty"` // i18n多语言标签名称集合, 长度范围: `0` ~ `40` + TagType string `json:"tag_type,omitempty"` // 标签类型示例值: "tenant"可选值有: 租户类型标签 + Name string `json:"name,omitempty"` // 标签默认名称示例值: "default name" + I18nNames []*CreateIMTagReqCreateTagI18nName `json:"i18n_names,omitempty"` // i18n多语言标签名称集合 长度范围: `0` ~ `40` } // CreateIMTagReqCreateTagI18nName ... type CreateIMTagReqCreateTagI18nName struct { - Locale string `json:"locale,omitempty"` // 语言, 示例值: "zh_cn" - Name *string `json:"name,omitempty"` // 名称, 示例值: "标签1" + Locale string `json:"locale,omitempty"` // 语言示例值: "zh_cn" + Name *string `json:"name,omitempty"` // 名称示例值: "标签1" } // CreateIMTagResp ... diff --git a/api_im_tag_relation_create.go b/api_im_tag_relation_create.go index 666f8012..85fa3f30 100644 --- a/api_im_tag_relation_create.go +++ b/api_im_tag_relation_create.go @@ -23,7 +23,8 @@ import ( // CreateIMTagRelation 绑定标签到业务实体。目前支持给会话打标签。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/create +// new doc: https://open.feishu.cn/document/tenant-tag/create-2 func (r *MessageService) CreateIMTagRelation(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) { if r.cli.mock.mockMessageCreateIMTagRelation != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#CreateIMTagRelation mock enable") @@ -57,13 +58,14 @@ func (r *Mock) UnMockMessageCreateIMTagRelation() { // CreateIMTagRelationReq ... type CreateIMTagRelationReq struct { - TagBizType string `json:"tag_biz_type,omitempty"` // 业务类型, 示例值: "chat", 可选值有: chat: chat 会话类型 - BizEntityID string `json:"biz_entity_id,omitempty"` // 业务实体 ID, 示例值: "oc_xxxxx" - TagIDs []string `json:"tag_ids,omitempty"` // 标签 ID, 示例值: ["71616xxxx"], 长度范围: `0` ~ `40` + TagBizType string `json:"tag_biz_type,omitempty"` // 业务类型示例值: "chat"可选值有: chat 会话类型 + BizEntityID string `json:"biz_entity_id,omitempty"` // 业务实体 ID示例值: "oc_xxxxx" + TagIDs []string `json:"tag_ids,omitempty"` // 标签 ID示例值: ["71616xxxx"] 长度范围: `0` ~ `40` } // CreateIMTagRelationResp ... -type CreateIMTagRelationResp struct{} +type CreateIMTagRelationResp struct { +} // createIMTagRelationResp ... type createIMTagRelationResp struct { diff --git a/api_im_tag_relation_delete.go b/api_im_tag_relation_delete.go index 9f3708a1..494ed6d4 100644 --- a/api_im_tag_relation_delete.go +++ b/api_im_tag_relation_delete.go @@ -23,7 +23,8 @@ import ( // DeleteIMTagRelation 从业务实体上解绑标签。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/update +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/update +// new doc: https://open.feishu.cn/document/tenant-tag/update func (r *MessageService) DeleteIMTagRelation(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) { if r.cli.mock.mockMessageDeleteIMTagRelation != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#DeleteIMTagRelation mock enable") @@ -57,13 +58,14 @@ func (r *Mock) UnMockMessageDeleteIMTagRelation() { // DeleteIMTagRelationReq ... type DeleteIMTagRelationReq struct { - TagBizType string `json:"tag_biz_type,omitempty"` // 业务类型, 示例值: "chat", 可选值有: chat: chat类型 - BizEntityID string `json:"biz_entity_id,omitempty"` // 业务实体id, 示例值: "oc_xxxxx" - TagIDs []string `json:"tag_ids,omitempty"` // 标签id, 示例值: ["7161681111"], 长度范围: `0` ~ `40` + TagBizType string `json:"tag_biz_type,omitempty"` // 业务类型示例值: "chat"可选值有: chat类型 + BizEntityID string `json:"biz_entity_id,omitempty"` // 业务实体id示例值: "oc_xxxxx" + TagIDs []string `json:"tag_ids,omitempty"` // 标签id示例值: ["7161681111"] 长度范围: `0` ~ `40` } // DeleteIMTagRelationResp ... -type DeleteIMTagRelationResp struct{} +type DeleteIMTagRelationResp struct { +} // deleteIMTagRelationResp ... type deleteIMTagRelationResp struct { diff --git a/api_im_tag_relation_list.go b/api_im_tag_relation_list.go index af222744..216ea721 100644 --- a/api_im_tag_relation_list.go +++ b/api_im_tag_relation_list.go @@ -23,7 +23,8 @@ import ( // ListIMTagRelation 查询实体与标签的绑定关系 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/biz_entity_tag_relation/get +// new doc: https://open.feishu.cn/document/tenant-tag/get func (r *MessageService) ListIMTagRelation(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) { if r.cli.mock.mockMessageListIMTagRelation != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#ListIMTagRelation mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockMessageListIMTagRelation() { // ListIMTagRelationReq ... type ListIMTagRelationReq struct { - TagBizType string `query:"tag_biz_type" json:"-"` // 业务类型, 示例值: chat, 可选值有: chat: chat类型 - BizEntityID string `query:"biz_entity_id" json:"-"` // 业务实体id, 示例值: 71616xxxx + TagBizType string `query:"tag_biz_type" json:"-"` // 业务类型示例值: chat可选值有: chat类型 + BizEntityID string `query:"biz_entity_id" json:"-"` // 业务实体id示例值: 71616xxxx } // ListIMTagRelationResp ... diff --git a/api_im_tag_update.go b/api_im_tag_update.go index d16a668a..c3b31ce0 100644 --- a/api_im_tag_update.go +++ b/api_im_tag_update.go @@ -23,7 +23,8 @@ import ( // UpdateIMTag 修改标签在各个语言下的名称。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/tag/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/tag/patch +// new doc: https://open.feishu.cn/document/tenant-tag/patch func (r *MessageService) UpdateIMTag(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) { if r.cli.mock.mockMessageUpdateIMTag != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Message#UpdateIMTag mock enable") @@ -57,21 +58,21 @@ func (r *Mock) UnMockMessageUpdateIMTag() { // UpdateIMTagReq ... type UpdateIMTagReq struct { - TagID string `path:"tag_id" json:"-"` // 标签 ID, 示例值: "716168xxxxx" + TagID string `path:"tag_id" json:"-"` // 标签 ID示例值: "716168xxxxx" PatchTag *UpdateIMTagReqPatchTag `json:"patch_tag,omitempty"` // 编辑标签 } // UpdateIMTagReqPatchTag ... type UpdateIMTagReqPatchTag struct { - ID *string `json:"id,omitempty"` // 标签 ID, 示例值: "716168xxxxx" - Name *string `json:"name,omitempty"` // 标签名称, 示例值: "标签名称" - I18nNames []*UpdateIMTagReqPatchTagI18nName `json:"i18n_names,omitempty"` // i18n 多语言名称集合, 长度范围: `0` ~ `40` + ID *string `json:"id,omitempty"` // 标签 ID示例值: "716168xxxxx" + Name *string `json:"name,omitempty"` // 标签名称示例值: "标签名称" + I18nNames []*UpdateIMTagReqPatchTagI18nName `json:"i18n_names,omitempty"` // i18n 多语言名称集合 长度范围: `0` ~ `40` } // UpdateIMTagReqPatchTagI18nName ... type UpdateIMTagReqPatchTagI18nName struct { - Locale string `json:"locale,omitempty"` // 语言, 示例值: "zh_cn" - Name *string `json:"name,omitempty"` // 名称, 示例值: "标签2" + Locale string `json:"locale,omitempty"` // 语言示例值: "zh_cn" + Name *string `json:"name,omitempty"` // 名称示例值: "标签2" } // UpdateIMTagResp ... diff --git a/api_jssdk_ticket_get.go b/api_jssdk_ticket_get.go index 3e2f821e..c35b3712 100644 --- a/api_jssdk_ticket_get.go +++ b/api_jssdk_ticket_get.go @@ -63,7 +63,8 @@ func (r *Mock) UnMockJssdkGetJssdkTicket() { } // GetJssdkTicketReq ... -type GetJssdkTicketReq struct{} +type GetJssdkTicketReq struct { +} // GetJssdkTicketResp ... type GetJssdkTicketResp struct { diff --git a/api_lingo_entity_delete.go b/api_lingo_entity_delete.go index 0b1aa6c7..6b7a28bf 100644 --- a/api_lingo_entity_delete.go +++ b/api_lingo_entity_delete.go @@ -66,7 +66,8 @@ type DeleteLingoEntityReq struct { } // DeleteLingoEntityResp ... -type DeleteLingoEntityResp struct{} +type DeleteLingoEntityResp struct { +} // deleteLingoEntityResp ... type deleteLingoEntityResp struct { diff --git a/api_lingo_entity_highlight_batch.go b/api_lingo_entity_highlight_batch.go new file mode 100644 index 00000000..36d12d94 --- /dev/null +++ b/api_lingo_entity_highlight_batch.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// BatchHighlightLingoEntity 通过这个接口, 可以传入一段文本, 获取这段文本中所有词条的 ID +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/lingo-v1/entity/batch_highlight +func (r *LingoService) BatchHighlightLingoEntity(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) { + if r.cli.mock.mockLingoBatchHighlightLingoEntity != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Lingo#BatchHighlightLingoEntity mock enable") + return r.cli.mock.mockLingoBatchHighlightLingoEntity(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Lingo", + API: "BatchHighlightLingoEntity", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/lingo/v1/entities/batch_highlight", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(batchHighlightLingoEntityResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockLingoBatchHighlightLingoEntity mock LingoBatchHighlightLingoEntity method +func (r *Mock) MockLingoBatchHighlightLingoEntity(f func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error)) { + r.mockLingoBatchHighlightLingoEntity = f +} + +// UnMockLingoBatchHighlightLingoEntity un-mock LingoBatchHighlightLingoEntity method +func (r *Mock) UnMockLingoBatchHighlightLingoEntity() { + r.mockLingoBatchHighlightLingoEntity = nil +} + +// BatchHighlightLingoEntityReq ... +type BatchHighlightLingoEntityReq struct { + Texts []string `json:"texts,omitempty"` // 一批需要被识别词条的文本(一批不要超过20段文本, 每段文本不要超过1000字), 示例值: ["飞书词典是飞书提供的一款知识管理工具"], 长度范围: `1` ~ `20` +} + +// BatchHighlightLingoEntityResp ... +type BatchHighlightLingoEntityResp struct { + Phrases [][]interface{} `json:"phrases,omitempty"` // 和输入texts对应长度的段落实体词信息 +} + +// batchHighlightLingoEntityResp ... +type batchHighlightLingoEntityResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchHighlightLingoEntityResp `json:"data,omitempty"` +} diff --git a/api_lingo_repo_list.go b/api_lingo_repo_list.go index 72234cbe..576d23a8 100644 --- a/api_lingo_repo_list.go +++ b/api_lingo_repo_list.go @@ -60,7 +60,8 @@ func (r *Mock) UnMockLingoGetLingoRepoList() { } // GetLingoRepoListReq ... -type GetLingoRepoListReq struct{} +type GetLingoRepoListReq struct { +} // GetLingoRepoListResp ... type GetLingoRepoListResp struct { diff --git a/api_mail_group_alias_delete.go b/api_mail_group_alias_delete.go index 99d16448..02009759 100644 --- a/api_mail_group_alias_delete.go +++ b/api_mail_group_alias_delete.go @@ -63,7 +63,8 @@ type DeleteMailGroupAliasReq struct { } // DeleteMailGroupAliasResp ... -type DeleteMailGroupAliasResp struct{} +type DeleteMailGroupAliasResp struct { +} // deleteMailGroupAliasResp ... type deleteMailGroupAliasResp struct { diff --git a/api_mail_mail_group_delete.go b/api_mail_mail_group_delete.go index d36458f1..8ab04aba 100644 --- a/api_mail_mail_group_delete.go +++ b/api_mail_mail_group_delete.go @@ -62,7 +62,8 @@ type DeleteMailGroupReq struct { } // DeleteMailGroupResp ... -type DeleteMailGroupResp struct{} +type DeleteMailGroupResp struct { +} // deleteMailGroupResp ... type deleteMailGroupResp struct { diff --git a/api_mail_mail_group_manager_batch_create.go b/api_mail_mail_group_manager_batch_create.go index f996e06c..9d4e9122 100644 --- a/api_mail_mail_group_manager_batch_create.go +++ b/api_mail_mail_group_manager_batch_create.go @@ -69,7 +69,8 @@ type BatchCreateMailGroupManagerReqMailGroupManager struct { } // BatchCreateMailGroupManagerResp ... -type BatchCreateMailGroupManagerResp struct{} +type BatchCreateMailGroupManagerResp struct { +} // batchCreateMailGroupManagerResp ... type batchCreateMailGroupManagerResp struct { diff --git a/api_mail_mail_group_manager_batch_delete.go b/api_mail_mail_group_manager_batch_delete.go index b32fc7f9..32f1755d 100644 --- a/api_mail_mail_group_manager_batch_delete.go +++ b/api_mail_mail_group_manager_batch_delete.go @@ -69,7 +69,8 @@ type BatchDeleteMailGroupManagerReqMailGroupManager struct { } // BatchDeleteMailGroupManagerResp ... -type BatchDeleteMailGroupManagerResp struct{} +type BatchDeleteMailGroupManagerResp struct { +} // batchDeleteMailGroupManagerResp ... type batchDeleteMailGroupManagerResp struct { diff --git a/api_mail_mail_group_member_batch_delete.go b/api_mail_mail_group_member_batch_delete.go index 1a652bdc..ec02a3f3 100644 --- a/api_mail_mail_group_member_batch_delete.go +++ b/api_mail_mail_group_member_batch_delete.go @@ -63,7 +63,8 @@ type BatchDeleteMailGroupMemberReq struct { } // BatchDeleteMailGroupMemberResp ... -type BatchDeleteMailGroupMemberResp struct{} +type BatchDeleteMailGroupMemberResp struct { +} // batchDeleteMailGroupMemberResp ... type batchDeleteMailGroupMemberResp struct { diff --git a/api_mail_mail_group_member_delete.go b/api_mail_mail_group_member_delete.go index 77023a01..a765b30d 100644 --- a/api_mail_mail_group_member_delete.go +++ b/api_mail_mail_group_member_delete.go @@ -63,7 +63,8 @@ type DeleteMailGroupMemberReq struct { } // DeleteMailGroupMemberResp ... -type DeleteMailGroupMemberResp struct{} +type DeleteMailGroupMemberResp struct { +} // deleteMailGroupMemberResp ... type deleteMailGroupMemberResp struct { diff --git a/api_mail_mail_group_permission_member_batch_delete.go b/api_mail_mail_group_permission_member_batch_delete.go index 6df49852..b8527dd0 100644 --- a/api_mail_mail_group_permission_member_batch_delete.go +++ b/api_mail_mail_group_permission_member_batch_delete.go @@ -63,7 +63,8 @@ type BatchDeleteMailGroupPermissionMemberReq struct { } // BatchDeleteMailGroupPermissionMemberResp ... -type BatchDeleteMailGroupPermissionMemberResp struct{} +type BatchDeleteMailGroupPermissionMemberResp struct { +} // batchDeleteMailGroupPermissionMemberResp ... type batchDeleteMailGroupPermissionMemberResp struct { diff --git a/api_mail_mail_group_permission_member_delete.go b/api_mail_mail_group_permission_member_delete.go index c0b15006..cfb6c2e8 100644 --- a/api_mail_mail_group_permission_member_delete.go +++ b/api_mail_mail_group_permission_member_delete.go @@ -63,7 +63,8 @@ type DeleteMailGroupPermissionMemberReq struct { } // DeleteMailGroupPermissionMemberResp ... -type DeleteMailGroupPermissionMemberResp struct{} +type DeleteMailGroupPermissionMemberResp struct { +} // deleteMailGroupPermissionMemberResp ... type deleteMailGroupPermissionMemberResp struct { diff --git a/api_mail_message_subscribe.go b/api_mail_message_subscribe.go new file mode 100644 index 00000000..b4e85ba2 --- /dev/null +++ b/api_mail_message_subscribe.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SubscribeMailMessage 订阅邮箱事件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/subscribe +// +// Deprecated +func (r *MailService) SubscribeMailMessage(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) { + if r.cli.mock.mockMailSubscribeMailMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#SubscribeMailMessage mock enable") + return r.cli.mock.mockMailSubscribeMailMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "SubscribeMailMessage", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/subscribe", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(subscribeMailMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailSubscribeMailMessage mock MailSubscribeMailMessage method +func (r *Mock) MockMailSubscribeMailMessage(f func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error)) { + r.mockMailSubscribeMailMessage = f +} + +// UnMockMailSubscribeMailMessage un-mock MailSubscribeMailMessage method +func (r *Mock) UnMockMailSubscribeMailMessage() { + r.mockMailSubscribeMailMessage = nil +} + +// SubscribeMailMessageReq ... +type SubscribeMailMessageReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me, 示例值: "user@xxx.xx 或 me" + EventType int64 `json:"event_type,omitempty"` // 事件类型, 示例值: 1, 可选值有: 1: 收信事件, 取值范围: `1` ~ `1` +} + +// SubscribeMailMessageResp ... +type SubscribeMailMessageResp struct { + IsSubscribed bool `json:"is_subscribed,omitempty"` // 是否订阅 +} + +// subscribeMailMessageResp ... +type subscribeMailMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SubscribeMailMessageResp `json:"data,omitempty"` +} diff --git a/api_mail_message_subscription_get.go b/api_mail_message_subscription_get.go new file mode 100644 index 00000000..4bbbb080 --- /dev/null +++ b/api_mail_message_subscription_get.go @@ -0,0 +1,76 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMailMessageSubscription 获取邮箱事件订阅状态 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/subscription +// +// Deprecated +func (r *MailService) GetMailMessageSubscription(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) { + if r.cli.mock.mockMailGetMailMessageSubscription != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailMessageSubscription mock enable") + return r.cli.mock.mockMailGetMailMessageSubscription(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "GetMailMessageSubscription", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/subscription", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getMailMessageSubscriptionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailGetMailMessageSubscription mock MailGetMailMessageSubscription method +func (r *Mock) MockMailGetMailMessageSubscription(f func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error)) { + r.mockMailGetMailMessageSubscription = f +} + +// UnMockMailGetMailMessageSubscription un-mock MailGetMailMessageSubscription method +func (r *Mock) UnMockMailGetMailMessageSubscription() { + r.mockMailGetMailMessageSubscription = nil +} + +// GetMailMessageSubscriptionReq ... +type GetMailMessageSubscriptionReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me, 示例值: "user@xxx.xx 或 me" + EventType int64 `query:"event_type" json:"-"` // 事件类型, 示例值: 1, 可选值有: 1: 收信事件, 取值范围: `1` ~ `1` +} + +// GetMailMessageSubscriptionResp ... +type GetMailMessageSubscriptionResp struct { + IsSubscribed bool `json:"is_subscribed,omitempty"` // 是否订阅 +} + +// getMailMessageSubscriptionResp ... +type getMailMessageSubscriptionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMailMessageSubscriptionResp `json:"data,omitempty"` +} diff --git a/api_mail_public_mailbox_alias_delete.go b/api_mail_public_mailbox_alias_delete.go index f32f7782..95c3a713 100644 --- a/api_mail_public_mailbox_alias_delete.go +++ b/api_mail_public_mailbox_alias_delete.go @@ -63,7 +63,8 @@ type DeleteMailPublicMailboxAliasReq struct { } // DeleteMailPublicMailboxAliasResp ... -type DeleteMailPublicMailboxAliasResp struct{} +type DeleteMailPublicMailboxAliasResp struct { +} // deleteMailPublicMailboxAliasResp ... type deleteMailPublicMailboxAliasResp struct { diff --git a/api_mail_public_mailbox_delete.go b/api_mail_public_mailbox_delete.go index 54a1d267..b66e90e7 100644 --- a/api_mail_public_mailbox_delete.go +++ b/api_mail_public_mailbox_delete.go @@ -62,7 +62,8 @@ type DeletePublicMailboxReq struct { } // DeletePublicMailboxResp ... -type DeletePublicMailboxResp struct{} +type DeletePublicMailboxResp struct { +} // deletePublicMailboxResp ... type deletePublicMailboxResp struct { diff --git a/api_mail_public_mailbox_member_batch_delete.go b/api_mail_public_mailbox_member_batch_delete.go index 39adcf9e..a02ba9df 100644 --- a/api_mail_public_mailbox_member_batch_delete.go +++ b/api_mail_public_mailbox_member_batch_delete.go @@ -63,7 +63,8 @@ type BatchDeletePublicMailboxMemberReq struct { } // BatchDeletePublicMailboxMemberResp ... -type BatchDeletePublicMailboxMemberResp struct{} +type BatchDeletePublicMailboxMemberResp struct { +} // batchDeletePublicMailboxMemberResp ... type batchDeletePublicMailboxMemberResp struct { diff --git a/api_mail_public_mailbox_member_clear.go b/api_mail_public_mailbox_member_clear.go index 3baa951d..273eb133 100644 --- a/api_mail_public_mailbox_member_clear.go +++ b/api_mail_public_mailbox_member_clear.go @@ -62,7 +62,8 @@ type ClearPublicMailboxMemberReq struct { } // ClearPublicMailboxMemberResp ... -type ClearPublicMailboxMemberResp struct{} +type ClearPublicMailboxMemberResp struct { +} // clearPublicMailboxMemberResp ... type clearPublicMailboxMemberResp struct { diff --git a/api_mail_public_mailbox_member_delete.go b/api_mail_public_mailbox_member_delete.go index 8c0f2452..6a6bc06c 100644 --- a/api_mail_public_mailbox_member_delete.go +++ b/api_mail_public_mailbox_member_delete.go @@ -63,7 +63,8 @@ type DeletePublicMailboxMemberReq struct { } // DeletePublicMailboxMemberResp ... -type DeletePublicMailboxMemberResp struct{} +type DeletePublicMailboxMemberResp struct { +} // deletePublicMailboxMemberResp ... type deletePublicMailboxMemberResp struct { diff --git a/api_mail_public_mailbox_remove_to_recycle_bin.go b/api_mail_public_mailbox_remove_to_recycle_bin.go new file mode 100644 index 00000000..7ec90321 --- /dev/null +++ b/api_mail_public_mailbox_remove_to_recycle_bin.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// RemoveMailPublicMailboxToRecycleBin 将公共邮箱移至回收站 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/remove_to_recycle_bin +// new doc: https://open.feishu.cn/document/mail-v1/public-mailbox/public_mailbox/remove_to_recycle_bin +func (r *MailService) RemoveMailPublicMailboxToRecycleBin(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) { + if r.cli.mock.mockMailRemoveMailPublicMailboxToRecycleBin != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#RemoveMailPublicMailboxToRecycleBin mock enable") + return r.cli.mock.mockMailRemoveMailPublicMailboxToRecycleBin(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "RemoveMailPublicMailboxToRecycleBin", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/remove_to_recycle_bin", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(removeMailPublicMailboxToRecycleBinResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailRemoveMailPublicMailboxToRecycleBin mock MailRemoveMailPublicMailboxToRecycleBin method +func (r *Mock) MockMailRemoveMailPublicMailboxToRecycleBin(f func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error)) { + r.mockMailRemoveMailPublicMailboxToRecycleBin = f +} + +// UnMockMailRemoveMailPublicMailboxToRecycleBin un-mock MailRemoveMailPublicMailboxToRecycleBin method +func (r *Mock) UnMockMailRemoveMailPublicMailboxToRecycleBin() { + r.mockMailRemoveMailPublicMailboxToRecycleBin = nil +} + +// RemoveMailPublicMailboxToRecycleBinReq ... +type RemoveMailPublicMailboxToRecycleBinReq struct { + PublicMailboxID string `path:"public_mailbox_id" json:"-"` // 公共邮箱地址示例值: "test_public_mailbox@xxx.xx" + ToMailAddress *string `json:"to_mail_address,omitempty"` // 接收删除邮件的邮箱地址, 不填则删除该公共邮箱的邮件示例值: "user@xxx.xx" +} + +// RemoveMailPublicMailboxToRecycleBinResp ... +type RemoveMailPublicMailboxToRecycleBinResp struct { +} + +// removeMailPublicMailboxToRecycleBinResp ... +type removeMailPublicMailboxToRecycleBinResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RemoveMailPublicMailboxToRecycleBinResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_rule_apply.go b/api_mail_rule_apply.go new file mode 100644 index 00000000..1d2f07f2 --- /dev/null +++ b/api_mail_rule_apply.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ApplyMailRule 应用收信规则到已有邮件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/apply +func (r *MailService) ApplyMailRule(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) { + if r.cli.mock.mockMailApplyMailRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ApplyMailRule mock enable") + return r.cli.mock.mockMailApplyMailRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "ApplyMailRule", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules/:rule_id/apply", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(applyMailRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailApplyMailRule mock MailApplyMailRule method +func (r *Mock) MockMailApplyMailRule(f func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error)) { + r.mockMailApplyMailRule = f +} + +// UnMockMailApplyMailRule un-mock MailApplyMailRule method +func (r *Mock) UnMockMailApplyMailRule() { + r.mockMailApplyMailRule = nil +} + +// ApplyMailRuleReq ... +type ApplyMailRuleReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + RuleID string `path:"rule_id" json:"-"` // 规则 id示例值: "11111" +} + +// ApplyMailRuleResp ... +type ApplyMailRuleResp struct { +} + +// applyMailRuleResp ... +type applyMailRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ApplyMailRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_alias_delete.go b/api_mail_user_mailbox_alias_delete.go index 1c8e404c..ca7657be 100644 --- a/api_mail_user_mailbox_alias_delete.go +++ b/api_mail_user_mailbox_alias_delete.go @@ -63,7 +63,8 @@ type DeleteMailUserMailboxAliasReq struct { } // DeleteMailUserMailboxAliasResp ... -type DeleteMailUserMailboxAliasResp struct{} +type DeleteMailUserMailboxAliasResp struct { +} // deleteMailUserMailboxAliasResp ... type deleteMailUserMailboxAliasResp struct { diff --git a/api_mail_user_mailbox_delete.go b/api_mail_user_mailbox_delete.go index 3ae0c80e..ea7c63ed 100644 --- a/api_mail_user_mailbox_delete.go +++ b/api_mail_user_mailbox_delete.go @@ -63,7 +63,8 @@ type DeleteMailUserMailboxReq struct { } // DeleteMailUserMailboxResp ... -type DeleteMailUserMailboxResp struct{} +type DeleteMailUserMailboxResp struct { +} // deleteMailUserMailboxResp ... type deleteMailUserMailboxResp struct { diff --git a/api_mail_user_mailbox_event_subscribe.go b/api_mail_user_mailbox_event_subscribe.go new file mode 100644 index 00000000..6d940eee --- /dev/null +++ b/api_mail_user_mailbox_event_subscribe.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SubscribeMailUserMailboxEvent 订阅邮箱事件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-event/subscribe +func (r *MailService) SubscribeMailUserMailboxEvent(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) { + if r.cli.mock.mockMailSubscribeMailUserMailboxEvent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#SubscribeMailUserMailboxEvent mock enable") + return r.cli.mock.mockMailSubscribeMailUserMailboxEvent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "SubscribeMailUserMailboxEvent", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/event/subscribe", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(subscribeMailUserMailboxEventResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailSubscribeMailUserMailboxEvent mock MailSubscribeMailUserMailboxEvent method +func (r *Mock) MockMailSubscribeMailUserMailboxEvent(f func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error)) { + r.mockMailSubscribeMailUserMailboxEvent = f +} + +// UnMockMailSubscribeMailUserMailboxEvent un-mock MailSubscribeMailUserMailboxEvent method +func (r *Mock) UnMockMailSubscribeMailUserMailboxEvent() { + r.mockMailSubscribeMailUserMailboxEvent = nil +} + +// SubscribeMailUserMailboxEventReq ... +type SubscribeMailUserMailboxEventReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" + EventType int64 `json:"event_type,omitempty"` // 事件类型示例值: 1可选值有: 邮件相关事件 取值范围: `1` ~ `1` +} + +// SubscribeMailUserMailboxEventResp ... +type SubscribeMailUserMailboxEventResp struct { +} + +// subscribeMailUserMailboxEventResp ... +type subscribeMailUserMailboxEventResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SubscribeMailUserMailboxEventResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_event_subscription.go b/api_mail_user_mailbox_event_subscription.go new file mode 100644 index 00000000..f6cdaeea --- /dev/null +++ b/api_mail_user_mailbox_event_subscription.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMailUserMailboxEventSubscription 获取邮箱事件订阅状态 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-event/subscription +func (r *MailService) GetMailUserMailboxEventSubscription(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) { + if r.cli.mock.mockMailGetMailUserMailboxEventSubscription != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailUserMailboxEventSubscription mock enable") + return r.cli.mock.mockMailGetMailUserMailboxEventSubscription(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "GetMailUserMailboxEventSubscription", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/event/subscription", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getMailUserMailboxEventSubscriptionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailGetMailUserMailboxEventSubscription mock MailGetMailUserMailboxEventSubscription method +func (r *Mock) MockMailGetMailUserMailboxEventSubscription(f func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error)) { + r.mockMailGetMailUserMailboxEventSubscription = f +} + +// UnMockMailGetMailUserMailboxEventSubscription un-mock MailGetMailUserMailboxEventSubscription method +func (r *Mock) UnMockMailGetMailUserMailboxEventSubscription() { + r.mockMailGetMailUserMailboxEventSubscription = nil +} + +// GetMailUserMailboxEventSubscriptionReq ... +type GetMailUserMailboxEventSubscriptionReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" +} + +// GetMailUserMailboxEventSubscriptionResp ... +type GetMailUserMailboxEventSubscriptionResp struct { + EventTypes []int64 `json:"event_types,omitempty"` // 订阅的事件列表 +} + +// getMailUserMailboxEventSubscriptionResp ... +type getMailUserMailboxEventSubscriptionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMailUserMailboxEventSubscriptionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_event_unsubscribe.go b/api_mail_user_mailbox_event_unsubscribe.go new file mode 100644 index 00000000..99fbb3a6 --- /dev/null +++ b/api_mail_user_mailbox_event_unsubscribe.go @@ -0,0 +1,73 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UnsubscribeMailUserMailboxEvent 取消订阅邮箱事件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/unsubscribe +func (r *MailService) UnsubscribeMailUserMailboxEvent(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) { + if r.cli.mock.mockMailUnsubscribeMailUserMailboxEvent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UnsubscribeMailUserMailboxEvent mock enable") + return r.cli.mock.mockMailUnsubscribeMailUserMailboxEvent(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "UnsubscribeMailUserMailboxEvent", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/event/unsubscribe", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(unsubscribeMailUserMailboxEventResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailUnsubscribeMailUserMailboxEvent mock MailUnsubscribeMailUserMailboxEvent method +func (r *Mock) MockMailUnsubscribeMailUserMailboxEvent(f func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error)) { + r.mockMailUnsubscribeMailUserMailboxEvent = f +} + +// UnMockMailUnsubscribeMailUserMailboxEvent un-mock MailUnsubscribeMailUserMailboxEvent method +func (r *Mock) UnMockMailUnsubscribeMailUserMailboxEvent() { + r.mockMailUnsubscribeMailUserMailboxEvent = nil +} + +// UnsubscribeMailUserMailboxEventReq ... +type UnsubscribeMailUserMailboxEventReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me, 示例值: "user@xxx.xx 或 me" + EventType int64 `json:"event_type,omitempty"` // 事件类型, 示例值: 1, 可选值有: 1: 邮件相关事件, 取值范围: `1` ~ `1` +} + +// UnsubscribeMailUserMailboxEventResp ... +type UnsubscribeMailUserMailboxEventResp struct { +} + +// unsubscribeMailUserMailboxEventResp ... +type unsubscribeMailUserMailboxEventResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UnsubscribeMailUserMailboxEventResp `json:"data,omitempty"` +} diff --git a/api_mail_user_mailbox_folder_create.go b/api_mail_user_mailbox_folder_create.go new file mode 100644 index 00000000..6db3d991 --- /dev/null +++ b/api_mail_user_mailbox_folder_create.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateMailUserMailboxFolder 创建文件夹 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/create +func (r *MailService) CreateMailUserMailboxFolder(ctx context.Context, request *CreateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxFolderResp, *Response, error) { + if r.cli.mock.mockMailCreateMailUserMailboxFolder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxFolder mock enable") + return r.cli.mock.mockMailCreateMailUserMailboxFolder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "CreateMailUserMailboxFolder", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/folders", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createMailUserMailboxFolderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailCreateMailUserMailboxFolder mock MailCreateMailUserMailboxFolder method +func (r *Mock) MockMailCreateMailUserMailboxFolder(f func(ctx context.Context, request *CreateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxFolderResp, *Response, error)) { + r.mockMailCreateMailUserMailboxFolder = f +} + +// UnMockMailCreateMailUserMailboxFolder un-mock MailCreateMailUserMailboxFolder method +func (r *Mock) UnMockMailCreateMailUserMailboxFolder() { + r.mockMailCreateMailUserMailboxFolder = nil +} + +// CreateMailUserMailboxFolderReq ... +type CreateMailUserMailboxFolderReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + Name string `json:"name,omitempty"` // 文件夹名称示例值: "newsletter 相关" 长度范围: `1` ~ `250` 字符 + ParentFolderID string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹示例值: "725627422334644" +} + +// CreateMailUserMailboxFolderResp ... +type CreateMailUserMailboxFolderResp struct { + Folder *CreateMailUserMailboxFolderRespFolder `json:"folder,omitempty"` // 文件夹实体 +} + +// CreateMailUserMailboxFolderRespFolder ... +type CreateMailUserMailboxFolderRespFolder struct { + ID string `json:"id,omitempty"` // folder id + Name string `json:"name,omitempty"` // 文件夹名称 + ParentFolderID string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹 + FolderType int64 `json:"folder_type,omitempty"` // 文件夹类型可选值有: 系统文件夹用户文件夹 + UnreadMessageCount int64 `json:"unread_message_count,omitempty"` // 未读邮件数量 + UnreadThreadCount int64 `json:"unread_thread_count,omitempty"` // 未读会话数量 +} + +// createMailUserMailboxFolderResp ... +type createMailUserMailboxFolderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateMailUserMailboxFolderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_folder_delete.go b/api_mail_user_mailbox_folder_delete.go new file mode 100644 index 00000000..31f29a71 --- /dev/null +++ b/api_mail_user_mailbox_folder_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteMailUserMailboxFolder 删除文件夹 +// +// 删除文件夹会将该文件夹下的邮件移至已删除中。 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/delete +func (r *MailService) DeleteMailUserMailboxFolder(ctx context.Context, request *DeleteMailUserMailboxFolderReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxFolderResp, *Response, error) { + if r.cli.mock.mockMailDeleteMailUserMailboxFolder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteMailUserMailboxFolder mock enable") + return r.cli.mock.mockMailDeleteMailUserMailboxFolder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "DeleteMailUserMailboxFolder", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/folders/:folder_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteMailUserMailboxFolderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailDeleteMailUserMailboxFolder mock MailDeleteMailUserMailboxFolder method +func (r *Mock) MockMailDeleteMailUserMailboxFolder(f func(ctx context.Context, request *DeleteMailUserMailboxFolderReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxFolderResp, *Response, error)) { + r.mockMailDeleteMailUserMailboxFolder = f +} + +// UnMockMailDeleteMailUserMailboxFolder un-mock MailDeleteMailUserMailboxFolder method +func (r *Mock) UnMockMailDeleteMailUserMailboxFolder() { + r.mockMailDeleteMailUserMailboxFolder = nil +} + +// DeleteMailUserMailboxFolderReq ... +type DeleteMailUserMailboxFolderReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + FolderID string `path:"folder_id" json:"-"` // 文件夹 id示例值: "111111" +} + +// DeleteMailUserMailboxFolderResp ... +type DeleteMailUserMailboxFolderResp struct { +} + +// deleteMailUserMailboxFolderResp ... +type deleteMailUserMailboxFolderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteMailUserMailboxFolderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_folder_list.go b/api_mail_user_mailbox_folder_list.go new file mode 100644 index 00000000..de9d3762 --- /dev/null +++ b/api_mail_user_mailbox_folder_list.go @@ -0,0 +1,86 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListMailUserMailboxFolder 列出邮箱文件夹 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/list +func (r *MailService) ListMailUserMailboxFolder(ctx context.Context, request *ListMailUserMailboxFolderReq, options ...MethodOptionFunc) (*ListMailUserMailboxFolderResp, *Response, error) { + if r.cli.mock.mockMailListMailUserMailboxFolder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxFolder mock enable") + return r.cli.mock.mockMailListMailUserMailboxFolder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "ListMailUserMailboxFolder", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/folders", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listMailUserMailboxFolderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailListMailUserMailboxFolder mock MailListMailUserMailboxFolder method +func (r *Mock) MockMailListMailUserMailboxFolder(f func(ctx context.Context, request *ListMailUserMailboxFolderReq, options ...MethodOptionFunc) (*ListMailUserMailboxFolderResp, *Response, error)) { + r.mockMailListMailUserMailboxFolder = f +} + +// UnMockMailListMailUserMailboxFolder un-mock MailListMailUserMailboxFolder method +func (r *Mock) UnMockMailListMailUserMailboxFolder() { + r.mockMailListMailUserMailboxFolder = nil +} + +// ListMailUserMailboxFolderReq ... +type ListMailUserMailboxFolderReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + FolderType *int64 `query:"folder_type" json:"-"` // 文件夹类型示例值: 1可选值有: 系统文件夹用户文件夹 取值范围: `1` ~ `2` +} + +// ListMailUserMailboxFolderResp ... +type ListMailUserMailboxFolderResp struct { + Items []*ListMailUserMailboxFolderRespItem `json:"items,omitempty"` // 文件夹列表 +} + +// ListMailUserMailboxFolderRespItem ... +type ListMailUserMailboxFolderRespItem struct { + ID string `json:"id,omitempty"` // folder id + Name string `json:"name,omitempty"` // 文件夹名称 + ParentFolderID string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹 + FolderType int64 `json:"folder_type,omitempty"` // 文件夹类型可选值有: 系统文件夹用户文件夹 + UnreadMessageCount int64 `json:"unread_message_count,omitempty"` // 未读邮件数量 + UnreadThreadCount int64 `json:"unread_thread_count,omitempty"` // 未读会话数量 +} + +// listMailUserMailboxFolderResp ... +type listMailUserMailboxFolderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListMailUserMailboxFolderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_folder_update.go b/api_mail_user_mailbox_folder_update.go new file mode 100644 index 00000000..97a4f0e2 --- /dev/null +++ b/api_mail_user_mailbox_folder_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateMailUserMailboxFolder 修改邮箱文件夹 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/patch +func (r *MailService) UpdateMailUserMailboxFolder(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error) { + if r.cli.mock.mockMailUpdateMailUserMailboxFolder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateMailUserMailboxFolder mock enable") + return r.cli.mock.mockMailUpdateMailUserMailboxFolder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "UpdateMailUserMailboxFolder", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/folders/:folder_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateMailUserMailboxFolderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailUpdateMailUserMailboxFolder mock MailUpdateMailUserMailboxFolder method +func (r *Mock) MockMailUpdateMailUserMailboxFolder(f func(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error)) { + r.mockMailUpdateMailUserMailboxFolder = f +} + +// UnMockMailUpdateMailUserMailboxFolder un-mock MailUpdateMailUserMailboxFolder method +func (r *Mock) UnMockMailUpdateMailUserMailboxFolder() { + r.mockMailUpdateMailUserMailboxFolder = nil +} + +// UpdateMailUserMailboxFolderReq ... +type UpdateMailUserMailboxFolderReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + FolderID string `path:"folder_id" json:"-"` // 文件夹 id示例值: "111111" + Name *string `json:"name,omitempty"` // 文件夹名称示例值: "newsletter 相关" 长度范围: `1` ~ `250` 字符 + ParentFolderID *string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹示例值: "725627422334644" +} + +// UpdateMailUserMailboxFolderResp ... +type UpdateMailUserMailboxFolderResp struct { +} + +// updateMailUserMailboxFolderResp ... +type updateMailUserMailboxFolderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateMailUserMailboxFolderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_mail_contact_create.go b/api_mail_user_mailbox_mail_contact_create.go new file mode 100644 index 00000000..c385eb9a --- /dev/null +++ b/api_mail_user_mailbox_mail_contact_create.go @@ -0,0 +1,97 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateUserMailboxMailContact 创建邮箱联系人 +// +// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/create +func (r *MailService) CreateUserMailboxMailContact(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error) { + if r.cli.mock.mockMailCreateUserMailboxMailContact != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateUserMailboxMailContact mock enable") + return r.cli.mock.mockMailCreateUserMailboxMailContact(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "CreateUserMailboxMailContact", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/mail_contacts", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createUserMailboxMailContactResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailCreateUserMailboxMailContact mock MailCreateUserMailboxMailContact method +func (r *Mock) MockMailCreateUserMailboxMailContact(f func(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error)) { + r.mockMailCreateUserMailboxMailContact = f +} + +// UnMockMailCreateUserMailboxMailContact un-mock MailCreateUserMailboxMailContact method +func (r *Mock) UnMockMailCreateUserMailboxMailContact() { + r.mockMailCreateUserMailboxMailContact = nil +} + +// CreateUserMailboxMailContactReq ... +type CreateUserMailboxMailContactReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" + Name string `json:"name,omitempty"` // 联系人姓名示例值: "张三" 长度范围: `1` ~ `64` 字符 + Company *string `json:"company,omitempty"` // 联系人公司示例值: "张三科技有限公司" 最大长度: `64` 字符 + Phone *string `json:"phone,omitempty"` // 联系人手机号示例值: "19912341234" 最大长度: `40` 字符 + MailAddress *string `json:"mail_address,omitempty"` // 联系人邮箱示例值: "zhangsan@example.com" 最大长度: `319` 字符 + Tag *string `json:"tag,omitempty"` // 联系人标签示例值: "朋友" 最大长度: `64` 字符 + Remark *string `json:"remark,omitempty"` // 联系人备注示例值: "飞书发布会认识" 最大长度: `1000` 字符 + Position *string `json:"position,omitempty"` // 联系人职位示例值: "CFO" 最大长度: `64` 字符 +} + +// CreateUserMailboxMailContactResp ... +type CreateUserMailboxMailContactResp struct { + MailContact *CreateUserMailboxMailContactRespMailContact `json:"mail_contact,omitempty"` // 联系人实体 +} + +// CreateUserMailboxMailContactRespMailContact ... +type CreateUserMailboxMailContactRespMailContact struct { + ID string `json:"id,omitempty"` // 联系人 id + Name string `json:"name,omitempty"` // 联系人姓名 + Company string `json:"company,omitempty"` // 联系人公司 + Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号地址字段 + MailAddress string `json:"mail_address,omitempty"` // 联系人邮箱字段权限要求: 读取邮箱联系人邮箱地址字段 + Tag string `json:"tag,omitempty"` // 联系人标签 + Remark string `json:"remark,omitempty"` // 联系人备注 + Avatar string `json:"avatar,omitempty"` // 联系人头像 + Position string `json:"position,omitempty"` // 联系人职位 +} + +// createUserMailboxMailContactResp ... +type createUserMailboxMailContactResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateUserMailboxMailContactResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_mail_contact_delete.go b/api_mail_user_mailbox_mail_contact_delete.go new file mode 100644 index 00000000..c763973a --- /dev/null +++ b/api_mail_user_mailbox_mail_contact_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteUserMailboxMailContact 删除指定邮箱下的邮箱联系人 +// +// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/delete +func (r *MailService) DeleteUserMailboxMailContact(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error) { + if r.cli.mock.mockMailDeleteUserMailboxMailContact != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteUserMailboxMailContact mock enable") + return r.cli.mock.mockMailDeleteUserMailboxMailContact(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "DeleteUserMailboxMailContact", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/mail_contacts/:mail_contact_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteUserMailboxMailContactResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailDeleteUserMailboxMailContact mock MailDeleteUserMailboxMailContact method +func (r *Mock) MockMailDeleteUserMailboxMailContact(f func(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error)) { + r.mockMailDeleteUserMailboxMailContact = f +} + +// UnMockMailDeleteUserMailboxMailContact un-mock MailDeleteUserMailboxMailContact method +func (r *Mock) UnMockMailDeleteUserMailboxMailContact() { + r.mockMailDeleteUserMailboxMailContact = nil +} + +// DeleteUserMailboxMailContactReq ... +type DeleteUserMailboxMailContactReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "用户邮箱地址 或 输入me代表当前调用接口用户" + MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id示例值: "123" +} + +// DeleteUserMailboxMailContactResp ... +type DeleteUserMailboxMailContactResp struct { +} + +// deleteUserMailboxMailContactResp ... +type deleteUserMailboxMailContactResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteUserMailboxMailContactResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_mail_contact_list.go b/api_mail_user_mailbox_mail_contact_list.go new file mode 100644 index 00000000..0b90a735 --- /dev/null +++ b/api_mail_user_mailbox_mail_contact_list.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListUserMailboxMailContact 列出邮箱联系人 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/list +func (r *MailService) ListUserMailboxMailContact(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error) { + if r.cli.mock.mockMailListUserMailboxMailContact != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListUserMailboxMailContact mock enable") + return r.cli.mock.mockMailListUserMailboxMailContact(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "ListUserMailboxMailContact", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/mail_contacts", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listUserMailboxMailContactResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailListUserMailboxMailContact mock MailListUserMailboxMailContact method +func (r *Mock) MockMailListUserMailboxMailContact(f func(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error)) { + r.mockMailListUserMailboxMailContact = f +} + +// UnMockMailListUserMailboxMailContact un-mock MailListUserMailboxMailContact method +func (r *Mock) UnMockMailListUserMailboxMailContact() { + r.mockMailListUserMailboxMailContact = nil +} + +// ListUserMailboxMailContactReq ... +type ListUserMailboxMailContactReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 20 取值范围: `1` ~ `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: xxx +} + +// ListUserMailboxMailContactResp ... +type ListUserMailboxMailContactResp struct { + Items []*ListUserMailboxMailContactRespItem `json:"items,omitempty"` // 邮件联系人列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListUserMailboxMailContactRespItem ... +type ListUserMailboxMailContactRespItem struct { + ID string `json:"id,omitempty"` // 联系人 id + Name string `json:"name,omitempty"` // 联系人姓名 + Company string `json:"company,omitempty"` // 联系人公司 + Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号地址字段 + MailAddress string `json:"mail_address,omitempty"` // 联系人邮箱字段权限要求: 读取邮箱联系人邮箱地址字段 + Tag string `json:"tag,omitempty"` // 联系人标签 + Remark string `json:"remark,omitempty"` // 联系人备注 + Avatar string `json:"avatar,omitempty"` // 联系人头像 + Position string `json:"position,omitempty"` // 联系人职位 +} + +// listUserMailboxMailContactResp ... +type listUserMailboxMailContactResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListUserMailboxMailContactResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_mail_contact_update.go b/api_mail_user_mailbox_mail_contact_update.go new file mode 100644 index 00000000..6144f768 --- /dev/null +++ b/api_mail_user_mailbox_mail_contact_update.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateUserMailboxMailContact 修改邮箱联系人信息 +// +// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/patch +func (r *MailService) UpdateUserMailboxMailContact(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error) { + if r.cli.mock.mockMailUpdateUserMailboxMailContact != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateUserMailboxMailContact mock enable") + return r.cli.mock.mockMailUpdateUserMailboxMailContact(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "UpdateUserMailboxMailContact", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/mail_contacts/:mail_contact_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateUserMailboxMailContactResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailUpdateUserMailboxMailContact mock MailUpdateUserMailboxMailContact method +func (r *Mock) MockMailUpdateUserMailboxMailContact(f func(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error)) { + r.mockMailUpdateUserMailboxMailContact = f +} + +// UnMockMailUpdateUserMailboxMailContact un-mock MailUpdateUserMailboxMailContact method +func (r *Mock) UnMockMailUpdateUserMailboxMailContact() { + r.mockMailUpdateUserMailboxMailContact = nil +} + +// UpdateUserMailboxMailContactReq ... +type UpdateUserMailboxMailContactReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id示例值: "123" + Name string `json:"name,omitempty"` // 联系人姓名示例值: "张三" 长度范围: `1` ~ `64` 字符 + Company *string `json:"company,omitempty"` // 联系人公司示例值: "张三科技有限公司" 最大长度: `64` 字符 + Phone *string `json:"phone,omitempty"` // 联系人手机号示例值: "19912341234" 最大长度: `40` 字符 + MailAddress *string `json:"mail_address,omitempty"` // 联系人邮箱示例值: "zhangsan@example.com" 最大长度: `319` 字符 + Tag *string `json:"tag,omitempty"` // 联系人标签示例值: "朋友" 最大长度: `64` 字符 + Remark *string `json:"remark,omitempty"` // 联系人备注示例值: "飞书发布会认识" 最大长度: `1000` 字符 + Position *string `json:"position,omitempty"` // 联系人职位示例值: "CFO" 最大长度: `64` 字符 +} + +// UpdateUserMailboxMailContactResp ... +type UpdateUserMailboxMailContactResp struct { +} + +// updateUserMailboxMailContactResp ... +type updateUserMailboxMailContactResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateUserMailboxMailContactResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_message_attachment_download_url.go b/api_mail_user_mailbox_message_attachment_download_url.go new file mode 100644 index 00000000..15841e24 --- /dev/null +++ b/api_mail_user_mailbox_message_attachment_download_url.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DownloadMailUserMailboxMessageAttachmentURL 获取附件下载链接 +// +// 下载链接仅可使用两次, 链接有效期两小时。 +// 使用 tenant_access_token 时, 需要申请邮件数据资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message-attachment/download_url +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-message/user_mailbox-message-attachment/download_url +func (r *MailService) DownloadMailUserMailboxMessageAttachmentURL(ctx context.Context, request *DownloadMailUserMailboxMessageAttachmentURLReq, options ...MethodOptionFunc) (*DownloadMailUserMailboxMessageAttachmentURLResp, *Response, error) { + if r.cli.mock.mockMailDownloadMailUserMailboxMessageAttachmentURL != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DownloadMailUserMailboxMessageAttachmentURL mock enable") + return r.cli.mock.mockMailDownloadMailUserMailboxMessageAttachmentURL(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "DownloadMailUserMailboxMessageAttachmentURL", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/:message_id/attachments/download_url", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(downloadMailUserMailboxMessageAttachmentURLResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailDownloadMailUserMailboxMessageAttachmentURL mock MailDownloadMailUserMailboxMessageAttachmentURL method +func (r *Mock) MockMailDownloadMailUserMailboxMessageAttachmentURL(f func(ctx context.Context, request *DownloadMailUserMailboxMessageAttachmentURLReq, options ...MethodOptionFunc) (*DownloadMailUserMailboxMessageAttachmentURLResp, *Response, error)) { + r.mockMailDownloadMailUserMailboxMessageAttachmentURL = f +} + +// UnMockMailDownloadMailUserMailboxMessageAttachmentURL un-mock MailDownloadMailUserMailboxMessageAttachmentURL method +func (r *Mock) UnMockMailDownloadMailUserMailboxMessageAttachmentURL() { + r.mockMailDownloadMailUserMailboxMessageAttachmentURL = nil +} + +// DownloadMailUserMailboxMessageAttachmentURLReq ... +type DownloadMailUserMailboxMessageAttachmentURLReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + MessageID string `path:"message_id" json:"-"` // 用户邮件 id, 获取方式见 [列出邮件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/list)示例值: "TUlHc1NoWFhJMXgyUi9VZTNVL3h6UnlkRUdzPQ==" + AttachmentIDs []string `query:"attachment_ids" json:"-"` // 附件 id 列表示例值: YQqYbQHoQoDqXjxWKhJbo8Gicjf 长度范围: `1` ~ `20` +} + +// DownloadMailUserMailboxMessageAttachmentURLResp ... +type DownloadMailUserMailboxMessageAttachmentURLResp struct { + DownloadURLs []*DownloadMailUserMailboxMessageAttachmentURLRespDownloadURL `json:"download_urls,omitempty"` // 下载链接列表 + FailedIDs []string `json:"failed_ids,omitempty"` // 获取失败的附件 id 列表 +} + +// DownloadMailUserMailboxMessageAttachmentURLRespDownloadURL ... +type DownloadMailUserMailboxMessageAttachmentURLRespDownloadURL struct { + AttachmentID string `json:"attachment_id,omitempty"` // 附件 id + DownloadURL string `json:"download_url,omitempty"` // 下载链接 +} + +// downloadMailUserMailboxMessageAttachmentURLResp ... +type downloadMailUserMailboxMessageAttachmentURLResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DownloadMailUserMailboxMessageAttachmentURLResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_message_get.go b/api_mail_user_mailbox_message_get.go new file mode 100644 index 00000000..f2ff8e2a --- /dev/null +++ b/api_mail_user_mailbox_message_get.go @@ -0,0 +1,124 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMailUserMailboxMessage 获取邮件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/get +// new doc: https://open.feishu.cn/document/server-api/mail-v1/user_mailbox-message/get +func (r *MailService) GetMailUserMailboxMessage(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error) { + if r.cli.mock.mockMailGetMailUserMailboxMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailUserMailboxMessage mock enable") + return r.cli.mock.mockMailGetMailUserMailboxMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "GetMailUserMailboxMessage", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/:message_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getMailUserMailboxMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailGetMailUserMailboxMessage mock MailGetMailUserMailboxMessage method +func (r *Mock) MockMailGetMailUserMailboxMessage(f func(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error)) { + r.mockMailGetMailUserMailboxMessage = f +} + +// UnMockMailGetMailUserMailboxMessage un-mock MailGetMailUserMailboxMessage method +func (r *Mock) UnMockMailGetMailUserMailboxMessage() { + r.mockMailGetMailUserMailboxMessage = nil +} + +// GetMailUserMailboxMessageReq ... +type GetMailUserMailboxMessageReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + MessageID string `path:"message_id" json:"-"` // 用户邮件 id示例值: "TUlHc1NoWFhJMXgyUi9VZTNVL3h6UnlkRUdzPQ==" +} + +// GetMailUserMailboxMessageResp ... +type GetMailUserMailboxMessageResp struct { + Message *GetMailUserMailboxMessageRespMessage `json:"message,omitempty"` // 邮件体 +} + +// GetMailUserMailboxMessageRespMessage ... +type GetMailUserMailboxMessageRespMessage struct { + Subject string `json:"subject,omitempty"` // 主题字段权限要求: 获取邮件主题 + To []*GetMailUserMailboxMessageRespMessageTo `json:"to,omitempty"` // 收件人字段权限要求: 获取邮件内容中地址相关字段 + Cc []*GetMailUserMailboxMessageRespMessageCc `json:"cc,omitempty"` // 抄送字段权限要求: 获取邮件内容中地址相关字段 + Bcc []*GetMailUserMailboxMessageRespMessageBcc `json:"bcc,omitempty"` // 秘送字段权限要求: 获取邮件内容中地址相关字段 + HeadFrom *GetMailUserMailboxMessageRespMessageHeadFrom `json:"head_from,omitempty"` // 发件人字段权限要求: 获取邮件内容中地址相关字段 + BodyHtml string `json:"body_html,omitempty"` // 正文(base64url)字段权限要求: 获取邮件正文 + InternalDate string `json:"internal_date,omitempty"` // 创建/收/发信时间(毫秒) + MessageState int64 `json:"message_state,omitempty"` // 邮件状态, 1(收信)2(发信)3(草稿) + SmtpMessageID string `json:"smtp_message_id,omitempty"` // RFC协议id + MessageID string `json:"message_id,omitempty"` // 邮件id + BodyPlainText string `json:"body_plain_text,omitempty"` // 正文纯文本(base64url)字段权限要求: 获取邮件正文 + Attachments []*GetMailUserMailboxMessageRespMessageAttachment `json:"attachments,omitempty"` // 邮件附件列表字段权限要求: 获取邮件正文 +} + +// GetMailUserMailboxMessageRespMessageAttachment ... +type GetMailUserMailboxMessageRespMessageAttachment struct { + Filename string `json:"filename,omitempty"` // 附件文件名 + ID string `json:"id,omitempty"` // 附件 id + AttachmentType int64 `json:"attachment_type,omitempty"` // 附件类型可选值有: 普通附件超大附件 +} + +// GetMailUserMailboxMessageRespMessageBcc ... +type GetMailUserMailboxMessageRespMessageBcc struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址 + Name string `json:"name,omitempty"` // 名称 +} + +// GetMailUserMailboxMessageRespMessageCc ... +type GetMailUserMailboxMessageRespMessageCc struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址 + Name string `json:"name,omitempty"` // 名称 +} + +// GetMailUserMailboxMessageRespMessageHeadFrom ... +type GetMailUserMailboxMessageRespMessageHeadFrom struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址 + Name string `json:"name,omitempty"` // 名称 +} + +// GetMailUserMailboxMessageRespMessageTo ... +type GetMailUserMailboxMessageRespMessageTo struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址 + Name string `json:"name,omitempty"` // 名称 +} + +// getMailUserMailboxMessageResp ... +type getMailUserMailboxMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMailUserMailboxMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_message_get_by_card.go b/api_mail_user_mailbox_message_get_by_card.go new file mode 100644 index 00000000..44ad9fc5 --- /dev/null +++ b/api_mail_user_mailbox_message_get_by_card.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMailUserMailboxMessageByCard 获取邮件卡片下的邮件列表 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/get_by_card +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-message/get_by_card +func (r *MailService) GetMailUserMailboxMessageByCard(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error) { + if r.cli.mock.mockMailGetMailUserMailboxMessageByCard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailUserMailboxMessageByCard mock enable") + return r.cli.mock.mockMailGetMailUserMailboxMessageByCard(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "GetMailUserMailboxMessageByCard", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/get_by_card", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getMailUserMailboxMessageByCardResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailGetMailUserMailboxMessageByCard mock MailGetMailUserMailboxMessageByCard method +func (r *Mock) MockMailGetMailUserMailboxMessageByCard(f func(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error)) { + r.mockMailGetMailUserMailboxMessageByCard = f +} + +// UnMockMailGetMailUserMailboxMessageByCard un-mock MailGetMailUserMailboxMessageByCard method +func (r *Mock) UnMockMailGetMailUserMailboxMessageByCard() { + r.mockMailGetMailUserMailboxMessageByCard = nil +} + +// GetMailUserMailboxMessageByCardReq ... +type GetMailUserMailboxMessageByCardReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + CardID string `query:"card_id" json:"-"` // 邮件卡片ID, 可通过[接收消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive)事件的推送获取示例值: 512ca581-6059-4449-8150-5522e6641d32 + OwnerID string `query:"owner_id" json:"-"` // 邮件卡片OwnerID, 可通过[接收消息]( /ssl:ttdoc/server-docs/im-v1/message/events/receive)事件的推送获取(与`user_id_type`无关)示例值: 1234567890 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetMailUserMailboxMessageByCardResp ... +type GetMailUserMailboxMessageByCardResp struct { + OwnerInfo *GetMailUserMailboxMessageByCardRespOwnerInfo `json:"owner_info,omitempty"` // 邮件Owner信息 + MessageIDs []string `json:"message_ids,omitempty"` // 邮件ID列表 + CardID string `json:"card_id,omitempty"` // 邮件卡片ID +} + +// GetMailUserMailboxMessageByCardRespOwnerInfo ... +type GetMailUserMailboxMessageByCardRespOwnerInfo struct { + Type string `json:"type,omitempty"` // owner是个人邮箱还是公共邮箱示例值: `user`: 个人邮箱- `public_mailbox`: 公共邮箱 + OwnerUserID string `json:"owner_user_id,omitempty"` // 邮件卡片owner的ID, type为`user`时非空(与`user_id_type`对应) + PublicMailboxID string `json:"public_mailbox_id,omitempty"` // 公共邮箱唯一标识, type为`public_mailbox`时非空 +} + +// getMailUserMailboxMessageByCardResp ... +type getMailUserMailboxMessageByCardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMailUserMailboxMessageByCardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_message_list.go b/api_mail_user_mailbox_message_list.go new file mode 100644 index 00000000..f4b28925 --- /dev/null +++ b/api_mail_user_mailbox_message_list.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListMailUserMailboxMessage 列出邮件列表 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/list +func (r *MailService) ListMailUserMailboxMessage(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error) { + if r.cli.mock.mockMailListMailUserMailboxMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxMessage mock enable") + return r.cli.mock.mockMailListMailUserMailboxMessage(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "ListMailUserMailboxMessage", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listMailUserMailboxMessageResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailListMailUserMailboxMessage mock MailListMailUserMailboxMessage method +func (r *Mock) MockMailListMailUserMailboxMessage(f func(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error)) { + r.mockMailListMailUserMailboxMessage = f +} + +// UnMockMailListMailUserMailboxMessage un-mock MailListMailUserMailboxMessage method +func (r *Mock) UnMockMailListMailUserMailboxMessage() { + r.mockMailListMailUserMailboxMessage = nil +} + +// ListMailUserMailboxMessageReq ... +type ListMailUserMailboxMessageReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 1 取值范围: `1` ~ `20` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: xxx + FolderID string `query:"folder_id" json:"-"` // 文件夹 id示例值: INBOX 或者用户文件夹 id + OnlyUnread *bool `query:"only_unread" json:"-"` // 是否只查询未读邮件示例值: true +} + +// ListMailUserMailboxMessageResp ... +type ListMailUserMailboxMessageResp struct { + Items []string `json:"items,omitempty"` // 邮件 id 列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// listMailUserMailboxMessageResp ... +type listMailUserMailboxMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListMailUserMailboxMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_message_send.go b/api_mail_user_mailbox_message_send.go new file mode 100644 index 00000000..2ac31370 --- /dev/null +++ b/api_mail_user_mailbox_message_send.go @@ -0,0 +1,116 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateMailUserMailboxMessageSend 发送邮件 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/send +func (r *MailService) CreateMailUserMailboxMessageSend(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) { + if r.cli.mock.mockMailCreateMailUserMailboxMessageSend != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxMessageSend mock enable") + return r.cli.mock.mockMailCreateMailUserMailboxMessageSend(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "CreateMailUserMailboxMessageSend", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/send", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(createMailUserMailboxMessageSendResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailCreateMailUserMailboxMessageSend mock MailCreateMailUserMailboxMessageSend method +func (r *Mock) MockMailCreateMailUserMailboxMessageSend(f func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error)) { + r.mockMailCreateMailUserMailboxMessageSend = f +} + +// UnMockMailCreateMailUserMailboxMessageSend un-mock MailCreateMailUserMailboxMessageSend method +func (r *Mock) UnMockMailCreateMailUserMailboxMessageSend() { + r.mockMailCreateMailUserMailboxMessageSend = nil +} + +// CreateMailUserMailboxMessageSendReq ... +type CreateMailUserMailboxMessageSendReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + Subject *string `json:"subject,omitempty"` // 主题示例值: "邮件标题" + To []*CreateMailUserMailboxMessageSendReqTo `json:"to,omitempty"` // 收件人 + Raw *string `json:"raw,omitempty"` // eml数据示例值: "U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo=" + Cc []*CreateMailUserMailboxMessageSendReqCc `json:"cc,omitempty"` // 抄送 + Bcc []*CreateMailUserMailboxMessageSendReqBcc `json:"bcc,omitempty"` // 密送 + BodyHtml *string `json:"body_html,omitempty"` // 正文示例值: "xxxx" + BodyPlainText *string `json:"body_plain_text,omitempty"` // 正文纯文本示例值: "xxxx" + Attachments []*CreateMailUserMailboxMessageSendReqAttachment `json:"attachments,omitempty"` // 附件 + DedupeKey *string `json:"dedupe_key,omitempty"` // 去重键示例值: "abc-ddd-eee-fff-ggg" + HeadFrom *CreateMailUserMailboxMessageSendReqHeadFrom `json:"head_from,omitempty"` // EML中发件人信息 +} + +// CreateMailUserMailboxMessageSendReqAttachment ... +type CreateMailUserMailboxMessageSendReqAttachment struct { + Body string `json:"body,omitempty"` // 附件的正文, 使用 base64url 编码(支持的文件最大 37MB)示例值: "aGVsbG8gd29ybGQK" 最大长度: `51729750` 字符 + Filename string `json:"filename,omitempty"` // 附件文件名示例值: "helloworld.txt" + IsInline *bool `json:"is_inline,omitempty"` // 是否为内联图片, true 表示是内联图片示例值: false默认值: `false` + Cid *string `json:"cid,omitempty"` // 内容 ID, HTML 中通过 cid: 协议引用该图片示例值: "image1@example.com" +} + +// CreateMailUserMailboxMessageSendReqBcc ... +type CreateMailUserMailboxMessageSendReqBcc struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + Name *string `json:"name,omitempty"` // 名称示例值: "Mike" +} + +// CreateMailUserMailboxMessageSendReqCc ... +type CreateMailUserMailboxMessageSendReqCc struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + Name *string `json:"name,omitempty"` // 名称示例值: "Mike" +} + +// CreateMailUserMailboxMessageSendReqHeadFrom ... +type CreateMailUserMailboxMessageSendReqHeadFrom struct { + Name *string `json:"name,omitempty"` // 名称示例值: "Mike" +} + +// CreateMailUserMailboxMessageSendReqTo ... +type CreateMailUserMailboxMessageSendReqTo struct { + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + Name *string `json:"name,omitempty"` // 名称示例值: "Mike" +} + +// CreateMailUserMailboxMessageSendResp ... +type CreateMailUserMailboxMessageSendResp struct { + MessageID string `json:"message_id,omitempty"` // 邮件ID + ThreadID string `json:"thread_id,omitempty"` // 会话ID +} + +// createMailUserMailboxMessageSendResp ... +type createMailUserMailboxMessageSendResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateMailUserMailboxMessageSendResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_rule_create.go b/api_mail_user_mailbox_rule_create.go new file mode 100644 index 00000000..8c6bf985 --- /dev/null +++ b/api_mail_user_mailbox_rule_create.go @@ -0,0 +1,138 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateMailUserMailboxRule 创建收信规则 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/create +func (r *MailService) CreateMailUserMailboxRule(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) { + if r.cli.mock.mockMailCreateMailUserMailboxRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxRule mock enable") + return r.cli.mock.mockMailCreateMailUserMailboxRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "CreateMailUserMailboxRule", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createMailUserMailboxRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailCreateMailUserMailboxRule mock MailCreateMailUserMailboxRule method +func (r *Mock) MockMailCreateMailUserMailboxRule(f func(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error)) { + r.mockMailCreateMailUserMailboxRule = f +} + +// UnMockMailCreateMailUserMailboxRule un-mock MailCreateMailUserMailboxRule method +func (r *Mock) UnMockMailCreateMailUserMailboxRule() { + r.mockMailCreateMailUserMailboxRule = nil +} + +// CreateMailUserMailboxRuleReq ... +type CreateMailUserMailboxRuleReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" + Condition *CreateMailUserMailboxRuleReqCondition `json:"condition,omitempty"` // 匹配条件 + Action *CreateMailUserMailboxRuleReqAction `json:"action,omitempty"` // 匹配命中后的操作 + IgnoreTheRestOfRules bool `json:"ignore_the_rest_of_rules,omitempty"` // 是否终点规则示例值: false + Name string `json:"name,omitempty"` // 规则名称示例值: "将李三的邮件标记为垃圾邮件" 长度范围: `1` ~ `255` 字符 + IsEnable bool `json:"is_enable,omitempty"` // 是否启用示例值: false +} + +// CreateMailUserMailboxRuleReqAction ... +type CreateMailUserMailboxRuleReqAction struct { + Items []*CreateMailUserMailboxRuleReqActionItem `json:"items,omitempty"` // 匹配中规则后的操作列表 长度范围: `1` ~ `32` +} + +// CreateMailUserMailboxRuleReqActionItem ... +type CreateMailUserMailboxRuleReqActionItem struct { + Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` + Input *string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id示例值: "283412371233" +} + +// CreateMailUserMailboxRuleReqCondition ... +type CreateMailUserMailboxRuleReqCondition struct { + MatchType int64 `json:"match_type,omitempty"` // 匹配类型示例值: 1可选值有: 满足所有条件满足任意条件 取值范围: `1` ~ `2` + Items []*CreateMailUserMailboxRuleReqConditionItem `json:"items,omitempty"` // 匹配规则列表 长度范围: `1` ~ `32` +} + +// CreateMailUserMailboxRuleReqConditionItem ... +type CreateMailUserMailboxRuleReqConditionItem struct { + Type int64 `json:"type,omitempty"` // 匹配条件左值示例值: 1可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 取值范围: `1` ~ `16` + Operator int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` + Input *string `json:"input,omitempty"` // 匹配条件右值示例值: "hello@world.com" +} + +// CreateMailUserMailboxRuleResp ... +type CreateMailUserMailboxRuleResp struct { + Rule *CreateMailUserMailboxRuleRespRule `json:"rule,omitempty"` // 规则实体 +} + +// CreateMailUserMailboxRuleRespRule ... +type CreateMailUserMailboxRuleRespRule struct { + ID string `json:"id,omitempty"` // 规则 id + Condition *CreateMailUserMailboxRuleRespRuleCondition `json:"condition,omitempty"` // 匹配条件 + Action *CreateMailUserMailboxRuleRespRuleAction `json:"action,omitempty"` // 匹配命中后的操作 + IgnoreTheRestOfRules bool `json:"ignore_the_rest_of_rules,omitempty"` // 是否终点规则 + Name string `json:"name,omitempty"` // 规则名称 + IsEnable bool `json:"is_enable,omitempty"` // 是否启用 +} + +// CreateMailUserMailboxRuleRespRuleAction ... +type CreateMailUserMailboxRuleRespRuleAction struct { + Items []*CreateMailUserMailboxRuleRespRuleActionItem `json:"items,omitempty"` // 匹配中规则后的操作列表 +} + +// CreateMailUserMailboxRuleRespRuleActionItem ... +type CreateMailUserMailboxRuleRespRuleActionItem struct { + Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) + Input string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id +} + +// CreateMailUserMailboxRuleRespRuleCondition ... +type CreateMailUserMailboxRuleRespRuleCondition struct { + MatchType int64 `json:"match_type,omitempty"` // 匹配类型可选值有: 满足所有条件满足任意条件 + Items []*CreateMailUserMailboxRuleRespRuleConditionItem `json:"items,omitempty"` // 匹配规则列表 +} + +// CreateMailUserMailboxRuleRespRuleConditionItem ... +type CreateMailUserMailboxRuleRespRuleConditionItem struct { + Type int64 `json:"type,omitempty"` // 匹配条件左值可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 + Operator int64 `json:"operator,omitempty"` // 匹配条件操作符可选值有: 包含不包含开头是结尾是是不是包含自己为空 + Input string `json:"input,omitempty"` // 匹配条件右值 +} + +// createMailUserMailboxRuleResp ... +type createMailUserMailboxRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateMailUserMailboxRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_rule_delete.go b/api_mail_user_mailbox_rule_delete.go new file mode 100644 index 00000000..204375b7 --- /dev/null +++ b/api_mail_user_mailbox_rule_delete.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteMailUserMailboxRule 删除收信规则 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/delete +func (r *MailService) DeleteMailUserMailboxRule(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) { + if r.cli.mock.mockMailDeleteMailUserMailboxRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteMailUserMailboxRule mock enable") + return r.cli.mock.mockMailDeleteMailUserMailboxRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "DeleteMailUserMailboxRule", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules/:rule_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteMailUserMailboxRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailDeleteMailUserMailboxRule mock MailDeleteMailUserMailboxRule method +func (r *Mock) MockMailDeleteMailUserMailboxRule(f func(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error)) { + r.mockMailDeleteMailUserMailboxRule = f +} + +// UnMockMailDeleteMailUserMailboxRule un-mock MailDeleteMailUserMailboxRule method +func (r *Mock) UnMockMailDeleteMailUserMailboxRule() { + r.mockMailDeleteMailUserMailboxRule = nil +} + +// DeleteMailUserMailboxRuleReq ... +type DeleteMailUserMailboxRuleReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + RuleID string `path:"rule_id" json:"-"` // 规则 id示例值: "123123123" +} + +// DeleteMailUserMailboxRuleResp ... +type DeleteMailUserMailboxRuleResp struct { +} + +// deleteMailUserMailboxRuleResp ... +type deleteMailUserMailboxRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteMailUserMailboxRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_rule_list.go b/api_mail_user_mailbox_rule_list.go new file mode 100644 index 00000000..e37a410d --- /dev/null +++ b/api_mail_user_mailbox_rule_list.go @@ -0,0 +1,109 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListMailUserMailboxRule 列出收信规则 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/list +func (r *MailService) ListMailUserMailboxRule(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) { + if r.cli.mock.mockMailListMailUserMailboxRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxRule mock enable") + return r.cli.mock.mockMailListMailUserMailboxRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "ListMailUserMailboxRule", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listMailUserMailboxRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailListMailUserMailboxRule mock MailListMailUserMailboxRule method +func (r *Mock) MockMailListMailUserMailboxRule(f func(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error)) { + r.mockMailListMailUserMailboxRule = f +} + +// UnMockMailListMailUserMailboxRule un-mock MailListMailUserMailboxRule method +func (r *Mock) UnMockMailListMailUserMailboxRule() { + r.mockMailListMailUserMailboxRule = nil +} + +// ListMailUserMailboxRuleReq ... +type ListMailUserMailboxRuleReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" +} + +// ListMailUserMailboxRuleResp ... +type ListMailUserMailboxRuleResp struct { + Items []*ListMailUserMailboxRuleRespItem `json:"items,omitempty"` // 规则列表 +} + +// ListMailUserMailboxRuleRespItem ... +type ListMailUserMailboxRuleRespItem struct { + ID string `json:"id,omitempty"` // 规则 id + Condition *ListMailUserMailboxRuleRespItemCondition `json:"condition,omitempty"` // 匹配条件 + Action *ListMailUserMailboxRuleRespItemAction `json:"action,omitempty"` // 匹配命中后的操作 + IgnoreTheRestOfRules bool `json:"ignore_the_rest_of_rules,omitempty"` // 是否终点规则 + Name string `json:"name,omitempty"` // 规则名称 + IsEnable bool `json:"is_enable,omitempty"` // 是否启用 +} + +// ListMailUserMailboxRuleRespItemAction ... +type ListMailUserMailboxRuleRespItemAction struct { + Items []*ListMailUserMailboxRuleRespItemActionItem `json:"items,omitempty"` // 匹配中规则后的操作列表 +} + +// ListMailUserMailboxRuleRespItemActionItem ... +type ListMailUserMailboxRuleRespItemActionItem struct { + Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) + Input string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id +} + +// ListMailUserMailboxRuleRespItemCondition ... +type ListMailUserMailboxRuleRespItemCondition struct { + MatchType int64 `json:"match_type,omitempty"` // 匹配类型可选值有: 满足所有条件满足任意条件 + Items []*ListMailUserMailboxRuleRespItemConditionItem `json:"items,omitempty"` // 匹配规则列表 +} + +// ListMailUserMailboxRuleRespItemConditionItem ... +type ListMailUserMailboxRuleRespItemConditionItem struct { + Type int64 `json:"type,omitempty"` // 匹配条件左值可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 + Operator int64 `json:"operator,omitempty"` // 匹配条件操作符可选值有: 包含不包含开头是结尾是是不是包含自己为空 + Input string `json:"input,omitempty"` // 匹配条件右值 +} + +// listMailUserMailboxRuleResp ... +type listMailUserMailboxRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListMailUserMailboxRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_rule_reorder.go b/api_mail_user_mailbox_rule_reorder.go new file mode 100644 index 00000000..9e3720eb --- /dev/null +++ b/api_mail_user_mailbox_rule_reorder.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateMailUserMailboxRuleReorder 对收信规则重新排序 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/reorder +func (r *MailService) CreateMailUserMailboxRuleReorder(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) { + if r.cli.mock.mockMailCreateMailUserMailboxRuleReorder != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxRuleReorder mock enable") + return r.cli.mock.mockMailCreateMailUserMailboxRuleReorder(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "CreateMailUserMailboxRuleReorder", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules/reorder", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createMailUserMailboxRuleReorderResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailCreateMailUserMailboxRuleReorder mock MailCreateMailUserMailboxRuleReorder method +func (r *Mock) MockMailCreateMailUserMailboxRuleReorder(f func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error)) { + r.mockMailCreateMailUserMailboxRuleReorder = f +} + +// UnMockMailCreateMailUserMailboxRuleReorder un-mock MailCreateMailUserMailboxRuleReorder method +func (r *Mock) UnMockMailCreateMailUserMailboxRuleReorder() { + r.mockMailCreateMailUserMailboxRuleReorder = nil +} + +// CreateMailUserMailboxRuleReorderReq ... +type CreateMailUserMailboxRuleReorderReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" + RuleIDs []string `json:"rule_ids,omitempty"` // 规则 id 列表示例值: ["11111111"] 最小长度: `1` +} + +// CreateMailUserMailboxRuleReorderResp ... +type CreateMailUserMailboxRuleReorderResp struct { +} + +// createMailUserMailboxRuleReorderResp ... +type createMailUserMailboxRuleReorderResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateMailUserMailboxRuleReorderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mail_user_mailbox_rule_update.go b/api_mail_user_mailbox_rule_update.go new file mode 100644 index 00000000..2aafdfb6 --- /dev/null +++ b/api_mail_user_mailbox_rule_update.go @@ -0,0 +1,104 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateMailUserMailboxRule 更新收信规则 +// +// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/update +func (r *MailService) UpdateMailUserMailboxRule(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) { + if r.cli.mock.mockMailUpdateMailUserMailboxRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateMailUserMailboxRule mock enable") + return r.cli.mock.mockMailUpdateMailUserMailboxRule(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Mail", + API: "UpdateMailUserMailboxRule", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules/:rule_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateMailUserMailboxRuleResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMailUpdateMailUserMailboxRule mock MailUpdateMailUserMailboxRule method +func (r *Mock) MockMailUpdateMailUserMailboxRule(f func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error)) { + r.mockMailUpdateMailUserMailboxRule = f +} + +// UnMockMailUpdateMailUserMailboxRule un-mock MailUpdateMailUserMailboxRule method +func (r *Mock) UnMockMailUpdateMailUserMailboxRule() { + r.mockMailUpdateMailUserMailboxRule = nil +} + +// UpdateMailUserMailboxRuleReq ... +type UpdateMailUserMailboxRuleReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + RuleID string `path:"rule_id" json:"-"` // 规则 id示例值: "123123123" + Condition *UpdateMailUserMailboxRuleReqCondition `json:"condition,omitempty"` // 匹配条件 + Action *UpdateMailUserMailboxRuleReqAction `json:"action,omitempty"` // 匹配命中后的操作 + IgnoreTheRestOfRules bool `json:"ignore_the_rest_of_rules,omitempty"` // 是否终点规则示例值: false + Name string `json:"name,omitempty"` // 规则名称示例值: "将李三的邮件标记为垃圾邮件" 长度范围: `1` ~ `255` 字符 + IsEnable bool `json:"is_enable,omitempty"` // 是否启用示例值: false +} + +// UpdateMailUserMailboxRuleReqAction ... +type UpdateMailUserMailboxRuleReqAction struct { + Items []*UpdateMailUserMailboxRuleReqActionItem `json:"items,omitempty"` // 匹配中规则后的操作列表 长度范围: `1` ~ `32` +} + +// UpdateMailUserMailboxRuleReqActionItem ... +type UpdateMailUserMailboxRuleReqActionItem struct { + Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` + Input *string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id示例值: "283412371233" +} + +// UpdateMailUserMailboxRuleReqCondition ... +type UpdateMailUserMailboxRuleReqCondition struct { + MatchType int64 `json:"match_type,omitempty"` // 匹配类型示例值: 1可选值有: 满足所有条件满足任意条件 取值范围: `1` ~ `2` + Items []*UpdateMailUserMailboxRuleReqConditionItem `json:"items,omitempty"` // 匹配规则列表 长度范围: `1` ~ `32` +} + +// UpdateMailUserMailboxRuleReqConditionItem ... +type UpdateMailUserMailboxRuleReqConditionItem struct { + Type int64 `json:"type,omitempty"` // 匹配条件左值示例值: 1可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 取值范围: `1` ~ `16` + Operator int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` + Input *string `json:"input,omitempty"` // 匹配条件右值示例值: "hello@world.com" +} + +// UpdateMailUserMailboxRuleResp ... +type UpdateMailUserMailboxRuleResp struct { +} + +// updateMailUserMailboxRuleResp ... +type updateMailUserMailboxRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateMailUserMailboxRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mdm_batch_country_region_get.go b/api_mdm_batch_country_region_get.go new file mode 100644 index 00000000..5c2c0e82 --- /dev/null +++ b/api_mdm_batch_country_region_get.go @@ -0,0 +1,110 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMDMBatchCountryRegion 通过mdmcode批量查询国家/地区信息。资源介绍请参考[概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/country_region/resource-definition)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/batch_country_region/get +// new doc: https://open.feishu.cn/document/mdm-v1/mdm-v3/country_region/get +func (r *MDMService) GetMDMBatchCountryRegion(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) { + if r.cli.mock.mockMDMGetMDMBatchCountryRegion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] MDM#GetMDMBatchCountryRegion mock enable") + return r.cli.mock.mockMDMGetMDMBatchCountryRegion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "MDM", + API: "GetMDMBatchCountryRegion", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mdm/v3/batch_country_region", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getMDMBatchCountryRegionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMDMGetMDMBatchCountryRegion mock MDMGetMDMBatchCountryRegion method +func (r *Mock) MockMDMGetMDMBatchCountryRegion(f func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error)) { + r.mockMDMGetMDMBatchCountryRegion = f +} + +// UnMockMDMGetMDMBatchCountryRegion un-mock MDMGetMDMBatchCountryRegion method +func (r *Mock) UnMockMDMGetMDMBatchCountryRegion() { + r.mockMDMGetMDMBatchCountryRegion = nil +} + +// GetMDMBatchCountryRegionReq ... +type GetMDMBatchCountryRegionReq struct { + Fields []string `query:"fields" json:"-"` // 需要的查询字段集示例值: name 长度范围: `1` ~ `100` + IDs []string `query:"ids" json:"-"` // 主数据编码集示例值: MDCT00000001 长度范围: `1` ~ `100` + Languages []string `query:"languages" json:"-"` // 希望返回的语言种类, 支持格式如下: 中文: zh-CN- 英文: en-US- 日文: ja-JP 对于多语文本字段, 传入特定语言, 将会返回对应语言文本示例值: en-US 长度范围: `0` ~ `100` +} + +// GetMDMBatchCountryRegionResp ... +type GetMDMBatchCountryRegionResp struct { + Data []*GetMDMBatchCountryRegionRespData `json:"data,omitempty"` // 国家/地区目录列表 +} + +// GetMDMBatchCountryRegionRespData ... +type GetMDMBatchCountryRegionRespData struct { + Alpha3Code string `json:"alpha_3_code,omitempty"` // 三位字母代码。与ISO国家代码的三位代码一致。 + Alpha2Code string `json:"alpha_2_code,omitempty"` // 两位字母代码。与ISO国家代码的二位代码一致。 + NumericCode string `json:"numeric_code,omitempty"` // 数字代码。与ISO国家代码的Numeric代码一致 + Name *GetMDMBatchCountryRegionRespDataName `json:"name,omitempty"` // 国家/地区名称 + MDMCode string `json:"mdm_code,omitempty"` // 主数据编码(系统生成的唯一永久代码, 格式为“MDCT+8位数字”) + FullName *GetMDMBatchCountryRegionRespDataFullName `json:"full_name,omitempty"` // 国家/地区全称 + GlobalCode string `json:"global_code,omitempty"` // 国际电话区号 + Status string `json:"status,omitempty"` // 是否生效。0代表否, 1代表是 + Continents *GetMDMBatchCountryRegionRespDataContinents `json:"continents,omitempty"` // 所属大洲。可选值如下 1-亚洲, 2-欧洲, 3-非洲, 4-北美洲, 5-南美洲, 6-大洋洲, 7-南极洲) +} + +// GetMDMBatchCountryRegionRespDataContinents ... +type GetMDMBatchCountryRegionRespDataContinents struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualName interface{} `json:"multilingual_name,omitempty"` // 入参languages中所有语言对应的值。 +} + +// GetMDMBatchCountryRegionRespDataFullName ... +type GetMDMBatchCountryRegionRespDataFullName struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualValue interface{} `json:"multilingual_value,omitempty"` // 入参languages中所有语言对应的值。 + ReturnLanguage string `json:"return_language,omitempty"` // value实际返回的值对应的语言, 如"zh-CN" +} + +// GetMDMBatchCountryRegionRespDataName ... +type GetMDMBatchCountryRegionRespDataName struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualValue interface{} `json:"multilingual_value,omitempty"` // 入参languages中所有语言对应的值。 + ReturnLanguage string `json:"return_language,omitempty"` // value实际返回的值对应的语言, 如"zh-CN" +} + +// getMDMBatchCountryRegionResp ... +type getMDMBatchCountryRegionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMDMBatchCountryRegionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mdm_country_region_list.go b/api_mdm_country_region_list.go new file mode 100644 index 00000000..d47cc32a --- /dev/null +++ b/api_mdm_country_region_list.go @@ -0,0 +1,139 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListMDMCountryRegion 分页批量查询国家/地区。资源介绍请参考[概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/country_region/resource-definition)。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/mdm-v3/country_region/list +// new doc: https://open.feishu.cn/document/mdm-v1/mdm-v3/country_region/list +func (r *MDMService) ListMDMCountryRegion(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) { + if r.cli.mock.mockMDMListMDMCountryRegion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] MDM#ListMDMCountryRegion mock enable") + return r.cli.mock.mockMDMListMDMCountryRegion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "MDM", + API: "ListMDMCountryRegion", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/mdm/v3/country_regions", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listMDMCountryRegionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMDMListMDMCountryRegion mock MDMListMDMCountryRegion method +func (r *Mock) MockMDMListMDMCountryRegion(f func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error)) { + r.mockMDMListMDMCountryRegion = f +} + +// UnMockMDMListMDMCountryRegion un-mock MDMListMDMCountryRegion method +func (r *Mock) UnMockMDMListMDMCountryRegion() { + r.mockMDMListMDMCountryRegion = nil +} + +// ListMDMCountryRegionReq ... +type ListMDMCountryRegionReq struct { + Languages []string `query:"languages" json:"-"` // 希望返回的语言种类, 支持格式如下: 中文: zh-CN- 英文: en-US- 日文: ja-JP 对于多语文本字段, 传入特定语言, 将会返回对应语言文本示例值: en-US 长度范围: `0` ~ `100` + Fields []string `query:"fields" json:"-"` // 需要的查询字段集示例值: name 长度范围: `1` ~ `100` + Limit *int64 `query:"limit" json:"-"` // 查询页大小示例值: 10 取值范围: `1` ~ `1000` + Offset *int64 `query:"offset" json:"-"` // 查询起始位置示例值: 0 取值范围: `0` ~ `100000` + ReturnCount *bool `query:"return_count" json:"-"` // 是否返回总数示例值: true + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Filter *ListMDMCountryRegionReqFilter `json:"filter,omitempty"` // 过滤参数 + Common interface{} `json:"common,omitempty"` // 此参数可忽略 +} + +// ListMDMCountryRegionReqFilter ... +type ListMDMCountryRegionReqFilter struct { + Logic string `json:"logic,omitempty"` // 逻辑关系 同一层级的多个expression由logic参数决定使用“与/或”条件 0=and, 1=or示例值: "0" + Expressions []*ListMDMCountryRegionReqFilterExpression `json:"expressions,omitempty"` // 过滤条件 长度范围: `0` ~ `100` +} + +// ListMDMCountryRegionReqFilterExpression ... +type ListMDMCountryRegionReqFilterExpression struct { + Field string `json:"field,omitempty"` // 字段名示例值: "name" + Operator string `json:"operator,omitempty"` // 运算符。 0=等于, 1=不等于, 2=大于, 3=大于等于, 4=小于, 5=小于等于, 6=属于任意, 7=不属于任意, 8=匹配, 9=前缀匹配, 10=后缀匹配, 11=为空, 12=不为空示例值: "0" + Value *ListMDMCountryRegionReqFilterExpressionValue `json:"value,omitempty"` // 字段值 +} + +// ListMDMCountryRegionReqFilterExpressionValue ... +type ListMDMCountryRegionReqFilterExpressionValue struct { + StringValue *string `json:"string_value,omitempty"` // 字符串值示例值: "安道尔" + BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true + IntValue *string `json:"int_value,omitempty"` // 整型值示例值: "111" + StringListValue []string `json:"string_list_value,omitempty"` // 字符串列表值示例值: ["1"] + IntListValue []string `json:"int_list_value,omitempty"` // 整型列表值示例值: ["1"] +} + +// ListMDMCountryRegionResp ... +type ListMDMCountryRegionResp struct { + Data []*ListMDMCountryRegionRespData `json:"data,omitempty"` // 国家/地区目录列表 + Total int64 `json:"total,omitempty"` // 总数 + NextPageToken string `json:"next_page_token,omitempty"` // 下一次分页参数 +} + +// ListMDMCountryRegionRespData ... +type ListMDMCountryRegionRespData struct { + Alpha3Code string `json:"alpha_3_code,omitempty"` // 三位字母代码。与ISO国家代码的三位代码一致。 + Alpha2Code string `json:"alpha_2_code,omitempty"` // 两位字母代码。与ISO国家代码的二位代码一致。 + NumericCode string `json:"numeric_code,omitempty"` // 数字代码。与ISO国家代码的Numeric代码一致 + Name *ListMDMCountryRegionRespDataName `json:"name,omitempty"` // 国家/地区名称 + MDMCode string `json:"mdm_code,omitempty"` // 主数据编码(系统生成的唯一永久代码, 格式为“MDCT+8位数字”) + FullName *ListMDMCountryRegionRespDataFullName `json:"full_name,omitempty"` // 国家/地区全称 + GlobalCode string `json:"global_code,omitempty"` // 国际电话区号 + Status string `json:"status,omitempty"` // 是否生效。0代表否, 1代表是 + Continents *ListMDMCountryRegionRespDataContinents `json:"continents,omitempty"` // 所属大洲。可选值如下 1-亚洲, 2-欧洲, 3-非洲, 4-北美洲, 5-南美洲, 6-大洋洲, 7-南极洲) +} + +// ListMDMCountryRegionRespDataContinents ... +type ListMDMCountryRegionRespDataContinents struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualName interface{} `json:"multilingual_name,omitempty"` // 入参languages中所有语言对应的值。 +} + +// ListMDMCountryRegionRespDataFullName ... +type ListMDMCountryRegionRespDataFullName struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualValue interface{} `json:"multilingual_value,omitempty"` // 入参languages中所有语言对应的值。 + ReturnLanguage string `json:"return_language,omitempty"` // value实际返回的值对应的语言, 如"zh-CN" +} + +// ListMDMCountryRegionRespDataName ... +type ListMDMCountryRegionRespDataName struct { + Value string `json:"value,omitempty"` // 入参languages中排序第一的语言对应的值。 + MultilingualValue interface{} `json:"multilingual_value,omitempty"` // 入参languages中所有语言对应的值。 + ReturnLanguage string `json:"return_language,omitempty"` // value实际返回的值对应的语言, 如"zh-CN" +} + +// listMDMCountryRegionResp ... +type listMDMCountryRegionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListMDMCountryRegionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_mdm_user_auth_data_relation_bind.go b/api_mdm_user_auth_data_relation_bind.go index 40e7df44..3d65318c 100644 --- a/api_mdm_user_auth_data_relation_bind.go +++ b/api_mdm_user_auth_data_relation_bind.go @@ -66,7 +66,8 @@ type BindMDMUserAuthDataRelationReq struct { } // BindMDMUserAuthDataRelationResp ... -type BindMDMUserAuthDataRelationResp struct{} +type BindMDMUserAuthDataRelationResp struct { +} // bindMDMUserAuthDataRelationResp ... type bindMDMUserAuthDataRelationResp struct { diff --git a/api_mdm_user_auth_data_relation_unbind.go b/api_mdm_user_auth_data_relation_unbind.go index ccfc3487..4ef459fe 100644 --- a/api_mdm_user_auth_data_relation_unbind.go +++ b/api_mdm_user_auth_data_relation_unbind.go @@ -66,7 +66,8 @@ type UnbindMDMUserAuthDataRelationReq struct { } // UnbindMDMUserAuthDataRelationResp ... -type UnbindMDMUserAuthDataRelationResp struct{} +type UnbindMDMUserAuthDataRelationResp struct { +} // unbindMDMUserAuthDataRelationResp ... type unbindMDMUserAuthDataRelationResp struct { diff --git a/api_meeting_room_customization.go b/api_meeting_room_customization.go new file mode 100644 index 00000000..22d494cf --- /dev/null +++ b/api_meeting_room_customization.go @@ -0,0 +1,121 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMeetingRoomCustomization 该接口用于获取会议室个性化配置。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uIjM5UjLyITO14iMykTN/query-meeting-room-customization-setting +func (r *MeetingRoomService) GetMeetingRoomCustomization(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) { + if r.cli.mock.mockMeetingRoomGetMeetingRoomCustomization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] MeetingRoom#GetMeetingRoomCustomization mock enable") + return r.cli.mock.mockMeetingRoomGetMeetingRoomCustomization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "MeetingRoom", + API: "GetMeetingRoomCustomization", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/customization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getMeetingRoomCustomizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMeetingRoomGetMeetingRoomCustomization mock MeetingRoomGetMeetingRoomCustomization method +func (r *Mock) MockMeetingRoomGetMeetingRoomCustomization(f func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error)) { + r.mockMeetingRoomGetMeetingRoomCustomization = f +} + +// UnMockMeetingRoomGetMeetingRoomCustomization un-mock MeetingRoomGetMeetingRoomCustomization method +func (r *Mock) UnMockMeetingRoomGetMeetingRoomCustomization() { + r.mockMeetingRoomGetMeetingRoomCustomization = nil +} + +// GetMeetingRoomCustomizationReq ... +type GetMeetingRoomCustomizationReq struct { + RoomIDs []string `json:"room_ids,omitempty"` // 要获取的会议室ID列表 +} + +// GetMeetingRoomCustomizationResp ... +type GetMeetingRoomCustomizationResp struct { + ErrorRoomIDs []*GetMeetingRoomCustomizationRespErrorRoomID `json:"error_room_ids,omitempty"` // 返回错误的入参 + RoomIDToCustomization *GetMeetingRoomCustomizationRespRoomIDToCustomization `json:"room_id_to_customization,omitempty"` // 会议室ID-个性化配置的映射 +} + +// GetMeetingRoomCustomizationRespErrorRoomID ... +type GetMeetingRoomCustomizationRespErrorRoomID struct { + BuildingID string `json:"building_id,omitempty"` // 建筑id + RoomID string `json:"room_id,omitempty"` // 会议室id + ErrorMsg string `json:"error_msg,omitempty"` // 错误信息 +} + +// GetMeetingRoomCustomizationRespRoomIDToCustomization ... +type GetMeetingRoomCustomizationRespRoomIDToCustomization struct { + RoomID *GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomID `json:"room_id,omitempty"` // 会议室ID +} + +// GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomID ... +type GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomID struct { + ContactIDs []int64 `json:"contact_ids,omitempty"` // 准备会议室个性化的相关配置的人员ID列表 + CustomizationData *GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationData `json:"customization_data,omitempty"` // 个性化配置数据 + PreparationTime int64 `json:"preparation_time,omitempty"` // 准备时间 +} + +// GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationData ... +type GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationData struct { + Conditions *GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataConditions `json:"conditions,omitempty"` // 问卷的显示条件, 当条件满足时, 该问卷才会出现让用户进行选择 + CustomizationType int64 `json:"customization_type,omitempty"` // 问卷的类型, 1表示单选, 2表示多选, 3表示填空 + IndexKey string `json:"index_key,omitempty"` // 每个问卷的独立id + InputContent string `json:"input_content,omitempty"` // 当type类型为填空时, 该参数需要填入 + IsRequired bool `json:"is_required,omitempty"` // 当type类型为填空时, 该参数需要填入 + Label string `json:"label,omitempty"` // 每个问卷的问题 + Options *GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataOptions `json:"options,omitempty"` // 每个问卷的选项 + PlaceHolder string `json:"place_holder,omitempty"` // 填空题在未填写时的填充文案 +} + +// GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataConditions ... +type GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataConditions struct { + CustomKey string `json:"custom_key,omitempty"` // 该custom_key对应的index_key选中后, 问卷才会显示 + OptionKeys []string `json:"option_keys,omitempty"` // 所有的option都被选中后, 问卷才会显示 +} + +// GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataOptions ... +type GetMeetingRoomCustomizationRespRoomIDToCustomizationRoomIDCustomizationDataOptions struct { + IsOthers bool `json:"is_others,omitempty"` // 是否是其他选项 + IsSelected bool `json:"is_selected,omitempty"` // 该选项是否勾选 + OptionImageURL string `json:"option_image_url,omitempty"` // 选项的图片 + OptionKey string `json:"option_key,omitempty"` // 每个选项的唯一id + OptionLabel string `json:"option_label,omitempty"` // 每个问卷的选项 + OthersContent string `json:"others_content,omitempty"` // 其他选项的输入内容 +} + +// getMeetingRoomCustomizationResp ... +type getMeetingRoomCustomizationResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *GetMeetingRoomCustomizationResp `json:"data,omitempty"` +} diff --git a/api_message_batch_delete.go b/api_message_batch_delete.go index 7ef6a0b7..9b9f9364 100644 --- a/api_message_batch_delete.go +++ b/api_message_batch_delete.go @@ -69,7 +69,8 @@ type BatchDeleteMessageReq struct { } // BatchDeleteMessageResp ... -type BatchDeleteMessageResp struct{} +type BatchDeleteMessageResp struct { +} // batchDeleteMessageResp ... type batchDeleteMessageResp struct { diff --git a/api_message_delete.go b/api_message_delete.go index 9a3e10d8..95c66154 100644 --- a/api_message_delete.go +++ b/api_message_delete.go @@ -74,7 +74,8 @@ type DeleteMessageReq struct { } // DeleteMessageResp ... -type DeleteMessageResp struct{} +type DeleteMessageResp struct { +} // deleteMessageResp ... type deleteMessageResp struct { diff --git a/api_message_ephemeral_delete.go b/api_message_ephemeral_delete.go index b65e8074..8aacb958 100644 --- a/api_message_ephemeral_delete.go +++ b/api_message_ephemeral_delete.go @@ -66,7 +66,8 @@ type DeleteEphemeralMessageReq struct { } // DeleteEphemeralMessageResp ... -type DeleteEphemeralMessageResp struct{} +type DeleteEphemeralMessageResp struct { +} // deleteEphemeralMessageResp ... type deleteEphemeralMessageResp struct { diff --git a/api_message_forward.go b/api_message_forward.go index 691a506e..2fb585d6 100644 --- a/api_message_forward.go +++ b/api_message_forward.go @@ -91,6 +91,28 @@ type ForwardMessageResp struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// ForwardMessageRespBody ... +type ForwardMessageRespBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。 +} + +// ForwardMessageRespMention ... +type ForwardMessageRespMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户或机器人序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户或者机器人的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户或机器人 ID 类型, 目前仅支持 `open_id` ([什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户或机器人的姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户或机器人的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// ForwardMessageRespSender ... +type ForwardMessageRespSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 切返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // forwardMessageResp ... type forwardMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_get.go b/api_message_get.go index bf1c0bdc..dafafa3f 100644 --- a/api_message_get.go +++ b/api_message_get.go @@ -89,6 +89,28 @@ type GetMessageRespItem struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// GetMessageRespItemBody ... +type GetMessageRespItemBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。注意: 卡片消息内容与在卡片搭建工具中获取的卡片 JSON 不一致, 暂不支持返回原始卡片 JSON。- 暂不支持返回 JSON 2.0 卡片的具体内容。 +} + +// GetMessageRespItemMention ... +type GetMessageRespItemMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户或机器人序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户或机器人的 ID。注意: 当不填写 `user_id_type`时, 该字段将返回被 @ 的用户或机器人的 open_id。- 当填写 `user_id_type` 时, 该字段将返回 @ 的用户对应类型的 ID(open_id、union_id 或 user_id)或机器人的 app_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户或机器人 ID 类型。 + Name string `json:"name,omitempty"` // 被 @ 的用户或机器人的姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户或机器人的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// GetMessageRespItemSender ... +type GetMessageRespItemSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。- 如果发送者是应用, 类型为 `app_id`。- 如果发送者为用户, 类型与查询参数 `user_id_type` 的取值一致。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // getMessageResp ... type getMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_list.go b/api_message_list.go index d4d2f9c3..baa3a7b9 100644 --- a/api_message_list.go +++ b/api_message_list.go @@ -96,6 +96,28 @@ type GetMessageListRespItem struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// GetMessageListRespItemBody ... +type GetMessageListRespItemBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。注意: 卡片消息内容与在卡片搭建工具中获取的卡片 JSON 不一致, 暂不支持返回原始卡片 JSON +} + +// GetMessageListRespItemMention ... +type GetMessageListRespItemMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户或机器人序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户或机器人的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户或机器人的 ID 类型, 目前仅支持 `open_id` (了解[什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户或机器人的姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户或机器人的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// GetMessageListRespItemSender ... +type GetMessageListRespItemSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 且返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // getMessageListResp ... type getMessageListResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_merge_forward.go b/api_message_merge_forward.go index c61e247e..06eab4db 100644 --- a/api_message_merge_forward.go +++ b/api_message_merge_forward.go @@ -101,6 +101,28 @@ type MergeForwardMessageRespMessage struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// MergeForwardMessageRespMessageBody ... +type MergeForwardMessageRespMessageBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 合并转发生成的新消息的消息内容为固定值[Merged and Forwarded Message], 其中的子消息可以使用[获取指定消息的内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/get)接口获取。 +} + +// MergeForwardMessageRespMessageMention ... +type MergeForwardMessageRespMessageMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户或机器人序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户或者机器人的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户或机器人 ID 类型, 目前仅支持 `open_id` ([什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户或机器人的姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户或机器人的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// MergeForwardMessageRespMessageSender ... +type MergeForwardMessageRespMessageSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 切返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // mergeForwardMessageResp ... type mergeForwardMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_pin_delete.go b/api_message_pin_delete.go index 0b525f2c..57c53d86 100644 --- a/api_message_pin_delete.go +++ b/api_message_pin_delete.go @@ -72,7 +72,8 @@ type DeleteMessagePinReq struct { } // DeleteMessagePinResp ... -type DeleteMessagePinResp struct{} +type DeleteMessagePinResp struct { +} // deleteMessagePinResp ... type deleteMessagePinResp struct { diff --git a/api_message_reply.go b/api_message_reply.go index 9d07a8a3..61808a0a 100644 --- a/api_message_reply.go +++ b/api_message_reply.go @@ -90,6 +90,28 @@ type ReplyRawMessageResp struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// ReplyRawMessageRespBody ... +type ReplyRawMessageRespBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。 +} + +// ReplyRawMessageRespMention ... +type ReplyRawMessageRespMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户的 ID 类型, 目前仅支持 `open_id` (了解[什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// ReplyRawMessageRespSender ... +type ReplyRawMessageRespSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 且返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // replyRawMessageResp ... type replyRawMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_send.go b/api_message_send.go index b582c47b..3ad8edc5 100644 --- a/api_message_send.go +++ b/api_message_send.go @@ -91,6 +91,28 @@ type SendRawMessageResp struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// SendRawMessageRespBody ... +type SendRawMessageRespBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。 +} + +// SendRawMessageRespMention ... +type SendRawMessageRespMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户的 ID 类型, 目前仅支持 `open_id` (了解[什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// SendRawMessageRespSender ... +type SendRawMessageRespSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 且返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名(未生效, 不会返回该值)- `unknown`: 未知(未生效, 不会返回该值) + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // sendRawMessageResp ... type sendRawMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_thread_forward.go b/api_message_thread_forward.go index 10d90763..ef91a903 100644 --- a/api_message_thread_forward.go +++ b/api_message_thread_forward.go @@ -91,6 +91,28 @@ type ForwardThreadMessageResp struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// ForwardThreadMessageRespBody ... +type ForwardThreadMessageRespBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 转发话题生成的新消息的消息内容为固定值[Merged and Forwarded Message], 其中的子消息可以使用[获取指定消息的内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/get)接口获取。 +} + +// ForwardThreadMessageRespMention ... +type ForwardThreadMessageRespMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户或机器人序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户或者机器人的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户或机器人 ID 类型, 目前仅支持 `open_id` ([什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户或机器人的姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户或机器人的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// ForwardThreadMessageRespSender ... +type ForwardThreadMessageRespSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 切返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者类型。可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // forwardThreadMessageResp ... type forwardThreadMessageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_message_update.go b/api_message_update.go index 655c4b13..e0e29b6e 100644 --- a/api_message_update.go +++ b/api_message_update.go @@ -80,7 +80,8 @@ type UpdateMessageReq struct { } // UpdateMessageResp ... -type UpdateMessageResp struct{} +type UpdateMessageResp struct { +} // updateMessageResp ... type updateMessageResp struct { diff --git a/api_message_update_delay.go b/api_message_update_delay.go index e89056a6..caa3d274 100644 --- a/api_message_update_delay.go +++ b/api_message_update_delay.go @@ -104,7 +104,8 @@ func (r UpdateMessageDelayReqCard) MarshalJSON() ([]byte, error) { } // UpdateMessageDelayResp ... -type UpdateMessageDelayResp struct{} +type UpdateMessageDelayResp struct { +} // updateMessageDelayResp ... type updateMessageDelayResp struct { diff --git a/api_message_update_edit.go b/api_message_update_edit.go index 1e652343..0b86d205 100644 --- a/api_message_update_edit.go +++ b/api_message_update_edit.go @@ -90,6 +90,28 @@ type UpdateMessageEditResp struct { UpperMessageID string `json:"upper_message_id,omitempty"` // 合并转发消息中, 上一层级的消息 ID, 仅在合并转发场景会有返回值。了解 upper_message_id 可参见[消息管理概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro)。 } +// UpdateMessageEditRespBody ... +type UpdateMessageEditRespBody struct { + Content string `json:"content,omitempty"` // 消息内容, JSON 结构序列化后的字符串, 不同消息类型(`msg_type`)对应不同内容。 +} + +// UpdateMessageEditRespMention ... +type UpdateMessageEditRespMention struct { + Key string `json:"key,omitempty"` // 被 @ 的用户序号。例如, 第 3 个被 @ 到的成员, 取值为 `@_user_3`。 + ID string `json:"id,omitempty"` // 被 @ 的用户的 open_id。 + IDType IDType `json:"id_type,omitempty"` // 被 @ 的用户的 ID 类型, 目前仅支持 `open_id` (了解[什么是 Open ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id))。 + Name string `json:"name,omitempty"` // 被 @ 的用户姓名。 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别被 @ 用户的租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + +// UpdateMessageEditRespSender ... +type UpdateMessageEditRespSender struct { + ID string `json:"id,omitempty"` // 发送者的 ID。 + IDType IDType `json:"id_type,omitempty"` // 发送者的 ID 类型。可能值有: `open_id`: 表示发送者为用户, 且返回的 ID 是用户的 open_id。- `app_id`: 表示发送者为应用, 且返回的 ID 是应用的 app_id。 + SenderType string `json:"sender_type,omitempty"` // 发送者的类型可能值有: `user`: 用户- `app`: 应用- `anonymous`: 匿名- `unknown`: 未知 + TenantKey string `json:"tenant_key,omitempty"` // 租户唯一标识。该标识用来识别租户, 也可以用来获取租户访问凭证(tenant_access_token)。 +} + // updateMessageEditResp ... type updateMessageEditResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 diff --git a/api_mina_code_to_session.go b/api_mina_code_to_session.go index 035e01c4..50ee5ba3 100644 --- a/api_mina_code_to_session.go +++ b/api_mina_code_to_session.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uYjL24iN/ukjM04SOyQjL5IDN // new doc: https://open.feishu.cn/document/client-docs/gadget/-web-app-api/open-ability/login/code2session -// -// Deprecated func (r *MinaService) MinaCodeToSession(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) { if r.cli.mock.mockMinaMinaCodeToSession != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mina#MinaCodeToSession mock enable") diff --git a/api_minutes_minute_media_get.go b/api_minutes_minute_media_get.go new file mode 100644 index 00000000..5da7f563 --- /dev/null +++ b/api_minutes_minute_media_get.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMinutesMinuteMedia 获取妙记的音视频文件 +// +// 通过接口获取妙记音视频文件的下载链接(有效期1天), 以进行批量下载 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/minutes-v1/minute-media/get +// new doc: https://open.feishu.cn/document/minutes-v1/minute-media/get +func (r *MinutesService) GetMinutesMinuteMedia(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) { + if r.cli.mock.mockMinutesGetMinutesMinuteMedia != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Minutes#GetMinutesMinuteMedia mock enable") + return r.cli.mock.mockMinutesGetMinutesMinuteMedia(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Minutes", + API: "GetMinutesMinuteMedia", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/minutes/v1/minutes/:minute_token/media", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getMinutesMinuteMediaResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMinutesGetMinutesMinuteMedia mock MinutesGetMinutesMinuteMedia method +func (r *Mock) MockMinutesGetMinutesMinuteMedia(f func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error)) { + r.mockMinutesGetMinutesMinuteMedia = f +} + +// UnMockMinutesGetMinutesMinuteMedia un-mock MinutesGetMinutesMinuteMedia method +func (r *Mock) UnMockMinutesGetMinutesMinuteMedia() { + r.mockMinutesGetMinutesMinuteMedia = nil +} + +// GetMinutesMinuteMediaReq ... +type GetMinutesMinuteMediaReq struct { + MinuteToken string `path:"minute_token" json:"-"` // 妙记唯一标识。可从妙记的 URL 链接中获取, 一般为最后一串字符: https://sample.feishu.cn/minutes/[obcnq3b9jl72l83w4f14xxxx]示例值: "obcnq3b9jl72l83w4f149w9c" 长度范围: `24` ~ `24` 字符 +} + +// GetMinutesMinuteMediaResp ... +type GetMinutesMinuteMediaResp struct { + DownloadURL string `json:"download_url,omitempty"` // 妙记音视频文件下载链接 +} + +// getMinutesMinuteMediaResp ... +type getMinutesMinuteMediaResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMinutesMinuteMediaResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_minutes_minute_transcript_get.go b/api_minutes_minute_transcript_get.go new file mode 100644 index 00000000..a4747c95 --- /dev/null +++ b/api_minutes_minute_transcript_get.go @@ -0,0 +1,89 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" + "io" +) + +// GetMinutesMinuteTranscript 获取妙记的对话文本 +// +// 通过接口下载妙记文本, 以进行批量下载 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/minutes-v1/minute-transcript/get +// new doc: https://open.feishu.cn/document/minutes-v1/minute-transcript/get +func (r *MinutesService) GetMinutesMinuteTranscript(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) { + if r.cli.mock.mockMinutesGetMinutesMinuteTranscript != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Minutes#GetMinutesMinuteTranscript mock enable") + return r.cli.mock.mockMinutesGetMinutesMinuteTranscript(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Minutes", + API: "GetMinutesMinuteTranscript", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/minutes/v1/minutes/:minute_token/transcript", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getMinutesMinuteTranscriptResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMinutesGetMinutesMinuteTranscript mock MinutesGetMinutesMinuteTranscript method +func (r *Mock) MockMinutesGetMinutesMinuteTranscript(f func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error)) { + r.mockMinutesGetMinutesMinuteTranscript = f +} + +// UnMockMinutesGetMinutesMinuteTranscript un-mock MinutesGetMinutesMinuteTranscript method +func (r *Mock) UnMockMinutesGetMinutesMinuteTranscript() { + r.mockMinutesGetMinutesMinuteTranscript = nil +} + +// GetMinutesMinuteTranscriptReq ... +type GetMinutesMinuteTranscriptReq struct { + MinuteToken string `path:"minute_token" json:"-"` // 妙记唯一标识。可从妙记的 URL 链接中获取, 一般为最后一串字符: https://sample.feishu.cn/minutes/[obcnq3b9jl72l83w4f14xxxx]示例值: "obcnq3b9jl72l83w4f149w9c" 长度范围: `24` ~ `24` 字符 + NeedSpeaker *bool `query:"need_speaker" json:"-"` // 是否包含说话人示例值: true + NeedTimestamp *bool `query:"need_timestamp" json:"-"` // 是否包含时间戳示例值: true + FileFormat *string `query:"file_format" json:"-"` // 导出文件格式示例值: txt;srt +} + +// getMinutesMinuteTranscriptResp ... +type getMinutesMinuteTranscriptResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *GetMinutesMinuteTranscriptResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} + +func (r *getMinutesMinuteTranscriptResp) SetReader(file io.Reader) { + if r.Data == nil { + r.Data = &GetMinutesMinuteTranscriptResp{} + } + r.Data.File = file +} + +// GetMinutesMinuteTranscriptResp ... +type GetMinutesMinuteTranscriptResp struct { + File io.Reader `json:"file,omitempty"` +} diff --git a/api_moments_post_get.go b/api_moments_post_get.go new file mode 100644 index 00000000..52467ab3 --- /dev/null +++ b/api_moments_post_get.go @@ -0,0 +1,105 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetMomentsPost 通过 ID 查询帖子实体数据信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/moments-v1/post/get +// new doc: https://open.feishu.cn/document/moments-v1/post/get +func (r *MomentsService) GetMomentsPost(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) { + if r.cli.mock.mockMomentsGetMomentsPost != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Moments#GetMomentsPost mock enable") + return r.cli.mock.mockMomentsGetMomentsPost(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Moments", + API: "GetMomentsPost", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/moments/v1/posts/:post_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getMomentsPostResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockMomentsGetMomentsPost mock MomentsGetMomentsPost method +func (r *Mock) MockMomentsGetMomentsPost(f func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error)) { + r.mockMomentsGetMomentsPost = f +} + +// UnMockMomentsGetMomentsPost un-mock MomentsGetMomentsPost method +func (r *Mock) UnMockMomentsGetMomentsPost() { + r.mockMomentsGetMomentsPost = nil +} + +// GetMomentsPostReq ... +type GetMomentsPostReq struct { + PostID string `path:"post_id" json:"-"` // 帖子的ID, 可从发布帖子接口返回数据或发布帖子事件中获取示例值: "6934510454161014804" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetMomentsPostResp ... +type GetMomentsPostResp struct { + Post *GetMomentsPostRespPost `json:"post,omitempty"` // 帖子实体 +} + +// GetMomentsPostRespPost ... +type GetMomentsPostRespPost struct { + UserID string `json:"user_id,omitempty"` // 发帖用户ID(类型为请求中传入的类型, 仅实名下有值) + Content string `json:"content,omitempty"` // 帖子内容 + ImageKeyList []string `json:"image_key_list,omitempty"` // 图片的 key列表(暂不支持下载) + MediaFileToken string `json:"media_file_token,omitempty"` // 媒体文件的 token(暂未使用) + CommentCount int64 `json:"comment_count,omitempty"` // 评论数 + ReactionSet *GetMomentsPostRespPostReactionSet `json:"reaction_set,omitempty"` // 帖子的 reaction及其数量 + ID string `json:"id,omitempty"` // 帖子ID + CreateTime string `json:"create_time,omitempty"` // 帖子创建时间, 格式 rfc3339, e.g. "2006-01-02T15:04:05Z07:00" + MediaCoverImageKey string `json:"media_cover_image_key,omitempty"` // 视频封面图片(暂未使用) + CategoryIDs []string `json:"category_ids,omitempty"` // 帖子所属板块 + Link string `json:"link,omitempty"` // 帖子链接 + UserType int64 `json:"user_type,omitempty"` // 发帖人类型可选值有: 实名花名匿名官方号 + DislikeCount int64 `json:"dislike_count,omitempty"` // 点踩数量 +} + +// GetMomentsPostRespPostReactionSet ... +type GetMomentsPostRespPostReactionSet struct { + Reactions []*GetMomentsPostRespPostReactionSetReaction `json:"reactions,omitempty"` // reaction列表 + TotalCount int64 `json:"total_count,omitempty"` // 所有 reaction的数量 +} + +// GetMomentsPostRespPostReactionSetReaction ... +type GetMomentsPostRespPostReactionSetReaction struct { + Type string `json:"type,omitempty"` // reaction的类型 + Count int64 `json:"count,omitempty"` // 该类型 reaction的数量 +} + +// getMomentsPostResp ... +type getMomentsPostResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetMomentsPostResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_okr_image_upload.go b/api_okr_image_upload.go index 3fc0c865..75021136 100644 --- a/api_okr_image_upload.go +++ b/api_okr_image_upload.go @@ -66,7 +66,8 @@ type UploadOKRImageReq struct { } // UploadOKRImageReqData ... -type UploadOKRImageReqData struct{} +type UploadOKRImageReqData struct { +} // UploadOKRImageResp ... type UploadOKRImageResp struct { diff --git a/api_okr_period_rule_get_list.go b/api_okr_period_rule_get_list.go index f6d5dfec..187430ec 100644 --- a/api_okr_period_rule_get_list.go +++ b/api_okr_period_rule_get_list.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockOKRGetOKRPeriodRuleList() { } // GetOKRPeriodRuleListReq ... -type GetOKRPeriodRuleListReq struct{} +type GetOKRPeriodRuleListReq struct { +} // GetOKRPeriodRuleListResp ... type GetOKRPeriodRuleListResp struct { diff --git a/api_okr_progress_record_delete.go b/api_okr_progress_record_delete.go index ad66a49b..7e87a6c5 100644 --- a/api_okr_progress_record_delete.go +++ b/api_okr_progress_record_delete.go @@ -63,7 +63,8 @@ type DeleteOKRProgressRecordReq struct { } // DeleteOKRProgressRecordResp ... -type DeleteOKRProgressRecordResp struct{} +type DeleteOKRProgressRecordResp struct { +} // deleteOKRProgressRecordResp ... type deleteOKRProgressRecordResp struct { diff --git a/api_okr_review_get.go b/api_okr_review_get.go index 4aceea37..697ef5bb 100644 --- a/api_okr_review_get.go +++ b/api_okr_review_get.go @@ -23,7 +23,7 @@ import ( // GetOKRReview 根据周期和用户查询复盘信息。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/okr-v1/review/query +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/okr-v1/review/query // new doc: https://open.feishu.cn/document/server-docs/okr-v1/review/query func (r *OKRService) GetOKRReview(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) { if r.cli.mock.mockOKRGetOKRReview != nil { @@ -58,9 +58,9 @@ func (r *Mock) UnMockOKRGetOKRReview() { // GetOKRReviewReq ... type GetOKRReviewReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_admin_id: 以people_admin_id来识别用户, 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - UserIDs []string `query:"user_ids" json:"-"` // 目标用户id列表, 最多5个, 示例值: ou-asdasdasdasdasd, 最大长度: `5` - PeriodIDs []string `query:"period_ids" json:"-"` // period_id列表, 最多5个, 示例值: 6951461264858777132, 最大长度: `5` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDs []string `query:"user_ids" json:"-"` // 目标用户id列表, 最多5个示例值: ou-asdasdasdasdasd 最大长度: `5` + PeriodIDs []string `query:"period_ids" json:"-"` // period_id列表, 最多5个示例值: 6951461264858777132 最大长度: `5` } // GetOKRReviewResp ... diff --git a/api_passport_session_logout.go b/api_passport_session_logout.go new file mode 100644 index 00000000..2f9901bd --- /dev/null +++ b/api_passport_session_logout.go @@ -0,0 +1,80 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePassportSessionLogout 该接口用于退出用户的登录态 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/passport-v1/session/logout +// new doc: https://open.feishu.cn/document/authentication-management/login-state-management/logout +func (r *PassportService) CreatePassportSessionLogout(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) { + if r.cli.mock.mockPassportCreatePassportSessionLogout != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Passport#CreatePassportSessionLogout mock enable") + return r.cli.mock.mockPassportCreatePassportSessionLogout(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Passport", + API: "CreatePassportSessionLogout", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/passport/v1/sessions/logout", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createPassportSessionLogoutResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPassportCreatePassportSessionLogout mock PassportCreatePassportSessionLogout method +func (r *Mock) MockPassportCreatePassportSessionLogout(f func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error)) { + r.mockPassportCreatePassportSessionLogout = f +} + +// UnMockPassportCreatePassportSessionLogout un-mock PassportCreatePassportSessionLogout method +func (r *Mock) UnMockPassportCreatePassportSessionLogout() { + r.mockPassportCreatePassportSessionLogout = nil +} + +// CreatePassportSessionLogoutReq ... +type CreatePassportSessionLogoutReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + IdpCredentialID *string `json:"idp_credential_id,omitempty"` // idp 侧的唯一标识, logout_type = 2 时必填示例值: "user@xxx.xx" + LogoutType int64 `json:"logout_type,omitempty"` // 登出的方式示例值: 1可选值有: UserID, 使用开放平台的维度登出IdpCredentialID, 使用 idp 侧的唯一标识登出Session 标识符, 基于session uuid 登出 + TerminalType []int64 `json:"terminal_type,omitempty"` // 登出的客户端类型, 默认全部登出。可选值: 1: PC 端- 2: Web 端- 3: Android 端- 4: iOS 端- 5: 服务端- 6: 旧版小程序端- 8: 其他移动端示例值: [1] + UserID *string `json:"user_id,omitempty"` // 开放平台的数据标识, 用户 ID 类型与查询参数 user_id_type 一致, logout_type = 1 时必填示例值: "ou_7dab8a3d3cdcc9da365777c7ad535d62" + LogoutReason *int64 `json:"logout_reason,omitempty"` // 登出提示语, 非必填, 不传时默认提示: 你已在其他客户端上退出了当前设备, 请重新登录。可选值: 34: 您已修改登录密码, 请重新登录- 35: 您的登录态已失效, 请重新登录- 36: 您的密码已过期, 请在登录页面通过忘记密码功能修改密码后重新登录示例值: 34 + Sid *string `json:"sid,omitempty"` // 需要精确登出的 session 标识符, logout_type = 3 时必填示例值: "AAAAAAAAAANll6nQoIAAFA[" +} + +// CreatePassportSessionLogoutResp ... +type CreatePassportSessionLogoutResp struct { +} + +// createPassportSessionLogoutResp ... +type createPassportSessionLogoutResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePassportSessionLogoutResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_acct_item_list.go b/api_payroll_acct_item_list.go new file mode 100644 index 00000000..4b096869 --- /dev/null +++ b/api_payroll_acct_item_list.go @@ -0,0 +1,96 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollAcctItem 批量查询算薪项 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list +// new doc: https://open.feishu.cn/document/payroll-v1/acct_item/list +func (r *PayrollService) ListPayrollAcctItem(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollAcctItem != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollAcctItem mock enable") + return r.cli.mock.mockPayrollListPayrollAcctItem(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollAcctItem", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/acct_items", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listPayrollAcctItemResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollAcctItem mock PayrollListPayrollAcctItem method +func (r *Mock) MockPayrollListPayrollAcctItem(f func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error)) { + r.mockPayrollListPayrollAcctItem = f +} + +// UnMockPayrollListPayrollAcctItem un-mock PayrollListPayrollAcctItem method +func (r *Mock) UnMockPayrollListPayrollAcctItem() { + r.mockPayrollListPayrollAcctItem = nil +} + +// ListPayrollAcctItemReq ... +type ListPayrollAcctItemReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 50 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 7169773973790425132 +} + +// ListPayrollAcctItemResp ... +type ListPayrollAcctItemResp struct { + Items []*ListPayrollAcctItemRespItem `json:"items,omitempty"` // 算薪项列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPayrollAcctItemRespItem ... +type ListPayrollAcctItemRespItem struct { + ID string `json:"id,omitempty"` // 算薪项ID + I18nNames []*ListPayrollAcctItemRespItemI18nName `json:"i18n_names,omitempty"` // 算薪项名称 + CategoryID string `json:"category_id,omitempty"` // 算薪项分类ID + DataType int64 `json:"data_type,omitempty"` // 算薪项数据类型文本 - 1金额 - 2数值 - 3百分数 - 4日期 - 5引用项 - 6 + DecimalPlaces int64 `json:"decimal_places,omitempty"` // 小数位数 + ActiveStatus int64 `json:"active_status,omitempty"` // 启用状态已启用 - 1已停用 - 2 +} + +// ListPayrollAcctItemRespItemI18nName ... +type ListPayrollAcctItemRespItemI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id, 该场景不返回, 请忽略 +} + +// listPayrollAcctItemResp ... +type listPayrollAcctItemResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollAcctItemResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_cost_allocation_detail_list.go b/api_payroll_cost_allocation_detail_list.go new file mode 100644 index 00000000..03a3840d --- /dev/null +++ b/api_payroll_cost_allocation_detail_list.go @@ -0,0 +1,151 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollCostAllocationDetail 根据报表方案、期间、和报表类型获取成本分摊明细数据。调用接口前, 需打开「财务过账」开关, 并且完成发布成本分摊报表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/cost_allocation_detail/list +// new doc: https://open.feishu.cn/document/payroll-v1/cost_allocation_detail/list +func (r *PayrollService) ListPayrollCostAllocationDetail(ctx context.Context, request *ListPayrollCostAllocationDetailReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationDetailResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollCostAllocationDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollCostAllocationDetail mock enable") + return r.cli.mock.mockPayrollListPayrollCostAllocationDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollCostAllocationDetail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/cost_allocation_details", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listPayrollCostAllocationDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollCostAllocationDetail mock PayrollListPayrollCostAllocationDetail method +func (r *Mock) MockPayrollListPayrollCostAllocationDetail(f func(ctx context.Context, request *ListPayrollCostAllocationDetailReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationDetailResp, *Response, error)) { + r.mockPayrollListPayrollCostAllocationDetail = f +} + +// UnMockPayrollListPayrollCostAllocationDetail un-mock PayrollListPayrollCostAllocationDetail method +func (r *Mock) UnMockPayrollListPayrollCostAllocationDetail() { + r.mockPayrollListPayrollCostAllocationDetail = nil +} + +// ListPayrollCostAllocationDetailReq ... +type ListPayrollCostAllocationDetailReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 50 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + CostAllocationPlanID string `query:"cost_allocation_plan_id" json:"-"` // 成本分摊方案ID, 通过[批量查询成本分摊方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/cost_allocation_plan/list)获取示例值: 72131231231231231 + PayPeriod string `query:"pay_period" json:"-"` // 期间, 成本分摊报表对应的年月。长度为7个字符。示例值: 2024-06 + ReportType int64 `query:"report_type" json:"-"` // 报表类型示例值: 0可选值有: 默认计提实发 取值范围: `0` ~ `2` +} + +// ListPayrollCostAllocationDetailResp ... +type ListPayrollCostAllocationDetailResp struct { + CostAllocationReportDatas []*ListPayrollCostAllocationDetailRespCostAllocationReportData `json:"cost_allocation_report_datas,omitempty"` // 报表明细数据 + CostAllocationReportNames []*ListPayrollCostAllocationDetailRespCostAllocationReportName `json:"cost_allocation_report_names,omitempty"` // 报表名称 + PayPeriod string `json:"pay_period,omitempty"` // 期间 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportData ... +type ListPayrollCostAllocationDetailRespCostAllocationReportData struct { + DataSummaryDimensions []*ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimension `json:"data_summary_dimensions,omitempty"` // 数据维度汇总 + CompensationCostItem *ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItem `json:"compensation_cost_item,omitempty"` // 成本项数据 + EmploymentID string `json:"employment_id,omitempty"` // 员工id +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItem ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItem struct { + CompensationCosts []*ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCost `json:"compensation_costs,omitempty"` // 成本项数据 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCost ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCost struct { + CompensationCostValue string `json:"compensation_cost_value,omitempty"` // 成本项值。单位为元。 + I18nNames []*ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName `json:"i18n_names,omitempty"` // 成本项名称 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimension ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimension struct { + DimensionLevel int64 `json:"dimension_level,omitempty"` // 层级 + DimensionType int64 `json:"dimension_type,omitempty"` // 类型: 公司主体 - 1成本中心 - 2部门 - 3薪资组 - 4人员类型 - 5雇佣状态 - 6转正状态 - 7职务 - 8序列 - 9职级 - 10工时制度 - 11合同类型 - 12算薪项 - 13自定义维度 - 100 + DimensionValueID string `json:"dimension_value_id,omitempty"` // 维度ID, 需要根据dimension_type再次转换, 如: 当dimension_type为1时, 该值表示公司主体的ID。对应的接口映射如下: dimension_type = 1 [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)dimension_type = 2 [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)dimension_type = 3 [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)dimension_type = 4 [薪资组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)dimension_type = 5 [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)dimension_type = 8 [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)dimension_type = 9 [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)dimension_type = 10 [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)dimension_type = 11 [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + EnumDimension *ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionEnumDimension `json:"enum_dimension,omitempty"` // 算薪项汇总维度时, 当算薪项是特定枚举值, 会使用该字段返回枚举值ID以及枚举值Key, 业务需要获取枚举对象的详情信息, 可根据ID去对应的对象中查找, 其中枚举对象的映射如下: workCalendar [工作日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar) location [地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)costCenter [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)employeeType [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)jobFamily [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)jobLevel [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)workingHoursType [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + DimensionValueLookupInfo *ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo `json:"dimension_value_lookup_info,omitempty"` // 维度引用对象的基础信息, 当维度为引用类型字段才会有值, 目前支持的引用对象类型见type + DimensionNames []*ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionName `json:"dimension_names,omitempty"` // 维度名称, 算薪项、自定义维度使用 + DimensionTitles []*ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionTitle `json:"dimension_titles,omitempty"` // 数据维度表头, 算薪项、自定义维度使用 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionName ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionTitle ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionTitle struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id需要根据dimension_type再次转换, 如: 当dimension_type为13时, 该值表示算薪项的ID。对应的接口映射如下: dimension_type = 13 [算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list) +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo struct { + Type string `json:"type,omitempty"` // 引用对象类型, 类型对应的对象映射包括不仅限: type = company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)type = cost_center [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)type = department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)type = pay_group [薪资组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)type = employee_type [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)type = job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)type = job_family [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)type = job_level [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)type = working_hours_type [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + ID string `json:"id,omitempty"` // 引用对象的id, 可根据相关API查询到对象的完整信息 + Code string `json:"code,omitempty"` // 引用对象的code, 目前下面的对象会有code: type = company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)type = cost_center [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)type = department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)type = job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)type = job_family [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)type = job_level [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)type = location [地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get) +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionEnumDimension ... +type ListPayrollCostAllocationDetailRespCostAllocationReportDataDataSummaryDimensionEnumDimension struct { + EnumValueID string `json:"enum_value_id,omitempty"` // 枚举对象ID + EnumKey string `json:"enum_key,omitempty"` // 枚举对象 +} + +// ListPayrollCostAllocationDetailRespCostAllocationReportName ... +type ListPayrollCostAllocationDetailRespCostAllocationReportName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// listPayrollCostAllocationDetailResp ... +type listPayrollCostAllocationDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollCostAllocationDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_cost_allocation_plan_list.go b/api_payroll_cost_allocation_plan_list.go new file mode 100644 index 00000000..e0cd09e4 --- /dev/null +++ b/api_payroll_cost_allocation_plan_list.go @@ -0,0 +1,122 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollCostAllocationPlan 根据期间分页批量查询成本分摊方案, 仅返回期间内生效的方案列表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/cost_allocation_plan/list +// new doc: https://open.feishu.cn/document/payroll-v1/cost_allocation_plan/list +func (r *PayrollService) ListPayrollCostAllocationPlan(ctx context.Context, request *ListPayrollCostAllocationPlanReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationPlanResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollCostAllocationPlan != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollCostAllocationPlan mock enable") + return r.cli.mock.mockPayrollListPayrollCostAllocationPlan(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollCostAllocationPlan", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/cost_allocation_plans", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listPayrollCostAllocationPlanResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollCostAllocationPlan mock PayrollListPayrollCostAllocationPlan method +func (r *Mock) MockPayrollListPayrollCostAllocationPlan(f func(ctx context.Context, request *ListPayrollCostAllocationPlanReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationPlanResp, *Response, error)) { + r.mockPayrollListPayrollCostAllocationPlan = f +} + +// UnMockPayrollListPayrollCostAllocationPlan un-mock PayrollListPayrollCostAllocationPlan method +func (r *Mock) UnMockPayrollListPayrollCostAllocationPlan() { + r.mockPayrollListPayrollCostAllocationPlan = nil +} + +// ListPayrollCostAllocationPlanReq ... +type ListPayrollCostAllocationPlanReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 50 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6823630319749592024 + PayPeriod string `query:"pay_period" json:"-"` // 期间, 生成成本分摊报表对应的年月。格式为 yyyy-MM示例值: 2023-11 +} + +// ListPayrollCostAllocationPlanResp ... +type ListPayrollCostAllocationPlanResp struct { + Items []*ListPayrollCostAllocationPlanRespItem `json:"items,omitempty"` // 方案 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPayrollCostAllocationPlanRespItem ... +type ListPayrollCostAllocationPlanRespItem struct { + ID string `json:"id,omitempty"` // 成本分摊方案id, 唯一标识 + Names []*ListPayrollCostAllocationPlanRespItemName `json:"names,omitempty"` // 方案名称 + ApplicableCountryRegion string `json:"applicable_country_region,omitempty"` // 适用国家ID, 通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 + Dimensions []*ListPayrollCostAllocationPlanRespItemDimension `json:"dimensions,omitempty"` // 成本分摊方案对应的汇总维度列表 + CostItems []*ListPayrollCostAllocationPlanRespItemCostItem `json:"cost_items,omitempty"` // 成本分摊方案对应的成本项列表 +} + +// ListPayrollCostAllocationPlanRespItemCostItem ... +type ListPayrollCostAllocationPlanRespItemCostItem struct { + ID string `json:"id,omitempty"` // 成本项的唯一标识 + Name []*ListPayrollCostAllocationPlanRespItemCostItemName `json:"name,omitempty"` // 成本项名称 + EnableCorrect bool `json:"enable_correct,omitempty"` // 成本项是否启用更正 +} + +// ListPayrollCostAllocationPlanRespItemCostItemName ... +type ListPayrollCostAllocationPlanRespItemCostItemName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// ListPayrollCostAllocationPlanRespItemDimension ... +type ListPayrollCostAllocationPlanRespItemDimension struct { + I18nNames []*ListPayrollCostAllocationPlanRespItemDimensionI18nName `json:"i18n_names,omitempty"` // 汇总维度信息 + ApiName string `json:"api_name,omitempty"` // 汇总维度字段名称 + ObjApiName string `json:"obj_api_name,omitempty"` // 汇总维度对象名称 +} + +// ListPayrollCostAllocationPlanRespItemDimensionI18nName ... +type ListPayrollCostAllocationPlanRespItemDimensionI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// ListPayrollCostAllocationPlanRespItemName ... +type ListPayrollCostAllocationPlanRespItemName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// listPayrollCostAllocationPlanResp ... +type listPayrollCostAllocationPlanResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollCostAllocationPlanResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_cost_allocation_report_list.go b/api_payroll_cost_allocation_report_list.go new file mode 100644 index 00000000..db2861d8 --- /dev/null +++ b/api_payroll_cost_allocation_report_list.go @@ -0,0 +1,150 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollCostAllocationReport 根据算薪期间和成本分摊方案id获取成本分摊汇总数据。调用接口前, 需在payroll 系统中打开「财务过账」开关, 并且完成发布成本分摊报表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/cost_allocation_report/list +// new doc: https://open.feishu.cn/document/payroll-v1/cost_allocation_report/list +func (r *PayrollService) ListPayrollCostAllocationReport(ctx context.Context, request *ListPayrollCostAllocationReportReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationReportResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollCostAllocationReport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollCostAllocationReport mock enable") + return r.cli.mock.mockPayrollListPayrollCostAllocationReport(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollCostAllocationReport", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/cost_allocation_reports", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listPayrollCostAllocationReportResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollCostAllocationReport mock PayrollListPayrollCostAllocationReport method +func (r *Mock) MockPayrollListPayrollCostAllocationReport(f func(ctx context.Context, request *ListPayrollCostAllocationReportReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationReportResp, *Response, error)) { + r.mockPayrollListPayrollCostAllocationReport = f +} + +// UnMockPayrollListPayrollCostAllocationReport un-mock PayrollListPayrollCostAllocationReport method +func (r *Mock) UnMockPayrollListPayrollCostAllocationReport() { + r.mockPayrollListPayrollCostAllocationReport = nil +} + +// ListPayrollCostAllocationReportReq ... +type ListPayrollCostAllocationReportReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 50 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6823630319749592415 + CostAllocationPlanID string `query:"cost_allocation_plan_id" json:"-"` // 成本分摊方案ID, 通过[批量查询成本分摊方案](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/cost_allocation_plan/list)获取示例值: 6823630319749580304 + PayPeriod string `query:"pay_period" json:"-"` // 期间, 成本分摊数据对应的年月, 格式 为yyyy-MM示例值: 2023-11 + ReportType int64 `query:"report_type" json:"-"` // 报表类型示例值: 1可选值有: 默认, 表示没有开通计提和实发功能时的报表类型, 开通计提和实发之后, 该类型报表将无法发布。计提实发 +} + +// ListPayrollCostAllocationReportResp ... +type ListPayrollCostAllocationReportResp struct { + PayPeriod string `json:"pay_period,omitempty"` // 期间, 成本分摊报表对应的年月 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + CostAllocationReportNames []*ListPayrollCostAllocationReportRespCostAllocationReportName `json:"cost_allocation_report_names,omitempty"` // 报表名称 + CostAllocationReportDatas []*ListPayrollCostAllocationReportRespCostAllocationReportData `json:"cost_allocation_report_datas,omitempty"` // 汇总数据 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportData ... +type ListPayrollCostAllocationReportRespCostAllocationReportData struct { + DataSummaryDimensions []*ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimension `json:"data_summary_dimensions,omitempty"` // 数据维度汇总 + CompensationCostItem *ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItem `json:"compensation_cost_item,omitempty"` // 成本项数据 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItem ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItem struct { + NumberOfIndividualsForPayment int64 `json:"number_of_individuals_for_payment,omitempty"` // 发薪人数 + CompensationCosts []*ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCost `json:"compensation_costs,omitempty"` // 成本项数据 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCost ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCost struct { + CompensationCostValue string `json:"compensation_cost_value,omitempty"` // 成本项值 + I18nNames []*ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName `json:"i18n_names,omitempty"` // 成本项名称 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataCompensationCostItemCompensationCostI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimension ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimension struct { + DimensionLevel int64 `json:"dimension_level,omitempty"` // 层级 + DimensionType int64 `json:"dimension_type,omitempty"` // 类型: 公司主体 - 1成本中心 - 2部门 - 3薪资组 - 4人员类型 - 5雇佣状态 - 6转正状态 - 7职务 - 8序列 - 9职级 - 10工时制度 - 11合同类型 - 12算薪项 - 13自定义维度 - 100 + DimensionValueID string `json:"dimension_value_id,omitempty"` // 维度ID, 需要根据dimension_type再次转换, 如: 当dimension_type为1时, 该值表示公司主体的ID。对应的接口映射如下: dimension_type = 1 [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)dimension_type = 2 [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)dimension_type = 3 [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)dimension_type = 4 [薪资组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)dimension_type = 5 [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)dimension_type = 8 [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)dimension_type = 9 [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)dimension_type = 10 [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)dimension_type = 11 [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + EnumDimension *ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionEnumDimension `json:"enum_dimension,omitempty"` // 算薪项汇总维度时, 当算薪项是特定枚举值, 会使用该字段返回枚举值ID以及枚举值Key, 业务需要获取枚举对象的详情信息, 可根据ID去对应的对象中查找, 其中枚举对象的映射如下: workCalendar [工作日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar) location [地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)costCenter [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)employeeType [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)jobFamily [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)jobLevel [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)workingHoursType [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + DimensionValueLookupInfo *ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo `json:"dimension_value_lookup_info,omitempty"` // 维度引用对象的基础信息, 当维度为引用类型字段才会有值, 目前支持的引用对象类型见type + DimensionNames []*ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionName `json:"dimension_names,omitempty"` // 维度名称, 算薪项、自定义维度使用 + DimensionTitles []*ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionTitle `json:"dimension_titles,omitempty"` // 数据维度表头, 算薪项、自定义维度使用 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionName ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionTitle ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionTitle struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id需要根据dimension_type再次转换, 如: 当dimension_type为13时, 该值表示算薪项的ID。对应的接口映射如下: dimension_type = 13 [算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list) +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionDimensionValueLookupInfo struct { + Type string `json:"type,omitempty"` // 引用对象类型, 类型对应的对象映射包括不仅限: type = company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)type = cost_center [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)type = department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)type = pay_group [薪资组](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list)type = employee_type [人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)type = job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)type = job_family [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)type = job_level [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)type = working_hours_type [工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get) + ID string `json:"id,omitempty"` // 引用对象的id, 可根据相关API查询到对象的完整信息 + Code string `json:"code,omitempty"` // 引用对象的code, 目前下面的对象会有code: type = company [公司主体](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get)type = cost_center [成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)type = department [部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)type = job [职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)type = job_family [序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)type = job_level [职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)type = location [地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get) +} + +// ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionEnumDimension ... +type ListPayrollCostAllocationReportRespCostAllocationReportDataDataSummaryDimensionEnumDimension struct { + EnumValueID string `json:"enum_value_id,omitempty"` // 枚举对象ID + EnumKey string `json:"enum_key,omitempty"` // 枚举对象 +} + +// ListPayrollCostAllocationReportRespCostAllocationReportName ... +type ListPayrollCostAllocationReportRespCostAllocationReportName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// listPayrollCostAllocationReportResp ... +type listPayrollCostAllocationReportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollCostAllocationReportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_datasource_list.go b/api_payroll_datasource_list.go new file mode 100644 index 00000000..57e2e6b0 --- /dev/null +++ b/api_payroll_datasource_list.go @@ -0,0 +1,129 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollDatasource 批量查询飞书人事后台: 设置->算薪数据设置->外部数据源设置 中的数据源设置列表 +// +// 停用的数据源、字段不能保存数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/datasource/list +// new doc: https://open.feishu.cn/document/payroll-v1/datasource/list +func (r *PayrollService) ListPayrollDatasource(ctx context.Context, request *ListPayrollDatasourceReq, options ...MethodOptionFunc) (*ListPayrollDatasourceResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollDatasource != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollDatasource mock enable") + return r.cli.mock.mockPayrollListPayrollDatasource(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollDatasource", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/datasources", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listPayrollDatasourceResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollDatasource mock PayrollListPayrollDatasource method +func (r *Mock) MockPayrollListPayrollDatasource(f func(ctx context.Context, request *ListPayrollDatasourceReq, options ...MethodOptionFunc) (*ListPayrollDatasourceResp, *Response, error)) { + r.mockPayrollListPayrollDatasource = f +} + +// UnMockPayrollListPayrollDatasource un-mock PayrollListPayrollDatasource method +func (r *Mock) UnMockPayrollListPayrollDatasource() { + r.mockPayrollListPayrollDatasource = nil +} + +// ListPayrollDatasourceReq ... +type ListPayrollDatasourceReq struct { + PageSize int64 `query:"page_size" json:"-"` // 示例值: 10 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= +} + +// ListPayrollDatasourceResp ... +type ListPayrollDatasourceResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Datasources []*ListPayrollDatasourceRespDatasource `json:"datasources,omitempty"` // 数据源列表 +} + +// ListPayrollDatasourceRespDatasource ... +type ListPayrollDatasourceRespDatasource struct { + Code string `json:"code,omitempty"` // 数据源编码 + I18nNames []*ListPayrollDatasourceRespDatasourceI18nName `json:"i18n_names,omitempty"` // 数据源名称 + ActiveStatus int64 `json:"active_status,omitempty"` // 启停用状态可选值有: 已启用已停用 + Fields []*ListPayrollDatasourceRespDatasourceField `json:"fields,omitempty"` // 数据源字段列表 + I18nDescription []*ListPayrollDatasourceRespDatasourceI18nDescription `json:"i18n_description,omitempty"` // 数据源描述 + DataPeriodType int64 `json:"data_period_type,omitempty"` // 数据写入维度可选值有: 算薪期间数据发生日期。功能灰度中, 如需创建该维度数据源配置, 请申请灰度。自定义数据周期。功能灰度中, 如需创建该维度数据源配置, 请申请灰度。 +} + +// ListPayrollDatasourceRespDatasourceField ... +type ListPayrollDatasourceRespDatasourceField struct { + Code string `json:"code,omitempty"` // 数据源字段编码 + I18nNames []*ListPayrollDatasourceRespDatasourceFieldI18nName `json:"i18n_names,omitempty"` // 数据源字段名称 + FieldType int64 `json:"field_type,omitempty"` // 字段类型可选值有: 金额数值文本日期百分比 + ActiveStatus int64 `json:"active_status,omitempty"` // 字段启停用状态可选值有: 已启用已停用 + I18nDescription []*ListPayrollDatasourceRespDatasourceFieldI18nDescription `json:"i18n_description,omitempty"` // 数据源字段描述 + DecimalPlaces int64 `json:"decimal_places,omitempty"` // 保留小数位数。目前只有number、money类型字段需要设置保留小数 +} + +// ListPayrollDatasourceRespDatasourceFieldI18nDescription ... +type ListPayrollDatasourceRespDatasourceFieldI18nDescription struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// ListPayrollDatasourceRespDatasourceFieldI18nName ... +type ListPayrollDatasourceRespDatasourceFieldI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// ListPayrollDatasourceRespDatasourceI18nDescription ... +type ListPayrollDatasourceRespDatasourceI18nDescription struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// ListPayrollDatasourceRespDatasourceI18nName ... +type ListPayrollDatasourceRespDatasourceI18nName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 + ID string `json:"id,omitempty"` // 名称对应的实体id +} + +// listPayrollDatasourceResp ... +type listPayrollDatasourceResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollDatasourceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_datasource_record_query.go b/api_payroll_datasource_record_query.go new file mode 100644 index 00000000..0ffcd7cb --- /dev/null +++ b/api_payroll_datasource_record_query.go @@ -0,0 +1,104 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPayrollDatasourceRecord 1. 支持通过payroll_period(必传)、employment_id(可选)这两个预置字段, 批量查询指定数据源下的数据记录列表。 +// +// 2. 数据源配置信息可从[获取外部数据源配置信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/datasource/list)或者 「飞书人事后台-设置-算薪数据设置-外部数据源配置」页面 获取 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/datasource_record/query +// new doc: https://open.feishu.cn/document/payroll-v1/datasource_record/query +func (r *PayrollService) QueryPayrollDatasourceRecord(ctx context.Context, request *QueryPayrollDatasourceRecordReq, options ...MethodOptionFunc) (*QueryPayrollDatasourceRecordResp, *Response, error) { + if r.cli.mock.mockPayrollQueryPayrollDatasourceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#QueryPayrollDatasourceRecord mock enable") + return r.cli.mock.mockPayrollQueryPayrollDatasourceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "QueryPayrollDatasourceRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/datasource_records/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(queryPayrollDatasourceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollQueryPayrollDatasourceRecord mock PayrollQueryPayrollDatasourceRecord method +func (r *Mock) MockPayrollQueryPayrollDatasourceRecord(f func(ctx context.Context, request *QueryPayrollDatasourceRecordReq, options ...MethodOptionFunc) (*QueryPayrollDatasourceRecordResp, *Response, error)) { + r.mockPayrollQueryPayrollDatasourceRecord = f +} + +// UnMockPayrollQueryPayrollDatasourceRecord un-mock PayrollQueryPayrollDatasourceRecord method +func (r *Mock) UnMockPayrollQueryPayrollDatasourceRecord() { + r.mockPayrollQueryPayrollDatasourceRecord = nil +} + +// QueryPayrollDatasourceRecordReq ... +type QueryPayrollDatasourceRecordReq struct { + PageSize int64 `query:"page_size" json:"-"` // 示例值: 10 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + SourceCode string `json:"source_code,omitempty"` // 数据源code示例值: "test__c" + SelectedFields []string `json:"selected_fields,omitempty"` // 指定查询的数据源字段code。1. 如不传入此字段, 默认返回所有数据源字段2. 如果传入, 除了返回指定字段外, 系统会默认返回emplyment_id、payroll_period字段的值。示例值: ["test__c"] 长度范围: `1` ~ `200` + FieldFilters []*QueryPayrollDatasourceRecordReqFieldFilter `json:"field_filters,omitempty"` // 查询条件列表, 多个条件之间为And关系, 支持的查询条件如下: 1. employment_id- 非必传, 最多传入100个, field_type=3(文本类型)。- 该id为飞书人事中员工的基本信息id, 可通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取.- 查询操作符只支持IsAnyOf(包含)2. 时间范围条件必传, 根据数据源的不同数据写入维度, 支持的时间范围查询条件如下: 算薪期间维度。payroll_period字段, 格式: 2024-01, 查询方式: IsAnyOf操作符枚举需要查的月份, 最多可查2个月。- 数据发生日期维度(灰度中)。occur_day字段, 格式2024-01-02, 查询方式: 通过InDateRange操作符查询(日期范围查询), occur_day的时间范围不允许超过90天, 自定义数据周期维度(灰度中)。custom_start、custom_end字段, 格式: 2024-01-02。查询方式: 两者都必传, 通过InDateRange操作符查询(日期范围查询), 时间范围不允许超过90天。 最大长度: `100` +} + +// QueryPayrollDatasourceRecordReqFieldFilter ... +type QueryPayrollDatasourceRecordReqFieldFilter struct { + FieldCode string `json:"field_code,omitempty"` // 字段编码示例值: "employment_id" + FieldValues []string `json:"field_values,omitempty"` // 包含的字段值列表。示例值: ["123"] 长度范围: `1` ~ `500` + Operator *int64 `json:"operator,omitempty"` // 查询操作符, 不传默认为IsAnyOf 包含查询。示例值: 1可选值有: IsAnyOf 包含查询, 被查询记录的字段值被field_values列表包含即可。InDateRange 日期范围查询。field_values长度必须为2, 类似[startDate, endDate], 前后都是闭区间;其中日期格式为“2024-01-02”, 仅occur_day、custom_start、custom_end字段支持此查询方式, 且时间范围不超过90天。 取值范围: `1` ~ `2` +} + +// QueryPayrollDatasourceRecordResp ... +type QueryPayrollDatasourceRecordResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + Records []*QueryPayrollDatasourceRecordRespRecord `json:"records,omitempty"` // 数据记录列表 +} + +// QueryPayrollDatasourceRecordRespRecord ... +type QueryPayrollDatasourceRecordRespRecord struct { + ActiveStatus int64 `json:"active_status,omitempty"` // 记录的启停用状态可选值有: 已启用已停用 + FieldValues []*QueryPayrollDatasourceRecordRespRecordFieldValue `json:"field_values,omitempty"` // 记录的字段值列表 +} + +// QueryPayrollDatasourceRecordRespRecordFieldValue ... +type QueryPayrollDatasourceRecordRespRecordFieldValue struct { + FieldCode string `json:"field_code,omitempty"` // 数据源字段编码 + Value string `json:"value,omitempty"` // 字段值 通过string传输, 值为API写入的值。 + FieldType int64 `json:"field_type,omitempty"` // 字段类型。可从「查询外部数据源设置」API 或者 「飞书人事后台-设置-算薪数据设置-外部数据源配置」页面 获取。1. 金额2. 数值3. 文本4. 日期5. 百分比 +} + +// queryPayrollDatasourceRecordResp ... +type queryPayrollDatasourceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPayrollDatasourceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_datasource_record_save.go b/api_payroll_datasource_record_save.go new file mode 100644 index 00000000..373d09a2 --- /dev/null +++ b/api_payroll_datasource_record_save.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePayrollDatasourceRecordSave 参照数据源配置字段格式, 批量保存(创建或更新)数据记录。 +// +// 1. 记录的唯一标志通过业务主键判断(employment_id + payroll_period) +// 2. 若不存在数据记录, 则本次保存会插入1条记录。 +// 3. 若已存在数据记录, 则本次保存会覆盖更新已有记录(只更新传入字段的值, 未传入字段值不更新), 如果传入的数据记录没有任何变化, 则不更新。 +// 4. 若更新或者插入成功, 会返回产生数据变更的记录条数。 +// 1. 除了接口自身的限流外, 还会限制单个数据源只能串行批量写入(防止批量更新同一批数据导致底层性能或者死锁风险), 需调用端做好并发控制 +// 2. 本接口如果发生报错, 调用方可认为全部保存失败, 不会存在部分保存失败部分成功场景。 +// 3. 请确保写入的数据记录的数据源及字段都是被启用的。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/datasource_record/save +// new doc: https://open.feishu.cn/document/payroll-v1/datasource_record/save +func (r *PayrollService) CreatePayrollDatasourceRecordSave(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) { + if r.cli.mock.mockPayrollCreatePayrollDatasourceRecordSave != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#CreatePayrollDatasourceRecordSave mock enable") + return r.cli.mock.mockPayrollCreatePayrollDatasourceRecordSave(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "CreatePayrollDatasourceRecordSave", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/datasource_records/save", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createPayrollDatasourceRecordSaveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollCreatePayrollDatasourceRecordSave mock PayrollCreatePayrollDatasourceRecordSave method +func (r *Mock) MockPayrollCreatePayrollDatasourceRecordSave(f func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error)) { + r.mockPayrollCreatePayrollDatasourceRecordSave = f +} + +// UnMockPayrollCreatePayrollDatasourceRecordSave un-mock PayrollCreatePayrollDatasourceRecordSave method +func (r *Mock) UnMockPayrollCreatePayrollDatasourceRecordSave() { + r.mockPayrollCreatePayrollDatasourceRecordSave = nil +} + +// CreatePayrollDatasourceRecordSaveReq ... +type CreatePayrollDatasourceRecordSaveReq struct { + SourceCode string `json:"source_code,omitempty"` // 数据源code。可从[获取外部数据源配置信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/datasource/list)或者 「飞书人事后台-设置-算薪数据设置-外部数据源配置」页面 获取示例值: "test__c" + Records []*CreatePayrollDatasourceRecordSaveReqRecord `json:"records,omitempty"` // 需保存的记录列表 长度范围: `1` ~ `50` +} + +// CreatePayrollDatasourceRecordSaveReqRecord ... +type CreatePayrollDatasourceRecordSaveReqRecord struct { + ActiveStatus int64 `json:"active_status,omitempty"` // 记录的启停用状态。说明: 数据记录被停用后, 依旧可以被API保存、查询, 但无法被算薪使用。示例值: 1可选值有: 已启用已停用 取值范围: `1` ~ `100` + FieldValues []*CreatePayrollDatasourceRecordSaveReqRecordFieldValue `json:"field_values,omitempty"` // 需创建或者更新记录的具体字段值列表: 必传字段: 根据记录的数据源的数据写入维度属性, 有不同的必传字段: 1. 算薪期间维度。“payroll_period”、“employment_id”字段必传, payroll_period格式: “2024-01”。2. 数据发生日期维度(灰度中)。“occur_day”、“employment_id”字段必传。occur_day格式: “2024-01-02”。3. 自定义数据周期维度(灰度中)。“custom_start”、“custom_end”、“employment_id”字段必传。custom_start、custom_end格式: “2024-01-02”。employment_id为飞书人事中员工的基本信息id, 可通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取- 其他自定字段按照诉求可选传入, 需保证写入的字段在配置中存在且启用。字段code不得重复传入, 且字段的值需符合类型对应的约束。 +} + +// CreatePayrollDatasourceRecordSaveReqRecordFieldValue ... +type CreatePayrollDatasourceRecordSaveReqRecordFieldValue struct { + FieldCode string `json:"field_code,omitempty"` // 数据源字段编码, 请确保字段存在且是启用的。可从「查询外部数据源设置」API 或者 「飞书人事后台-设置-算薪数据设置-外部数据源配置」页面 获取示例值: "test__c" + Value string `json:"value,omitempty"` // 字段值 通过string传输, 不允许输入空字符串, 请确保字段的值符合类型的约束。 示例值: "123" + FieldType *int64 `json:"field_type,omitempty"` // 1. 不需要传入此字段, 这里只做文档说明用。2. 字段类型可从「查询外部数据源设置」的返回值中的datasources.fields. field_type中获取3. value的传值的格式需符合类型的约束: field_type=1: 金额。eg: "12.23"。目前仅支持人民币¥元, 超过设置的精度会被四舍五入;- field_type=2: 数值。eg: "12.23"。超过设置的精度会被四舍五入。- field_type=3: 文本。 eg: "我是一段文本"。文本字符个数不允许超过500, 一条记录的文本总的字符个数不允许超过3000.- field_type=4: 日期。除系统预置的payroll_period字段外的所有自定义字段, 日期格式均为“yyyy-mm-dd”, 示例: “2024-01-01”。但payroll_period代表算薪期间, 精确到月, 格式“yyyy-mm”, 示例: “2024-01”。- field_type=5: 百分比。百分比 "10" 代表10%, 最多保留两位小数, 超过后四舍五入示例值: 1 取值范围: `1` ~ `100` +} + +// CreatePayrollDatasourceRecordSaveResp ... +type CreatePayrollDatasourceRecordSaveResp struct { + AffectCounts string `json:"affect_counts,omitempty"` // 变更的记录条数, 变更包含新建或者更新记录两种操作。(该字段为数字类型) +} + +// createPayrollDatasourceRecordSaveResp ... +type createPayrollDatasourceRecordSaveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePayrollDatasourceRecordSaveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_paygroup_list.go b/api_payroll_paygroup_list.go new file mode 100644 index 00000000..b2c6b3da --- /dev/null +++ b/api_payroll_paygroup_list.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollPaygroup - 薪资组是按薪酬管理的纬度创建的组, 组内的员工由相同的HR处理薪酬相关工作, 通过薪资组可实现对薪资组人员的管理和在薪酬计算发放等环节的人员权限范围控制 +// +// - 本接口返回所有薪资组的基本信息, 包括薪资组ID、薪资组名称、薪资组编码、薪资组状态等, 不含薪资组下的员工信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/paygroup/list +// new doc: https://open.feishu.cn/document/payroll-v1/paygroup/list +func (r *PayrollService) ListPayrollPaygroup(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollPaygroup != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollPaygroup mock enable") + return r.cli.mock.mockPayrollListPayrollPaygroup(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollPaygroup", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/paygroups", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listPayrollPaygroupResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollPaygroup mock PayrollListPayrollPaygroup method +func (r *Mock) MockPayrollListPayrollPaygroup(f func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error)) { + r.mockPayrollListPayrollPaygroup = f +} + +// UnMockPayrollListPayrollPaygroup un-mock PayrollListPayrollPaygroup method +func (r *Mock) UnMockPayrollListPayrollPaygroup() { + r.mockPayrollListPayrollPaygroup = nil +} + +// ListPayrollPaygroupReq ... +type ListPayrollPaygroupReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 默认值100示例值: 50 取值范围: `1` ~ `2000` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6862995757234914824 +} + +// ListPayrollPaygroupResp ... +type ListPayrollPaygroupResp struct { + Items []*ListPayrollPaygroupRespItem `json:"items,omitempty"` // 薪资组列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPayrollPaygroupRespItem ... +type ListPayrollPaygroupRespItem struct { + PayGroupID string `json:"pay_group_id,omitempty"` // 薪资组ID + Name *ListPayrollPaygroupRespItemName `json:"name,omitempty"` // 薪资组名称 + Code string `json:"code,omitempty"` // 薪资组编码 + Status int64 `json:"status,omitempty"` // 薪资组状态可选值有: 启用禁用 +} + +// ListPayrollPaygroupRespItemName ... +type ListPayrollPaygroupRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名称 + EnUs string `json:"en_us,omitempty"` // 英文名称 +} + +// listPayrollPaygroupResp ... +type listPayrollPaygroupResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollPaygroupResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_payment_activity_archive.go b/api_payroll_payment_activity_archive.go new file mode 100644 index 00000000..8a1561c8 --- /dev/null +++ b/api_payroll_payment_activity_archive.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePayrollPaymentActivityArchive 根据发薪活动ID对发薪活动进行封存。注意: 仅当发薪活动状态为审批通过时, 方可进行封存。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/archive +// new doc: https://open.feishu.cn/document/payroll-v1/payment_activity/archive +func (r *PayrollService) CreatePayrollPaymentActivityArchive(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) { + if r.cli.mock.mockPayrollCreatePayrollPaymentActivityArchive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#CreatePayrollPaymentActivityArchive mock enable") + return r.cli.mock.mockPayrollCreatePayrollPaymentActivityArchive(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "CreatePayrollPaymentActivityArchive", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/payment_activitys/archive", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createPayrollPaymentActivityArchiveResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollCreatePayrollPaymentActivityArchive mock PayrollCreatePayrollPaymentActivityArchive method +func (r *Mock) MockPayrollCreatePayrollPaymentActivityArchive(f func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error)) { + r.mockPayrollCreatePayrollPaymentActivityArchive = f +} + +// UnMockPayrollCreatePayrollPaymentActivityArchive un-mock PayrollCreatePayrollPaymentActivityArchive method +func (r *Mock) UnMockPayrollCreatePayrollPaymentActivityArchive() { + r.mockPayrollCreatePayrollPaymentActivityArchive = nil +} + +// CreatePayrollPaymentActivityArchiveReq ... +type CreatePayrollPaymentActivityArchiveReq struct { + ActivityID string `json:"activity_id,omitempty"` // 发薪活动ID, 可通过[查询发薪活动列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/list)获取。示例值: "7433255159377444875" +} + +// CreatePayrollPaymentActivityArchiveResp ... +type CreatePayrollPaymentActivityArchiveResp struct { +} + +// createPayrollPaymentActivityArchiveResp ... +type createPayrollPaymentActivityArchiveResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePayrollPaymentActivityArchiveResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_payment_activity_detail_list.go b/api_payroll_payment_activity_detail_list.go new file mode 100644 index 00000000..cec6220f --- /dev/null +++ b/api_payroll_payment_activity_detail_list.go @@ -0,0 +1,131 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollPaymentActivityDetail 根据「发薪活动 ID 」和「分页参数」查询发薪活动明细列表和关联的算薪明细分段数据。 +// +// ## 使用场景 +// > 当前接口仅支持查询某个发薪活动下的所有发薪明细数据, 若需要查询某些员工在特定范围内的发薪明细, 请使用[批量查询发薪明细](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_detail/query)接口。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity_detail/list +// new doc: https://open.feishu.cn/document/payroll-v1/payment_detail/list +func (r *PayrollService) ListPayrollPaymentActivityDetail(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollPaymentActivityDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollPaymentActivityDetail mock enable") + return r.cli.mock.mockPayrollListPayrollPaymentActivityDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollPaymentActivityDetail", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/payment_activity_details", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listPayrollPaymentActivityDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollPaymentActivityDetail mock PayrollListPayrollPaymentActivityDetail method +func (r *Mock) MockPayrollListPayrollPaymentActivityDetail(f func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error)) { + r.mockPayrollListPayrollPaymentActivityDetail = f +} + +// UnMockPayrollListPayrollPaymentActivityDetail un-mock PayrollListPayrollPaymentActivityDetail method +func (r *Mock) UnMockPayrollListPayrollPaymentActivityDetail() { + r.mockPayrollListPayrollPaymentActivityDetail = nil +} + +// ListPayrollPaymentActivityDetailReq ... +type ListPayrollPaymentActivityDetailReq struct { + PageIndex int64 `query:"page_index" json:"-"` // 页码, 第一页从 1 开始示例值: 100 取值范围: `1` ~ `100000` + PageSize int64 `query:"page_size" json:"-"` // 每页大小, 范围为: [1, 100]示例值: 10 取值范围: `1` ~ `100` + ActivityID string `query:"activity_id" json:"-"` // 发薪活动 ID, 调用[查询发薪活动列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/list)接口后, 可以从返回结果中获取到发薪活动 ID。示例值: 7202076988667019308 + IncludeSegmentData *bool `query:"include_segment_data" json:"-"` // 是否需要查询算薪明细的分段信息, 如果不传该参数或传 false, 那么只返回发薪活动明细数据;如果该参数传了 true, 那么同时返回发薪明细对应的算薪明细分段数据。示例值: false + AcctItemIDs []string `query:"acct_item_ids" json:"-"` // 算薪项 ID 列表, 调用[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)接口后, 可以从返回结果中获取到算薪项 ID。1. 当前参数传空时, 接口会返回发薪明细中所有的算薪项;2. 当前参数不为空时, 接口只返回发薪明细中与 acct_item_ids 存在交集的算薪项。示例值: 7202076988667019333 长度范围: `0` ~ `100` +} + +// ListPayrollPaymentActivityDetailResp ... +type ListPayrollPaymentActivityDetailResp struct { + PaymentActivityDetails []*ListPayrollPaymentActivityDetailRespPaymentActivityDetail `json:"payment_activity_details,omitempty"` // 发薪明细列表 + Total int64 `json:"total,omitempty"` // 发薪明细总数 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetail ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetail struct { + EmployeeID string `json:"employee_id,omitempty"` // 员工的飞书人事雇佣 ID, 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口后, 可以从返回结果中获取到飞书人事雇佣 ID。注: 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口时, 查询入参 user_id_type 应为 people_corehr_id。 + PaymentDetails []*ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetail `json:"payment_details,omitempty"` // 发薪明细详情 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetail ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetail struct { + ID string `json:"id,omitempty"` // 算薪项 ID, 调用[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)接口后, 可以从返回结果中获取到算薪项 ID。注: 明细中返回的部分算薪项可能不存在于[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)的接口结果中。 + AccountingItemNames []*ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemName `json:"accounting_item_names,omitempty"` // 算薪项名称 + AccountingItemValue *ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValue `json:"accounting_item_value,omitempty"` // 算薪项值 + SegmentValues []*ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValue `json:"segment_values,omitempty"` // 算薪项分段数据 + AccountingItemType int64 `json:"accounting_item_type,omitempty"` // 算薪项类型, 1-文本;2-金额;3-数值;4-百分比;5-日期;6-引用 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemName ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValue ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValue struct { + OriginalValue string `json:"original_value,omitempty"` // 算薪项数据原始值, 当发薪明细的数据来源为「人工导入」时, 如果当前算薪项类型为引用类型, 那么算薪项原始值可能为空。 + ReferenceValues []*ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValueReferenceValue `json:"reference_values,omitempty"` // 引用类型算薪项展示值 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValueReferenceValue ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailAccountingItemValueReferenceValue struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValue ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValue struct { + StartTime string `json:"start_time,omitempty"` // 分段开始时间-毫秒级时间戳, [start_time, end_time] 是一个左闭右闭区间。 + EndTime string `json:"end_time,omitempty"` // 分段结束时间-毫秒级时间戳, [start_time, end_time] 是一个左闭右闭区间。 + ReferenceValues []*ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValueReferenceValue `json:"reference_values,omitempty"` // 引用类型算薪项分段展示值 + OriginalValue string `json:"original_value,omitempty"` // 算薪项分段原始值 +} + +// ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValueReferenceValue ... +type ListPayrollPaymentActivityDetailRespPaymentActivityDetailPaymentDetailSegmentValueReferenceValue struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// listPayrollPaymentActivityDetailResp ... +type listPayrollPaymentActivityDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollPaymentActivityDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_payment_activity_list.go b/api_payroll_payment_activity_list.go new file mode 100644 index 00000000..f4244816 --- /dev/null +++ b/api_payroll_payment_activity_list.go @@ -0,0 +1,111 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPayrollPaymentActivity 根据「发薪日起止范围」、「发薪活动状态」和「分页参数」查询发薪活动列表。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/list +// new doc: https://open.feishu.cn/document/payroll-v1/payment_activity/list +func (r *PayrollService) ListPayrollPaymentActivity(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) { + if r.cli.mock.mockPayrollListPayrollPaymentActivity != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#ListPayrollPaymentActivity mock enable") + return r.cli.mock.mockPayrollListPayrollPaymentActivity(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "ListPayrollPaymentActivity", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/payment_activitys", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listPayrollPaymentActivityResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollListPayrollPaymentActivity mock PayrollListPayrollPaymentActivity method +func (r *Mock) MockPayrollListPayrollPaymentActivity(f func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error)) { + r.mockPayrollListPayrollPaymentActivity = f +} + +// UnMockPayrollListPayrollPaymentActivity un-mock PayrollListPayrollPaymentActivity method +func (r *Mock) UnMockPayrollListPayrollPaymentActivity() { + r.mockPayrollListPayrollPaymentActivity = nil +} + +// ListPayrollPaymentActivityReq ... +type ListPayrollPaymentActivityReq struct { + PayPeriodStartDate string `query:"pay_period_start_date" json:"-"` // 发薪日开始时间, 格式: YYYY-MM-dd, [pay_period_start_date, pay_period_end_date] 是一个左闭右闭区间。示例值: 2024-01-01 + PayPeriodEndDate string `query:"pay_period_end_date" json:"-"` // 发薪日结束时间, 格式: YYYY-MM-dd, [pay_period_start_date, pay_period_end_date] 是一个左闭右闭区间。示例值: 2024-01-31 + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 传值范围为 [1, 100]示例值: 10 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + Statuses []int64 `query:"statuses" json:"-"` // 发薪活动审批状态列表, 其中: 1. 100 - 待确认名单2. 150 - 待提交审批3. 200 - 审批中4. 300 - 审批被拒绝5. 350 - 审批被撤回6. 360 - 审批被撤销7. 375 - 审批通过8. 400 - 已封存示例值: 100 长度范围: `0` ~ `100` +} + +// ListPayrollPaymentActivityResp ... +type ListPayrollPaymentActivityResp struct { + PaymentActivitys []*ListPayrollPaymentActivityRespPaymentActivity `json:"payment_activitys,omitempty"` // 发薪活动列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPayrollPaymentActivityRespPaymentActivity ... +type ListPayrollPaymentActivityRespPaymentActivity struct { + ActivityID string `json:"activity_id,omitempty"` // 发薪活动唯一标识 + ActivityNames []*ListPayrollPaymentActivityRespPaymentActivityActivityName `json:"activity_names,omitempty"` // 发薪活动名称 + PayDate string `json:"pay_date,omitempty"` // 发薪活动发薪日期 + TotalNumberOfPayroll int64 `json:"total_number_of_payroll,omitempty"` // 发薪总笔数 + NumberOfCalculationActivities int64 `json:"number_of_calculation_activities,omitempty"` // 关联的算薪活动个数 + CalculationActivities []*ListPayrollPaymentActivityRespPaymentActivityCalculationActivitie `json:"calculation_activities,omitempty"` // 发薪活动关联的算薪活动详情 + ActivityStatus int64 `json:"activity_status,omitempty"` // 发薪活动审批状态, 其中: 100-待确认发薪名单;150-待提交审批;200-审批中;300-审批被拒绝;350-审批被撤回;360-审批被撤销;375-审批通过;400-已封存。 +} + +// ListPayrollPaymentActivityRespPaymentActivityActivityName ... +type ListPayrollPaymentActivityRespPaymentActivityActivityName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// ListPayrollPaymentActivityRespPaymentActivityCalculationActivitie ... +type ListPayrollPaymentActivityRespPaymentActivityCalculationActivitie struct { + CalculationActivityID string `json:"calculation_activity_id,omitempty"` // 算薪活动唯一标识 + CalculationActivityNames []*ListPayrollPaymentActivityRespPaymentActivityCalculationActivitieCalculationActivityName `json:"calculation_activity_names,omitempty"` // 算薪活动名称 +} + +// ListPayrollPaymentActivityRespPaymentActivityCalculationActivitieCalculationActivityName ... +type ListPayrollPaymentActivityRespPaymentActivityCalculationActivitieCalculationActivityName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// listPayrollPaymentActivityResp ... +type listPayrollPaymentActivityResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPayrollPaymentActivityResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_payroll_payment_detail_query.go b/api_payroll_payment_detail_query.go new file mode 100644 index 00000000..b24bc99d --- /dev/null +++ b/api_payroll_payment_detail_query.go @@ -0,0 +1,138 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPayrollPaymentDetail 根据 __发薪活动 ID 列表__ 、__发薪日起止时间__ 和 __飞书人事雇佣 ID 列表__ 分页查询发薪明细列表和关联的算薪明细分段数据。 +// +// 当前接口仅支持查询某些员工在特定范围内的发薪明细, 若需要查询某个发薪活动下的所有发薪明细数据, 请使用[查询发薪活动明细列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity_detail/list)接口。 +// ## 注意事项 +// 1. 批量查询发薪明细接口提供的请求参数中, 用户必须填写「__发薪日起止时间__(pay_period_start_date, pay_period_end_date)」或「__发薪活动 ID 列表__」, 当传入的三个参数均为空时, 开放接口将返回 2500006 错误码。 +// 2. 每一次调用接口时, 系统最多会扫描 __50__ 个发薪活动, 当用户传入的查询条件命中的发薪活动个数大于 __50__ 时, 开放接口将根据查询参数返回 2500003 或 2500008 错误码, 请合理使用查询参数。 +// 3. 开放接口中的「员工的飞书人事雇佣 ID 列表(employee_ids)」参数为必填。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_detail/query +// new doc: https://open.feishu.cn/document/payroll-v1/payment_detail/query +func (r *PayrollService) QueryPayrollPaymentDetail(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) { + if r.cli.mock.mockPayrollQueryPayrollPaymentDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Payroll#QueryPayrollPaymentDetail mock enable") + return r.cli.mock.mockPayrollQueryPayrollPaymentDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Payroll", + API: "QueryPayrollPaymentDetail", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/payroll/v1/payment_detail/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(queryPayrollPaymentDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPayrollQueryPayrollPaymentDetail mock PayrollQueryPayrollPaymentDetail method +func (r *Mock) MockPayrollQueryPayrollPaymentDetail(f func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error)) { + r.mockPayrollQueryPayrollPaymentDetail = f +} + +// UnMockPayrollQueryPayrollPaymentDetail un-mock PayrollQueryPayrollPaymentDetail method +func (r *Mock) UnMockPayrollQueryPayrollPaymentDetail() { + r.mockPayrollQueryPayrollPaymentDetail = nil +} + +// QueryPayrollPaymentDetailReq ... +type QueryPayrollPaymentDetailReq struct { + PageIndex int64 `json:"page_index,omitempty"` // 页码, 第一页从 1 开始示例值: 100 取值范围: `1` ~ `100000` + PageSize int64 `json:"page_size,omitempty"` // 每页大小, 范围为: [1, 100]示例值: 10 + AcctItemIDs []string `json:"acct_item_ids,omitempty"` // 算薪项 ID 列表, 调用[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)接口后, 可以从返回结果中获取到算薪项 ID。1. 当前参数传空时, 接口会返回发薪明细中所有的算薪项;2. 当前参数不为空时, 接口只返回发薪明细中与 acct_item_ids 存在交集的算薪项。示例值: ["7202076988667019333"] 长度范围: `0` ~ `100000` + EmployeeIDs []string `json:"employee_ids,omitempty"` // 员工的飞书人事雇佣 ID 列表, __该参数为必填__, 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口后, 可以从返回结果中获取到飞书人事雇佣 ID。注: 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口时, 查询入参 user_id_type 应为 people_corehr_id。示例值: ["7202076988667019222"] 长度范围: `1` ~ `100` + PayPeriodStartDate *string `json:"pay_period_start_date,omitempty"` // 发薪日开始时间, 格式: YYYY-MM-dd, [pay_period_start_date, pay_period_end_date] 是一个左闭右闭区间。示例值: "2024-01-01" + PayPeriodEndDate *string `json:"pay_period_end_date,omitempty"` // 发薪日结束时间, 格式: YYYY-MM-dd, [pay_period_start_date, pay_period_end_date] 是一个左闭右闭区间。1. pay_period_start_date 不得晚于 pay_period_end_date 。2. [pay_period_start_date, pay_period_end_date] 最大间隔为 12 个月。示例值: "2024-01-31" + ActivityIDs []string `json:"activity_ids,omitempty"` // 发薪活动 ID 列表, 调用[查询发薪活动列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/list)接口后, 可以从返回结果中获取到发薪活动 ID。示例值: ["7202076988667019308"] 长度范围: `0` ~ `50` + IncludeSegmentData *bool `json:"include_segment_data,omitempty"` // 是否需要查询算薪明细的分段信息, 如果不传该参数或传 false, 那么只返回发薪活动明细数据;如果该参数传了 true, 那么同时返回发薪明细对应的算薪明细分段数据。示例值: false +} + +// QueryPayrollPaymentDetailResp ... +type QueryPayrollPaymentDetailResp struct { + PaymentDetails []*QueryPayrollPaymentDetailRespPaymentDetail `json:"payment_details,omitempty"` // 发薪明细列表 + Total int64 `json:"total,omitempty"` // 发薪明细总数 +} + +// QueryPayrollPaymentDetailRespPaymentDetail ... +type QueryPayrollPaymentDetailRespPaymentDetail struct { + EmployeeID string `json:"employee_id,omitempty"` // 员工的飞书人事雇佣 ID, 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口后, 可以从返回结果中获取到飞书人事雇佣 ID。注: 调用[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口时, 查询入参 user_id_type 应为 people_corehr_id。 + ActivityID string `json:"activity_id,omitempty"` // 发薪明细所在的发薪活动 ID, 调用[查询发薪活动列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/payment_activity/list)接口后, 可以从返回结果中获取到发薪活动 ID。 + PaymentAccountingItems []*QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItem `json:"payment_accounting_items,omitempty"` // 发薪明细详情 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItem ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItem struct { + ID string `json:"id,omitempty"` // 算薪项 ID, 调用[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)接口后, 可以从返回结果中获取到算薪项 ID。注: 明细中返回的部分算薪项可能不存在于[批量查询算薪项](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/payroll-v1/acct_item/list)的接口结果中。 + AccountingItemNames []*QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemName `json:"accounting_item_names,omitempty"` // 算薪项名称 + AccountingItemValue *QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValue `json:"accounting_item_value,omitempty"` // 算薪项值 + SegmentValues []*QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValue `json:"segment_values,omitempty"` // 算薪项分段数据 + AccountingItemType int64 `json:"accounting_item_type,omitempty"` // 算薪项类型, 1-文本;2-金额;3-数值;4-百分比;5-日期;6-引用 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemName ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemName struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValue ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValue struct { + OriginalValue string `json:"original_value,omitempty"` // 算薪项数据原始值, 当发薪明细的数据来源为「人工导入」时, 如果当前算薪项类型为引用类型, 那么算薪项原始值可能为空。 + ReferenceValues []*QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValueReferenceValue `json:"reference_values,omitempty"` // 引用类型算薪项展示值 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValueReferenceValue ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemAccountingItemValueReferenceValue struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValue ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValue struct { + StartTime string `json:"start_time,omitempty"` // 分段开始时间-毫秒级时间戳, [start_time, end_time] 是一个左闭右闭区间。 + EndTime string `json:"end_time,omitempty"` // 分段结束时间-毫秒级时间戳, [start_time, end_time] 是一个左闭右闭区间。 + ReferenceValues []*QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValueReferenceValue `json:"reference_values,omitempty"` // 引用类型算薪项分段展示值 + OriginalValue string `json:"original_value,omitempty"` // 算薪项分段原始值 +} + +// QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValueReferenceValue ... +type QueryPayrollPaymentDetailRespPaymentDetailPaymentAccountingItemSegmentValueReferenceValue struct { + Locale string `json:"locale,omitempty"` // 语种 + Value string `json:"value,omitempty"` // 语种对应的值 +} + +// queryPayrollPaymentDetailResp ... +type queryPayrollPaymentDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPayrollPaymentDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_activity_query.go b/api_performance_activity_query.go new file mode 100644 index 00000000..44c61450 --- /dev/null +++ b/api_performance_activity_query.go @@ -0,0 +1,103 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceActivity 批量获取项目的配置信息, 如项目名称、项目模式等信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/activity/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/activity/query +func (r *PerformanceService) QueryPerformanceActivity(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceActivity != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceActivity mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceActivity(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceActivity", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/activity/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceActivityResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceActivity mock PerformanceQueryPerformanceActivity method +func (r *Mock) MockPerformanceQueryPerformanceActivity(f func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error)) { + r.mockPerformanceQueryPerformanceActivity = f +} + +// UnMockPerformanceQueryPerformanceActivity un-mock PerformanceQueryPerformanceActivity method +func (r *Mock) UnMockPerformanceQueryPerformanceActivity() { + r.mockPerformanceQueryPerformanceActivity = nil +} + +// QueryPerformanceActivityReq ... +type QueryPerformanceActivityReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterIDs []string `json:"semester_ids,omitempty"` // 评估周期 ID 列表, 可通过[获取周期](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)获取 注意: 若填写了 `activity_ids` 参数时, 此参数无效示例值: ["6992035450862224940"] 长度范围: `0` ~ `10` + ActivityIDs []string `json:"activity_ids,omitempty"` // 项目 ID 列表示例值: ["6992035450862224940"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceActivityResp ... +type QueryPerformanceActivityResp struct { + Activities []*QueryPerformanceActivityRespActivitie `json:"activities,omitempty"` // 项目列表 +} + +// QueryPerformanceActivityRespActivitie ... +type QueryPerformanceActivityRespActivitie struct { + ID string `json:"id,omitempty"` // 项目 ID + Name *QueryPerformanceActivityRespActivitieName `json:"name,omitempty"` // 项目名称 + Description *QueryPerformanceActivityRespActivitieDescription `json:"description,omitempty"` // 项目描述 + SemesterID string `json:"semester_id,omitempty"` // 周期 ID, 详情可查看: [获取周期](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list) + Mode string `json:"mode,omitempty"` // 项目模式可选值有: 指标制定绩效评估指标制定及绩效评估 + Progress string `json:"progress,omitempty"` // 项目状态可选值有: 待完成配置未启动启动中已启动已结束 + CreateTime string `json:"create_time,omitempty"` // 项目创建时间, 毫秒时间戳 + ModifyTime string `json:"modify_time,omitempty"` // 项目更新时间, 毫秒时间戳 + CreateUserID string `json:"create_user_id,omitempty"` // 项目创建人 ID, 与入参 `user_id_type` 类型一致 + ModifyUserID string `json:"modify_user_id,omitempty"` // 项目更新人 ID, 与入参 `user_id_type` 类型一致 +} + +// QueryPerformanceActivityRespActivitieDescription ... +type QueryPerformanceActivityRespActivitieDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceActivityRespActivitieName ... +type QueryPerformanceActivityRespActivitieName struct { + ZhCn string `json:"zh_cn,omitempty"` // 项目中文名称 + EnUs string `json:"en_us,omitempty"` // 项目英文名称 +} + +// queryPerformanceActivityResp ... +type queryPerformanceActivityResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceActivityResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_additional_information_import.go b/api_performance_additional_information_import.go new file mode 100644 index 00000000..135709c2 --- /dev/null +++ b/api_performance_additional_information_import.go @@ -0,0 +1,107 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePerformanceAdditionalInformationImport 批量导入被评估人的补充信息作为绩效评估的参考, 如补充信息的事项、时间以及具体描述等。该接口支持创建和更新补充信息。 +// +// ## 注意事项 +// 该接口执行创建或者更新的判断逻辑如下(按顺序判断): +// 1. 若请求参数 `additional_informations` 中 `item_ids` 传入系统中已有的补充信息 ID 时, 将更新对应的补充消息数据。 +// 2. 若请求参数 `additional_informations` 中 `external_ids` 传入系统中已有的外部系统补充信息 ID 时, 将更新对应的补充消息数据。 +// 3. 若请求参数 `additional_informations` 中 `reviewee_user_id`、`item `、`time `、`detailed_description` 的参数组合在系统中已存在内容一致的补充消息时, 将更新对应的补充消息数据。 +// 4. 以上情况都不符合时, 创建新的补充消息数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_information/import +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/additional_information/import +func (r *PerformanceService) CreatePerformanceAdditionalInformationImport(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) { + if r.cli.mock.mockPerformanceCreatePerformanceAdditionalInformationImport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#CreatePerformanceAdditionalInformationImport mock enable") + return r.cli.mock.mockPerformanceCreatePerformanceAdditionalInformationImport(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "CreatePerformanceAdditionalInformationImport", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/additional_informations/import", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createPerformanceAdditionalInformationImportResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceCreatePerformanceAdditionalInformationImport mock PerformanceCreatePerformanceAdditionalInformationImport method +func (r *Mock) MockPerformanceCreatePerformanceAdditionalInformationImport(f func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error)) { + r.mockPerformanceCreatePerformanceAdditionalInformationImport = f +} + +// UnMockPerformanceCreatePerformanceAdditionalInformationImport un-mock PerformanceCreatePerformanceAdditionalInformationImport method +func (r *Mock) UnMockPerformanceCreatePerformanceAdditionalInformationImport() { + r.mockPerformanceCreatePerformanceAdditionalInformationImport = nil +} + +// CreatePerformanceAdditionalInformationImportReq ... +type CreatePerformanceAdditionalInformationImportReq struct { + ClientToken string `query:"client_token" json:"-"` // 根据 `client_token` 是否一致来判断是否为同一请求, 同一请求多次调用将被拦截示例值: 12454646 长度范围: `0` ~ `64` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterID string `json:"semester_id,omitempty"` // 评估周期 ID, 可通过[获取周期列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)接口获取示例值: "7348736302176534547" 长度范围: `1` ~ `100` 字符 + AdditionalInformations []*CreatePerformanceAdditionalInformationImportReqAdditionalInformation `json:"additional_informations,omitempty"` // 补充信息列表 长度范围: `1` ~ `1000` + ImportRecordName *string `json:"import_record_name,omitempty"` // 补充信息导入记录名称, 管理员可在补充信息管理的导入记录中查看。 默认值: "API导入"示例值: "人工导入" 长度范围: `0` ~ `200` 字符 +} + +// CreatePerformanceAdditionalInformationImportReqAdditionalInformation ... +type CreatePerformanceAdditionalInformationImportReqAdditionalInformation struct { + ItemID *string `json:"item_id,omitempty"` // 补充信息 ID 注意: 若传入系统中已有的补充信息 ID 时, 将更新对应的补充消息数据示例值: "7350194523185610771" 长度范围: `1` ~ `100` 字符 + ExternalID *string `json:"external_id,omitempty"` // 外部系统补充信息 ID, 用于系统间的数据映射。 注意: 若传入系统中已有的外部系统补充信息 ID 时, 将更新对应的补充消息数据示例值: "6789523104723558912" 长度范围: `0` ~ `100` 字符 + RevieweeUserID string `json:"reviewee_user_id,omitempty"` // 被评估人 ID 列表, 与入参 `user_id_type` 类型一致, 可通过[获取被评估人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/reviewee/query)接口获取 注意: 若 `reviewee_user_id`、`item `、`time `、`detailed_description` 的参数组合在系统中已存在内容一致的补充消息时, 将更新对应的补充消息数据示例值: "ou_3245842393d09e9428ad4655da6e30b3" 长度范围: `1` ~ `9999` 字符 + Item string `json:"item,omitempty"` // 事项 注意: 若 `reviewee_user_id`、`item `、`time `、`detailed_description` 的参数组合在系统中已存在内容一致的补充消息时, 将更新对应的补充消息数据示例值: "业绩补充说明" 长度范围: `1` ~ `1000` 字符 + Time string `json:"time,omitempty"` // 时间 说明: 文本内容, 无格式校验 注意: 若 `reviewee_user_id`、`item `、`time `、`detailed_description` 的参数组合在系统中已存在内容一致的补充消息时, 将更新对应的补充消息数据示例值: "2024-03-12" 长度范围: `1` ~ `100` 字符 + DetailedDescription string `json:"detailed_description,omitempty"` // 具体描述 注意: 若 `reviewee_user_id`、`item `、`time `、`detailed_description` 的参数组合在系统中已存在内容一致的补充消息时, 将更新对应的补充消息数据示例值: "销售额增长目标超额完成" 长度范围: `1` ~ `5000` 字符 +} + +// CreatePerformanceAdditionalInformationImportResp ... +type CreatePerformanceAdditionalInformationImportResp struct { + ImportRecordID string `json:"import_record_id,omitempty"` // 导入记录 ID + AdditionalInformations []*CreatePerformanceAdditionalInformationImportRespAdditionalInformation `json:"additional_informations,omitempty"` // 成功导入后的补充信息列表 +} + +// CreatePerformanceAdditionalInformationImportRespAdditionalInformation ... +type CreatePerformanceAdditionalInformationImportRespAdditionalInformation struct { + ItemID string `json:"item_id,omitempty"` // 补充信息 ID + ExternalID string `json:"external_id,omitempty"` // 外部系统补充信息 ID说明: 若导入时没有提供, 则返回为空 + RevieweeUserID string `json:"reviewee_user_id,omitempty"` // 被评估人 ID 列表, 与入参 `user_id_type` 类型一致 + Item string `json:"item,omitempty"` // 事项 + Time string `json:"time,omitempty"` // 时间 说明: 文本内容, 无格式校验 + DetailedDescription string `json:"detailed_description,omitempty"` // 具体描述 +} + +// createPerformanceAdditionalInformationImportResp ... +type createPerformanceAdditionalInformationImportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePerformanceAdditionalInformationImportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_additional_information_query.go b/api_performance_additional_information_query.go new file mode 100644 index 00000000..28dc7eb1 --- /dev/null +++ b/api_performance_additional_information_query.go @@ -0,0 +1,93 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceAdditionalInformation 批量查询被评估人的补充信息, 如补充信息的事项、时间以及具体描述等。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_information/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/additional_information/query +func (r *PerformanceService) QueryPerformanceAdditionalInformation(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceAdditionalInformation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceAdditionalInformation mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceAdditionalInformation(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceAdditionalInformation", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/additional_informations/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceAdditionalInformationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceAdditionalInformation mock PerformanceQueryPerformanceAdditionalInformation method +func (r *Mock) MockPerformanceQueryPerformanceAdditionalInformation(f func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error)) { + r.mockPerformanceQueryPerformanceAdditionalInformation = f +} + +// UnMockPerformanceQueryPerformanceAdditionalInformation un-mock PerformanceQueryPerformanceAdditionalInformation method +func (r *Mock) UnMockPerformanceQueryPerformanceAdditionalInformation() { + r.mockPerformanceQueryPerformanceAdditionalInformation = nil +} + +// QueryPerformanceAdditionalInformationReq ... +type QueryPerformanceAdditionalInformationReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `0` ~ `50` + SemesterID string `json:"semester_id,omitempty"` // 评估周期 ID, 可通过[获取周期列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)接口获取 注意: 若请求参数 `item_ids`、`external_ids`、`reviewee_user_ids` 均为空, 返回 `semester_id` 参数指定周期的所有补充信息示例值: "7348736302176534547" 长度范围: `1` ~ `100` 字符 + ItemIDs []string `json:"item_ids,omitempty"` // 补充信息 ID 列表, 可通过[批量导入补充信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_information/import)接口获取 说明: 若提供多个筛选参数, 按照 `item_ids` > `external_ids` > `reviewee_user_ids` 的优先级顺序, 以第一个有值的筛选参数进行筛选示例值: ["7350195758357807123"] 长度范围: `0` ~ `50` + ExternalIDs []string `json:"external_ids,omitempty"` // 外部系统补充信息 ID 列表, 该 ID 在通过[批量导入补充信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_information/import)接口导入时写入 说明: 若提供多个筛选参数, 按照 `item_ids` > `external_ids` > `reviewee_user_ids` 的优先级顺序, 以第一个有值的筛选参数进行筛选示例值: ["6789523104723558912"] 长度范围: `0` ~ `50` + RevieweeUserIDs []string `json:"reviewee_user_ids,omitempty"` // 被评估人 ID 列表, 与入参 `user_id_type` 类型一致, 可通过[获取被评估人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/reviewee/query)接口获取 说明: 若提供多个筛选参数, 按照 `item_ids` > `external_ids` > `reviewee_user_ids` 的优先级顺序, 以第一个有值的筛选参数进行筛选示例值: ["ou_3245842393d09e9428ad4655da6e30b3"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceAdditionalInformationResp ... +type QueryPerformanceAdditionalInformationResp struct { + AdditionalInformations []*QueryPerformanceAdditionalInformationRespAdditionalInformation `json:"additional_informations,omitempty"` // 补充信息列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceAdditionalInformationRespAdditionalInformation ... +type QueryPerformanceAdditionalInformationRespAdditionalInformation struct { + ItemID string `json:"item_id,omitempty"` // 补充信息 ID + ExternalID string `json:"external_id,omitempty"` // 外部系统补充信息 ID说明: 若导入时没有提供, 则返回为空 + RevieweeUserID string `json:"reviewee_user_id,omitempty"` // 被评估人 ID, 与入参 `user_id_type` 类型一致 + Item string `json:"item,omitempty"` // 事项 + Time string `json:"time,omitempty"` // 时间 说明: 文本内容, 无格式校验 + DetailedDescription string `json:"detailed_description,omitempty"` // 具体描述 +} + +// queryPerformanceAdditionalInformationResp ... +type queryPerformanceAdditionalInformationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceAdditionalInformationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_additional_informations_batch_delete.go b/api_performance_additional_informations_batch_delete.go new file mode 100644 index 00000000..34d75721 --- /dev/null +++ b/api_performance_additional_informations_batch_delete.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeletePerformanceAdditionalInformationsBatch 批量删除被评估人的补充信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_informations-batch/delete +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/additional_information/delete +func (r *PerformanceService) DeletePerformanceAdditionalInformationsBatch(ctx context.Context, request *DeletePerformanceAdditionalInformationsBatchReq, options ...MethodOptionFunc) (*DeletePerformanceAdditionalInformationsBatchResp, *Response, error) { + if r.cli.mock.mockPerformanceDeletePerformanceAdditionalInformationsBatch != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#DeletePerformanceAdditionalInformationsBatch mock enable") + return r.cli.mock.mockPerformanceDeletePerformanceAdditionalInformationsBatch(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "DeletePerformanceAdditionalInformationsBatch", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/additional_informations/batch", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deletePerformanceAdditionalInformationsBatchResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceDeletePerformanceAdditionalInformationsBatch mock PerformanceDeletePerformanceAdditionalInformationsBatch method +func (r *Mock) MockPerformanceDeletePerformanceAdditionalInformationsBatch(f func(ctx context.Context, request *DeletePerformanceAdditionalInformationsBatchReq, options ...MethodOptionFunc) (*DeletePerformanceAdditionalInformationsBatchResp, *Response, error)) { + r.mockPerformanceDeletePerformanceAdditionalInformationsBatch = f +} + +// UnMockPerformanceDeletePerformanceAdditionalInformationsBatch un-mock PerformanceDeletePerformanceAdditionalInformationsBatch method +func (r *Mock) UnMockPerformanceDeletePerformanceAdditionalInformationsBatch() { + r.mockPerformanceDeletePerformanceAdditionalInformationsBatch = nil +} + +// DeletePerformanceAdditionalInformationsBatchReq ... +type DeletePerformanceAdditionalInformationsBatchReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterID string `json:"semester_id,omitempty"` // 评估周期 ID, 可通过[获取周期列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)接口获取示例值: "7348736302176534547" 长度范围: `1` ~ `100` 字符 + AdditionalInformations []string `json:"additional_informations,omitempty"` // 补充信息 ID 列表, 可通过[批量查询补充信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/additional_information/query)接口获取示例值: ["7350195758357807123"] 长度范围: `1` ~ `100` +} + +// DeletePerformanceAdditionalInformationsBatchResp ... +type DeletePerformanceAdditionalInformationsBatchResp struct { + AdditionalInformations []string `json:"additional_informations,omitempty"` // 被删除的补充信息 ID 列表 +} + +// deletePerformanceAdditionalInformationsBatchResp ... +type deletePerformanceAdditionalInformationsBatchResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeletePerformanceAdditionalInformationsBatchResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_indicator_query.go b/api_performance_indicator_query.go new file mode 100644 index 00000000..b2f31a0e --- /dev/null +++ b/api_performance_indicator_query.go @@ -0,0 +1,106 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceIndicator 批量获取评估项信息, 如评估项名称、评估项类型、评估项等级配置等信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/indicator/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/review_template/query-3 +func (r *PerformanceService) QueryPerformanceIndicator(ctx context.Context, request *QueryPerformanceIndicatorReq, options ...MethodOptionFunc) (*QueryPerformanceIndicatorResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceIndicator != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceIndicator mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceIndicator(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceIndicator", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/indicators/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceIndicatorResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceIndicator mock PerformanceQueryPerformanceIndicator method +func (r *Mock) MockPerformanceQueryPerformanceIndicator(f func(ctx context.Context, request *QueryPerformanceIndicatorReq, options ...MethodOptionFunc) (*QueryPerformanceIndicatorResp, *Response, error)) { + r.mockPerformanceQueryPerformanceIndicator = f +} + +// UnMockPerformanceQueryPerformanceIndicator un-mock PerformanceQueryPerformanceIndicator method +func (r *Mock) UnMockPerformanceQueryPerformanceIndicator() { + r.mockPerformanceQueryPerformanceIndicator = nil +} + +// QueryPerformanceIndicatorReq ... +type QueryPerformanceIndicatorReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `0` ~ `50` + IndicatorIDs []string `json:"indicator_ids,omitempty"` // 评估项 ID 列表, 填写时获取指定的评估项, 不填时返回所有评估项示例值: ["7343513161666707459"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceIndicatorResp ... +type QueryPerformanceIndicatorResp struct { + Indicators []*QueryPerformanceIndicatorRespIndicator `json:"indicators,omitempty"` // 评估项列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceIndicatorRespIndicator ... +type QueryPerformanceIndicatorRespIndicator struct { + ID string `json:"id,omitempty"` // 评估项 ID + Name *QueryPerformanceIndicatorRespIndicatorName `json:"name,omitempty"` // 评估项名称 + Type string `json:"type,omitempty"` // 评估项类型可选值有: 常规评估项关键指标评估项OKR 评估项加分项减分项 + Options []*QueryPerformanceIndicatorRespIndicatorOption `json:"options,omitempty"` // 评估项等级列表 +} + +// QueryPerformanceIndicatorRespIndicatorName ... +type QueryPerformanceIndicatorRespIndicatorName struct { + ZhCn string `json:"zh_cn,omitempty"` // 评估项中文名称 + EnUs string `json:"en_us,omitempty"` // 评估项英文名称 +} + +// QueryPerformanceIndicatorRespIndicatorOption ... +type QueryPerformanceIndicatorRespIndicatorOption struct { + ID string `json:"id,omitempty"` // 评估项等级 ID + Name *QueryPerformanceIndicatorRespIndicatorOptionName `json:"name,omitempty"` // 评估项等级名称 + Lable string `json:"lable,omitempty"` // 评估项等级代号 +} + +// QueryPerformanceIndicatorRespIndicatorOptionName ... +type QueryPerformanceIndicatorRespIndicatorOptionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 评估项等级中文名称 + EnUs string `json:"en_us,omitempty"` // 评估项等级英文名称 +} + +// queryPerformanceIndicatorResp ... +type queryPerformanceIndicatorResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceIndicatorResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_detail_import.go b/api_performance_metric_detail_import.go new file mode 100644 index 00000000..437b6601 --- /dev/null +++ b/api_performance_metric_detail_import.go @@ -0,0 +1,93 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePerformanceMetricDetailImport 批量录入指定周期中被评估人的关键指标数据。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_detail/import +// new doc: https://open.feishu.cn/document/performance-v1/metric_detail/import +func (r *PerformanceService) CreatePerformanceMetricDetailImport(ctx context.Context, request *CreatePerformanceMetricDetailImportReq, options ...MethodOptionFunc) (*CreatePerformanceMetricDetailImportResp, *Response, error) { + if r.cli.mock.mockPerformanceCreatePerformanceMetricDetailImport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#CreatePerformanceMetricDetailImport mock enable") + return r.cli.mock.mockPerformanceCreatePerformanceMetricDetailImport(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "CreatePerformanceMetricDetailImport", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_details/import", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createPerformanceMetricDetailImportResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceCreatePerformanceMetricDetailImport mock PerformanceCreatePerformanceMetricDetailImport method +func (r *Mock) MockPerformanceCreatePerformanceMetricDetailImport(f func(ctx context.Context, request *CreatePerformanceMetricDetailImportReq, options ...MethodOptionFunc) (*CreatePerformanceMetricDetailImportResp, *Response, error)) { + r.mockPerformanceCreatePerformanceMetricDetailImport = f +} + +// UnMockPerformanceCreatePerformanceMetricDetailImport un-mock PerformanceCreatePerformanceMetricDetailImport method +func (r *Mock) UnMockPerformanceCreatePerformanceMetricDetailImport() { + r.mockPerformanceCreatePerformanceMetricDetailImport = nil +} + +// CreatePerformanceMetricDetailImportReq ... +type CreatePerformanceMetricDetailImportReq struct { + ClientToken string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 长度范围: `0` ~ `64` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterID string `json:"semester_id,omitempty"` // 周期 ID, 可通过[获取周期](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)接口获取示例值: "7293040702907514899" + ImportRecordName *string `json:"import_record_name,omitempty"` // 数据源录入人, 在录入记录页面可以查看该记录名称。示例值: "API录入"默认值: `API录入` + ImportedMetrics []*CreatePerformanceMetricDetailImportReqImportedMetric `json:"imported_metrics,omitempty"` // 指标明细列表 长度范围: `1` ~ `50` +} + +// CreatePerformanceMetricDetailImportReqImportedMetric ... +type CreatePerformanceMetricDetailImportReqImportedMetric struct { + RevieweeUserID string `json:"reviewee_user_id,omitempty"` // 被评估人 ID, 与入参 `user_id_type` 类型一致示例值: "ou_3245842393d09e9428ad4655da6e30b3" + MetricID string `json:"metric_id,omitempty"` // 指标 ID, 可通过[获取指标列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_lib/query)接口获取示例值: "7272580325522276372" + Fields []*CreatePerformanceMetricDetailImportReqImportedMetricField `json:"fields,omitempty"` // 指标字段信息 长度范围: `1` ~ `99` +} + +// CreatePerformanceMetricDetailImportReqImportedMetricField ... +type CreatePerformanceMetricDetailImportReqImportedMetricField struct { + FieldID string `json:"field_id,omitempty"` // 指标字段 ID, 可通过[获取指标字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_field/query)接口获取示例值: "7283776005142675476" + FieldValue *string `json:"field_value,omitempty"` // 字段值示例值: "100" + FieldValuePerson *string `json:"field_value_person,omitempty"` // 字段值, 当字段为人员信息时必填, 与入参 `user_id_type` 类型一致示例值: "ou_3245842393d09e9428ad4655da6e30b3" +} + +// CreatePerformanceMetricDetailImportResp ... +type CreatePerformanceMetricDetailImportResp struct { + ImportRecordID string `json:"import_record_id,omitempty"` // 导入记录 ID +} + +// createPerformanceMetricDetailImportResp ... +type createPerformanceMetricDetailImportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePerformanceMetricDetailImportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_detail_query.go b/api_performance_metric_detail_query.go new file mode 100644 index 00000000..2ba19917 --- /dev/null +++ b/api_performance_metric_detail_query.go @@ -0,0 +1,130 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceMetricDetail 批量获取指定周期中被评估人的关键指标结果。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_detail/query +// new doc: https://open.feishu.cn/document/performance-v1/metric_detail/query +func (r *PerformanceService) QueryPerformanceMetricDetail(ctx context.Context, request *QueryPerformanceMetricDetailReq, options ...MethodOptionFunc) (*QueryPerformanceMetricDetailResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceMetricDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceMetricDetail mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceMetricDetail(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceMetricDetail", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_details/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceMetricDetailResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceMetricDetail mock PerformanceQueryPerformanceMetricDetail method +func (r *Mock) MockPerformanceQueryPerformanceMetricDetail(f func(ctx context.Context, request *QueryPerformanceMetricDetailReq, options ...MethodOptionFunc) (*QueryPerformanceMetricDetailResp, *Response, error)) { + r.mockPerformanceQueryPerformanceMetricDetail = f +} + +// UnMockPerformanceQueryPerformanceMetricDetail un-mock PerformanceQueryPerformanceMetricDetail method +func (r *Mock) UnMockPerformanceQueryPerformanceMetricDetail() { + r.mockPerformanceQueryPerformanceMetricDetail = nil +} + +// QueryPerformanceMetricDetailReq ... +type QueryPerformanceMetricDetailReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterID string `json:"semester_id,omitempty"` // 周期 ID, 1 次只允许查询 1 个周期, semester_id 可通过【[获取周期](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)】接口获得示例值: "6992035450862224940" + RevieweeUserIDs []string `json:"reviewee_user_ids,omitempty"` // 被评估人 ID 列表, 与入参 `user_id_type` 类型一致示例值: ["ou_3245842393d09e9428ad4655da6e30b3"] 长度范围: `1` ~ `50` +} + +// QueryPerformanceMetricDetailResp ... +type QueryPerformanceMetricDetailResp struct { + SemesterID string `json:"semester_id,omitempty"` // 周期 ID, 详情可查看: [获取周期](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list) + RevieweeMetrics []*QueryPerformanceMetricDetailRespRevieweeMetric `json:"reviewee_metrics,omitempty"` // 指标明细列表 +} + +// QueryPerformanceMetricDetailRespRevieweeMetric ... +type QueryPerformanceMetricDetailRespRevieweeMetric struct { + RevieweeUserID *QueryPerformanceMetricDetailRespRevieweeMetricRevieweeUserID `json:"reviewee_user_id,omitempty"` // 被评估人 + MetricTemplateID string `json:"metric_template_id,omitempty"` // 指标模板 ID, 详情可查看: [获取指标模板列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_template/query) + MetricDetails *QueryPerformanceMetricDetailRespRevieweeMetricMetricDetails `json:"metric_details,omitempty"` // 指标详情 + RevieweeStageStatuses []*QueryPerformanceMetricDetailRespRevieweeMetricRevieweeStageStatuse `json:"reviewee_stage_statuses,omitempty"` // 指标对应的环节状态 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricMetricDetails ... +type QueryPerformanceMetricDetailRespRevieweeMetricMetricDetails struct { + MetricID string `json:"metric_id,omitempty"` // 指标 ID, 详情可查看: [获取指标列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_lib/query) + Name string `json:"name,omitempty"` // 指标名称, 指标在该明细数据中的名称 + Fields []*QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsField `json:"fields,omitempty"` // 指标字段信息 + DimensionID string `json:"dimension_id,omitempty"` // 指标维度 ID + DimensionName *QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsDimensionName `json:"dimension_name,omitempty"` // 指标维度名称 + DimensionWeight string `json:"dimension_weight,omitempty"` // 指标维度权重, 如果没有设置则返回为空, 单位为百分比 + AddFrom string `json:"add_from,omitempty"` // 指标添加来源可选值有: 指标制定人添加管理员添加 + IsFromLibrary bool `json:"is_from_library,omitempty"` // 指标是否引自指标库 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsDimensionName ... +type QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 指标维度中文名称 + EnUs string `json:"en_us,omitempty"` // 指标维度英文名称 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsField ... +type QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsField struct { + FieldID string `json:"field_id,omitempty"` // 指标字段 ID, 详情可查看: [获取指标字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_field/query) + FieldValue string `json:"field_value,omitempty"` // 指标字段值 + FieldValuePerson *QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsFieldFieldValuePerson `json:"field_value_person,omitempty"` // 字段值, 当字段为人员信息时有值 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsFieldFieldValuePerson ... +type QueryPerformanceMetricDetailRespRevieweeMetricMetricDetailsFieldFieldValuePerson struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 取值与user_id_type一致 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricRevieweeStageStatuse ... +type QueryPerformanceMetricDetailRespRevieweeMetricRevieweeStageStatuse struct { + StageID string `json:"stage_id,omitempty"` // 环节ID + StageType string `json:"stage_type,omitempty"` // 环节类型可选值有: - `kpi_metric_setting`: 指标制定环节 - `kpi_result_recording`: 结果录入环节 + StageStatus int64 `json:"stage_status,omitempty"` // 环节状态可选值有: - `0`: 未开始 - `1`: 待提交 - `2`: 已逾期 - `3`: 确认中 - `4`: 被驳回 - `5`: 已完成 +} + +// QueryPerformanceMetricDetailRespRevieweeMetricRevieweeUserID ... +type QueryPerformanceMetricDetailRespRevieweeMetricRevieweeUserID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 与入参 `user_id_type` 类型一致 +} + +// queryPerformanceMetricDetailResp ... +type queryPerformanceMetricDetailResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceMetricDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_field_query.go b/api_performance_metric_field_query.go new file mode 100644 index 00000000..228dbccb --- /dev/null +++ b/api_performance_metric_field_query.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceMetricField 批量获取指标的字段基础信息, 如指标字段名称、指标字段类型等信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_field/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/metric_template/query-2 +func (r *PerformanceService) QueryPerformanceMetricField(ctx context.Context, request *QueryPerformanceMetricFieldReq, options ...MethodOptionFunc) (*QueryPerformanceMetricFieldResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceMetricField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceMetricField mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceMetricField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceMetricField", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_fields/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceMetricFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceMetricField mock PerformanceQueryPerformanceMetricField method +func (r *Mock) MockPerformanceQueryPerformanceMetricField(f func(ctx context.Context, request *QueryPerformanceMetricFieldReq, options ...MethodOptionFunc) (*QueryPerformanceMetricFieldResp, *Response, error)) { + r.mockPerformanceQueryPerformanceMetricField = f +} + +// UnMockPerformanceQueryPerformanceMetricField un-mock PerformanceQueryPerformanceMetricField method +func (r *Mock) UnMockPerformanceQueryPerformanceMetricField() { + r.mockPerformanceQueryPerformanceMetricField = nil +} + +// QueryPerformanceMetricFieldReq ... +type QueryPerformanceMetricFieldReq struct { + FieldIDs []string `json:"field_ids,omitempty"` // 指标的字段 ID 列表, 填写时获取指定指标字段, 不填时获取全部指标字段示例值: ["7293169069640630291"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceMetricFieldResp ... +type QueryPerformanceMetricFieldResp struct { + Items []*QueryPerformanceMetricFieldRespItem `json:"items,omitempty"` // 指标字段信息 +} + +// QueryPerformanceMetricFieldRespItem ... +type QueryPerformanceMetricFieldRespItem struct { + FieldID string `json:"field_id,omitempty"` // 指标字段 ID + Name *QueryPerformanceMetricFieldRespItemName `json:"name,omitempty"` // 指标字段名称 + Type string `json:"type,omitempty"` // 指标字段类型可选值有: 文本数字百分比人员单选 +} + +// QueryPerformanceMetricFieldRespItemName ... +type QueryPerformanceMetricFieldRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 指标字段中文名称 + EnUs string `json:"en_us,omitempty"` // 指标字段英文名称 +} + +// queryPerformanceMetricFieldResp ... +type queryPerformanceMetricFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceMetricFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_lib_query.go b/api_performance_metric_lib_query.go new file mode 100644 index 00000000..7bb88c14 --- /dev/null +++ b/api_performance_metric_lib_query.go @@ -0,0 +1,137 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceMetricLib 获取指标库中的指标信息, 如指标名称、指标类型、指标标签和指标字段等信息。可通过指标启用状态、指标类型、指标可用范围等筛选条件获取指定范围的指标信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_lib/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/metric_template/query-3 +func (r *PerformanceService) QueryPerformanceMetricLib(ctx context.Context, request *QueryPerformanceMetricLibReq, options ...MethodOptionFunc) (*QueryPerformanceMetricLibResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceMetricLib != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceMetricLib mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceMetricLib(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceMetricLib", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_libs/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceMetricLibResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceMetricLib mock PerformanceQueryPerformanceMetricLib method +func (r *Mock) MockPerformanceQueryPerformanceMetricLib(f func(ctx context.Context, request *QueryPerformanceMetricLibReq, options ...MethodOptionFunc) (*QueryPerformanceMetricLibResp, *Response, error)) { + r.mockPerformanceQueryPerformanceMetricLib = f +} + +// UnMockPerformanceQueryPerformanceMetricLib un-mock PerformanceQueryPerformanceMetricLib method +func (r *Mock) UnMockPerformanceQueryPerformanceMetricLib() { + r.mockPerformanceQueryPerformanceMetricLib = nil +} + +// QueryPerformanceMetricLibReq ... +type QueryPerformanceMetricLibReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `20` 取值范围: `1` ~ `50` + IsActive *bool `json:"is_active,omitempty"` // 指标启用状态, 填写时根据指定启用状态进行筛选示例值: true + TagIDs []string `json:"tag_ids,omitempty"` // 指标标签 ID 列表, 可通过[获取指标标签信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_tag/list)接口获取, 填写时筛选拥有指定标签的指标示例值: ["7302271694582841364"] 长度范围: `0` ~ `99` + TypeIDs []string `json:"type_ids,omitempty"` // 指标类型 ID 列表, 可通过[获取指标模板列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_template/query)接口返回结果中的 `data.items.metrics.type_id` 获取, 填写时根据指定的指标类型进行筛选, type_ids的长度范围(0~99)示例值: ["7272578300650717203"] + RangeOfAvailability *string `json:"range_of_availability,omitempty"` // 指标可用范围, 填写时根据指定可用范围进行筛选示例值: "admins_and_reviewees"可选值有: 允许管理员下发和被评估人选用仅允许管理员下发 + ScoringSettingType *string `json:"scoring_setting_type,omitempty"` // 指标评分类型, 填写时根据指定评分类型进行筛选示例值: "score_manually"可选值有: 手动评分公式评分 +} + +// QueryPerformanceMetricLibResp ... +type QueryPerformanceMetricLibResp struct { + Items []*QueryPerformanceMetricLibRespItem `json:"items,omitempty"` // 指标信息 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceMetricLibRespItem ... +type QueryPerformanceMetricLibRespItem struct { + MetricID string `json:"metric_id,omitempty"` // 指标 ID + Name string `json:"name,omitempty"` // 指标名称 + TypeID string `json:"type_id,omitempty"` // 指标类型 ID + Tags []*QueryPerformanceMetricLibRespItemTag `json:"tags,omitempty"` // 指标标签信息 + Fields []*QueryPerformanceMetricLibRespItemField `json:"fields,omitempty"` // 指标字段信息 + ScoringSettingType string `json:"scoring_setting_type,omitempty"` // 指标评分设置类型可选值有: 手动评分公式评分 + ScoringFormula *QueryPerformanceMetricLibRespItemScoringFormula `json:"scoring_formula,omitempty"` // 指标评分公式 + DataSourceInputters []*QueryPerformanceMetricLibRespItemDataSourceInputter `json:"data_source_inputters,omitempty"` // 指标数据源录入人 ID + RangeOfAvailability string `json:"range_of_availability,omitempty"` // 指标可用范围可选值有: 允许管理员下发和被评估人选用仅允许管理员下发 + IsActive bool `json:"is_active,omitempty"` // 指标状态是否为启用 +} + +// QueryPerformanceMetricLibRespItemDataSourceInputter ... +type QueryPerformanceMetricLibRespItemDataSourceInputter struct { + OpenID string `json:"open_id,omitempty"` // 指标数据源录入人的 open_id + UserID string `json:"user_id,omitempty"` // 指标数据源录入人的 user_id, 取值与入参 `user_id_type` 类型一致 +} + +// QueryPerformanceMetricLibRespItemField ... +type QueryPerformanceMetricLibRespItemField struct { + FieldID string `json:"field_id,omitempty"` // 指标字段 ID, 详情可查看: [获取指标字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_field/query) + InputSetting string `json:"input_setting,omitempty"` // 指标字段填写设置类型可选值有: 管理员统一配置数据源录入人填写指标制定人填写 + FieldValue string `json:"field_value,omitempty"` // 指标字段值 + FieldValuePerson *QueryPerformanceMetricLibRespItemFieldFieldValuePerson `json:"field_value_person,omitempty"` // 字段值, 当字段为人员信息时有值 +} + +// QueryPerformanceMetricLibRespItemFieldFieldValuePerson ... +type QueryPerformanceMetricLibRespItemFieldFieldValuePerson struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 取值与user_id_type一致 +} + +// QueryPerformanceMetricLibRespItemScoringFormula ... +type QueryPerformanceMetricLibRespItemScoringFormula struct { + FormulaID string `json:"formula_id,omitempty"` // 公式 ID + FormulaName string `json:"formula_name,omitempty"` // 公式名称 + FormulaDetails string `json:"formula_details,omitempty"` // 公式详情 +} + +// QueryPerformanceMetricLibRespItemTag ... +type QueryPerformanceMetricLibRespItemTag struct { + TagID string `json:"tag_id,omitempty"` // 指标标签 ID, 详情可查看: [获取指标标签信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_tag/list) + TagName *QueryPerformanceMetricLibRespItemTagTagName `json:"tag_name,omitempty"` // 标签名称 +} + +// QueryPerformanceMetricLibRespItemTagTagName ... +type QueryPerformanceMetricLibRespItemTagTagName struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文名称 + EnUs string `json:"en_us,omitempty"` // 标签英文名称 +} + +// queryPerformanceMetricLibResp ... +type queryPerformanceMetricLibResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceMetricLibResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_tag_list.go b/api_performance_metric_tag_list.go new file mode 100644 index 00000000..584fd3c5 --- /dev/null +++ b/api_performance_metric_tag_list.go @@ -0,0 +1,94 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListPerformanceMetricTag 批量获取指标的标签信息, 如标签名称、创建时间等信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_tag/list +// new doc: https://open.feishu.cn/document/performance-v1/review_config/metric_template/list +func (r *PerformanceService) ListPerformanceMetricTag(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) { + if r.cli.mock.mockPerformanceListPerformanceMetricTag != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#ListPerformanceMetricTag mock enable") + return r.cli.mock.mockPerformanceListPerformanceMetricTag(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "ListPerformanceMetricTag", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_tags", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listPerformanceMetricTagResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceListPerformanceMetricTag mock PerformanceListPerformanceMetricTag method +func (r *Mock) MockPerformanceListPerformanceMetricTag(f func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error)) { + r.mockPerformanceListPerformanceMetricTag = f +} + +// UnMockPerformanceListPerformanceMetricTag un-mock PerformanceListPerformanceMetricTag method +func (r *Mock) UnMockPerformanceListPerformanceMetricTag() { + r.mockPerformanceListPerformanceMetricTag = nil +} + +// ListPerformanceMetricTagReq ... +type ListPerformanceMetricTagReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小 默认值: 20示例值: 10 最大值: `50` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + TagIDs []string `query:"tag_ids" json:"-"` // 指标标签 ID 列表, 传此参数时不进行分页, 不传时分页返回所有数据。示例值: 7283015566780547091 长度范围: `0` ~ `9999` +} + +// ListPerformanceMetricTagResp ... +type ListPerformanceMetricTagResp struct { + Items []*ListPerformanceMetricTagRespItem `json:"items,omitempty"` // 指标标签列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListPerformanceMetricTagRespItem ... +type ListPerformanceMetricTagRespItem struct { + TagID string `json:"tag_id,omitempty"` // 标签 ID + TagName *ListPerformanceMetricTagRespItemTagName `json:"tag_name,omitempty"` // 标签名称 + Index int64 `json:"index,omitempty"` // 标签顺序 + CreateTime string `json:"create_time,omitempty"` // 创建时间戳(单位: 毫秒) + UpdateTime string `json:"update_time,omitempty"` // 更新时间戳(单位: 毫秒) +} + +// ListPerformanceMetricTagRespItemTagName ... +type ListPerformanceMetricTagRespItemTagName struct { + ZhCn string `json:"zh_cn,omitempty"` // 标签中文 + EnUs string `json:"en_us,omitempty"` // 标签英文 +} + +// listPerformanceMetricTagResp ... +type listPerformanceMetricTagResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListPerformanceMetricTagResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_metric_template_query.go b/api_performance_metric_template_query.go new file mode 100644 index 00000000..8a0f1af7 --- /dev/null +++ b/api_performance_metric_template_query.go @@ -0,0 +1,184 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceMetricTemplate 批量获取指标模板的信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_template/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/metric_template/query +func (r *PerformanceService) QueryPerformanceMetricTemplate(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceMetricTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceMetricTemplate mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceMetricTemplate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceMetricTemplate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/metric_templates/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceMetricTemplateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceMetricTemplate mock PerformanceQueryPerformanceMetricTemplate method +func (r *Mock) MockPerformanceQueryPerformanceMetricTemplate(f func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error)) { + r.mockPerformanceQueryPerformanceMetricTemplate = f +} + +// UnMockPerformanceQueryPerformanceMetricTemplate un-mock PerformanceQueryPerformanceMetricTemplate method +func (r *Mock) UnMockPerformanceQueryPerformanceMetricTemplate() { + r.mockPerformanceQueryPerformanceMetricTemplate = nil +} + +// QueryPerformanceMetricTemplateReq ... +type QueryPerformanceMetricTemplateReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `1` ~ `50` + MetricsTemplateIDs []string `json:"metrics_template_ids,omitempty"` // 指标模板 ID 列表, 填写时获取指定的指标模版示例值: ["7360956875099078676"] 长度范围: `0` ~ `50` + Status *string `json:"status,omitempty"` // 指标模版状态示例值: "to_be_configured"可选值有: 待完成配置待启用已启用已停用 +} + +// QueryPerformanceMetricTemplateResp ... +type QueryPerformanceMetricTemplateResp struct { + Items []*QueryPerformanceMetricTemplateRespItem `json:"items,omitempty"` // 指标模板信息 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceMetricTemplateRespItem ... +type QueryPerformanceMetricTemplateRespItem struct { + ID string `json:"id,omitempty"` // 指标模板 ID + Name *QueryPerformanceMetricTemplateRespItemName `json:"name,omitempty"` // 模版名称 + Description *QueryPerformanceMetricTemplateRespItemDescription `json:"description,omitempty"` // 模板描述 + Status string `json:"status,omitempty"` // 模版状态可选值有: 待完成配置待启用已启用已停用 + IsSetByGroup bool `json:"is_set_by_group,omitempty"` // 模版是否分人群设置指标 + TotalMetricScoreMethod int64 `json:"total_metric_score_method,omitempty"` // 模版指标总分计算方式可选值有: 手动评估加和计算加权计算自定义公式 + MetricWeightMethod string `json:"metric_weight_method,omitempty"` // 指标权重计算方式可选值有: 每个维度内的指标权重之和等于 100%全部指标权重之和等于 100% + MetricDimensions []*QueryPerformanceMetricTemplateRespItemMetricDimension `json:"metric_dimensions,omitempty"` // 指标维度列表 + Metrics []*QueryPerformanceMetricTemplateRespItemMetric `json:"metrics,omitempty"` // 指标列表 + Groups []*QueryPerformanceMetricTemplateRespItemGroup `json:"groups,omitempty"` // 人群分组 +} + +// QueryPerformanceMetricTemplateRespItemDescription ... +type QueryPerformanceMetricTemplateRespItemDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 模板中文描述 + EnUs string `json:"en_us,omitempty"` // 模板英文描述 +} + +// QueryPerformanceMetricTemplateRespItemGroup ... +type QueryPerformanceMetricTemplateRespItemGroup struct { + GroupID string `json:"group_id,omitempty"` // 人群分组 ID + Name string `json:"name,omitempty"` // 人群分组名称 +} + +// QueryPerformanceMetricTemplateRespItemMetric ... +type QueryPerformanceMetricTemplateRespItemMetric struct { + GroupID string `json:"group_id,omitempty"` // 所属人群分组 ID, 模板分人群设置指标时, 指标维度按照人群分组;未分人群设置时该值为空 + MetricID string `json:"metric_id,omitempty"` // 指标 ID(备注: 指标的统一标识 ID。如果模板存在分组, 需要+分组 ID 才能标识到指标模板唯一的指标) + Name string `json:"name,omitempty"` // 指标名称(指标在当前模板中的名称) + TypeID string `json:"type_id,omitempty"` // 指标类型 ID + Fields []*QueryPerformanceMetricTemplateRespItemMetricField `json:"fields,omitempty"` // 指标字段信息 + IsFromLibrary bool `json:"is_from_library,omitempty"` // 指标是否引自指标库 + ScoringSettingType string `json:"scoring_setting_type,omitempty"` // 评分设置类型可选值有: 手动评分公式评分 + DataSourceInputters []*QueryPerformanceMetricTemplateRespItemMetricDataSourceInputter `json:"data_source_inputters,omitempty"` // 数据源录入人 + MetricDimensionID string `json:"metric_dimension_id,omitempty"` // 指标维度 ID + ReviewRuleConfig *QueryPerformanceMetricTemplateRespItemMetricReviewRuleConfig `json:"review_rule_config,omitempty"` // 评估规则 +} + +// QueryPerformanceMetricTemplateRespItemMetricDataSourceInputter ... +type QueryPerformanceMetricTemplateRespItemMetricDataSourceInputter struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 与入参 `user_id_type` 类型一致 +} + +// QueryPerformanceMetricTemplateRespItemMetricDimension ... +type QueryPerformanceMetricTemplateRespItemMetricDimension struct { + GroupID string `json:"group_id,omitempty"` // 所属人群分组 ID, 模板分人群设置指标时, 指标维度按照人群分组;未分人群设置时该值为空 + MetricDimensionID string `json:"metric_dimension_id,omitempty"` // 指标维度 ID + Name *QueryPerformanceMetricTemplateRespItemMetricDimensionName `json:"name,omitempty"` // 指标维度名称 + EvaluationRuleIDForEachMetric string `json:"evaluation_rule_id_for_each_metric,omitempty"` // 指标评估规则 ID + DimensionWeight string `json:"dimension_weight,omitempty"` // 维度权重, 如果没有设置则返回为空(和设置为 0 进行区分), 单位为百分比 + Description *QueryPerformanceMetricTemplateRespItemMetricDimensionDescription `json:"description,omitempty"` // 维度描述 + ReviewRuleOption int64 `json:"review_rule_option,omitempty"` // 各指标的评估规则可选值有: 使用相同规则使用不同规则 + CustomMetricConfig *QueryPerformanceMetricTemplateRespItemMetricDimensionCustomMetricConfig `json:"custom_metric_config,omitempty"` // 被评估人添加指标的设置 +} + +// QueryPerformanceMetricTemplateRespItemMetricDimensionCustomMetricConfig ... +type QueryPerformanceMetricTemplateRespItemMetricDimensionCustomMetricConfig struct { + DefaultFormulaID string `json:"default_formula_id,omitempty"` // 非指标库指标的评分方式(手动评分是 0;评分公式是具体的公式 ID) + LeastMetricsSize int64 `json:"least_metrics_size,omitempty"` // 最少需添加的指标数量 + AddMetricOptions []int64 `json:"add_metric_options,omitempty"` // 添加指标的方式可选值有: 可选用指标库的指标可选用自定义的指标 +} + +// QueryPerformanceMetricTemplateRespItemMetricDimensionDescription ... +type QueryPerformanceMetricTemplateRespItemMetricDimensionDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceMetricTemplateRespItemMetricDimensionName ... +type QueryPerformanceMetricTemplateRespItemMetricDimensionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 指标维度中文名称 + EnUs string `json:"en_us,omitempty"` // 指标维度英文名称 +} + +// QueryPerformanceMetricTemplateRespItemMetricField ... +type QueryPerformanceMetricTemplateRespItemMetricField struct { + ID string `json:"id,omitempty"` // 指标字段 ID, 详情可查看: [获取指标字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/metric_field/query) + InputSetting string `json:"input_setting,omitempty"` // 字段填写方式设置可选值有: 管理员统一配置数据源录入人填写指标制定人填写 + FiledValue string `json:"filed_value,omitempty"` // 字段值 + FieldValuePerson *QueryPerformanceMetricTemplateRespItemMetricFieldFieldValuePerson `json:"field_value_person,omitempty"` // 字段值, 当字段为人员信息的时候有值 +} + +// QueryPerformanceMetricTemplateRespItemMetricFieldFieldValuePerson ... +type QueryPerformanceMetricTemplateRespItemMetricFieldFieldValuePerson struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 取值与user_id_type一致 +} + +// QueryPerformanceMetricTemplateRespItemMetricReviewRuleConfig ... +type QueryPerformanceMetricTemplateRespItemMetricReviewRuleConfig struct { + Max string `json:"max,omitempty"` // 最高分 + Min string `json:"min,omitempty"` // 最低分 +} + +// QueryPerformanceMetricTemplateRespItemName ... +type QueryPerformanceMetricTemplateRespItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 模版中文名称 + EnUs string `json:"en_us,omitempty"` // 模版英文名称 +} + +// queryPerformanceMetricTemplateResp ... +type queryPerformanceMetricTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceMetricTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_question_query.go b/api_performance_question_query.go new file mode 100644 index 00000000..aa4f6944 --- /dev/null +++ b/api_performance_question_query.go @@ -0,0 +1,104 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceQuestion 获取标签填写题配置信息, 包括标签填写题名称、标签列表等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/question/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/review_template/query-2 +func (r *PerformanceService) QueryPerformanceQuestion(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceQuestion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceQuestion mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceQuestion(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceQuestion", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/questions/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceQuestionResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceQuestion mock PerformanceQueryPerformanceQuestion method +func (r *Mock) MockPerformanceQueryPerformanceQuestion(f func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error)) { + r.mockPerformanceQueryPerformanceQuestion = f +} + +// UnMockPerformanceQueryPerformanceQuestion un-mock PerformanceQueryPerformanceQuestion method +func (r *Mock) UnMockPerformanceQueryPerformanceQuestion() { + r.mockPerformanceQueryPerformanceQuestion = nil +} + +// QueryPerformanceQuestionReq ... +type QueryPerformanceQuestionReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `0` ~ `50` + TagBasedQuestionIDs []string `json:"tag_based_question_ids,omitempty"` // 标签填写题 ID 列表, 获取指定标签填写题的配置数据。如果不传则返回所有示例值: ["7343513161666707459"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceQuestionResp ... +type QueryPerformanceQuestionResp struct { + TagBasedQuestions []*QueryPerformanceQuestionRespTagBasedQuestion `json:"tag_based_questions,omitempty"` // 标签填写题 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceQuestionRespTagBasedQuestion ... +type QueryPerformanceQuestionRespTagBasedQuestion struct { + QuestionID string `json:"question_id,omitempty"` // 填写题 ID + Name *QueryPerformanceQuestionRespTagBasedQuestionName `json:"name,omitempty"` // 填写题名称 + TagItems []*QueryPerformanceQuestionRespTagBasedQuestionTagItem `json:"tag_items,omitempty"` // 标签列表 +} + +// QueryPerformanceQuestionRespTagBasedQuestionName ... +type QueryPerformanceQuestionRespTagBasedQuestionName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceQuestionRespTagBasedQuestionTagItem ... +type QueryPerformanceQuestionRespTagBasedQuestionTagItem struct { + ID string `json:"id,omitempty"` // 标签 ID + Name *QueryPerformanceQuestionRespTagBasedQuestionTagItemName `json:"name,omitempty"` // 标签名称 +} + +// QueryPerformanceQuestionRespTagBasedQuestionTagItemName ... +type QueryPerformanceQuestionRespTagBasedQuestionTagItemName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// queryPerformanceQuestionResp ... +type queryPerformanceQuestionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceQuestionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_review_data_query.go b/api_performance_review_data_query.go new file mode 100644 index 00000000..f65d457c --- /dev/null +++ b/api_performance_review_data_query.go @@ -0,0 +1,429 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceReviewData 获取被评估人各环节的绩效评估详情(不包含校准环节), 如环节评估数据、环节提交状态等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/review_data/query +// new doc: https://open.feishu.cn/document/performance-v1/review_data/query-2 +func (r *PerformanceService) QueryPerformanceReviewData(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceReviewData != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceReviewData mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceReviewData(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceReviewData", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/review_datas/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceReviewDataResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceReviewData mock PerformanceQueryPerformanceReviewData method +func (r *Mock) MockPerformanceQueryPerformanceReviewData(f func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error)) { + r.mockPerformanceQueryPerformanceReviewData = f +} + +// UnMockPerformanceQueryPerformanceReviewData un-mock PerformanceQueryPerformanceReviewData method +func (r *Mock) UnMockPerformanceQueryPerformanceReviewData() { + r.mockPerformanceQueryPerformanceReviewData = nil +} + +// QueryPerformanceReviewDataReq ... +type QueryPerformanceReviewDataReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + SemesterIDs []string `json:"semester_ids,omitempty"` // 评估周期 ID 列表, semester_id 可通过[【获取周期】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)获得示例值: ["6992035450862224940"] 长度范围: `0` ~ `10` + RevieweeUserIDs []string `json:"reviewee_user_ids,omitempty"` // 被评估人 ID 列表, ID 类型与user_id_type 的取值一致示例值: ["ou_3245842393d09e9428ad4655da6e30b3"] 长度范围: `0` ~ `10` + StageTypes []string `json:"stage_types,omitempty"` // 环节类型, 如果同时传了环节 ID 和环节类型, 优先返回环节 ID 对应的绩效数据。stage_types 和 stage_ids 至少要传一个, 不传默认不返回任何环节评估数据。如果返回数据为空, 可以检查模板对应环节是否有内容。示例值: ["leader_review"]可选值有: 工作总结环节评估型环节结果沟通环节绩效结果查看环节结果复议环节终评环节(特指最终的绩效结果数据) + ReviewStageRoles []string `json:"review_stage_roles,omitempty"` // 评估型环节的执行人角色, 当传入的环节类型中有评估型环节时, 该参数才生效, 返回指定执行人角色的评估型环节数据, 不传默认包含所有的执行人角色。示例值: ["reviewee"]可选值有: 被评估人360°评估人实线上级虚线上级第二实线上级合作项目中的直属上级自定义评估角色指标评价人 + StageIDs []string `json:"stage_ids,omitempty"` // 环节 ID, 如果同时传了环节 ID 和环节类型, 优先返回环节 ID 对应的绩效数据。stage_types 和 stage_ids 至少要传一个, 不传默认不返回任何环节评估数据。可在事件[绩效结果开通](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/stage_task/events/open_result)、[绩效详情变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/review_data/events/changed)获得, 用于接收事件后按环节查询评估数据场景示例值: ["7343513161666707459"] 长度范围: `0` ~ `50` + NeedLeaderReviewDataSource *bool `json:"need_leader_review_data_source,omitempty"` // 当要获取的绩效数据的环节类型包含终评环节时, 可指定是否需要返回绩效终评数据的具体环节来源。不传则默认不返回。 可选值有: true: 返回绩效终评数据的具体环节来源- false: 不返回绩效终评数据的具体环节来源示例值: true + UpdatedLaterThan *string `json:"updated_later_than,omitempty"` // 可筛选出在此时间之后, 有内容提交的环节数据, 毫秒级时间戳。不传默认返回所有时间提交的环节数据, 包括未提交的环节数据示例值: "1630425599999" + StageProgresses []int64 `json:"stage_progresses,omitempty"` // 环节状态, 不传默认包含所有状态。各类型的环节分别有以下环节状态: 查看绩效结果环节状态 可选值有: - `0`: 已开通, 绩效结果已开通, 未发起复议也无需确认结果 - `1`: 待确认, 绩效结果已开通但被评估人还未确认结果, 确认的截止时间还未到达 - `2`: 已截止, 绩效结果已开通但被评估人还未确认结果, 确认的截止时间已到达 - `3`: 已确认, 绩效结果已开通, 被评估人已确认结果 - `4`: 已复议, 绩效结果已开通, 且被评估人已发起复议 绩效结果复议环节状态 可选值有: - `1`: 待完成, 任务未完成 - `2`: 已截止, 任务的截止时间已到达, 且任务未完成 - `3`: 已完成, 任务已完成 除上述类型外的其他环节类型状态 可选值有: - `0`: 未开始, 任务的开始时间未到达 - `1`: 待完成, 任务的开始时间到达而截止时间未到达, 且任务未完成 - `2`: 已截止, 任务的截止时间已到达, 且任务未完成 - `3`: 已完成, 任务已完成示例值: [1] 长度范围: `0` ~ `50` +} + +// QueryPerformanceReviewDataResp ... +type QueryPerformanceReviewDataResp struct { + Datas []*QueryPerformanceReviewDataRespData `json:"datas,omitempty"` // 评估数据列表 +} + +// QueryPerformanceReviewDataRespData ... +type QueryPerformanceReviewDataRespData struct { + UserID *QueryPerformanceReviewDataRespDataUserID `json:"user_id,omitempty"` // 被评估人 ID + SemesterID string `json:"semester_id,omitempty"` // 绩效评估周期 ID + ActivityID string `json:"activity_id,omitempty"` // 绩效评估项目 ID, 详细信息请参考[获取项目配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/activity/query) + ReviewTemplateID string `json:"review_template_id,omitempty"` // 被评估人在该周期对应的后台评估模板 ID, 详细信息请参考[获取评估模板配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/review_template/query) + Stages []*QueryPerformanceReviewDataRespDataStage `json:"stages,omitempty"` // 本周期内各环节内容 +} + +// QueryPerformanceReviewDataRespDataStage ... +type QueryPerformanceReviewDataRespDataStage struct { + StageID string `json:"stage_id,omitempty"` // 环节 ID + StageType string `json:"stage_type,omitempty"` // 环节类型可选值有: 工作总结环节评估型环节结果沟通环节绩效结果查看环节结果复议环节终评环节(特指最终的绩效结果数据) + TemplateID string `json:"template_id,omitempty"` // 该环节对应的环节模板的 ID + Records []*QueryPerformanceReviewDataRespDataStageRecord `json:"records,omitempty"` // 评估内容记录。多人评估的环节有多份记录, 比如 360 评估环节。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 则评估记录数低于匿名下限, 则不返回 360 评估记录 + ReviewStageRole string `json:"review_stage_role,omitempty"` // 评估型环节的执行人角色可选值有: 被评估人360°评估人实线上级虚线上级第二实线上级项目直属上级自定义评估角色指标评价人角色 +} + +// QueryPerformanceReviewDataRespDataStageRecord ... +type QueryPerformanceReviewDataRespDataStageRecord struct { + Progress int64 `json:"progress,omitempty"` // 评估人的环节状态。各类型的环节分别有以下环节状态: 查看绩效结果环节状态 可选值有: - `0`: 已开通, 绩效结果已开通, 未发起复议也无需确认结果 - `1`: 待确认, 绩效结果已开通但被评估人还未确认结果, 确认的截止时间还未到达 - `2`: 已截止, 绩效结果已开通但被评估人还未确认结果, 确认的截止时间已到达 - `3`: 已确认, 绩效结果已开通, 被评估人已确认结果 - `4`: 已复议, 绩效结果已开通, 且被评估人已发起复议 终评环节/结果沟通环节状态(不传默认包含所有的状态) 绩效结果复议环节状态 可选值有: - `1`: 待完成, 任务未完成 - `2`: 已截止, 任务的截止时间已到达, 且任务未完成 - `3`: 已完成, 任务已完成 除上述类型外的其他环节类型状态 可选值有: - `0`: 未开始, 任务的开始时间未到达 - `1`: 待完成, 任务的开始时间到达而截止时间未到达, 且任务未完成 - `2`: 已截止, 任务的截止时间已到达, 且任务未完成 - `3`: 已完成, 任务已完成 + Units []*QueryPerformanceReviewDataRespDataStageRecordUnit `json:"units,omitempty"` // 评估记录中的评估内容明细 + InvitedReviewRecordInfo *QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfo `json:"invited_review_record_info,omitempty"` // 360 ° 评估记录的信息。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 则不返回评估人的部分信息 + DirectProjectLeaderRecordInfo *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfo `json:"direct_project_leader_record_info,omitempty"` // 合作项目中上级的评估记录信息, 仅在「项目直属上级环节」有值 + RecordID string `json:"record_id,omitempty"` // 评估记录 ID +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfo ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfo struct { + ReviewerID *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewerID `json:"reviewer_id,omitempty"` // 评估人 ID + CooperationProjects []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProject `json:"cooperation_projects,omitempty"` // 评估人作为直属项目上级所在的项目 + ReviewDependProjects []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProject `json:"review_depend_projects,omitempty"` // 评估依据的项目 + ParticipatedProjects []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProject `json:"participated_projects,omitempty"` // 共同参与的项目 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProject ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProject struct { + ID string `json:"id,omitempty"` // 合作项目 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectName `json:"name,omitempty"` // 合作项目的名称 + Roles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRole `json:"roles,omitempty"` // 合作项目角色 + UserRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRole `json:"user_roles,omitempty"` // 评估人项目角色 + UnderlingRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRole `json:"underling_roles,omitempty"` // 被评估人项目角色 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRole struct { + ReviewerRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRole `json:"reviewer_role,omitempty"` // 评估人在合作项目中的角色。在未配置合作项目角色情况下, 该字段为空值。 + RevieweeRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRole `json:"reviewee_role,omitempty"` // 被评估人在合作项目中的项目角色。在未配置合作项目角色情况下, 该字段为空值。 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRole struct { + RoleID string `json:"role_id,omitempty"` // 合作项目角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleRevieweeRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRole struct { + RoleID string `json:"role_id,omitempty"` // 合作项目角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectRoleReviewerRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUnderlingRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoCooperationProjectUserRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProject ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProject struct { + ID string `json:"id,omitempty"` // 合作项目 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectName `json:"name,omitempty"` // 合作项目的名称 + Roles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRole `json:"roles,omitempty"` // 项目角色 + UserRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRole `json:"user_roles,omitempty"` // 评估人项目角色 + UnderlingRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRole `json:"underling_roles,omitempty"` // 被评估人项目角色 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRole struct { + ReviewerRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRole `json:"reviewer_role,omitempty"` // 评估人的项目角色。在未配置项目角色情况下, 该字段为空值。 + RevieweeRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRole `json:"reviewee_role,omitempty"` // 被评估人的项目角色。在未配置项目角色情况下, 该字段为空值。 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleRevieweeRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectRoleReviewerRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUnderlingRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoParticipatedProjectUserRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProject ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProject struct { + ID string `json:"id,omitempty"` // 合作项目 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectName `json:"name,omitempty"` // 合作项目的名称 + Roles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRole `json:"roles,omitempty"` // 项目角色 + UserRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRole `json:"user_roles,omitempty"` // 评估人项目角色 + UnderlingRoles []*QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRole `json:"underling_roles,omitempty"` // 被评估人项目角色 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRole struct { + ReviewerRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRole `json:"reviewer_role,omitempty"` // 评估人的项目角色。在未配置项目角色情况下, 该字段为空值。 + RevieweeRole *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRole `json:"reviewee_role,omitempty"` // 被评估人的项目角色。在未配置项目角色情况下, 该字段为空值。 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleRevieweeRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectRoleReviewerRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUnderlingRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRole ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRole struct { + RoleID string `json:"role_id,omitempty"` // 角色 ID + Name *QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRoleName `json:"name,omitempty"` // 名称 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRoleName ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewDependProjectUserRoleName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewerID ... +type QueryPerformanceReviewDataRespDataStageRecordDirectProjectLeaderRecordInfoReviewerID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, ID 类型与user_id_type 的取值一致 +} + +// QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfo ... +type QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfo struct { + ReviewerID *QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfoReviewerID `json:"reviewer_id,omitempty"` // 评估人 ID。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 则不返回该值 + IsRejected bool `json:"is_rejected,omitempty"` // 是否拒绝 + RejectedReason string `json:"rejected_reason,omitempty"` // 360° 评估人拒绝评估的理由, 当 360° 评估环节被评估人拒绝时有值 + DistributeType int64 `json:"distribute_type,omitempty"` // 360° 评估人的评估尺度标签可选值有: 严格适中宽松 + AvgDiff string `json:"avg_diff,omitempty"` // 360° 评估人的评估尺度数值 + RelationshipWithReviewee string `json:"relationship_with_reviewee,omitempty"` // 360° 评估人的与被评估人关系。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 且配置隐藏描述信息则不返回该值可选值有: 直属下级隔级下级原直属上级隔级上级相同上级同事不同上级同事 + Invitedby string `json:"invitedby,omitempty"` // 360° 评估人的邀请人类型。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 且配置隐藏描述信息则不返回该值可选值有: 系统默认被评估人本人上级HRBP或其他人自愿评估 +} + +// QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfoReviewerID ... +type QueryPerformanceReviewDataRespDataStageRecordInvitedReviewRecordInfoReviewerID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, ID 类型与user_id_type 的取值一致 +} + +// QueryPerformanceReviewDataRespDataStageRecordUnit ... +type QueryPerformanceReviewDataRespDataStageRecordUnit struct { + UnitID string `json:"unit_id,omitempty"` // 评估内容 ID + IsUnknown bool `json:"is_unknown,omitempty"` // 是否为不了解。当评估人选不了解时, 会返回为 true, 其他时候不返回。 + Data []*QueryPerformanceReviewDataRespDataStageRecordUnitData `json:"data,omitempty"` // 评估题列表, 指评估内容中的每个题, 可能是评估项或者填写项 +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitData struct { + FieldID string `json:"field_id,omitempty"` // 评估题 ID, 指评估内容中的每个评估项或填写项 + ReviewerUserID *QueryPerformanceReviewDataRespDataStageRecordUnitDataReviewerUserID `json:"reviewer_user_id,omitempty"` // 评估人 ID。如果开启了 360 匿名评估, 并且是对全部查看者匿名, 则不返回该值 + SubmitTime string `json:"submit_time,omitempty"` // 该评估题的最后提交时间, 毫秒级时间戳 + IndicatorID string `json:"indicator_id,omitempty"` // 评估项 ID(不包含子评估项), option_id 或 score 有值的时候有值, 详细信息请参考[获取评估项列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/indicator/query) + OptionID string `json:"option_id,omitempty"` // 评估等级 ID + Score string `json:"score,omitempty"` // 评分 + Text string `json:"text,omitempty"` // 填写项填写的文本 + TagBasedQuestionID string `json:"tag_based_question_id,omitempty"` // 标签填写题 ID, 详细信息请参考[获取标签填写题配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/question/query) + TagTextItemData []*QueryPerformanceReviewDataRespDataStageRecordUnitDataTagTextItemData `json:"tag_text_item_data,omitempty"` // 标签填写项的内容 + PerfCoefficientValue string `json:"perf_coefficient_value,omitempty"` // 绩效系数值 + SubIndicatorData []*QueryPerformanceReviewDataRespDataStageRecordUnitDataSubIndicatorData `json:"sub_indicator_data,omitempty"` // 子评估项内容 + ObjectiveData []*QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveData `json:"objective_data,omitempty"` // 评估的目标数据, 当评估内容是对目标(O)或关键举措(KR)评估时有值 + MetricData []*QueryPerformanceReviewDataRespDataStageRecordUnitDataMetricData `json:"metric_data,omitempty"` // 评估的指标, 当评估内容是对指标评估时有值 + LeaderReviewDataSource string `json:"leader_review_data_source,omitempty"` // 终评环节填写内容的来源(仅终评环节的数据有值)可选值有: 产生终评结果的评估型环节校准环节结果复议环节 + MultiTexts []string `json:"multi_texts,omitempty"` // 工作/总结类型的文本内容 + Richtext string `json:"richtext,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) + MultiRichtexts []string `json:"multi_richtexts,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) + IsPrincipalReviewItem bool `json:"is_principal_review_item,omitempty"` // 该评估题是否是首要评估项 +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataMetricData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataMetricData struct { + ID string `json:"id,omitempty"` // 指标 ID + Score string `json:"score,omitempty"` // 指标评分 +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveData struct { + ObjectiveID string `json:"objective_id,omitempty"` // 目标 ID + Score string `json:"score,omitempty"` // 目标的评分 + Text string `json:"text,omitempty"` // 评估人在该填写项填写的文本 + KeyresultData []*QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveDataKeyresultData `json:"keyresult_data,omitempty"` // 评估的关键举措, 当评估内容是对关键举措(KR)评估时有值 + Richtext string `json:"richtext,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveDataKeyresultData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataObjectiveDataKeyresultData struct { + KeyresultID string `json:"keyresult_id,omitempty"` // 关键举措 ID + Score string `json:"score,omitempty"` // 关键举措的评分 + Text string `json:"text,omitempty"` // 该关键举措的填写项内容 + Richtext string `json:"richtext,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataReviewerUserID ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataReviewerUserID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, ID 类型与user_id_type 的取值一致 +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataSubIndicatorData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataSubIndicatorData struct { + FieldID string `json:"field_id,omitempty"` // 子评估题 ID + IndicatorID string `json:"indicator_id,omitempty"` // 子评估项 ID + OptionID string `json:"option_id,omitempty"` // 子评估项的评估等级 ID + Score string `json:"score,omitempty"` // 子评估项的评分 + Text string `json:"text,omitempty"` // 子评估项填写的文本 + Richtext string `json:"richtext,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) +} + +// QueryPerformanceReviewDataRespDataStageRecordUnitDataTagTextItemData ... +type QueryPerformanceReviewDataRespDataStageRecordUnitDataTagTextItemData struct { + TagTextID string `json:"tag_text_id,omitempty"` // 标签 ID + TagText string `json:"tag_text,omitempty"` // 评估人在该标签下填写的文本 + TagRichtext string `json:"tag_richtext,omitempty"` // 富文本格式的填写内容, 解析方式见 [editor](https://open.larkoffice.com/document/client-docs/gadget/component-component/basic-component/form/editor#51af2f4f) +} + +// QueryPerformanceReviewDataRespDataUserID ... +type QueryPerformanceReviewDataRespDataUserID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, ID 类型与user_id_type 的取值一致 +} + +// queryPerformanceReviewDataResp ... +type queryPerformanceReviewDataResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceReviewDataResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_review_template_query.go b/api_performance_review_template_query.go new file mode 100644 index 00000000..e7244c00 --- /dev/null +++ b/api_performance_review_template_query.go @@ -0,0 +1,159 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceReviewTemplate 获取绩效模板信息, 包括模版名称、执行角色、填写项类型等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/review_template/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/review_template/query +func (r *PerformanceService) QueryPerformanceReviewTemplate(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceReviewTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceReviewTemplate mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceReviewTemplate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceReviewTemplate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/review_templates/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceReviewTemplateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceReviewTemplate mock PerformanceQueryPerformanceReviewTemplate method +func (r *Mock) MockPerformanceQueryPerformanceReviewTemplate(f func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error)) { + r.mockPerformanceQueryPerformanceReviewTemplate = f +} + +// UnMockPerformanceQueryPerformanceReviewTemplate un-mock PerformanceQueryPerformanceReviewTemplate method +func (r *Mock) UnMockPerformanceQueryPerformanceReviewTemplate() { + r.mockPerformanceQueryPerformanceReviewTemplate = nil +} + +// QueryPerformanceReviewTemplateReq ... +type QueryPerformanceReviewTemplateReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `0` ~ `50` + ReviewTemplateIDs []string `json:"review_template_ids,omitempty"` // 绩效模板 ID 列表, 获取指定绩效模板的配置数据。如果不传则返回所有示例值: ["7343513161666707459"] 长度范围: `0` ~ `50` +} + +// QueryPerformanceReviewTemplateResp ... +type QueryPerformanceReviewTemplateResp struct { + ReviewTemplates []*QueryPerformanceReviewTemplateRespReviewTemplate `json:"review_templates,omitempty"` // 绩效模板信息 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceReviewTemplateRespReviewTemplate ... +type QueryPerformanceReviewTemplateRespReviewTemplate struct { + Templates []*QueryPerformanceReviewTemplateRespReviewTemplateTemplate `json:"templates,omitempty"` // 环节模板列表 + Units []*QueryPerformanceReviewTemplateRespReviewTemplateUnit `json:"units,omitempty"` // 评估内容列表 + ReviewTemplateID string `json:"review_template_id,omitempty"` // 绩效模板 ID + Name *QueryPerformanceReviewTemplateRespReviewTemplateName `json:"name,omitempty"` // 绩效模板名称 + Description *QueryPerformanceReviewTemplateRespReviewTemplateDescription `json:"description,omitempty"` // 绩效模板描述 + Status string `json:"status,omitempty"` // 状态枚举值: `to_be_configured`: 待完成配置- `to_be_enabled`: 待启用- `enabled`: 已启用- `disabled`: 已停用- `deleted`: 已删除但曾经被项目引用过 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateDescription ... +type QueryPerformanceReviewTemplateRespReviewTemplateDescription struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateName ... +type QueryPerformanceReviewTemplateRespReviewTemplateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateTemplate ... +type QueryPerformanceReviewTemplateRespReviewTemplateTemplate struct { + TemplateID string `json:"template_id,omitempty"` // 环节模板 ID + Name *QueryPerformanceReviewTemplateRespReviewTemplateTemplateName `json:"name,omitempty"` // 环节模板对应的环节名称 + StageType string `json:"stage_type,omitempty"` // 环节类型枚举值: `summarize_key_outputs`: 工作总结环节- `review`: 评估型环节- `communication_and_open_result`: 结果沟通环节- `view_result`: 绩效结果查看环节- `calibration`: 校准环节- `reconsideration`: 结果复议环节 + ReviewStageRole string `json:"review_stage_role,omitempty"` // 评估型环节的执行人角色枚举值: `reviewee`: 被评估人- `invited_reviewer`: 360°评估人- `solid_line_leader`: 实线上级- `dotted_line_leader`: 虚线上级- `secondary_solid_line_leader`: 第二实线上级- `direct_project_leader`: 项目直属上级- `custom_review_role`:自定义评估角色 + ReviewStageDataWriteMode string `json:"review_stage_data_write_mode,omitempty"` // 评估型环节评估模式 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateTemplateName ... +type QueryPerformanceReviewTemplateRespReviewTemplateTemplateName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnit ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnit struct { + UnitID string `json:"unit_id,omitempty"` // 评估内容 ID + Name *QueryPerformanceReviewTemplateRespReviewTemplateUnitName `json:"name,omitempty"` // 评估内容名称 + Fields []*QueryPerformanceReviewTemplateRespReviewTemplateUnitField `json:"fields,omitempty"` // 评估题列表, 指评估内容中的每个题, 可能是评估项或者填写项 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnitField ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnitField struct { + FieldID string `json:"field_id,omitempty"` // 评估题 ID + Name *QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldName `json:"name,omitempty"` // 如果是填写项, 为填写项名称, 字段可能为空值;如果是评估项, 为评估项名称, 字段不为空值;如果是标签填写题, 为标签填写题名称, 字段不为空值 + IndicatorID string `json:"indicator_id,omitempty"` // 评估项 ID, 详细信息请参考[获取评估项配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/indicator/query) + TagBasedQuestionID string `json:"tag_based_question_id,omitempty"` // 标签填写题 ID, 详细信息请参考[获取标签填写题配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/question/query) + ObjectiveTextQustionTitle *QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldObjectiveTextQustionTitle `json:"objective_text_qustion_title,omitempty"` // O 的填写项标题 + KeyresultTextQustionTitle *QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldKeyresultTextQustionTitle `json:"keyresult_text_qustion_title,omitempty"` // KR 的填写项标题 + ParentFieldID string `json:"parent_field_id,omitempty"` // 关联的父级评估项 ID + KpiTemplateID string `json:"kpi_template_id,omitempty"` // 指标模板ID +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldKeyresultTextQustionTitle ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldKeyresultTextQustionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldName ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldObjectiveTextQustionTitle ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnitFieldObjectiveTextQustionTitle struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceReviewTemplateRespReviewTemplateUnitName ... +type QueryPerformanceReviewTemplateRespReviewTemplateUnitName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// queryPerformanceReviewTemplateResp ... +type queryPerformanceReviewTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceReviewTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_reviewee_query.go b/api_performance_reviewee_query.go new file mode 100644 index 00000000..8c88669c --- /dev/null +++ b/api_performance_reviewee_query.go @@ -0,0 +1,96 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceReviewee 获取绩效周期中被圈定到项目中的被评估人信息, 包括未启动的项目。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/reviewee/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/reviewee/query +func (r *PerformanceService) QueryPerformanceReviewee(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceReviewee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceReviewee mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceReviewee(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceReviewee", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/reviewees/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceRevieweeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceReviewee mock PerformanceQueryPerformanceReviewee method +func (r *Mock) MockPerformanceQueryPerformanceReviewee(f func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error)) { + r.mockPerformanceQueryPerformanceReviewee = f +} + +// UnMockPerformanceQueryPerformanceReviewee un-mock PerformanceQueryPerformanceReviewee method +func (r *Mock) UnMockPerformanceQueryPerformanceReviewee() { + r.mockPerformanceQueryPerformanceReviewee = nil +} + +// QueryPerformanceRevieweeReq ... +type QueryPerformanceRevieweeReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: eVQrYzJBNDNONlk4VFZBZVlSdzlKdFJ4bVVHVExENDNKVHoxaVdiVnViQT0= + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 30默认值: `20` 取值范围: `1` ~ `50` + SemesterID string `json:"semester_id,omitempty"` // 周期 ID, 可通过[获取周期列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)接口获取示例值: "6992035450862224940" + UserIDs []string `json:"user_ids,omitempty"` // 用户 ID, 与入参 `user_id_type` 类型一致, 查询指定的被评估人信息示例值: ["ou_3245842393d09e9428ad4655da6e30b3"] 长度范围: `0` ~ `50` + ActivityIDs []string `json:"activity_ids,omitempty"` // 项目 ID 列表, 可通过[获取项目列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/activity/query)接口获取, 查询指定的项目下的被评估人信息示例值: ["7266780609384392723"] +} + +// QueryPerformanceRevieweeResp ... +type QueryPerformanceRevieweeResp struct { + SemesterID string `json:"semester_id,omitempty"` // 周期ID + Reviewees []*QueryPerformanceRevieweeRespReviewee `json:"reviewees,omitempty"` // 被评估人列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// QueryPerformanceRevieweeRespReviewee ... +type QueryPerformanceRevieweeRespReviewee struct { + RevieweeUserID *QueryPerformanceRevieweeRespRevieweeRevieweeUserID `json:"reviewee_user_id,omitempty"` // 被评估人 ID + ActivityIDs []string `json:"activity_ids,omitempty"` // 被评估人参与的项目, 详细信息请参考[获取项目配置](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/activity/query) + ReviewprofileURL string `json:"reviewprofile_url,omitempty"` // 被评估人在该周期的个人绩效详情页链接。如果参与的项目未启动则为空 +} + +// QueryPerformanceRevieweeRespRevieweeRevieweeUserID ... +type QueryPerformanceRevieweeRespRevieweeRevieweeUserID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, ID 类型与user_id_type 的取值一致 +} + +// queryPerformanceRevieweeResp ... +type queryPerformanceRevieweeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceRevieweeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_user_group_user_rel_write.go b/api_performance_user_group_user_rel_write.go new file mode 100644 index 00000000..89ee4b75 --- /dev/null +++ b/api_performance_user_group_user_rel_write.go @@ -0,0 +1,93 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreatePerformanceUserGroupUserRelWrite 更新指定人员组成员。 +// +// 该接口更新模式为覆盖式更新, 更新操作会清除人员组以前的成员。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/user_group_user_rel/write +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/user_group_user_rel/write +func (r *PerformanceService) CreatePerformanceUserGroupUserRelWrite(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) { + if r.cli.mock.mockPerformanceCreatePerformanceUserGroupUserRelWrite != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#CreatePerformanceUserGroupUserRelWrite mock enable") + return r.cli.mock.mockPerformanceCreatePerformanceUserGroupUserRelWrite(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "CreatePerformanceUserGroupUserRelWrite", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/user_group_user_rels/write", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createPerformanceUserGroupUserRelWriteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceCreatePerformanceUserGroupUserRelWrite mock PerformanceCreatePerformanceUserGroupUserRelWrite method +func (r *Mock) MockPerformanceCreatePerformanceUserGroupUserRelWrite(f func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error)) { + r.mockPerformanceCreatePerformanceUserGroupUserRelWrite = f +} + +// UnMockPerformanceCreatePerformanceUserGroupUserRelWrite un-mock PerformanceCreatePerformanceUserGroupUserRelWrite method +func (r *Mock) UnMockPerformanceCreatePerformanceUserGroupUserRelWrite() { + r.mockPerformanceCreatePerformanceUserGroupUserRelWrite = nil +} + +// CreatePerformanceUserGroupUserRelWriteReq ... +type CreatePerformanceUserGroupUserRelWriteReq struct { + ClientToken string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 123456 长度范围: `0` ~ `64` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id` 长度范围: `0` ~ `999999999` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID + GroupID *string `json:"group_id,omitempty"` // 人员组 ID, 可以从人员组管理页面获取必填: 是 示例值: "ABCDEFG" 长度范围: `0` ~ `128` 字符 + ScopeVisibleSetting *int64 `json:"scope_visible_setting,omitempty"` // 人员组可见性配置必填: 是 示例值: 1可选值有: 无限制后台管理员不可见默认值: `1` 取值范围: `0` ~ `10` + UserIDs []string `json:"user_ids,omitempty"` // 人员 ID 列表, ID 类型与查询参数 user_id_type 取值一致必填: 是 示例值: ["ou_fab1210511b6d2f990ba3b4e2e0dbeef"] 长度范围: `0` ~ `10000` +} + +// CreatePerformanceUserGroupUserRelWriteResp ... +type CreatePerformanceUserGroupUserRelWriteResp struct { + Data *CreatePerformanceUserGroupUserRelWriteRespData `json:"data,omitempty"` // 更新结果 +} + +// CreatePerformanceUserGroupUserRelWriteRespData ... +type CreatePerformanceUserGroupUserRelWriteRespData struct { + SuccessUserIDs []string `json:"success_user_ids,omitempty"` // 更新成功的员工 ID 列表, 与入参 `user_id_type` 类型一致 + FailUserDatas []*CreatePerformanceUserGroupUserRelWriteRespDataFailUserData `json:"fail_user_datas,omitempty"` // 更新失败的员工信息 +} + +// CreatePerformanceUserGroupUserRelWriteRespDataFailUserData ... +type CreatePerformanceUserGroupUserRelWriteRespDataFailUserData struct { + UserID string `json:"user_id,omitempty"` // 员工 ID, 与入参 `user_id_type` 类型一致 + FailCode int64 `json:"fail_code,omitempty"` // 失败原因枚举可选值有: 员工未找到 +} + +// createPerformanceUserGroupUserRelWriteResp ... +type createPerformanceUserGroupUserRelWriteResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreatePerformanceUserGroupUserRelWriteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_performance_user_info_query.go b/api_performance_user_info_query.go new file mode 100644 index 00000000..e6837237 --- /dev/null +++ b/api_performance_user_info_query.go @@ -0,0 +1,136 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryPerformanceUserInfo 获取指定绩效周期下, 被评估人在评估时的部门、序列、职级等人员信息。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v2/user_info/query +// new doc: https://open.feishu.cn/document/performance-v1/review_config/semester_activity/reviewee/query-2 +func (r *PerformanceService) QueryPerformanceUserInfo(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) { + if r.cli.mock.mockPerformanceQueryPerformanceUserInfo != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Performance#QueryPerformanceUserInfo mock enable") + return r.cli.mock.mockPerformanceQueryPerformanceUserInfo(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Performance", + API: "QueryPerformanceUserInfo", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/performance/v2/user_info/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryPerformanceUserInfoResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockPerformanceQueryPerformanceUserInfo mock PerformanceQueryPerformanceUserInfo method +func (r *Mock) MockPerformanceQueryPerformanceUserInfo(f func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error)) { + r.mockPerformanceQueryPerformanceUserInfo = f +} + +// UnMockPerformanceQueryPerformanceUserInfo un-mock PerformanceQueryPerformanceUserInfo method +func (r *Mock) UnMockPerformanceQueryPerformanceUserInfo() { + r.mockPerformanceQueryPerformanceUserInfo = nil +} + +// QueryPerformanceUserInfoReq ... +type QueryPerformanceUserInfoReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 指定查询结果中的部门 ID 类型。关于部门 ID 的详细介绍, 可参见[部门 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0) 说明。示例值: open_department_id可选值有: `department_id`: 支持用户自定义配置的部门 ID。自定义配置时可复用已删除的 department_id, 因此在未删除的部门范围内 department_id 具有唯一性。- `open_department_id`: 由系统自动生成的部门 ID, ID 前缀固定为 od-, 在租户内全局唯一。默认值: open_department_id + SemesterID string `json:"semester_id,omitempty"` // 评估周期 ID 列表, semester_id 可通过[【获取周期】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list)获得示例值: "6992035450862224940" + UserIDs []string `json:"user_ids,omitempty"` // 人员 ID 列表, ID 类型与user_id_type 的取值一致示例值: ["ou_3245842393d09e9428ad4655da6e30b3"] 长度范围: `0` ~ `10` +} + +// QueryPerformanceUserInfoResp ... +type QueryPerformanceUserInfoResp struct { + SemesterID string `json:"semester_id,omitempty"` // 评估周期 ID + UserInfos []*QueryPerformanceUserInfoRespUserInfo `json:"user_infos,omitempty"` // 人员的快照信息列表 +} + +// QueryPerformanceUserInfoRespUserInfo ... +type QueryPerformanceUserInfoRespUserInfo struct { + UserID *QueryPerformanceUserInfoRespUserInfoUserID `json:"user_id,omitempty"` // 人员的用户 ID + DirectLeaderUserID *QueryPerformanceUserInfoRespUserInfoDirectLeaderUserID `json:"direct_leader_user_id,omitempty"` // 人员的直属上级的用户 ID字段权限要求: 查看员工在绩效周期的直属上级 + Department *QueryPerformanceUserInfoRespUserInfoDepartment `json:"department,omitempty"` // 人员的部门字段权限要求: 查看员工在绩效周期的部门信息 + JobFamily *QueryPerformanceUserInfoRespUserInfoJobFamily `json:"job_family,omitempty"` // 人员的序列字段权限要求: 查看员工在绩效周期的序列信息 + JobLevel *QueryPerformanceUserInfoRespUserInfoJobLevel `json:"job_level,omitempty"` // 人员的职级字段权限要求: 查看员工在绩效周期的职级信息 +} + +// QueryPerformanceUserInfoRespUserInfoDepartment ... +type QueryPerformanceUserInfoRespUserInfoDepartment struct { + ID string `json:"id,omitempty"` // 部门 ID, 与入参中的department_id_type类型一致, 详情请查看: [获取单个部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/get) + Name *QueryPerformanceUserInfoRespUserInfoDepartmentName `json:"name,omitempty"` // 部门名称 +} + +// QueryPerformanceUserInfoRespUserInfoDepartmentName ... +type QueryPerformanceUserInfoRespUserInfoDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceUserInfoRespUserInfoDirectLeaderUserID ... +type QueryPerformanceUserInfoRespUserInfoDirectLeaderUserID struct { + OpenID string `json:"open_id,omitempty"` // 人员的直属上级的 open_id + UserID string `json:"user_id,omitempty"` // 人员的直属上级的 user_id, 取值与user_id_type一致 +} + +// QueryPerformanceUserInfoRespUserInfoJobFamily ... +type QueryPerformanceUserInfoRespUserInfoJobFamily struct { + ID string `json:"id,omitempty"` // 序列 ID + Name *QueryPerformanceUserInfoRespUserInfoJobFamilyName `json:"name,omitempty"` // 序列名称 +} + +// QueryPerformanceUserInfoRespUserInfoJobFamilyName ... +type QueryPerformanceUserInfoRespUserInfoJobFamilyName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceUserInfoRespUserInfoJobLevel ... +type QueryPerformanceUserInfoRespUserInfoJobLevel struct { + ID string `json:"id,omitempty"` // 职级 ID + Name *QueryPerformanceUserInfoRespUserInfoJobLevelName `json:"name,omitempty"` // 职级名称 +} + +// QueryPerformanceUserInfoRespUserInfoJobLevelName ... +type QueryPerformanceUserInfoRespUserInfoJobLevelName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 +} + +// QueryPerformanceUserInfoRespUserInfoUserID ... +type QueryPerformanceUserInfoRespUserInfoUserID struct { + OpenID string `json:"open_id,omitempty"` // 用户的 open_id + UserID string `json:"user_id,omitempty"` // 用户的 user_id, 取值与user_id_type一致 +} + +// queryPerformanceUserInfoResp ... +type queryPerformanceUserInfoResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryPerformanceUserInfoResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_personal_settings_system_status_delete.go b/api_personal_settings_system_status_delete.go index d10e178b..0cdf4662 100644 --- a/api_personal_settings_system_status_delete.go +++ b/api_personal_settings_system_status_delete.go @@ -66,7 +66,8 @@ type DeletePersonalSettingsSystemStatusReq struct { } // DeletePersonalSettingsSystemStatusResp ... -type DeletePersonalSettingsSystemStatusResp struct{} +type DeletePersonalSettingsSystemStatusResp struct { +} // deletePersonalSettingsSystemStatusResp ... type deletePersonalSettingsSystemStatusResp struct { diff --git a/api_report_rule_qquery.go b/api_report_rule_qquery.go index 36ab26bc..a256bdbe 100644 --- a/api_report_rule_qquery.go +++ b/api_report_rule_qquery.go @@ -23,7 +23,7 @@ import ( // QueryReportRule 查询规则。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/rule/query +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/rule/query // new doc: https://open.feishu.cn/document/server-docs/report-v1/rule/query func (r *ReportService) QueryReportRule(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) { if r.cli.mock.mockReportQueryReportRule != nil { @@ -58,9 +58,9 @@ func (r *Mock) UnMockReportQueryReportRule() { // QueryReportRuleReq ... type QueryReportRuleReq struct { - RuleName string `query:"rule_name" json:"-"` // 规则名称, 示例值: 工作月报 - IncludeDeleted *int64 `query:"include_deleted" json:"-"` // 是否包括已删除, 默认未删除, 示例值: 0, 可选值有: 0: 不包括已删除, 1: 包括已删除, 取值范围: `0` ~ `1` - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + RuleName string `query:"rule_name" json:"-"` // 规则名称示例值: 工作月报 + IncludeDeleted *int64 `query:"include_deleted" json:"-"` // 是否包括已删除, 默认未删除示例值: 0可选值有: 不包括已删除包括已删除 取值范围: `0` ~ `1` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // QueryReportRuleResp ... @@ -79,7 +79,7 @@ type QueryReportRuleRespRule struct { OwnerUserID string `json:"owner_user_id,omitempty"` // 规则所有者ID OwnerUserName string `json:"owner_user_name,omitempty"` // 规则所有者名称 FormSchema []*QueryReportRuleRespRuleFormSchema `json:"form_schema,omitempty"` // 表单定义 - IsDeleted int64 `json:"is_deleted,omitempty"` // 规则是否已删除, 可选值有: 0: 未删除, 1: 已删除 + IsDeleted int64 `json:"is_deleted,omitempty"` // 规则是否已删除可选值有: 未删除已删除 NeedReportUserIDs []string `json:"need_report_user_ids,omitempty"` // 需要汇报的用户ID列表 NeedReportDepartmentIDs []string `json:"need_report_department_ids,omitempty"` // 需要汇报的部门ID列表(如果id为0, 表示全员) NeedReportChatIDs []string `json:"need_report_chat_ids,omitempty"` // 需要汇报的群ID列表 @@ -96,7 +96,7 @@ type QueryReportRuleRespRule struct { // QueryReportRuleRespRuleFormSchema ... type QueryReportRuleRespRuleFormSchema struct { Name string `json:"name,omitempty"` // 字段名称 - Type string `json:"type,omitempty"` // 字段类型, 可选值有: text: 文本, number: 数字, dropdown: 单选, image: 图片, attachement: 附件, multiSelect: 多选, address: 地址, datetime: 时间 + Type string `json:"type,omitempty"` // 字段类型可选值有: 文本数字单选图片附件多选地址时间 } // queryReportRuleResp ... diff --git a/api_report_task_query.go b/api_report_task_query.go index 1c0ee0ce..3c208619 100644 --- a/api_report_task_query.go +++ b/api_report_task_query.go @@ -23,7 +23,11 @@ import ( // QueryReportTask 查询任务。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/task/query +// 注意: +// 1. 请求参数 page_token 为必填字段, 首次调用接口时必须传空值, 表示从头开始遍历。 +// 2. 当使用user access token访问时, 表示获取当前用户发起以及收到的汇报, 且结果不分页 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/task/query // new doc: https://open.feishu.cn/document/server-docs/report-v1/task/query func (r *ReportService) QueryReportTask(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) { if r.cli.mock.mockReportQueryReportTask != nil { @@ -39,6 +43,7 @@ func (r *ReportService) QueryReportTask(ctx context.Context, request *QueryRepor Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, + NeedUserAccessToken: true, } resp := new(queryReportTaskResp) @@ -58,13 +63,13 @@ func (r *Mock) UnMockReportQueryReportTask() { // QueryReportTaskReq ... type QueryReportTaskReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - CommitStartTime int64 `json:"commit_start_time,omitempty"` // 提交开始时间时间戳, 示例值: 1622427266 - CommitEndTime int64 `json:"commit_end_time,omitempty"` // 提交结束时间时间戳, 示例值: 1622427266 - RuleID *string `json:"rule_id,omitempty"` // 汇报规则ID, 示例值: "6894419345318182932" - UserID *string `json:"user_id,omitempty"` // 用户ID, 示例值: "ou_133f0b6d0f097cf7d7ba00b38fffb110" - PageToken string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: "6895699275733778451" - PageSize int64 `json:"page_size,omitempty"` // 单次分页返回的条数, 示例值: 10, 取值范围: `0` ~ `20` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + CommitStartTime int64 `json:"commit_start_time,omitempty"` // 提交开始时间时间戳示例值: 1622427266 + CommitEndTime int64 `json:"commit_end_time,omitempty"` // 提交结束时间时间戳示例值: 1622427266 + RuleID *string `json:"rule_id,omitempty"` // 汇报规则ID示例值: "6894419345318182932" + UserID *string `json:"user_id,omitempty"` // 用户ID示例值: "ou_133f0b6d0f097cf7d7ba00b38fffb110" + PageToken string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "6895699275733778451" + PageSize int64 `json:"page_size,omitempty"` // 单次分页返回的条数示例值: 10 取值范围: `0` ~ `20` } // QueryReportTaskResp ... @@ -83,13 +88,17 @@ type QueryReportTaskRespItem struct { DepartmentName string `json:"department_name,omitempty"` // 汇报用户部门名称 CommitTime int64 `json:"commit_time,omitempty"` // 提交时间时间戳 FormContents []*QueryReportTaskRespItemFormContent `json:"form_contents,omitempty"` // 汇报表单内容 + RuleID string `json:"rule_id,omitempty"` // 汇报规则ID + DepartmentIDs []string `json:"department_ids,omitempty"` // 汇报用户部门id + ToUserIDs []string `json:"to_user_ids,omitempty"` // 汇报给谁 + ToUserNames []string `json:"to_user_names,omitempty"` // 汇报给谁的名字 } // QueryReportTaskRespItemFormContent ... type QueryReportTaskRespItemFormContent struct { FieldID string `json:"field_id,omitempty"` // 表单字段ID FieldName string `json:"field_name,omitempty"` // 表单字段名称 - FieldValue string `json:"field_value,omitempty"` // 表单字段值 + FieldValue string `json:"field_value,omitempty"` // 表单字段值注意: 附件或图片该值为空, 只返回 ID 与名称 } // queryReportTaskResp ... diff --git a/api_report_view_remove.go b/api_report_view_remove.go index 58f39dea..8fac6873 100644 --- a/api_report_view_remove.go +++ b/api_report_view_remove.go @@ -23,7 +23,7 @@ import ( // RemoveReportView 移除规则看板 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/rule-view/remove +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/report/report-v1/rule-view/remove // new doc: https://open.feishu.cn/document/server-docs/report-v1/rule-view/remove func (r *ReportService) RemoveReportView(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) { if r.cli.mock.mockReportRemoveReportView != nil { @@ -58,13 +58,14 @@ func (r *Mock) UnMockReportRemoveReportView() { // RemoveReportViewReq ... type RemoveReportViewReq struct { - RuleID string `path:"rule_id" json:"-"` // 汇报规则ID, 示例值: "6894419345318182122", 最小长度: `1` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - UserIDs []string `json:"user_ids,omitempty"` // 列表为空删除规则下全用户视图, 列表不为空删除指定用户视图, 大小限制200, 示例值: ["ou_d6a5b5a55c77ca0b5b6c6ca0dd628c85"], 长度范围: `0` ~ `200` + RuleID string `path:"rule_id" json:"-"` // 汇报规则ID示例值: "6894419345318182122" 最小长度: `1` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + UserIDs []string `json:"user_ids,omitempty"` // 列表为空删除规则下全用户视图, 列表不为空删除指定用户视图, 大小限制200。示例值: ["ou_d6a5b5a55c77ca0b5b6c6ca0dd628c85"] 长度范围: `0` ~ `200` } // RemoveReportViewResp ... -type RemoveReportViewResp struct{} +type RemoveReportViewResp struct { +} // removeReportViewResp ... type removeReportViewResp struct { diff --git a/api_search_data_source_delete.go b/api_search_data_source_delete.go index f59ab1b2..f599aab6 100644 --- a/api_search_data_source_delete.go +++ b/api_search_data_source_delete.go @@ -62,7 +62,8 @@ type DeleteSearchDataSourceReq struct { } // DeleteSearchDataSourceResp ... -type DeleteSearchDataSourceResp struct{} +type DeleteSearchDataSourceResp struct { +} // deleteSearchDataSourceResp ... type deleteSearchDataSourceResp struct { diff --git a/api_search_data_source_item_create.go b/api_search_data_source_item_create.go index 8744f653..d507b7e0 100644 --- a/api_search_data_source_item_create.go +++ b/api_search_data_source_item_create.go @@ -89,7 +89,8 @@ type CreateSearchDataSourceItemReqMetadata struct { } // CreateSearchDataSourceItemResp ... -type CreateSearchDataSourceItemResp struct{} +type CreateSearchDataSourceItemResp struct { +} // createSearchDataSourceItemResp ... type createSearchDataSourceItemResp struct { diff --git a/api_search_data_source_item_delete.go b/api_search_data_source_item_delete.go index e61277d5..440aa4f9 100644 --- a/api_search_data_source_item_delete.go +++ b/api_search_data_source_item_delete.go @@ -63,7 +63,8 @@ type DeleteSearchDataSourceItemReq struct { } // DeleteSearchDataSourceItemResp ... -type DeleteSearchDataSourceItemResp struct{} +type DeleteSearchDataSourceItemResp struct { +} // deleteSearchDataSourceItemResp ... type deleteSearchDataSourceItemResp struct { diff --git a/api_search_doc_wiki_search.go b/api_search_doc_wiki_search.go new file mode 100644 index 00000000..0bd17ea6 --- /dev/null +++ b/api_search_doc_wiki_search.go @@ -0,0 +1,150 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SearchSearchDocWiki 该接口用于根据搜索关键词(query)对当前用户可见的云文档进行搜索 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/search-v2/doc_wiki/search +func (r *SearchService) SearchSearchDocWiki(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) { + if r.cli.mock.mockSearchSearchSearchDocWiki != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Search#SearchSearchDocWiki mock enable") + return r.cli.mock.mockSearchSearchSearchDocWiki(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Search", + API: "SearchSearchDocWiki", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/search/v2/doc_wiki/search", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(searchSearchDocWikiResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSearchSearchSearchDocWiki mock SearchSearchSearchDocWiki method +func (r *Mock) MockSearchSearchSearchDocWiki(f func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error)) { + r.mockSearchSearchSearchDocWiki = f +} + +// UnMockSearchSearchSearchDocWiki un-mock SearchSearchSearchDocWiki method +func (r *Mock) UnMockSearchSearchSearchDocWiki() { + r.mockSearchSearchSearchDocWiki = nil +} + +// SearchSearchDocWikiReq ... +type SearchSearchDocWikiReq struct { + Query string `json:"query,omitempty"` // 搜索关键词(query至少搭配一种doc/wiki筛选器)示例值: "飞书文档使用指南" 长度范围: `0` ~ `50` 字符 + DocFilter *SearchSearchDocWikiReqDocFilter `json:"doc_filter,omitempty"` // 文档过滤参数示例值: {"folder_tokens": ["fld_123456"]} + WikiFilter *SearchSearchDocWikiReqWikiFilter `json:"wiki_filter,omitempty"` // Wiki过滤参数示例值: {"creator_ids": ["ou_789012"], "space_ids": ["space_123456"]} + PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "token_1234567890fedcba" + PageSize *int64 `json:"page_size,omitempty"` // 分页大小示例值: 15默认值: `0` 取值范围: `0` ~ `20` +} + +// SearchSearchDocWikiReqDocFilter ... +type SearchSearchDocWikiReqDocFilter struct { + CreatorIDs []string `json:"creator_ids,omitempty"` // 文档所有者OpenID示例值: ["ou_789012"] 长度范围: `0` ~ `20` + DocTypes []string `json:"doc_types,omitempty"` // 文档类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件wiki新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` + FolderTokens []string `json:"folder_tokens,omitempty"` // 搜索文件夹内的文档(文件夹token列表)注: 如果存在该字段则wiki筛选器失效示例值: ["fld_123456"] 长度范围: `0` ~ `50` + OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜文档标题示例值: false默认值: `false` + OpenTime *SearchSearchDocWikiReqDocFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) + SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) + CreateTime *SearchSearchDocWikiReqDocFilterCreateTime `json:"create_time,omitempty"` // 文档创建的时间范围(秒级时间戳, 包含start和end字段) +} + +// SearchSearchDocWikiReqDocFilterCreateTime ... +type SearchSearchDocWikiReqDocFilterCreateTime struct { + Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` + End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` +} + +// SearchSearchDocWikiReqDocFilterOpenTime ... +type SearchSearchDocWikiReqDocFilterOpenTime struct { + Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` + End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` +} + +// SearchSearchDocWikiReqWikiFilter ... +type SearchSearchDocWikiReqWikiFilter struct { + CreatorIDs []string `json:"creator_ids,omitempty"` // Wiki所有者OpenID示例值: ["ou_7890123456abcdef"] 长度范围: `0` ~ `20` + DocTypes []string `json:"doc_types,omitempty"` // Wiki类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件维基新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` + SpaceIDs []string `json:"space_ids,omitempty"` // 搜索某个Space下的Wiki(Space ID列表)示例值: ["space_1234567890fedcba"] 长度范围: `0` ~ `50` + OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜Wiki标题示例值: false默认值: `false` + OpenTime *SearchSearchDocWikiReqWikiFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) + SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) + CreateTime *SearchSearchDocWikiReqWikiFilterCreateTime `json:"create_time,omitempty"` // Wiki创建的时间范围(秒级时间戳, 包含start和end字段) +} + +// SearchSearchDocWikiReqWikiFilterCreateTime ... +type SearchSearchDocWikiReqWikiFilterCreateTime struct { + Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` + End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` +} + +// SearchSearchDocWikiReqWikiFilterOpenTime ... +type SearchSearchDocWikiReqWikiFilterOpenTime struct { + Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` + End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` +} + +// SearchSearchDocWikiResp ... +type SearchSearchDocWikiResp struct { + Total int64 `json:"total,omitempty"` // 匹配结果总数(辅助分页参考) + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + ResUnits []*SearchSearchDocWikiRespResUnit `json:"res_units,omitempty"` // 搜索结果列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// SearchSearchDocWikiRespResUnit ... +type SearchSearchDocWikiRespResUnit struct { + TitleHighlighted string `json:"title_highlighted,omitempty"` // 标题高亮 + SummaryHighlighted string `json:"summary_highlighted,omitempty"` // 摘要高亮 + EntityType string `json:"entity_type,omitempty"` // 结果类型可选值有: doc实体wiki类型 + ResultMeta *SearchSearchDocWikiRespResUnitResultMeta `json:"result_meta,omitempty"` // 文档搜索元信息 +} + +// SearchSearchDocWikiRespResUnitResultMeta ... +type SearchSearchDocWikiRespResUnitResultMeta struct { + DocTypes string `json:"doc_types,omitempty"` // 文档类型可选值有: 文档表格多维表格思维导图文件维基新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 + UpdateTime int64 `json:"update_time,omitempty"` // 更新时间戳(秒) + URL string `json:"url,omitempty"` // 文档链接 + OwnerName string `json:"owner_name,omitempty"` // 所有者名称 + OwnerID string `json:"owner_id,omitempty"` // 所有者OpenID + IsCrossTenant bool `json:"is_cross_tenant,omitempty"` // 是否跨租户 + CreateTime int64 `json:"create_time,omitempty"` // 文档创建时间戳(秒) + LastOpenTime int64 `json:"last_open_time,omitempty"` // 上次打开时间戳(秒) + EditUserID string `json:"edit_user_id,omitempty"` // 最后一次编辑用户OpenID + EditUserName string `json:"edit_user_name,omitempty"` // 最后一次编辑用户名称 + Token string `json:"token,omitempty"` // 文档token +} + +// searchSearchDocWikiResp ... +type searchSearchDocWikiResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchSearchDocWikiResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_search_schema_delete.go b/api_search_schema_delete.go index 0c57bbce..b21040e5 100644 --- a/api_search_schema_delete.go +++ b/api_search_schema_delete.go @@ -62,7 +62,8 @@ type DeleteSearchSchemaReq struct { } // DeleteSearchSchemaResp ... -type DeleteSearchSchemaResp struct{} +type DeleteSearchSchemaResp struct { +} // deleteSearchSchemaResp ... type deleteSearchSchemaResp struct { diff --git a/api_security_and_compliance_device_apply_record_update.go b/api_security_and_compliance_device_apply_record_update.go new file mode 100644 index 00000000..59ceadea --- /dev/null +++ b/api_security_and_compliance_device_apply_record_update.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateSecurityAndComplianceDeviceApplyRecord 使用该接口在设备管理中通过或驳回一条成员自主申报申请 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_apply_record/update +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_apply_record/update +func (r *SecurityAndComplianceService) UpdateSecurityAndComplianceDeviceApplyRecord(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#UpdateSecurityAndComplianceDeviceApplyRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "UpdateSecurityAndComplianceDeviceApplyRecord", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_apply_records/:device_apply_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateSecurityAndComplianceDeviceApplyRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord mock SecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord method +func (r *Mock) MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord(f func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error)) { + r.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord = f +} + +// UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord un-mock SecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord method +func (r *Mock) UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord() { + r.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord = nil +} + +// UpdateSecurityAndComplianceDeviceApplyRecordReq ... +type UpdateSecurityAndComplianceDeviceApplyRecordReq struct { + DeviceApplyRecordID string `path:"device_apply_record_id" json:"-"` // 设备申报记录ID示例值: "7088763625288187923" + IsApproved bool `json:"is_approved,omitempty"` // 是否审批通过示例值: true +} + +// UpdateSecurityAndComplianceDeviceApplyRecordResp ... +type UpdateSecurityAndComplianceDeviceApplyRecordResp struct { +} + +// updateSecurityAndComplianceDeviceApplyRecordResp ... +type updateSecurityAndComplianceDeviceApplyRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateSecurityAndComplianceDeviceApplyRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_create.go b/api_security_and_compliance_device_record_create.go new file mode 100644 index 00000000..4670d1a4 --- /dev/null +++ b/api_security_and_compliance_device_record_create.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateSecurityAndComplianceDeviceRecord 使用该接口在设备管理中新增一台设备。新增设备的类型为管理员导入 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/create +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_record/create +func (r *SecurityAndComplianceService) CreateSecurityAndComplianceDeviceRecord(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#CreateSecurityAndComplianceDeviceRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "CreateSecurityAndComplianceDeviceRecord", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createSecurityAndComplianceDeviceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord mock SecurityAndComplianceCreateSecurityAndComplianceDeviceRecord method +func (r *Mock) MockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord(f func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error)) { + r.mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord = f +} + +// UnMockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord un-mock SecurityAndComplianceCreateSecurityAndComplianceDeviceRecord method +func (r *Mock) UnMockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord() { + r.mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord = nil +} + +// CreateSecurityAndComplianceDeviceRecordReq ... +type CreateSecurityAndComplianceDeviceRecordReq struct { + DeviceSystem int64 `json:"device_system,omitempty"` // 操作系统示例值: 0可选值有: WindowsmacOSLinuxAndroidiOSOpenHarmony + SerialNumber *string `json:"serial_number,omitempty"` // 生产序列号示例值: "C02DTHRMML7H" + DiskSerialNumber *string `json:"disk_serial_number,omitempty"` // 硬盘序列号示例值: "CC344362-5990-5A68-8DDD-64A23C99FA0C" + UUID *string `json:"uuid,omitempty"` // 主板UUID示例值: "621CDFF0-13D0-5AB1-9ADC-5F560095F6ED" + MacAddress *string `json:"mac_address,omitempty"` // MAC地址示例值: "ac:de:48:00:11:21" + AndroidID *string `json:"android_id,omitempty"` // Android标识符示例值: "02a11ac4a83b918e" + Idfv *string `json:"idfv,omitempty"` // iOS供应商标识符示例值: "968F0E5C-C297-4122-ACB6-102494DEFD9A" + Aaid *string `json:"aaid,omitempty"` // Harmony供应商标识符示例值: "ff3c2237-cd76-4331-9d72-0a4470854567" + DeviceOwnership int64 `json:"device_ownership,omitempty"` // 设备归属示例值: 0可选值有: 未知设备个人设备企业设备 + DeviceStatus int64 `json:"device_status,omitempty"` // 可信状态示例值: 0可选值有: 未知状态信任设备非信任设备 +} + +// CreateSecurityAndComplianceDeviceRecordResp ... +type CreateSecurityAndComplianceDeviceRecordResp struct { + DeviceRecordID string `json:"device_record_id,omitempty"` // 设备认证编码 +} + +// createSecurityAndComplianceDeviceRecordResp ... +type createSecurityAndComplianceDeviceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateSecurityAndComplianceDeviceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_delete.go b/api_security_and_compliance_device_record_delete.go new file mode 100644 index 00000000..78512d88 --- /dev/null +++ b/api_security_and_compliance_device_record_delete.go @@ -0,0 +1,74 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteSecurityAndComplianceDeviceRecord 使用该接口在设备管理中删除一台设备 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/delete +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_record/delete +func (r *SecurityAndComplianceService) DeleteSecurityAndComplianceDeviceRecord(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#DeleteSecurityAndComplianceDeviceRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "DeleteSecurityAndComplianceDeviceRecord", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records/:device_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(deleteSecurityAndComplianceDeviceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord mock SecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord method +func (r *Mock) MockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord(f func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error)) { + r.mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord = f +} + +// UnMockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord un-mock SecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord method +func (r *Mock) UnMockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord() { + r.mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord = nil +} + +// DeleteSecurityAndComplianceDeviceRecordReq ... +type DeleteSecurityAndComplianceDeviceRecordReq struct { + DeviceRecordID string `path:"device_record_id" json:"-"` // 设备认证编码示例值: "7089353870308032531" +} + +// DeleteSecurityAndComplianceDeviceRecordResp ... +type DeleteSecurityAndComplianceDeviceRecordResp struct { +} + +// deleteSecurityAndComplianceDeviceRecordResp ... +type deleteSecurityAndComplianceDeviceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteSecurityAndComplianceDeviceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_get.go b/api_security_and_compliance_device_record_get.go new file mode 100644 index 00000000..e7867122 --- /dev/null +++ b/api_security_and_compliance_device_record_get.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetSecurityAndComplianceDeviceRecord 使用该接口在设备管理中获取设备的设备参数、设备归属、设备状态等信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/get +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_record/get +func (r *SecurityAndComplianceService) GetSecurityAndComplianceDeviceRecord(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#GetSecurityAndComplianceDeviceRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "GetSecurityAndComplianceDeviceRecord", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records/:device_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getSecurityAndComplianceDeviceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord mock SecurityAndComplianceGetSecurityAndComplianceDeviceRecord method +func (r *Mock) MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord(f func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordResp, *Response, error)) { + r.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord = f +} + +// UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord un-mock SecurityAndComplianceGetSecurityAndComplianceDeviceRecord method +func (r *Mock) UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord() { + r.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord = nil +} + +// GetSecurityAndComplianceDeviceRecordReq ... +type GetSecurityAndComplianceDeviceRecordReq struct { + DeviceRecordID string `path:"device_record_id" json:"-"` // 设备认证编码, 通过调用查询设备信息接口获取示例值: "7089353870308032531" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetSecurityAndComplianceDeviceRecordResp ... +type GetSecurityAndComplianceDeviceRecordResp struct { + DeviceRecord *GetSecurityAndComplianceDeviceRecordRespDeviceRecord `json:"device_record,omitempty"` // 设备记录 +} + +// GetSecurityAndComplianceDeviceRecordRespDeviceRecord ... +type GetSecurityAndComplianceDeviceRecordRespDeviceRecord struct { + DeviceRecordID string `json:"device_record_id,omitempty"` // 设备认证编码 + Version string `json:"version,omitempty"` // 版本号 + CurrentUserID string `json:"current_user_id,omitempty"` // 当前登录用户ID + DeviceName string `json:"device_name,omitempty"` // 设备名称 + Model string `json:"model,omitempty"` // 设备型号 + DeviceSystem int64 `json:"device_system,omitempty"` // 操作系统可选值有: WindowsmacOSLinuxAndroidiOSOpenHarmony + SerialNumber string `json:"serial_number,omitempty"` // 生产序列号 + DiskSerialNumber string `json:"disk_serial_number,omitempty"` // 硬盘序列号 + UUID string `json:"uuid,omitempty"` // 主板UUID + MacAddress string `json:"mac_address,omitempty"` // MAC地址 + AndroidID string `json:"android_id,omitempty"` // Android标识符 + Idfv string `json:"idfv,omitempty"` // iOS供应商标识符 + Aaid string `json:"aaid,omitempty"` // Harmony供应商标识符 + DeviceOwnership int64 `json:"device_ownership,omitempty"` // 设备归属可选值有: 未知设备个人设备企业设备 + DeviceStatus int64 `json:"device_status,omitempty"` // 可信状态可选值有: 未知状态信任设备非信任设备 + CertificationLevel int64 `json:"certification_level,omitempty"` // 认证方式可选值有: 未知飞书认证终端管理认证 + DeviceTerminalType int64 `json:"device_terminal_type,omitempty"` // 设备类型可选值有: 未知移动端桌面端 + LatestUserID string `json:"latest_user_id,omitempty"` // 最近登录用户ID + Dids []string `json:"dids,omitempty"` // 设备指纹列表 + IsManaged bool `json:"is_managed,omitempty"` // 是否为受管控设备 + MDMDeviceID string `json:"mdm_device_id,omitempty"` // MDM设备ID + MDMProviderName string `json:"mdm_provider_name,omitempty"` // MDM厂商名称 +} + +// getSecurityAndComplianceDeviceRecordResp ... +type getSecurityAndComplianceDeviceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetSecurityAndComplianceDeviceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_list.go b/api_security_and_compliance_device_record_list.go new file mode 100644 index 00000000..5b1eb1e1 --- /dev/null +++ b/api_security_and_compliance_device_record_list.go @@ -0,0 +1,124 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListSecurityAndComplianceDeviceRecord 使用该接口可分页查询设备列表信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/list +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_record/list +func (r *SecurityAndComplianceService) ListSecurityAndComplianceDeviceRecord(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#ListSecurityAndComplianceDeviceRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "ListSecurityAndComplianceDeviceRecord", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listSecurityAndComplianceDeviceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceListSecurityAndComplianceDeviceRecord mock SecurityAndComplianceListSecurityAndComplianceDeviceRecord method +func (r *Mock) MockSecurityAndComplianceListSecurityAndComplianceDeviceRecord(f func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error)) { + r.mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord = f +} + +// UnMockSecurityAndComplianceListSecurityAndComplianceDeviceRecord un-mock SecurityAndComplianceListSecurityAndComplianceDeviceRecord method +func (r *Mock) UnMockSecurityAndComplianceListSecurityAndComplianceDeviceRecord() { + r.mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord = nil +} + +// ListSecurityAndComplianceDeviceRecordReq ... +type ListSecurityAndComplianceDeviceRecordReq struct { + PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 7394463407091023892 + DeviceRecordID *string `query:"device_record_id" json:"-"` // 设备认证编码示例值: 7089353870308032531 + CurrentUserID *string `query:"current_user_id" json:"-"` // 当前登录用户ID, ID 类型必须与查询参数user_id_type的取值一致示例值: ou_b25e90585ef8c1adac4b379c2e257906 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DeviceName *string `query:"device_name" json:"-"` // 设备名称示例值: Q9C6RYMFDK + SerialNumber *string `query:"serial_number" json:"-"` // 生产序列号示例值: C02DTHRMML7H + DiskSerialNumber *string `query:"disk_serial_number" json:"-"` // 硬盘序列号示例值: CC344362-5990-5A68-8DDD-64A23C99FA0C + MacAddress *string `query:"mac_address" json:"-"` // MAC地址示例值: ac:de:48:00:11:21 + AndroidID *string `query:"android_id" json:"-"` // Android标识符示例值: 02a11ac4a83b918e + UUID *string `query:"uuid" json:"-"` // 主板UUID示例值: 4C4C4544-0052-5A10-804E-B6C04F324433 + Idfv *string `query:"idfv" json:"-"` // iOS供应商标识符示例值: 968F0E5C-C297-4122-ACB6-102494DEFD9A + Aaid *string `query:"aaid" json:"-"` // Harmony供应商标识符示例值: ff3c2237-cd76-4331-9d72-0a4470854567 + DeviceOwnership *int64 `query:"device_ownership" json:"-"` // 设备归属示例值: 0可选值有: 未知设备个人设备企业设备 + DeviceStatus *int64 `query:"device_status" json:"-"` // 可信状态示例值: 0可选值有: 未知状态信任设备非信任设备 + DeviceTerminalType *int64 `query:"device_terminal_type" json:"-"` // 设备类型示例值: 0可选值有: 未知移动端桌面端 + Os *int64 `query:"os" json:"-"` // 设备操作系统示例值: 0可选值有: 未知WindowsmacOSLinuxAndroidiOSOpenHarmony + LatestUserID *string `query:"latest_user_id" json:"-"` // 最近登录用户ID, ID 类型必须与查询参数user_id_type的取值一致示例值: ou_b25e90585ef8c1adac4b379c2e257906 + Did *string `query:"did" json:"-"` // 设备指纹示例值: 7089353870308032531 + IsManaged *bool `query:"is_managed" json:"-"` // 是否为受管控设备示例值: true + MDMDeviceID *string `query:"mdm_device_id" json:"-"` // MDM设备ID示例值: 123abc + MDMProviderName *string `query:"mdm_provider_name" json:"-"` // MDM厂商名称示例值: Workspace_ONE +} + +// ListSecurityAndComplianceDeviceRecordResp ... +type ListSecurityAndComplianceDeviceRecordResp struct { + Items []*ListSecurityAndComplianceDeviceRecordRespItem `json:"items,omitempty"` // 设备列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListSecurityAndComplianceDeviceRecordRespItem ... +type ListSecurityAndComplianceDeviceRecordRespItem struct { + DeviceRecordID string `json:"device_record_id,omitempty"` // 设备认证编码 + Version string `json:"version,omitempty"` // 版本号 + CurrentUserID string `json:"current_user_id,omitempty"` // 当前登录用户ID + DeviceName string `json:"device_name,omitempty"` // 设备名称 + Model string `json:"model,omitempty"` // 设备型号 + DeviceSystem int64 `json:"device_system,omitempty"` // 操作系统可选值有: WindowsmacOSLinuxAndroidiOSOpenHarmony + SerialNumber string `json:"serial_number,omitempty"` // 生产序列号 + DiskSerialNumber string `json:"disk_serial_number,omitempty"` // 硬盘序列号 + UUID string `json:"uuid,omitempty"` // 主板UUID + MacAddress string `json:"mac_address,omitempty"` // MAC地址 + AndroidID string `json:"android_id,omitempty"` // Android标识符 + Idfv string `json:"idfv,omitempty"` // iOS供应商标识符 + Aaid string `json:"aaid,omitempty"` // Harmony供应商标识符 + DeviceOwnership int64 `json:"device_ownership,omitempty"` // 设备归属可选值有: 未知设备个人设备企业设备 + DeviceStatus int64 `json:"device_status,omitempty"` // 可信状态可选值有: 未知状态信任设备非信任设备 + CertificationLevel int64 `json:"certification_level,omitempty"` // 认证方式可选值有: 未知飞书认证终端管理认证 + DeviceTerminalType int64 `json:"device_terminal_type,omitempty"` // 设备类型可选值有: 未知移动端桌面端 + LatestUserID string `json:"latest_user_id,omitempty"` // 最近登录用户ID + Dids []string `json:"dids,omitempty"` // 设备指纹列表 + IsManaged bool `json:"is_managed,omitempty"` // 是否为受管控设备 + MDMDeviceID string `json:"mdm_device_id,omitempty"` // MDM设备ID + MDMProviderName string `json:"mdm_provider_name,omitempty"` // MDM厂商名称 +} + +// listSecurityAndComplianceDeviceRecordResp ... +type listSecurityAndComplianceDeviceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListSecurityAndComplianceDeviceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_mine.go b/api_security_and_compliance_device_record_mine.go new file mode 100644 index 00000000..53e82460 --- /dev/null +++ b/api_security_and_compliance_device_record_mine.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetSecurityAndComplianceDeviceRecordMine 通过客户端授权信息获取对应设备认证信息, 包含设备归属、可信状态等 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/mine +func (r *SecurityAndComplianceService) GetSecurityAndComplianceDeviceRecordMine(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#GetSecurityAndComplianceDeviceRecordMine mock enable") + return r.cli.mock.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "GetSecurityAndComplianceDeviceRecordMine", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records/mine", + Body: request, + MethodOption: newMethodOption(options), + NeedUserAccessToken: true, + } + resp := new(getSecurityAndComplianceDeviceRecordMineResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine mock SecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine method +func (r *Mock) MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine(f func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error)) { + r.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine = f +} + +// UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine un-mock SecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine method +func (r *Mock) UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine() { + r.mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine = nil +} + +// GetSecurityAndComplianceDeviceRecordMineReq ... +type GetSecurityAndComplianceDeviceRecordMineReq struct { +} + +// GetSecurityAndComplianceDeviceRecordMineResp ... +type GetSecurityAndComplianceDeviceRecordMineResp struct { + DeviceRecordID string `json:"device_record_id,omitempty"` // 设备认证编码 + DeviceOwnership int64 `json:"device_ownership,omitempty"` // 设备归属可选值有: 未知设备个人设备企业设备 + DeviceStatus int64 `json:"device_status,omitempty"` // 可信状态可选值有: 未知状态信任设备非信任设备 +} + +// getSecurityAndComplianceDeviceRecordMineResp ... +type getSecurityAndComplianceDeviceRecordMineResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetSecurityAndComplianceDeviceRecordMineResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_device_record_update.go b/api_security_and_compliance_device_record_update.go new file mode 100644 index 00000000..6f430f01 --- /dev/null +++ b/api_security_and_compliance_device_record_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateSecurityAndComplianceDeviceRecord 使用该接口在设备管理中修改一台设备的设备归属、设备状态等信息 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v2/device_record/update +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/security_and_compliance-v2/device_record/update +func (r *SecurityAndComplianceService) UpdateSecurityAndComplianceDeviceRecord(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#UpdateSecurityAndComplianceDeviceRecord mock enable") + return r.cli.mock.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "UpdateSecurityAndComplianceDeviceRecord", + Method: "PUT", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v2/device_records/:device_record_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(updateSecurityAndComplianceDeviceRecordResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord mock SecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord method +func (r *Mock) MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord(f func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error)) { + r.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord = f +} + +// UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord un-mock SecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord method +func (r *Mock) UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord() { + r.mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord = nil +} + +// UpdateSecurityAndComplianceDeviceRecordReq ... +type UpdateSecurityAndComplianceDeviceRecordReq struct { + DeviceRecordID string `path:"device_record_id" json:"-"` // 设备认证编码示例值: "7089353870308032531" + Version string `query:"version" json:"-"` // 版本号示例值: 0 + DeviceOwnership int64 `json:"device_ownership,omitempty"` // 设备归属示例值: 0可选值有: 未知设备个人设备企业设备 + DeviceStatus int64 `json:"device_status,omitempty"` // 可信状态示例值: 0可选值有: 未知状态信任设备非信任设备 +} + +// UpdateSecurityAndComplianceDeviceRecordResp ... +type UpdateSecurityAndComplianceDeviceRecordResp struct { +} + +// updateSecurityAndComplianceDeviceRecordResp ... +type updateSecurityAndComplianceDeviceRecordResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateSecurityAndComplianceDeviceRecordResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_security_and_compliance_openapi_log_list_data.go b/api_security_and_compliance_openapi_log_list_data.go new file mode 100644 index 00000000..b337f5a9 --- /dev/null +++ b/api_security_and_compliance_openapi_log_list_data.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListSecurityAndComplianceOpenapiLogData 该接口用于获取OpenAPI审计日志数据 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v1/openapi_log/list_data +// new doc: https://open.feishu.cn/document/security_and_compliance-v1/openapi_log/list_data +func (r *SecurityAndComplianceService) ListSecurityAndComplianceOpenapiLogData(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) { + if r.cli.mock.mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] SecurityAndCompliance#ListSecurityAndComplianceOpenapiLogData mock enable") + return r.cli.mock.mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "SecurityAndCompliance", + API: "ListSecurityAndComplianceOpenapiLogData", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/security_and_compliance/v1/openapi_logs/list_data", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listSecurityAndComplianceOpenapiLogDataResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData mock SecurityAndComplianceListSecurityAndComplianceOpenapiLogData method +func (r *Mock) MockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData(f func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error)) { + r.mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData = f +} + +// UnMockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData un-mock SecurityAndComplianceListSecurityAndComplianceOpenapiLogData method +func (r *Mock) UnMockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData() { + r.mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData = nil +} + +// ListSecurityAndComplianceOpenapiLogDataReq ... +type ListSecurityAndComplianceOpenapiLogDataReq struct { + ApiKeys []string `json:"api_keys,omitempty"` // 飞书开放平台定义的API, 参考: [API列表](https://open.feishu.cn/document/server-docs/api-call-guide/server-api-list)示例值: ["POST/open-apis/authen/v1/access_token"] 最大长度: `100` + StartTime *int64 `json:"start_time,omitempty"` // 以秒为单位的起始时间戳示例值: 1610613336 + EndTime *int64 `json:"end_time,omitempty"` // 以秒为单位的终止时间戳示例值: 1610613336 + AppID *string `json:"app_id,omitempty"` // 调用OpenAPI的应用唯一标识, 可以前往 [开发者后台](https://open.feishu.cn/app) > 应用详情页 > 凭证与基础信息中获取 app_id示例值: "cli_xxx" + PageSize *int64 `json:"page_size,omitempty"` // 分页大小示例值: 20 取值范围: `1` ~ `100` + PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "xxx" +} + +// ListSecurityAndComplianceOpenapiLogDataResp ... +type ListSecurityAndComplianceOpenapiLogDataResp struct { + Items []*ListSecurityAndComplianceOpenapiLogDataRespItem `json:"items,omitempty"` // openapi日志列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListSecurityAndComplianceOpenapiLogDataRespItem ... +type ListSecurityAndComplianceOpenapiLogDataRespItem struct { + ID string `json:"id,omitempty"` // openapi日志唯一标识 + ApiKey string `json:"api_key,omitempty"` // 飞书开放平台定义的API + EventTime int64 `json:"event_time,omitempty"` // 日志产生的时间, 以秒为单位的时间戳 + AppID string `json:"app_id,omitempty"` // 调用OpenAPI的应用唯一标识 + Ip string `json:"ip,omitempty"` // 发起调用api的ip地址 + LogDetail *ListSecurityAndComplianceOpenapiLogDataRespItemLogDetail `json:"log_detail,omitempty"` // openapi调用日志详情 +} + +// ListSecurityAndComplianceOpenapiLogDataRespItemLogDetail ... +type ListSecurityAndComplianceOpenapiLogDataRespItemLogDetail struct { + Path string `json:"path,omitempty"` // http请求路径 + Method string `json:"method,omitempty"` // http请求方法 + QueryParam string `json:"query_param,omitempty"` // http查询参数 + Payload string `json:"payload,omitempty"` // http请求体 + StatusCode int64 `json:"status_code,omitempty"` // http状态码 + Response string `json:"response,omitempty"` // http响应体, 仅返回code, msg, error信息等 +} + +// listSecurityAndComplianceOpenapiLogDataResp ... +type listSecurityAndComplianceOpenapiLogDataResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListSecurityAndComplianceOpenapiLogDataResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_add_dependency_add.go b/api_task_add_dependency_add.go index 13415dcf..3164c819 100644 --- a/api_task_add_dependency_add.go +++ b/api_task_add_dependency_add.go @@ -27,7 +27,8 @@ import ( // 注意: 添加的依赖的`task_guid`不能重复, 也不能添加当前任务为自己的依赖。尝试添加一个已经存在的依赖会被自动忽略。 // 添加任务依赖需要调用身份拥有当前任务的编辑权限和所有被添加为依赖的任务的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_dependencies +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_dependencies +// new doc: https://open.feishu.cn/document/task-v2/task/add_dependencies func (r *TaskService) AddTaskDependency(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) { if r.cli.mock.mockTaskAddTaskDependency != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskDependency mock enable") @@ -62,14 +63,14 @@ func (r *Mock) UnMockTaskAddTaskDependency() { // AddTaskDependencyReq ... type AddTaskDependencyReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 任务GUID, 示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" - Dependencies []*AddTaskDependencyReqDependencie `json:"dependencies,omitempty"` // 要添加的依赖, 长度范围: `1` ~ `50` + TaskGuid string `path:"task_guid" json:"-"` // 任务GUID示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" + Dependencies []*AddTaskDependencyReqDependencie `json:"dependencies,omitempty"` // 要添加的依赖 长度范围: `1` ~ `50` } // AddTaskDependencyReqDependencie ... type AddTaskDependencyReqDependencie struct { - Type string `json:"type,omitempty"` // 依赖类型, 示例值: "next", 可选值有: prev: 前置依赖, next: 后置依赖 - TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID, 示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" + Type string `json:"type,omitempty"` // 依赖类型示例值: "next"可选值有: 前置依赖后置依赖 + TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" } // AddTaskDependencyResp ... @@ -79,7 +80,7 @@ type AddTaskDependencyResp struct { // AddTaskDependencyRespDependencie ... type AddTaskDependencyRespDependencie struct { - Type string `json:"type,omitempty"` // 依赖类型, 可选值有: prev: 前置依赖, next: 后置依赖 + Type string `json:"type,omitempty"` // 依赖类型可选值有: 前置依赖后置依赖 TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID } diff --git a/api_task_attachment_delete.go b/api_task_attachment_delete.go index 7cfe9040..f4289083 100644 --- a/api_task_attachment_delete.go +++ b/api_task_attachment_delete.go @@ -25,7 +25,8 @@ import ( // // 删除附件需要调用身份拥有被删除附件所属资源的的编辑权限, 或者调用身份就是附件的上传人。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/delete +// new doc: https://open.feishu.cn/document/task-v2/attachment/delete func (r *TaskService) DeleteTaskAttachment(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskAttachment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskAttachment mock enable") @@ -60,11 +61,12 @@ func (r *Mock) UnMockTaskDeleteTaskAttachment() { // DeleteTaskAttachmentReq ... type DeleteTaskAttachmentReq struct { - AttachmentGuid string `path:"attachment_guid" json:"-"` // 要删除附件的GUID。可以通过创建[上传附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload)接口创建, 或者通过[列取附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list)接口查询得到, 示例值: "b59aa7a3-e98c-4830-8273-cbb29f89b837", 最大长度: `100` 字符 + AttachmentGuid string `path:"attachment_guid" json:"-"` // 要删除附件的GUID。可以通过创建[上传附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload)接口创建, 或者通过[列取附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list)接口查询得到。示例值: "b59aa7a3-e98c-4830-8273-cbb29f89b837" 最大长度: `100` 字符 } // DeleteTaskAttachmentResp ... -type DeleteTaskAttachmentResp struct{} +type DeleteTaskAttachmentResp struct { +} // deleteTaskAttachmentResp ... type deleteTaskAttachmentResp struct { diff --git a/api_task_attachment_get.go b/api_task_attachment_get.go index 64beefb5..56bc827a 100644 --- a/api_task_attachment_get.go +++ b/api_task_attachment_get.go @@ -25,7 +25,8 @@ import ( // // 获取附件需要附件归属资源的可读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/get +// new doc: https://open.feishu.cn/document/task-v2/attachment/get func (r *TaskService) GetTaskAttachment(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) { if r.cli.mock.mockTaskGetTaskAttachment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskAttachment mock enable") @@ -60,8 +61,8 @@ func (r *Mock) UnMockTaskGetTaskAttachment() { // GetTaskAttachmentReq ... type GetTaskAttachmentReq struct { - AttachmentGuid string `path:"attachment_guid" json:"-"` // 获取详情的附件GUID。可以通过创建[上传附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload)接口创建, 或者通过[列取附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list)接口查询得到, 示例值: "b59aa7a3-e98c-4830-8273-cbb29f89b837" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + AttachmentGuid string `path:"attachment_guid" json:"-"` // 获取详情的附件GUID。可以通过创建[上传附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload)接口创建, 或者通过[列取附件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list)接口查询得到。示例值: "b59aa7a3-e98c-4830-8273-cbb29f89b837" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskAttachmentResp ... diff --git a/api_task_attachment_list.go b/api_task_attachment_list.go index 9e430451..f0a66526 100644 --- a/api_task_attachment_list.go +++ b/api_task_attachment_list.go @@ -26,7 +26,8 @@ import ( // 每个附件会返回一个可供下载的临时url, 有效期为3分钟, 最多可以支持3次下载。如果超过使用限制, 需要通过本接口获取新的临时url。 // 获取任务的附件列表, 需要该任务的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/list +// new doc: https://open.feishu.cn/document/task-v2/attachment/list func (r *TaskService) GetTaskAttachmentList(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskAttachmentList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskAttachmentList mock enable") @@ -61,11 +62,11 @@ func (r *Mock) UnMockTaskGetTaskAttachmentList() { // GetTaskAttachmentListReq ... type GetTaskAttachmentListReq struct { - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE= - ResourceType *string `query:"resource_type" json:"-"` // 附件归属的资源类型。目前只支持"task", 示例值: task, 默认值: `task` - ResourceID string `query:"resource_id" json:"-"` // 附件归属资源的id, 配合resource_type使用。例如希望获取任务的附件, 需要设置 resource_type为task, resource_id为任务GUID。任务GUID的获取方式可以参考[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview), 示例值: 9842501a-9f47-4ff5-a622-d319eeecb97f - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= + ResourceType *string `query:"resource_type" json:"-"` // 附件归属的资源类型。目前只支持"task"。示例值: task默认值: `task` + ResourceID string `query:"resource_id" json:"-"` // 附件归属资源的id, 配合resource_type使用。例如希望获取任务的附件, 需要设置 resource_type为task, resource_id为任务GUID。任务GUID的获取方式可以参考[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)。示例值: 9842501a-9f47-4ff5-a622-d319eeecb97f + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskAttachmentListResp ... diff --git a/api_task_attachment_upload.go b/api_task_attachment_upload.go index 81cf86a0..d90b00a5 100644 --- a/api_task_attachment_upload.go +++ b/api_task_attachment_upload.go @@ -28,7 +28,8 @@ import ( // 目前资源类型仅支持"task", `resource_id`需要填写任务的GUID。 // 为任务上传附件需要任务的可编辑权限 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/attachment/upload +// new doc: https://open.feishu.cn/document/task-v2/attachment/upload func (r *TaskService) UploadTaskAttachment(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) { if r.cli.mock.mockTaskUploadTaskAttachment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UploadTaskAttachment mock enable") @@ -64,10 +65,10 @@ func (r *Mock) UnMockTaskUploadTaskAttachment() { // UploadTaskAttachmentReq ... type UploadTaskAttachmentReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - ResourceType *string `json:"resource_type,omitempty"` // 附件归属资源的类型, 示例值: "task", 默认值: `task` - ResourceID string `json:"resource_id,omitempty"` // 附件要归属资源的id。例如, 要给任务添加附件, 这里要填入任务GUID。任务GUID可以通过[任务相关接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)获得, 示例值: "fe96108d-b004-4a47-b2f8-6886e758b3a5", 最大长度: `100` 字符 - File io.Reader `json:"file,omitempty"` // 要上传的文件, 单请求支持最多5个文件。上传结果的顺序将和请求中文件的顺序保持一致, 示例值: file binary + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ResourceType *string `json:"resource_type,omitempty"` // 附件归属资源的类型示例值: "task"默认值: `task` + ResourceID string `json:"resource_id,omitempty"` // 附件要归属资源的id。例如, 要给任务添加附件, 这里要填入任务GUID。任务GUID可以通过[任务相关接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)获得。示例值: "fe96108d-b004-4a47-b2f8-6886e758b3a5" 最大长度: `100` 字符 + File io.Reader `json:"file,omitempty"` // 要上传的文件, 单请求支持最多5个文件。上传结果的顺序将和请求中文件的顺序保持一致。示例值: file binary } // UploadTaskAttachmentResp ... diff --git a/api_task_collaborator_create.go b/api_task_collaborator_create.go index 89d93097..2b0c0868 100644 --- a/api_task_collaborator_create.go +++ b/api_task_collaborator_create.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/create // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-collaborator/create -// -// Deprecated func (r *TaskService) CreateTaskCollaborator(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskCollaborator != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskCollaborator mock enable") diff --git a/api_task_collaborator_delete.go b/api_task_collaborator_delete.go index 50a1185a..a45bb271 100644 --- a/api_task_collaborator_delete.go +++ b/api_task_collaborator_delete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/delete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-collaborator/delete -// -// Deprecated func (r *TaskService) DeleteTaskCollaborator(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskCollaborator != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskCollaborator mock enable") @@ -67,7 +65,8 @@ type DeleteTaskCollaboratorReq struct { } // DeleteTaskCollaboratorResp ... -type DeleteTaskCollaboratorResp struct{} +type DeleteTaskCollaboratorResp struct { +} // deleteTaskCollaboratorResp ... type deleteTaskCollaboratorResp struct { diff --git a/api_task_collaborator_delete_batch.go b/api_task_collaborator_delete_batch.go index 724d10fa..8e025fff 100644 --- a/api_task_collaborator_delete_batch.go +++ b/api_task_collaborator_delete_batch.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/batch_delete_collaborator // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-collaborator/batch_delete_collaborator -// -// Deprecated func (r *TaskService) BatchDeleteTaskCollaborator(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) { if r.cli.mock.mockTaskBatchDeleteTaskCollaborator != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#BatchDeleteTaskCollaborator mock enable") diff --git a/api_task_collaborator_list.go b/api_task_collaborator_list.go index 8b5465b6..719ab2ad 100644 --- a/api_task_collaborator_list.go +++ b/api_task_collaborator_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/list // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-collaborator/list -// -// Deprecated func (r *TaskService) GetTaskCollaboratorList(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskCollaboratorList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskCollaboratorList mock enable") diff --git a/api_task_comment_create.go b/api_task_comment_create.go index 2a4eea5b..ee2e6c70 100644 --- a/api_task_comment_create.go +++ b/api_task_comment_create.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/create // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/create -// -// Deprecated func (r *TaskService) CreateTaskComment(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskComment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskComment mock enable") diff --git a/api_task_comment_create_v2.go b/api_task_comment_create_v2.go new file mode 100644 index 00000000..f64dea42 --- /dev/null +++ b/api_task_comment_create_v2.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateTaskCommentV2 为一个任务创建评论, 或者回复该任务的某个评论。 +// +// 若要创建一个回复评论, 需要在创建时设置`reply_to_comment_id`字段。被回复的评论和新建的评论必须属于同一个任务。 +// 对任务进行评论时需要评论的读取权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/comment/create +// new doc: https://open.feishu.cn/document/task-v2/comment/create +func (r *TaskService) CreateTaskCommentV2(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) { + if r.cli.mock.mockTaskCreateTaskCommentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskCommentV2 mock enable") + return r.cli.mock.mockTaskCreateTaskCommentV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "CreateTaskCommentV2", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/task/v2/comments", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createTaskCommentV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskCreateTaskCommentV2 mock TaskCreateTaskCommentV2 method +func (r *Mock) MockTaskCreateTaskCommentV2(f func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error)) { + r.mockTaskCreateTaskCommentV2 = f +} + +// UnMockTaskCreateTaskCommentV2 un-mock TaskCreateTaskCommentV2 method +func (r *Mock) UnMockTaskCreateTaskCommentV2() { + r.mockTaskCreateTaskCommentV2 = nil +} + +// CreateTaskCommentV2Req ... +type CreateTaskCommentV2Req struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Content string `json:"content,omitempty"` // 评论内容。不允许为空, 最长3000个utf8字符。示例值: "这是一条评论。" + ReplyToCommentID *string `json:"reply_to_comment_id,omitempty"` // 回复给评论的评论ID。如果不填写表示创建非回复评论。示例值: "6937231762296684564" 最大长度: `20` 字符 + ResourceType *string `json:"resource_type,omitempty"` // 评论归属的资源类型, 目前只支持任务“task”, 默认为"task"。示例值: "task"默认值: `task` + ResourceID *string `json:"resource_id,omitempty"` // 评论归属的资源ID。当归属资源类型为"task"时, 这里应填写任务的GUID。示例值: "ccb55625-95d2-2e80-655f-0e40bf67953f" 最大长度: `100` 字符 +} + +// CreateTaskCommentV2Resp ... +type CreateTaskCommentV2Resp struct { + Comment *CreateTaskCommentV2RespComment `json:"comment,omitempty"` // 创建的评论详情 +} + +// CreateTaskCommentV2RespComment ... +type CreateTaskCommentV2RespComment struct { + ID string `json:"id,omitempty"` // 评论id + Content string `json:"content,omitempty"` // 评论内容 + Creator *CreateTaskCommentV2RespCommentCreator `json:"creator,omitempty"` // 评论创建人 + ReplyToCommentID string `json:"reply_to_comment_id,omitempty"` // 评论回复评论的id。如果不是回复评论, 则为空。 + CreatedAt string `json:"created_at,omitempty"` // 评论创建时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 评论更新时间戳(ms) + ResourceType string `json:"resource_type,omitempty"` // 任务关联的资源类型 + ResourceID string `json:"resource_id,omitempty"` // 任务关联的资源ID +} + +// CreateTaskCommentV2RespCommentCreator ... +type CreateTaskCommentV2RespCommentCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// createTaskCommentV2Resp ... +type createTaskCommentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateTaskCommentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_comment_delete.go b/api_task_comment_delete.go index 3c7bb5d7..beed8db0 100644 --- a/api_task_comment_delete.go +++ b/api_task_comment_delete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/delete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/delete -// -// Deprecated func (r *TaskService) DeleteTaskComment(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskComment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskComment mock enable") @@ -66,7 +64,8 @@ type DeleteTaskCommentReq struct { } // DeleteTaskCommentResp ... -type DeleteTaskCommentResp struct{} +type DeleteTaskCommentResp struct { +} // deleteTaskCommentResp ... type deleteTaskCommentResp struct { diff --git a/api_task_comment_delete_v2.go b/api_task_comment_delete_v2.go new file mode 100644 index 00000000..4236e65d --- /dev/null +++ b/api_task_comment_delete_v2.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// DeleteTaskCommentV2 删除一条评论。 +// +// 评论被删除后, 将无法进行任何操作, 也无法恢复。 +// 需要评论归属任务的读取权限, 并且只能删除自己发送的评论。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/comment/delete +// new doc: https://open.feishu.cn/document/task-v2/comment/delete +func (r *TaskService) DeleteTaskCommentV2(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) { + if r.cli.mock.mockTaskDeleteTaskCommentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskCommentV2 mock enable") + return r.cli.mock.mockTaskDeleteTaskCommentV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "DeleteTaskCommentV2", + Method: "DELETE", + URL: r.cli.openBaseURL + "/open-apis/task/v2/comments/:comment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(deleteTaskCommentV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskDeleteTaskCommentV2 mock TaskDeleteTaskCommentV2 method +func (r *Mock) MockTaskDeleteTaskCommentV2(f func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error)) { + r.mockTaskDeleteTaskCommentV2 = f +} + +// UnMockTaskDeleteTaskCommentV2 un-mock TaskDeleteTaskCommentV2 method +func (r *Mock) UnMockTaskDeleteTaskCommentV2() { + r.mockTaskDeleteTaskCommentV2 = nil +} + +// DeleteTaskCommentV2Req ... +type DeleteTaskCommentV2Req struct { + CommentID string `path:"comment_id" json:"-"` // 要删除的评论id示例值: "7198104824246747156" +} + +// DeleteTaskCommentV2Resp ... +type DeleteTaskCommentV2Resp struct { +} + +// deleteTaskCommentV2Resp ... +type deleteTaskCommentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteTaskCommentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_comment_get.go b/api_task_comment_get.go index e34e7fdd..e3df8560 100644 --- a/api_task_comment_get.go +++ b/api_task_comment_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/get // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/get -// -// Deprecated func (r *TaskService) GetTaskComment(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) { if r.cli.mock.mockTaskGetTaskComment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskComment mock enable") diff --git a/api_task_comment_get_v2.go b/api_task_comment_get_v2.go new file mode 100644 index 00000000..d8aee009 --- /dev/null +++ b/api_task_comment_get_v2.go @@ -0,0 +1,98 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTaskCommentV2 给定一个评论的ID, 返回评论的详情, 包括内容, 创建人, 创建时间和更新时间等信息。 +// +// 获取任务的评论详情需要评论归属任务的读取权限, 详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/comment/get +// new doc: https://open.feishu.cn/document/task-v2/comment/get +func (r *TaskService) GetTaskCommentV2(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) { + if r.cli.mock.mockTaskGetTaskCommentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskCommentV2 mock enable") + return r.cli.mock.mockTaskGetTaskCommentV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "GetTaskCommentV2", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/task/v2/comments/:comment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTaskCommentV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskGetTaskCommentV2 mock TaskGetTaskCommentV2 method +func (r *Mock) MockTaskGetTaskCommentV2(f func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error)) { + r.mockTaskGetTaskCommentV2 = f +} + +// UnMockTaskGetTaskCommentV2 un-mock TaskGetTaskCommentV2 method +func (r *Mock) UnMockTaskGetTaskCommentV2() { + r.mockTaskGetTaskCommentV2 = nil +} + +// GetTaskCommentV2Req ... +type GetTaskCommentV2Req struct { + CommentID string `path:"comment_id" json:"-"` // 要获取评论详情的评论ID示例值: "7198104824246747156" 最大长度: `50` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` +} + +// GetTaskCommentV2Resp ... +type GetTaskCommentV2Resp struct { + Comment *GetTaskCommentV2RespComment `json:"comment,omitempty"` // 评论详情 +} + +// GetTaskCommentV2RespComment ... +type GetTaskCommentV2RespComment struct { + ID string `json:"id,omitempty"` // 评论id + Content string `json:"content,omitempty"` // 评论内容 + Creator *GetTaskCommentV2RespCommentCreator `json:"creator,omitempty"` // 评论创建人 + ReplyToCommentID string `json:"reply_to_comment_id,omitempty"` // 回复给评论的id。如果不是回复评论, 则为空。 + CreatedAt string `json:"created_at,omitempty"` // 评论创建时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 评论更新时间戳(ms) + ResourceType string `json:"resource_type,omitempty"` // 任务关联的资源类型 + ResourceID string `json:"resource_id,omitempty"` // 任务关联的资源ID +} + +// GetTaskCommentV2RespCommentCreator ... +type GetTaskCommentV2RespCommentCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// getTaskCommentV2Resp ... +type getTaskCommentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTaskCommentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_comment_list.go b/api_task_comment_list.go index f3bc83a0..70767a9c 100644 --- a/api_task_comment_list.go +++ b/api_task_comment_list.go @@ -21,74 +21,85 @@ import ( "context" ) -// GetTaskCommentList 该接口用于查询任务评论列表, 支持分页, 最大值为100。 +// ListTaskComment 给定一个资源, 返回该资源的评论列表。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/list -// new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/list +// 支持分页。评论可以按照创建时间的正序(asc, 从最老到最新), 或者逆序(desc, 从最老到最新), 返回数据。 +// 获取任务的评论列表需要任务的读取权限, 详见[任务是如何鉴权的?](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/faq) // -// Deprecated -func (r *TaskService) GetTaskCommentList(ctx context.Context, request *GetTaskCommentListReq, options ...MethodOptionFunc) (*GetTaskCommentListResp, *Response, error) { - if r.cli.mock.mockTaskGetTaskCommentList != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskCommentList mock enable") - return r.cli.mock.mockTaskGetTaskCommentList(ctx, request, options...) +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/comment/list +// new doc: https://open.feishu.cn/document/task-v2/comment/list +func (r *TaskService) ListTaskComment(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) { + if r.cli.mock.mockTaskListTaskComment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#ListTaskComment mock enable") + return r.cli.mock.mockTaskListTaskComment(ctx, request, options...) } req := &RawRequestReq{ Scope: "Task", - API: "GetTaskCommentList", + API: "ListTaskComment", Method: "GET", - URL: r.cli.openBaseURL + "/open-apis/task/v1/tasks/:task_id/comments", + URL: r.cli.openBaseURL + "/open-apis/task/v2/comments", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(getTaskCommentListResp) + resp := new(listTaskCommentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockTaskGetTaskCommentList mock TaskGetTaskCommentList method -func (r *Mock) MockTaskGetTaskCommentList(f func(ctx context.Context, request *GetTaskCommentListReq, options ...MethodOptionFunc) (*GetTaskCommentListResp, *Response, error)) { - r.mockTaskGetTaskCommentList = f +// MockTaskListTaskComment mock TaskListTaskComment method +func (r *Mock) MockTaskListTaskComment(f func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error)) { + r.mockTaskListTaskComment = f } -// UnMockTaskGetTaskCommentList un-mock TaskGetTaskCommentList method -func (r *Mock) UnMockTaskGetTaskCommentList() { - r.mockTaskGetTaskCommentList = nil +// UnMockTaskListTaskComment un-mock TaskListTaskComment method +func (r *Mock) UnMockTaskListTaskComment() { + r.mockTaskListTaskComment = nil } -// GetTaskCommentListReq ... -type GetTaskCommentListReq struct { - TaskID string `path:"task_id" json:"-"` // 任务id示例值: ""83912691-2e43-47fc-94a4-d512e03984fa"" - PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 最大值: `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "MTYzMTg3ODUxNQ==" - ListDirection *int64 `query:"list_direction" json:"-"` // 评论排序标记, 可按照评论时间从小到大查询, 或者评论时间从大到小查询, 不填默认按照从小到大示例值: 0可选值有: 按照回复时间从小到大查询按照回复时间从大到小查询默认值: `0` - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +// ListTaskCommentReq ... +type ListTaskCommentReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 默认为50。示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= 最大长度: `100` 字符 + ResourceType *string `query:"resource_type" json:"-"` // 要获取评论列表的资源类型, 目前只支持"task", 默认为"task"。示例值: task默认值: `task` + ResourceID string `query:"resource_id" json:"-"` // 要获取评论的资源ID。例如要获取任务的评论列表, 此处应该填写任务全局唯一ID示例值: d300a75f-c56a-4be9-80d1-e47653028ceb + Direction *string `query:"direction" json:"-"` // 返回数据的排序方式。"asc"表示从最老到最新顺序返回;"desc"表示从最新到最老顺序返回。默认为"asc"。示例值: asc可选值有: 评论发表时间升序评论发表时间降序默认值: `asc` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } -// GetTaskCommentListResp ... -type GetTaskCommentListResp struct { - Items []*GetTaskCommentListRespItem `json:"items,omitempty"` // 返回的评论列表 - PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token - HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +// ListTaskCommentResp ... +type ListTaskCommentResp struct { + Items []*ListTaskCommentRespItem `json:"items,omitempty"` // 评论列表数据 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// GetTaskCommentListRespItem ... -type GetTaskCommentListRespItem struct { - Content string `json:"content,omitempty"` // 评论内容。评论内容和富文本评论内容同时存在时只使用富文本评论内容。 - ParentID string `json:"parent_id,omitempty"` // 评论的父ID, 创建评论时若不为空则为某条评论的回复, 若为空则不是回复 - ID string `json:"id,omitempty"` // 评论ID, 由飞书服务器发号 - CreateMilliTime string `json:"create_milli_time,omitempty"` // 评论创建的时间戳, 单位为毫秒, 用于展示, 创建时不用填写 - RichContent string `json:"rich_content,omitempty"` // 富文本评论内容。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) - CreatorID string `json:"creator_id,omitempty"` // 评论的创建者 ID。在创建评论时无需填充该字段 +// ListTaskCommentRespItem ... +type ListTaskCommentRespItem struct { + ID string `json:"id,omitempty"` // 评论id + Content string `json:"content,omitempty"` // 评论内容 + Creator *ListTaskCommentRespItemCreator `json:"creator,omitempty"` // 评论创建人 + ReplyToCommentID string `json:"reply_to_comment_id,omitempty"` // 被回复的评论的ID, 如果不是回复评论, 则为空。 + CreatedAt string `json:"created_at,omitempty"` // 评论创建时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 评论更新时间戳(ms) + ResourceType string `json:"resource_type,omitempty"` // 任务关联的资源类型 + ResourceID string `json:"resource_id,omitempty"` // 任务关联的资源ID } -// getTaskCommentListResp ... -type getTaskCommentListResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetTaskCommentListResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// ListTaskCommentRespItemCreator ... +type ListTaskCommentRespItemCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// listTaskCommentResp ... +type listTaskCommentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListTaskCommentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_task_comment_update.go b/api_task_comment_update.go index ebcd1f27..7c53f528 100644 --- a/api_task_comment_update.go +++ b/api_task_comment_update.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/update // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/update -// -// Deprecated func (r *TaskService) UpdateTaskComment(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) { if r.cli.mock.mockTaskUpdateTaskComment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskComment mock enable") diff --git a/api_task_comment_update_v2.go b/api_task_comment_update_v2.go new file mode 100644 index 00000000..9f2a8c74 --- /dev/null +++ b/api_task_comment_update_v2.go @@ -0,0 +1,107 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateTaskCommentV2 更新一条评论。 +// +// 更新时, 将`update_fields`字段中填写所有要修改的评论的字段名, 同时在`comment`字段中填写要修改的字段的新值即可。更新接口规范详情见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 关于资源的更新”章节。 +// 目前只支持更新评论的"conent"字段。 +// 更新评论需要评论归属任务的读取权限, 并且只能更新自己创建的评论。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/comment/patch +// new doc: https://open.feishu.cn/document/task-v2/comment/patch +func (r *TaskService) UpdateTaskCommentV2(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) { + if r.cli.mock.mockTaskUpdateTaskCommentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskCommentV2 mock enable") + return r.cli.mock.mockTaskUpdateTaskCommentV2(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "UpdateTaskCommentV2", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/task/v2/comments/:comment_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateTaskCommentV2Resp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskUpdateTaskCommentV2 mock TaskUpdateTaskCommentV2 method +func (r *Mock) MockTaskUpdateTaskCommentV2(f func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error)) { + r.mockTaskUpdateTaskCommentV2 = f +} + +// UnMockTaskUpdateTaskCommentV2 un-mock TaskUpdateTaskCommentV2 method +func (r *Mock) UnMockTaskUpdateTaskCommentV2() { + r.mockTaskUpdateTaskCommentV2 = nil +} + +// UpdateTaskCommentV2Req ... +type UpdateTaskCommentV2Req struct { + CommentID string `path:"comment_id" json:"-"` // 要更新的评论ID示例值: "7198104824246747156" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Comment *UpdateTaskCommentV2ReqComment `json:"comment,omitempty"` // 要更新的评论数据。 + UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段, 支持评论内容示例值: ["content"] +} + +// UpdateTaskCommentV2ReqComment ... +type UpdateTaskCommentV2ReqComment struct { + Content *string `json:"content,omitempty"` // 要更新的评论内容。如果更新该字段, 不允许设为空, 最大支持3000个utf8字符。示例值: "举杯邀明月, 对影成三人" 最大长度: `10000` 字符 +} + +// UpdateTaskCommentV2Resp ... +type UpdateTaskCommentV2Resp struct { + Comment *UpdateTaskCommentV2RespComment `json:"comment,omitempty"` // 更新后的评论 +} + +// UpdateTaskCommentV2RespComment ... +type UpdateTaskCommentV2RespComment struct { + ID string `json:"id,omitempty"` // 评论id + Content string `json:"content,omitempty"` // 评论内容 + Creator *UpdateTaskCommentV2RespCommentCreator `json:"creator,omitempty"` // 评论创建人 + ReplyToCommentID string `json:"reply_to_comment_id,omitempty"` // 被回复评论的id。如果不是回复评论, 则为空。 + CreatedAt string `json:"created_at,omitempty"` // 评论创建时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 评论更新时间戳(ms) + ResourceType string `json:"resource_type,omitempty"` // 任务关联的资源类型 + ResourceID string `json:"resource_id,omitempty"` // 任务关联的资源ID +} + +// UpdateTaskCommentV2RespCommentCreator ... +type UpdateTaskCommentV2RespCommentCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// updateTaskCommentV2Resp ... +type updateTaskCommentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateTaskCommentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_custom_field_add.go b/api_task_custom_field_add.go index e4cbc4ca..fffa10fa 100644 --- a/api_task_custom_field_add.go +++ b/api_task_custom_field_add.go @@ -23,10 +23,11 @@ import ( // AddTaskCustomField 将自定义字段加入一个资源。目前资源类型支持清单tasklist。一个自定义字段可以加入多个清单中。加入后, 该清单可以展示任务的该字段的值, 同时基于该字段实现筛选, 分组等功能。 // -// 如果自定义字段的设置被更新, 字段加入的所有字段都能收到这个更新, 并进行相应的展示。 +// 如果自定义字段的设置被更新, 字段加入的所有资源都能收到这个更新, 并进行相应的展示。 // 将自定义字段加入一个资源需要该字段和资源的可编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/add +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/add +// new doc: https://open.feishu.cn/document/task-v2/custom_field/add func (r *TaskService) AddTaskCustomField(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) { if r.cli.mock.mockTaskAddTaskCustomField != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskCustomField mock enable") @@ -61,13 +62,14 @@ func (r *Mock) UnMockTaskAddTaskCustomField() { // AddTaskCustomFieldReq ... type AddTaskCustomFieldReq struct { - CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到, 示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" - ResourceType string `json:"resource_type,omitempty"` // 要将自定义字段添加到一个资源的资源类型。目前只支持tasklist, 示例值: "tasklist" - ResourceID string `json:"resource_id,omitempty"` // 要将自定义字段添加到的资源id, 目前只支持tasklist_guid, 示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到。示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" + ResourceType string `json:"resource_type,omitempty"` // 要将自定义字段添加到一个资源的资源类型。目前只支持tasklist示例值: "tasklist" + ResourceID string `json:"resource_id,omitempty"` // 要将自定义字段添加到的资源id, 目前只支持tasklist_guid示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" } // AddTaskCustomFieldResp ... -type AddTaskCustomFieldResp struct{} +type AddTaskCustomFieldResp struct { +} // addTaskCustomFieldResp ... type addTaskCustomFieldResp struct { diff --git a/api_task_custom_field_create.go b/api_task_custom_field_create.go new file mode 100644 index 00000000..7972b2f1 --- /dev/null +++ b/api_task_custom_field_create.go @@ -0,0 +1,243 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateTaskCustomField 创建一个自定义字段, 并将其加入一个资源上(目前资源只支持清单)。创建自定义字段必须提供字段名称, 类型和相应类型的设置。 +// +// 目前任务自定义字段支持数字(number), 成员(member), 日期(datetime), 单选(single_select), 多选(multi_select), 文本(text)几种类型。分别使用"number_setting", "member_setting", "datetime_setting", "single_select_setting", "multi_select_setting", "text_setting"来设置。 +// 例如创建一个数字类型的自定义字段, 并添加到guid为"ec5ed63d-a4a9-44de-a935-7ba243471c0a"的清单, 可以这样发请求。 +// ``` +// POST /task/v2/custom_fields +// { +// "name": "价格", +// "type": "number", +// "resource_type": "tasklist", +// "resource_id": "ec5ed63d-a4a9-44de-a935-7ba243471c0a", +// "number_setting": { +// "format": "cny", +// "decimal_count": 2, +// "separator": "thousand" +// } +// } +// ``` +// 表示创建一个叫做“价格”的自定义字段, 保留两位小数。在界面上显示时采用人民币的格式, 并显示千分位分割符。 +// 类似的, 创建一个单选字段, 可以这样调用接口: +// ``` +// POST /task/v2/custom_fields +// { +// "name": "优先级", +// "type": "single_select", +// "resource_type": "tasklist", +// "resource_id": "ec5ed63d-a4a9-44de-a935-7ba243471c0a", +// "single_select_setting": { +// "options": [ +// { +// "name": "高", +// "color_index": 1 +// }, +// { +// "name": "中", +// "color_index": 11 +// }, +// { +// "name": "低", +// "color_index": 16 +// } +// ] +// } +// } +// ``` +// 表示创建一个叫“优先级”的单选, 包含“高”, “中”, “低”三个选项, 每个选项设置一个颜色值。 +// 在一个资源上创建自定义字段需要该资源的可编辑权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create +// new doc: https://open.feishu.cn/document/task-v2/custom_field/create +func (r *TaskService) CreateTaskCustomField(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) { + if r.cli.mock.mockTaskCreateTaskCustomField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskCustomField mock enable") + return r.cli.mock.mockTaskCreateTaskCustomField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "CreateTaskCustomField", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/task/v2/custom_fields", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(createTaskCustomFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskCreateTaskCustomField mock TaskCreateTaskCustomField method +func (r *Mock) MockTaskCreateTaskCustomField(f func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error)) { + r.mockTaskCreateTaskCustomField = f +} + +// UnMockTaskCreateTaskCustomField un-mock TaskCreateTaskCustomField method +func (r *Mock) UnMockTaskCreateTaskCustomField() { + r.mockTaskCreateTaskCustomField = nil +} + +// CreateTaskCustomFieldReq ... +type CreateTaskCustomFieldReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ResourceType string `json:"resource_type,omitempty"` // 自定义字段要归属的资源类型, 支持"tasklist"示例值: "tasklist"默认值: `tasklist` + ResourceID string `json:"resource_id,omitempty"` // 自定义字段要归属的资源ID, 当`resource_type`为"tasklist"时必须填写清单的GUID。示例值: "ec5ed63d-a4a9-44de-a935-7ba243471c0a" 最大长度: `100` 字符 + Name string `json:"name,omitempty"` // 字段名称, 最大50个字符。示例值: "优先级" + Type string `json:"type,omitempty"` // 自定义字段类型。示例值: "number"可选值有: 数字日期成员单选多选文本 + NumberSetting *CreateTaskCustomFieldReqNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *CreateTaskCustomFieldReqMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *CreateTaskCustomFieldReqDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *CreateTaskCustomFieldReqSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选设置 + MultiSelectSetting *CreateTaskCustomFieldReqMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选设置 + TextSetting interface{} `json:"text_setting,omitempty"` // 文本类型设置(目前文本类型没有可设置项) +} + +// CreateTaskCustomFieldReqDatetimeSetting ... +type CreateTaskCustomFieldReqDatetimeSetting struct { + Format *string `json:"format,omitempty"` // 日期时间格式, 支持以短横分隔的年月日, 例如2023-08-24以斜杠分隔的年月日, 例如2023/08/04以斜杠分隔的月日年, 例如08/24/2023以斜杠分隔的日月年, 例如24/08/2023默认为"yyyy-mm-dd"。注意本设置仅影响App中的时间日期类型字段的字段值的显示格式, 并不会影响openapi输入/输出的字段值的格式。示例值: "yyyy/mm/dd" +} + +// CreateTaskCustomFieldReqMemberSetting ... +type CreateTaskCustomFieldReqMemberSetting struct { + Multi *bool `json:"multi,omitempty"` // 是否支持多选。默认为false。示例值: true默认值: `false` +} + +// CreateTaskCustomFieldReqMultiSelectSetting ... +type CreateTaskCustomFieldReqMultiSelectSetting struct { + Options []*CreateTaskCustomFieldReqMultiSelectSettingOption `json:"options,omitempty"` // 多选选项 长度范围: `0` ~ `100` +} + +// CreateTaskCustomFieldReqMultiSelectSettingOption ... +type CreateTaskCustomFieldReqMultiSelectSettingOption struct { + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符。示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。如果不填写则会随机选一个。示例值: 1 取值范围: `0` ~ `54` + IsHidden *bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在App界面不可见, 也不可以通过oapi将字段值设为该选项。示例值: false +} + +// CreateTaskCustomFieldReqNumberSetting ... +type CreateTaskCustomFieldReqNumberSetting struct { + Format *string `json:"format,omitempty"` // 数字类型的自定义字段的值在App展示的格式。注意本设置仅影响App中的数字类型字段的字段值的显示格式, 并不会影响openapi中输入/输出的字段值的格式。示例值: "normal"可选值有: 常规数字百分比格式人民币格式美元格式自定义符号默认值: `normal` + CustomSymbol *string `json:"custom_symbol,omitempty"` // 当`format`设为"custom"时, 设置具体的自定义符号。注意本设置仅影响App中的数字类型字段的字段值的显示格式, 并不会影响openapi输入/输出的字段值的格式。示例值: "自定义符号" + CustomSymbolPosition *string `json:"custom_symbol_position,omitempty"` // 当`format`设为"custom"时, 自定义符号相对于数字的显示位置。注意本设置仅影响App中的数字类型字段的字段值的显示格式, 并不会影响openapi输入/输出的字段值的格式。示例值: "left"可选值有: 自定义符号显示在数字左边自定义符号显示在数字右边默认值: `right` + Separator *string `json:"separator,omitempty"` // 数字类型自定义字段整数部分的分隔符样式。注意本设置仅影响App中的数字类型字段的字段值的显示格式, 并不会影响openapi输入/输出的字段值的格式。示例值: "thousand"可选值有: 无分隔符千分位分隔符默认值: `none` + DecimalCount *int64 `json:"decimal_count,omitempty"` // 数字类型自定义字段的值保留的小数位数。多余的位数将被四舍五入。默认为0。示例值: 2默认值: `0` 取值范围: `0` ~ `6` +} + +// CreateTaskCustomFieldReqSingleSelectSetting ... +type CreateTaskCustomFieldReqSingleSelectSetting struct { + Options []*CreateTaskCustomFieldReqSingleSelectSettingOption `json:"options,omitempty"` // 单选选项 长度范围: `0` ~ `100` +} + +// CreateTaskCustomFieldReqSingleSelectSettingOption ... +type CreateTaskCustomFieldReqSingleSelectSettingOption struct { + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 取值0~54。如不填写会自动从未使用的颜色索引值中随机选一个。示例值: 1 取值范围: `0` ~ `54` + IsHidden *bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。示例值: false +} + +// CreateTaskCustomFieldResp ... +type CreateTaskCustomFieldResp struct { + CustomField *CreateTaskCustomFieldRespCustomField `json:"custom_field,omitempty"` // 创建的自定义字段 +} + +// CreateTaskCustomFieldRespCustomField ... +type CreateTaskCustomFieldRespCustomField struct { + Guid string `json:"guid,omitempty"` // 自定义字段的GUID + Name string `json:"name,omitempty"` // 自定义字段名称 + Type string `json:"type,omitempty"` // 自定义字段类型 + NumberSetting *CreateTaskCustomFieldRespCustomFieldNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *CreateTaskCustomFieldRespCustomFieldMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *CreateTaskCustomFieldRespCustomFieldDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *CreateTaskCustomFieldRespCustomFieldSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选类型的字段设置 + MultiSelectSetting *CreateTaskCustomFieldRespCustomFieldMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选类型的字段设置 + Creator *CreateTaskCustomFieldRespCustomFieldCreator `json:"creator,omitempty"` // 创建人 + CreatedAt string `json:"created_at,omitempty"` // 自定义字段创建的时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 自定义字段的更新时间戳(ms) + TextSetting interface{} `json:"text_setting,omitempty"` // 文本类型设置(目前文本类型没有可设置项) +} + +// CreateTaskCustomFieldRespCustomFieldCreator ... +type CreateTaskCustomFieldRespCustomFieldCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// CreateTaskCustomFieldRespCustomFieldDatetimeSetting ... +type CreateTaskCustomFieldRespCustomFieldDatetimeSetting struct { + Format string `json:"format,omitempty"` // 日期显示格式 +} + +// CreateTaskCustomFieldRespCustomFieldMemberSetting ... +type CreateTaskCustomFieldRespCustomFieldMemberSetting struct { + Multi bool `json:"multi,omitempty"` // 是否支持多选 +} + +// CreateTaskCustomFieldRespCustomFieldMultiSelectSetting ... +type CreateTaskCustomFieldRespCustomFieldMultiSelectSetting struct { + Options []*CreateTaskCustomFieldRespCustomFieldMultiSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// CreateTaskCustomFieldRespCustomFieldMultiSelectSettingOption ... +type CreateTaskCustomFieldRespCustomFieldMultiSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符。 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// CreateTaskCustomFieldRespCustomFieldNumberSetting ... +type CreateTaskCustomFieldRespCustomFieldNumberSetting struct { + Format string `json:"format,omitempty"` // 数字展示的格式可选值有: 常规数字百分比格式人民币格式美元格式自定义符号 + CustomSymbol string `json:"custom_symbol,omitempty"` // 自定义符号。只有`format`设为custom时才会生效。 + CustomSymbolPosition string `json:"custom_symbol_position,omitempty"` // 自定义符号的位置。默认为right。可选值有: 自定义符号放在数字左边自定义符号放在数字右边 + Separator string `json:"separator,omitempty"` // 分隔符样式可选值有: 无分隔符千分位分隔符 + DecimalCount int64 `json:"decimal_count,omitempty"` // 保留小数位数。输入的数字值的小数位数如果比该设置多, 多余的位数将被四舍五入后舍弃。如果`format`为"percentage", 表示变为百分数之后的小数位数。 +} + +// CreateTaskCustomFieldRespCustomFieldSingleSelectSetting ... +type CreateTaskCustomFieldRespCustomFieldSingleSelectSetting struct { + Options []*CreateTaskCustomFieldRespCustomFieldSingleSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// CreateTaskCustomFieldRespCustomFieldSingleSelectSettingOption ... +type CreateTaskCustomFieldRespCustomFieldSingleSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 取值0~54。如不填写会自动从未使用的颜色索引值中随机选一个。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// createTaskCustomFieldResp ... +type createTaskCustomFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateTaskCustomFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_custom_field_get.go b/api_task_custom_field_get.go new file mode 100644 index 00000000..f7766602 --- /dev/null +++ b/api_task_custom_field_get.go @@ -0,0 +1,147 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTaskCustomField 根据一个自定义字段的GUID, 获取其详细的设置信息。 +// +// 获取自定义字段需要有自定义字段的读取权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/get +// new doc: https://open.feishu.cn/document/task-v2/custom_field/get +func (r *TaskService) GetTaskCustomField(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) { + if r.cli.mock.mockTaskGetTaskCustomField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskCustomField mock enable") + return r.cli.mock.mockTaskGetTaskCustomField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "GetTaskCustomField", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/task/v2/custom_fields/:custom_field_guid", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTaskCustomFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskGetTaskCustomField mock TaskGetTaskCustomField method +func (r *Mock) MockTaskGetTaskCustomField(f func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error)) { + r.mockTaskGetTaskCustomField = f +} + +// UnMockTaskGetTaskCustomField un-mock TaskGetTaskCustomField method +func (r *Mock) UnMockTaskGetTaskCustomField() { + r.mockTaskGetTaskCustomField = nil +} + +// GetTaskCustomFieldReq ... +type GetTaskCustomFieldReq struct { + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到。示例值: "5ffbe0ca-6600-41e0-a634-2b38cbcf13b8" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID +} + +// GetTaskCustomFieldResp ... +type GetTaskCustomFieldResp struct { + CustomField *GetTaskCustomFieldRespCustomField `json:"custom_field,omitempty"` // 获取的自定义字段数据 +} + +// GetTaskCustomFieldRespCustomField ... +type GetTaskCustomFieldRespCustomField struct { + Guid string `json:"guid,omitempty"` // 自定义字段的GUID + Name string `json:"name,omitempty"` // 自定义字段名称 + Type string `json:"type,omitempty"` // 自定义字段类型 + NumberSetting *GetTaskCustomFieldRespCustomFieldNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *GetTaskCustomFieldRespCustomFieldMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *GetTaskCustomFieldRespCustomFieldDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *GetTaskCustomFieldRespCustomFieldSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选类型的字段设置 + MultiSelectSetting *GetTaskCustomFieldRespCustomFieldMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选类型的字段设置 + Creator *GetTaskCustomFieldRespCustomFieldCreator `json:"creator,omitempty"` // 创建人 + CreatedAt string `json:"created_at,omitempty"` // 自定义字段创建的时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 自定义字段的更新时间戳(ms) + TextSetting interface{} `json:"text_setting,omitempty"` // 文本字段配置(目前文本类型没有可设置项) +} + +// GetTaskCustomFieldRespCustomFieldCreator ... +type GetTaskCustomFieldRespCustomFieldCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// GetTaskCustomFieldRespCustomFieldDatetimeSetting ... +type GetTaskCustomFieldRespCustomFieldDatetimeSetting struct { + Format string `json:"format,omitempty"` // 日期显示格式 +} + +// GetTaskCustomFieldRespCustomFieldMemberSetting ... +type GetTaskCustomFieldRespCustomFieldMemberSetting struct { + Multi bool `json:"multi,omitempty"` // 是否支持多选 +} + +// GetTaskCustomFieldRespCustomFieldMultiSelectSetting ... +type GetTaskCustomFieldRespCustomFieldMultiSelectSetting struct { + Options []*GetTaskCustomFieldRespCustomFieldMultiSelectSettingOption `json:"options,omitempty"` // 多选选项。 +} + +// GetTaskCustomFieldRespCustomFieldMultiSelectSettingOption ... +type GetTaskCustomFieldRespCustomFieldMultiSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID。 + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。如果不填写则会随机选一个。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// GetTaskCustomFieldRespCustomFieldNumberSetting ... +type GetTaskCustomFieldRespCustomFieldNumberSetting struct { + Format string `json:"format,omitempty"` // 数字展示的格式可选值有: 常规数字格式百分比格式人民币格式美元格式自定义符号 + CustomSymbol string `json:"custom_symbol,omitempty"` // 自定义符号 + CustomSymbolPosition string `json:"custom_symbol_position,omitempty"` // 自定义符号的显示位置。可选值有: 自定义符号放在数字左边自定义符号放在数字右边 + Separator string `json:"separator,omitempty"` // 分隔符样式可选值有: 无分隔符千分位分隔符 + DecimalCount int64 `json:"decimal_count,omitempty"` // 保留小数位数。输入的数字值的小数位数如果比该设置多, 多余的位数将被四舍五入后舍弃。如果`format`为"percentage", 表示变为百分数之后的小数位数。 +} + +// GetTaskCustomFieldRespCustomFieldSingleSelectSetting ... +type GetTaskCustomFieldRespCustomFieldSingleSelectSetting struct { + Options []*GetTaskCustomFieldRespCustomFieldSingleSelectSettingOption `json:"options,omitempty"` // 单选选项 +} + +// GetTaskCustomFieldRespCustomFieldSingleSelectSettingOption ... +type GetTaskCustomFieldRespCustomFieldSingleSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID。 + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。如果不填写则会随机选一个。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// getTaskCustomFieldResp ... +type getTaskCustomFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTaskCustomFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_custom_field_list.go b/api_task_custom_field_list.go new file mode 100644 index 00000000..749f364d --- /dev/null +++ b/api_task_custom_field_list.go @@ -0,0 +1,153 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListTaskCustomField 列取用户可访问的自定义字段列表。如果不提供`resource_type`和`resource_id`参数, 则返回用户可访问的所有自定义字段。 +// +// 如果提供`resource_type`和`resource_id`, 则返回该资源下的自定义字段。目前`resource_type`仅支持"tasklist", 此时`resource_id`应为一个清单的tasklist_guid。 +// 该接口支持分页。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list +// new doc: https://open.feishu.cn/document/task-v2/custom_field/list +func (r *TaskService) ListTaskCustomField(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) { + if r.cli.mock.mockTaskListTaskCustomField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#ListTaskCustomField mock enable") + return r.cli.mock.mockTaskListTaskCustomField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "ListTaskCustomField", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/task/v2/custom_fields", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listTaskCustomFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskListTaskCustomField mock TaskListTaskCustomField method +func (r *Mock) MockTaskListTaskCustomField(f func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error)) { + r.mockTaskListTaskCustomField = f +} + +// UnMockTaskListTaskCustomField un-mock TaskListTaskCustomField method +func (r *Mock) UnMockTaskListTaskCustomField() { + r.mockTaskListTaskCustomField = nil +} + +// ListTaskCustomFieldReq ... +type ListTaskCustomFieldReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + ResourceType *string `query:"resource_type" json:"-"` // 资源类型, 如提供表示仅查询特定资源下的自定义字段。目前只支持tasklist。示例值: tasklist + ResourceID *string `query:"resource_id" json:"-"` // 要查询自定义字段的归属resource_id示例值: 5ffbe0ca-6600-41e0-a634-2b38cbcf13b8 +} + +// ListTaskCustomFieldResp ... +type ListTaskCustomFieldResp struct { + Items []*ListTaskCustomFieldRespItem `json:"items,omitempty"` // 返回的自定义字段列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListTaskCustomFieldRespItem ... +type ListTaskCustomFieldRespItem struct { + Guid string `json:"guid,omitempty"` // 自定义字段的GUID + Name string `json:"name,omitempty"` // 自定义字段名称 + Type string `json:"type,omitempty"` // 自定义字段类型 + NumberSetting *ListTaskCustomFieldRespItemNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *ListTaskCustomFieldRespItemMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *ListTaskCustomFieldRespItemDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *ListTaskCustomFieldRespItemSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选类型的字段设置 + MultiSelectSetting *ListTaskCustomFieldRespItemMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选类型的字段设置 + Creator *ListTaskCustomFieldRespItemCreator `json:"creator,omitempty"` // 创建人 + CreatedAt string `json:"created_at,omitempty"` // 自定义字段创建的时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 自定义字段的更新时间戳(ms) + TextSetting interface{} `json:"text_setting,omitempty"` // 文本字段配置 +} + +// ListTaskCustomFieldRespItemCreator ... +type ListTaskCustomFieldRespItemCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// ListTaskCustomFieldRespItemDatetimeSetting ... +type ListTaskCustomFieldRespItemDatetimeSetting struct { + Format string `json:"format,omitempty"` // 日期显示格式 +} + +// ListTaskCustomFieldRespItemMemberSetting ... +type ListTaskCustomFieldRespItemMemberSetting struct { + Multi bool `json:"multi,omitempty"` // 是否支持多选 +} + +// ListTaskCustomFieldRespItemMultiSelectSetting ... +type ListTaskCustomFieldRespItemMultiSelectSetting struct { + Options []*ListTaskCustomFieldRespItemMultiSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// ListTaskCustomFieldRespItemMultiSelectSettingOption ... +type ListTaskCustomFieldRespItemMultiSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。如果不填写则会随机选一个。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// ListTaskCustomFieldRespItemNumberSetting ... +type ListTaskCustomFieldRespItemNumberSetting struct { + Format string `json:"format,omitempty"` // 数字展示的格式可选值有: 常规数字百分比格式人民币格式美元格式自定义符号 + CustomSymbol string `json:"custom_symbol,omitempty"` // 自定义符号。只有`format`设为custom时才会生效。 + CustomSymbolPosition string `json:"custom_symbol_position,omitempty"` // 自定义符号显示的位置。可选值有: 自定义符号放在数字左边自定义符号放在数字右边 + Separator string `json:"separator,omitempty"` // 分隔符样式可选值有: 无分隔符千分位分隔符 + DecimalCount int64 `json:"decimal_count,omitempty"` // 保留小数位数。输入的数字值的小数位数如果比该设置多, 多余的位数将被四舍五入后舍弃。如果`format`为"percentage", 表示变为百分数之后的小数位数。 +} + +// ListTaskCustomFieldRespItemSingleSelectSetting ... +type ListTaskCustomFieldRespItemSingleSelectSetting struct { + Options []*ListTaskCustomFieldRespItemSingleSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// ListTaskCustomFieldRespItemSingleSelectSettingOption ... +type ListTaskCustomFieldRespItemSingleSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 不能为空, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。如果不填写则会随机选一个。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// listTaskCustomFieldResp ... +type listTaskCustomFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListTaskCustomFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_custom_field_option_create.go b/api_task_custom_field_option_create.go index 8a108456..252742fc 100644 --- a/api_task_custom_field_option_create.go +++ b/api_task_custom_field_option_create.go @@ -26,7 +26,8 @@ import ( // 新添加的选项如果不隐藏, 其名字不能和已存在的不隐藏选项的名字重复。 // 需要对自定义字段的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field-option/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field-option/create +// new doc: https://open.feishu.cn/document/task-v2/custom_field-option/create func (r *TaskService) CreateTaskCustomFieldOption(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskCustomFieldOption != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskCustomFieldOption mock enable") @@ -61,12 +62,12 @@ func (r *Mock) UnMockTaskCreateTaskCustomFieldOption() { // CreateTaskCustomFieldOptionReq ... type CreateTaskCustomFieldOptionReq struct { - CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 要添加选项的自定义字段GUID, 该字段必须是, 示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" - Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符, 示例值: "高优" - ColorIndex *int64 `json:"color_index,omitempty"` // 颜色索引值, 支持0~54中的一个数字。如果不填写, 则会随机选一个, 示例值: 10, 取值范围: `0` ~ `54` - InsertBefore *string `json:"insert_before,omitempty"` // 要放到某个option之前的option_guid, 示例值: "2bd905f8-ef38-408b-aa1f-2b2ad33b2913" - InsertAfter *string `json:"insert_after,omitempty"` // 要放到某个option之后的option_guid, 示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" - IsHidden *bool `json:"is_hidden,omitempty"` // 是否隐藏, 示例值: false, 默认值: `false` + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 要添加选项的自定义字段GUID, 该字段必须是示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" + Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符。示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 颜色索引值, 支持0~54中的一个数字。如果不填写, 则会随机选一个。示例值: 10 取值范围: `0` ~ `54` + InsertBefore *string `json:"insert_before,omitempty"` // 要放到某个option之前的option_guid示例值: "2bd905f8-ef38-408b-aa1f-2b2ad33b2913" + InsertAfter *string `json:"insert_after,omitempty"` // 要放到某个option之后的option_guid示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" + IsHidden *bool `json:"is_hidden,omitempty"` // 是否隐藏示例值: false默认值: `false` } // CreateTaskCustomFieldOptionResp ... diff --git a/api_task_custom_field_option_update.go b/api_task_custom_field_option_update.go index 19050605..8339b488 100644 --- a/api_task_custom_field_option_update.go +++ b/api_task_custom_field_option_update.go @@ -31,7 +31,8 @@ import ( // * `insert_after`: 将当前option放到同字段某个option之后的那个option_guid。 // 更新选项需要自定义字段的编辑权限 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field-option/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field-option/patch +// new doc: https://open.feishu.cn/document/task-v2/custom_field-option/patch func (r *TaskService) UpdateTaskCustomFieldOption(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) { if r.cli.mock.mockTaskUpdateTaskCustomFieldOption != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskCustomFieldOption mock enable") @@ -66,19 +67,19 @@ func (r *Mock) UnMockTaskUpdateTaskCustomFieldOption() { // UpdateTaskCustomFieldOptionReq ... type UpdateTaskCustomFieldOptionReq struct { - CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 要更新的选项的自定义字段GUID, 示例值: "ec5ed63d-a4a9-44de-a935-7ba243471c0a" - OptionGuid string `path:"option_guid" json:"-"` // 要更新的选项的GUID, 示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 要更新的选项的自定义字段GUID示例值: "ec5ed63d-a4a9-44de-a935-7ba243471c0a" + OptionGuid string `path:"option_guid" json:"-"` // 要更新的选项的GUID示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" Option *UpdateTaskCustomFieldOptionReqOption `json:"option,omitempty"` // 要更新的option数据 - UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持, * `name`: 选项名称, * `color_index`: 选项的颜色索引值, * `is_hidden`: 是否从界面上隐藏, * `insert_before`: 将当前option放到同字段某个option之前, * `insert_after`: 将当前option放到同字段某个option之后, 示例值: ["name"], 长度范围: `1` ~ `20` + UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持* `name`: 选项名称* `color_index`: 选项的颜色索引值* `is_hidden`: 是否从界面上隐藏* `insert_before`: 将当前option放到同字段某个option之前。* `insert_after`: 将当前option放到同字段某个option之后。示例值: ["name"] 长度范围: `1` ~ `20` } // UpdateTaskCustomFieldOptionReqOption ... type UpdateTaskCustomFieldOptionReqOption struct { - Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符, 示例值: "高优" - ColorIndex *int64 `json:"color_index,omitempty"` // 颜色索引值, 支持0~54中的一个数字, 示例值: 10, 取值范围: `0` ~ `54` - InsertBefore *string `json:"insert_before,omitempty"` // 要放到某个option之前的option_guid, 示例值: "2bd905f8-ef38-408b-aa1f-2b2ad33b2913" - InsertAfter *string `json:"insert_after,omitempty"` // 要放到某个option之后的option_guid, 示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" - IsHidden *bool `json:"is_hidden,omitempty"` // 是否隐藏, 示例值: false, 默认值: `false` + Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 颜色索引值, 支持0~54中的一个数字。示例值: 10 取值范围: `0` ~ `54` + InsertBefore *string `json:"insert_before,omitempty"` // 要放到某个option之前的option_guid示例值: "2bd905f8-ef38-408b-aa1f-2b2ad33b2913" + InsertAfter *string `json:"insert_after,omitempty"` // 要放到某个option之后的option_guid示例值: "b13adf3c-cad6-4e02-8929-550c112b5633" + IsHidden *bool `json:"is_hidden,omitempty"` // 是否隐藏示例值: false默认值: `false` } // UpdateTaskCustomFieldOptionResp ... diff --git a/api_task_custom_field_remove.go b/api_task_custom_field_remove.go index cec577c9..30bdc606 100644 --- a/api_task_custom_field_remove.go +++ b/api_task_custom_field_remove.go @@ -27,7 +27,8 @@ import ( // 注意自定义字段是通过清单来实现授权的, 如果将自定义字段从所有关联的清单中移除, 就意味着任何调用身份都无法再访问改自定义字段。 // 需要资源的可编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/remove +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/remove +// new doc: https://open.feishu.cn/document/task-v2/custom_field/remove func (r *TaskService) RemoveTaskCustomField(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskCustomField != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskCustomField mock enable") @@ -62,13 +63,14 @@ func (r *Mock) UnMockTaskRemoveTaskCustomField() { // RemoveTaskCustomFieldReq ... type RemoveTaskCustomFieldReq struct { - CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到, 示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" - ResourceType string `json:"resource_type,omitempty"` // 要从某个资源移除自定义字段的资源类型, 目前只支持清单, 示例值: "tasklist" - ResourceID string `json:"resource_id,omitempty"` // 要从某个资源移除自定义字段的资源id, `resource_type`为"tasklist"时, 需填写清单的GUID, 示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到。示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" + ResourceType string `json:"resource_type,omitempty"` // 要从某个资源移除自定义字段的资源类型, 目前只支持清单。示例值: "tasklist" + ResourceID string `json:"resource_id,omitempty"` // 要从某个资源移除自定义字段的资源id, `resource_type`为"tasklist"时, 需填写清单的GUID。示例值: "0110a4bd-f24b-4a93-8c1a-1732b94f9593" } // RemoveTaskCustomFieldResp ... -type RemoveTaskCustomFieldResp struct{} +type RemoveTaskCustomFieldResp struct { +} // removeTaskCustomFieldResp ... type removeTaskCustomFieldResp struct { diff --git a/api_task_custom_field_update.go b/api_task_custom_field_update.go new file mode 100644 index 00000000..bbbc7736 --- /dev/null +++ b/api_task_custom_field_update.go @@ -0,0 +1,211 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// UpdateTaskCustomField 更新一个自定义字段的名称和设定。更新时, 将`update_fields`字段中填写所有要修改的任务字段名, 同时在`custom_field`字段中填写要修改的字段的新值即可。自定义字段不允许修改类型, 只能根据类型修改其设置。 +// +// `update_fields`支持更新的字段包括: +// * `name`: 自定义字段名称 +// * `number_setting` : 数字类型设置(当且仅当要更新的自定义字段类型是数字时) +// * `member_setting` : 人员类型设置(当且仅当要更新的自定义字段类型是人员时) +// * `datetime_setting` : 日期类型设置 (当且仅当要更新的自定义字段类型是日期时) +// * `single_select_setting`: 单选类型设置 (当且仅当要更新的自定义字段类型是单选时) +// * `multi_select_setting`: 多选类型设置 (当且仅当要更新的自定义字段类型是多选时) +// * `text_setting`: 文本类型设置(目前文本类型没有可设置项) +// 当更改某个设置时, 如果不填写一个字段, 表示不覆盖原有的设定。比如, 对于一个数字, 原有的setting是: +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/patch +// new doc: https://open.feishu.cn/document/task-v2/custom_field/patch +func (r *TaskService) UpdateTaskCustomField(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) { + if r.cli.mock.mockTaskUpdateTaskCustomField != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskCustomField mock enable") + return r.cli.mock.mockTaskUpdateTaskCustomField(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "UpdateTaskCustomField", + Method: "PATCH", + URL: r.cli.openBaseURL + "/open-apis/task/v2/custom_fields/:custom_field_guid", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(updateTaskCustomFieldResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskUpdateTaskCustomField mock TaskUpdateTaskCustomField method +func (r *Mock) MockTaskUpdateTaskCustomField(f func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error)) { + r.mockTaskUpdateTaskCustomField = f +} + +// UnMockTaskUpdateTaskCustomField un-mock TaskUpdateTaskCustomField method +func (r *Mock) UnMockTaskUpdateTaskCustomField() { + r.mockTaskUpdateTaskCustomField = nil +} + +// UpdateTaskCustomFieldReq ... +type UpdateTaskCustomFieldReq struct { + CustomFieldGuid string `path:"custom_field_guid" json:"-"` // 自定义字段GUID。自定义字段GUID。可以通过[创建自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/create)接口创建, 或者通过[列取自定义字段](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/custom_field/list)接口查询得到。示例值: "5ffbe0ca-6600-41e0-a634-2b38cbcf13b8" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + CustomField *UpdateTaskCustomFieldReqCustomField `json:"custom_field,omitempty"` // 要修改的自定义字段数据 + UpdateFields []string `json:"update_fields,omitempty"` // 要修改的自定义字段类型, 支持: * `name`: 自定义字段名称。* `number_setting` : 数字类型设置(当且仅当要更新的自定义字段类型是数字时)* `member_setting` : 人员类型设置(当且仅当要更新的自定义字段类型是人员时)* `datetime_setting` : 日期类型设置 (当且仅当要更新的自定义字段类型是日期时)* `single_select_setting`: 单选类型设置 (当且仅当要更新的自定义字段类型是单选时)* `multi_select_setting`: 多选类型设置 (当且仅当要更新的自定义字段类型是多选时)* `text_setting`: 文本类型设置(当前无可设置项)示例值: ["name"] 长度范围: `1` ~ `20` +} + +// UpdateTaskCustomFieldReqCustomField ... +type UpdateTaskCustomFieldReqCustomField struct { + Name *string `json:"name,omitempty"` // 字段名称, 支持最大50个字符。示例值: "优先级" + NumberSetting *UpdateTaskCustomFieldReqCustomFieldNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *UpdateTaskCustomFieldReqCustomFieldMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *UpdateTaskCustomFieldReqCustomFieldDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *UpdateTaskCustomFieldReqCustomFieldSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选设置 + MultiSelectSetting *UpdateTaskCustomFieldReqCustomFieldMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选设置 + TextSetting interface{} `json:"text_setting,omitempty"` // 文本类型设置 +} + +// UpdateTaskCustomFieldReqCustomFieldDatetimeSetting ... +type UpdateTaskCustomFieldReqCustomFieldDatetimeSetting struct { + Format *string `json:"format,omitempty"` // 日期显示格式。支持以短横分隔的年月日, 例如2023-08-24以斜杠分隔的年月日, 例如2023/08/04以斜杠分隔的月日年, 例如08/24/2023以斜杠分隔的日月年, 例如24/08/2023示例值: "yyyy/mm/dd" +} + +// UpdateTaskCustomFieldReqCustomFieldMemberSetting ... +type UpdateTaskCustomFieldReqCustomFieldMemberSetting struct { + Multi *bool `json:"multi,omitempty"` // 是否支持多选示例值: true默认值: `false` +} + +// UpdateTaskCustomFieldReqCustomFieldMultiSelectSetting ... +type UpdateTaskCustomFieldReqCustomFieldMultiSelectSetting struct { + Options []*UpdateTaskCustomFieldReqCustomFieldMultiSelectSettingOption `json:"options,omitempty"` // 多选选项 长度范围: `0` ~ `100` +} + +// UpdateTaskCustomFieldReqCustomFieldMultiSelectSettingOption ... +type UpdateTaskCustomFieldReqCustomFieldMultiSelectSettingOption struct { + Guid *string `json:"guid,omitempty"` // 选项的GUID。如果填写表示更新;不填写表示新建。示例值: "4216f79b-3fda-4dc6-a0c4-a16022e47152" + Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。示例值: 1 取值范围: `0` ~ `54` +} + +// UpdateTaskCustomFieldReqCustomFieldNumberSetting ... +type UpdateTaskCustomFieldReqCustomFieldNumberSetting struct { + Format *string `json:"format,omitempty"` // 数字展示的格式示例值: "normal"可选值有: 常规数字百分比格式人民币格式美元格式自定义符号默认值: `normal` + CustomSymbol *string `json:"custom_symbol,omitempty"` // 自定义符号, 支持最大4个字符。只有`format`设为"custom"时才会生效。示例值: "€" + CustomSymbolPosition *string `json:"custom_symbol_position,omitempty"` // 自定义符号显示的位置。示例值: "left"可选值有: 自定义符号放在数字左边自定义符号放在数字右边默认值: `right` + Separator *string `json:"separator,omitempty"` // 分隔符样式示例值: "thousand"可选值有: 无分隔符千分位分隔符默认值: `none` + DecimalCount *int64 `json:"decimal_count,omitempty"` // 保留小数位数。输入的数字值的小数位数如果比该设置多, 多余的位数将被四舍五入后舍弃。如果`format`为"percentage", 表示变为百分数之后的小数位数。示例值: 2默认值: `0` 取值范围: `0` ~ `6` +} + +// UpdateTaskCustomFieldReqCustomFieldSingleSelectSetting ... +type UpdateTaskCustomFieldReqCustomFieldSingleSelectSetting struct { + Options []*UpdateTaskCustomFieldReqCustomFieldSingleSelectSettingOption `json:"options,omitempty"` // 单选选项 长度范围: `0` ~ `100` +} + +// UpdateTaskCustomFieldReqCustomFieldSingleSelectSettingOption ... +type UpdateTaskCustomFieldReqCustomFieldSingleSelectSettingOption struct { + Guid *string `json:"guid,omitempty"` // 选项的GUID。如果填写表示更新;不填写表示新建。示例值: "4216f79b-3fda-4dc6-a0c4-a16022e47152" + Name *string `json:"name,omitempty"` // 选项名称, 最大50个字符示例值: "高优" + ColorIndex *int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。示例值: 1 取值范围: `0` ~ `54` +} + +// UpdateTaskCustomFieldResp ... +type UpdateTaskCustomFieldResp struct { + CustomField *UpdateTaskCustomFieldRespCustomField `json:"custom_field,omitempty"` // 修改后的自定义字段设置 +} + +// UpdateTaskCustomFieldRespCustomField ... +type UpdateTaskCustomFieldRespCustomField struct { + Guid string `json:"guid,omitempty"` // 自定义字段的GUID + Name string `json:"name,omitempty"` // 自定义字段名称 + Type string `json:"type,omitempty"` // 自定义字段类型 + NumberSetting *UpdateTaskCustomFieldRespCustomFieldNumberSetting `json:"number_setting,omitempty"` // 数字类型的字段设置 + MemberSetting *UpdateTaskCustomFieldRespCustomFieldMemberSetting `json:"member_setting,omitempty"` // 人员类型的字段设置 + DatetimeSetting *UpdateTaskCustomFieldRespCustomFieldDatetimeSetting `json:"datetime_setting,omitempty"` // 时间日期类型的字段设置 + SingleSelectSetting *UpdateTaskCustomFieldRespCustomFieldSingleSelectSetting `json:"single_select_setting,omitempty"` // 单选类型的字段设置 + MultiSelectSetting *UpdateTaskCustomFieldRespCustomFieldMultiSelectSetting `json:"multi_select_setting,omitempty"` // 多选类型的字段设置 + Creator *UpdateTaskCustomFieldRespCustomFieldCreator `json:"creator,omitempty"` // 创建人 + CreatedAt string `json:"created_at,omitempty"` // 自定义字段创建的时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 自定义字段的更新时间戳(ms) + TextSetting interface{} `json:"text_setting,omitempty"` // 文本类型的字段设置 +} + +// UpdateTaskCustomFieldRespCustomFieldCreator ... +type UpdateTaskCustomFieldRespCustomFieldCreator struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 +} + +// UpdateTaskCustomFieldRespCustomFieldDatetimeSetting ... +type UpdateTaskCustomFieldRespCustomFieldDatetimeSetting struct { + Format string `json:"format,omitempty"` // 日期显示格式。支持以短横分隔的年月日, 例如2023-08-24以斜杠分隔的年月日, 例如2023/08/04以斜杠分隔的月日年, 例如08/24/2023以斜杠分隔的日月年, 例如24/08/2023 +} + +// UpdateTaskCustomFieldRespCustomFieldMemberSetting ... +type UpdateTaskCustomFieldRespCustomFieldMemberSetting struct { + Multi bool `json:"multi,omitempty"` // 是否支持多选 +} + +// UpdateTaskCustomFieldRespCustomFieldMultiSelectSetting ... +type UpdateTaskCustomFieldRespCustomFieldMultiSelectSetting struct { + Options []*UpdateTaskCustomFieldRespCustomFieldMultiSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// UpdateTaskCustomFieldRespCustomFieldMultiSelectSettingOption ... +type UpdateTaskCustomFieldRespCustomFieldMultiSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// UpdateTaskCustomFieldRespCustomFieldNumberSetting ... +type UpdateTaskCustomFieldRespCustomFieldNumberSetting struct { + Format string `json:"format,omitempty"` // 数字展示的格式可选值有: 常规数字百分比格式人民币格式美元格式自定义符号 + CustomSymbol string `json:"custom_symbol,omitempty"` // 自定义符号。只有`format`设为custom时才会生效。 + CustomSymbolPosition string `json:"custom_symbol_position,omitempty"` // 自定义符号显示的位置。可选值有: 自定义符号放在数字左边自定义符号放在数字右边 + Separator string `json:"separator,omitempty"` // 分隔符样式可选值有: 无分隔符千分位分隔符 + DecimalCount int64 `json:"decimal_count,omitempty"` // 保留小数位数。输入的数字值的小数位数如果比该设置多, 多余的位数将被四舍五入后舍弃。如果`format`为"percentage", 表示变为百分数之后的小数位数。 +} + +// UpdateTaskCustomFieldRespCustomFieldSingleSelectSetting ... +type UpdateTaskCustomFieldRespCustomFieldSingleSelectSetting struct { + Options []*UpdateTaskCustomFieldRespCustomFieldSingleSelectSettingOption `json:"options,omitempty"` // 选项 +} + +// UpdateTaskCustomFieldRespCustomFieldSingleSelectSettingOption ... +type UpdateTaskCustomFieldRespCustomFieldSingleSelectSettingOption struct { + Guid string `json:"guid,omitempty"` // 选项的GUID + Name string `json:"name,omitempty"` // 选项名称, 最大50个字符 + ColorIndex int64 `json:"color_index,omitempty"` // 选项的颜色索引值, 可以是0~54中的一个数字。 + IsHidden bool `json:"is_hidden,omitempty"` // 选项是否隐藏。隐藏后的选项在界面不可见, 也不可以再通过openapi将字段值设为该选项。 +} + +// updateTaskCustomFieldResp ... +type updateTaskCustomFieldResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateTaskCustomFieldResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_dependency_remove.go b/api_task_dependency_remove.go index e88884a4..5545e94a 100644 --- a/api_task_dependency_remove.go +++ b/api_task_dependency_remove.go @@ -26,7 +26,8 @@ import ( // 注意, 如果要移除的依赖非当前任务的依赖, 会被自动忽略。接口会返回成功。 // 移除任务依赖时, 需要当前任务的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_dependencies +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_dependencies +// new doc: https://open.feishu.cn/document/task-v2/task/remove_dependencies func (r *TaskService) RemoveTaskDependency(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskDependency != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskDependency mock enable") @@ -61,13 +62,13 @@ func (r *Mock) UnMockTaskRemoveTaskDependency() { // RemoveTaskDependencyReq ... type RemoveTaskDependencyReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要移除依赖的任务GUID, 示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" - Dependencies []*RemoveTaskDependencyReqDependencie `json:"dependencies,omitempty"` // 要移除的依赖, 长度范围: `1` ~ `50` + TaskGuid string `path:"task_guid" json:"-"` // 要移除依赖的任务GUID示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" + Dependencies []*RemoveTaskDependencyReqDependencie `json:"dependencies,omitempty"` // 要移除的依赖 长度范围: `1` ~ `50` } // RemoveTaskDependencyReqDependencie ... type RemoveTaskDependencyReqDependencie struct { - TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID, 示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" + TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID示例值: "93b7bd05-35e6-4371-b3c9-6b7cbd7100c0" } // RemoveTaskDependencyResp ... @@ -77,7 +78,7 @@ type RemoveTaskDependencyResp struct { // RemoveTaskDependencyRespDependencie ... type RemoveTaskDependencyRespDependencie struct { - Type string `json:"type,omitempty"` // 依赖类型, 可选值有: prev: 前置依赖, next: 后置依赖 + Type string `json:"type,omitempty"` // 依赖类型可选值有: 前置依赖后置依赖 TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID } diff --git a/api_task_follower_create.go b/api_task_follower_create.go index 5d396f85..8921cbca 100644 --- a/api_task_follower_create.go +++ b/api_task_follower_create.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/create // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-follower/create -// -// Deprecated func (r *TaskService) CreateTaskFollower(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskFollower != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskFollower mock enable") diff --git a/api_task_follower_delete.go b/api_task_follower_delete.go index 95a25ee6..d1c8f4e5 100644 --- a/api_task_follower_delete.go +++ b/api_task_follower_delete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/delete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-follower/delete -// -// Deprecated func (r *TaskService) DeleteTaskFollower(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskFollower != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskFollower mock enable") @@ -67,7 +65,8 @@ type DeleteTaskFollowerReq struct { } // DeleteTaskFollowerResp ... -type DeleteTaskFollowerResp struct{} +type DeleteTaskFollowerResp struct { +} // deleteTaskFollowerResp ... type deleteTaskFollowerResp struct { diff --git a/api_task_follower_delete_batch.go b/api_task_follower_delete_batch.go index 594859d3..bf918833 100644 --- a/api_task_follower_delete_batch.go +++ b/api_task_follower_delete_batch.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/batch_delete_follower // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-follower/batch_delete_follower -// -// Deprecated func (r *TaskService) BatchDeleteTaskFollower(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) { if r.cli.mock.mockTaskBatchDeleteTaskFollower != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#BatchDeleteTaskFollower mock enable") diff --git a/api_task_follower_list.go b/api_task_follower_list.go index 596e3b47..f2648188 100644 --- a/api_task_follower_list.go +++ b/api_task_follower_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/list // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-follower/list -// -// Deprecated func (r *TaskService) GetTaskFollowerList(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskFollowerList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskFollowerList mock enable") diff --git a/api_task_member_add.go b/api_task_member_add.go index 1d2193e6..18399331 100644 --- a/api_task_member_add.go +++ b/api_task_member_add.go @@ -29,7 +29,8 @@ import ( // * 如果要添加的成员已经在任务中, 则自动被忽略。 // 添加任务成员需要任务的可编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_members +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_members +// new doc: https://open.feishu.cn/document/task-v2/task/add_members func (r *TaskService) AddTaskMember(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) { if r.cli.mock.mockTaskAddTaskMember != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskMember mock enable") @@ -64,17 +65,18 @@ func (r *Mock) UnMockTaskAddTaskMember() { // AddTaskMemberReq ... type AddTaskMemberReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要添加负责人的任务全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + TaskGuid string `path:"task_guid" json:"-"` // 要添加负责人的任务全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` Members []*AddTaskMemberReqMember `json:"members,omitempty"` // 要添加的members列表, 单请求支持最大50个成员(去重后)。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节。 - ClientToken *string `json:"client_token,omitempty"` // 幂等token, 如果提供则实现幂等行为。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 幂等调用 ”章节, 示例值: "6d99f59c-4d7d-4452-98d6-3d0556393cf6", 长度范围: `10` ~ `100` 字符 + ClientToken *string `json:"client_token,omitempty"` // 幂等token, 如果提供则实现幂等行为。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 幂等调用 ”章节。示例值: "6d99f59c-4d7d-4452-98d6-3d0556393cf6" 长度范围: `10` ~ `100` 字符 } // AddTaskMemberReqMember ... type AddTaskMemberReqMember struct { - ID string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员类型, 示例值: "user", 默认值: `user` - Role string `json:"role,omitempty"` // 成员的角色, 支持"assignee"或"follower", 示例值: "assignee", 最大长度: `20` 字符 + ID string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员类型, 可选值* user* app示例值: "user"默认值: `user` + Role string `json:"role,omitempty"` // 成员的角色, 可选值* assignee* follower示例值: "assignee" 最大长度: `20` 字符 + Name *string `json:"name,omitempty"` // 成员名称示例值: "张明德(明德)" } // AddTaskMemberResp ... @@ -84,30 +86,40 @@ type AddTaskMemberResp struct { // AddTaskMemberRespTask ... type AddTaskMemberRespTask struct { - Guid string `json:"guid,omitempty"` // 任务guid, 任务的唯一ID - Summary string `json:"summary,omitempty"` // 任务标题 - Description string `json:"description,omitempty"` // 任务备注 - Due *AddTaskMemberRespTaskDue `json:"due,omitempty"` // 任务截止时间 - Reminders []*AddTaskMemberRespTaskReminder `json:"reminders,omitempty"` // 任务的提醒配置列表。目前每个任务最多有1个。 - Creator *AddTaskMemberRespTaskCreator `json:"creator,omitempty"` // 任务创建者 - Members []*AddTaskMemberRespTaskMember `json:"members,omitempty"` // 任务成员列表 - CompletedAt string `json:"completed_at,omitempty"` // 任务完成的时间戳(ms) - Attachments []*AddTaskMemberRespTaskAttachment `json:"attachments,omitempty"` // 任务的附件列表 - Origin *AddTaskMemberRespTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息。创建是设置后就不可更改。 - Extra string `json:"extra,omitempty"` // 任务附带的自定义数据。 - Tasklists []*AddTaskMemberRespTaskTasklist `json:"tasklists,omitempty"` // 任务所属清单的名字。调用者只能看到有权限访问的清单的列表。 - RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 - ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid - Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 - CustomComplete *AddTaskMemberRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 - TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 - CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) - UpdatedAt string `json:"updated_at,omitempty"` // 任务最后一次更新的时间戳(ms) - Status string `json:"status,omitempty"` // 任务的状态, 支持"todo"和"done"两种状态 - URL string `json:"url,omitempty"` // 任务的分享链接 - Start *AddTaskMemberRespTaskStart `json:"start,omitempty"` // 任务的开始时间 - SubtaskCount int64 `json:"subtask_count,omitempty"` // 该任务的子任务的个数。 + Guid string `json:"guid,omitempty"` // 任务guid, 任务的唯一ID + Summary string `json:"summary,omitempty"` // 任务标题 + Description string `json:"description,omitempty"` // 任务备注 + Due *AddTaskMemberRespTaskDue `json:"due,omitempty"` // 任务截止时间 + Reminders []*AddTaskMemberRespTaskReminder `json:"reminders,omitempty"` // 任务的提醒配置列表。目前每个任务最多有1个。 + Creator *AddTaskMemberRespTaskCreator `json:"creator,omitempty"` // 任务创建者 + Members []*AddTaskMemberRespTaskMember `json:"members,omitempty"` // 任务成员列表 + CompletedAt string `json:"completed_at,omitempty"` // 任务完成的时间戳(ms) + Attachments []*AddTaskMemberRespTaskAttachment `json:"attachments,omitempty"` // 任务的附件列表 + Origin *AddTaskMemberRespTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息。创建是设置后就不可更改。 + Extra string `json:"extra,omitempty"` // 任务附带的自定义数据。 + Tasklists []*AddTaskMemberRespTaskTasklist `json:"tasklists,omitempty"` // 任务所属清单的名字。调用者只能看到有权限访问的清单的列表。 + RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 + ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid + Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 + CustomComplete *AddTaskMemberRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 + TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 + CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) + UpdatedAt string `json:"updated_at,omitempty"` // 任务最后一次更新的时间戳(ms) + Status string `json:"status,omitempty"` // 任务的状态, 支持"todo"和"done"两种状态 + URL string `json:"url,omitempty"` // 任务的分享链接 + Start *AddTaskMemberRespTaskStart `json:"start,omitempty"` // 任务的开始时间 + SubtaskCount int64 `json:"subtask_count,omitempty"` // 该任务的子任务的个数。 + IsMilestone bool `json:"is_milestone,omitempty"` // 是否是里程碑任务 + CustomFields []*AddTaskMemberRespTaskCustomField `json:"custom_fields,omitempty"` // 任务的自定义字段值 + Dependencies []*AddTaskMemberRespTaskDependencie `json:"dependencies,omitempty"` // 任务依赖 + AssigneeRelated []*AddTaskMemberRespTaskAssigneeRelated `json:"assignee_related,omitempty"` // 任务执行者相关信息, 如会签任务各执行者完成时间等 +} + +// AddTaskMemberRespTaskAssigneeRelated ... +type AddTaskMemberRespTaskAssigneeRelated struct { + ID string `json:"id,omitempty"` // 任务执行者的id + CompletedAt string `json:"completed_at,omitempty"` // 会签任务中执行者完成的时间戳(ms) } // AddTaskMemberRespTaskAttachment ... @@ -133,6 +145,7 @@ type AddTaskMemberRespTaskAttachmentUploader struct { ID string `json:"id,omitempty"` // 表示member的id Type string `json:"type,omitempty"` // 成员的类型 Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 } // AddTaskMemberRespTaskCreator ... @@ -140,6 +153,7 @@ type AddTaskMemberRespTaskCreator struct { ID string `json:"id,omitempty"` // 表示member的id Type string `json:"type,omitempty"` // 成员的类型 Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 } // AddTaskMemberRespTaskCustomComplete ... @@ -215,6 +229,33 @@ type AddTaskMemberRespTaskCustomCompletePcTip struct { KoKr string `json:"ko_kr,omitempty"` // 韩语 } +// AddTaskMemberRespTaskCustomField ... +type AddTaskMemberRespTaskCustomField struct { + Guid string `json:"guid,omitempty"` // 字段GUID + Type string `json:"type,omitempty"` // 自定义字段类型, 支持"member", "datetime", "number", "single_select", "multi_select"五种类型 + NumberValue string `json:"number_value,omitempty"` // 数字类型的自定义字段值, 填写一个合法数字的字符串表示, 空字符串表示设为空。 + DatetimeValue string `json:"datetime_value,omitempty"` // 日期类型自定义字段值。可以输入一个表示日期的以毫秒为单位的字符串。设为空字符串表示设为空。 + MemberValue []*AddTaskMemberRespTaskCustomFieldMemberValue `json:"member_value,omitempty"` // 人员类型的自定义字段值, 可以设置1个或多个用户的id(遵循member格式, 只支持user类型)。当该字段的设置为“不能多选”时只能输入一个值。设为空数组表示设为空。 + SingleSelectValue string `json:"single_select_value,omitempty"` // 单选类型字段值, 填写一个字段选项的option_guid。设置为空字符串表示设为空。 + MultiSelectValue []string `json:"multi_select_value,omitempty"` // 多选类型字段值, 可以填写一个或多个本字段的option_guid。设为空数组表示设为空。 + Name string `json:"name,omitempty"` // 自定义字段名 + TextValue string `json:"text_value,omitempty"` // 文本类型字段值。可以输入一段文本。空字符串表示清空。 +} + +// AddTaskMemberRespTaskCustomFieldMemberValue ... +type AddTaskMemberRespTaskCustomFieldMemberValue struct { + ID string `json:"id,omitempty"` // 表示member的id + Type string `json:"type,omitempty"` // 成员的类型 + Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 +} + +// AddTaskMemberRespTaskDependencie ... +type AddTaskMemberRespTaskDependencie struct { + Type string `json:"type,omitempty"` // 依赖类型可选值有: 前置依赖后置依赖 + TaskGuid string `json:"task_guid,omitempty"` // 依赖任务的GUID +} + // AddTaskMemberRespTaskDue ... type AddTaskMemberRespTaskDue struct { Timestamp string `json:"timestamp,omitempty"` // 截止时间/日期的时间戳, 距1970-01-01 00:00:00的毫秒数。如果截止时间是一个日期, 需要把日期转换成时间戳, 并设置 is_all_day=true @@ -226,6 +267,7 @@ type AddTaskMemberRespTaskMember struct { ID string `json:"id,omitempty"` // 表示member的id Type string `json:"type,omitempty"` // 成员的类型 Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 } // AddTaskMemberRespTaskOrigin ... diff --git a/api_task_member_remove.go b/api_task_member_remove.go index 919695a8..c2f7d320 100644 --- a/api_task_member_remove.go +++ b/api_task_member_remove.go @@ -25,7 +25,8 @@ import ( // // 移除任务成员需要任务的编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_members +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_members +// new doc: https://open.feishu.cn/document/task-v2/task/remove_members func (r *TaskService) RemoveTaskMember(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskMember != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskMember mock enable") @@ -60,16 +61,16 @@ func (r *Mock) UnMockTaskRemoveTaskMember() { // RemoveTaskMemberReq ... type RemoveTaskMemberReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要移除成员的任务全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Members []*RemoveTaskMemberReqMember `json:"members,omitempty"` // 要移除的member列表, 长度范围: `1` ~ `500` + TaskGuid string `path:"task_guid" json:"-"` // 要移除成员的任务全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Members []*RemoveTaskMemberReqMember `json:"members,omitempty"` // 要移除的member列表 长度范围: `1` ~ `500` } // RemoveTaskMemberReqMember ... type RemoveTaskMemberReqMember struct { - ID string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 示例值: "user", 默认值: `user` - Role string `json:"role,omitempty"` // 成员角色, 支持"assignee"或者"follower", 示例值: "assignee", 最大长度: `20` 字符 + ID string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型示例值: "user"默认值: `user` + Role string `json:"role,omitempty"` // 成员角色, 支持"assignee"或者"follower"示例值: "assignee" 最大长度: `20` 字符 } // RemoveTaskMemberResp ... @@ -94,7 +95,7 @@ type RemoveTaskMemberRespTask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *RemoveTaskMemberRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_reminder_add.go b/api_task_reminder_add.go index efb09a01..7824683a 100644 --- a/api_task_reminder_add.go +++ b/api_task_reminder_add.go @@ -27,7 +27,8 @@ import ( // 如果当前任务已经有提醒了, 要更新提醒的设置, 需要先调用[移除任务提醒](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_reminders)接口移除原有提醒。再调用本接口添加提醒。 // 需要任务的编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_reminders +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_reminders +// new doc: https://open.feishu.cn/document/task-v2/task/add_reminders func (r *TaskService) AddTaskReminder(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) { if r.cli.mock.mockTaskAddTaskReminder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskReminder mock enable") @@ -62,14 +63,14 @@ func (r *Mock) UnMockTaskAddTaskReminder() { // AddTaskReminderReq ... type AddTaskReminderReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要添加负责人的任务全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Reminders []*AddTaskReminderReqReminder `json:"reminders,omitempty"` // 要添加的reminder的列表, 目前1个任务只支持一个提醒, 示例值: [ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f], 长度范围: `1` ~ `1` + TaskGuid string `path:"task_guid" json:"-"` // 要添加负责人的任务全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Reminders []*AddTaskReminderReqReminder `json:"reminders,omitempty"` // 要添加的reminder的列表, 目前1个任务只支持一个提醒。示例值: [ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f] 长度范围: `1` ~ `1` } // AddTaskReminderReqReminder ... type AddTaskReminderReqReminder struct { - RelativeFireMinute int64 `json:"relative_fire_minute,omitempty"` // 相对于截止时间的提醒时间分钟数。例如30表示截止时间前30分钟提醒;0表示截止时提醒, 不支持负数, 示例值: 30 + RelativeFireMinute int64 `json:"relative_fire_minute,omitempty"` // 相对于截止时间的提醒时间分钟数。例如30表示截止时间前30分钟提醒;0表示截止时提醒。不支持负数。示例值: 30 } // AddTaskReminderResp ... @@ -94,7 +95,7 @@ type AddTaskReminderRespTask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务配置。 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *AddTaskReminderRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_reminder_create.go b/api_task_reminder_create.go index bd57a47e..2ab7f5ee 100644 --- a/api_task_reminder_create.go +++ b/api_task_reminder_create.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/create // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-reminder/create -// -// Deprecated func (r *TaskService) CreateTaskReminder(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskReminder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskReminder mock enable") diff --git a/api_task_reminder_delete.go b/api_task_reminder_delete.go index 18e43f48..bad0d6e9 100644 --- a/api_task_reminder_delete.go +++ b/api_task_reminder_delete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/delete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-reminder/delete -// -// Deprecated func (r *TaskService) DeleteTaskReminder(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskReminder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskReminder mock enable") @@ -66,7 +64,8 @@ type DeleteTaskReminderReq struct { } // DeleteTaskReminderResp ... -type DeleteTaskReminderResp struct{} +type DeleteTaskReminderResp struct { +} // deleteTaskReminderResp ... type deleteTaskReminderResp struct { diff --git a/api_task_reminder_list.go b/api_task_reminder_list.go index 1a00f689..81a95b7c 100644 --- a/api_task_reminder_list.go +++ b/api_task_reminder_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/list // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-reminder/list -// -// Deprecated func (r *TaskService) GetTaskReminderList(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskReminderList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskReminderList mock enable") diff --git a/api_task_reminder_remove.go b/api_task_reminder_remove.go index 608653b2..99e83c8c 100644 --- a/api_task_reminder_remove.go +++ b/api_task_reminder_remove.go @@ -26,7 +26,8 @@ import ( // 如果要移除的提醒本来就不存在, 本接口将直接返回成功。 // 需要任务的编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_reminders +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_reminders +// new doc: https://open.feishu.cn/document/task-v2/task/remove_reminders func (r *TaskService) RemoveTaskReminder(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskReminder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskReminder mock enable") @@ -61,9 +62,9 @@ func (r *Mock) UnMockTaskRemoveTaskReminder() { // RemoveTaskReminderReq ... type RemoveTaskReminderReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要移除提醒的任务全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - ReminderIDs []string `json:"reminder_ids,omitempty"` // 要移除的reminder的id列表, 示例值: ["7202449098622894100"] + TaskGuid string `path:"task_guid" json:"-"` // 要移除提醒的任务全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + ReminderIDs []string `json:"reminder_ids,omitempty"` // 要移除的reminder的id列表示例值: ["7202449098622894100"] } // RemoveTaskReminderResp ... @@ -88,7 +89,7 @@ type RemoveTaskReminderRespTask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 任务重复规则 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *RemoveTaskReminderRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_section_create.go b/api_task_section_create.go index 31815d6b..d7ec1441 100644 --- a/api_task_section_create.go +++ b/api_task_section_create.go @@ -26,7 +26,8 @@ import ( // 当在清单中创建自定义分组时, 需要设置`resourse_type`为"tasklist", `resource_id`设为清单的GUID。 // 当为我负责任务列表中创建自定义分组时, 需要设置`resource_type`为"my_tasks", 不需要设置`resource_id`。调用身份只能为自己的我负责的任务列表创建自定义分组。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/create +// new doc: https://open.feishu.cn/document/task-v2/section/create func (r *TaskService) CreateTaskSection(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskSection != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskSection mock enable") @@ -61,12 +62,12 @@ func (r *Mock) UnMockTaskCreateTaskSection() { // CreateTaskSectionReq ... type CreateTaskSectionReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Name string `json:"name,omitempty"` // 自定义分组名。不允许为空, 最大100个utf8字符, 示例值: "已经审核过的任务" - ResourceType string `json:"resource_type,omitempty"` // 自定义分组的资源类型, 支持"tasklist"(清单)或者"my_tasks"(我负责的), 示例值: "tasklist", 默认值: `tasklist` - ResourceID *string `json:"resource_id,omitempty"` // 自定义分组要归属的资源id。当`resource_type`为"tasklist"时这里需要填写清单的GUID;当`resource_type`为"my_tasks"时, 无需填写, 示例值: "cc371766-6584-cf50-a222-c22cd9055004" - InsertBefore *string `json:"insert_before,omitempty"` // 要将新分组插入到自定义分分组的前面的目标分组的guid, `insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后, 如果同时设置`insert_before`和`insert_after`, 接口会报错, 示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2", 最大长度: `100` 字符 - InsertAfter *string `json:"insert_after,omitempty"` // 要将新分组插入到自定义分分组的后面的目标分组的guid, `insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后, 如果同时设置`insert_before`和`insert_after`, 接口会报错, 示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2", 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Name string `json:"name,omitempty"` // 自定义分组名。不允许为空, 最大100个utf8字符。示例值: "已经审核过的任务" + ResourceType string `json:"resource_type,omitempty"` // 自定义分组的资源类型, 支持"tasklist"(清单)或者"my_tasks"(我负责的)。示例值: "tasklist"默认值: `tasklist` + ResourceID *string `json:"resource_id,omitempty"` // 自定义分组要归属的资源id。当`resource_type`为"tasklist"时这里需要填写清单的GUID;当`resource_type`为"my_tasks"时, 无需填写。示例值: "cc371766-6584-cf50-a222-c22cd9055004" + InsertBefore *string `json:"insert_before,omitempty"` // 要将新分组插入到自定义分分组的前面的目标分组的guid。`insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后。如果同时设置`insert_before`和`insert_after`, 接口会报错。示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" 最大长度: `100` 字符 + InsertAfter *string `json:"insert_after,omitempty"` // 要将新分组插入到自定义分分组的后面的目标分组的guid。`insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后。如果同时设置`insert_before`和`insert_after`, 接口会报错。示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" 最大长度: `100` 字符 } // CreateTaskSectionResp ... diff --git a/api_task_section_delete.go b/api_task_section_delete.go index 26c53b42..b3e22463 100644 --- a/api_task_section_delete.go +++ b/api_task_section_delete.go @@ -26,7 +26,8 @@ import ( // 不能删除默认的自定义分组。 // 需要自定义分组归属资源的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/delete +// new doc: https://open.feishu.cn/document/task-v2/section/delete func (r *TaskService) DeleteTaskSection(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskSection != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskSection mock enable") @@ -61,11 +62,12 @@ func (r *Mock) UnMockTaskDeleteTaskSection() { // DeleteTaskSectionReq ... type DeleteTaskSectionReq struct { - SectionGuid string `path:"section_guid" json:"-"` // 要删除的自定义分组全局唯一ID, 示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" + SectionGuid string `path:"section_guid" json:"-"` // 要删除的自定义分组全局唯一ID示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" } // DeleteTaskSectionResp ... -type DeleteTaskSectionResp struct{} +type DeleteTaskSectionResp struct { +} // deleteTaskSectionResp ... type deleteTaskSectionResp struct { diff --git a/api_task_section_get.go b/api_task_section_get.go index 3b3f8d78..9d75901b 100644 --- a/api_task_section_get.go +++ b/api_task_section_get.go @@ -25,7 +25,8 @@ import ( // // 需要清单归属资源的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/get +// new doc: https://open.feishu.cn/document/task-v2/section/get func (r *TaskService) GetTaskSection(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) { if r.cli.mock.mockTaskGetTaskSection != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskSection mock enable") @@ -60,8 +61,8 @@ func (r *Mock) UnMockTaskGetTaskSection() { // GetTaskSectionReq ... type GetTaskSectionReq struct { - SectionGuid string `path:"section_guid" json:"-"` // 要获取的自定义分组GUID, 示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + SectionGuid string `path:"section_guid" json:"-"` // 要获取的自定义分组GUID示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskSectionResp ... diff --git a/api_task_section_list.go b/api_task_section_list.go index 96c86bdd..75bd0c6b 100644 --- a/api_task_section_list.go +++ b/api_task_section_list.go @@ -25,7 +25,8 @@ import ( // // 获取自定义分组列表需要资源的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/list +// new doc: https://open.feishu.cn/document/task-v2/section/list func (r *TaskService) GetTaskSectionList(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskSectionList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskSectionList mock enable") @@ -60,11 +61,11 @@ func (r *Mock) UnMockTaskGetTaskSectionList() { // GetTaskSectionListReq ... type GetTaskSectionListReq struct { - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE=, 最大长度: `100` 字符 - ResourceType string `query:"resource_type" json:"-"` // 自定义分组所属的资源类型。支持my_tasks(我负责的)和tasklist(清单)。当使用tasklist时, 需要用resource_id提供清单的全局唯一ID, 示例值: tasklist, 最大长度: `100` 字符 - ResourceID *string `query:"resource_id" json:"-"` // 如`resource_type`为"tasklist", 这里需要填写要列取自定义分组的清单的GUID, 示例值: caef228f-2342-23c1-c36d-91186414dc64, 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= 最大长度: `100` 字符 + ResourceType string `query:"resource_type" json:"-"` // 自定义分组所属的资源类型。支持my_tasks(我负责的)和tasklist(清单)。当使用tasklist时, 需要用resource_id提供清单的全局唯一ID。示例值: tasklist 最大长度: `100` 字符 + ResourceID *string `query:"resource_id" json:"-"` // 如`resource_type`为"tasklist", 这里需要填写要列取自定义分组的清单的GUID。示例值: caef228f-2342-23c1-c36d-91186414dc64 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskSectionListResp ... diff --git a/api_task_section_tasks_list.go b/api_task_section_tasks_list.go index 5d6c7a2a..53e462d7 100644 --- a/api_task_section_tasks_list.go +++ b/api_task_section_tasks_list.go @@ -25,7 +25,8 @@ import ( // // 需要自定义分组所在资源的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/tasks +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/tasks +// new doc: https://open.feishu.cn/document/task-v2/section/tasks func (r *TaskService) GetTaskTaskListOfSection(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTaskListOfSection != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTaskListOfSection mock enable") @@ -60,12 +61,12 @@ func (r *Mock) UnMockTaskGetTaskTaskListOfSection() { // GetTaskTaskListOfSectionReq ... type GetTaskTaskListOfSectionReq struct { - SectionGuid string `path:"section_guid" json:"-"` // 要获取任务的自定义分组全局唯一ID, 示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE= - Completed *bool `query:"completed" json:"-"` // 按照任务状态过滤, 如果不填写则表示不按完成状态过滤, 示例值: true - CreatedFrom *string `query:"created_from" json:"-"` // 按照创建时间筛选的起始时间戳(ms), 如不填写则为首个任务的创建时刻, 示例值: 1675742789470, 最大长度: `30` 字符 - CreatedTo *string `query:"created_to" json:"-"` // 按照创建时间筛选的起始时间戳(ms), 如不填写则为最后任务的创建时刻, 示例值: 1675742789470, 最大长度: `30` 字符 + SectionGuid string `path:"section_guid" json:"-"` // 要获取任务的自定义分组全局唯一ID示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= + Completed *bool `query:"completed" json:"-"` // 按照任务状态过滤, 如果不填写则表示不按完成状态过滤示例值: true + CreatedFrom *string `query:"created_from" json:"-"` // 按照创建时间筛选的起始时间戳(ms), 如不填写则为首个任务的创建时刻示例值: 1675742789470 最大长度: `30` 字符 + CreatedTo *string `query:"created_to" json:"-"` // 按照创建时间筛选的起始时间戳(ms), 如不填写则为最后任务的创建时刻示例值: 1675742789470 最大长度: `30` 字符 } // GetTaskTaskListOfSectionResp ... diff --git a/api_task_section_update.go b/api_task_section_update.go index 07499dcd..7ab258d2 100644 --- a/api_task_section_update.go +++ b/api_task_section_update.go @@ -31,7 +31,8 @@ import ( // `insert_before`和`insert_after`如果填写, 必须是同一个资源的合法section_guid。注意不能同时设置`insert_before`和`insert_after`。 // 需要自定义分组所在资源的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/section/patch +// new doc: https://open.feishu.cn/document/task-v2/section/patch func (r *TaskService) UpdateTaskSection(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) { if r.cli.mock.mockTaskUpdateTaskSection != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskSection mock enable") @@ -66,17 +67,17 @@ func (r *Mock) UnMockTaskUpdateTaskSection() { // UpdateTaskSectionReq ... type UpdateTaskSectionReq struct { - SectionGuid string `path:"section_guid" json:"-"` // 要更新的自定义分组GUID, 示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + SectionGuid string `path:"section_guid" json:"-"` // 要更新的自定义分组GUID示例值: "9842501a-9f47-4ff5-a622-d319eeecb97f" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` Section *UpdateTaskSectionReqSection `json:"section,omitempty"` // 要更新的自定义分组的数据。 - UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持: * `name` - 自定义字段名字, * `insert_before` - 要让当前自定义分组放到某个自定义分组前面的secion_guid, 用于改变当前自定义分组的位置, * `insert_after` - 要让当前自定义分组放到某个自定义分组后面的secion_guid, 用于改变当前自定义分组的位置, 示例值: ["name"], 长度范围: `1` ~ `10` + UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持: * `name` - 自定义字段名字* `insert_before` - 要让当前自定义分组放到某个自定义分组前面的secion_guid, 用于改变当前自定义分组的位置。* `insert_after` - 要让当前自定义分组放到某个自定义分组后面的secion_guid, 用于改变当前自定义分组的位置。示例值: ["name"] 长度范围: `1` ~ `10` } // UpdateTaskSectionReqSection ... type UpdateTaskSectionReqSection struct { - Name *string `json:"name,omitempty"` // 自定义分组名。如更新, 不允许设为空, 支持最大100个utf8字符, 示例值: "已经审核过的任务" - InsertBefore *string `json:"insert_before,omitempty"` // 要将新分组插入到自定义分分组的前面的目标分组的guid, 示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2", 最大长度: `100` 字符 - InsertAfter *string `json:"insert_after,omitempty"` // 要将新分组插入到自定义分分组的后面的目标分组的guid, 示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2", 最大长度: `100` 字符 + Name *string `json:"name,omitempty"` // 自定义分组名。如更新, 不允许设为空, 支持最大100个utf8字符。示例值: "已经审核过的任务" + InsertBefore *string `json:"insert_before,omitempty"` // 要将新分组插入到自定义分分组的前面的目标分组的guid。示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" 最大长度: `100` 字符 + InsertAfter *string `json:"insert_after,omitempty"` // 要将新分组插入到自定义分分组的后面的目标分组的guid。示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" 最大长度: `100` 字符 } // UpdateTaskSectionResp ... @@ -101,6 +102,7 @@ type UpdateTaskSectionRespSectionCreator struct { ID string `json:"id,omitempty"` // 表示member的id Type string `json:"type,omitempty"` // 成员的类型 Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 } // UpdateTaskSectionRespSectionTasklist ... diff --git a/api_task_subtask_create.go b/api_task_subtask_create.go index 2e1ef0bd..dfd3cfc9 100644 --- a/api_task_subtask_create.go +++ b/api_task_subtask_create.go @@ -27,7 +27,8 @@ import ( // 创建子任务需要拥有父任务的编辑权限。详见[任务是如何鉴权的?](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/faq) // 如果将新任务加入清单, 则需要清单的可编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task-subtask/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task-subtask/create +// new doc: https://open.feishu.cn/document/task-v2/task-subtask/create func (r *TaskService) CreateTaskSubtask(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskSubtask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskSubtask mock enable") @@ -62,19 +63,19 @@ func (r *Mock) UnMockTaskCreateTaskSubtask() { // CreateTaskSubtaskReq ... type CreateTaskSubtaskReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 父任务GUID, 示例值: "e297ddff-06ca-4166-b917-4ce57cd3a7a0", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Summary string `json:"summary,omitempty"` // 任务标题, 示例值: "针对全年销售进行一次复盘", 最大长度: `10000` 字符 - Description *string `json:"description,omitempty"` // 任务摘要, 示例值: "需要事先阅读复盘总结文档" - Due *CreateTaskSubtaskReqDue `json:"due,omitempty"` // 任务截止时间戳(ms), 截止时间戳和截止日期选择一个填写, 示例值: 1675742789470 + TaskGuid string `path:"task_guid" json:"-"` // 父任务GUID示例值: "e297ddff-06ca-4166-b917-4ce57cd3a7a0" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Summary string `json:"summary,omitempty"` // 任务标题示例值: "针对全年销售进行一次复盘" 最大长度: `10000` 字符 + Description *string `json:"description,omitempty"` // 任务摘要示例值: "需要事先阅读复盘总结文档" + Due *CreateTaskSubtaskReqDue `json:"due,omitempty"` // 任务截止时间戳(ms), 截止时间戳和截止日期选择一个填写。示例值: 1675742789470 Origin *CreateTaskSubtaskReqOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息。详见[如何使用Origin?](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview) - Extra *string `json:"extra,omitempty"` // 调用者可以传入的任意附带到任务上的数据。在获取任务详情时会原样返回, 示例值: "dGVzdA[", 最大长度: `65536` 字符 - CompletedAt *string `json:"completed_at,omitempty"` // 任务的完成时刻时间戳(ms), 示例值: "1675742789470", 默认值: `0`, 最大长度: `20` 字符 - Members []*CreateTaskSubtaskReqMember `json:"members,omitempty"` // 任务成员列表, 示例值: [ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f], 最大长度: `500` - RepeatRule *string `json:"repeat_rule,omitempty"` // 如果设置, 则该任务为“重复任务”。该字段表示了重复任务的重复规则。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“如何使用重复任务?”章节, 示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR", 最大长度: `1000` 字符 + Extra *string `json:"extra,omitempty"` // 调用者可以传入的任意附带到任务上的数据。在获取任务详情时会原样返回。示例值: "dGVzdA[" 最大长度: `65536` 字符 + CompletedAt *string `json:"completed_at,omitempty"` // 任务的完成时刻时间戳(ms)示例值: "1675742789470"默认值: `0` 最大长度: `20` 字符 + Members []*CreateTaskSubtaskReqMember `json:"members,omitempty"` // 任务成员列表示例值: [ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f] 最大长度: `500` + RepeatRule *string `json:"repeat_rule,omitempty"` // 如果设置, 则该任务为“重复任务”。该字段表示了重复任务的重复规则。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“如何使用重复任务?”章节。示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR" 最大长度: `1000` 字符 CustomComplete *CreateTaskSubtaskReqCustomComplete `json:"custom_complete,omitempty"` // 任务自定义完成规则。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“如何使用自定义完成?”章节。 Tasklists []*CreateTaskSubtaskReqTasklist `json:"tasklists,omitempty"` // 任务所在清单的信息。如果设置, 则表示创建的任务要直接加入到指定清单。 - ClientToken *string `json:"client_token,omitempty"` // 幂等token。如果提供则触发后端实现幂等行为。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 幂等调用 ”章节, 示例值: "daa2237f-8310-4707-a83b-52c8a81e0fb7", 长度范围: `10` ~ `100` 字符 + ClientToken *string `json:"client_token,omitempty"` // 幂等token。如果提供则触发后端实现幂等行为。详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 幂等调用 ”章节。示例值: "daa2237f-8310-4707-a83b-52c8a81e0fb7" 长度范围: `10` ~ `100` 字符 Start *CreateTaskSubtaskReqStart `json:"start,omitempty"` // 任务的开始时间(ms) Reminders []*CreateTaskSubtaskReqReminder `json:"reminders,omitempty"` // 任务提醒 } @@ -88,81 +89,81 @@ type CreateTaskSubtaskReqCustomComplete struct { // CreateTaskSubtaskReqCustomCompleteAndroid ... type CreateTaskSubtaskReqCustomCompleteAndroid struct { - Href *string `json:"href,omitempty"` // 自定义完成的跳转url, 示例值: "https://www.example.com" + Href *string `json:"href,omitempty"` // 自定义完成的跳转url示例值: "https://www.example.com" Tip *CreateTaskSubtaskReqCustomCompleteAndroidTip `json:"tip,omitempty"` // 自定义完成的弹出提示为 } // CreateTaskSubtaskReqCustomCompleteAndroidTip ... type CreateTaskSubtaskReqCustomCompleteAndroidTip struct { - EnUs *string `json:"en_us,omitempty"` // 英文, 示例值: "workbench", 最大长度: `1000` 字符 - ZhCn *string `json:"zh_cn,omitempty"` // 中文, 示例值: "工作台", 最大长度: `1000` 字符 - ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区), 示例值: "工作臺", 最大长度: `1000` 字符 - ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区), 示例值: "工作臺", 最大长度: `1000` 字符 - JaJp *string `json:"ja_jp,omitempty"` // 日语, 示例值: "作業台", 最大长度: `1000` 字符 - FrFr *string `json:"fr_fr,omitempty"` // 法语, 示例值: "Table de travail" - ItIt *string `json:"it_it,omitempty"` // 意大利语, 示例值: "banco di lavoro" - DeDe *string `json:"de_de,omitempty"` // 德语, 示例值: "Werkbank" - RuRu *string `json:"ru_ru,omitempty"` // 俄语, 示例值: "верстак" - ThTh *string `json:"th_th,omitempty"` // 泰语, 示例值: "โต๊ะทำงาน" - EsEs *string `json:"es_es,omitempty"` // 西班牙语, 示例值: "banco de trabajo" - KoKr *string `json:"ko_kr,omitempty"` // 韩语, 示例值: "작업대" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "workbench" 最大长度: `1000` 字符 + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "工作台" 最大长度: `1000` 字符 + ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区)示例值: "工作臺" 最大长度: `1000` 字符 + ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区)示例值: "工作臺" 最大长度: `1000` 字符 + JaJp *string `json:"ja_jp,omitempty"` // 日语示例值: "作業台" 最大长度: `1000` 字符 + FrFr *string `json:"fr_fr,omitempty"` // 法语示例值: "Table de travail" + ItIt *string `json:"it_it,omitempty"` // 意大利语示例值: "banco di lavoro" + DeDe *string `json:"de_de,omitempty"` // 德语示例值: "Werkbank" + RuRu *string `json:"ru_ru,omitempty"` // 俄语示例值: "верстак" + ThTh *string `json:"th_th,omitempty"` // 泰语示例值: "โต๊ะทำงาน" + EsEs *string `json:"es_es,omitempty"` // 西班牙语示例值: "banco de trabajo" + KoKr *string `json:"ko_kr,omitempty"` // 韩语示例值: "작업대" } // CreateTaskSubtaskReqCustomCompleteIos ... type CreateTaskSubtaskReqCustomCompleteIos struct { - Href *string `json:"href,omitempty"` // 自定义完成的跳转url, 示例值: "https://www.example.com" + Href *string `json:"href,omitempty"` // 自定义完成的跳转url示例值: "https://www.example.com" Tip *CreateTaskSubtaskReqCustomCompleteIosTip `json:"tip,omitempty"` // 自定义完成的弹出提示为 } // CreateTaskSubtaskReqCustomCompleteIosTip ... type CreateTaskSubtaskReqCustomCompleteIosTip struct { - EnUs *string `json:"en_us,omitempty"` // 英文, 示例值: "workbench", 最大长度: `1000` 字符 - ZhCn *string `json:"zh_cn,omitempty"` // 中文, 示例值: "工作台", 最大长度: `1000` 字符 - ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区), 示例值: "工作臺", 最大长度: `1000` 字符 - ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区), 示例值: "工作臺", 最大长度: `1000` 字符 - JaJp *string `json:"ja_jp,omitempty"` // 日语, 示例值: "作業台", 最大长度: `1000` 字符 - FrFr *string `json:"fr_fr,omitempty"` // 法语, 示例值: "Table de travail" - ItIt *string `json:"it_it,omitempty"` // 意大利语, 示例值: "banco di lavoro" - DeDe *string `json:"de_de,omitempty"` // 德语, 示例值: "Werkbank" - RuRu *string `json:"ru_ru,omitempty"` // 俄语, 示例值: "верстак" - ThTh *string `json:"th_th,omitempty"` // 泰语, 示例值: "โต๊ะทำงาน" - EsEs *string `json:"es_es,omitempty"` // 西班牙语, 示例值: "banco de trabajo" - KoKr *string `json:"ko_kr,omitempty"` // 韩语, 示例值: "작업대" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "workbench" 最大长度: `1000` 字符 + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "工作台" 最大长度: `1000` 字符 + ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区)示例值: "工作臺" 最大长度: `1000` 字符 + ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区)示例值: "工作臺" 最大长度: `1000` 字符 + JaJp *string `json:"ja_jp,omitempty"` // 日语示例值: "作業台" 最大长度: `1000` 字符 + FrFr *string `json:"fr_fr,omitempty"` // 法语示例值: "Table de travail" + ItIt *string `json:"it_it,omitempty"` // 意大利语示例值: "banco di lavoro" + DeDe *string `json:"de_de,omitempty"` // 德语示例值: "Werkbank" + RuRu *string `json:"ru_ru,omitempty"` // 俄语示例值: "верстак" + ThTh *string `json:"th_th,omitempty"` // 泰语示例值: "โต๊ะทำงาน" + EsEs *string `json:"es_es,omitempty"` // 西班牙语示例值: "banco de trabajo" + KoKr *string `json:"ko_kr,omitempty"` // 韩语示例值: "작업대" } // CreateTaskSubtaskReqCustomCompletePc ... type CreateTaskSubtaskReqCustomCompletePc struct { - Href *string `json:"href,omitempty"` // 自定义完成的跳转url, 示例值: "https://www.example.com" + Href *string `json:"href,omitempty"` // 自定义完成的跳转url示例值: "https://www.example.com" Tip *CreateTaskSubtaskReqCustomCompletePcTip `json:"tip,omitempty"` // 自定义完成的弹出提示为 } // CreateTaskSubtaskReqCustomCompletePcTip ... type CreateTaskSubtaskReqCustomCompletePcTip struct { - EnUs *string `json:"en_us,omitempty"` // 英文, 示例值: "workbench", 最大长度: `1000` 字符 - ZhCn *string `json:"zh_cn,omitempty"` // 中文, 示例值: "工作台", 最大长度: `1000` 字符 - ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区), 示例值: "工作臺", 最大长度: `1000` 字符 - ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区), 示例值: "工作臺", 最大长度: `1000` 字符 - JaJp *string `json:"ja_jp,omitempty"` // 日语, 示例值: "作業台", 最大长度: `1000` 字符 - FrFr *string `json:"fr_fr,omitempty"` // 法语, 示例值: "Table de travail" - ItIt *string `json:"it_it,omitempty"` // 意大利语, 示例值: "banco di lavoro" - DeDe *string `json:"de_de,omitempty"` // 德语, 示例值: "Werkbank" - RuRu *string `json:"ru_ru,omitempty"` // 俄语, 示例值: "верстак" - ThTh *string `json:"th_th,omitempty"` // 泰语, 示例值: "โต๊ะทำงาน" - EsEs *string `json:"es_es,omitempty"` // 西班牙语, 示例值: "banco de trabajo" - KoKr *string `json:"ko_kr,omitempty"` // 韩语, 示例值: "작업대" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "workbench" 最大长度: `1000` 字符 + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "工作台" 最大长度: `1000` 字符 + ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区)示例值: "工作臺" 最大长度: `1000` 字符 + ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区)示例值: "工作臺" 最大长度: `1000` 字符 + JaJp *string `json:"ja_jp,omitempty"` // 日语示例值: "作業台" 最大长度: `1000` 字符 + FrFr *string `json:"fr_fr,omitempty"` // 法语示例值: "Table de travail" + ItIt *string `json:"it_it,omitempty"` // 意大利语示例值: "banco di lavoro" + DeDe *string `json:"de_de,omitempty"` // 德语示例值: "Werkbank" + RuRu *string `json:"ru_ru,omitempty"` // 俄语示例值: "верстак" + ThTh *string `json:"th_th,omitempty"` // 泰语示例值: "โต๊ะทำงาน" + EsEs *string `json:"es_es,omitempty"` // 西班牙语示例值: "banco de trabajo" + KoKr *string `json:"ko_kr,omitempty"` // 韩语示例值: "작업대" } // CreateTaskSubtaskReqDue ... type CreateTaskSubtaskReqDue struct { - Timestamp *string `json:"timestamp,omitempty"` // 截止时间/日期的时间戳, 距1970-01-01 00:00:00的毫秒数。如果截止时间是一个日期, 需要把日期转换成时间戳, 并设置 is_all_day=true, 示例值: "1675454764000" - IsAllDay *bool `json:"is_all_day,omitempty"` // 是否截止到一个日期。如果设为true, timestamp中只有日期的部分会被解析和存储, 示例值: true + Timestamp *string `json:"timestamp,omitempty"` // 截止时间/日期的时间戳, 距1970-01-01 00:00:00的毫秒数。如果截止时间是一个日期, 需要把日期转换成时间戳, 并设置 is_all_day=true示例值: "1675454764000" + IsAllDay *bool `json:"is_all_day,omitempty"` // 是否截止到一个日期。如果设为true, timestamp中只有日期的部分会被解析和存储。示例值: true } // CreateTaskSubtaskReqMember ... type CreateTaskSubtaskReqMember struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 示例值: "user", 默认值: `user` - Role *string `json:"role,omitempty"` // 成员角色, 支持"assignee"或者"follower", 示例值: "assignee", 最大长度: `20` 字符 + ID *string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型示例值: "user"默认值: `user` + Role *string `json:"role,omitempty"` // 成员角色, 支持"assignee"或者"follower"示例值: "assignee" 最大长度: `20` 字符 } // CreateTaskSubtaskReqOrigin ... @@ -173,41 +174,41 @@ type CreateTaskSubtaskReqOrigin struct { // CreateTaskSubtaskReqOriginHref ... type CreateTaskSubtaskReqOriginHref struct { - URL *string `json:"url,omitempty"` // 链接对应的地址, 示例值: "https://www.example.com", 长度范围: `0` ~ `1024` 字符 - Title *string `json:"title,omitempty"` // 链接对应的标题, 示例值: "反馈一个问题, 需要协助排查", 最大长度: `512` 字符 + URL *string `json:"url,omitempty"` // 链接对应的地址示例值: "https://www.example.com" 长度范围: `0` ~ `1024` 字符 + Title *string `json:"title,omitempty"` // 链接对应的标题示例值: "反馈一个问题, 需要协助排查" 最大长度: `512` 字符 } // CreateTaskSubtaskReqOriginPlatformI18nName ... type CreateTaskSubtaskReqOriginPlatformI18nName struct { - EnUs *string `json:"en_us,omitempty"` // 英文, 示例值: "workbench", 最大长度: `1000` 字符 - ZhCn *string `json:"zh_cn,omitempty"` // 中文, 示例值: "工作台", 最大长度: `1000` 字符 - ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区), 示例值: "工作臺", 最大长度: `1000` 字符 - ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区), 示例值: "工作臺", 最大长度: `1000` 字符 - JaJp *string `json:"ja_jp,omitempty"` // 日语, 示例值: "作業台", 最大长度: `1000` 字符 - FrFr *string `json:"fr_fr,omitempty"` // 法语, 示例值: "Table de travail" - ItIt *string `json:"it_it,omitempty"` // 意大利语, 示例值: "banco di lavoro" - DeDe *string `json:"de_de,omitempty"` // 德语, 示例值: "Werkbank" - RuRu *string `json:"ru_ru,omitempty"` // 俄语, 示例值: "верстак" - ThTh *string `json:"th_th,omitempty"` // 泰语, 示例值: "โต๊ะทำงาน" - EsEs *string `json:"es_es,omitempty"` // 西班牙语, 示例值: "banco de trabajo" - KoKr *string `json:"ko_kr,omitempty"` // 韩语, 示例值: "작업대" + EnUs *string `json:"en_us,omitempty"` // 英文示例值: "workbench" 最大长度: `1000` 字符 + ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "工作台" 最大长度: `1000` 字符 + ZhHk *string `json:"zh_hk,omitempty"` // 中文(香港地区)示例值: "工作臺" 最大长度: `1000` 字符 + ZhTw *string `json:"zh_tw,omitempty"` // 中文(台湾地区)示例值: "工作臺" 最大长度: `1000` 字符 + JaJp *string `json:"ja_jp,omitempty"` // 日语示例值: "作業台" 最大长度: `1000` 字符 + FrFr *string `json:"fr_fr,omitempty"` // 法语示例值: "Table de travail" + ItIt *string `json:"it_it,omitempty"` // 意大利语示例值: "banco di lavoro" + DeDe *string `json:"de_de,omitempty"` // 德语示例值: "Werkbank" + RuRu *string `json:"ru_ru,omitempty"` // 俄语示例值: "верстак" + ThTh *string `json:"th_th,omitempty"` // 泰语示例值: "โต๊ะทำงาน" + EsEs *string `json:"es_es,omitempty"` // 西班牙语示例值: "banco de trabajo" + KoKr *string `json:"ko_kr,omitempty"` // 韩语示例值: "작업대" } // CreateTaskSubtaskReqReminder ... type CreateTaskSubtaskReqReminder struct { - RelativeFireMinute int64 `json:"relative_fire_minute,omitempty"` // 相对于截止时间的提醒时间分钟数。例如30表示截止时间前30分钟提醒;0表示截止时提醒, 示例值: 30 + RelativeFireMinute int64 `json:"relative_fire_minute,omitempty"` // 相对于截止时间的提醒时间分钟数。例如30表示截止时间前30分钟提醒;0表示截止时提醒。示例值: 30 } // CreateTaskSubtaskReqStart ... type CreateTaskSubtaskReqStart struct { - Timestamp *string `json:"timestamp,omitempty"` // 开始时间/日期的时间戳, 距1970-01-01 00:00:00的毫秒数。如果开始时间是一个日期, 需要把日期转换成时间戳, 并设置 is_all_day=true, 示例值: "1675454764000" - IsAllDay *bool `json:"is_all_day,omitempty"` // 是否开始于一个日期。如果设为true, timestamp中只有日期的部分会被解析和存储, 示例值: true + Timestamp *string `json:"timestamp,omitempty"` // 开始时间/日期的时间戳, 距1970-01-01 00:00:00的毫秒数。如果开始时间是一个日期, 需要把日期转换成时间戳, 并设置 is_all_day=true示例值: "1675454764000" + IsAllDay *bool `json:"is_all_day,omitempty"` // 是否开始于一个日期。如果设为true, timestamp中只有日期的部分会被解析和存储。示例值: true } // CreateTaskSubtaskReqTasklist ... type CreateTaskSubtaskReqTasklist struct { - TasklistGuid *string `json:"tasklist_guid,omitempty"` // 任务要加入的清单的GUID, 示例值: "cc371766-6584-cf50-a222-c22cd9055004", 最大长度: `100` 字符 - SectionGuid *string `json:"section_guid,omitempty"` // 任务所在清单的自定义分组GUID。如果设置了清单GUID但没有设置自定义分组GUID, 则自动加入该清单的默认分组, 示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" + TasklistGuid *string `json:"tasklist_guid,omitempty"` // 任务要加入的清单的GUID。示例值: "cc371766-6584-cf50-a222-c22cd9055004" 最大长度: `100` 字符 + SectionGuid *string `json:"section_guid,omitempty"` // 任务所在清单的自定义分组GUID。如果设置了清单GUID但没有设置自定义分组GUID, 则自动加入该清单的默认分组。示例值: "e6e37dcc-f75a-5936-f589-12fb4b5c80c2" } // CreateTaskSubtaskResp ... @@ -232,14 +233,14 @@ type CreateTaskSubtaskRespSubtask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *CreateTaskSubtaskRespSubtaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) UpdatedAt string `json:"updated_at,omitempty"` // 任务最后一次更新的时间戳(ms) Status string `json:"status,omitempty"` // 任务的状态, 支持"todo"和"done"两种状态 URL string `json:"url,omitempty"` // 任务的分享链接 - Start *CreateTaskSubtaskRespSubtaskStart `json:"start,omitempty"` // 任务的开始时间, 如果同时设置任务的开始时间和截止时间, 开始时间必须<=截止时间, 并且开始/截止时间的is_all_day设置必须相同。 + Start *CreateTaskSubtaskRespSubtaskStart `json:"start,omitempty"` // 任务的开始时间。如果同时设置任务的开始时间和截止时间, 开始时间必须<=截止时间, 并且开始/截止时间的is_all_day设置必须相同。 SubtaskCount int64 `json:"subtask_count,omitempty"` // 该任务的子任务的个数。 } diff --git a/api_task_subtask_list.go b/api_task_subtask_list.go index b5fcdd8e..1a10e15d 100644 --- a/api_task_subtask_list.go +++ b/api_task_subtask_list.go @@ -26,7 +26,8 @@ import ( // 支持分页, 数据按照子任务在界面上的顺序返回。 // 需要父任务的读取权限。详见[任务是如何鉴权的?](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/faq) // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task-subtask/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task-subtask/list +// new doc: https://open.feishu.cn/document/task-v2/task-subtask/list func (r *TaskService) GetTaskSubtaskList(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskSubtaskList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskSubtaskList mock enable") @@ -61,10 +62,10 @@ func (r *Mock) UnMockTaskGetTaskSubtaskList() { // GetTaskSubtaskListReq ... type GetTaskSubtaskListReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 父任务的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE= - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + TaskGuid string `path:"task_guid" json:"-"` // 父任务的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskSubtaskListResp ... @@ -91,7 +92,7 @@ type GetTaskSubtaskListRespItem struct { RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *GetTaskSubtaskListRespItemCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_task_complete.go b/api_task_task_complete.go index 360411e4..a6095376 100644 --- a/api_task_task_complete.go +++ b/api_task_task_complete.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/complete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/complete -// -// Deprecated func (r *TaskService) CompleteTask(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) { if r.cli.mock.mockTaskCompleteTask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CompleteTask mock enable") @@ -67,7 +65,8 @@ type CompleteTaskReq struct { } // CompleteTaskResp ... -type CompleteTaskResp struct{} +type CompleteTaskResp struct { +} // completeTaskResp ... type completeTaskResp struct { diff --git a/api_task_task_delete.go b/api_task_task_delete.go index 27c74be3..218c750c 100644 --- a/api_task_task_delete.go +++ b/api_task_task_delete.go @@ -66,7 +66,8 @@ type DeleteTaskReq struct { } // DeleteTaskResp ... -type DeleteTaskResp struct{} +type DeleteTaskResp struct { +} // deleteTaskResp ... type deleteTaskResp struct { diff --git a/api_task_task_tasklists.go b/api_task_task_tasklists.go new file mode 100644 index 00000000..9b5a582b --- /dev/null +++ b/api_task_task_tasklists.go @@ -0,0 +1,85 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTaskTasklists 列取一个任务所在的所有清单的信息, 包括清单的GUID和所在自定义分组的GUID。 +// +// 只有调用身份有权限访问的清单信息会被返回。 +// 需要调用身份拥有任务的读取权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/tasklists +// new doc: https://open.feishu.cn/document/task-v2/task/tasklists +func (r *TaskService) GetTaskTasklists(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) { + if r.cli.mock.mockTaskGetTaskTasklists != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTasklists mock enable") + return r.cli.mock.mockTaskGetTaskTasklists(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Task", + API: "GetTaskTasklists", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/task/v2/tasks/:task_guid/tasklists", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTaskTasklistsResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTaskGetTaskTasklists mock TaskGetTaskTasklists method +func (r *Mock) MockTaskGetTaskTasklists(f func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error)) { + r.mockTaskGetTaskTasklists = f +} + +// UnMockTaskGetTaskTasklists un-mock TaskGetTaskTasklists method +func (r *Mock) UnMockTaskGetTaskTasklists() { + r.mockTaskGetTaskTasklists = nil +} + +// GetTaskTasklistsReq ... +type GetTaskTasklistsReq struct { + TaskGuid string `path:"task_guid" json:"-"` // 要获取清单列表的任务的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" +} + +// GetTaskTasklistsResp ... +type GetTaskTasklistsResp struct { + Tasklists []*GetTaskTasklistsRespTasklist `json:"tasklists,omitempty"` // 任务所在清单的摘要信息 +} + +// GetTaskTasklistsRespTasklist ... +type GetTaskTasklistsRespTasklist struct { + TasklistGuid string `json:"tasklist_guid,omitempty"` // 任务所在清单的guid + SectionGuid string `json:"section_guid,omitempty"` // 任务所在清单的自定义分组guid +} + +// getTaskTasklistsResp ... +type getTaskTasklistsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTaskTasklistsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_task_task_uncomplete.go b/api_task_task_uncomplete.go index f3ebce9e..fe2bb4e9 100644 --- a/api_task_task_uncomplete.go +++ b/api_task_task_uncomplete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/uncomplete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/uncomplete -// -// Deprecated func (r *TaskService) UncompleteTask(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) { if r.cli.mock.mockTaskUncompleteTask != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UncompleteTask mock enable") @@ -65,7 +63,8 @@ type UncompleteTaskReq struct { } // UncompleteTaskResp ... -type UncompleteTaskResp struct{} +type UncompleteTaskResp struct { +} // uncompleteTaskResp ... type uncompleteTaskResp struct { diff --git a/api_task_tasklist_activity_subscription_create.go b/api_task_tasklist_activity_subscription_create.go index 9755a7b1..fa41428d 100644 --- a/api_task_tasklist_activity_subscription_create.go +++ b/api_task_tasklist_activity_subscription_create.go @@ -27,7 +27,8 @@ import ( // 如有需要, 创建时也可以直接将`disabled`设为true, 创建一个禁止发送订阅通知的订阅。 // 添加订阅群时, 调用身份(用户或应用机器人)必须已是群成员。如果成功添加了订阅后, 调用身份丧失了清单的可编辑权限或者退出了群, 订阅依然会存在, 直到被删除。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create +// new doc: https://open.feishu.cn/document/task-v2/tasklist-activity_subscription/create func (r *TaskService) CreateTaskTasklistActivitySubscription(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskTasklistActivitySubscription != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskTasklistActivitySubscription mock enable") @@ -62,18 +63,18 @@ func (r *Mock) UnMockTaskCreateTaskTasklistActivitySubscription() { // CreateTaskTasklistActivitySubscriptionReq ... type CreateTaskTasklistActivitySubscriptionReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID, 示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - Name string `json:"name,omitempty"` // 订阅名称, 不能为空, 最大50个字符, 示例值: "我的订阅" - Subscribers []*CreateTaskTasklistActivitySubscriptionReqSubscriber `json:"subscribers,omitempty"` // 订阅者列表, 最大长度: `50` - IncludeKeys []int64 `json:"include_keys,omitempty"` // 订阅的event key列表。每个event key用一个数字表示。目前支持下列event key: 100: 任务添加入清单, 101: 任务从清单被移除, 103: 任务被完成, 104: 任务恢复为未完成, 109: 任务添加了负责人, 110: 任务更新了负责人, 111: 任务移除了负责人, 119: 任务添加了附件, 121: 任务中添加了新评论, 122: 任务中对评论进行回复, 129: 任务设置了新的开始时间, 130: 任务设置了新的截止时间, 131: 任务同时设置了新的开始/截止时间, 132: 任务同时移除了开始/截止时间, 该字段可以设置为空数组(即不对任何event进行通知);输入的`include_keys`的元素不能重复, 示例值: [100] - Disabled *bool `json:"disabled,omitempty"` // 该订阅是否为停用, 示例值: false + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Name string `json:"name,omitempty"` // 订阅名称, 不能为空, 最大50个字符。示例值: "我的订阅" + Subscribers []*CreateTaskTasklistActivitySubscriptionReqSubscriber `json:"subscribers,omitempty"` // 订阅者列表 最大长度: `50` + IncludeKeys []int64 `json:"include_keys,omitempty"` // 订阅的event key列表。每个event key用一个数字表示。目前支持下列event key: 100: 任务添加入清单- 101: 任务从清单被移除- 103: 任务被完成- 104: 任务恢复为未完成- 109: 任务添加了负责人- 110: 任务更新了负责人- 111: 任务移除了负责人- 119: 任务添加了附件- 121: 任务中添加了新评论- 122: 任务中对评论进行回复- 129: 任务设置了新的开始时间- 130: 任务设置了新的截止时间- 131: 任务同时设置了新的开始/截止时间- 132: 任务同时移除了开始/截止时间该字段可以设置为空数组(即不对任何event进行通知);输入的`include_keys`的元素不能重复。示例值: [100] + Disabled *bool `json:"disabled,omitempty"` // 该订阅是否为停用示例值: false } // CreateTaskTasklistActivitySubscriptionReqSubscriber ... type CreateTaskTasklistActivitySubscriptionReqSubscriber struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "oc_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型 (目前仅支持chat), 示例值: "chat", 默认值: `user` + ID *string `json:"id,omitempty"` // 表示member的id示例值: "oc_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型 (目前仅支持chat)示例值: "chat"默认值: `user` } // CreateTaskTasklistActivitySubscriptionResp ... diff --git a/api_task_tasklist_activity_subscription_delete.go b/api_task_tasklist_activity_subscription_delete.go index 6891e397..8e70d9ea 100644 --- a/api_task_tasklist_activity_subscription_delete.go +++ b/api_task_tasklist_activity_subscription_delete.go @@ -25,7 +25,8 @@ import ( // // 删除订阅需要有该清单的编辑权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/delete +// new doc: https://open.feishu.cn/document/task-v2/tasklist-activity_subscription/delete func (r *TaskService) DeleteTaskTasklistActivitySubscription(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskTasklistActivitySubscription != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskTasklistActivitySubscription mock enable") @@ -60,12 +61,13 @@ func (r *Mock) UnMockTaskDeleteTaskTasklistActivitySubscription() { // DeleteTaskTasklistActivitySubscriptionReq ... type DeleteTaskTasklistActivitySubscriptionReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到, 示例值: "f5ca6747-5ac3-422e-a97e-972c1b2c24f3" - ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 要删除的订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到, 示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到。示例值: "f5ca6747-5ac3-422e-a97e-972c1b2c24f3" + ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 要删除的订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到。示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" } // DeleteTaskTasklistActivitySubscriptionResp ... -type DeleteTaskTasklistActivitySubscriptionResp struct{} +type DeleteTaskTasklistActivitySubscriptionResp struct { +} // deleteTaskTasklistActivitySubscriptionResp ... type deleteTaskTasklistActivitySubscriptionResp struct { diff --git a/api_task_tasklist_activity_subscription_get.go b/api_task_tasklist_activity_subscription_get.go index 7a5768db..e386b422 100644 --- a/api_task_tasklist_activity_subscription_get.go +++ b/api_task_tasklist_activity_subscription_get.go @@ -25,7 +25,8 @@ import ( // // 获取动态订阅需要该清单的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/get +// new doc: https://open.feishu.cn/document/task-v2/tasklist-activity_subscription/get func (r *TaskService) GetTaskTasklistActivitySubscription(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTasklistActivitySubscription != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTasklistActivitySubscription mock enable") @@ -60,9 +61,9 @@ func (r *Mock) UnMockTaskGetTaskTasklistActivitySubscription() { // GetTaskTasklistActivitySubscriptionReq ... type GetTaskTasklistActivitySubscriptionReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到, 示例值: "33991879-704f-444f-81d7-55a6aa7be80c" - ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到, 示例值: "33991879-704f-444f-81d7-55a6aa7be80c" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到。示例值: "33991879-704f-444f-81d7-55a6aa7be80c" + ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到。示例值: "33991879-704f-444f-81d7-55a6aa7be80c" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetTaskTasklistActivitySubscriptionResp ... diff --git a/api_task_tasklist_activity_subscription_list.go b/api_task_tasklist_activity_subscription_list.go index b5bcbc79..66ca97df 100644 --- a/api_task_tasklist_activity_subscription_list.go +++ b/api_task_tasklist_activity_subscription_list.go @@ -25,7 +25,8 @@ import ( // // 列取动态订阅需要清单的读取权限。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list +// new doc: https://open.feishu.cn/document/task-v2/tasklist-activity_subscription/list func (r *TaskService) GetTaskTasklistActivitySubscriptionList(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTasklistActivitySubscriptionList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTasklistActivitySubscriptionList mock enable") @@ -60,9 +61,9 @@ func (r *Mock) UnMockTaskGetTaskTasklistActivitySubscriptionList() { // GetTaskTasklistActivitySubscriptionListReq ... type GetTaskTasklistActivitySubscriptionListReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到, 示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" - Limit *int64 `query:"limit" json:"-"` // 返回结果的最大数量, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `50` - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到。示例值: "d19e3a2a-edc0-4e4e-b7cc-950e162b53ae" + Limit *int64 `query:"limit" json:"-"` // 返回结果的最大数量示例值: 50默认值: `50` 取值范围: `1` ~ `50` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetTaskTasklistActivitySubscriptionListResp ... diff --git a/api_task_tasklist_activity_subscription_update.go b/api_task_tasklist_activity_subscription_update.go index ede6b27d..5eaf29f6 100644 --- a/api_task_tasklist_activity_subscription_update.go +++ b/api_task_tasklist_activity_subscription_update.go @@ -31,7 +31,8 @@ import ( // 如要更新订阅, 需要调用身份拥有该清单的编辑权限。 // 如更新了订阅者列表, 调用身份(用户或应用机器人)必须是被添加为订阅群的群成员。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/patch +// new doc: https://open.feishu.cn/document/task-v2/tasklist-activity_subscription/patch func (r *TaskService) UpdateTaskTasklistActivitySubscription(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) { if r.cli.mock.mockTaskUpdateTaskTasklistActivitySubscription != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskTasklistActivitySubscription mock enable") @@ -66,25 +67,25 @@ func (r *Mock) UnMockTaskUpdateTaskTasklistActivitySubscription() { // UpdateTaskTasklistActivitySubscriptionReq ... type UpdateTaskTasklistActivitySubscriptionReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到, 示例值: "33991879-704f-444f-81d7-55a6aa7be80c" - ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 要更新的动态订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到, 示例值: "f5ca6747-5ac3-422e-a97e-972c1b2c24f3" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单GUID。可以通过[创建清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create), 或者通过[获取清单列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list)接口查询得到。示例值: "33991879-704f-444f-81d7-55a6aa7be80c" + ActivitySubscriptionGuid string `path:"activity_subscription_guid" json:"-"` // 要更新的动态订阅GUID。可以通过[创建动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/create)接口创建, 或者通过[列取动态订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist-activity_subscription/list)查询得到。示例值: "f5ca6747-5ac3-422e-a97e-972c1b2c24f3" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID ActivitySubscription *UpdateTaskTasklistActivitySubscriptionReqActivitySubscription `json:"activity_subscription,omitempty"` // 要更新的订阅数据 - UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段列表, 示例值: ["name"], 可选值有: name: 订阅名称, include_keys: 订阅的事件类型列表, subscribers: 订阅成员列表, disabled: 是否禁用该订阅, 长度范围: `1` ~ `20` + UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段列表。示例值: ["name"]可选值有: 订阅名称订阅的事件类型列表订阅成员列表是否禁用该订阅 长度范围: `1` ~ `20` } // UpdateTaskTasklistActivitySubscriptionReqActivitySubscription ... type UpdateTaskTasklistActivitySubscriptionReqActivitySubscription struct { - Name *string `json:"name,omitempty"` // 订阅名称, 如更新, 不能为空, 最大支持50个字符, 示例值: "Roadmap订阅" - Subscribers []*UpdateTaskTasklistActivitySubscriptionReqActivitySubscriptionSubscriber `json:"subscribers,omitempty"` // 订阅者列表。如更新, 最大支持50个订阅者, 最大长度: `50` - IncludeKeys []int64 `json:"include_keys,omitempty"` // 要订阅的清单动态event key列表。每个event key用一个数字表示。目前支持下列event key: 100: 任务添加入清单, 101: 任务从清单被移除, 103: 任务被完成, 104: 任务恢复为未完成, 109: 任务添加了负责人, 110: 任务更新了负责人, 111: 任务移除了负责人, 119: 任务添加了附件, 121: 任务中添加了新评论, 122: 任务中对评论进行回复, 129: 任务设置了新的开始时间, 130: 任务设置了新的截止时间, 131: 任务同时设置了新的开始/截止时间, 132: 任务同时移除了开始/截止时间, 该字段可以设置为空数组(即不对任何event进行通知);输入的`include_keys`的元素不能重复, 示例值: [101] - Disabled *bool `json:"disabled,omitempty"` // 该订阅是否为停用, 示例值: false + Name *string `json:"name,omitempty"` // 订阅名称, 如更新, 不能为空, 最大支持50个字符。示例值: "Roadmap订阅" + Subscribers []*UpdateTaskTasklistActivitySubscriptionReqActivitySubscriptionSubscriber `json:"subscribers,omitempty"` // 订阅者列表。如更新, 最大支持50个订阅者。 最大长度: `50` + IncludeKeys []int64 `json:"include_keys,omitempty"` // 要订阅的清单动态event key列表。每个event key用一个数字表示。目前支持下列event key: 100: 任务添加入清单- 101: 任务从清单被移除- 103: 任务被完成- 104: 任务恢复为未完成- 109: 任务添加了负责人- 110: 任务更新了负责人- 111: 任务移除了负责人- 119: 任务添加了附件- 121: 任务中添加了新评论- 122: 任务中对评论进行回复- 129: 任务设置了新的开始时间- 130: 任务设置了新的截止时间- 131: 任务同时设置了新的开始/截止时间- 132: 任务同时移除了开始/截止时间该字段可以设置为空数组(即不对任何event进行通知);输入的`include_keys`的元素不能重复。示例值: [101] + Disabled *bool `json:"disabled,omitempty"` // 该订阅是否为停用示例值: false } // UpdateTaskTasklistActivitySubscriptionReqActivitySubscriptionSubscriber ... type UpdateTaskTasklistActivitySubscriptionReqActivitySubscriptionSubscriber struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "oc_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型。目前只支持群组, 示例值: "chat", 默认值: `user` + ID *string `json:"id,omitempty"` // 表示member的id示例值: "oc_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型。目前只支持群组。示例值: "chat"默认值: `user` } // UpdateTaskTasklistActivitySubscriptionResp ... diff --git a/api_task_tasklist_add.go b/api_task_tasklist_add.go index 966c0ef3..23335f95 100644 --- a/api_task_tasklist_add.go +++ b/api_task_tasklist_add.go @@ -26,7 +26,8 @@ import ( // 如果任务已经在该清单, 接口将返回成功。 // 需要调用身份同时拥有任务的编辑权限和清单的编辑权限。详情见[任务功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/overview)中的“任务是如何鉴权的?”章节和[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_tasklist +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/add_tasklist +// new doc: https://open.feishu.cn/document/task-v2/task/add_tasklist func (r *TaskService) AddTaskTasklist(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskAddTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskTasklist mock enable") @@ -61,10 +62,10 @@ func (r *Mock) UnMockTaskAddTaskTasklist() { // AddTaskTasklistReq ... type AddTaskTasklistReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要添加到清单的任务的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - TasklistGuid string `json:"tasklist_guid,omitempty"` // 要添加到的清单的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - SectionGuid *string `json:"section_guid,omitempty"` // 要添加到清单的自定义分组全局唯一ID, 如不填写表示添加到默认分组, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + TaskGuid string `path:"task_guid" json:"-"` // 要添加到清单的任务的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + TasklistGuid string `json:"tasklist_guid,omitempty"` // 要添加到的清单的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + SectionGuid *string `json:"section_guid,omitempty"` // 要添加到清单的自定义分组全局唯一ID, 如不填写表示添加到默认分组示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" } // AddTaskTasklistResp ... @@ -89,7 +90,7 @@ type AddTaskTasklistRespTask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *AddTaskTasklistRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_tasklist_create.go b/api_task_tasklist_create.go index d5e889ae..561b2284 100644 --- a/api_task_tasklist_create.go +++ b/api_task_tasklist_create.go @@ -26,7 +26,8 @@ import ( // 创建时, 必须填写清单的名字。同时, 可以设置通过`members`字段设置清单的协作成员。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节。 // 创建清单后, 创建人自动成为清单的所有者。如果请求同时将创建人设置为可编辑/可阅读角色, 则最终该用户成为清单所有者, 并自动从清单成员列表中消失。因为同一个用户在同一个清单只能拥有一个角色。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/create +// new doc: https://open.feishu.cn/document/task-v2/tasklist/create func (r *TaskService) CreateTaskTasklist(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskCreateTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#CreateTaskTasklist mock enable") @@ -61,16 +62,16 @@ func (r *Mock) UnMockTaskCreateTaskTasklist() { // CreateTaskTasklistReq ... type CreateTaskTasklistReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Name string `json:"name,omitempty"` // 清单名称, 必填。最多100个字符, 示例值: "年会工作任务清单" - Members []*CreateTaskTasklistReqMember `json:"members,omitempty"` // 清单的成员列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节, 最大长度: `500` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Name string `json:"name,omitempty"` // 清单名称, 必填。最多100个字符。示例值: "年会工作任务清单" + Members []*CreateTaskTasklistReqMember `json:"members,omitempty"` // 清单的成员列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节。 最大长度: `500` } // CreateTaskTasklistReqMember ... type CreateTaskTasklistReqMember struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 支持: user: 普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数, chat: 群组, 此时member的id是一个Open Chat ID, app: 应用, 此时member的id是一个应用的ID, 示例值: "user", 默认值: `user` - Role *string `json:"role,omitempty"` // 成员角色, 可以是"editor"(可编辑)或者"viewer"(可阅读)。默认为"viewer", 示例值: "editor", 最大长度: `20` 字符 + ID *string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型, 支持:普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数群组, 此时member的id是一个Open Chat ID应用, 此时member的id是一个应用的ID示例值: "user"默认值: `user` + Role *string `json:"role,omitempty"` // 成员角色, 可以是"editor"(可编辑)或者"viewer"(可阅读)。默认为"viewer"。示例值: "editor" 最大长度: `20` 字符 } // CreateTaskTasklistResp ... diff --git a/api_task_tasklist_delete.go b/api_task_tasklist_delete.go index beed56ee..5749f78e 100644 --- a/api_task_tasklist_delete.go +++ b/api_task_tasklist_delete.go @@ -26,7 +26,8 @@ import ( // 删除清单后, 不可对该清单做任何操作, 也无法再访问到清单。清单被删除后不可恢复。 // 删除清单需要清单管理权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/delete +// new doc: https://open.feishu.cn/document/task-v2/tasklist/delete func (r *TaskService) DeleteTaskTasklist(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskDeleteTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#DeleteTaskTasklist mock enable") @@ -61,11 +62,12 @@ func (r *Mock) UnMockTaskDeleteTaskTasklist() { // DeleteTaskTasklistReq ... type DeleteTaskTasklistReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 要删除的清单GUID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + TasklistGuid string `path:"tasklist_guid" json:"-"` // 要删除的清单GUID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" } // DeleteTaskTasklistResp ... -type DeleteTaskTasklistResp struct{} +type DeleteTaskTasklistResp struct { +} // deleteTaskTasklistResp ... type deleteTaskTasklistResp struct { diff --git a/api_task_tasklist_get.go b/api_task_tasklist_get.go index 10a051f5..716fbc0b 100644 --- a/api_task_tasklist_get.go +++ b/api_task_tasklist_get.go @@ -25,7 +25,8 @@ import ( // // 需要清单的读取权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/get +// new doc: https://open.feishu.cn/document/task-v2/tasklist/get func (r *TaskService) GetTaskTasklist(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTasklist mock enable") @@ -60,8 +61,8 @@ func (r *Mock) UnMockTaskGetTaskTasklist() { // GetTaskTasklistReq ... type GetTaskTasklistReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单全局唯一GUID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + TasklistGuid string `path:"tasklist_guid" json:"-"` // 清单全局唯一GUID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskTasklistResp ... diff --git a/api_task_tasklist_list.go b/api_task_tasklist_list.go index 8804950e..8ad30d23 100644 --- a/api_task_tasklist_list.go +++ b/api_task_tasklist_list.go @@ -23,7 +23,8 @@ import ( // GetTaskTasklistList 获取调用身份所有可读取的清单列表。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/list +// new doc: https://open.feishu.cn/document/task-v2/tasklist/list func (r *TaskService) GetTaskTasklistList(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTasklistList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTasklistList mock enable") @@ -58,9 +59,9 @@ func (r *Mock) UnMockTaskGetTaskTasklistList() { // GetTaskTasklistListReq ... type GetTaskTasklistListReq struct { - PageSize *int64 `query:"page_size" json:"-"` // 每页返回的清单数量, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE= - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + PageSize *int64 `query:"page_size" json:"-"` // 每页返回的清单数量示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskTasklistListResp ... diff --git a/api_task_tasklist_member_add.go b/api_task_tasklist_member_add.go index 15c109ed..50f9aaff 100644 --- a/api_task_tasklist_member_add.go +++ b/api_task_tasklist_member_add.go @@ -30,7 +30,8 @@ import ( // 本接口不能用来设置清单所有者, 如要设置, 可以使用[更新清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/patch)接口。 // 需要清单编辑权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/add_members +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/add_members +// new doc: https://open.feishu.cn/document/task-v2/tasklist/add_members func (r *TaskService) AddTaskTasklistMember(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) { if r.cli.mock.mockTaskAddTaskTasklistMember != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#AddTaskTasklistMember mock enable") @@ -65,16 +66,16 @@ func (r *Mock) UnMockTaskAddTaskTasklistMember() { // AddTaskTasklistMemberReq ... type AddTaskTasklistMemberReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 要添加成员的清单的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Members []*AddTaskTasklistMemberReqMember `json:"members,omitempty"` // 要添加的成员列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节, 长度范围: `1` ~ `500` + TasklistGuid string `path:"tasklist_guid" json:"-"` // 要添加成员的清单的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Members []*AddTaskTasklistMemberReqMember `json:"members,omitempty"` // 要添加的成员列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节。 长度范围: `1` ~ `500` } // AddTaskTasklistMemberReqMember ... type AddTaskTasklistMemberReqMember struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 支持: user: 普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数, chat: 群组, 此时member的id是一个Open Chat ID, app: 应用, 此时member的id是一个应用的ID, 示例值: "user", 默认值: `user` - Role *string `json:"role,omitempty"` // 成员角色。支持: editor: 可编辑, viewer: 可阅读, 默认为"viewer", 不能通过该字段设置清单所有者角色, 示例值: "editor", 最大长度: `20` 字符 + ID *string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型, 支持: 普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数群组, 此时member的id是一个Open Chat ID应用, 此时member的id是一个应用的ID示例值: "user"默认值: `user` + Role *string `json:"role,omitempty"` // 成员角色。支持: 可编辑可阅读默认为"viewer"。不能通过该字段设置清单所有者角色。示例值: "editor" 最大长度: `20` 字符 } // AddTaskTasklistMemberResp ... diff --git a/api_task_tasklist_member_remove.go b/api_task_tasklist_member_remove.go index b342d366..84266a28 100644 --- a/api_task_tasklist_member_remove.go +++ b/api_task_tasklist_member_remove.go @@ -28,7 +28,8 @@ import ( // 该接口不能用于移除清单所有者。如果要移除的成员是清单所有者, 则会被自动忽略。如要设置清单所有者, 需要调用[更新清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/patch)接口。 // 需要清单编辑权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/remove_members +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/remove_members +// new doc: https://open.feishu.cn/document/task-v2/tasklist/remove_members func (r *TaskService) RemoveTaskTasklistMember(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskTasklistMember != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskTasklistMember mock enable") @@ -63,16 +64,16 @@ func (r *Mock) UnMockTaskRemoveTaskTasklistMember() { // RemoveTaskTasklistMemberReq ... type RemoveTaskTasklistMemberReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 要移除协作人的清单全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - Members []*RemoveTaskTasklistMemberReqMember `json:"members,omitempty"` // 要移除的member列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节, 长度范围: `1` ~ `500` + TasklistGuid string `path:"tasklist_guid" json:"-"` // 要移除协作人的清单全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + Members []*RemoveTaskTasklistMemberReqMember `json:"members,omitempty"` // 要移除的member列表。关于member的格式, 详见[功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/overview)中的“ 如何表示任务和清单的成员?”章节。 长度范围: `1` ~ `500` } // RemoveTaskTasklistMemberReqMember ... type RemoveTaskTasklistMemberReqMember struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 支持: user: 普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数, chat: 群组, 此时member的id是一个Open Chat ID, app: 应用, 此时member的id是一个应用的ID, 示例值: "user", 默认值: `user` - Role *string `json:"role,omitempty"` // 清单角色。移除清单成员时该字段不需要填写, 示例值: "editor", 最大长度: `20` 字符 + ID *string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型, 支持: 普通用户, 此时member的id是一个表示用户的ID, 比如open_id。具体格式取决于user_id_type参数群组, 此时member的id是一个Open Chat ID应用, 此时member的id是一个应用的ID示例值: "user"默认值: `user` + Role *string `json:"role,omitempty"` // 清单角色。移除清单成员时该字段不需要填写。示例值: "editor" 最大长度: `20` 字符 } // RemoveTaskTasklistMemberResp ... diff --git a/api_task_tasklist_remove.go b/api_task_tasklist_remove.go index a7947d0e..6aeafa32 100644 --- a/api_task_tasklist_remove.go +++ b/api_task_tasklist_remove.go @@ -26,7 +26,8 @@ import ( // 如果任务不在清单中, 接口将返回成功。 // 需要清单的可编辑权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_tasklist +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/remove_tasklist +// new doc: https://open.feishu.cn/document/task-v2/task/remove_tasklist func (r *TaskService) RemoveTaskTasklist(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskRemoveTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#RemoveTaskTasklist mock enable") @@ -61,9 +62,9 @@ func (r *Mock) UnMockTaskRemoveTaskTasklist() { // RemoveTaskTasklistReq ... type RemoveTaskTasklistReq struct { - TaskGuid string `path:"task_guid" json:"-"` // 要从清单移除的任务的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` - TasklistGuid string `json:"tasklist_guid,omitempty"` // 要移除的清单的全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb", 最大长度: `100` 字符 + TaskGuid string `path:"task_guid" json:"-"` // 要从清单移除的任务的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` + TasklistGuid string `json:"tasklist_guid,omitempty"` // 要移除的清单的全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" 最大长度: `100` 字符 } // RemoveTaskTasklistResp ... @@ -88,7 +89,7 @@ type RemoveTaskTasklistRespTask struct { RepeatRule string `json:"repeat_rule,omitempty"` // 如果任务为重复任务, 返回重复任务的配置 ParentTaskGuid string `json:"parent_task_guid,omitempty"` // 如果当前任务为某个任务的子任务, 返回父任务的guid Mode int64 `json:"mode,omitempty"` // 任务的模式。1 - 会签任务;2 - 或签任务 - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知来源, 1: 任务中心, 2: 群组任务/消息转任务, 6: 通过开放平台以tenant_access_token授权创建的任务, 7: 通过开放平台以user_access_token授权创建的任务, 8: 文档任务 + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知来源任务中心群组任务/消息转任务通过开放平台以tenant_access_token授权创建的任务通过开放平台以user_access_token授权创建的任务文档任务 CustomComplete *RemoveTaskTasklistRespTaskCustomComplete `json:"custom_complete,omitempty"` // 任务的自定义完成配置 TaskID string `json:"task_id,omitempty"` // 任务界面上的代码 CreatedAt string `json:"created_at,omitempty"` // 任务创建时间戳(ms) diff --git a/api_task_tasklist_task_list.go b/api_task_tasklist_task_list.go index c005a0d0..a11a2220 100644 --- a/api_task_tasklist_task_list.go +++ b/api_task_tasklist_task_list.go @@ -25,9 +25,11 @@ import ( // // 本接口支持分页。清单中的任务以“自定义拖拽”的顺序返回。 // 本接口支持简单的按照任务的完成状态或者任务的创建时间范围过滤。 +// 分页参数说明: 是否还有分页数据的判断依据是has_more=true, 并非items个数, 由于历史原因可能出现当前分页items为空情况。 // 需要清单读取权限。详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/tasks +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/tasks +// new doc: https://open.feishu.cn/document/task-v2/tasklist/tasks func (r *TaskService) GetTaskTaskListOfTasklist(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) { if r.cli.mock.mockTaskGetTaskTaskListOfTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#GetTaskTaskListOfTasklist mock enable") @@ -62,13 +64,13 @@ func (r *Mock) UnMockTaskGetTaskTaskListOfTasklist() { // GetTaskTaskListOfTasklistReq ... type GetTaskTaskListOfTasklistReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 要获取任务的清单全局唯一ID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - PageSize *int64 `query:"page_size" json:"-"` // 每页返回的任务数量, 示例值: 50, 默认值: `50`, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: aWQ9NzEwMjMzMjMxMDE=, 最大长度: `100` 字符 - Completed *bool `query:"completed" json:"-"` // 只查看特定完成状态的任务, 填写“true”表示返回已经完成的任务;“false”表示只返回未完成的任务;不填写表示不按完成状态过滤, 示例值: true - CreatedFrom *string `query:"created_from" json:"-"` // 任务创建的起始时间戳(ms), 闭区间, 不填写默认为首个任务的创建时间戳, 示例值: 1675742789470 - CreatedTo *string `query:"created_to" json:"-"` // 任务创建的结束时间戳(ms), 闭区间, 不填写默认为最后创建任务的创建时间戳, 示例值: 1675742789470 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + TasklistGuid string `path:"tasklist_guid" json:"-"` // 要获取任务的清单全局唯一ID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + PageSize *int64 `query:"page_size" json:"-"` // 每页返回的任务数量示例值: 50默认值: `50` 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: aWQ9NzEwMjMzMjMxMDE= 最大长度: `100` 字符 + Completed *bool `query:"completed" json:"-"` // 只查看特定完成状态的任务, 填写“true”表示返回已经完成的任务;“false”表示只返回未完成的任务;不填写表示不按完成状态过滤。示例值: true + CreatedFrom *string `query:"created_from" json:"-"` // 任务创建的起始时间戳(ms), 闭区间, 不填写默认为首个任务的创建时间戳示例值: 1675742789470 + CreatedTo *string `query:"created_to" json:"-"` // 任务创建的结束时间戳(ms), 闭区间, 不填写默认为最后创建任务的创建时间戳示例值: 1675742789470 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` } // GetTaskTaskListOfTasklistResp ... @@ -100,6 +102,7 @@ type GetTaskTaskListOfTasklistRespItemMember struct { ID string `json:"id,omitempty"` // 表示member的id Type string `json:"type,omitempty"` // 成员的类型 Role string `json:"role,omitempty"` // 成员角色 + Name string `json:"name,omitempty"` // 成员名称 } // GetTaskTaskListOfTasklistRespItemStart ... diff --git a/api_task_tasklist_update.go b/api_task_tasklist_update.go index 3069a758..d8808725 100644 --- a/api_task_tasklist_update.go +++ b/api_task_tasklist_update.go @@ -35,7 +35,8 @@ import ( // 更新清单所有人必须由清单的管理权限。 // 详情见[清单功能概述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/overview)中的“清单是如何鉴权的?“章节。 // -// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/tasklist/patch +// new doc: https://open.feishu.cn/document/task-v2/tasklist/patch func (r *TaskService) UpdateTaskTasklist(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) { if r.cli.mock.mockTaskUpdateTaskTasklist != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Task#UpdateTaskTasklist mock enable") @@ -70,24 +71,24 @@ func (r *Mock) UnMockTaskUpdateTaskTasklist() { // UpdateTaskTasklistReq ... type UpdateTaskTasklistReq struct { - TasklistGuid string `path:"tasklist_guid" json:"-"` // 要更新的清单的全局唯一GUID, 示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 默认值: `open_id` + TasklistGuid string `path:"tasklist_guid" json:"-"` // 要更新的清单的全局唯一GUID示例值: "d300a75f-c56a-4be9-80d1-e47653028ceb" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id默认值: `open_id` Tasklist *UpdateTaskTasklistReqTasklist `json:"tasklist,omitempty"` // 要更新清单的数据 - UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持, name: 更新清单名, owner: 更新清单所有者, 示例值: ["owner"], 最小长度: `1` - OriginOwnerToRole *string `json:"origin_owner_to_role,omitempty"` // 该字段表示如果更新了新的所有者, 则将原所有者设为指定的新的角色。仅在更新清单所有者时生效。支持"editor", "viewer"和"none"。默认为"none", 如果不设置或设为"none", 原清单所有者将不具有任何清单的角色。如果没有通过其他渠道(比如通过协作群组间接授权), 原清单所有者将失去对清单的所有权限, 示例值: "editor", 可选值有: editor: 原所有者变为可编辑角色, viewer: 原所有者变为可阅读角色, none: 原所有者直接退出清单, 默认值: `none` + UpdateFields []string `json:"update_fields,omitempty"` // 要更新的字段名, 支持更新清单名更新清单所有者示例值: ["owner"] 最小长度: `1` + OriginOwnerToRole *string `json:"origin_owner_to_role,omitempty"` // 该字段表示如果更新了新的所有者, 则将原所有者设为指定的新的角色。仅在更新清单所有者时生效。支持"editor", "viewer"和"none"。默认为"none"。如果不设置或设为"none", 原清单所有者将不具有任何清单的角色。如果没有通过其他渠道(比如通过协作群组间接授权), 原清单所有者将失去对清单的所有权限。示例值: "editor"可选值有: 原所有者变为可编辑角色原所有者变为可阅读角色原所有者直接退出清单默认值: `none` } // UpdateTaskTasklistReqTasklist ... type UpdateTaskTasklistReqTasklist struct { - Name *string `json:"name,omitempty"` // 清单名称。如要更新, 不能设为空。最大100个字符, 示例值: "年会工作任务清单" + Name *string `json:"name,omitempty"` // 清单名称。如要更新, 不能设为空。最大100个字符。示例值: "年会工作任务清单" Owner *UpdateTaskTasklistReqTasklistOwner `json:"owner,omitempty"` // 更新的清单所有者。 } // UpdateTaskTasklistReqTasklistOwner ... type UpdateTaskTasklistReqTasklistOwner struct { - ID *string `json:"id,omitempty"` // 表示member的id, 示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f", 最大长度: `100` 字符 - Type *string `json:"type,omitempty"` // 成员的类型, 可以是"user"或者"app"。所有者的类型不可以是"chat", 示例值: "user", 默认值: `user` - Role *string `json:"role,omitempty"` // 成员角色, 此时必须是"owner", 示例值: "owner", 最大长度: `20` 字符 + ID *string `json:"id,omitempty"` // 表示member的id示例值: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f" 最大长度: `100` 字符 + Type *string `json:"type,omitempty"` // 成员的类型, 可以是"user"或者"app"。所有者的类型不可以是"chat"。示例值: "user"默认值: `user` + Role *string `json:"role,omitempty"` // 成员角色, 此时必须是"owner"示例值: "owner" 最大长度: `20` 字符 } // UpdateTaskTasklistResp ... diff --git a/api_task_v1_comment_get_list.go b/api_task_v1_comment_get_list.go index 6e7abfbf..ae549084 100644 --- a/api_task_v1_comment_get_list.go +++ b/api_task_v1_comment_get_list.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/list // new doc: https://open.feishu.cn/document/server-docs/task-v1/task-comment/list -// -// Deprecated func (r *TaskV1Service) GetTaskV1CommentList(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) { if r.cli.mock.mockTaskV1GetTaskV1CommentList != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#GetTaskV1CommentList mock enable") @@ -61,11 +59,11 @@ func (r *Mock) UnMockTaskV1GetTaskV1CommentList() { // GetTaskV1CommentListReq ... type GetTaskV1CommentListReq struct { - TaskID string `path:"task_id" json:"-"` // 任务id, 示例值: ""83912691-2e43-47fc-94a4-d512e03984fa"" - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 10, 最大值: `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: "MTYzMTg3ODUxNQ==" - ListDirection *int64 `query:"list_direction" json:"-"` // 评论排序标记, 可按照评论时间从小到大查询, 或者评论时间从大到小查询, 不填默认按照从小到大, 示例值: 0, 可选值有: 0: 按照回复时间从小到大查询, 1: 按照回复时间从大到小查询, 默认值: `0` - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TaskID string `path:"task_id" json:"-"` // 任务id示例值: ""83912691-2e43-47fc-94a4-d512e03984fa"" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "MTYzMTg3ODUxNQ==" + ListDirection *int64 `query:"list_direction" json:"-"` // 评论排序标记, 可按照评论时间从小到大查询, 或者评论时间从大到小查询, 不填默认按照从小到大示例值: 0可选值有: 按照回复时间从小到大查询按照回复时间从大到小查询默认值: `0` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetTaskV1CommentListResp ... @@ -77,7 +75,7 @@ type GetTaskV1CommentListResp struct { // GetTaskV1CommentListRespItem ... type GetTaskV1CommentListRespItem struct { - Content string `json:"content,omitempty"` // 评论内容, 评论内容和富文本评论内容同时存在时只使用富文本评论内容。 + Content string `json:"content,omitempty"` // 评论内容。评论内容和富文本评论内容同时存在时只使用富文本评论内容。 ParentID string `json:"parent_id,omitempty"` // 评论的父ID, 创建评论时若不为空则为某条评论的回复, 若为空则不是回复 ID string `json:"id,omitempty"` // 评论ID, 由飞书服务器发号 CreateMilliTime string `json:"create_milli_time,omitempty"` // 评论创建的时间戳, 单位为毫秒, 用于展示, 创建时不用填写 diff --git a/api_task_v1_task_create.go b/api_task_v1_task_create.go index 3d07d507..2b28c82e 100644 --- a/api_task_v1_task_create.go +++ b/api_task_v1_task_create.go @@ -28,8 +28,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/create // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/create -// -// Deprecated func (r *TaskV1Service) CreateTaskV1(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) { if r.cli.mock.mockTaskV1CreateTaskV1 != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#CreateTaskV1 mock enable") @@ -64,38 +62,38 @@ func (r *Mock) UnMockTaskV1CreateTaskV1() { // CreateTaskV1Req ... type CreateTaskV1Req struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - Summary *string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题, 示例值: "完成本季度OKR编写", 长度范围: `0` ~ `1000` 字符 - Description *string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注, 示例值: "对本次会议内容复盘总结, 编写更新本季度OKR", 长度范围: `0` ~ `65536` 字符 - Extra *string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户, 示例值: "dGVzdA[", 长度范围: `0` ~ `65536` 字符 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Summary *string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。示例值: "完成本季度OKR编写" 长度范围: `0` ~ `1000` 字符 + Description *string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。示例值: "对本次会议内容复盘总结, 编写更新本季度OKR" 长度范围: `0` ~ `65536` 字符 + Extra *string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。示例值: "dGVzdA[" 长度范围: `0` ~ `65536` 字符 Due *CreateTaskV1ReqDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *CreateTaskV1ReqOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - CanEdit *bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false, 已经废弃, 向前兼容故仍然保留, 但不推荐使用, 示例值: true, 默认值: `false` - Custom *string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "{\"custom_complete\":{\"android\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"ios\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"pc\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}}}", 长度范围: `0` ~ `65536` 字符 - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"], 最大长度: `100` - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"], 最大长度: `100` - RepeatRule *string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节, 示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR" - RichSummary *string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 示例值: "完成本季度OKR编写\[飞书开放平台](https://open.feishu.cn/)", 长度范围: `0` ~ `1000` 字符 - RichDescription *string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 示例值: "对本次会议内容复盘总结, 编写更新本季度OKR\[飞书开放平台](https://open.feishu.cn/)", 长度范围: `0` ~ `65536` 字符 + CanEdit *bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false已经废弃, 向前兼容故仍然保留, 但不推荐使用示例值: true默认值: `false` + Custom *string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "{\"custom_complete\":{\"android\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"ios\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"pc\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}}}" 长度范围: `0` ~ `65536` 字符 + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"] 最大长度: `100` + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"] 最大长度: `100` + RepeatRule *string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR" + RichSummary *string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。示例值: "完成本季度OKR编写\[飞书开放平台](https://open.feishu.cn/)" 长度范围: `0` ~ `1000` 字符 + RichDescription *string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)示例值: "对本次会议内容复盘总结, 编写更新本季度OKR\[飞书开放平台](https://open.feishu.cn/)" 长度范围: `0` ~ `65536` 字符 } // CreateTaskV1ReqDue ... type CreateTaskV1ReqDue struct { - Time *string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒), 示例值: "1623124318" - Timezone *string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones), 示例值: "Asia/Shanghai", 默认值: `Asia/Shanghai` - IsAllDay *bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务, 示例值: false, 默认值: `false` + Time *string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。示例值: "1623124318" + Timezone *string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。示例值: "Asia/Shanghai"默认值: `Asia/Shanghai` + IsAllDay *bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。示例值: false默认值: `false` } // CreateTaskV1ReqOrigin ... type CreateTaskV1ReqOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "{\"zh_cn\": \"IT 工作台\", \"en_us\": \"IT Workspace\"}", 长度范围: `0` ~ `1024` 字符 + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "{\"zh_cn\": \"IT 工作台\", \"en_us\": \"IT Workspace\"}" 长度范围: `0` ~ `1024` 字符 Href *CreateTaskV1ReqOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // CreateTaskV1ReqOriginHref ... type CreateTaskV1ReqOriginHref struct { - URL *string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "https://support.feishu.com/internal/foo-bar", 长度范围: `0` ~ `1024` 字符 - Title *string `json:"title,omitempty"` // 链接对应的标题, 示例值: "反馈一个问题, 需要协助排查", 长度范围: `0` ~ `512` 字符 + URL *string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "https://support.feishu.com/internal/foo-bar" 长度范围: `0` ~ `1024` 字符 + Title *string `json:"title,omitempty"` // 链接对应的标题示例值: "反馈一个问题, 需要协助排查" 长度范围: `0` ~ `512` 字符 } // CreateTaskV1Resp ... @@ -106,37 +104,37 @@ type CreateTaskV1Resp struct { // CreateTaskV1RespTask ... type CreateTaskV1RespTask struct { ID string `json:"id,omitempty"` // 任务的唯一ID, 例如"83912691-2e43-47fc-94a4-d512e03984fa" - Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题。 - Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注。 - CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成, 不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 - CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID, 其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id, 特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 - Extra string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户。 + Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。 + Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。 + CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成。不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 + CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id。特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 + Extra string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。 CreateTime string `json:"create_time,omitempty"` // 任务的创建时间的Unix时间戳(单位为秒) - UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒), 创建任务时update_time与create_time相同 + UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒)创建任务时update_time与create_time相同 Due *CreateTaskV1RespTaskDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *CreateTaskV1RespTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - Custom string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知类型, 1: 来源任务中心创建, 2: 来源消息转任务, 3: 来源云文档, 4: 来源文档单品, 5: 来源PANO, 6: 来源tenant_access_token创建的任务, 7: 来源user_access_token创建的任务, 8: 来源新版云文档 + Custom string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知类型来源任务中心创建来源消息转任务来源云文档来源文档单品来源PANO来源tenant_access_token创建的任务来源user_access_token创建的任务来源新版云文档 Followers []*CreateTaskV1RespTaskFollower `json:"followers,omitempty"` // 任务的关注者 Collaborators []*CreateTaskV1RespTaskCollaborator `json:"collaborators,omitempty"` // 任务的执行者 - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 - RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 + RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 RichDescription string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) } // CreateTaskV1RespTaskCollaborator ... type CreateTaskV1RespTaskCollaborator struct { - ID string `json:"id,omitempty"` // 任务执行者的 ID, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 - IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + ID string `json:"id,omitempty"` // 任务执行者的 ID。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 + IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 } // CreateTaskV1RespTaskDue ... type CreateTaskV1RespTaskDue struct { Time string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。 - Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 - IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务。 + Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 + IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。 } // CreateTaskV1RespTaskFollower ... @@ -147,13 +145,13 @@ type CreateTaskV1RespTaskFollower struct { // CreateTaskV1RespTaskOrigin ... type CreateTaskV1RespTaskOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Href *CreateTaskV1RespTaskOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // CreateTaskV1RespTaskOriginHref ... type CreateTaskV1RespTaskOriginHref struct { - URL string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + URL string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Title string `json:"title,omitempty"` // 链接对应的标题 } diff --git a/api_task_v1_task_delete.go b/api_task_v1_task_delete.go index c10e60bd..97d57ded 100644 --- a/api_task_v1_task_delete.go +++ b/api_task_v1_task_delete.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/delete // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/delete -// -// Deprecated func (r *TaskV1Service) DeleteTaskV1(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) { if r.cli.mock.mockTaskV1DeleteTaskV1 != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#DeleteTaskV1 mock enable") @@ -61,11 +59,12 @@ func (r *Mock) UnMockTaskV1DeleteTaskV1() { // DeleteTaskV1Req ... type DeleteTaskV1Req struct { - TaskID string `path:"task_id" json:"-"` // 任务 ID, 示例值: "83912691-2e43-47fc-94a4-d512e03984fa" + TaskID string `path:"task_id" json:"-"` // 任务 ID示例值: "83912691-2e43-47fc-94a4-d512e03984fa" } // DeleteTaskV1Resp ... -type DeleteTaskV1Resp struct{} +type DeleteTaskV1Resp struct { +} // deleteTaskV1Resp ... type deleteTaskV1Resp struct { diff --git a/api_task_v1_task_get.go b/api_task_v1_task_get.go index e56039c3..5be97762 100644 --- a/api_task_v1_task_get.go +++ b/api_task_v1_task_get.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/get // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/get -// -// Deprecated func (r *TaskV1Service) GetTaskV1(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) { if r.cli.mock.mockTaskV1GetTaskV1 != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#GetTaskV1 mock enable") @@ -61,8 +59,8 @@ func (r *Mock) UnMockTaskV1GetTaskV1() { // GetTaskV1Req ... type GetTaskV1Req struct { - TaskID string `path:"task_id" json:"-"` // 任务 ID, 示例值: "83912691-2e43-47fc-94a4-d512e03984fa" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TaskID string `path:"task_id" json:"-"` // 任务 ID示例值: "83912691-2e43-47fc-94a4-d512e03984fa" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetTaskV1Resp ... @@ -73,38 +71,38 @@ type GetTaskV1Resp struct { // GetTaskV1RespTask ... type GetTaskV1RespTask struct { ID string `json:"id,omitempty"` // 任务的唯一ID, 例如"83912691-2e43-47fc-94a4-d512e03984fa" - Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题。 - Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注。 - CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成, 不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 - CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID, 其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id, 特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 - Extra string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户。 + Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。 + Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。 + CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成。不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 + CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id。特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 + Extra string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。 CreateTime string `json:"create_time,omitempty"` // 任务的创建时间的Unix时间戳(单位为秒) - UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒), 创建任务时update_time与create_time相同 + UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒)创建任务时update_time与create_time相同 Due *GetTaskV1RespTaskDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *GetTaskV1RespTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - CanEdit bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false, 已经废弃, 向前兼容故仍然保留, 但不推荐使用 - Custom string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知类型, 1: 来源任务中心创建, 2: 来源消息转任务, 3: 来源云文档, 4: 来源文档单品, 5: 来源PANO, 6: 来源tenant_access_token创建的任务, 7: 来源user_access_token创建的任务, 8: 来源新版云文档 + CanEdit bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false已经废弃, 向前兼容故仍然保留, 但不推荐使用 + Custom string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知类型来源任务中心创建来源消息转任务来源云文档来源文档单品来源PANO来源tenant_access_token创建的任务来源user_access_token创建的任务来源新版云文档 Followers []*GetTaskV1RespTaskFollower `json:"followers,omitempty"` // 任务的关注者 Collaborators []*GetTaskV1RespTaskCollaborator `json:"collaborators,omitempty"` // 任务的执行者 - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 - RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 + RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 RichDescription string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) } // GetTaskV1RespTaskCollaborator ... type GetTaskV1RespTaskCollaborator struct { - ID string `json:"id,omitempty"` // 任务执行者的 ID, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 - IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + ID string `json:"id,omitempty"` // 任务执行者的 ID。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 + IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 } // GetTaskV1RespTaskDue ... type GetTaskV1RespTaskDue struct { Time string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。 - Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 - IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务。 + Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 + IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。 } // GetTaskV1RespTaskFollower ... @@ -115,13 +113,13 @@ type GetTaskV1RespTaskFollower struct { // GetTaskV1RespTaskOrigin ... type GetTaskV1RespTaskOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Href *GetTaskV1RespTaskOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // GetTaskV1RespTaskOriginHref ... type GetTaskV1RespTaskOriginHref struct { - URL string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + URL string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Title string `json:"title,omitempty"` // 链接对应的标题 } diff --git a/api_task_v1_task_lst.go b/api_task_v1_task_lst.go index eb235527..6152ede9 100644 --- a/api_task_v1_task_lst.go +++ b/api_task_v1_task_lst.go @@ -27,8 +27,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/list // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/list -// -// Deprecated func (r *TaskV1Service) GetTaskV1List(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) { if r.cli.mock.mockTaskV1GetTaskV1List != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#GetTaskV1List mock enable") @@ -63,12 +61,12 @@ func (r *Mock) UnMockTaskV1GetTaskV1List() { // GetTaskV1ListReq ... type GetTaskV1ListReq struct { - PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 示例值: 10, 最大值: `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: MTYzMTg3ODUxNQ[ - StartCreateTime *string `query:"start_create_time" json:"-"` // 范围查询任务时, 查询的起始时间。不填时默认起始时间为第一个任务的创建时间, 示例值: 1652323331 - EndCreateTime *string `query:"end_create_time" json:"-"` // 范围查询任务时, 查询的结束时间。不填时默认结束时间为最后一个任务的创建时间, 示例值: 1652323335 - TaskCompleted *bool `query:"task_completed" json:"-"` // 可用于查询时过滤任务完成状态。true表示只返回已完成的任务, false表示只返回未完成的任务。不填时表示同时返回两种完成状态的任务, 示例值: false - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 最大值: `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: MTYzMTg3ODUxNQ[ + StartCreateTime *string `query:"start_create_time" json:"-"` // 范围查询任务时, 查询的起始时间。不填时默认起始时间为第一个任务的创建时间。示例值: 1652323331 + EndCreateTime *string `query:"end_create_time" json:"-"` // 范围查询任务时, 查询的结束时间。不填时默认结束时间为最后一个任务的创建时间。示例值: 1652323335 + TaskCompleted *bool `query:"task_completed" json:"-"` // 可用于查询时过滤任务完成状态。true表示只返回已完成的任务, false表示只返回未完成的任务。不填时表示同时返回两种完成状态的任务。示例值: false + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // GetTaskV1ListResp ... @@ -81,38 +79,38 @@ type GetTaskV1ListResp struct { // GetTaskV1ListRespItem ... type GetTaskV1ListRespItem struct { ID string `json:"id,omitempty"` // 任务的唯一ID, 例如"83912691-2e43-47fc-94a4-d512e03984fa" - Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题。 - Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注。 - CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成, 不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 - CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID, 其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id, 特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 - Extra string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户。 + Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。 + Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。 + CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成。不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 + CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id。特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 + Extra string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。 CreateTime string `json:"create_time,omitempty"` // 任务的创建时间的Unix时间戳(单位为秒) - UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒), 创建任务时update_time与create_time相同 + UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒)创建任务时update_time与create_time相同 Due *GetTaskV1ListRespItemDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *GetTaskV1ListRespItemOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - CanEdit bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false, 已经废弃, 向前兼容故仍然保留, 但不推荐使用 - Custom string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知类型, 1: 来源任务中心创建, 2: 来源消息转任务, 3: 来源云文档, 4: 来源文档单品, 5: 来源PANO, 6: 来源tenant_access_token创建的任务, 7: 来源user_access_token创建的任务, 8: 来源新版云文档 + CanEdit bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false已经废弃, 向前兼容故仍然保留, 但不推荐使用 + Custom string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知类型来源任务中心创建来源消息转任务来源云文档来源文档单品来源PANO来源tenant_access_token创建的任务来源user_access_token创建的任务来源新版云文档 Followers []*GetTaskV1ListRespItemFollower `json:"followers,omitempty"` // 任务的关注者 Collaborators []*GetTaskV1ListRespItemCollaborator `json:"collaborators,omitempty"` // 任务的执行者 - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 - RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 + RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 RichDescription string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) } // GetTaskV1ListRespItemCollaborator ... type GetTaskV1ListRespItemCollaborator struct { - ID string `json:"id,omitempty"` // 任务执行者的 ID, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 - IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + ID string `json:"id,omitempty"` // 任务执行者的 ID。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 + IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 } // GetTaskV1ListRespItemDue ... type GetTaskV1ListRespItemDue struct { Time string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。 - Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 - IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务。 + Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 + IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。 } // GetTaskV1ListRespItemFollower ... @@ -123,13 +121,13 @@ type GetTaskV1ListRespItemFollower struct { // GetTaskV1ListRespItemOrigin ... type GetTaskV1ListRespItemOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Href *GetTaskV1ListRespItemOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // GetTaskV1ListRespItemOriginHref ... type GetTaskV1ListRespItemOriginHref struct { - URL string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + URL string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Title string `json:"title,omitempty"` // 链接对应的标题 } diff --git a/api_task_v1_task_update.go b/api_task_v1_task_update.go index a4e00332..a5978215 100644 --- a/api_task_v1_task_update.go +++ b/api_task_v1_task_update.go @@ -25,8 +25,6 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/patch // new doc: https://open.feishu.cn/document/server-docs/task-v1/task/patch -// -// Deprecated func (r *TaskV1Service) UpdateTaskV1(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) { if r.cli.mock.mockTaskV1UpdateTaskV1 != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] TaskV1#UpdateTaskV1 mock enable") @@ -61,59 +59,59 @@ func (r *Mock) UnMockTaskV1UpdateTaskV1() { // UpdateTaskV1Req ... type UpdateTaskV1Req struct { - TaskID string `path:"task_id" json:"-"` // 任务 ID, 示例值: "83912691-2e43-47fc-94a4-d512e03984fa" - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID + TaskID string `path:"task_id" json:"-"` // 任务 ID示例值: "83912691-2e43-47fc-94a4-d512e03984fa" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID Task *UpdateTaskV1ReqTask `json:"task,omitempty"` // 被更新的任务实体基础信息 - UpdateFields []string `json:"update_fields,omitempty"` // 指定需要更新的任务字段。可以更新的字段包括: summary: 任务标题(普通文本), rich_summary: 任务标题(富文本), description: 任务描述(普通文本), rich_description: 任务描述(富文本), due: 任务截止时间, extra: 任务附属信息, custom: 任务自定义完成规则, follower_ids: 任务关注人ID列表, collaborator_ids: 任务执行者ID列表, repeat_rule: 任务重复规则, 示例值: ["summary"] + UpdateFields []string `json:"update_fields,omitempty"` // 指定需要更新的任务字段。可以更新的字段包括: 任务标题(普通文本)任务标题(富文本)任务描述(普通文本)任务描述(富文本)任务截止时间任务附属信息任务自定义完成规则任务关注人ID列表任务执行者ID列表任务重复规则示例值: ["summary"] } // UpdateTaskV1ReqTask ... type UpdateTaskV1ReqTask struct { - Summary *string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题, 示例值: "完成本季度OKR编写", 长度范围: `0` ~ `1000` 字符 - Description *string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注, 示例值: "对本次会议内容复盘总结, 编写更新本季度OKR", 长度范围: `0` ~ `65536` 字符 - Extra *string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户, 示例值: "dGVzdA[", 长度范围: `0` ~ `65536` 字符 + Summary *string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。示例值: "完成本季度OKR编写" 长度范围: `0` ~ `1000` 字符 + Description *string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。示例值: "对本次会议内容复盘总结, 编写更新本季度OKR" 长度范围: `0` ~ `65536` 字符 + Extra *string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。示例值: "dGVzdA[" 长度范围: `0` ~ `65536` 字符 Due *UpdateTaskV1ReqTaskDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *UpdateTaskV1ReqTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - CanEdit *bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false, 已经废弃, 向前兼容故仍然保留, 但不推荐使用, 示例值: true, 默认值: `false` - Custom *string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "{\"custom_complete\":{\"android\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"ios\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"pc\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}}}", 长度范围: `0` ~ `65536` 字符 - Followers []*UpdateTaskV1ReqTaskFollower `json:"followers,omitempty"` // 任务的关注者, 示例值: ou_03c21c80caea2c816665f8056dc59027 - Collaborators []*UpdateTaskV1ReqTaskCollaborator `json:"collaborators,omitempty"` // 任务的执行者, 示例值: ou_558d4999baae26e32aa2fd9bb228660b - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"], 最大长度: `100` - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"], 最大长度: `100` - RepeatRule *string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节, 示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR" - RichSummary *string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 示例值: "完成本季度OKR编写\[飞书开放平台](https://open.feishu.cn/)", 长度范围: `0` ~ `1000` 字符 - RichDescription *string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 示例值: "对本次会议内容复盘总结, 编写更新本季度OKR\[飞书开放平台](https://open.feishu.cn/)", 长度范围: `0` ~ `65536` 字符 + CanEdit *bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑, 默认为false已经废弃, 向前兼容故仍然保留, 但不推荐使用示例值: true默认值: `false` + Custom *string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "{\"custom_complete\":{\"android\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"ios\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}, \"pc\":{\"href\":\"https://www.feishu.cn/\", \"tip\":{\"zh_cn\":\"你好\", \"en_us\":\"hello\"}}}}" 长度范围: `0` ~ `65536` 字符 + Followers []*UpdateTaskV1ReqTaskFollower `json:"followers,omitempty"` // 任务的关注者示例值: ou_03c21c80caea2c816665f8056dc59027 + Collaborators []*UpdateTaskV1ReqTaskCollaborator `json:"collaborators,omitempty"` // 任务的执行者示例值: ou_558d4999baae26e32aa2fd9bb228660b + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"] 最大长度: `100` + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。示例值: ["ou_49dadcd6fd55da971d887087c4f3a37a"] 最大长度: `100` + RepeatRule *string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节示例值: "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO, TU, WE, TH, FR" + RichSummary *string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。示例值: "完成本季度OKR编写\[飞书开放平台](https://open.feishu.cn/)" 长度范围: `0` ~ `1000` 字符 + RichDescription *string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)示例值: "对本次会议内容复盘总结, 编写更新本季度OKR\[飞书开放平台](https://open.feishu.cn/)" 长度范围: `0` ~ `65536` 字符 } // UpdateTaskV1ReqTaskCollaborator ... type UpdateTaskV1ReqTaskCollaborator struct { - ID *string `json:"id,omitempty"` // 任务执行者的 ID, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段, 示例值: "ou_99e1a581b36ecc4862cbfbce473f1234" - IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 示例值: ["ou_99e1a581b36ecc4862cbfbce473f3123"] + ID *string `json:"id,omitempty"` // 任务执行者的 ID。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段示例值: "ou_99e1a581b36ecc4862cbfbce473f1234" + IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。示例值: ["ou_99e1a581b36ecc4862cbfbce473f3123"] } // UpdateTaskV1ReqTaskDue ... type UpdateTaskV1ReqTaskDue struct { - Time *string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒), 示例值: "1623124318" - Timezone *string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones), 示例值: "Asia/Shanghai", 默认值: `Asia/Shanghai` - IsAllDay *bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务, 示例值: false, 默认值: `false` + Time *string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。示例值: "1623124318" + Timezone *string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。示例值: "Asia/Shanghai"默认值: `Asia/Shanghai` + IsAllDay *bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。示例值: false默认值: `false` } // UpdateTaskV1ReqTaskFollower ... type UpdateTaskV1ReqTaskFollower struct { - ID *string `json:"id,omitempty"` // 任务关注人 ID, 示例值: "ou_99e1a581b36ecc4862cbfbce473f3123" - IDList []string `json:"id_list,omitempty"` // 要删除的关注人ID列表, 示例值: ["ou_99e1a581b36ecc4862cbfbce473f3123"] + ID *string `json:"id,omitempty"` // 任务关注人 ID示例值: "ou_99e1a581b36ecc4862cbfbce473f3123" + IDList []string `json:"id_list,omitempty"` // 要删除的关注人ID列表示例值: ["ou_99e1a581b36ecc4862cbfbce473f3123"] } // UpdateTaskV1ReqTaskOrigin ... type UpdateTaskV1ReqTaskOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "{\"zh_cn\": \"IT 工作台\", \"en_us\": \"IT Workspace\"}", 长度范围: `0` ~ `1024` 字符 + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "{\"zh_cn\": \"IT 工作台\", \"en_us\": \"IT Workspace\"}" 长度范围: `0` ~ `1024` 字符 Href *UpdateTaskV1ReqTaskOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // UpdateTaskV1ReqTaskOriginHref ... type UpdateTaskV1ReqTaskOriginHref struct { - URL *string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields), 示例值: "https://support.feishu.com/internal/foo-bar", 长度范围: `0` ~ `1024` 字符 - Title *string `json:"title,omitempty"` // 链接对应的标题, 示例值: "反馈一个问题, 需要协助排查", 长度范围: `0` ~ `512` 字符 + URL *string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields)示例值: "https://support.feishu.com/internal/foo-bar" 长度范围: `0` ~ `1024` 字符 + Title *string `json:"title,omitempty"` // 链接对应的标题示例值: "反馈一个问题, 需要协助排查" 长度范围: `0` ~ `512` 字符 } // UpdateTaskV1Resp ... @@ -124,37 +122,37 @@ type UpdateTaskV1Resp struct { // UpdateTaskV1RespTask ... type UpdateTaskV1RespTask struct { ID string `json:"id,omitempty"` // 任务的唯一ID, 例如"83912691-2e43-47fc-94a4-d512e03984fa" - Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串, 如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段, 创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段, 任务标题和任务富文本标题同时存在时只使用富文本标题。 - Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串, 如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段, 任务备注和任务富文本备注同时存在时只使用富文本备注。 - CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成, 不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 - CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID, 其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id, 特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 - Extra string `json:"extra,omitempty"` // 附属信息, 接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储, 该数据会在获取任务详情时, 原样返回给用户。 + Summary string `json:"summary,omitempty"` // 任务的标题, 类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户, 请使用rich_summary字段。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。任务标题和任务富文本标题同时存在时只使用富文本标题。 + Description string `json:"description,omitempty"` // 任务的描述, 类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户, 请使用rich_description字段。任务备注和任务富文本备注同时存在时只使用富文本备注。 + CompleteTime string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒), 完成时间为0则表示任务尚未完成。不支持部分完成, 只有整个任务完成, 该字段才会有非0值。 + CreatorID string `json:"creator_id,omitempty"` // 任务的创建者 ID。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型, 不传时默认返回 open_id。特别的, 使用tenant_access_token 调用接口时, 如果是user_id_type是openid, 则返回代表该应用身份的openid;当user_id_type为user_id时, 不返回creator_id。原因是user_id代表一个真实飞书用户的id, 应用身份没有user_id。使用user_access_token调用接口正常返回创建者。 + Extra string `json:"extra,omitempty"` // 附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息, 但对外不显示, 可使用该字段进行存储。该数据会在获取任务详情时, 原样返回给用户。 CreateTime string `json:"create_time,omitempty"` // 任务的创建时间的Unix时间戳(单位为秒) - UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒), 创建任务时update_time与create_time相同 + UpdateTime string `json:"update_time,omitempty"` // 任务的更新时间的Unix时间戳(单位为秒)创建任务时update_time与create_time相同 Due *UpdateTaskV1RespTaskDue `json:"due,omitempty"` // 任务的截止时间设置 Origin *UpdateTaskV1RespTaskOrigin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 - Custom string `json:"custom,omitempty"` // 自定义完成配置, 此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) - Source int64 `json:"source,omitempty"` // 任务创建的来源, 可选值有: 0: 未知类型, 1: 来源任务中心创建, 2: 来源消息转任务, 3: 来源云文档, 4: 来源文档单品, 5: 来源PANO, 6: 来源tenant_access_token创建的任务, 7: 来源user_access_token创建的任务, 8: 来源新版云文档 + Custom string `json:"custom,omitempty"` // 自定义完成配置。此字段用于设置完成任务时的页面跳转, 或展示提示语。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + Source int64 `json:"source,omitempty"` // 任务创建的来源可选值有: 未知类型来源任务中心创建来源消息转任务来源云文档来源文档单品来源PANO来源tenant_access_token创建的任务来源user_access_token创建的任务来源新版云文档 Followers []*UpdateTaskV1RespTaskFollower `json:"followers,omitempty"` // 任务的关注者 Collaborators []*UpdateTaskV1RespTaskCollaborator `json:"collaborators,omitempty"` // 任务的执行者 - CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 - RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式, 语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 - RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module), 。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 + CollaboratorIDs []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + FollowerIDs []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档: [如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + RepeatRule string `json:"repeat_rule,omitempty"` // 重复任务的规则表达式。语法格式参见[RRule语法规范](https://www.ietf.org/rfc/rfc2445.txt) 4.3.10小节 + RichSummary string `json:"rich_summary,omitempty"` // 富文本任务标题。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module)。创建任务时, 任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空, 需要至少填充其中一个字段。 RichDescription string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) } // UpdateTaskV1RespTaskCollaborator ... type UpdateTaskV1RespTaskCollaborator struct { - ID string `json:"id,omitempty"` // 任务执行者的 ID, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id), 已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 - IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表, 传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 + ID string `json:"id,omitempty"` // 任务执行者的 ID。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。已经废弃, 为了向前兼容早期只支持单次添加一个人的情况而保留, 但不再推荐使用, 建议使用id_list字段 + IDList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。传入的值为 user_id 或 open_id, 由user_id_type 决定。user_id和open_id的获取可见文档[如何获取不同的用户 ID](https://open.feishu.cn/document/home/user-identity-introduction/open-id)。 } // UpdateTaskV1RespTaskDue ... type UpdateTaskV1RespTaskDue struct { Time string `json:"time,omitempty"` // 表示截止时间的Unix时间戳(单位为秒)。 - Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区, 传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 - IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务, 包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点, false: 表示不是全天任务。 + Timezone string `json:"timezone,omitempty"` // 截止时间对应的时区。传入值需要符合IANA Time Zone Database标准, 规范见[Time Zone Database](https://www.iana.org/time-zones)。 + IsAllDay bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务。包括如下取值: true: 表示是全天任务, 全天任务的截止时间为当天 UTC 时间的 0 点。- false: 表示不是全天任务。 } // UpdateTaskV1RespTaskFollower ... @@ -165,13 +163,13 @@ type UpdateTaskV1RespTaskFollower struct { // UpdateTaskV1RespTaskOrigin ... type UpdateTaskV1RespTaskOrigin struct { - PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称, 用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + PlatformI18nName string `json:"platform_i18n_name,omitempty"` // 任务来源的名称。用于在任务中心详情页展示。需要提供一个字典, 支持多种语言名称映射。应用在使用不同语言时, 导入来源也将展示对应的内容。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Href *UpdateTaskV1RespTaskOriginHref `json:"href,omitempty"` // 任务关联的来源平台详情页链接 } // UpdateTaskV1RespTaskOriginHref ... type UpdateTaskV1RespTaskOriginHref struct { - URL string `json:"url,omitempty"` // 具体链接地址, URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) + URL string `json:"url,omitempty"` // 具体链接地址。URL仅支持解析http、https。详细参见: [任务字段补充说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/Supplementary-directions-of-task-fields) Title string `json:"title,omitempty"` // 链接对应的标题 } diff --git a/api_tenant_product_assign_info_get.go b/api_tenant_product_assign_info_get.go index 7523a48f..b278ed92 100644 --- a/api_tenant_product_assign_info_get.go +++ b/api_tenant_product_assign_info_get.go @@ -62,7 +62,8 @@ func (r *Mock) UnMockTenantGetTenantProductAssignInfo() { } // GetTenantProductAssignInfoReq ... -type GetTenantProductAssignInfoReq struct{} +type GetTenantProductAssignInfoReq struct { +} // GetTenantProductAssignInfoResp ... type GetTenantProductAssignInfoResp struct { diff --git a/api_tenant_tenant_get.go b/api_tenant_tenant_get.go index 9b1cbad7..f9435565 100644 --- a/api_tenant_tenant_get.go +++ b/api_tenant_tenant_get.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockTenantGetTenant() { } // GetTenantReq ... -type GetTenantReq struct{} +type GetTenantReq struct { +} // GetTenantResp ... type GetTenantResp struct { diff --git a/api_trust_party_collaboration_tenant_collaboration_department_get.go b/api_trust_party_collaboration_tenant_collaboration_department_get.go new file mode 100644 index 00000000..3ce5d922 --- /dev/null +++ b/api_trust_party_collaboration_tenant_collaboration_department_get.go @@ -0,0 +1,118 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTrustPartyCollaborationTenantCollaborationDepartment 获取对方的关联组织部门详情, 需要对部门有可见性权限才可以获取。 +// +// ## 提示 +// 使用 user_access_token 时, 按照 admin 管理后台关联组织列表中针对用户设置的可见性规则进行校验, 使用 tenant_access_token 时, 按照应用互通界面中针对应用设置的可见性规则进行校验。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/trust_party-v1/collaboration_tenant-collaboration_department/get +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/get-2 +func (r *TrustPartyService) GetTrustPartyCollaborationTenantCollaborationDepartment(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationDepartmentReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationDepartmentResp, *Response, error) { + if r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] TrustParty#GetTrustPartyCollaborationTenantCollaborationDepartment mock enable") + return r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "TrustParty", + API: "GetTrustPartyCollaborationTenantCollaborationDepartment", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/trust_party/v1/collaboration_tenants/:target_tenant_key/collaboration_departments/:target_department_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTrustPartyCollaborationTenantCollaborationDepartmentResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment mock TrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment method +func (r *Mock) MockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment(f func(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationDepartmentReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationDepartmentResp, *Response, error)) { + r.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment = f +} + +// UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment un-mock TrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment method +func (r *Mock) UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment() { + r.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment = nil +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentReq ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentReq struct { + TargetTenantKey string `path:"target_tenant_key" json:"-"` // 对方关联组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: "4e6ac4d14bcd5071a37a39de902c7141" + TargetDepartmentID string `path:"target_department_id" json:"-"` // 对方关联组织的部门, 需要与target_department_id_type中填写的值保持一致示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" + TargetDepartmentIDType *DepartmentIDType `query:"target_department_id_type" json:"-"` // 对方关联组织的入参部门类型示例值: department_id可选值有: 部门ID部门open ID默认值: `department_id` +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentResp ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentResp struct { + TargetDepartment *GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartment `json:"target_department,omitempty"` // 对方关联组织的部门 +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartment ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartment struct { + OpenDepartmentID string `json:"open_department_id,omitempty"` // 关联组织的部门open id + DepartmentID string `json:"department_id,omitempty"` // 关联组织的部门id + Name string `json:"name,omitempty"` // 关联组织的部门名称 + I18nName *GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentI18nName `json:"i18n_name,omitempty"` // 关联组织的的国际化部门名称 + Order string `json:"order,omitempty"` // 关联组织的部门排序 + Leaders []*GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeader `json:"leaders,omitempty"` // 部门负责人, 必须对负责人有可见性权限才会返回 + ParentDepartmentID *GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentParentDepartmentID `json:"parent_department_id,omitempty"` // 父部门ID, 必须对父部门有可见性权限才会返回 +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentI18nName ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentI18nName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeader ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeader struct { + LeaderType int64 `json:"leader_type,omitempty"` // 负责人类型可选值有: 主负责人副负责人 + ID *GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeaderID `json:"id,omitempty"` // 负责人ID +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeaderID ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentLeaderID struct { + UserID string `json:"user_id,omitempty"` // 用户ID + OpenID string `json:"open_id,omitempty"` // 用户open ID + UnionID string `json:"union_id,omitempty"` // 用户union ID +} + +// GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentParentDepartmentID ... +type GetTrustPartyCollaborationTenantCollaborationDepartmentRespTargetDepartmentParentDepartmentID struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID + OpenDepartmentID string `json:"open_department_id,omitempty"` // 部门open ID +} + +// getTrustPartyCollaborationTenantCollaborationDepartmentResp ... +type getTrustPartyCollaborationTenantCollaborationDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTrustPartyCollaborationTenantCollaborationDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_trust_party_collaboration_tenant_collaboration_user_get.go b/api_trust_party_collaboration_tenant_collaboration_user_get.go new file mode 100644 index 00000000..edf26a33 --- /dev/null +++ b/api_trust_party_collaboration_tenant_collaboration_user_get.go @@ -0,0 +1,161 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTrustPartyCollaborationTenantCollaborationUser 获取关联组织成员详情, 需要对关联组织成员有权限才可以获取。 +// +// ## 提示 +// 使用 user_access_token 时, 按照 admin 管理后台关联组织列表中针对用户设置的可见性规则进行校验, 使用 tenant_access_token 时, 按照应用互通界面中针对应用设置的可见性规则进行校验。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/trust_party-v1/collaboration_tenant-collaboration_user/get +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/get-3 +func (r *TrustPartyService) GetTrustPartyCollaborationTenantCollaborationUser(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationUserReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationUserResp, *Response, error) { + if r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] TrustParty#GetTrustPartyCollaborationTenantCollaborationUser mock enable") + return r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "TrustParty", + API: "GetTrustPartyCollaborationTenantCollaborationUser", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/trust_party/v1/collaboration_tenants/:target_tenant_key/collaboration_users/:target_user_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTrustPartyCollaborationTenantCollaborationUserResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser mock TrustPartyGetTrustPartyCollaborationTenantCollaborationUser method +func (r *Mock) MockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser(f func(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationUserReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationUserResp, *Response, error)) { + r.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser = f +} + +// UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser un-mock TrustPartyGetTrustPartyCollaborationTenantCollaborationUser method +func (r *Mock) UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser() { + r.mockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser = nil +} + +// GetTrustPartyCollaborationTenantCollaborationUserReq ... +type GetTrustPartyCollaborationTenantCollaborationUserReq struct { + TargetTenantKey string `path:"target_tenant_key" json:"-"` // 对方关联组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: "4e6ac4d14bcd5071a37a39de902c7141" + TargetUserID string `path:"target_user_id" json:"-"` // 请求的关联组织用户ID, 需要与target_user_id_type中填写的类型保持一致示例值: "od-4e6ac4d14bcd5071a37a39de902c7141" + TargetUserIDType *IDType `query:"target_user_id_type" json:"-"` // 用户ID类型, 可以在[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)中获取对应的用户ID示例值: user_id可选值有: 以user_id来识别用户以union_id来识别用户以open_id来识别用户默认值: `user_id` +} + +// GetTrustPartyCollaborationTenantCollaborationUserResp ... +type GetTrustPartyCollaborationTenantCollaborationUserResp struct { + TargetUser *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUser `json:"target_user,omitempty"` // 关联组织用户 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUser ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUser struct { + OpenID string `json:"open_id,omitempty"` // 对方关联组织用户的open_id + UserID string `json:"user_id,omitempty"` // 对方关联组织用户的id + UnionID string `json:"union_id,omitempty"` // 对方关联组织用户的union id + Name string `json:"name,omitempty"` // 用户的名称 + I18nName *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserI18nName `json:"i18n_name,omitempty"` // 关联组织的的国际化用户名称 + Avatar *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserAvatar `json:"avatar,omitempty"` // 用户头像信息 + Mobile string `json:"mobile,omitempty"` // 手机号, 需要对方租户授权展示. + Status *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserStatus `json:"status,omitempty"` // 用户状态 + DepartmentIDs []string `json:"department_ids,omitempty"` // 用户所属部门的ID列表, 已废弃 + LeaderUserID string `json:"leader_user_id,omitempty"` // 用户的直接主管的用户ID, 已废弃 + JobTitle string `json:"job_title,omitempty"` // 职务, 需要对方租户授权展示. + CustomAttrs []*GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttr `json:"custom_attrs,omitempty"` // 自定义属性, 需要对方租户授权展示. + EmployeeNo string `json:"employee_no,omitempty"` // 工号, 需要对方租户授权展示 + ParentDepartmentIDs []string `json:"parent_department_ids,omitempty"` // 父部门ID, 必须对父部门有权限才会返回 + LeaderID *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserLeaderID `json:"leader_id,omitempty"` // 用户的leader, 必须对leader有权限才会返回 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserAvatar ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttr ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttr struct { + Type string `json:"type,omitempty"` // 自定义属性类型 + ID string `json:"id,omitempty"` // 自定义属性ID + Value *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValue `json:"value,omitempty"` // 自定义属性取值 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValue ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValue struct { + Text string `json:"text,omitempty"` // 属性文本 + URL string `json:"url,omitempty"` // URL + PcURL string `json:"pc_url,omitempty"` // PC上的URL + OptionValue string `json:"option_value,omitempty"` // 选项值 + PictureURL string `json:"picture_url,omitempty"` // 图片链接 + Name string `json:"name,omitempty"` // 名称 + GenericUser *GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValueGenericUser `json:"generic_user,omitempty"` // 用户信息 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValueGenericUser ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserCustomAttrValueGenericUser struct { + ID string `json:"id,omitempty"` // 用户id + Type int64 `json:"type,omitempty"` // 用户类型, 枚举值: 1: 用户 - 2: 机器人- 11: Mail +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserI18nName ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserI18nName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserLeaderID ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserLeaderID struct { + UserID string `json:"user_id,omitempty"` // 用户ID + OpenID string `json:"open_id,omitempty"` // 用户open ID + UnionID string `json:"union_id,omitempty"` // 用户union ID +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserParentDepartmentID ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserParentDepartmentID struct { + DepartmentID string `json:"department_id,omitempty"` // 部门ID + OpenDepartmentID string `json:"open_department_id,omitempty"` // 部门open ID +} + +// GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserStatus ... +type GetTrustPartyCollaborationTenantCollaborationUserRespTargetUserStatus struct { + IsFrozen bool `json:"is_frozen,omitempty"` // 是否冻结 + IsResigned bool `json:"is_resigned,omitempty"` // 是否离职 + IsActivated bool `json:"is_activated,omitempty"` // 是否激活 + IsExited bool `json:"is_exited,omitempty"` // 是否主动退出, 主动退出一段时间后用户会自动转为已离职 + IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否未加入, 需要用户自主确认才能加入团队 +} + +// getTrustPartyCollaborationTenantCollaborationUserResp ... +type getTrustPartyCollaborationTenantCollaborationUserResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTrustPartyCollaborationTenantCollaborationUserResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_trust_party_collaboration_tenant_get.go b/api_trust_party_collaboration_tenant_get.go new file mode 100644 index 00000000..953c4d85 --- /dev/null +++ b/api_trust_party_collaboration_tenant_get.go @@ -0,0 +1,122 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTrustPartyCollaborationTenant 基于组织tenant key获取关联组织详情, 需要对对方组织有可见权限才可以获取。 +// +// ## 提示 +// 使用 user_access_token 时, 按照 admin 管理后台关联组织列表中针对用户设置的可见性规则进行校验, 使用 tenant_access_token 时, 按照应用互通界面中针对应用设置的可见性规则进行校验。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/trust_party-v1/collaboration_tenant/get +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/get +func (r *TrustPartyService) GetTrustPartyCollaborationTenant(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) { + if r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenant != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] TrustParty#GetTrustPartyCollaborationTenant mock enable") + return r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenant(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "TrustParty", + API: "GetTrustPartyCollaborationTenant", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/trust_party/v1/collaboration_tenants/:target_tenant_key", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTrustPartyCollaborationTenantResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTrustPartyGetTrustPartyCollaborationTenant mock TrustPartyGetTrustPartyCollaborationTenant method +func (r *Mock) MockTrustPartyGetTrustPartyCollaborationTenant(f func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error)) { + r.mockTrustPartyGetTrustPartyCollaborationTenant = f +} + +// UnMockTrustPartyGetTrustPartyCollaborationTenant un-mock TrustPartyGetTrustPartyCollaborationTenant method +func (r *Mock) UnMockTrustPartyGetTrustPartyCollaborationTenant() { + r.mockTrustPartyGetTrustPartyCollaborationTenant = nil +} + +// GetTrustPartyCollaborationTenantReq ... +type GetTrustPartyCollaborationTenantReq struct { + TargetTenantKey string `path:"target_tenant_key" json:"-"` // 对方关联组织的tenant key, 可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: "4e6ac4d14bcd5071a37a39de902c7141" +} + +// GetTrustPartyCollaborationTenantResp ... +type GetTrustPartyCollaborationTenantResp struct { + TargetTenant *GetTrustPartyCollaborationTenantRespTargetTenant `json:"target_tenant,omitempty"` // 对方关联组织详情 +} + +// GetTrustPartyCollaborationTenantRespTargetTenant ... +type GetTrustPartyCollaborationTenantRespTargetTenant struct { + TenantKey string `json:"tenant_key,omitempty"` // 关联组织的租户ID + TenantName string `json:"tenant_name,omitempty"` // 目标组织的名称 + I18nTenantName *GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantName `json:"i18n_tenant_name,omitempty"` // 目标组织的i18n名称 + TenantShortName string `json:"tenant_short_name,omitempty"` // 目标组织的简称 + I18nTenantShortName *GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName `json:"i18n_tenant_short_name,omitempty"` // 目标组织的i18n简称 + ConnectTime int64 `json:"connect_time,omitempty"` // 关联时间 + TenantTag string `json:"tenant_tag,omitempty"` // 标签 + I18nTenantTag *GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag `json:"i18n_tenant_tag,omitempty"` // i18n标签 + Avatar *GetTrustPartyCollaborationTenantRespTargetTenantAvatar `json:"avatar,omitempty"` // 组织icon信息 + Brand string `json:"brand,omitempty"` // 组织品牌 +} + +// GetTrustPartyCollaborationTenantRespTargetTenantAvatar ... +type GetTrustPartyCollaborationTenantRespTargetTenantAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantName ... +type GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName ... +type GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag ... +type GetTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// getTrustPartyCollaborationTenantResp ... +type getTrustPartyCollaborationTenantResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTrustPartyCollaborationTenantResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_trust_party_collaboration_tenant_list.go b/api_trust_party_collaboration_tenant_list.go new file mode 100644 index 00000000..2ad3351e --- /dev/null +++ b/api_trust_party_collaboration_tenant_list.go @@ -0,0 +1,125 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListTrustPartyCollaborationTenant 分页获取用户可见的关联列表。 +// +// ## 提示 +// 使用 user_access_token 时, 按照 admin 管理后台关联组织列表中针对用户设置的可见性规则进行校验, 使用 tenant_access_token 时, 按照应用互通界面中针对应用设置的可见性规则进行校验。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/trust_party-v1/collaboration_tenant/list +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/list +func (r *TrustPartyService) ListTrustPartyCollaborationTenant(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) { + if r.cli.mock.mockTrustPartyListTrustPartyCollaborationTenant != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] TrustParty#ListTrustPartyCollaborationTenant mock enable") + return r.cli.mock.mockTrustPartyListTrustPartyCollaborationTenant(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "TrustParty", + API: "ListTrustPartyCollaborationTenant", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/trust_party/v1/collaboration_tenants", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listTrustPartyCollaborationTenantResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTrustPartyListTrustPartyCollaborationTenant mock TrustPartyListTrustPartyCollaborationTenant method +func (r *Mock) MockTrustPartyListTrustPartyCollaborationTenant(f func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error)) { + r.mockTrustPartyListTrustPartyCollaborationTenant = f +} + +// UnMockTrustPartyListTrustPartyCollaborationTenant un-mock TrustPartyListTrustPartyCollaborationTenant method +func (r *Mock) UnMockTrustPartyListTrustPartyCollaborationTenant() { + r.mockTrustPartyListTrustPartyCollaborationTenant = nil +} + +// ListTrustPartyCollaborationTenantReq ... +type ListTrustPartyCollaborationTenantReq struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: xxxx + PageSize *int64 `query:"page_size" json:"-"` // 单次请求的关联组织数量示例值: 10默认值: `10` 取值范围: `1` ~ `100` +} + +// ListTrustPartyCollaborationTenantResp ... +type ListTrustPartyCollaborationTenantResp struct { + TargetTenantList []*ListTrustPartyCollaborationTenantRespTargetTenant `json:"target_tenant_list,omitempty"` // 关联组织列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// ListTrustPartyCollaborationTenantRespTargetTenant ... +type ListTrustPartyCollaborationTenantRespTargetTenant struct { + TenantKey string `json:"tenant_key,omitempty"` // 关联组织 ID + TenantName string `json:"tenant_name,omitempty"` // 目标组织的名称 + I18nTenantName *ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantName `json:"i18n_tenant_name,omitempty"` // 目标组织的i18n名称 + TenantShortName string `json:"tenant_short_name,omitempty"` // 目标组织的简称 + I18nTenantShortName *ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName `json:"i18n_tenant_short_name,omitempty"` // 目标组织的i18n简称 + ConnectTime int64 `json:"connect_time,omitempty"` // 关联时间 + TenantTag string `json:"tenant_tag,omitempty"` // 标签 + I18nTenantTag *ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag `json:"i18n_tenant_tag,omitempty"` // i18n标签 + Avatar *ListTrustPartyCollaborationTenantRespTargetTenantAvatar `json:"avatar,omitempty"` // 组织icon信息 + Brand string `json:"brand,omitempty"` // 组织品牌 +} + +// ListTrustPartyCollaborationTenantRespTargetTenantAvatar ... +type ListTrustPartyCollaborationTenantRespTargetTenantAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantName ... +type ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName ... +type ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantShortName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag ... +type ListTrustPartyCollaborationTenantRespTargetTenantI18nTenantTag struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// listTrustPartyCollaborationTenantResp ... +type listTrustPartyCollaborationTenantResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListTrustPartyCollaborationTenantResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_trust_party_collaboration_tenant_visible_organization.go b/api_trust_party_collaboration_tenant_visible_organization.go new file mode 100644 index 00000000..54023cdf --- /dev/null +++ b/api_trust_party_collaboration_tenant_visible_organization.go @@ -0,0 +1,136 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetTrustPartyCollaborationTenantVisibleOrganization 该接口会返回用户在外部部门下可见的下级部门、用户、用户组。 +// +// ## 提示 +// 使用 user_access_token 时, 按照 admin 管理后台关联组织列表中针对用户设置的可见性规则进行校验;使用 tenant_access_token 时, 按照应用互通界面中针对应用设置的可见性规则进行校验。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/trust_party-v1/collaboration_tenant/visible_organization +// new doc: https://open.feishu.cn/document/trust_party-v1/-collaboraiton-organization/visible_organization +func (r *TrustPartyService) GetTrustPartyCollaborationTenantVisibleOrganization(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) { + if r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] TrustParty#GetTrustPartyCollaborationTenantVisibleOrganization mock enable") + return r.cli.mock.mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "TrustParty", + API: "GetTrustPartyCollaborationTenantVisibleOrganization", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/trust_party/v1/collaboration_tenants/:target_tenant_key/visible_organization", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(getTrustPartyCollaborationTenantVisibleOrganizationResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization mock TrustPartyGetTrustPartyCollaborationTenantVisibleOrganization method +func (r *Mock) MockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization(f func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error)) { + r.mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization = f +} + +// UnMockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization un-mock TrustPartyGetTrustPartyCollaborationTenantVisibleOrganization method +func (r *Mock) UnMockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization() { + r.mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization = nil +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationReq ... +type GetTrustPartyCollaborationTenantVisibleOrganizationReq struct { + TargetTenantKey string `path:"target_tenant_key" json:"-"` // 对方关联组织的 tenant key。可通过[管理员获取所有关联组织列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/collaboration_tenant/list)获取示例值: "4e6ac4d14bcd5071a37a39de902c7141" + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门ID的类型示例值: department_id可选值有: 以自定义department_id来标识部门以open_department_id来标识部门默认值: `department_id` + TargetDepartmentID *string `query:"target_department_id" json:"-"` // 请求关联组织的部门ID, 0代表根部门, 与target_group_id二选一;可以从[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)中获得示例值: od-4e6ac4d14bcd5071a37a39de902c7141 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: AQD9/Rn9eij9Pm39ED40/TIx6jupqdAcfLY%2B51xMvNU= + PageSize *int64 `query:"page_size" json:"-"` // 请求的可见实体数量示例值: 10默认值: `100` 取值范围: `1` ~ `200` + GroupIDType *IDType `query:"group_id_type" json:"-"` // 此次调用中使用的用户组ID的类型示例值: group_id可选值有: group_id以open_group_id来标识用户组默认值: `group_id` + TargetGroupID *string `query:"target_group_id" json:"-"` // 请求关联组织的用户组ID, 与target_department_id二选一;可以从[获取关联组织的部门和成员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/collaboration_tenant/visible_organization)中获得示例值: od-4e6ac4d14bcd5071a37a39de902c7141 +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationResp ... +type GetTrustPartyCollaborationTenantVisibleOrganizationResp struct { + CollaborationEntityList []*GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntity `json:"collaboration_entity_list,omitempty"` // 该部门下可见的部门、用户、用户组列表 + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntity ... +type GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntity struct { + CollaborationEntityType string `json:"collaboration_entity_type,omitempty"` // 关联组织实体类型可选值有: 用户类型部门类型用户组类型 + DepartmentID string `json:"department_id,omitempty"` // 部门ID + OpenDepartmentID string `json:"open_department_id,omitempty"` // 部门的open ID + UserID string `json:"user_id,omitempty"` // 用户ID + OpenUserID string `json:"open_user_id,omitempty"` // 用户的open ID + UnionUserID string `json:"union_user_id,omitempty"` // 用户的union_id + DepartmentName string `json:"department_name,omitempty"` // 部门名称 + I18nDepartmentName *GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nDepartmentName `json:"i18n_department_name,omitempty"` // 部门的国际化名称 + DepartmentOrder string `json:"department_order,omitempty"` // 部门顺序 + UserName string `json:"user_name,omitempty"` // 对方成员名称 + I18nUserName *GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nUserName `json:"i18n_user_name,omitempty"` // 对方成员i18n名称 + UserAvatar *GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityUserAvatar `json:"user_avatar,omitempty"` // 对方租户的成员头像 + GroupID string `json:"group_id,omitempty"` // 用户组ID + OpenGroupID string `json:"open_group_id,omitempty"` // 用户组的open ID + GroupName string `json:"group_name,omitempty"` // 对方用户组名称 + I18nGroupName *GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nGroupName `json:"i18n_group_name,omitempty"` // 对方用户组i18n名称 +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nDepartmentName ... +type GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nDepartmentName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nGroupName ... +type GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nGroupName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nUserName ... +type GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityI18nUserName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文名 + JaJp string `json:"ja_jp,omitempty"` // 日文名 + EnUs string `json:"en_us,omitempty"` // 英文名 +} + +// GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityUserAvatar ... +type GetTrustPartyCollaborationTenantVisibleOrganizationRespCollaborationEntityUserAvatar struct { + Avatar72 string `json:"avatar_72,omitempty"` // 72*72像素头像链接 + Avatar240 string `json:"avatar_240,omitempty"` // 240*240像素头像链接 + Avatar640 string `json:"avatar_640,omitempty"` // 640*640像素头像链接 + AvatarOrigin string `json:"avatar_origin,omitempty"` // 原始头像链接 +} + +// getTrustPartyCollaborationTenantVisibleOrganizationResp ... +type getTrustPartyCollaborationTenantVisibleOrganizationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetTrustPartyCollaborationTenantVisibleOrganizationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_vc_meeting_default_building_batch_get.go b/api_vc_meeting_default_building_batch_get.go new file mode 100644 index 00000000..309348c5 --- /dev/null +++ b/api_vc_meeting_default_building_batch_get.go @@ -0,0 +1,84 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetVCMeetingDefaultBuildingBatchGet 该接口用于获取指定建筑物的详细信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/ukzNyUjL5cjM14SO3ITN +func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) { + if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGet mock enable") + return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "GetVCMeetingDefaultBuildingBatchGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/batch_get", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getVCMeetingDefaultBuildingBatchGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingGetVCMeetingDefaultBuildingBatchGet mock VCMeetingGetVCMeetingDefaultBuildingBatchGet method +func (r *Mock) MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error)) { + r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet = f +} + +// UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet un-mock VCMeetingGetVCMeetingDefaultBuildingBatchGet method +func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() { + r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet = nil +} + +// GetVCMeetingDefaultBuildingBatchGetReq ... +type GetVCMeetingDefaultBuildingBatchGetReq struct { + BuildingIDs []string `query:"building_ids" json:"-"` // 用于查询指定建筑物的 ID + Fields *string `query:"fields" json:"-"` // 用于指定返回的字段名, 每个字段名之间用逗号 ", " 分隔, 如: “id, name”, "*" 表示返回全部字段, 可选字段有: "id, name, description, floors", 默认返回所有字段 +} + +// GetVCMeetingDefaultBuildingBatchGetResp ... +type GetVCMeetingDefaultBuildingBatchGetResp struct { + Buildings []*GetVCMeetingDefaultBuildingBatchGetRespBuilding `json:"buildings,omitempty"` // 建筑列表 +} + +// GetVCMeetingDefaultBuildingBatchGetRespBuilding ... +type GetVCMeetingDefaultBuildingBatchGetRespBuilding struct { + BuildingID string `json:"building_id,omitempty"` // 建筑物 ID + Description string `json:"description,omitempty"` // 建筑物的相关描述 + Floors []string `json:"floors,omitempty"` // 属于当前建筑物的所有楼层列表 + Name string `json:"name,omitempty"` // 建筑物名称 + CountryID string `json:"country_id,omitempty"` // 所属国家 ID + DistrictID string `json:"district_id,omitempty"` // 所属城市 ID +} + +// getVCMeetingDefaultBuildingBatchGetResp ... +type getVCMeetingDefaultBuildingBatchGetResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultBuildingBatchGetResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_building_batch_get_id.go b/api_vc_meeting_default_building_batch_get_id.go new file mode 100644 index 00000000..5458d79b --- /dev/null +++ b/api_vc_meeting_default_building_batch_get_id.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetVCMeetingDefaultBuildingBatchGetID 该接口用于根据租户自定义建筑 ID 查询建筑 ID。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uQzMxYjL0MTM24CNzEjN +func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) { + if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGetID mock enable") + return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "GetVCMeetingDefaultBuildingBatchGetID", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/batch_get_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getVCMeetingDefaultBuildingBatchGetIDResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID mock VCMeetingGetVCMeetingDefaultBuildingBatchGetID method +func (r *Mock) MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error)) { + r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID = f +} + +// UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID un-mock VCMeetingGetVCMeetingDefaultBuildingBatchGetID method +func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() { + r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID = nil +} + +// GetVCMeetingDefaultBuildingBatchGetIDReq ... +type GetVCMeetingDefaultBuildingBatchGetIDReq struct { + CustomBuildingIDs []string `query:"custom_building_ids" json:"-"` // 用于查询指定建筑物的租户自定义建筑ID +} + +// GetVCMeetingDefaultBuildingBatchGetIDResp ... +type GetVCMeetingDefaultBuildingBatchGetIDResp struct { + Buildings []*GetVCMeetingDefaultBuildingBatchGetIDRespBuilding `json:"buildings,omitempty"` // 建筑列表 +} + +// GetVCMeetingDefaultBuildingBatchGetIDRespBuilding ... +type GetVCMeetingDefaultBuildingBatchGetIDRespBuilding struct { + BuildingID string `json:"building_id,omitempty"` // 建筑物ID + CustomBuildingID string `json:"custom_building_id,omitempty"` // 租户自定义建筑物ID +} + +// getVCMeetingDefaultBuildingBatchGetIDResp ... +type getVCMeetingDefaultBuildingBatchGetIDResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultBuildingBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_building_create.go b/api_vc_meeting_default_building_create.go new file mode 100644 index 00000000..ff303011 --- /dev/null +++ b/api_vc_meeting_default_building_create.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultBuildingCreate 该接口对应管理后台的添加建筑, 添加楼层的功能, 可用于创建建筑物和建筑物的楼层信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uATNwYjLwUDM24CM1AjN +func (r *VCMeetingService) CreateVCMeetingDefaultBuildingCreate(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingCreate mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultBuildingCreate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultBuildingCreateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultBuildingCreate mock VCMeetingCreateVCMeetingDefaultBuildingCreate method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingCreate(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultBuildingCreate = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate un-mock VCMeetingCreateVCMeetingDefaultBuildingCreate method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() { + r.mockVCMeetingCreateVCMeetingDefaultBuildingCreate = nil +} + +// CreateVCMeetingDefaultBuildingCreateReq ... +type CreateVCMeetingDefaultBuildingCreateReq struct { + Name string `json:"name,omitempty"` // 建筑名称 + Floors []string `json:"floors,omitempty"` // 楼层列表 + CountryID string `json:"country_id,omitempty"` // 国家/地区ID + DistrictID string `json:"district_id,omitempty"` // 城市ID + CustomBuildingID *string `json:"custom_building_id,omitempty"` // 租户自定义建筑ID +} + +// CreateVCMeetingDefaultBuildingCreateResp ... +type CreateVCMeetingDefaultBuildingCreateResp struct { + BuildingID string `json:"building_id,omitempty"` // 成功创建的建筑ID +} + +// createVCMeetingDefaultBuildingCreateResp ... +type createVCMeetingDefaultBuildingCreateResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingCreateResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_building_delete.go b/api_vc_meeting_default_building_delete.go new file mode 100644 index 00000000..e7a228f4 --- /dev/null +++ b/api_vc_meeting_default_building_delete.go @@ -0,0 +1,72 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultBuildingDelete 该接口用于删除建筑物(办公大楼)。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzMxYjLzMTM24yMzEjN +func (r *VCMeetingService) CreateVCMeetingDefaultBuildingDelete(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingDelete mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultBuildingDelete", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/delete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultBuildingDeleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultBuildingDelete mock VCMeetingCreateVCMeetingDefaultBuildingDelete method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingDelete(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultBuildingDelete = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete un-mock VCMeetingCreateVCMeetingDefaultBuildingDelete method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete() { + r.mockVCMeetingCreateVCMeetingDefaultBuildingDelete = nil +} + +// CreateVCMeetingDefaultBuildingDeleteReq ... +type CreateVCMeetingDefaultBuildingDeleteReq struct { + BuildingID string `json:"building_id,omitempty"` // 要删除的建筑ID +} + +// CreateVCMeetingDefaultBuildingDeleteResp ... +type CreateVCMeetingDefaultBuildingDeleteResp struct { +} + +// createVCMeetingDefaultBuildingDeleteResp ... +type createVCMeetingDefaultBuildingDeleteResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingDeleteResp `json:"data,omitempty"` +} diff --git a/api_vc_meeting_default_building_list.go b/api_vc_meeting_default_building_list.go new file mode 100644 index 00000000..a290a251 --- /dev/null +++ b/api_vc_meeting_default_building_list.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListVCMeetingDefaultBuilding 该接口用于获取本企业下的建筑物(办公大楼)。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/ugzNyUjL4cjM14CO3ITN +func (r *VCMeetingService) ListVCMeetingDefaultBuilding(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) { + if r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultBuilding mock enable") + return r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "ListVCMeetingDefaultBuilding", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/list", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listVCMeetingDefaultBuildingResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingListVCMeetingDefaultBuilding mock VCMeetingListVCMeetingDefaultBuilding method +func (r *Mock) MockVCMeetingListVCMeetingDefaultBuilding(f func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error)) { + r.mockVCMeetingListVCMeetingDefaultBuilding = f +} + +// UnMockVCMeetingListVCMeetingDefaultBuilding un-mock VCMeetingListVCMeetingDefaultBuilding method +func (r *Mock) UnMockVCMeetingListVCMeetingDefaultBuilding() { + r.mockVCMeetingListVCMeetingDefaultBuilding = nil +} + +// ListVCMeetingDefaultBuildingReq ... +type ListVCMeetingDefaultBuildingReq struct { + PageSize *int64 `query:"page_size" json:"-"` // 请求期望返回的建筑物数量, 不足则返回全部, 该值默认为 10, 最大为 100 + PageToken *string `query:"page_token" json:"-"` // 用于标记当前请求的分页标记, 将返回以当前分页标记开始, 往后 page_size 个元素 + OrderBy *string `query:"order_by" json:"-"` // 提供用于对名称进行升序/降序排序的方式查询, 可选项有: "name-asc, name-desc", 传入其他字符串不做处理, 默认无序 + Fields *string `query:"fields" json:"-"` // 用于指定返回的字段名, 每个字段名之间用逗号 ", " 分隔, 如: “id, name”, "*" 表示返回全部字段, 可选字段有: "id, name, description, floors", 默认返回所有字段 +} + +// ListVCMeetingDefaultBuildingResp ... +type ListVCMeetingDefaultBuildingResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 存在下一页时返回 + HasMore bool `json:"has_more,omitempty"` // 存在下一页时, 该值为 true, 否则为 false + Buildings []*ListVCMeetingDefaultBuildingRespBuilding `json:"buildings,omitempty"` // 建筑列表 +} + +// ListVCMeetingDefaultBuildingRespBuilding ... +type ListVCMeetingDefaultBuildingRespBuilding struct { + BuildingID string `json:"building_id,omitempty"` // 建筑物 ID + Description string `json:"description,omitempty"` // 建筑物的相关描述 + Floors []string `json:"floors,omitempty"` // 属于当前建筑物的所有楼层列表 + Name string `json:"name,omitempty"` // 建筑物名称 + CountryID string `json:"country_id,omitempty"` // 所属国家 ID + DistrictID string `json:"district_id,omitempty"` // 所属城市 ID +} + +// listVCMeetingDefaultBuildingResp ... +type listVCMeetingDefaultBuildingResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultBuildingResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_building_update.go b/api_vc_meeting_default_building_update.go new file mode 100644 index 00000000..44737f1c --- /dev/null +++ b/api_vc_meeting_default_building_update.go @@ -0,0 +1,77 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultBuildingUpdate 该接口用于编辑建筑信息, 添加楼层, 删除楼层, 编辑楼层信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uETNwYjLxUDM24SM1AjN +func (r *VCMeetingService) CreateVCMeetingDefaultBuildingUpdate(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingUpdate mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultBuildingUpdate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultBuildingUpdateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultBuildingUpdate mock VCMeetingCreateVCMeetingDefaultBuildingUpdate method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate un-mock VCMeetingCreateVCMeetingDefaultBuildingUpdate method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() { + r.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate = nil +} + +// CreateVCMeetingDefaultBuildingUpdateReq ... +type CreateVCMeetingDefaultBuildingUpdateReq struct { + BuildingID string `json:"building_id,omitempty"` // 要更新的建筑ID + Name *string `json:"name,omitempty"` // 建筑名称 + Floors []string `json:"floors,omitempty"` // 楼层列表 + CountryID *string `json:"country_id,omitempty"` // 国家/地区ID + DistrictID *string `json:"district_id,omitempty"` // 城市ID + CustomBuildingID *string `json:"custom_building_id,omitempty"` // 租户自定义建筑ID +} + +// CreateVCMeetingDefaultBuildingUpdateResp ... +type CreateVCMeetingDefaultBuildingUpdateResp struct { +} + +// createVCMeetingDefaultBuildingUpdateResp ... +type createVCMeetingDefaultBuildingUpdateResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingUpdateResp `json:"data,omitempty"` +} diff --git a/api_vc_meeting_default_country_list.go b/api_vc_meeting_default_country_list.go new file mode 100644 index 00000000..44711b6b --- /dev/null +++ b/api_vc_meeting_default_country_list.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListVCMeetingDefaultCountry 新建建筑时需要标明所处国家/地区, 该接口用于获得系统预先提供的可供选择的国家 /地区列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uQTNwYjL0UDM24CN1AjN +func (r *VCMeetingService) ListVCMeetingDefaultCountry(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) { + if r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultCountry mock enable") + return r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "ListVCMeetingDefaultCountry", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/country/list", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listVCMeetingDefaultCountryResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingListVCMeetingDefaultCountry mock VCMeetingListVCMeetingDefaultCountry method +func (r *Mock) MockVCMeetingListVCMeetingDefaultCountry(f func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error)) { + r.mockVCMeetingListVCMeetingDefaultCountry = f +} + +// UnMockVCMeetingListVCMeetingDefaultCountry un-mock VCMeetingListVCMeetingDefaultCountry method +func (r *Mock) UnMockVCMeetingListVCMeetingDefaultCountry() { + r.mockVCMeetingListVCMeetingDefaultCountry = nil +} + +// ListVCMeetingDefaultCountryReq ... +type ListVCMeetingDefaultCountryReq struct { +} + +// ListVCMeetingDefaultCountryResp ... +type ListVCMeetingDefaultCountryResp struct { + Countries []*ListVCMeetingDefaultCountryRespCountry `json:"countries,omitempty"` // 国家地区列表 +} + +// ListVCMeetingDefaultCountryRespCountry ... +type ListVCMeetingDefaultCountryRespCountry struct { + CountryID string `json:"country_id,omitempty"` // 国家地区ID + Name string `json:"name,omitempty"` // 国家地区名称 +} + +// listVCMeetingDefaultCountryResp ... +type listVCMeetingDefaultCountryResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultCountryResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_district_list.go b/api_vc_meeting_default_district_list.go new file mode 100644 index 00000000..277f9e40 --- /dev/null +++ b/api_vc_meeting_default_district_list.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListVCMeetingDefaultDistrict 新建建筑时需要选择所处国家/地区, 该接口用于获得系统预先提供的可供选择的城市列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUTNwYjL1UDM24SN1AjN +func (r *VCMeetingService) ListVCMeetingDefaultDistrict(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) { + if r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultDistrict mock enable") + return r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "ListVCMeetingDefaultDistrict", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/district/list", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listVCMeetingDefaultDistrictResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingListVCMeetingDefaultDistrict mock VCMeetingListVCMeetingDefaultDistrict method +func (r *Mock) MockVCMeetingListVCMeetingDefaultDistrict(f func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error)) { + r.mockVCMeetingListVCMeetingDefaultDistrict = f +} + +// UnMockVCMeetingListVCMeetingDefaultDistrict un-mock VCMeetingListVCMeetingDefaultDistrict method +func (r *Mock) UnMockVCMeetingListVCMeetingDefaultDistrict() { + r.mockVCMeetingListVCMeetingDefaultDistrict = nil +} + +// ListVCMeetingDefaultDistrictReq ... +type ListVCMeetingDefaultDistrictReq struct { + CountryID int64 `query:"country_id" json:"-"` // 国家地区ID +} + +// ListVCMeetingDefaultDistrictResp ... +type ListVCMeetingDefaultDistrictResp struct { + Districts []*ListVCMeetingDefaultDistrictRespDistrict `json:"districts,omitempty"` // 城市列表 +} + +// ListVCMeetingDefaultDistrictRespDistrict ... +type ListVCMeetingDefaultDistrictRespDistrict struct { + DistrictID string `json:"district_id,omitempty"` // 城市ID + Name string `json:"name,omitempty"` // 城市名称 +} + +// listVCMeetingDefaultDistrictResp ... +type listVCMeetingDefaultDistrictResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultDistrictResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_room_batch_get.go b/api_vc_meeting_default_room_batch_get.go new file mode 100644 index 00000000..9e4b7946 --- /dev/null +++ b/api_vc_meeting_default_room_batch_get.go @@ -0,0 +1,87 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetVCMeetingDefaultRoomBatchGet 该接口用于获取指定会议室的详细信息。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uEDOyUjLxgjM14SM4ITN +func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) { + if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGet mock enable") + return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "GetVCMeetingDefaultRoomBatchGet", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/batch_get", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getVCMeetingDefaultRoomBatchGetResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingGetVCMeetingDefaultRoomBatchGet mock VCMeetingGetVCMeetingDefaultRoomBatchGet method +func (r *Mock) MockVCMeetingGetVCMeetingDefaultRoomBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error)) { + r.mockVCMeetingGetVCMeetingDefaultRoomBatchGet = f +} + +// UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet un-mock VCMeetingGetVCMeetingDefaultRoomBatchGet method +func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet() { + r.mockVCMeetingGetVCMeetingDefaultRoomBatchGet = nil +} + +// GetVCMeetingDefaultRoomBatchGetReq ... +type GetVCMeetingDefaultRoomBatchGetReq struct { + RoomIDs []string `query:"room_ids" json:"-"` // 用于查询指定会议室的 ID + Fields *string `query:"fields" json:"-"` // 用于指定返回的字段名, 每个字段名之间用逗号 ", " 分隔, 如: “id, name”, "*" 表示返回全部字段, 可选字段有: "id, name, description, capacity, building_id, building_name, floor_name, is_disabled, display_id", 默认返回所有字段 +} + +// GetVCMeetingDefaultRoomBatchGetResp ... +type GetVCMeetingDefaultRoomBatchGetResp struct { + Rooms []*GetVCMeetingDefaultRoomBatchGetRespRoom `json:"rooms,omitempty"` // 会议室列表 +} + +// GetVCMeetingDefaultRoomBatchGetRespRoom ... +type GetVCMeetingDefaultRoomBatchGetRespRoom struct { + RoomID string `json:"room_id,omitempty"` // 会议室 ID + BuildingID string `json:"building_id,omitempty"` // 会议室所属建筑物 ID + BuildingName string `json:"building_name,omitempty"` // 会议室所属建筑物名称 + Capacity int64 `json:"capacity,omitempty"` // 会议室能容纳的人数 + Description string `json:"description,omitempty"` // 会议室的相关描述 + DisplayID string `json:"display_id,omitempty"` // 会议室的展示 ID + FloorName string `json:"floor_name,omitempty"` // 会议室所在楼层名称 + IsDisabled bool `json:"is_disabled,omitempty"` // 会议室是否不可用, 若会议室不可用, 则该值为 true, 否则为 false + Name string `json:"name,omitempty"` // 会议室名称 +} + +// getVCMeetingDefaultRoomBatchGetResp ... +type getVCMeetingDefaultRoomBatchGetResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultRoomBatchGetResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_room_batch_get_id.go b/api_vc_meeting_default_room_batch_get_id.go new file mode 100644 index 00000000..3162af71 --- /dev/null +++ b/api_vc_meeting_default_room_batch_get_id.go @@ -0,0 +1,79 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// GetVCMeetingDefaultRoomBatchGetID 该接口用于根据租户自定义会议室ID查询会议室ID。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uYzMxYjL2MTM24iNzEjN +func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) { + if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGetID mock enable") + return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "GetVCMeetingDefaultRoomBatchGetID", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/batch_get_id", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(getVCMeetingDefaultRoomBatchGetIDResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingGetVCMeetingDefaultRoomBatchGetID mock VCMeetingGetVCMeetingDefaultRoomBatchGetID method +func (r *Mock) MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error)) { + r.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID = f +} + +// UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID un-mock VCMeetingGetVCMeetingDefaultRoomBatchGetID method +func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() { + r.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID = nil +} + +// GetVCMeetingDefaultRoomBatchGetIDReq ... +type GetVCMeetingDefaultRoomBatchGetIDReq struct { + CustomRoomIDs []string `query:"custom_room_ids" json:"-"` // 用于查询指定会议室的租户自定义会议室ID +} + +// GetVCMeetingDefaultRoomBatchGetIDResp ... +type GetVCMeetingDefaultRoomBatchGetIDResp struct { + Rooms []*GetVCMeetingDefaultRoomBatchGetIDRespRoom `json:"rooms,omitempty"` // 会议室列表 +} + +// GetVCMeetingDefaultRoomBatchGetIDRespRoom ... +type GetVCMeetingDefaultRoomBatchGetIDRespRoom struct { + RoomID string `json:"room_id,omitempty"` // 会议室 ID + CustomRoomID string `json:"custom_room_id,omitempty"` // 租户自定义会议室 ID +} + +// getVCMeetingDefaultRoomBatchGetIDResp ... +type getVCMeetingDefaultRoomBatchGetIDResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultRoomBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_room_create.go b/api_vc_meeting_default_room_create.go new file mode 100644 index 00000000..3fdb5ea4 --- /dev/null +++ b/api_vc_meeting_default_room_create.go @@ -0,0 +1,78 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultRoomCreate 该接口用于创建会议室。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uITNwYjLyUDM24iM1AjN +func (r *VCMeetingService) CreateVCMeetingDefaultRoomCreate(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomCreate mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultRoomCreate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/create", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultRoomCreateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultRoomCreate mock VCMeetingCreateVCMeetingDefaultRoomCreate method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomCreate(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultRoomCreate = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultRoomCreate un-mock VCMeetingCreateVCMeetingDefaultRoomCreate method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() { + r.mockVCMeetingCreateVCMeetingDefaultRoomCreate = nil +} + +// CreateVCMeetingDefaultRoomCreateReq ... +type CreateVCMeetingDefaultRoomCreateReq struct { + BuildingID string `json:"building_id,omitempty"` // 会议室所在的建筑ID + Floor string `json:"floor,omitempty"` // 会议室所在的建筑楼层 + Name string `json:"name,omitempty"` // 会议室名称 + Capacity int64 `json:"capacity,omitempty"` // 容量 + IsDisabled bool `json:"is_disabled,omitempty"` // 是否禁用 + CustomRoomID *string `json:"custom_room_id,omitempty"` // 租户自定义会议室ID +} + +// CreateVCMeetingDefaultRoomCreateResp ... +type CreateVCMeetingDefaultRoomCreateResp struct { + RoomID string `json:"room_id,omitempty"` // 成功创建的会议室ID +} + +// createVCMeetingDefaultRoomCreateResp ... +type createVCMeetingDefaultRoomCreateResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomCreateResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_room_delete.go b/api_vc_meeting_default_room_delete.go new file mode 100644 index 00000000..da339b6a --- /dev/null +++ b/api_vc_meeting_default_room_delete.go @@ -0,0 +1,72 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultRoomDelete 该接口用于删除会议室。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUzMxYjL1MTM24SNzEjN +func (r *VCMeetingService) CreateVCMeetingDefaultRoomDelete(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomDelete mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultRoomDelete", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/delete", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultRoomDeleteResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultRoomDelete mock VCMeetingCreateVCMeetingDefaultRoomDelete method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomDelete(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultRoomDelete = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultRoomDelete un-mock VCMeetingCreateVCMeetingDefaultRoomDelete method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() { + r.mockVCMeetingCreateVCMeetingDefaultRoomDelete = nil +} + +// CreateVCMeetingDefaultRoomDeleteReq ... +type CreateVCMeetingDefaultRoomDeleteReq struct { + RoomID string `json:"room_id,omitempty"` // 要删除的会议室ID +} + +// CreateVCMeetingDefaultRoomDeleteResp ... +type CreateVCMeetingDefaultRoomDeleteResp struct { +} + +// createVCMeetingDefaultRoomDeleteResp ... +type createVCMeetingDefaultRoomDeleteResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomDeleteResp `json:"data,omitempty"` +} diff --git a/api_vc_meeting_default_room_list.go b/api_vc_meeting_default_room_list.go new file mode 100644 index 00000000..0512e985 --- /dev/null +++ b/api_vc_meeting_default_room_list.go @@ -0,0 +1,92 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListVCMeetingDefaultRoom 该接口用于获取指定建筑下的会议室。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uADOyUjLwgjM14CM4ITN +func (r *VCMeetingService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) { + if r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultRoom mock enable") + return r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "ListVCMeetingDefaultRoom", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/list", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(listVCMeetingDefaultRoomResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingListVCMeetingDefaultRoom mock VCMeetingListVCMeetingDefaultRoom method +func (r *Mock) MockVCMeetingListVCMeetingDefaultRoom(f func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error)) { + r.mockVCMeetingListVCMeetingDefaultRoom = f +} + +// UnMockVCMeetingListVCMeetingDefaultRoom un-mock VCMeetingListVCMeetingDefaultRoom method +func (r *Mock) UnMockVCMeetingListVCMeetingDefaultRoom() { + r.mockVCMeetingListVCMeetingDefaultRoom = nil +} + +// ListVCMeetingDefaultRoomReq ... +type ListVCMeetingDefaultRoomReq struct { + BuildingID string `query:"building_id" json:"-"` // 被查询的建筑物 ID + PageSize *int64 `query:"page_size" json:"-"` // 请求期望返回的会议室数量, 不足则返回全部, 该值默认为 100, 最大为 1000 + PageToken *string `query:"page_token" json:"-"` // 用于标记当前请求的分页标记, 将返回以当前分页标记开始, 往后 page_size 个元素 + OrderBy *string `query:"order_by" json:"-"` // 提供用于对名称/楼层进行升序/降序排序的方式查询, 可选项有: "name-asc, name-desc, floor_name-asc, floor_name-desc", 传入其他字符串不做处理, 默认无序 + Fields *string `query:"fields" json:"-"` // 用于指定返回的字段名, 每个字段名之间用逗号 ", " 分隔, 如: “id, name”, "*" 表示返回全部字段, 可选字段有: "id, name, description, capacity, building_id, building_name, floor_name, is_disabled, display_id", 默认返回所有字段 +} + +// ListVCMeetingDefaultRoomResp ... +type ListVCMeetingDefaultRoomResp struct { + PageToken string `json:"page_token,omitempty"` // 分页标记, 存在下一页时返回 + HasMore bool `json:"has_more,omitempty"` // 存在下一页时, 该值为 true, 否则为 false + Rooms []*ListVCMeetingDefaultRoomRespRoom `json:"rooms,omitempty"` // 会议室列表 +} + +// ListVCMeetingDefaultRoomRespRoom ... +type ListVCMeetingDefaultRoomRespRoom struct { + RoomID string `json:"room_id,omitempty"` // 会议室 ID + BuildingID string `json:"building_id,omitempty"` // 会议室所属建筑物 ID + BuildingName string `json:"building_name,omitempty"` // 会议室所属建筑物名称 + Capacity int64 `json:"capacity,omitempty"` // 会议室能容纳的人数 + Description string `json:"description,omitempty"` // 会议室的相关描述 + DisplayID string `json:"display_id,omitempty"` // 会议室的展示 ID + FloorName string `json:"floor_name,omitempty"` // 会议室所在楼层名称 + IsDisabled bool `json:"is_disabled,omitempty"` // 会议室是否不可用, 若会议室不可用, 则该值为 true, 否则为 false + Name string `json:"name,omitempty"` // 会议室名称 +} + +// listVCMeetingDefaultRoomResp ... +type listVCMeetingDefaultRoomResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultRoomResp `json:"data,omitempty"` // 返回业务信息 +} diff --git a/api_vc_meeting_default_room_update.go b/api_vc_meeting_default_room_update.go new file mode 100644 index 00000000..599109c5 --- /dev/null +++ b/api_vc_meeting_default_room_update.go @@ -0,0 +1,75 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// CreateVCMeetingDefaultRoomUpdate 该接口用于更新会议室。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMTNwYjLzUDM24yM1AjN +func (r *VCMeetingService) CreateVCMeetingDefaultRoomUpdate(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) { + if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomUpdate mock enable") + return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VCMeeting", + API: "CreateVCMeetingDefaultRoomUpdate", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/update", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(createVCMeetingDefaultRoomUpdateResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCMeetingCreateVCMeetingDefaultRoomUpdate mock VCMeetingCreateVCMeetingDefaultRoomUpdate method +func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomUpdate(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error)) { + r.mockVCMeetingCreateVCMeetingDefaultRoomUpdate = f +} + +// UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate un-mock VCMeetingCreateVCMeetingDefaultRoomUpdate method +func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() { + r.mockVCMeetingCreateVCMeetingDefaultRoomUpdate = nil +} + +// CreateVCMeetingDefaultRoomUpdateReq ... +type CreateVCMeetingDefaultRoomUpdateReq struct { + RoomID string `json:"room_id,omitempty"` // 要更新的会议室ID + Name *string `json:"name,omitempty"` // 会议室名称 + Capacity *int64 `json:"capacity,omitempty"` // 容量 + CustomRoomID *string `json:"custom_room_id,omitempty"` // 租户自定义会议室ID +} + +// CreateVCMeetingDefaultRoomUpdateResp ... +type CreateVCMeetingDefaultRoomUpdateResp struct { +} + +// createVCMeetingDefaultRoomUpdateResp ... +type createVCMeetingDefaultRoomUpdateResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomUpdateResp `json:"data,omitempty"` +} diff --git a/api_vc_meeting_end.go b/api_vc_meeting_end.go index 051eb832..c610ae7b 100644 --- a/api_vc_meeting_end.go +++ b/api_vc_meeting_end.go @@ -64,7 +64,8 @@ type EndVCMeetingReq struct { } // EndVCMeetingResp ... -type EndVCMeetingResp struct{} +type EndVCMeetingResp struct { +} // endVCMeetingResp ... type endVCMeetingResp struct { diff --git a/api_vc_meeting_recording_set_permission.go b/api_vc_meeting_recording_set_permission.go index f7a7160a..ef0df63c 100644 --- a/api_vc_meeting_recording_set_permission.go +++ b/api_vc_meeting_recording_set_permission.go @@ -74,7 +74,8 @@ type SetVCPermissionMeetingRecordingReqPermissionObject struct { } // SetVCPermissionMeetingRecordingResp ... -type SetVCPermissionMeetingRecordingResp struct{} +type SetVCPermissionMeetingRecordingResp struct { +} // setVCPermissionMeetingRecordingResp ... type setVCPermissionMeetingRecordingResp struct { diff --git a/api_vc_meeting_recording_start.go b/api_vc_meeting_recording_start.go index 9ea65312..c61fad4a 100644 --- a/api_vc_meeting_recording_start.go +++ b/api_vc_meeting_recording_start.go @@ -65,7 +65,8 @@ type StartVCMeetingRecordingReq struct { } // StartVCMeetingRecordingResp ... -type StartVCMeetingRecordingResp struct{} +type StartVCMeetingRecordingResp struct { +} // startVCMeetingRecordingResp ... type startVCMeetingRecordingResp struct { diff --git a/api_vc_meeting_recording_stop.go b/api_vc_meeting_recording_stop.go index c6fe5bcc..1420d71a 100644 --- a/api_vc_meeting_recording_stop.go +++ b/api_vc_meeting_recording_stop.go @@ -64,7 +64,8 @@ type StopVCMeetingRecordingReq struct { } // StopVCMeetingRecordingResp ... -type StopVCMeetingRecordingResp struct{} +type StopVCMeetingRecordingResp struct { +} // stopVCMeetingRecordingResp ... type stopVCMeetingRecordingResp struct { diff --git a/api_vc_reserve_config_admin_update.go b/api_vc_reserve_config_admin_update.go index 434e28b6..15eb93f4 100644 --- a/api_vc_reserve_config_admin_update.go +++ b/api_vc_reserve_config_admin_update.go @@ -81,7 +81,8 @@ type UpdateVCReserveConfigAdminReqReserveAdminConfigUser struct { } // UpdateVCReserveConfigAdminResp ... -type UpdateVCReserveConfigAdminResp struct{} +type UpdateVCReserveConfigAdminResp struct { +} // updateVCReserveConfigAdminResp ... type updateVCReserveConfigAdminResp struct { diff --git a/api_vc_reserve_config_disable_inform_update.go b/api_vc_reserve_config_disable_inform_update.go index f967dfc8..81ee3926 100644 --- a/api_vc_reserve_config_disable_inform_update.go +++ b/api_vc_reserve_config_disable_inform_update.go @@ -83,7 +83,8 @@ type UpdateVCReserveConfigDisableInformReqDisableInformInformedUser struct { } // UpdateVCReserveConfigDisableInformResp ... -type UpdateVCReserveConfigDisableInformResp struct{} +type UpdateVCReserveConfigDisableInformResp struct { +} // updateVCReserveConfigDisableInformResp ... type updateVCReserveConfigDisableInformResp struct { diff --git a/api_vc_reserve_config_form_update.go b/api_vc_reserve_config_form_update.go index 3bb215e9..8290d1a3 100644 --- a/api_vc_reserve_config_form_update.go +++ b/api_vc_reserve_config_form_update.go @@ -79,7 +79,8 @@ type UpdateVCReserveConfigFormReqReserveFormConfigNotifiedUser struct { } // UpdateVCReserveConfigFormResp ... -type UpdateVCReserveConfigFormResp struct{} +type UpdateVCReserveConfigFormResp struct { +} // updateVCReserveConfigFormResp ... type updateVCReserveConfigFormResp struct { diff --git a/api_vc_reserve_config_update.go b/api_vc_reserve_config_update.go index 56b6ad84..4bce5761 100644 --- a/api_vc_reserve_config_update.go +++ b/api_vc_reserve_config_update.go @@ -109,7 +109,8 @@ type UpdateVCReserveConfigReqTimeConfig struct { } // UpdateVCReserveConfigResp ... -type UpdateVCReserveConfigResp struct{} +type UpdateVCReserveConfigResp struct { +} // updateVCReserveConfigResp ... type updateVCReserveConfigResp struct { diff --git a/api_vc_reserve_delete.go b/api_vc_reserve_delete.go index ee02c519..44331055 100644 --- a/api_vc_reserve_delete.go +++ b/api_vc_reserve_delete.go @@ -65,7 +65,8 @@ type DeleteVCReserveReq struct { } // DeleteVCReserveResp ... -type DeleteVCReserveResp struct{} +type DeleteVCReserveResp struct { +} // deleteVCReserveResp ... type deleteVCReserveResp struct { diff --git a/api_vc_room_config_query.go b/api_vc_room_config_query.go new file mode 100644 index 00000000..ac90ca0e --- /dev/null +++ b/api_vc_room_config_query.go @@ -0,0 +1,102 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// QueryVCRoomConfig 查询一个范围内的会议室配置。 +// +// 根据查询范围传入对应的参数 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_config/query +func (r *VCService) QueryVCRoomConfig(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) { + if r.cli.mock.mockVCQueryVCRoomConfig != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#QueryVCRoomConfig mock enable") + return r.cli.mock.mockVCQueryVCRoomConfig(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VC", + API: "QueryVCRoomConfig", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/vc/v1/room_configs/query", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(queryVCRoomConfigResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCQueryVCRoomConfig mock VCQueryVCRoomConfig method +func (r *Mock) MockVCQueryVCRoomConfig(f func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error)) { + r.mockVCQueryVCRoomConfig = f +} + +// UnMockVCQueryVCRoomConfig un-mock VCQueryVCRoomConfig method +func (r *Mock) UnMockVCQueryVCRoomConfig() { + r.mockVCQueryVCRoomConfig = nil +} + +// QueryVCRoomConfigReq ... +type QueryVCRoomConfigReq struct { + Scope int64 `query:"scope" json:"-"` // 查询节点范围, 示例值: 5, 可选值有: `1`: 租户, `2`: 国家/地区, `3`: 城市, `4`: 建筑, `5`: 楼层, `6`: 会议室 + CountryID *string `query:"country_id" json:"-"` // 国家/地区ID scope为2, 3时需要此参数, 示例值: "086" + DistrictID *string `query:"district_id" json:"-"` // 城市ID scope为3时需要此参数, 示例值: "001" + BuildingID *string `query:"building_id" json:"-"` // 建筑ID scope为4, 5时需要此参数, 示例值: "22" + FloorName *string `query:"floor_name" json:"-"` // 楼层 scope为5时需要此参数, 示例值: "4" + RoomID *string `query:"room_id" json:"-"` // 会议室ID scope为6时需要此参数, 示例值: "6383786266263" +} + +// QueryVCRoomConfigResp ... +type QueryVCRoomConfigResp struct { + RoomBackground string `json:"room_background,omitempty"` // 飞书会议室背景图 + DisplayBackground string `json:"display_background,omitempty"` // 飞书签到板背景图 + DigitalSignage *QueryVCRoomConfigRespDigitalSignage `json:"digital_signage,omitempty"` // 飞书会议室数字标牌 +} + +// QueryVCRoomConfigRespDigitalSignage ... +type QueryVCRoomConfigRespDigitalSignage struct { + Enable bool `json:"enable,omitempty"` // 是否开启数字标牌功能 + Mute bool `json:"mute,omitempty"` // 是否静音播放 + StartDisplay int64 `json:"start_display,omitempty"` // 日程会议开始前n分钟结束播放 + StopDisplay int64 `json:"stop_display,omitempty"` // 会议结束后n分钟开始播放 + Materials []*QueryVCRoomConfigRespDigitalSignageMaterial `json:"materials,omitempty"` // 素材列表 +} + +// QueryVCRoomConfigRespDigitalSignageMaterial ... +type QueryVCRoomConfigRespDigitalSignageMaterial struct { + ID string `json:"id,omitempty"` // 素材ID + Name string `json:"name,omitempty"` // 素材名称 + MaterialType int64 `json:"material_type,omitempty"` // 素材类型, 可选值有: `1`: 图片, `2`: 视频, `3`: GIF + URL string `json:"url,omitempty"` // 素材url + Duration int64 `json:"duration,omitempty"` // 播放时长(单位sec) + Cover string `json:"cover,omitempty"` // 素材封面url + Md5 string `json:"md5,omitempty"` // 素材文件md5 +} + +// queryVCRoomConfigResp ... +type queryVCRoomConfigResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryVCRoomConfigResp `json:"data,omitempty"` +} diff --git a/api_vc_room_config_set.go b/api_vc_room_config_set.go new file mode 100644 index 00000000..ee03b858 --- /dev/null +++ b/api_vc_room_config_set.go @@ -0,0 +1,149 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SetVCRoomConfig 设置一个范围内的会议室配置。 +// +// 根据设置范围传入对应的参数 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_config/set +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/room_config/set +// +// Deprecated +func (r *VCService) SetVCRoomConfig(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) { + if r.cli.mock.mockVCSetVCRoomConfig != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#SetVCRoomConfig mock enable") + return r.cli.mock.mockVCSetVCRoomConfig(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VC", + API: "SetVCRoomConfig", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/vc/v1/room_configs/set", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(setVCRoomConfigResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCSetVCRoomConfig mock VCSetVCRoomConfig method +func (r *Mock) MockVCSetVCRoomConfig(f func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error)) { + r.mockVCSetVCRoomConfig = f +} + +// UnMockVCSetVCRoomConfig un-mock VCSetVCRoomConfig method +func (r *Mock) UnMockVCSetVCRoomConfig() { + r.mockVCSetVCRoomConfig = nil +} + +// SetVCRoomConfigReq ... +type SetVCRoomConfigReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + Scope int64 `json:"scope,omitempty"` // 设置节点范围示例值: 5可选值有: 租户国家/地区城市建筑楼层会议室 + CountryID *string `json:"country_id,omitempty"` // 国家/地区ID scope为2, 3时需要此参数示例值: "086" + DistrictID *string `json:"district_id,omitempty"` // 城市ID scope为3时需要此参数示例值: "223" + BuildingID *string `json:"building_id,omitempty"` // 建筑ID scope为4, 5时需要此参数示例值: "66" + FloorName *string `json:"floor_name,omitempty"` // 楼层 scope为5时需要此参数示例值: "3" + RoomID *string `json:"room_id,omitempty"` // 会议室ID scope为6时需要此参数示例值: "67687262867363" + RoomConfig *SetVCRoomConfigReqRoomConfig `json:"room_config,omitempty"` // 会议室设置 +} + +// SetVCRoomConfigReqRoomConfig ... +type SetVCRoomConfigReqRoomConfig struct { + RoomBackground *string `json:"room_background,omitempty"` // 飞书会议室背景图示例值: "https://lf1-ttcdn-tos.pstatp.com/obj/xxx" + DisplayBackground *string `json:"display_background,omitempty"` // 飞书签到板背景图示例值: "https://lf1-ttcdn-tos.pstatp.com/obj/xxx" + DigitalSignage *SetVCRoomConfigReqRoomConfigDigitalSignage `json:"digital_signage,omitempty"` // 飞书会议室数字标牌 + RoomBoxDigitalSignage *SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignage `json:"room_box_digital_signage,omitempty"` // 飞书投屏盒子数字标牌 + RoomStatus *SetVCRoomConfigReqRoomConfigRoomStatus `json:"room_status,omitempty"` // 会议室状态 +} + +// SetVCRoomConfigReqRoomConfigDigitalSignage ... +type SetVCRoomConfigReqRoomConfigDigitalSignage struct { + Enable *bool `json:"enable,omitempty"` // 是否开启数字标牌功能示例值: true + Mute *bool `json:"mute,omitempty"` // 是否静音播放示例值: true + StartDisplay *int64 `json:"start_display,omitempty"` // 在会议结束n分钟后开始播放, 取值1~720(仅对飞书会议室数字标牌生效)示例值: 3 + StopDisplay *int64 `json:"stop_display,omitempty"` // 在日程会议开始前n分钟停止播放, 取值1~720(仅对飞书会议室数字标牌生效)示例值: 3 + Materials []*SetVCRoomConfigReqRoomConfigDigitalSignageMaterial `json:"materials,omitempty"` // 素材列表 +} + +// SetVCRoomConfigReqRoomConfigDigitalSignageMaterial ... +type SetVCRoomConfigReqRoomConfigDigitalSignageMaterial struct { + ID *string `json:"id,omitempty"` // 素材ID, 当设置新素材时, 无需传递该字段示例值: "7847784676276" + Name *string `json:"name,omitempty"` // 素材名称示例值: "name" + MaterialType *int64 `json:"material_type,omitempty"` // 素材类型示例值: 0可选值有: 图片视频GIF + URL *string `json:"url,omitempty"` // 素材url示例值: "url" + Duration *int64 `json:"duration,omitempty"` // 播放时长(单位sec), 取值1~43200示例值: 15 + Cover *string `json:"cover,omitempty"` // 素材封面url示例值: "url" + Md5 *string `json:"md5,omitempty"` // 素材文件md5示例值: "md5" + Vid *string `json:"vid,omitempty"` // 素材文件vid示例值: "vid" + Size *string `json:"size,omitempty"` // 素材文件大小(单位byte)示例值: "100" +} + +// SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignage ... +type SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignage struct { + Enable *bool `json:"enable,omitempty"` // 是否开启数字标牌功能示例值: true + Mute *bool `json:"mute,omitempty"` // 是否静音播放示例值: true + StartDisplay *int64 `json:"start_display,omitempty"` // 在会议结束n分钟后开始播放, 取值1~720(仅对飞书会议室数字标牌生效)示例值: 3 + StopDisplay *int64 `json:"stop_display,omitempty"` // 在日程会议开始前n分钟停止播放, 取值1~720(仅对飞书会议室数字标牌生效)示例值: 3 + Materials []*SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignageMaterial `json:"materials,omitempty"` // 素材列表 +} + +// SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignageMaterial ... +type SetVCRoomConfigReqRoomConfigRoomBoxDigitalSignageMaterial struct { + ID *string `json:"id,omitempty"` // 素材ID, 当设置新素材时, 无需传递该字段示例值: "7847784676276" + Name *string `json:"name,omitempty"` // 素材名称示例值: "name" + MaterialType *int64 `json:"material_type,omitempty"` // 素材类型示例值: 0可选值有: 图片视频GIF + URL *string `json:"url,omitempty"` // 素材url示例值: "url" + Duration *int64 `json:"duration,omitempty"` // 播放时长(单位sec), 取值1~43200示例值: 15 + Cover *string `json:"cover,omitempty"` // 素材封面url示例值: "url" + Md5 *string `json:"md5,omitempty"` // 素材文件md5示例值: "md5" + Vid *string `json:"vid,omitempty"` // 素材文件vid示例值: "vid" + Size *string `json:"size,omitempty"` // 素材文件大小(单位byte)示例值: "100" +} + +// SetVCRoomConfigReqRoomConfigRoomStatus ... +type SetVCRoomConfigReqRoomConfigRoomStatus struct { + Status bool `json:"status,omitempty"` // 是否启用会议室示例值: true + DisableStartTime *string `json:"disable_start_time,omitempty"` // 禁用开始时间(unix时间, 单位sec)示例值: "1652356050" + DisableEndTime *string `json:"disable_end_time,omitempty"` // 禁用结束时间(unix时间, 单位sec, 数值0表示永久禁用)示例值: "1652442450" + DisableReason *string `json:"disable_reason,omitempty"` // 禁用原因示例值: "测试占用" + ContactIDs []string `json:"contact_ids,omitempty"` // 联系人列表, id类型由user_id_type参数决定示例值: ["ou_3ec3f6a28a0d08c45d895276e8e5e19b"] + DisableNotice *bool `json:"disable_notice,omitempty"` // 是否在禁用时发送通知给预定了该会议室的员工示例值: true + ResumeNotice *bool `json:"resume_notice,omitempty"` // 是否在恢复启用时发送通知给联系人示例值: true +} + +// SetVCRoomConfigResp ... +type SetVCRoomConfigResp struct { +} + +// setVCRoomConfigResp ... +type setVCRoomConfigResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SetVCRoomConfigResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_vc_room_config_set_checkboard_access_code.go b/api_vc_room_config_set_checkboard_access_code.go new file mode 100644 index 00000000..ac4d3ff8 --- /dev/null +++ b/api_vc_room_config_set_checkboard_access_code.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SetVCRoomConfigCheckboardAccessCode 创建一个范围内的签到板部署码 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_config/set_checkboard_access_code +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/room_config/set_checkboard_access_code +// +// Deprecated +func (r *VCService) SetVCRoomConfigCheckboardAccessCode(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) { + if r.cli.mock.mockVCSetVCRoomConfigCheckboardAccessCode != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#SetVCRoomConfigCheckboardAccessCode mock enable") + return r.cli.mock.mockVCSetVCRoomConfigCheckboardAccessCode(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VC", + API: "SetVCRoomConfigCheckboardAccessCode", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/vc/v1/room_configs/set_checkboard_access_code", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(setVCRoomConfigCheckboardAccessCodeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCSetVCRoomConfigCheckboardAccessCode mock VCSetVCRoomConfigCheckboardAccessCode method +func (r *Mock) MockVCSetVCRoomConfigCheckboardAccessCode(f func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error)) { + r.mockVCSetVCRoomConfigCheckboardAccessCode = f +} + +// UnMockVCSetVCRoomConfigCheckboardAccessCode un-mock VCSetVCRoomConfigCheckboardAccessCode method +func (r *Mock) UnMockVCSetVCRoomConfigCheckboardAccessCode() { + r.mockVCSetVCRoomConfigCheckboardAccessCode = nil +} + +// SetVCRoomConfigCheckboardAccessCodeReq ... +type SetVCRoomConfigCheckboardAccessCodeReq struct { + Scope int64 `json:"scope,omitempty"` // 设置节点范围示例值: 5可选值有: 租户国家/地区城市建筑楼层会议室 + CountryID *string `json:"country_id,omitempty"` // 国家/地区ID scope为2, 3时需要此参数示例值: "1" + DistrictID *string `json:"district_id,omitempty"` // 城市ID scope为3时需要此参数示例值: "2" + BuildingID *string `json:"building_id,omitempty"` // 建筑ID scope为4, 5时需要此参数示例值: "3" + FloorName *string `json:"floor_name,omitempty"` // 楼层 scope为5时需要此参数示例值: "4" + RoomID *string `json:"room_id,omitempty"` // 会议室ID scope为6时需要此参数示例值: "67687262867363" + ValidDay int64 `json:"valid_day,omitempty"` // 有效天数示例值: 1可选值有: 1天7天30天 +} + +// SetVCRoomConfigCheckboardAccessCodeResp ... +type SetVCRoomConfigCheckboardAccessCodeResp struct { + AccessCode string `json:"access_code,omitempty"` // 部署访问码 +} + +// setVCRoomConfigCheckboardAccessCodeResp ... +type setVCRoomConfigCheckboardAccessCodeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SetVCRoomConfigCheckboardAccessCodeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_vc_room_config_set_room_access_code.go b/api_vc_room_config_set_room_access_code.go new file mode 100644 index 00000000..3e02992e --- /dev/null +++ b/api_vc_room_config_set_room_access_code.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// SetVCRoomConfigRoomAccessCode 创建一个范围内的会议室部署码 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_config/set_room_access_code +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/room_config/set_room_access_code +// +// Deprecated +func (r *VCService) SetVCRoomConfigRoomAccessCode(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) { + if r.cli.mock.mockVCSetVCRoomConfigRoomAccessCode != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#SetVCRoomConfigRoomAccessCode mock enable") + return r.cli.mock.mockVCSetVCRoomConfigRoomAccessCode(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "VC", + API: "SetVCRoomConfigRoomAccessCode", + Method: "POST", + URL: r.cli.openBaseURL + "/open-apis/vc/v1/room_configs/set_room_access_code", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + } + resp := new(setVCRoomConfigRoomAccessCodeResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockVCSetVCRoomConfigRoomAccessCode mock VCSetVCRoomConfigRoomAccessCode method +func (r *Mock) MockVCSetVCRoomConfigRoomAccessCode(f func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error)) { + r.mockVCSetVCRoomConfigRoomAccessCode = f +} + +// UnMockVCSetVCRoomConfigRoomAccessCode un-mock VCSetVCRoomConfigRoomAccessCode method +func (r *Mock) UnMockVCSetVCRoomConfigRoomAccessCode() { + r.mockVCSetVCRoomConfigRoomAccessCode = nil +} + +// SetVCRoomConfigRoomAccessCodeReq ... +type SetVCRoomConfigRoomAccessCodeReq struct { + Scope int64 `json:"scope,omitempty"` // 设置节点范围示例值: 5可选值有: 租户国家/地区城市建筑楼层会议室 + CountryID *string `json:"country_id,omitempty"` // 国家/地区ID scope为2, 3时需要此参数示例值: "1" + DistrictID *string `json:"district_id,omitempty"` // 城市ID scope为3时需要此参数示例值: "2" + BuildingID *string `json:"building_id,omitempty"` // 建筑ID scope为4, 5时需要此参数示例值: "3" + FloorName *string `json:"floor_name,omitempty"` // 楼层 scope为5时需要此参数示例值: "4" + RoomID *string `json:"room_id,omitempty"` // 会议室ID scope为6时需要此参数示例值: "67687262867363" + ValidDay int64 `json:"valid_day,omitempty"` // 有效天数示例值: 1可选值有: 1天7天30天 +} + +// SetVCRoomConfigRoomAccessCodeResp ... +type SetVCRoomConfigRoomAccessCodeResp struct { + AccessCode string `json:"access_code,omitempty"` // 部署访问码 +} + +// setVCRoomConfigRoomAccessCodeResp ... +type setVCRoomConfigRoomAccessCodeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SetVCRoomConfigRoomAccessCodeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/api_vc_room_delete.go b/api_vc_room_delete.go index bde99730..eb37003f 100644 --- a/api_vc_room_delete.go +++ b/api_vc_room_delete.go @@ -62,7 +62,8 @@ type DeleteVCRoomReq struct { } // DeleteVCRoomResp ... -type DeleteVCRoomResp struct{} +type DeleteVCRoomResp struct { +} // deleteVCRoomResp ... type deleteVCRoomResp struct { diff --git a/api_vc_room_level_delete.go b/api_vc_room_level_delete.go index 46f45009..a4efd75c 100644 --- a/api_vc_room_level_delete.go +++ b/api_vc_room_level_delete.go @@ -63,7 +63,8 @@ type DeleteVCRoomLevelReq struct { } // DeleteVCRoomLevelResp ... -type DeleteVCRoomLevelResp struct{} +type DeleteVCRoomLevelResp struct { +} // deleteVCRoomLevelResp ... type deleteVCRoomLevelResp struct { diff --git a/api_vc_room_level_update.go b/api_vc_room_level_update.go index fd37919f..1ddf2b52 100644 --- a/api_vc_room_level_update.go +++ b/api_vc_room_level_update.go @@ -65,7 +65,8 @@ type UpdateVCRoomLevelReq struct { } // UpdateVCRoomLevelResp ... -type UpdateVCRoomLevelResp struct{} +type UpdateVCRoomLevelResp struct { +} // updateVCRoomLevelResp ... type updateVCRoomLevelResp struct { diff --git a/api_vc_room_update.go b/api_vc_room_update.go index c338df4b..2d61d7d4 100644 --- a/api_vc_room_update.go +++ b/api_vc_room_update.go @@ -87,7 +87,8 @@ type UpdateVCRoomReqRoomStatus struct { } // UpdateVCRoomResp ... -type UpdateVCRoomResp struct{} +type UpdateVCRoomResp struct { +} // updateVCRoomResp ... type updateVCRoomResp struct { diff --git a/api_vc_scope_config_set.go b/api_vc_scope_config_set.go index c6884d77..54db40a5 100644 --- a/api_vc_scope_config_set.go +++ b/api_vc_scope_config_set.go @@ -132,7 +132,8 @@ type SetVCScopeConfigReqScopeConfigRoomStatus struct { } // SetVCScopeConfigResp ... -type SetVCScopeConfigResp struct{} +type SetVCScopeConfigResp struct { +} // setVCScopeConfigResp ... type setVCScopeConfigResp struct { diff --git a/api_verification_get.go b/api_verification_get.go index c2ff5a1f..ff2acd1b 100644 --- a/api_verification_get.go +++ b/api_verification_get.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockVerificationGetVerification() { } // GetVerificationReq ... -type GetVerificationReq struct{} +type GetVerificationReq struct { +} // GetVerificationResp ... type GetVerificationResp struct { diff --git a/api_wiki_space_member_list.go b/api_wiki_space_member_list.go new file mode 100644 index 00000000..ba4fe44c --- /dev/null +++ b/api_wiki_space_member_list.go @@ -0,0 +1,88 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package lark + +import ( + "context" +) + +// ListWikiSpaceMember 获取知识空间的成员与管理员列表。 +// +// doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-member/list +// new doc: https://open.feishu.cn/document/docs/wiki-v2/space-member/list +func (r *DriveService) ListWikiSpaceMember(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) { + if r.cli.mock.mockDriveListWikiSpaceMember != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#ListWikiSpaceMember mock enable") + return r.cli.mock.mockDriveListWikiSpaceMember(ctx, request, options...) + } + + req := &RawRequestReq{ + Scope: "Drive", + API: "ListWikiSpaceMember", + Method: "GET", + URL: r.cli.openBaseURL + "/open-apis/wiki/v2/spaces/:space_id/members", + Body: request, + MethodOption: newMethodOption(options), + NeedTenantAccessToken: true, + NeedUserAccessToken: true, + } + resp := new(listWikiSpaceMemberResp) + + response, err := r.cli.RawRequest(ctx, req, resp) + return resp.Data, response, err +} + +// MockDriveListWikiSpaceMember mock DriveListWikiSpaceMember method +func (r *Mock) MockDriveListWikiSpaceMember(f func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error)) { + r.mockDriveListWikiSpaceMember = f +} + +// UnMockDriveListWikiSpaceMember un-mock DriveListWikiSpaceMember method +func (r *Mock) UnMockDriveListWikiSpaceMember() { + r.mockDriveListWikiSpaceMember = nil +} + +// ListWikiSpaceMemberReq ... +type ListWikiSpaceMemberReq struct { + SpaceID string `path:"space_id" json:"-"` // 知识空间 ID示例值: "7375263209671884820" + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 1 + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: NzA0NDg5NjIzMDA3MzE3MTk3Ml83MzYzMjE4NDkzNDI1NzI5NTM4 +} + +// ListWikiSpaceMemberResp ... +type ListWikiSpaceMemberResp struct { + Members []*ListWikiSpaceMemberRespMember `json:"members,omitempty"` // 空间成员列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +} + +// ListWikiSpaceMemberRespMember ... +type ListWikiSpaceMemberRespMember struct { + MemberType string `json:"member_type,omitempty"` // 知识库协作者 ID 类型 + MemberID string `json:"member_id,omitempty"` // 知识库协作者 ID + MemberRole string `json:"member_role,omitempty"` // 知识库协作者角色 + Type string `json:"type,omitempty"` // 知识库协作者类型(未来支持)可选值有: 用户群组组织架构 +} + +// listWikiSpaceMemberResp ... +type listWikiSpaceMemberResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ListWikiSpaceMemberResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_native_app.go b/app_link_native_app.go index 1e75c93a..d3a78bbf 100644 --- a/app_link_native_app.go +++ b/app_link_native_app.go @@ -37,3 +37,15 @@ func (r *AppLinkService) OpenNativeApp(req *OpenNativeAppReq) string { type OpenNativeAppReq struct { AppID string `json:"appId,omitempty"` // 原生应用 appId(可从「开发者后台-凭证与基础信息」获取) } + +// OpenNativeAppResp ... +type OpenNativeAppResp struct { +} + +// openNativeAppResp ... +type openNativeAppResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenNativeAppResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_bot.go b/app_link_open_bot.go index 237677df..40ec54cf 100644 --- a/app_link_open_bot.go +++ b/app_link_open_bot.go @@ -36,3 +36,15 @@ func (r *AppLinkService) OpenBot(req *OpenBotReq) string { type OpenBotReq struct { AppID string `json:"appId,omitempty"` // 机器人的appId } + +// OpenBotResp ... +type OpenBotResp struct { +} + +// openBotResp ... +type openBotResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenBotResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_calender.go b/app_link_open_calender.go index 624657e6..952fdc45 100644 --- a/app_link_open_calender.go +++ b/app_link_open_calender.go @@ -32,4 +32,17 @@ func (r *AppLinkService) OpenCalender(req *OpenCalenderReq) string { } // OpenCalenderReq ... -type OpenCalenderReq struct{} +type OpenCalenderReq struct { +} + +// OpenCalenderResp ... +type OpenCalenderResp struct { +} + +// openCalenderResp ... +type openCalenderResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenCalenderResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_calender_account.go b/app_link_open_calender_account.go index fb891221..402d8c24 100644 --- a/app_link_open_calender_account.go +++ b/app_link_open_calender_account.go @@ -32,4 +32,17 @@ func (r *AppLinkService) OpenCalenderAccount(req *OpenCalenderAccountReq) string } // OpenCalenderAccountReq ... -type OpenCalenderAccountReq struct{} +type OpenCalenderAccountReq struct { +} + +// OpenCalenderAccountResp ... +type OpenCalenderAccountResp struct { +} + +// openCalenderAccountResp ... +type openCalenderAccountResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenCalenderAccountResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_calender_event_create.go b/app_link_open_calender_event_create.go index 12a5d0d2..17c50a87 100644 --- a/app_link_open_calender_event_create.go +++ b/app_link_open_calender_event_create.go @@ -37,3 +37,15 @@ type OpenCalenderEventCreateReq struct { EndTime *string `json:"endTime,omitempty"` // 结束日期, {unixTime}格式 Summary *string `json:"summary,omitempty"` // 日程主题, 中文可使用encodeURIComponent方法生成 } + +// OpenCalenderEventCreateResp ... +type OpenCalenderEventCreateResp struct { +} + +// openCalenderEventCreateResp ... +type openCalenderEventCreateResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenCalenderEventCreateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_calender_view.go b/app_link_open_calender_view.go index 4279cb41..166c65b4 100644 --- a/app_link_open_calender_view.go +++ b/app_link_open_calender_view.go @@ -36,3 +36,15 @@ type OpenCalenderViewReq struct { Type *string `json:"type,omitempty"` // 视图类型, 枚举值包括: `day`: 日视图 `three_day`: 三日视图, 仅移动端支持 `week`: 周视图, 仅PC端支持 `month`: 月视图 `meeting`: 会议室视图, 仅PC端支持 `list`: 列表视图, 仅移动端支持 Date *string `json:"date,omitempty"` // 日期, {unixTime}格式 } + +// OpenCalenderViewResp ... +type OpenCalenderViewResp struct { +} + +// openCalenderViewResp ... +type openCalenderViewResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenCalenderViewResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_chat.go b/app_link_open_chat.go index 3c63bf23..71cf17ed 100644 --- a/app_link_open_chat.go +++ b/app_link_open_chat.go @@ -36,3 +36,15 @@ type OpenChatReq struct { OpenID *string `json:"openId,omitempty"` // 用户 openId, 获取方式可以参考文档: [如何获取自己的 Open ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) OpenChatID *string `json:"openChatId,omitempty"` // 会话ID, 包括单聊会话和群聊会话。是以 'oc' 开头的字段, 获取方式可参考文档 [群ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)示例值: oc_41e7bdf4877cfc316136f4ccf6c32613 } + +// OpenChatResp ... +type OpenChatResp struct { +} + +// openChatResp ... +type openChatResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenChatResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_docs.go b/app_link_open_docs.go index 967fb2fb..991fec94 100644 --- a/app_link_open_docs.go +++ b/app_link_open_docs.go @@ -35,3 +35,15 @@ func (r *AppLinkService) OpenDocs(req *OpenDocsReq) string { type OpenDocsReq struct { URL string `json:"url,omitempty"` // 要打开的云文档URL } + +// OpenDocsResp ... +type OpenDocsResp struct { +} + +// openDocsResp ... +type openDocsResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenDocsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_lark.go b/app_link_open_lark.go index acbe557e..670e4718 100644 --- a/app_link_open_lark.go +++ b/app_link_open_lark.go @@ -32,4 +32,17 @@ func (r *AppLinkService) OpenLark(req *OpenLarkReq) string { } // OpenLarkReq ... -type OpenLarkReq struct{} +type OpenLarkReq struct { +} + +// OpenLarkResp ... +type OpenLarkResp struct { +} + +// openLarkResp ... +type openLarkResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenLarkResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_mini_program.go b/app_link_open_mini_program.go index a5d7ac15..ae108fb2 100644 --- a/app_link_open_mini_program.go +++ b/app_link_open_mini_program.go @@ -44,3 +44,15 @@ type OpenMiniProgramReq struct { PathPc *string `json:"path_pc,omitempty"` // 同 path 参数, PC 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 MinLkVer *string `json:"min_lk_ver,omitempty"` // 指定 AppLink 协议能够兼容的最小飞书版本, 使用三位版本号 x.y.z。如果当前飞书版本号小于min_lk_ver, 打开该 AppLink 会显示为兼容页面 } + +// OpenMiniProgramResp ... +type OpenMiniProgramResp struct { +} + +// openMiniProgramResp ... +type openMiniProgramResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenMiniProgramResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_sso_login.go b/app_link_open_sso_login.go index fa226726..32fb3dd6 100644 --- a/app_link_open_sso_login.go +++ b/app_link_open_sso_login.go @@ -36,3 +36,15 @@ type OpenSSOLoginReq struct { SSODomain string `json:"sso_domain,omitempty"` // 租户的域名, 填写的是租户在admin后台配置的租户域名信息。当在admin后台改动租户的域名时, 需要同步修改applink该参数值 TenantName string `json:"tenant_name,omitempty"` // 租户名, 用于在切换租户时, 客户端展示即将登录到的租户名称, 一般填写公司名即可 } + +// OpenSSOLoginResp ... +type OpenSSOLoginResp struct { +} + +// openSSOLoginResp ... +type openSSOLoginResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenSSOLoginResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_web_app.go b/app_link_open_web_app.go index 4477cfc5..29b590fc 100644 --- a/app_link_open_web_app.go +++ b/app_link_open_web_app.go @@ -46,3 +46,15 @@ type OpenWebAppReq struct { LkTargetURL *string `json:"lk_target_url,omitempty"` // 指定要打开网页应用的某个页面完整url 注意: 1. 从 7.27版本开始, 始终会打开该参数配置的页面;7.27 以前版本, 此url参数中的domain如果和网页应用在开发者后台配置的url的scheme和domain不一致, 打开的将会是网页应用开发者后台配置的url 2.此url参数必须进行encode处理, 如果url携带query参数, 并且query参数中也包含 url 或 中文 等非ASCII码字符, 必须先对query参数中的非ASCII码字符进行encode后, 作为参数的值, 然后对url整体进行encode。具体用法详见示例3 3. 该参数从 5.12版本 开始支持, 低版本无法解析此参数, 如果在低版本使用, 将打开开发者后台配置的网页应用首页 4. 该参数和path 系列参数互斥, 同时传递时lk_target_url 优先级更高 Reload *string `json:"reload,omitempty"` // 如果网页应用当前所处的页面路径和 applink 要打开的页面路径相同时: true: 重新加载页面 false: 保留原页面状态 默认值: false 5.20版本开始支持, 仅PC端支持 } + +// OpenWebAppResp ... +type OpenWebAppResp struct { +} + +// openWebAppResp ... +type openWebAppResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenWebAppResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_web_url.go b/app_link_open_web_url.go index efeb4357..246f79e7 100644 --- a/app_link_open_web_url.go +++ b/app_link_open_web_url.go @@ -43,3 +43,15 @@ type OpenWebURLReq struct { MinWidth *string `json:"min_width,omitempty"` // 最小宽度(仅当`mode`为`sidebar-semi`或`window`时生效), 飞书7.9版本开始支持 最小值: 350 最大值: 飞书窗口的宽度 默认值: 350 MaxWidth *string `json:"max_width,omitempty"` // 最大宽度(仅当`mode`为`sidebar-semi`或`window`时生效), 飞书7.9版本开始支持 最小值: 350 最大值: 飞书窗口的宽度 默认值: 350 } + +// OpenWebURLResp ... +type OpenWebURLResp struct { +} + +// openWebURLResp ... +type openWebURLResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenWebURLResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_open_workbench.go b/app_link_open_workbench.go index d903ac56..be2f2bf4 100644 --- a/app_link_open_workbench.go +++ b/app_link_open_workbench.go @@ -39,3 +39,15 @@ type OpenWorkbenchReq struct { PathIos *string `json:"path_ios,omitempty"` // 访问 iOS 端网页工作台某个具体页面。iOS 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 PathPc *string `json:"path_pc,omitempty"` // 访问 PC 端网页工作台某个具体页面。PC 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 } + +// OpenWorkbenchResp ... +type OpenWorkbenchResp struct { +} + +// openWorkbenchResp ... +type openWorkbenchResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenWorkbenchResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_scan.go b/app_link_scan.go index 2cc879d8..749bd354 100644 --- a/app_link_scan.go +++ b/app_link_scan.go @@ -32,4 +32,17 @@ func (r *AppLinkService) OpenScan(req *OpenScanReq) string { } // OpenScanReq ... -type OpenScanReq struct{} +type OpenScanReq struct { +} + +// OpenScanResp ... +type OpenScanResp struct { +} + +// openScanResp ... +type openScanResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenScanResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_task.go b/app_link_task.go index b5cc07c9..f1762079 100644 --- a/app_link_task.go +++ b/app_link_task.go @@ -34,4 +34,17 @@ func (r *AppLinkService) OpenTask(req *OpenTaskReq) string { } // OpenTaskReq ... -type OpenTaskReq struct{} +type OpenTaskReq struct { +} + +// OpenTaskResp ... +type OpenTaskResp struct { +} + +// openTaskResp ... +type openTaskResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_task_create.go b/app_link_task_create.go index 00453a52..7f3e577e 100644 --- a/app_link_task_create.go +++ b/app_link_task_create.go @@ -34,4 +34,17 @@ func (r *AppLinkService) OpenTaskCreate(req *OpenTaskCreateReq) string { } // OpenTaskCreateReq ... -type OpenTaskCreateReq struct{} +type OpenTaskCreateReq struct { +} + +// OpenTaskCreateResp ... +type OpenTaskCreateResp struct { +} + +// openTaskCreateResp ... +type openTaskCreateResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenTaskCreateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_task_detail.go b/app_link_task_detail.go index e33f7e98..49a487c6 100644 --- a/app_link_task_detail.go +++ b/app_link_task_detail.go @@ -38,3 +38,15 @@ type OpenTaskDetailReq struct { Guid string `json:"guid,omitempty"` // 全局唯一的 taskId(global unique ID), 通过[飞书任务的 OpenAPI](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/get) 获取 Mode *string `json:"mode,omitempty"` // 打开模式, 未填写时默认在 IM 场景打开详情页面。枚举值包括: `app`: 在任务 tab 中打开详情页面。 } + +// OpenTaskDetailResp ... +type OpenTaskDetailResp struct { +} + +// openTaskDetailResp ... +type openTaskDetailResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenTaskDetailResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/app_link_task_tab.go b/app_link_task_tab.go index 53c2bd9d..b3662a64 100644 --- a/app_link_task_tab.go +++ b/app_link_task_tab.go @@ -37,3 +37,15 @@ func (r *AppLinkService) OpenTaskTab(req *OpenTaskTabReq) string { type OpenTaskTabReq struct { Tab string `json:"tab,omitempty"` // String类型, 枚举值包括: `all` 进行中; `assign_to_me` 由我处理; `assign_from_me` 我分配的; `followed` 我关注的; `completed` 已完成 } + +// OpenTaskTabResp ... +type OpenTaskTabResp struct { +} + +// openTaskTabResp ... +type openTaskTabResp struct { + Code int64 `json:"code,omitempty"` + Msg string `json:"msg,omitempty"` + Data *OpenTaskTabResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` +} diff --git a/impl.go b/impl.go index b151a1d7..13d3552b 100644 --- a/impl.go +++ b/impl.go @@ -52,48 +52,63 @@ type Lark struct { wrapDoRequest ApiEndpoint // service - ACS *ACSService - AI *AIService - APaaS *APaaSService - Admin *AdminService - AppLink *AppLinkService - Application *ApplicationService - Approval *ApprovalService - Attendance *AttendanceService - Auth *AuthService - Baike *BaikeService - Bitable *BitableService - Bot *BotService - Calendar *CalendarService - Chat *ChatService - Contact *ContactService - CoreHR *CoreHRService - Drive *DriveService - EHR *EHRService - Event *EventService - EventCallback *EventCallbackService - File *FileService - Helpdesk *HelpdeskService - Hire *HireService - HumanAuth *HumanAuthService - Jssdk *JssdkService - Lingo *LingoService - MDM *MDMService - Mail *MailService - Message *MessageService - Mina *MinaService - Minutes *MinutesService - OKR *OKRService - Passport *PassportService - Performance *PerformanceService - PersonalSettings *PersonalSettingsService - Report *ReportService - Search *SearchService - Task *TaskService - TaskV1 *TaskV1Service - Tenant *TenantService - VC *VCService - Verification *VerificationService + ACS *ACSService + AI *AIService + APaaS *APaaSService + Admin *AdminService + Aily *AilyService + AppLink *AppLinkService + Application *ApplicationService + Approval *ApprovalService + Attendance *AttendanceService + Auth *AuthService + Authen *AuthenService + Baike *BaikeService + Base *BaseService + Bitable *BitableService + Board *BoardService + Bot *BotService + Calendar *CalendarService + Cardkit *CardkitService + CcmDocs *CcmDocsService + Chat *ChatService + Compensation *CompensationService + Contact *ContactService + CoreHR *CoreHRService + Directory *DirectoryService + Docs *DocsService + Drive *DriveService + EHR *EHRService + Event *EventService + EventCallback *EventCallbackService + File *FileService + Helpdesk *HelpdeskService + Hire *HireService + HumanAuth *HumanAuthService + Jssdk *JssdkService + Lingo *LingoService + MDM *MDMService + Mail *MailService + MeetingRoom *MeetingRoomService + Message *MessageService + Mina *MinaService + Minutes *MinutesService + Moments *MomentsService + OKR *OKRService + Passport *PassportService + Payroll *PayrollService + Performance *PerformanceService + PersonalSettings *PersonalSettingsService + Report *ReportService + Search *SearchService + SecurityAndCompliance *SecurityAndComplianceService + Task *TaskService + TaskV1 *TaskV1Service + Tenant *TenantService + TrustParty *TrustPartyService + VC *VCService + VCMeeting *VCMeetingService + Verification *VerificationService } func (r *Lark) AppID() string { @@ -115,18 +130,27 @@ func (r *Lark) init() { r.AI = &AIService{cli: r} r.APaaS = &APaaSService{cli: r} r.Admin = &AdminService{cli: r} + r.Aily = &AilyService{cli: r} r.AppLink = &AppLinkService{cli: r} r.Application = &ApplicationService{cli: r} r.Approval = &ApprovalService{cli: r} r.Attendance = &AttendanceService{cli: r} r.Auth = &AuthService{cli: r} + r.Authen = &AuthenService{cli: r} r.Baike = &BaikeService{cli: r} + r.Base = &BaseService{cli: r} r.Bitable = &BitableService{cli: r} + r.Board = &BoardService{cli: r} r.Bot = &BotService{cli: r} r.Calendar = &CalendarService{cli: r} + r.Cardkit = &CardkitService{cli: r} + r.CcmDocs = &CcmDocsService{cli: r} r.Chat = &ChatService{cli: r} + r.Compensation = &CompensationService{cli: r} r.Contact = &ContactService{cli: r} r.CoreHR = &CoreHRService{cli: r} + r.Directory = &DirectoryService{cli: r} + r.Docs = &DocsService{cli: r} r.Drive = &DriveService{cli: r} r.EHR = &EHRService{cli: r} r.Event = &EventService{cli: r} @@ -139,20 +163,27 @@ func (r *Lark) init() { r.Lingo = &LingoService{cli: r} r.MDM = &MDMService{cli: r} r.Mail = &MailService{cli: r} + r.MeetingRoom = &MeetingRoomService{cli: r} r.Message = &MessageService{cli: r} r.Mina = &MinaService{cli: r} r.Minutes = &MinutesService{cli: r} + r.Moments = &MomentsService{cli: r} r.OKR = &OKRService{cli: r} r.Passport = &PassportService{cli: r} + r.Payroll = &PayrollService{cli: r} r.Performance = &PerformanceService{cli: r} r.PersonalSettings = &PersonalSettingsService{cli: r} r.Report = &ReportService{cli: r} r.Search = &SearchService{cli: r} + r.SecurityAndCompliance = &SecurityAndComplianceService{cli: r} r.Task = &TaskService{cli: r} r.TaskV1 = &TaskV1Service{cli: r} r.Tenant = &TenantService{cli: r} + r.TrustParty = &TrustPartyService{cli: r} r.VC = &VCService{cli: r} + r.VCMeeting = &VCMeetingService{cli: r} r.Verification = &VerificationService{cli: r} + } func (r *Lark) clone(tenantKey string) *Lark { @@ -187,47 +218,60 @@ func (r *Lark) clone(tenantKey string) *Lark { return r2 } -type ( - ACSService struct{ cli *Lark } - AIService struct{ cli *Lark } - APaaSService struct{ cli *Lark } - AdminService struct{ cli *Lark } - AppLinkService struct{ cli *Lark } - ApplicationService struct{ cli *Lark } - ApprovalService struct{ cli *Lark } - AttendanceService struct{ cli *Lark } - AuthService struct{ cli *Lark } - BaikeService struct{ cli *Lark } - BitableService struct{ cli *Lark } - BotService struct{ cli *Lark } - CalendarService struct{ cli *Lark } - ChatService struct{ cli *Lark } - ContactService struct{ cli *Lark } - CoreHRService struct{ cli *Lark } - DriveService struct{ cli *Lark } - EHRService struct{ cli *Lark } - EventService struct{ cli *Lark } - EventCallbackService struct{ cli *Lark } - FileService struct{ cli *Lark } - HelpdeskService struct{ cli *Lark } - HireService struct{ cli *Lark } - HumanAuthService struct{ cli *Lark } - JssdkService struct{ cli *Lark } - LingoService struct{ cli *Lark } - MDMService struct{ cli *Lark } - MailService struct{ cli *Lark } - MessageService struct{ cli *Lark } - MinaService struct{ cli *Lark } - MinutesService struct{ cli *Lark } - OKRService struct{ cli *Lark } - PassportService struct{ cli *Lark } - PerformanceService struct{ cli *Lark } - PersonalSettingsService struct{ cli *Lark } - ReportService struct{ cli *Lark } - SearchService struct{ cli *Lark } - TaskService struct{ cli *Lark } - TaskV1Service struct{ cli *Lark } - TenantService struct{ cli *Lark } - VCService struct{ cli *Lark } - VerificationService struct{ cli *Lark } -) +type ACSService struct{ cli *Lark } +type AIService struct{ cli *Lark } +type APaaSService struct{ cli *Lark } +type AdminService struct{ cli *Lark } +type AilyService struct{ cli *Lark } +type AppLinkService struct{ cli *Lark } +type ApplicationService struct{ cli *Lark } +type ApprovalService struct{ cli *Lark } +type AttendanceService struct{ cli *Lark } +type AuthService struct{ cli *Lark } +type AuthenService struct{ cli *Lark } +type BaikeService struct{ cli *Lark } +type BaseService struct{ cli *Lark } +type BitableService struct{ cli *Lark } +type BoardService struct{ cli *Lark } +type BotService struct{ cli *Lark } +type CalendarService struct{ cli *Lark } +type CardkitService struct{ cli *Lark } +type CcmDocsService struct{ cli *Lark } +type ChatService struct{ cli *Lark } +type CompensationService struct{ cli *Lark } +type ContactService struct{ cli *Lark } +type CoreHRService struct{ cli *Lark } +type DirectoryService struct{ cli *Lark } +type DocsService struct{ cli *Lark } +type DriveService struct{ cli *Lark } +type EHRService struct{ cli *Lark } +type EventService struct{ cli *Lark } +type EventCallbackService struct{ cli *Lark } +type FileService struct{ cli *Lark } +type HelpdeskService struct{ cli *Lark } +type HireService struct{ cli *Lark } +type HumanAuthService struct{ cli *Lark } +type JssdkService struct{ cli *Lark } +type LingoService struct{ cli *Lark } +type MDMService struct{ cli *Lark } +type MailService struct{ cli *Lark } +type MeetingRoomService struct{ cli *Lark } +type MessageService struct{ cli *Lark } +type MinaService struct{ cli *Lark } +type MinutesService struct{ cli *Lark } +type MomentsService struct{ cli *Lark } +type OKRService struct{ cli *Lark } +type PassportService struct{ cli *Lark } +type PayrollService struct{ cli *Lark } +type PerformanceService struct{ cli *Lark } +type PersonalSettingsService struct{ cli *Lark } +type ReportService struct{ cli *Lark } +type SearchService struct{ cli *Lark } +type SecurityAndComplianceService struct{ cli *Lark } +type TaskService struct{ cli *Lark } +type TaskV1Service struct{ cli *Lark } +type TenantService struct{ cli *Lark } +type TrustPartyService struct{ cli *Lark } +type VCService struct{ cli *Lark } +type VCMeetingService struct{ cli *Lark } +type VerificationService struct{ cli *Lark } diff --git a/mock.go b/mock.go index 85d82296..0cffc5ae 100644 --- a/mock.go +++ b/mock.go @@ -23,1115 +23,1601 @@ import ( // Mock mock struct type Mock struct { - mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) - mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) - mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) - mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) - mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) - mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) - mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) - mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) - mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) - mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) - mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) - mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) - mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) - mockAPaaSAddAPaaSApprovalTaskAssignee func(ctx context.Context, request *AddAPaaSApprovalTaskAssigneeReq, options ...MethodOptionFunc) (*AddAPaaSApprovalTaskAssigneeResp, *Response, error) - mockAPaaSAgreeAPaaSApprovalTask func(ctx context.Context, request *AgreeAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*AgreeAPaaSApprovalTaskResp, *Response, error) - mockAPaaSRejectAPaaSApprovalTask func(ctx context.Context, request *RejectAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*RejectAPaaSApprovalTaskResp, *Response, error) - mockAPaaSTransferAPaaSApprovalTask func(ctx context.Context, request *TransferAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*TransferAPaaSApprovalTaskResp, *Response, error) - mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) - mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) - mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) - mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) - mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) - mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) - mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) - mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) - mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) - mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) - mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) - mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) - mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) - mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) - mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) - mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) - mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) - mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) - mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) - mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) - mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) - mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) - mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) - mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) - mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) - mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) - mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) - mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) - mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) - mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) - mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) - mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) - mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) - mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) - mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) - mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) - mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) - mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) - mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) - mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) - mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) - mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) - mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) - mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) - mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) - mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) - mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) - mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) - mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) - mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) - mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) - mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) - mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) - mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) - mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) - mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) - mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) - mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) - mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) - mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) - mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) - mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) - mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) - mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) - mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) - mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) - mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) - mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) - mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) - mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) - mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) - mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) - mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) - mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) - mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) - mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) - mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) - mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) - mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) - mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) - mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) - mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) - mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) - mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) - mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) - mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) - mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) - mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) - mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) - mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) - mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) - mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) - mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) - mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) - mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) - mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) - mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) - mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) - mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) - mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) - mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) - mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) - mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) - mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) - mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) - mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) - mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) - mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) - mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) - mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) - mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) - mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) - mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) - mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) - mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) - mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) - mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) - mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) - mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) - mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) - mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) - mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) - mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) - mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) - mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) - mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) - mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) - mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) - mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) - mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) - mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) - mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) - mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) - mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) - mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) - mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) - mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) - mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) - mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) - mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) - mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) - mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) - mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) - mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) - mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) - mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) - mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) - mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) - mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) - mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) - mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) - mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) - mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) - mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) - mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) - mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) - mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) - mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) - mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) - mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) - mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) - mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) - mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) - mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) - mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) - mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) - mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) - mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) - mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) - mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) - mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) - mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) - mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) - mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) - mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) - mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) - mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) - mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) - mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) - mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) - mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) - mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) - mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) - mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) - mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) - mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) - mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) - mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) - mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) - mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) - mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) - mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) - mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) - mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) - mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) - mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) - mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) - mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) - mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) - mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) - mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) - mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) - mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) - mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) - mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) - mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) - mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) - mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) - mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) - mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) - mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) - mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) - mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) - mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) - mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) - mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) - mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) - mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) - mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) - mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) - mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) - mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) - mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) - mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) - mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) - mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) - mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) - mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) - mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) - mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) - mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) - mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) - mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) - mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) - mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) - mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) - mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) - mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) - mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) - mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) - mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) - mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) - mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) - mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) - mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) - mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) - mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) - mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) - mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) - mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) - mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) - mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) - mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) - mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) - mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) - mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) - mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) - mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) - mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) - mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) - mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) - mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) - mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) - mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) - mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) - mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) - mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) - mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) - mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) - mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) - mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) - mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) - mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) - mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) - mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) - mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) - mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) - mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) - mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) - mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) - mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) - mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) - mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) - mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) - mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) - mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) - mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) - mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) - mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) - mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) - mockTaskGetTaskCommentList func(ctx context.Context, request *GetTaskCommentListReq, options ...MethodOptionFunc) (*GetTaskCommentListResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) - mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) - mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) - mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) - mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) - mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) - mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) - mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) - mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) - mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) - mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) - mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) - mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) - mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) - mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) - mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) - mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) - mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) - mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) - mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) - mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) - mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) - mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) - mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) - mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) - mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) - mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) - mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) - mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) - mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) - mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) - mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) - mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) - mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) - mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) - mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) - mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) - mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) - mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) - mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) - mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) - mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) - mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) - mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) - mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) - mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) - mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) - mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) - mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) - mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) - mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) - mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) - mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) - mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) - mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) - mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) - mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) - mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) - mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) - mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) - mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) - mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) - mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) - mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) - mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) - mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) - mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) - mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) + mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) + mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) + mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) + mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) + mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) + mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) + mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) + mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) + mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) + mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) + mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) + mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) + mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) + mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs func(ctx context.Context, request *ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogDataChangeLogsResp, *Response, error) + mockAPaaSGetAPaaSApplicationAuditLog func(ctx context.Context, request *GetAPaaSApplicationAuditLogReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogResp, *Response, error) + mockAPaaSGetAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *GetAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*GetAPaaSApplicationEnvironmentVariableResp, *Response, error) + mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) + mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) + mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) + mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) + mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) + mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) + mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) + mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) + mockAPaaSGetAPaaSApplicationRoleMember func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) + mockAPaaSCreateAPaaSApprovalInstanceCancel func(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error) + mockAPaaSAddAPaaSApprovalTaskAssignee func(ctx context.Context, request *AddAPaaSApprovalTaskAssigneeReq, options ...MethodOptionFunc) (*AddAPaaSApprovalTaskAssigneeResp, *Response, error) + mockAPaaSAgreeAPaaSApprovalTask func(ctx context.Context, request *AgreeAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*AgreeAPaaSApprovalTaskResp, *Response, error) + mockAPaaSRejectAPaaSApprovalTask func(ctx context.Context, request *RejectAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*RejectAPaaSApprovalTaskResp, *Response, error) + mockAPaaSTransferAPaaSApprovalTask func(ctx context.Context, request *TransferAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*TransferAPaaSApprovalTaskResp, *Response, error) + mockAPaaSListAPaaSSeatActivity func(ctx context.Context, request *ListAPaaSSeatActivityReq, options ...MethodOptionFunc) (*ListAPaaSSeatActivityResp, *Response, error) + mockAPaaSListAPaaSSeatAssignment func(ctx context.Context, request *ListAPaaSSeatAssignmentReq, options ...MethodOptionFunc) (*ListAPaaSSeatAssignmentResp, *Response, error) + mockAPaaSCreateAPaaSUserTaskCc func(ctx context.Context, request *CreateAPaaSUserTaskCcReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskCcResp, *Response, error) + mockAPaaSCreateAPaaSUserTaskChatGroup func(ctx context.Context, request *CreateAPaaSUserTaskChatGroupReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskChatGroupResp, *Response, error) + mockAPaaSCreateAPaaSUserTaskExpediting func(ctx context.Context, request *CreateAPaaSUserTaskExpeditingReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskExpeditingResp, *Response, error) + mockAPaaSQueryAPaaSUserTask func(ctx context.Context, request *QueryAPaaSUserTaskReq, options ...MethodOptionFunc) (*QueryAPaaSUserTaskResp, *Response, error) + mockAPaaSCreateAPaaSUserTaskRollback func(ctx context.Context, request *CreateAPaaSUserTaskRollbackReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackResp, *Response, error) + mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) + mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) + mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) + mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) + mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) + mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) + mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) + mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) + mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) + mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) + mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) + mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) + mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) + mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) + mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) + mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) + mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) + mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) + mockAilyCreateAilySessionRunCancel func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) + mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) + mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) + mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) + mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) + mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) + mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) + mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) + mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) + mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) + mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) + mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) + mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) + mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) + mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) + mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) + mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) + mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) + mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) + mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) + mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) + mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) + mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) + mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) + mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) + mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) + mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) + mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) + mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) + mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) + mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) + mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) + mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) + mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) + mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) + mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) + mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) + mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) + mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) + mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) + mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) + mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) + mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) + mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) + mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) + mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) + mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) + mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) + mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) + mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) + mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) + mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) + mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) + mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) + mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) + mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) + mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) + mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) + mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) + mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) + mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) + mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) + mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) + mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) + mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) + mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) + mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) + mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) + mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) + mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) + mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) + mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) + mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) + mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) + mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) + mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) + mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) + mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) + mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) + mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) + mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) + mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) + mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) + mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) + mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) + mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) + mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) + mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) + mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) + mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) + mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) + mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) + mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) + mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) + mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) + mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) + mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) + mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) + mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) + mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) + mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) + mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) + mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) + mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) + mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) + mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) + mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) + mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) + mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) + mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) + mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) + mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) + mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) + mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) + mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) + mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) + mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) + mockCompensationBatchUpdateCompensationLumpSumPayment func(ctx context.Context, request *BatchUpdateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationLumpSumPaymentResp, *Response, error) + mockCompensationQueryCompensationLumpSumPayment func(ctx context.Context, request *QueryCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentResp, *Response, error) + mockCompensationQueryCompensationLumpSumPaymentDetail func(ctx context.Context, request *QueryCompensationLumpSumPaymentDetailReq, options ...MethodOptionFunc) (*QueryCompensationLumpSumPaymentDetailResp, *Response, error) + mockCompensationBatchCreateCompensationRecurringPayment func(ctx context.Context, request *BatchCreateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationRecurringPaymentResp, *Response, error) + mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) + mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) + mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) + mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) + mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) + mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) + mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) + mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) + mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) + mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) + mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) + mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) + mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) + mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) + mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) + mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) + mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) + mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) + mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) + mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) + mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) + mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) + mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) + mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) + mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) + mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) + mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) + mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) + mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) + mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) + mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) + mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) + mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) + mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) + mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) + mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) + mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) + mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) + mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) + mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) + mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) + mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) + mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) + mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRBatchQueryCorehrCostAllocation func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) + mockCoreHRCreateCorehrCostAllocationVersion func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRRemoveCorehrCostAllocationVersion func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRUpdateCorehrCostAllocationVersion func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRQueryCorehrCostCenterRecentChange func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) + mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) + mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) + mockCoreHRCreateCorehrCustomOrgActive func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) + mockCoreHRCreateCorehrCustomOrg func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) + mockCoreHRDeleteCorehrCustomOrg func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) + mockCoreHRQueryCorehrCustomOrg func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) + mockCoreHRQueryCorehrCustomOrgRecentChange func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) + mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) + mockCoreHRUpdateCorehrCustomOrgRule func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) + mockCoreHRBatchQueryCorehrDefaultCostCenter func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) + mockCoreHRCreateCorehrDefaultCostCenterVersion func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRRemoveCorehrDefaultCostCenterVersion func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCorehrDefaultCostCenterVersion func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCorehrDepartment func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRQueryCorehrDepartmentOperationLogs func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) + mockCoreHRQueryCorehrDepartmentRecentChange func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRCreateCorehrDepartmentTree func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) + mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) + mockCoreHRGetCorehrDraft func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) + mockCoreHRCreateCorehrEmployee func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) + mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) + mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRBatchQueryCorehrEmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCorehrEmployeesAdditionalJob func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRDeleteCorehrEmployeesAdditionalJob func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRUpdateCorehrEmployeesAdditionalJob func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRDeleteCorehrEmployeesInternationalAssignment func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRListCorehrEmployeesInternationalAssignment func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRUpdateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) + mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) + mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) + mockCoreHRSearchCorehrEnum func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) + mockCoreHRBatchGetCorehrJob func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCorehrJobChange func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) + mockCoreHRCreateCorehrJobChangeRevoke func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) + mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) + mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) + mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) + mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) + mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) + mockCoreHRQueryCorehrJobFamilyMultiTimeline func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrJobFamilyRecentChange func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) + mockCoreHRDeleteCorehrJobGrade func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCorehrJobGradeRecentChange func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) + mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRQueryCorehrJobLevelRecentChange func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) + mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) + mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) + mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) + mockCoreHRCreateCorehrLocationAddress func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) + mockCoreHRDeleteCorehrLocationAddress func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) + mockCoreHRUpdateCorehrLocationAddress func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRQueryCorehrLocationMultiTimeline func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrLocationRecentChange func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) + mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCorehrOffboardingEdit func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCorehrOffboardingRevoke func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCorehrOffboardingSubmitV2 func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) + mockCoreHRCreateCorehrPathwayActive func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) + mockCoreHRBatchGetCorehrPathway func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) + mockCoreHRCreateCorehrPathway func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) + mockCoreHRDeleteCorehrPathway func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) + mockCoreHRUpdateCorehrPathway func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) + mockCoreHRCreateCorehrPositionActive func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) + mockCoreHRCreateCorehrPosition func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) + mockCoreHRCreateCorehrPositionDelPosition func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) + mockCoreHRQueryCorehrPosition func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) + mockCoreHRQueryCorehrPositionRecentChange func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) + mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) + mockCoreHRCreateCorehrPreHireComplete func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) + mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCorehrPreHire func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) + mockCoreHRQueryCorehrPreHire func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) + mockCoreHRCreateCorehrPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) + mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCorehrPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) + mockCoreHRCreateCorehrPreHireTransitTask func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) + mockCoreHRCreateCorehrPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) + mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) + mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) + mockCoreHRCreateCorehrProbationSubmit func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) + mockCoreHRCreateCorehrProbationWithdraw func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) + mockCoreHRUpdateCorehrProcessApprover func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) + mockCoreHRUpdateCorehrProcessExtra func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) + mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCorehrProcessFormVariableData func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRCreateCorehrProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCorehrProcessRevoke func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) + mockCoreHRCreateCorehrProcessStart func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) + mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) + mockCoreHRUpdateCorehrProcessWithdraw func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) + mockCoreHRCreateCorehrReportDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCorehrReportDetailRowBatchsave func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) + mockCoreHRDownloadCorehrSignatureFile func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) + mockCoreHRListCorehrSignatureFile func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) + mockCoreHRListCorehrSignatureFileByBizID func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) + mockCoreHRQueryCorehrSignatureFile func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) + mockCoreHRCreateCorehrSignatureFileTerminate func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) + mockCoreHRListCorehrSignatureNodeByFileID func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) + mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) + mockCoreHRSearchCorehrSignatureTemplate func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) + mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) + mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) + mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) + mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) + mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) + mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) + mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) + mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) + mockDirectoryUpdateDirectoryCollaborationRule func(ctx context.Context, request *UpdateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*UpdateDirectoryCollaborationRuleResp, *Response, error) + mockDirectoryListDirectoryCollaborationTenant func(ctx context.Context, request *ListDirectoryCollaborationTenantReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationTenantResp, *Response, error) + mockDirectoryListDirectoryCollborationShareEntity func(ctx context.Context, request *ListDirectoryCollborationShareEntityReq, options ...MethodOptionFunc) (*ListDirectoryCollborationShareEntityResp, *Response, error) + mockDirectoryCreateDirectoryDepartment func(ctx context.Context, request *CreateDirectoryDepartmentReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentResp, *Response, error) + mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) + mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) + mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) + mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) + mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) + mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) + mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) + mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) + mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) + mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) + mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) + mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) + mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) + mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) + mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) + mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) + mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) + mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) + mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) + mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) + mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) + mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) + mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) + mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) + mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) + mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) + mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) + mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) + mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) + mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) + mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) + mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) + mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) + mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) + mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) + mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) + mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) + mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) + mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) + mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) + mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) + mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) + mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) + mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) + mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) + mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) + mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) + mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) + mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) + mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) + mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) + mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) + mockHireGetHireAgencyAccount func(ctx context.Context, request *GetHireAgencyAccountReq, options ...MethodOptionFunc) (*GetHireAgencyAccountResp, *Response, error) + mockHireCreateHireAgencyOperateAgencyAccount func(ctx context.Context, request *CreateHireAgencyOperateAgencyAccountReq, options ...MethodOptionFunc) (*CreateHireAgencyOperateAgencyAccountResp, *Response, error) + mockHireCreateHireAgencyProtect func(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error) + mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) + mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) + mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) + mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) + mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) + mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) + mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) + mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) + mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) + mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) + mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) + mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) + mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) + mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) + mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) + mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) + mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) + mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) + mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) + mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) + mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) + mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) + mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) + mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) + mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) + mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) + mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) + mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) + mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) + mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) + mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) + mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) + mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) + mockHireListHireInterviewTask func(ctx context.Context, request *ListHireInterviewTaskReq, options ...MethodOptionFunc) (*ListHireInterviewTaskResp, *Response, error) + mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) + mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) + mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) + mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) + mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) + mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) + mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) + mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) + mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) + mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) + mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) + mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) + mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) + mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) + mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) + mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) + mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) + mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) + mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) + mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) + mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) + mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) + mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) + mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) + mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) + mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) + mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) + mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) + mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) + mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) + mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) + mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) + mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) + mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) + mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) + mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) + mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) + mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) + mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) + mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) + mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) + mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) + mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) + mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) + mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) + mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) + mockHireUpdateHireTripartiteAgreement func(ctx context.Context, request *UpdateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*UpdateHireTripartiteAgreementResp, *Response, error) + mockHireListHireUserRole func(ctx context.Context, request *ListHireUserRoleReq, options ...MethodOptionFunc) (*ListHireUserRoleResp, *Response, error) + mockHireCreateHireWebsiteChannel func(ctx context.Context, request *CreateHireWebsiteChannelReq, options ...MethodOptionFunc) (*CreateHireWebsiteChannelResp, *Response, error) + mockHireDeleteHireWebsiteChannel func(ctx context.Context, request *DeleteHireWebsiteChannelReq, options ...MethodOptionFunc) (*DeleteHireWebsiteChannelResp, *Response, error) + mockHireListHireWebsiteChannel func(ctx context.Context, request *ListHireWebsiteChannelReq, options ...MethodOptionFunc) (*ListHireWebsiteChannelResp, *Response, error) + mockHireUpdateHireWebsiteChannel func(ctx context.Context, request *UpdateHireWebsiteChannelReq, options ...MethodOptionFunc) (*UpdateHireWebsiteChannelResp, *Response, error) + mockHireCreateHireWebsiteDeliveryByAttachment func(ctx context.Context, request *CreateHireWebsiteDeliveryByAttachmentReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByAttachmentResp, *Response, error) + mockHireCreateHireWebsiteDeliveryByResume func(ctx context.Context, request *CreateHireWebsiteDeliveryByResumeReq, options ...MethodOptionFunc) (*CreateHireWebsiteDeliveryByResumeResp, *Response, error) + mockHireGetHireWebsiteDeliveryTask func(ctx context.Context, request *GetHireWebsiteDeliveryTaskReq, options ...MethodOptionFunc) (*GetHireWebsiteDeliveryTaskResp, *Response, error) + mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) + mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) + mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) + mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) + mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) + mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) + mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) + mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) + mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) + mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) + mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) + mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) + mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) + mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) + mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) + mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) + mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) + mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) + mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) + mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) + mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) + mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) + mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) + mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) + mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) + mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) + mockMailGetMailUserMailboxMessageByCard func(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error) + mockMailDownloadMailUserMailboxMessageAttachmentURL func(ctx context.Context, request *DownloadMailUserMailboxMessageAttachmentURLReq, options ...MethodOptionFunc) (*DownloadMailUserMailboxMessageAttachmentURLResp, *Response, error) + mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) + mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) + mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) + mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) + mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) + mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) + mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) + mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) + mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) + mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) + mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) + mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) + mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) + mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) + mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) + mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) + mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) + mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) + mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) + mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) + mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) + mockMailCreateUserMailboxMailContact func(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error) + mockMailCreateMailUserMailboxFolder func(ctx context.Context, request *CreateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxFolderResp, *Response, error) + mockMailCreateMailUserMailboxRule func(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) + mockMailDeleteUserMailboxMailContact func(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error) + mockMailDeleteMailUserMailboxFolder func(ctx context.Context, request *DeleteMailUserMailboxFolderReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxFolderResp, *Response, error) + mockMailDeleteMailUserMailboxRule func(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) + mockMailListUserMailboxMailContact func(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error) + mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) + mockMailListMailUserMailboxFolder func(ctx context.Context, request *ListMailUserMailboxFolderReq, options ...MethodOptionFunc) (*ListMailUserMailboxFolderResp, *Response, error) + mockMailGetMailUserMailboxMessage func(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error) + mockMailListMailUserMailboxMessage func(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailListMailUserMailboxRule func(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) + mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) + mockMailCreateMailUserMailboxMessageSend func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) + mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) + mockMailUpdateUserMailboxMailContact func(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error) + mockMailUpdateMailUserMailboxFolder func(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error) + mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) + mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) + mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) + mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) + mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) + mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) + mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) + mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) + mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) + mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) + mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) + mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) + mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) + mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) + mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) + mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) + mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) + mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) + mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) + mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) + mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) + mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) + mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) + mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) + mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) + mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) + mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) + mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) + mockPayrollListPayrollAcctItem func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) + mockPayrollListPayrollCostAllocationDetail func(ctx context.Context, request *ListPayrollCostAllocationDetailReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationDetailResp, *Response, error) + mockPayrollListPayrollCostAllocationPlan func(ctx context.Context, request *ListPayrollCostAllocationPlanReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationPlanResp, *Response, error) + mockPayrollListPayrollCostAllocationReport func(ctx context.Context, request *ListPayrollCostAllocationReportReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationReportResp, *Response, error) + mockPayrollListPayrollDatasource func(ctx context.Context, request *ListPayrollDatasourceReq, options ...MethodOptionFunc) (*ListPayrollDatasourceResp, *Response, error) + mockPayrollQueryPayrollDatasourceRecord func(ctx context.Context, request *QueryPayrollDatasourceRecordReq, options ...MethodOptionFunc) (*QueryPayrollDatasourceRecordResp, *Response, error) + mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) + mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) + mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) + mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) + mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) + mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) + mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) + mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) + mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) + mockPerformanceDeletePerformanceAdditionalInformationsBatch func(ctx context.Context, request *DeletePerformanceAdditionalInformationsBatchReq, options ...MethodOptionFunc) (*DeletePerformanceAdditionalInformationsBatchResp, *Response, error) + mockPerformanceQueryPerformanceIndicator func(ctx context.Context, request *QueryPerformanceIndicatorReq, options ...MethodOptionFunc) (*QueryPerformanceIndicatorResp, *Response, error) + mockPerformanceCreatePerformanceMetricDetailImport func(ctx context.Context, request *CreatePerformanceMetricDetailImportReq, options ...MethodOptionFunc) (*CreatePerformanceMetricDetailImportResp, *Response, error) + mockPerformanceQueryPerformanceMetricDetail func(ctx context.Context, request *QueryPerformanceMetricDetailReq, options ...MethodOptionFunc) (*QueryPerformanceMetricDetailResp, *Response, error) + mockPerformanceQueryPerformanceMetricField func(ctx context.Context, request *QueryPerformanceMetricFieldReq, options ...MethodOptionFunc) (*QueryPerformanceMetricFieldResp, *Response, error) + mockPerformanceQueryPerformanceMetricLib func(ctx context.Context, request *QueryPerformanceMetricLibReq, options ...MethodOptionFunc) (*QueryPerformanceMetricLibResp, *Response, error) + mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) + mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) + mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) + mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) + mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) + mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) + mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) + mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) + mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) + mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) + mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) + mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) + mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) + mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) + mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) + mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) + mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) + mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) + mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) + mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) + mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) + mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) + mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) + mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) + mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) + mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) + mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) + mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) + mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) + mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) + mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) + mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) + mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) + mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) + mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) + mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) + mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) + mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) + mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) + mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) + mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) + mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) + mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) + mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) + mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) + mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) + mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) + mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) + mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) + mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) + mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) + mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) + mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) + mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) + mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) + mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) + mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) + mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) + mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) + mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) + mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) + mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) + mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) + mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) + mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) + mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) + mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) + mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) + mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) + mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) + mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) + mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) + mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) + mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) + mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) + mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) + mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) + mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) + mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) + mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) + mockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment func(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationDepartmentReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationDepartmentResp, *Response, error) + mockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser func(ctx context.Context, request *GetTrustPartyCollaborationTenantCollaborationUserReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantCollaborationUserResp, *Response, error) + mockTrustPartyGetTrustPartyCollaborationTenant func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) + mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) + mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) + mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) + mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) + mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) + mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) + mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) + mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) + mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) + mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) + mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) + mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) + mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) + mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) + mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) + mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) + mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) + mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) + mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) + mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } // Mock return mock client diff --git a/test/APaaS_sample_test.go b/test/APaaS_sample_test.go deleted file mode 100644 index 9e8e95fc..00000000 --- a/test/APaaS_sample_test.go +++ /dev/null @@ -1,134 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_APaaS_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.APaaS - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AgreeAPaaSApprovalTask(ctx, &lark.AgreeAPaaSApprovalTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.APaaS - - t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSAgreeAPaaSApprovalTask(func(ctx context.Context, request *lark.AgreeAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.AgreeAPaaSApprovalTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockAPaaSAgreeAPaaSApprovalTask() - - _, _, err := moduleCli.AgreeAPaaSApprovalTask(ctx, &lark.AgreeAPaaSApprovalTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSRejectAPaaSApprovalTask(func(ctx context.Context, request *lark.RejectAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.RejectAPaaSApprovalTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockAPaaSRejectAPaaSApprovalTask() - - _, _, err := moduleCli.RejectAPaaSApprovalTask(ctx, &lark.RejectAPaaSApprovalTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSTransferAPaaSApprovalTask(func(ctx context.Context, request *lark.TransferAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.TransferAPaaSApprovalTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockAPaaSTransferAPaaSApprovalTask() - - _, _, err := moduleCli.TransferAPaaSApprovalTask(ctx, &lark.TransferAPaaSApprovalTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSAddAPaaSApprovalTaskAssignee(func(ctx context.Context, request *lark.AddAPaaSApprovalTaskAssigneeReq, options ...lark.MethodOptionFunc) (*lark.AddAPaaSApprovalTaskAssigneeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockAPaaSAddAPaaSApprovalTaskAssignee() - - _, _, err := moduleCli.AddAPaaSApprovalTaskAssignee(ctx, &lark.AddAPaaSApprovalTaskAssigneeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.APaaS - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AgreeAPaaSApprovalTask(ctx, &lark.AgreeAPaaSApprovalTaskReq{ - ApprovalTaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RejectAPaaSApprovalTask(ctx, &lark.RejectAPaaSApprovalTaskReq{ - ApprovalTaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.TransferAPaaSApprovalTask(ctx, &lark.TransferAPaaSApprovalTaskReq{ - ApprovalTaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddAPaaSApprovalTaskAssignee(ctx, &lark.AddAPaaSApprovalTaskAssigneeReq{ - ApprovalTaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - }) -} diff --git a/test/TaskV1_sample_test.go b/test/TaskV1_sample_test.go deleted file mode 100644 index 81f15968..00000000 --- a/test/TaskV1_sample_test.go +++ /dev/null @@ -1,497 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_TaskV1_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.TaskV1 - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1Follower(ctx, &lark.CreateTaskV1FollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.TaskV1 - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1Follower(func(ctx context.Context, request *lark.CreateTaskV1FollowerReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1FollowerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CreateTaskV1Follower() - - _, _, err := moduleCli.CreateTaskV1Follower(ctx, &lark.CreateTaskV1FollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1Follower(func(ctx context.Context, request *lark.DeleteTaskV1FollowerReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1FollowerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1Follower() - - _, _, err := moduleCli.DeleteTaskV1Follower(ctx, &lark.DeleteTaskV1FollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1BatchDeleteTaskV1Follower(func(ctx context.Context, request *lark.BatchDeleteTaskV1FollowerReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskV1FollowerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1BatchDeleteTaskV1Follower() - - _, _, err := moduleCli.BatchDeleteTaskV1Follower(ctx, &lark.BatchDeleteTaskV1FollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskFollowerV1List(func(ctx context.Context, request *lark.GetTaskFollowerV1ListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskFollowerV1ListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskFollowerV1List() - - _, _, err := moduleCli.GetTaskFollowerV1List(ctx, &lark.GetTaskFollowerV1ListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1Collaborator(func(ctx context.Context, request *lark.CreateTaskV1CollaboratorReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1CollaboratorResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CreateTaskV1Collaborator() - - _, _, err := moduleCli.CreateTaskV1Collaborator(ctx, &lark.CreateTaskV1CollaboratorReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1Collaborator(func(ctx context.Context, request *lark.DeleteTaskV1CollaboratorReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1CollaboratorResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1Collaborator() - - _, _, err := moduleCli.DeleteTaskV1Collaborator(ctx, &lark.DeleteTaskV1CollaboratorReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1BatchDeleteTaskV1Collaborator(func(ctx context.Context, request *lark.BatchDeleteTaskV1CollaboratorReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskV1CollaboratorResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1BatchDeleteTaskV1Collaborator() - - _, _, err := moduleCli.BatchDeleteTaskV1Collaborator(ctx, &lark.BatchDeleteTaskV1CollaboratorReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1CollaboratorList(func(ctx context.Context, request *lark.GetTaskV1CollaboratorListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CollaboratorListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1CollaboratorList() - - _, _, err := moduleCli.GetTaskV1CollaboratorList(ctx, &lark.GetTaskV1CollaboratorListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1Reminder(func(ctx context.Context, request *lark.CreateTaskV1ReminderReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1ReminderResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CreateTaskV1Reminder() - - _, _, err := moduleCli.CreateTaskV1Reminder(ctx, &lark.CreateTaskV1ReminderReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1ReminderList(func(ctx context.Context, request *lark.GetTaskV1ReminderListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1ReminderListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1ReminderList() - - _, _, err := moduleCli.GetTaskV1ReminderList(ctx, &lark.GetTaskV1ReminderListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1Reminder(func(ctx context.Context, request *lark.DeleteTaskV1ReminderReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1ReminderResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1Reminder() - - _, _, err := moduleCli.DeleteTaskV1Reminder(ctx, &lark.DeleteTaskV1ReminderReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1(func(ctx context.Context, request *lark.CreateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CreateTaskV1() - - _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1(func(ctx context.Context, request *lark.GetTaskV1Req, options ...lark.MethodOptionFunc) (*lark.GetTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1() - - _, _, err := moduleCli.GetTaskV1(ctx, &lark.GetTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1List(func(ctx context.Context, request *lark.GetTaskV1ListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1ListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1List() - - _, _, err := moduleCli.GetTaskV1List(ctx, &lark.GetTaskV1ListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1(func(ctx context.Context, request *lark.DeleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1() - - _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1UpdateTaskV1(func(ctx context.Context, request *lark.UpdateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.UpdateTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1UpdateTaskV1() - - _, _, err := moduleCli.UpdateTaskV1(ctx, &lark.UpdateTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CompleteTaskV1(func(ctx context.Context, request *lark.CompleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.CompleteTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CompleteTaskV1() - - _, _, err := moduleCli.CompleteTaskV1(ctx, &lark.CompleteTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1UncompleteTaskV1(func(ctx context.Context, request *lark.UncompleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.UncompleteTaskV1Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1UncompleteTaskV1() - - _, _, err := moduleCli.UncompleteTaskV1(ctx, &lark.UncompleteTaskV1Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1Comment(func(ctx context.Context, request *lark.CreateTaskV1CommentReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1CommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1CreateTaskV1Comment() - - _, _, err := moduleCli.CreateTaskV1Comment(ctx, &lark.CreateTaskV1CommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1Comment(func(ctx context.Context, request *lark.GetTaskV1CommentReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1Comment() - - _, _, err := moduleCli.GetTaskV1Comment(ctx, &lark.GetTaskV1CommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1CommentList(func(ctx context.Context, request *lark.GetTaskV1CommentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CommentListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1GetTaskV1CommentList() - - _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1Comment(func(ctx context.Context, request *lark.DeleteTaskV1CommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1CommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1Comment() - - _, _, err := moduleCli.DeleteTaskV1Comment(ctx, &lark.DeleteTaskV1CommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1UpdateTaskV1Comment(func(ctx context.Context, request *lark.UpdateTaskV1CommentReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskV1CommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskV1UpdateTaskV1Comment() - - _, _, err := moduleCli.UpdateTaskV1Comment(ctx, &lark.UpdateTaskV1CommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.TaskV1 - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1Follower(ctx, &lark.CreateTaskV1FollowerReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1Follower(ctx, &lark.DeleteTaskV1FollowerReq{ - TaskID: "x", - FollowerID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteTaskV1Follower(ctx, &lark.BatchDeleteTaskV1FollowerReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskFollowerV1List(ctx, &lark.GetTaskFollowerV1ListReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1Collaborator(ctx, &lark.CreateTaskV1CollaboratorReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1Collaborator(ctx, &lark.DeleteTaskV1CollaboratorReq{ - TaskID: "x", - CollaboratorID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteTaskV1Collaborator(ctx, &lark.BatchDeleteTaskV1CollaboratorReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1CollaboratorList(ctx, &lark.GetTaskV1CollaboratorListReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1Reminder(ctx, &lark.CreateTaskV1ReminderReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1ReminderList(ctx, &lark.GetTaskV1ReminderListReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1Reminder(ctx, &lark.DeleteTaskV1ReminderReq{ - TaskID: "x", - ReminderID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1(ctx, &lark.GetTaskV1Req{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1List(ctx, &lark.GetTaskV1ListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateTaskV1(ctx, &lark.UpdateTaskV1Req{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CompleteTaskV1(ctx, &lark.CompleteTaskV1Req{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UncompleteTaskV1(ctx, &lark.UncompleteTaskV1Req{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1Comment(ctx, &lark.CreateTaskV1CommentReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1Comment(ctx, &lark.GetTaskV1CommentReq{ - TaskID: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1Comment(ctx, &lark.DeleteTaskV1CommentReq{ - TaskID: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateTaskV1Comment(ctx, &lark.UpdateTaskV1CommentReq{ - TaskID: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - }) -} diff --git a/test/acs_sample_test.go b/test/acs_sample_test.go index b4aac4b8..3be5c0f6 100644 --- a/test/acs_sample_test.go +++ b/test/acs_sample_test.go @@ -37,10 +37,12 @@ func Test_ACS_Sample_Failed(t *testing.T) { moduleCli := cli.ACS t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateACSUser(ctx, &lark.UpdateACSUserReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { moduleCli := cli.ACS t.Run("", func(t *testing.T) { + cli.Mock().MockACSDeleteACSVisitor(func(ctx context.Context, request *lark.DeleteACSVisitorReq, options ...lark.MethodOptionFunc) (*lark.DeleteACSVisitorResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSCreateACSVisitor(func(ctx context.Context, request *lark.CreateACSVisitorReq, options ...lark.MethodOptionFunc) (*lark.CreateACSVisitorResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSDeviceBindACSRuleExternal(func(ctx context.Context, request *lark.DeviceBindACSRuleExternalReq, options ...lark.MethodOptionFunc) (*lark.DeviceBindACSRuleExternalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSRuleExternal(func(ctx context.Context, request *lark.GetACSRuleExternalReq, options ...lark.MethodOptionFunc) (*lark.GetACSRuleExternalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSDeleteACSRuleExternal(func(ctx context.Context, request *lark.DeleteACSRuleExternalReq, options ...lark.MethodOptionFunc) (*lark.DeleteACSRuleExternalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSCreateACSRuleExternal(func(ctx context.Context, request *lark.CreateACSRuleExternalReq, options ...lark.MethodOptionFunc) (*lark.CreateACSRuleExternalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSUpdateACSUser(func(ctx context.Context, request *lark.UpdateACSUserReq, options ...lark.MethodOptionFunc) (*lark.UpdateACSUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSUser(func(ctx context.Context, request *lark.GetACSUserReq, options ...lark.MethodOptionFunc) (*lark.GetACSUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSUserList(func(ctx context.Context, request *lark.GetACSUserListReq, options ...lark.MethodOptionFunc) (*lark.GetACSUserListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSUpdateACSUserFace(func(ctx context.Context, request *lark.UpdateACSUserFaceReq, options ...lark.MethodOptionFunc) (*lark.UpdateACSUserFaceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSUserFace(func(ctx context.Context, request *lark.GetACSUserFaceReq, options ...lark.MethodOptionFunc) (*lark.GetACSUserFaceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSDeviceList(func(ctx context.Context, request *lark.GetACSDeviceListReq, options ...lark.MethodOptionFunc) (*lark.GetACSDeviceListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSAccessRecordList(func(ctx context.Context, request *lark.GetACSAccessRecordListReq, options ...lark.MethodOptionFunc) (*lark.GetACSAccessRecordListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockACSGetACSAccessRecordPhoto(func(ctx context.Context, request *lark.GetACSAccessRecordPhotoReq, options ...lark.MethodOptionFunc) (*lark.GetACSAccessRecordPhotoResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -200,6 +216,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -210,6 +227,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteACSVisitor(ctx, &lark.DeleteACSVisitorReq{ VisitorID: "x", }) @@ -218,36 +236,42 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateACSVisitor(ctx, &lark.CreateACSVisitorReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeviceBindACSRuleExternal(ctx, &lark.DeviceBindACSRuleExternalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSRuleExternal(ctx, &lark.GetACSRuleExternalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteACSRuleExternal(ctx, &lark.DeleteACSRuleExternalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateACSRuleExternal(ctx, &lark.CreateACSRuleExternalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateACSUser(ctx, &lark.UpdateACSUserReq{ UserID: "x", }) @@ -256,6 +280,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSUser(ctx, &lark.GetACSUserReq{ UserID: "x", }) @@ -264,12 +289,14 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSUserList(ctx, &lark.GetACSUserListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateACSUserFace(ctx, &lark.UpdateACSUserFaceReq{ UserID: "x", }) @@ -278,6 +305,7 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSUserFace(ctx, &lark.GetACSUserFaceReq{ UserID: "x", }) @@ -286,23 +314,27 @@ func Test_ACS_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSDeviceList(ctx, &lark.GetACSDeviceListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSAccessRecordList(ctx, &lark.GetACSAccessRecordListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetACSAccessRecordPhoto(ctx, &lark.GetACSAccessRecordPhotoReq{ AccessRecordID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/admin_sample_test.go b/test/admin_sample_test.go index 64b0a70c..1d83061d 100644 --- a/test/admin_sample_test.go +++ b/test/admin_sample_test.go @@ -37,10 +37,12 @@ func Test_Admin_Sample_Failed(t *testing.T) { moduleCli := cli.Admin t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AdminResetPassword(ctx, &lark.AdminResetPasswordReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { moduleCli := cli.Admin t.Run("", func(t *testing.T) { + cli.Mock().MockAdminAdminResetPassword(func(ctx context.Context, request *lark.AdminResetPasswordReq, options ...lark.MethodOptionFunc) (*lark.AdminResetPasswordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminDeptStats(func(ctx context.Context, request *lark.GetAdminDeptStatsReq, options ...lark.MethodOptionFunc) (*lark.GetAdminDeptStatsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminUserStats(func(ctx context.Context, request *lark.GetAdminUserStatsReq, options ...lark.MethodOptionFunc) (*lark.GetAdminUserStatsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminUploadAdminBadgeImage(func(ctx context.Context, request *lark.UploadAdminBadgeImageReq, options ...lark.MethodOptionFunc) (*lark.UploadAdminBadgeImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminCreateAdminBadge(func(ctx context.Context, request *lark.CreateAdminBadgeReq, options ...lark.MethodOptionFunc) (*lark.CreateAdminBadgeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminUpdateAdminBadge(func(ctx context.Context, request *lark.UpdateAdminBadgeReq, options ...lark.MethodOptionFunc) (*lark.UpdateAdminBadgeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminBadgeList(func(ctx context.Context, request *lark.GetAdminBadgeListReq, options ...lark.MethodOptionFunc) (*lark.GetAdminBadgeListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminBadge(func(ctx context.Context, request *lark.GetAdminBadgeReq, options ...lark.MethodOptionFunc) (*lark.GetAdminBadgeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminCreateAdminBadgeGrant(func(ctx context.Context, request *lark.CreateAdminBadgeGrantReq, options ...lark.MethodOptionFunc) (*lark.CreateAdminBadgeGrantResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminUpdateAdminBadgeGrant(func(ctx context.Context, request *lark.UpdateAdminBadgeGrantReq, options ...lark.MethodOptionFunc) (*lark.UpdateAdminBadgeGrantResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminBadgeGrantList(func(ctx context.Context, request *lark.GetAdminBadgeGrantListReq, options ...lark.MethodOptionFunc) (*lark.GetAdminBadgeGrantListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminGetAdminBadgeGrant(func(ctx context.Context, request *lark.GetAdminBadgeGrantReq, options ...lark.MethodOptionFunc) (*lark.GetAdminBadgeGrantResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAdminDeleteAdminBadgeGrant(func(ctx context.Context, request *lark.DeleteAdminBadgeGrantReq, options ...lark.MethodOptionFunc) (*lark.DeleteAdminBadgeGrantResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -189,6 +204,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -199,36 +215,42 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AdminResetPassword(ctx, &lark.AdminResetPasswordReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminDeptStats(ctx, &lark.GetAdminDeptStatsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminUserStats(ctx, &lark.GetAdminUserStatsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadAdminBadgeImage(ctx, &lark.UploadAdminBadgeImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAdminBadge(ctx, &lark.CreateAdminBadgeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAdminBadge(ctx, &lark.UpdateAdminBadgeReq{ BadgeID: "x", }) @@ -237,12 +259,14 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminBadgeList(ctx, &lark.GetAdminBadgeListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminBadge(ctx, &lark.GetAdminBadgeReq{ BadgeID: "x", }) @@ -251,6 +275,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAdminBadgeGrant(ctx, &lark.CreateAdminBadgeGrantReq{ BadgeID: "x", }) @@ -259,6 +284,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAdminBadgeGrant(ctx, &lark.UpdateAdminBadgeGrantReq{ BadgeID: "x", GrantID: "x", @@ -268,6 +294,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminBadgeGrantList(ctx, &lark.GetAdminBadgeGrantListReq{ BadgeID: "x", }) @@ -276,6 +303,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAdminBadgeGrant(ctx, &lark.GetAdminBadgeGrantReq{ BadgeID: "x", GrantID: "x", @@ -285,6 +313,7 @@ func Test_Admin_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteAdminBadgeGrant(ctx, &lark.DeleteAdminBadgeGrantReq{ BadgeID: "x", GrantID: "x", @@ -292,5 +321,6 @@ func Test_Admin_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/ai_sample_test.go b/test/ai_sample_test.go index 92b9d901..7224bf09 100644 --- a/test/ai_sample_test.go +++ b/test/ai_sample_test.go @@ -37,10 +37,12 @@ func Test_AI_Sample_Failed(t *testing.T) { moduleCli := cli.AI t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ParseAIResume(ctx, &lark.ParseAIResumeReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_AI_Sample_Failed(t *testing.T) { moduleCli := cli.AI t.Run("", func(t *testing.T) { + cli.Mock().MockAIParseAIResume(func(ctx context.Context, request *lark.ParseAIResumeReq, options ...lark.MethodOptionFunc) (*lark.ParseAIResumeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIVehicleInvoice(func(ctx context.Context, request *lark.RecognizeAIVehicleInvoiceReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIVehicleInvoiceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIHealthCertificate(func(ctx context.Context, request *lark.RecognizeAIHealthCertificateReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIHealthCertificateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIHkmMainlandTravelPermit(func(ctx context.Context, request *lark.RecognizeAIHkmMainlandTravelPermitReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIHkmMainlandTravelPermitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAITwMainlandTravelPermit(func(ctx context.Context, request *lark.RecognizeAITwMainlandTravelPermitReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAITwMainlandTravelPermitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIChinesePassport(func(ctx context.Context, request *lark.RecognizeAIChinesePassportReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIChinesePassportResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIBankCard(func(ctx context.Context, request *lark.RecognizeAIBankCardReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIBankCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIVehicleLicense(func(ctx context.Context, request *lark.RecognizeAIVehicleLicenseReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIVehicleLicenseResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAITrainInvoice(func(ctx context.Context, request *lark.RecognizeAITrainInvoiceReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAITrainInvoiceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAITaxiInvoice(func(ctx context.Context, request *lark.RecognizeAITaxiInvoiceReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAITaxiInvoiceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAiidCard(func(ctx context.Context, request *lark.RecognizeAiidCardReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAiidCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIFoodProduceLicense(func(ctx context.Context, request *lark.RecognizeAIFoodProduceLicenseReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIFoodProduceLicenseResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIFoodManageLicense(func(ctx context.Context, request *lark.RecognizeAIFoodManageLicenseReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIFoodManageLicenseResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIDrivingLicense(func(ctx context.Context, request *lark.RecognizeAIDrivingLicenseReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIDrivingLicenseResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIVatInvoice(func(ctx context.Context, request *lark.RecognizeAIVatInvoiceReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIVatInvoiceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIBusinessLicense(func(ctx context.Context, request *lark.RecognizeAIBusinessLicenseReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIBusinessLicenseResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIExtractAIContractField(func(ctx context.Context, request *lark.ExtractAIContractFieldReq, options ...lark.MethodOptionFunc) (*lark.ExtractAIContractFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeAIBusinessCard(func(ctx context.Context, request *lark.RecognizeAIBusinessCardReq, options ...lark.MethodOptionFunc) (*lark.RecognizeAIBusinessCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeBasicImage(func(ctx context.Context, request *lark.RecognizeBasicImageReq, options ...lark.MethodOptionFunc) (*lark.RecognizeBasicImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeSpeechStream(func(ctx context.Context, request *lark.RecognizeSpeechStreamReq, options ...lark.MethodOptionFunc) (*lark.RecognizeSpeechStreamResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIRecognizeSpeechFile(func(ctx context.Context, request *lark.RecognizeSpeechFileReq, options ...lark.MethodOptionFunc) (*lark.RecognizeSpeechFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAITranslateText(func(ctx context.Context, request *lark.TranslateTextReq, options ...lark.MethodOptionFunc) (*lark.TranslateTextResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIDetectTextLanguage(func(ctx context.Context, request *lark.DetectTextLanguageReq, options ...lark.MethodOptionFunc) (*lark.DetectTextLanguageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAIDetectFaceAttributes(func(ctx context.Context, request *lark.DetectFaceAttributesReq, options ...lark.MethodOptionFunc) (*lark.DetectFaceAttributesResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -310,6 +336,7 @@ func Test_AI_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -320,147 +347,172 @@ func Test_AI_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ParseAIResume(ctx, &lark.ParseAIResumeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIVehicleInvoice(ctx, &lark.RecognizeAIVehicleInvoiceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIHealthCertificate(ctx, &lark.RecognizeAIHealthCertificateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIHkmMainlandTravelPermit(ctx, &lark.RecognizeAIHkmMainlandTravelPermitReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAITwMainlandTravelPermit(ctx, &lark.RecognizeAITwMainlandTravelPermitReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIChinesePassport(ctx, &lark.RecognizeAIChinesePassportReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIBankCard(ctx, &lark.RecognizeAIBankCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIVehicleLicense(ctx, &lark.RecognizeAIVehicleLicenseReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAITrainInvoice(ctx, &lark.RecognizeAITrainInvoiceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAITaxiInvoice(ctx, &lark.RecognizeAITaxiInvoiceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAiidCard(ctx, &lark.RecognizeAiidCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIFoodProduceLicense(ctx, &lark.RecognizeAIFoodProduceLicenseReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIFoodManageLicense(ctx, &lark.RecognizeAIFoodManageLicenseReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIDrivingLicense(ctx, &lark.RecognizeAIDrivingLicenseReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIVatInvoice(ctx, &lark.RecognizeAIVatInvoiceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIBusinessLicense(ctx, &lark.RecognizeAIBusinessLicenseReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ExtractAIContractField(ctx, &lark.ExtractAIContractFieldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeAIBusinessCard(ctx, &lark.RecognizeAIBusinessCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeBasicImage(ctx, &lark.RecognizeBasicImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeSpeechStream(ctx, &lark.RecognizeSpeechStreamReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RecognizeSpeechFile(ctx, &lark.RecognizeSpeechFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.TranslateText(ctx, &lark.TranslateTextReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DetectTextLanguage(ctx, &lark.DetectTextLanguageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DetectFaceAttributes(ctx, &lark.DetectFaceAttributesReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/aily_sample_test.go b/test/aily_sample_test.go new file mode 100644 index 00000000..fdc4fed9 --- /dev/null +++ b/test/aily_sample_test.go @@ -0,0 +1,508 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Aily_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Aily + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilySessionAilyMessage(ctx, &lark.CreateAilySessionAilyMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Aily + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilySessionAilyMessage(func(ctx context.Context, request *lark.CreateAilySessionAilyMessageReq, options ...lark.MethodOptionFunc) (*lark.CreateAilySessionAilyMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilySessionAilyMessage() + + _, _, err := moduleCli.CreateAilySessionAilyMessage(ctx, &lark.CreateAilySessionAilyMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyGetAilySessionAilyMessage(func(ctx context.Context, request *lark.GetAilySessionAilyMessageReq, options ...lark.MethodOptionFunc) (*lark.GetAilySessionAilyMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyGetAilySessionAilyMessage() + + _, _, err := moduleCli.GetAilySessionAilyMessage(ctx, &lark.GetAilySessionAilyMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyListAilySessionAilyMessage(func(ctx context.Context, request *lark.ListAilySessionAilyMessageReq, options ...lark.MethodOptionFunc) (*lark.ListAilySessionAilyMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyListAilySessionAilyMessage() + + _, _, err := moduleCli.ListAilySessionAilyMessage(ctx, &lark.ListAilySessionAilyMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilySessionRunCancel(func(ctx context.Context, request *lark.CreateAilySessionRunCancelReq, options ...lark.MethodOptionFunc) (*lark.CreateAilySessionRunCancelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilySessionRunCancel() + + _, _, err := moduleCli.CreateAilySessionRunCancel(ctx, &lark.CreateAilySessionRunCancelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilySessionRun(func(ctx context.Context, request *lark.CreateAilySessionRunReq, options ...lark.MethodOptionFunc) (*lark.CreateAilySessionRunResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilySessionRun() + + _, _, err := moduleCli.CreateAilySessionRun(ctx, &lark.CreateAilySessionRunReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyGetAilySessionRun(func(ctx context.Context, request *lark.GetAilySessionRunReq, options ...lark.MethodOptionFunc) (*lark.GetAilySessionRunResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyGetAilySessionRun() + + _, _, err := moduleCli.GetAilySessionRun(ctx, &lark.GetAilySessionRunReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyListAilySessionRun(func(ctx context.Context, request *lark.ListAilySessionRunReq, options ...lark.MethodOptionFunc) (*lark.ListAilySessionRunResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyListAilySessionRun() + + _, _, err := moduleCli.ListAilySessionRun(ctx, &lark.ListAilySessionRunReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilySession(func(ctx context.Context, request *lark.CreateAilySessionReq, options ...lark.MethodOptionFunc) (*lark.CreateAilySessionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilySession() + + _, _, err := moduleCli.CreateAilySession(ctx, &lark.CreateAilySessionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyDeleteAilySession(func(ctx context.Context, request *lark.DeleteAilySessionReq, options ...lark.MethodOptionFunc) (*lark.DeleteAilySessionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyDeleteAilySession() + + _, _, err := moduleCli.DeleteAilySession(ctx, &lark.DeleteAilySessionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyGetAilySession(func(ctx context.Context, request *lark.GetAilySessionReq, options ...lark.MethodOptionFunc) (*lark.GetAilySessionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyGetAilySession() + + _, _, err := moduleCli.GetAilySession(ctx, &lark.GetAilySessionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyUpdateAilySession(func(ctx context.Context, request *lark.UpdateAilySessionReq, options ...lark.MethodOptionFunc) (*lark.UpdateAilySessionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyUpdateAilySession() + + _, _, err := moduleCli.UpdateAilySession(ctx, &lark.UpdateAilySessionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilyAppDataAsset(func(ctx context.Context, request *lark.CreateAilyAppDataAssetReq, options ...lark.MethodOptionFunc) (*lark.CreateAilyAppDataAssetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilyAppDataAsset() + + _, _, err := moduleCli.CreateAilyAppDataAsset(ctx, &lark.CreateAilyAppDataAssetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyDeleteAilyAppDataAsset(func(ctx context.Context, request *lark.DeleteAilyAppDataAssetReq, options ...lark.MethodOptionFunc) (*lark.DeleteAilyAppDataAssetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyDeleteAilyAppDataAsset() + + _, _, err := moduleCli.DeleteAilyAppDataAsset(ctx, &lark.DeleteAilyAppDataAssetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyGetAilyAppDataAsset(func(ctx context.Context, request *lark.GetAilyAppDataAssetReq, options ...lark.MethodOptionFunc) (*lark.GetAilyAppDataAssetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyGetAilyAppDataAsset() + + _, _, err := moduleCli.GetAilyAppDataAsset(ctx, &lark.GetAilyAppDataAssetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyListAilyAppDataAsset(func(ctx context.Context, request *lark.ListAilyAppDataAssetReq, options ...lark.MethodOptionFunc) (*lark.ListAilyAppDataAssetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyListAilyAppDataAsset() + + _, _, err := moduleCli.ListAilyAppDataAsset(ctx, &lark.ListAilyAppDataAssetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyUploadAilyAppDataAssetFile(func(ctx context.Context, request *lark.UploadAilyAppDataAssetFileReq, options ...lark.MethodOptionFunc) (*lark.UploadAilyAppDataAssetFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyUploadAilyAppDataAssetFile() + + _, _, err := moduleCli.UploadAilyAppDataAssetFile(ctx, &lark.UploadAilyAppDataAssetFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyListAilyAppDataAssetTag(func(ctx context.Context, request *lark.ListAilyAppDataAssetTagReq, options ...lark.MethodOptionFunc) (*lark.ListAilyAppDataAssetTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyListAilyAppDataAssetTag() + + _, _, err := moduleCli.ListAilyAppDataAssetTag(ctx, &lark.ListAilyAppDataAssetTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilyAppKnowledgeAsk(func(ctx context.Context, request *lark.CreateAilyAppKnowledgeAskReq, options ...lark.MethodOptionFunc) (*lark.CreateAilyAppKnowledgeAskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilyAppKnowledgeAsk() + + _, _, err := moduleCli.CreateAilyAppKnowledgeAsk(ctx, &lark.CreateAilyAppKnowledgeAskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyGetAilyAppSkill(func(ctx context.Context, request *lark.GetAilyAppSkillReq, options ...lark.MethodOptionFunc) (*lark.GetAilyAppSkillResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyGetAilyAppSkill() + + _, _, err := moduleCli.GetAilyAppSkill(ctx, &lark.GetAilyAppSkillReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyListAilyAppSkill(func(ctx context.Context, request *lark.ListAilyAppSkillReq, options ...lark.MethodOptionFunc) (*lark.ListAilyAppSkillResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyListAilyAppSkill() + + _, _, err := moduleCli.ListAilyAppSkill(ctx, &lark.ListAilyAppSkillReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAilyCreateAilyAppSkillStart(func(ctx context.Context, request *lark.CreateAilyAppSkillStartReq, options ...lark.MethodOptionFunc) (*lark.CreateAilyAppSkillStartResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAilyCreateAilyAppSkillStart() + + _, _, err := moduleCli.CreateAilyAppSkillStart(ctx, &lark.CreateAilyAppSkillStartReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Aily + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilySessionAilyMessage(ctx, &lark.CreateAilySessionAilyMessageReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAilySessionAilyMessage(ctx, &lark.GetAilySessionAilyMessageReq{ + AilySessionID: "x", + AilyMessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAilySessionAilyMessage(ctx, &lark.ListAilySessionAilyMessageReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilySessionRunCancel(ctx, &lark.CreateAilySessionRunCancelReq{ + AilySessionID: "x", + RunID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilySessionRun(ctx, &lark.CreateAilySessionRunReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAilySessionRun(ctx, &lark.GetAilySessionRunReq{ + AilySessionID: "x", + RunID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAilySessionRun(ctx, &lark.ListAilySessionRunReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilySession(ctx, &lark.CreateAilySessionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteAilySession(ctx, &lark.DeleteAilySessionReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAilySession(ctx, &lark.GetAilySessionReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAilySession(ctx, &lark.UpdateAilySessionReq{ + AilySessionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilyAppDataAsset(ctx, &lark.CreateAilyAppDataAssetReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteAilyAppDataAsset(ctx, &lark.DeleteAilyAppDataAssetReq{ + AppID: "x", + DataAssetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAilyAppDataAsset(ctx, &lark.GetAilyAppDataAssetReq{ + AppID: "x", + DataAssetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAilyAppDataAsset(ctx, &lark.ListAilyAppDataAssetReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadAilyAppDataAssetFile(ctx, &lark.UploadAilyAppDataAssetFileReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAilyAppDataAssetTag(ctx, &lark.ListAilyAppDataAssetTagReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilyAppKnowledgeAsk(ctx, &lark.CreateAilyAppKnowledgeAskReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAilyAppSkill(ctx, &lark.GetAilyAppSkillReq{ + AppID: "x", + SkillID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAilyAppSkill(ctx, &lark.ListAilyAppSkillReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAilyAppSkillStart(ctx, &lark.CreateAilyAppSkillStartReq{ + AppID: "x", + SkillID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/apaas_sample_test.go b/test/apaas_sample_test.go new file mode 100644 index 00000000..58670cd2 --- /dev/null +++ b/test/apaas_sample_test.go @@ -0,0 +1,1089 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_APaaS_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.APaaS + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSApplicationEnvironmentVariable(ctx, &lark.GetAPaaSApplicationEnvironmentVariableReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.APaaS + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSApp(func(ctx context.Context, request *lark.ListAPaaSAppReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSAppResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSApp() + + _, _, err := moduleCli.ListAPaaSApp(ctx, &lark.ListAPaaSAppReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSApplicationAuditLogAuditLog(func(ctx context.Context, request *lark.ListAPaaSApplicationAuditLogAuditLogReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSApplicationAuditLogAuditLogResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSApplicationAuditLogAuditLog() + + _, _, err := moduleCli.ListAPaaSApplicationAuditLogAuditLog(ctx, &lark.ListAPaaSApplicationAuditLogAuditLogReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail(func(ctx context.Context, request *lark.GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail() + + _, _, err := moduleCli.GetAPaaSApplicationAuditLogDataChangeLogDetail(ctx, &lark.GetAPaaSApplicationAuditLogDataChangeLogDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSApplicationAuditLogDataChangeLogs(func(ctx context.Context, request *lark.ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSApplicationAuditLogDataChangeLogsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSApplicationAuditLogDataChangeLogs() + + _, _, err := moduleCli.ListAPaaSApplicationAuditLogDataChangeLogs(ctx, &lark.ListAPaaSApplicationAuditLogDataChangeLogsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSApplicationAuditLog(func(ctx context.Context, request *lark.GetAPaaSApplicationAuditLogReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSApplicationAuditLogResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSApplicationAuditLog() + + _, _, err := moduleCli.GetAPaaSApplicationAuditLog(ctx, &lark.GetAPaaSApplicationAuditLogReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSApplicationEnvironmentVariable(func(ctx context.Context, request *lark.GetAPaaSApplicationEnvironmentVariableReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSApplicationEnvironmentVariableResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSApplicationEnvironmentVariable() + + _, _, err := moduleCli.GetAPaaSApplicationEnvironmentVariable(ctx, &lark.GetAPaaSApplicationEnvironmentVariableReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSQueryAPaaSApplicationEnvironmentVariable(func(ctx context.Context, request *lark.QueryAPaaSApplicationEnvironmentVariableReq, options ...lark.MethodOptionFunc) (*lark.QueryAPaaSApplicationEnvironmentVariableResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSQueryAPaaSApplicationEnvironmentVariable() + + _, _, err := moduleCli.QueryAPaaSApplicationEnvironmentVariable(ctx, &lark.QueryAPaaSApplicationEnvironmentVariableReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSApplicationFlowExecute(func(ctx context.Context, request *lark.CreateAPaaSApplicationFlowExecuteReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationFlowExecuteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationFlowExecute() + + _, _, err := moduleCli.CreateAPaaSApplicationFlowExecute(ctx, &lark.CreateAPaaSApplicationFlowExecuteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSApplicationFunctionInvoke(func(ctx context.Context, request *lark.CreateAPaaSApplicationFunctionInvokeReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationFunctionInvokeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationFunctionInvoke() + + _, _, err := moduleCli.CreateAPaaSApplicationFunctionInvoke(ctx, &lark.CreateAPaaSApplicationFunctionInvokeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchCreateAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.BatchCreateAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchCreateAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.BatchCreateAPaaSApplicationObjectRecord(ctx, &lark.BatchCreateAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchDeleteAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.BatchDeleteAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchDeleteAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.BatchDeleteAPaaSApplicationObjectRecord(ctx, &lark.BatchDeleteAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchQueryAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.BatchQueryAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchQueryAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.BatchQueryAPaaSApplicationObjectRecord(ctx, &lark.BatchQueryAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchUpdateAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.BatchUpdateAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchUpdateAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.BatchUpdateAPaaSApplicationObjectRecord(ctx, &lark.BatchUpdateAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.CreateAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.CreateAPaaSApplicationObjectRecord(ctx, &lark.CreateAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSDeleteAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.DeleteAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSDeleteAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.DeleteAPaaSApplicationObjectRecord(ctx, &lark.DeleteAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSUpdateAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.UpdateAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSUpdateAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.UpdateAPaaSApplicationObjectRecord(ctx, &lark.UpdateAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSQueryAPaaSApplicationObjectRecord(func(ctx context.Context, request *lark.QueryAPaaSApplicationObjectRecordReq, options ...lark.MethodOptionFunc) (*lark.QueryAPaaSApplicationObjectRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSQueryAPaaSApplicationObjectRecord() + + _, _, err := moduleCli.QueryAPaaSApplicationObjectRecord(ctx, &lark.QueryAPaaSApplicationObjectRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSApplicationObjectOqlQuery(func(ctx context.Context, request *lark.CreateAPaaSApplicationObjectOqlQueryReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationObjectOqlQueryResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery() + + _, _, err := moduleCli.CreateAPaaSApplicationObjectOqlQuery(ctx, &lark.CreateAPaaSApplicationObjectOqlQueryReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSSearchAPaaSApplicationObject(func(ctx context.Context, request *lark.SearchAPaaSApplicationObjectReq, options ...lark.MethodOptionFunc) (*lark.SearchAPaaSApplicationObjectResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSSearchAPaaSApplicationObject() + + _, _, err := moduleCli.SearchAPaaSApplicationObject(ctx, &lark.SearchAPaaSApplicationObjectReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(func(ctx context.Context, request *lark.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization() + + _, _, err := moduleCli.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(ctx, &lark.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(func(ctx context.Context, request *lark.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization() + + _, _, err := moduleCli.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(ctx, &lark.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization(func(ctx context.Context, request *lark.BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization() + + _, _, err := moduleCli.BatchCreateAPaaSApplicationRoleMemberAuthorization(ctx, &lark.BatchCreateAPaaSApplicationRoleMemberAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization(func(ctx context.Context, request *lark.BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization() + + _, _, err := moduleCli.BatchRemoveAPaaSApplicationRoleMemberAuthorization(ctx, &lark.BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSApplicationRoleMember(func(ctx context.Context, request *lark.GetAPaaSApplicationRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSApplicationRoleMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSApplicationRoleMember() + + _, _, err := moduleCli.GetAPaaSApplicationRoleMember(ctx, &lark.GetAPaaSApplicationRoleMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSApprovalInstanceCancel(func(ctx context.Context, request *lark.CreateAPaaSApprovalInstanceCancelReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApprovalInstanceCancelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSApprovalInstanceCancel() + + _, _, err := moduleCli.CreateAPaaSApprovalInstanceCancel(ctx, &lark.CreateAPaaSApprovalInstanceCancelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSAddAPaaSApprovalTaskAssignee(func(ctx context.Context, request *lark.AddAPaaSApprovalTaskAssigneeReq, options ...lark.MethodOptionFunc) (*lark.AddAPaaSApprovalTaskAssigneeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSAddAPaaSApprovalTaskAssignee() + + _, _, err := moduleCli.AddAPaaSApprovalTaskAssignee(ctx, &lark.AddAPaaSApprovalTaskAssigneeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSAgreeAPaaSApprovalTask(func(ctx context.Context, request *lark.AgreeAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.AgreeAPaaSApprovalTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSAgreeAPaaSApprovalTask() + + _, _, err := moduleCli.AgreeAPaaSApprovalTask(ctx, &lark.AgreeAPaaSApprovalTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSRejectAPaaSApprovalTask(func(ctx context.Context, request *lark.RejectAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.RejectAPaaSApprovalTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSRejectAPaaSApprovalTask() + + _, _, err := moduleCli.RejectAPaaSApprovalTask(ctx, &lark.RejectAPaaSApprovalTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSTransferAPaaSApprovalTask(func(ctx context.Context, request *lark.TransferAPaaSApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.TransferAPaaSApprovalTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSTransferAPaaSApprovalTask() + + _, _, err := moduleCli.TransferAPaaSApprovalTask(ctx, &lark.TransferAPaaSApprovalTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSSeatActivity(func(ctx context.Context, request *lark.ListAPaaSSeatActivityReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSSeatActivityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSSeatActivity() + + _, _, err := moduleCli.ListAPaaSSeatActivity(ctx, &lark.ListAPaaSSeatActivityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSSeatAssignment(func(ctx context.Context, request *lark.ListAPaaSSeatAssignmentReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSSeatAssignmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSSeatAssignment() + + _, _, err := moduleCli.ListAPaaSSeatAssignment(ctx, &lark.ListAPaaSSeatAssignmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSUserTaskCc(func(ctx context.Context, request *lark.CreateAPaaSUserTaskCcReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSUserTaskCcResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSUserTaskCc() + + _, _, err := moduleCli.CreateAPaaSUserTaskCc(ctx, &lark.CreateAPaaSUserTaskCcReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSUserTaskChatGroup(func(ctx context.Context, request *lark.CreateAPaaSUserTaskChatGroupReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSUserTaskChatGroupResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSUserTaskChatGroup() + + _, _, err := moduleCli.CreateAPaaSUserTaskChatGroup(ctx, &lark.CreateAPaaSUserTaskChatGroupReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSUserTaskExpediting(func(ctx context.Context, request *lark.CreateAPaaSUserTaskExpeditingReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSUserTaskExpeditingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSUserTaskExpediting() + + _, _, err := moduleCli.CreateAPaaSUserTaskExpediting(ctx, &lark.CreateAPaaSUserTaskExpeditingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSQueryAPaaSUserTask(func(ctx context.Context, request *lark.QueryAPaaSUserTaskReq, options ...lark.MethodOptionFunc) (*lark.QueryAPaaSUserTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSQueryAPaaSUserTask() + + _, _, err := moduleCli.QueryAPaaSUserTask(ctx, &lark.QueryAPaaSUserTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSUserTaskRollback(func(ctx context.Context, request *lark.CreateAPaaSUserTaskRollbackReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSUserTaskRollbackResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSUserTaskRollback() + + _, _, err := moduleCli.CreateAPaaSUserTaskRollback(ctx, &lark.CreateAPaaSUserTaskRollbackReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSUserTaskRollbackPoints(func(ctx context.Context, request *lark.CreateAPaaSUserTaskRollbackPointsReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSUserTaskRollbackPointsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSUserTaskRollbackPoints() + + _, _, err := moduleCli.CreateAPaaSUserTaskRollbackPoints(ctx, &lark.CreateAPaaSUserTaskRollbackPointsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSWorkspaceEnumGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceEnumGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceEnumGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceEnumGet() + + _, _, err := moduleCli.GetAPaaSWorkspaceEnumGet(ctx, &lark.GetAPaaSWorkspaceEnumGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSWorkspaceEnum(func(ctx context.Context, request *lark.ListAPaaSWorkspaceEnumReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSWorkspaceEnumResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSWorkspaceEnum() + + _, _, err := moduleCli.ListAPaaSWorkspaceEnum(ctx, &lark.ListAPaaSWorkspaceEnumReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSListAPaaSWorkspaceTable(func(ctx context.Context, request *lark.ListAPaaSWorkspaceTableReq, options ...lark.MethodOptionFunc) (*lark.ListAPaaSWorkspaceTableResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSListAPaaSWorkspaceTable() + + _, _, err := moduleCli.ListAPaaSWorkspaceTable(ctx, &lark.ListAPaaSWorkspaceTableReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(func(ctx context.Context, request *lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...lark.MethodOptionFunc) (*lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate() + + _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(func(ctx context.Context, request *lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...lark.MethodOptionFunc) (*lark.DeleteAPaaSWorkspaceTableRecordsDeleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete() + + _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecordsDelete(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSWorkspaceTableRecordsGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableRecordsGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableRecordsGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet() + + _, _, err := moduleCli.GetAPaaSWorkspaceTableRecordsGet(ctx, &lark.GetAPaaSWorkspaceTableRecordsGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch(func(ctx context.Context, request *lark.UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateAPaaSWorkspaceTableRecordsPatchResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch() + + _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsPatch(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsPatchReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSWorkspaceTableRecordsPost(func(ctx context.Context, request *lark.CreateAPaaSWorkspaceTableRecordsPostReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSWorkspaceTableRecordsPostResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost() + + _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecordsPost(ctx, &lark.CreateAPaaSWorkspaceTableRecordsPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSWorkspaceTableGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTableGet() + + _, _, err := moduleCli.GetAPaaSWorkspaceTableGet(ctx, &lark.GetAPaaSWorkspaceTableGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSGetAPaaSWorkspaceViewViewsGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceViewViewsGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceViewViewsGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceViewViewsGet() + + _, _, err := moduleCli.GetAPaaSWorkspaceViewViewsGet(ctx, &lark.GetAPaaSWorkspaceViewViewsGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAPaaSCreateAPaaSWorkspaceSqlCommands(func(ctx context.Context, request *lark.CreateAPaaSWorkspaceSqlCommandsReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSWorkspaceSqlCommandsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAPaaSCreateAPaaSWorkspaceSqlCommands() + + _, _, err := moduleCli.CreateAPaaSWorkspaceSqlCommands(ctx, &lark.CreateAPaaSWorkspaceSqlCommandsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.APaaS + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSApp(ctx, &lark.ListAPaaSAppReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSApplicationAuditLogAuditLog(ctx, &lark.ListAPaaSApplicationAuditLogAuditLogReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSApplicationAuditLogDataChangeLogDetail(ctx, &lark.GetAPaaSApplicationAuditLogDataChangeLogDetailReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSApplicationAuditLogDataChangeLogs(ctx, &lark.ListAPaaSApplicationAuditLogDataChangeLogsReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSApplicationAuditLog(ctx, &lark.GetAPaaSApplicationAuditLogReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSApplicationEnvironmentVariable(ctx, &lark.GetAPaaSApplicationEnvironmentVariableReq{ + Namespace: "x", + EnvironmentVariableApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryAPaaSApplicationEnvironmentVariable(ctx, &lark.QueryAPaaSApplicationEnvironmentVariableReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSApplicationFlowExecute(ctx, &lark.CreateAPaaSApplicationFlowExecuteReq{ + Namespace: "x", + FlowID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSApplicationFunctionInvoke(ctx, &lark.CreateAPaaSApplicationFunctionInvokeReq{ + Namespace: "x", + FunctionApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateAPaaSApplicationObjectRecord(ctx, &lark.BatchCreateAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteAPaaSApplicationObjectRecord(ctx, &lark.BatchDeleteAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryAPaaSApplicationObjectRecord(ctx, &lark.BatchQueryAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateAPaaSApplicationObjectRecord(ctx, &lark.BatchUpdateAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSApplicationObjectRecord(ctx, &lark.CreateAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteAPaaSApplicationObjectRecord(ctx, &lark.DeleteAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + ID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAPaaSApplicationObjectRecord(ctx, &lark.UpdateAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + ID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryAPaaSApplicationObjectRecord(ctx, &lark.QueryAPaaSApplicationObjectRecordReq{ + Namespace: "x", + ObjectApiName: "x", + ID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSApplicationObjectOqlQuery(ctx, &lark.CreateAPaaSApplicationObjectOqlQueryReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchAPaaSApplicationObject(ctx, &lark.SearchAPaaSApplicationObjectReq{ + Namespace: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization(ctx, &lark.BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq{ + Namespace: "x", + RecordPermissionApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization(ctx, &lark.BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq{ + Namespace: "x", + RecordPermissionApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateAPaaSApplicationRoleMemberAuthorization(ctx, &lark.BatchCreateAPaaSApplicationRoleMemberAuthorizationReq{ + Namespace: "x", + RoleApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchRemoveAPaaSApplicationRoleMemberAuthorization(ctx, &lark.BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq{ + Namespace: "x", + RoleApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSApplicationRoleMember(ctx, &lark.GetAPaaSApplicationRoleMemberReq{ + Namespace: "x", + RoleApiName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSApprovalInstanceCancel(ctx, &lark.CreateAPaaSApprovalInstanceCancelReq{ + ApprovalInstanceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddAPaaSApprovalTaskAssignee(ctx, &lark.AddAPaaSApprovalTaskAssigneeReq{ + ApprovalTaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AgreeAPaaSApprovalTask(ctx, &lark.AgreeAPaaSApprovalTaskReq{ + ApprovalTaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RejectAPaaSApprovalTask(ctx, &lark.RejectAPaaSApprovalTaskReq{ + ApprovalTaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.TransferAPaaSApprovalTask(ctx, &lark.TransferAPaaSApprovalTaskReq{ + ApprovalTaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSSeatActivity(ctx, &lark.ListAPaaSSeatActivityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSSeatAssignment(ctx, &lark.ListAPaaSSeatAssignmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSUserTaskCc(ctx, &lark.CreateAPaaSUserTaskCcReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSUserTaskChatGroup(ctx, &lark.CreateAPaaSUserTaskChatGroupReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSUserTaskExpediting(ctx, &lark.CreateAPaaSUserTaskExpeditingReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryAPaaSUserTask(ctx, &lark.QueryAPaaSUserTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSUserTaskRollback(ctx, &lark.CreateAPaaSUserTaskRollbackReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSUserTaskRollbackPoints(ctx, &lark.CreateAPaaSUserTaskRollbackPointsReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSWorkspaceEnumGet(ctx, &lark.GetAPaaSWorkspaceEnumGetReq{ + WorkspaceID: "x", + EnumName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSWorkspaceEnum(ctx, &lark.ListAPaaSWorkspaceEnumReq{ + WorkspaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAPaaSWorkspaceTable(ctx, &lark.ListAPaaSWorkspaceTableReq{ + WorkspaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecordsDelete(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSWorkspaceTableRecordsGet(ctx, &lark.GetAPaaSWorkspaceTableRecordsGetReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsPatch(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsPatchReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecordsPost(ctx, &lark.CreateAPaaSWorkspaceTableRecordsPostReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSWorkspaceTableGet(ctx, &lark.GetAPaaSWorkspaceTableGetReq{ + WorkspaceID: "x", + TableName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetAPaaSWorkspaceViewViewsGet(ctx, &lark.GetAPaaSWorkspaceViewViewsGetReq{ + WorkspaceID: "x", + ViewName: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAPaaSWorkspaceSqlCommands(ctx, &lark.CreateAPaaSWorkspaceSqlCommandsReq{ + WorkspaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/application_sample_test.go b/test/application_sample_test.go index f30af425..e51c62a8 100644 --- a/test/application_sample_test.go +++ b/test/application_sample_test.go @@ -37,10 +37,12 @@ func Test_Application_Sample_Failed(t *testing.T) { moduleCli := cli.Application t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApplicationWorkplaceAccessData(ctx, &lark.SearchApplicationWorkplaceAccessDataReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Application_Sample_Failed(t *testing.T) { moduleCli := cli.Application t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationSearchApplicationWorkplaceAccessData(func(ctx context.Context, request *lark.SearchApplicationWorkplaceAccessDataReq, options ...lark.MethodOptionFunc) (*lark.SearchApplicationWorkplaceAccessDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationSearchApplicationCustomWorkplaceAccessData(func(ctx context.Context, request *lark.SearchApplicationCustomWorkplaceAccessDataReq, options ...lark.MethodOptionFunc) (*lark.SearchApplicationCustomWorkplaceAccessDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationSearchApplicationWorkplaceBlockAccessData(func(ctx context.Context, request *lark.SearchApplicationWorkplaceBlockAccessDataReq, options ...lark.MethodOptionFunc) (*lark.SearchApplicationWorkplaceBlockAccessDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationFavourite(func(ctx context.Context, request *lark.GetApplicationFavouriteReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationFavouriteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationRecommend(func(ctx context.Context, request *lark.GetApplicationRecommendReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationRecommendResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationRecommendRuleList(func(ctx context.Context, request *lark.GetApplicationRecommendRuleListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationRecommendRuleListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationIsApplicationUserAdmin(func(ctx context.Context, request *lark.IsApplicationUserAdminReq, options ...lark.MethodOptionFunc) (*lark.IsApplicationUserAdminResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUserAdminScope(func(ctx context.Context, request *lark.GetApplicationUserAdminScopeReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUserAdminScopeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationAppVisibility(func(ctx context.Context, request *lark.GetApplicationAppVisibilityReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationAppVisibilityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationContactsRangeConfiguration(func(ctx context.Context, request *lark.GetApplicationContactsRangeConfigurationReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationContactsRangeConfigurationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationContactsRangeConfiguration(func(ctx context.Context, request *lark.UpdateApplicationContactsRangeConfigurationReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationContactsRangeConfigurationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUserVisibleApp(func(ctx context.Context, request *lark.GetApplicationUserVisibleAppReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUserVisibleAppResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationCheckApplicationVisibleWhiteBlackList(func(ctx context.Context, request *lark.CheckApplicationVisibleWhiteBlackListReq, options ...lark.MethodOptionFunc) (*lark.CheckApplicationVisibleWhiteBlackListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationAppList(func(ctx context.Context, request *lark.GetApplicationAppListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationAppListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationAppVisibility(func(ctx context.Context, request *lark.UpdateApplicationAppVisibilityReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationAppVisibilityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationAppVisibilityV6(func(ctx context.Context, request *lark.UpdateApplicationAppVisibilityV6Req, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationAppVisibilityV6Resp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationAppManagement(func(ctx context.Context, request *lark.UpdateApplicationAppManagementReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationAppManagementResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationAppAdminUserList(func(ctx context.Context, request *lark.GetApplicationAppAdminUserListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationAppAdminUserListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationCheckUserIsInApplicationPaidScope(func(ctx context.Context, request *lark.CheckUserIsInApplicationPaidScopeReq, options ...lark.MethodOptionFunc) (*lark.CheckUserIsInApplicationPaidScopeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationOrderList(func(ctx context.Context, request *lark.GetApplicationOrderListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationOrderListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationOrder(func(ctx context.Context, request *lark.GetApplicationOrderReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationOrderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUnderAuditList(func(ctx context.Context, request *lark.GetApplicationUnderAuditListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUnderAuditListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplication(func(ctx context.Context, request *lark.GetApplicationReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationVersion(func(ctx context.Context, request *lark.GetApplicationVersionReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationVersionList(func(ctx context.Context, request *lark.GetApplicationVersionListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationVersionListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationVersionContactsRangeSuggest(func(ctx context.Context, request *lark.GetApplicationVersionContactsRangeSuggestReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationVersionContactsRangeSuggestResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationVersion(func(ctx context.Context, request *lark.UpdateApplicationVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplication(func(ctx context.Context, request *lark.UpdateApplicationReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUsageDepartmentOverview(func(ctx context.Context, request *lark.GetApplicationUsageDepartmentOverviewReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUsageDepartmentOverviewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUsageOverview(func(ctx context.Context, request *lark.GetApplicationUsageOverviewReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUsageOverviewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationUsageTrend(func(ctx context.Context, request *lark.GetApplicationUsageTrendReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationUsageTrendResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationUpdateApplicationFeedback(func(ctx context.Context, request *lark.UpdateApplicationFeedbackReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationFeedbackResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationGetApplicationFeedbackList(func(ctx context.Context, request *lark.GetApplicationFeedbackListReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationFeedbackListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApplicationSetApplicationAppBadge(func(ctx context.Context, request *lark.SetApplicationAppBadgeReq, options ...lark.MethodOptionFunc) (*lark.SetApplicationAppBadgeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -420,6 +456,91 @@ func Test_Application_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationCreateApplicationAppUsageMessagePushOverview(func(ctx context.Context, request *lark.CreateApplicationAppUsageMessagePushOverviewReq, options ...lark.MethodOptionFunc) (*lark.CreateApplicationAppUsageMessagePushOverviewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationCreateApplicationAppUsageMessagePushOverview() + + _, _, err := moduleCli.CreateApplicationAppUsageMessagePushOverview(ctx, &lark.CreateApplicationAppUsageMessagePushOverviewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationGetApplicationCollaborators(func(ctx context.Context, request *lark.GetApplicationCollaboratorsReq, options ...lark.MethodOptionFunc) (*lark.GetApplicationCollaboratorsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationGetApplicationCollaborators() + + _, _, err := moduleCli.GetApplicationCollaborators(ctx, &lark.GetApplicationCollaboratorsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationUpdateApplicationCollaborators(func(ctx context.Context, request *lark.UpdateApplicationCollaboratorsReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationCollaboratorsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationUpdateApplicationCollaborators() + + _, _, err := moduleCli.UpdateApplicationCollaborators(ctx, &lark.UpdateApplicationCollaboratorsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationUpdateApplicationOwner(func(ctx context.Context, request *lark.UpdateApplicationOwnerReq, options ...lark.MethodOptionFunc) (*lark.UpdateApplicationOwnerResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationUpdateApplicationOwner() + + _, _, err := moduleCli.UpdateApplicationOwner(ctx, &lark.UpdateApplicationOwnerReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationListApplication(func(ctx context.Context, request *lark.ListApplicationReq, options ...lark.MethodOptionFunc) (*lark.ListApplicationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationListApplication() + + _, _, err := moduleCli.ListApplication(ctx, &lark.ListApplicationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationCreateApplicationScopeApply(func(ctx context.Context, request *lark.CreateApplicationScopeApplyReq, options ...lark.MethodOptionFunc) (*lark.CreateApplicationScopeApplyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationCreateApplicationScopeApply() + + _, _, err := moduleCli.CreateApplicationScopeApply(ctx, &lark.CreateApplicationScopeApplyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockApplicationListApplicationScope(func(ctx context.Context, request *lark.ListApplicationScopeReq, options ...lark.MethodOptionFunc) (*lark.ListApplicationScopeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockApplicationListApplicationScope() + + _, _, err := moduleCli.ListApplicationScope(ctx, &lark.ListApplicationScopeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -430,60 +551,70 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApplicationWorkplaceAccessData(ctx, &lark.SearchApplicationWorkplaceAccessDataReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApplicationCustomWorkplaceAccessData(ctx, &lark.SearchApplicationCustomWorkplaceAccessDataReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApplicationWorkplaceBlockAccessData(ctx, &lark.SearchApplicationWorkplaceBlockAccessDataReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationFavourite(ctx, &lark.GetApplicationFavouriteReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationRecommend(ctx, &lark.GetApplicationRecommendReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationRecommendRuleList(ctx, &lark.GetApplicationRecommendRuleListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.IsApplicationUserAdmin(ctx, &lark.IsApplicationUserAdminReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUserAdminScope(ctx, &lark.GetApplicationUserAdminScopeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationAppVisibility(ctx, &lark.GetApplicationAppVisibilityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationContactsRangeConfiguration(ctx, &lark.GetApplicationContactsRangeConfigurationReq{ AppID: "x", }) @@ -492,6 +623,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationContactsRangeConfiguration(ctx, &lark.UpdateApplicationContactsRangeConfigurationReq{ AppID: "x", }) @@ -500,12 +632,14 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUserVisibleApp(ctx, &lark.GetApplicationUserVisibleAppReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CheckApplicationVisibleWhiteBlackList(ctx, &lark.CheckApplicationVisibleWhiteBlackListReq{ AppID: "x", }) @@ -514,18 +648,21 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationAppList(ctx, &lark.GetApplicationAppListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationAppVisibility(ctx, &lark.UpdateApplicationAppVisibilityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationAppVisibilityV6(ctx, &lark.UpdateApplicationAppVisibilityV6Req{ AppID: "x", }) @@ -534,6 +671,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationAppManagement(ctx, &lark.UpdateApplicationAppManagementReq{ AppID: "x", }) @@ -542,36 +680,42 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationAppAdminUserList(ctx, &lark.GetApplicationAppAdminUserListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CheckUserIsInApplicationPaidScope(ctx, &lark.CheckUserIsInApplicationPaidScopeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationOrderList(ctx, &lark.GetApplicationOrderListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationOrder(ctx, &lark.GetApplicationOrderReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUnderAuditList(ctx, &lark.GetApplicationUnderAuditListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplication(ctx, &lark.GetApplicationReq{ AppID: "x", }) @@ -580,6 +724,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationVersion(ctx, &lark.GetApplicationVersionReq{ AppID: "x", VersionID: "x", @@ -589,6 +734,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationVersionList(ctx, &lark.GetApplicationVersionListReq{ AppID: "x", }) @@ -597,6 +743,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationVersionContactsRangeSuggest(ctx, &lark.GetApplicationVersionContactsRangeSuggestReq{ AppID: "x", VersionID: "x", @@ -606,6 +753,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationVersion(ctx, &lark.UpdateApplicationVersionReq{ AppID: "x", VersionID: "x", @@ -615,6 +763,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplication(ctx, &lark.UpdateApplicationReq{ AppID: "x", }) @@ -623,6 +772,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUsageDepartmentOverview(ctx, &lark.GetApplicationUsageDepartmentOverviewReq{ AppID: "x", }) @@ -631,6 +781,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUsageOverview(ctx, &lark.GetApplicationUsageOverviewReq{ AppID: "x", }) @@ -639,12 +790,14 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationUsageTrend(ctx, &lark.GetApplicationUsageTrendReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApplicationFeedback(ctx, &lark.UpdateApplicationFeedbackReq{ AppID: "x", FeedbackID: "x", @@ -654,6 +807,7 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApplicationFeedbackList(ctx, &lark.GetApplicationFeedbackListReq{ AppID: "x", }) @@ -662,9 +816,68 @@ func Test_Application_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SetApplicationAppBadge(ctx, &lark.SetApplicationAppBadgeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateApplicationAppUsageMessagePushOverview(ctx, &lark.CreateApplicationAppUsageMessagePushOverviewReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetApplicationCollaborators(ctx, &lark.GetApplicationCollaboratorsReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateApplicationCollaborators(ctx, &lark.UpdateApplicationCollaboratorsReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateApplicationOwner(ctx, &lark.UpdateApplicationOwnerReq{ + AppID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListApplication(ctx, &lark.ListApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateApplicationScopeApply(ctx, &lark.CreateApplicationScopeApplyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListApplicationScope(ctx, &lark.ListApplicationScopeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/approval_sample_test.go b/test/approval_sample_test.go index 132814b4..70e1ca2e 100644 --- a/test/approval_sample_test.go +++ b/test/approval_sample_test.go @@ -37,10 +37,12 @@ func Test_Approval_Sample_Failed(t *testing.T) { moduleCli := cli.Approval t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApproval(ctx, &lark.CreateApprovalReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { moduleCli := cli.Approval t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApproval(func(ctx context.Context, request *lark.CreateApprovalReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApproval(func(ctx context.Context, request *lark.GetApprovalReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalList(func(ctx context.Context, request *lark.GetApprovalListReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalSubscribeApprovalSubscription(func(ctx context.Context, request *lark.SubscribeApprovalSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.SubscribeApprovalSubscriptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalUnsubscribeApprovalSubscription(func(ctx context.Context, request *lark.UnsubscribeApprovalSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeApprovalSubscriptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApprovalInstance(func(ctx context.Context, request *lark.CreateApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalInstance(func(ctx context.Context, request *lark.GetApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalInstanceList(func(ctx context.Context, request *lark.GetApprovalInstanceListReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalInstanceListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCancelApprovalInstance(func(ctx context.Context, request *lark.CancelApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.CancelApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApprovalCarbonCopy(func(ctx context.Context, request *lark.CreateApprovalCarbonCopyReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalCarbonCopyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalPreviewApprovalInstance(func(ctx context.Context, request *lark.PreviewApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.PreviewApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalApproveApprovalInstance(func(ctx context.Context, request *lark.ApproveApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.ApproveApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalRejectApprovalInstance(func(ctx context.Context, request *lark.RejectApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.RejectApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalTransferApprovalInstance(func(ctx context.Context, request *lark.TransferApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.TransferApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalResubmitApprovalInstanceTask(func(ctx context.Context, request *lark.ResubmitApprovalInstanceTaskReq, options ...lark.MethodOptionFunc) (*lark.ResubmitApprovalInstanceTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalRollbackApprovalInstance(func(ctx context.Context, request *lark.RollbackApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.RollbackApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalAddApprovalInstanceSign(func(ctx context.Context, request *lark.AddApprovalInstanceSignReq, options ...lark.MethodOptionFunc) (*lark.AddApprovalInstanceSignResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApprovalComment(func(ctx context.Context, request *lark.CreateApprovalCommentReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalCommentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalComment(func(ctx context.Context, request *lark.GetApprovalCommentReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalCommentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalDeleteApprovalComment(func(ctx context.Context, request *lark.DeleteApprovalCommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteApprovalCommentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalRemoveApprovalComment(func(ctx context.Context, request *lark.RemoveApprovalCommentReq, options ...lark.MethodOptionFunc) (*lark.RemoveApprovalCommentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApprovalExternalApproval(func(ctx context.Context, request *lark.CreateApprovalExternalApprovalReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalExternalApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalExternalApproval(func(ctx context.Context, request *lark.GetApprovalExternalApprovalReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalExternalApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCreateApprovalExternalInstance(func(ctx context.Context, request *lark.CreateApprovalExternalInstanceReq, options ...lark.MethodOptionFunc) (*lark.CreateApprovalExternalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalCheckApprovalExternalInstance(func(ctx context.Context, request *lark.CheckApprovalExternalInstanceReq, options ...lark.MethodOptionFunc) (*lark.CheckApprovalExternalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalExternalList(func(ctx context.Context, request *lark.GetApprovalExternalListReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalExternalListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalUploadApprovalFile(func(ctx context.Context, request *lark.UploadApprovalFileReq, options ...lark.MethodOptionFunc) (*lark.UploadApprovalFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalUpdateApprovalMessage(func(ctx context.Context, request *lark.UpdateApprovalMessageReq, options ...lark.MethodOptionFunc) (*lark.UpdateApprovalMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalSendApprovalMessage(func(ctx context.Context, request *lark.SendApprovalMessageReq, options ...lark.MethodOptionFunc) (*lark.SendApprovalMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalSearchApprovalInstance(func(ctx context.Context, request *lark.SearchApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.SearchApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalSearchApprovalCarbonCopy(func(ctx context.Context, request *lark.SearchApprovalCarbonCopyReq, options ...lark.MethodOptionFunc) (*lark.SearchApprovalCarbonCopyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalSearchApprovalTask(func(ctx context.Context, request *lark.SearchApprovalTaskReq, options ...lark.MethodOptionFunc) (*lark.SearchApprovalTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalGetApprovalUserTaskList(func(ctx context.Context, request *lark.GetApprovalUserTaskListReq, options ...lark.MethodOptionFunc) (*lark.GetApprovalUserTaskListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockApprovalTransformApprovalUserID(func(ctx context.Context, request *lark.TransformApprovalUserIDReq, options ...lark.MethodOptionFunc) (*lark.TransformApprovalUserIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -420,6 +456,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -430,12 +467,14 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApproval(ctx, &lark.CreateApprovalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApproval(ctx, &lark.GetApprovalReq{ ApprovalCode: "x", }) @@ -444,12 +483,14 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalList(ctx, &lark.GetApprovalListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SubscribeApprovalSubscription(ctx, &lark.SubscribeApprovalSubscriptionReq{ ApprovalCode: "x", }) @@ -458,6 +499,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UnsubscribeApprovalSubscription(ctx, &lark.UnsubscribeApprovalSubscriptionReq{ ApprovalCode: "x", }) @@ -466,12 +508,14 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApprovalInstance(ctx, &lark.CreateApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalInstance(ctx, &lark.GetApprovalInstanceReq{ InstanceID: "x", }) @@ -480,66 +524,77 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalInstanceList(ctx, &lark.GetApprovalInstanceListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CancelApprovalInstance(ctx, &lark.CancelApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApprovalCarbonCopy(ctx, &lark.CreateApprovalCarbonCopyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.PreviewApprovalInstance(ctx, &lark.PreviewApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ApproveApprovalInstance(ctx, &lark.ApproveApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RejectApprovalInstance(ctx, &lark.RejectApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.TransferApprovalInstance(ctx, &lark.TransferApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ResubmitApprovalInstanceTask(ctx, &lark.ResubmitApprovalInstanceTaskReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RollbackApprovalInstance(ctx, &lark.RollbackApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AddApprovalInstanceSign(ctx, &lark.AddApprovalInstanceSignReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApprovalComment(ctx, &lark.CreateApprovalCommentReq{ InstanceID: "x", }) @@ -548,6 +603,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalComment(ctx, &lark.GetApprovalCommentReq{ InstanceID: "x", }) @@ -556,6 +612,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteApprovalComment(ctx, &lark.DeleteApprovalCommentReq{ InstanceID: "x", CommentID: "x", @@ -565,6 +622,7 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RemoveApprovalComment(ctx, &lark.RemoveApprovalCommentReq{ InstanceID: "x", }) @@ -573,12 +631,14 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApprovalExternalApproval(ctx, &lark.CreateApprovalExternalApprovalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalExternalApproval(ctx, &lark.GetApprovalExternalApprovalReq{ ApprovalCode: "x", }) @@ -587,69 +647,81 @@ func Test_Approval_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateApprovalExternalInstance(ctx, &lark.CreateApprovalExternalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CheckApprovalExternalInstance(ctx, &lark.CheckApprovalExternalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalExternalList(ctx, &lark.GetApprovalExternalListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadApprovalFile(ctx, &lark.UploadApprovalFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateApprovalMessage(ctx, &lark.UpdateApprovalMessageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SendApprovalMessage(ctx, &lark.SendApprovalMessageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApprovalInstance(ctx, &lark.SearchApprovalInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApprovalCarbonCopy(ctx, &lark.SearchApprovalCarbonCopyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApprovalTask(ctx, &lark.SearchApprovalTaskReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetApprovalUserTaskList(ctx, &lark.GetApprovalUserTaskListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.TransformApprovalUserID(ctx, &lark.TransformApprovalUserIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/attendance_sample_test.go b/test/attendance_sample_test.go index d8d8292c..e99a60df 100644 --- a/test/attendance_sample_test.go +++ b/test/attendance_sample_test.go @@ -37,10 +37,12 @@ func Test_Attendance_Sample_Failed(t *testing.T) { moduleCli := cli.Attendance t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceGroupList(ctx, &lark.GetAttendanceGroupListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { moduleCli := cli.Attendance t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceGroupList(func(ctx context.Context, request *lark.GetAttendanceGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceGroupListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceCreateAttendanceGroup(func(ctx context.Context, request *lark.CreateAttendanceGroupReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceSearchAttendanceGroup(func(ctx context.Context, request *lark.SearchAttendanceGroupReq, options ...lark.MethodOptionFunc) (*lark.SearchAttendanceGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceGroup(func(ctx context.Context, request *lark.GetAttendanceGroupReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceDeleteAttendanceGroup(func(ctx context.Context, request *lark.DeleteAttendanceGroupReq, options ...lark.MethodOptionFunc) (*lark.DeleteAttendanceGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceShiftList(func(ctx context.Context, request *lark.GetAttendanceShiftListReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceShiftListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceShift(func(ctx context.Context, request *lark.GetAttendanceShiftReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceShiftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceShiftDetail(func(ctx context.Context, request *lark.GetAttendanceShiftDetailReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceShiftDetailResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceDeleteAttendanceShift(func(ctx context.Context, request *lark.DeleteAttendanceShiftReq, options ...lark.MethodOptionFunc) (*lark.DeleteAttendanceShiftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceUpdateAttendanceLeaveAccrualRecord(func(ctx context.Context, request *lark.UpdateAttendanceLeaveAccrualRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateAttendanceLeaveAccrualRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceLeaveEmployExpireRecord(func(ctx context.Context, request *lark.GetAttendanceLeaveEmployExpireRecordReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceLeaveEmployExpireRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceCreateAttendanceShift(func(ctx context.Context, request *lark.CreateAttendanceShiftReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceShiftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserDailyShift(func(ctx context.Context, request *lark.GetAttendanceUserDailyShiftReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserDailyShiftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceBatchCreateAttendanceUserDailyShift(func(ctx context.Context, request *lark.BatchCreateAttendanceUserDailyShiftReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAttendanceUserDailyShiftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserStatsField(func(ctx context.Context, request *lark.GetAttendanceUserStatsFieldReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserStatsFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserStatsView(func(ctx context.Context, request *lark.GetAttendanceUserStatsViewReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserStatsViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceUpdateAttendanceUserStatsView(func(ctx context.Context, request *lark.UpdateAttendanceUserStatsViewReq, options ...lark.MethodOptionFunc) (*lark.UpdateAttendanceUserStatsViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserStatsData(func(ctx context.Context, request *lark.GetAttendanceUserStatsDataReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserStatsDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserApproval(func(ctx context.Context, request *lark.GetAttendanceUserApprovalReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceCreateAttendanceUserApproval(func(ctx context.Context, request *lark.CreateAttendanceUserApprovalReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceUserApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceUpdateAttendanceRemedyApproval(func(ctx context.Context, request *lark.UpdateAttendanceRemedyApprovalReq, options ...lark.MethodOptionFunc) (*lark.UpdateAttendanceRemedyApprovalResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceBatchGetAttendanceUserFlow(func(ctx context.Context, request *lark.BatchGetAttendanceUserFlowReq, options ...lark.MethodOptionFunc) (*lark.BatchGetAttendanceUserFlowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserFlow(func(ctx context.Context, request *lark.GetAttendanceUserFlowReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserFlowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserTask(func(ctx context.Context, request *lark.GetAttendanceUserTaskReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceBatchCreateAttendanceUserFlow(func(ctx context.Context, request *lark.BatchCreateAttendanceUserFlowReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAttendanceUserFlowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList(func(ctx context.Context, request *lark.GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserTaskRemedyAllowedRemedyListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserTaskRemedy(func(ctx context.Context, request *lark.GetAttendanceUserTaskRemedyReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserTaskRemedyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceCreateAttendanceUserTaskRemedy(func(ctx context.Context, request *lark.CreateAttendanceUserTaskRemedyReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceUserTaskRemedyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceGetAttendanceUserSettingList(func(ctx context.Context, request *lark.GetAttendanceUserSettingListReq, options ...lark.MethodOptionFunc) (*lark.GetAttendanceUserSettingListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceUpdateAttendanceUserSetting(func(ctx context.Context, request *lark.UpdateAttendanceUserSettingReq, options ...lark.MethodOptionFunc) (*lark.UpdateAttendanceUserSettingResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceDownloadAttendanceFile(func(ctx context.Context, request *lark.DownloadAttendanceFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadAttendanceFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAttendanceUploadAttendanceFile(func(ctx context.Context, request *lark.UploadAttendanceFileReq, options ...lark.MethodOptionFunc) (*lark.UploadAttendanceFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -398,6 +432,91 @@ func Test_Attendance_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceCreateAttendanceArchiveRuleDelReport(func(ctx context.Context, request *lark.CreateAttendanceArchiveRuleDelReportReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceArchiveRuleDelReportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceCreateAttendanceArchiveRuleDelReport() + + _, _, err := moduleCli.CreateAttendanceArchiveRuleDelReport(ctx, &lark.CreateAttendanceArchiveRuleDelReportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceListAttendanceArchiveRule(func(ctx context.Context, request *lark.ListAttendanceArchiveRuleReq, options ...lark.MethodOptionFunc) (*lark.ListAttendanceArchiveRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceListAttendanceArchiveRule() + + _, _, err := moduleCli.ListAttendanceArchiveRule(ctx, &lark.ListAttendanceArchiveRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceUploadAttendanceArchiveRuleReport(func(ctx context.Context, request *lark.UploadAttendanceArchiveRuleReportReq, options ...lark.MethodOptionFunc) (*lark.UploadAttendanceArchiveRuleReportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceUploadAttendanceArchiveRuleReport() + + _, _, err := moduleCli.UploadAttendanceArchiveRuleReport(ctx, &lark.UploadAttendanceArchiveRuleReportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery(func(ctx context.Context, request *lark.CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery() + + _, _, err := moduleCli.CreateAttendanceArchiveRuleUserStatsFieldsQuery(ctx, &lark.CreateAttendanceArchiveRuleUserStatsFieldsQueryReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceListAttendanceGroupUser(func(ctx context.Context, request *lark.ListAttendanceGroupUserReq, options ...lark.MethodOptionFunc) (*lark.ListAttendanceGroupUserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceListAttendanceGroupUser() + + _, _, err := moduleCli.ListAttendanceGroupUser(ctx, &lark.ListAttendanceGroupUserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceBatchCreateAttendanceUserDailyShiftTemp(func(ctx context.Context, request *lark.BatchCreateAttendanceUserDailyShiftTempReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateAttendanceUserDailyShiftTempResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceBatchCreateAttendanceUserDailyShiftTemp() + + _, _, err := moduleCli.BatchCreateAttendanceUserDailyShiftTemp(ctx, &lark.BatchCreateAttendanceUserDailyShiftTempReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAttendanceBatchAttendanceUserFlowDel(func(ctx context.Context, request *lark.BatchAttendanceUserFlowDelReq, options ...lark.MethodOptionFunc) (*lark.BatchAttendanceUserFlowDelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAttendanceBatchAttendanceUserFlowDel() + + _, _, err := moduleCli.BatchAttendanceUserFlowDel(ctx, &lark.BatchAttendanceUserFlowDelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -408,24 +527,28 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceGroupList(ctx, &lark.GetAttendanceGroupListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAttendanceGroup(ctx, &lark.CreateAttendanceGroupReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchAttendanceGroup(ctx, &lark.SearchAttendanceGroupReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceGroup(ctx, &lark.GetAttendanceGroupReq{ GroupID: "x", }) @@ -434,6 +557,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteAttendanceGroup(ctx, &lark.DeleteAttendanceGroupReq{ GroupID: "x", }) @@ -442,18 +566,21 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceShiftList(ctx, &lark.GetAttendanceShiftListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceShift(ctx, &lark.GetAttendanceShiftReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceShiftDetail(ctx, &lark.GetAttendanceShiftDetailReq{ ShiftID: "x", }) @@ -462,6 +589,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteAttendanceShift(ctx, &lark.DeleteAttendanceShiftReq{ ShiftID: "x", }) @@ -470,6 +598,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAttendanceLeaveAccrualRecord(ctx, &lark.UpdateAttendanceLeaveAccrualRecordReq{ LeaveID: "x", }) @@ -478,6 +607,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceLeaveEmployExpireRecord(ctx, &lark.GetAttendanceLeaveEmployExpireRecordReq{ LeaveID: "x", }) @@ -486,36 +616,42 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAttendanceShift(ctx, &lark.CreateAttendanceShiftReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserDailyShift(ctx, &lark.GetAttendanceUserDailyShiftReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateAttendanceUserDailyShift(ctx, &lark.BatchCreateAttendanceUserDailyShiftReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserStatsField(ctx, &lark.GetAttendanceUserStatsFieldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserStatsView(ctx, &lark.GetAttendanceUserStatsViewReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAttendanceUserStatsView(ctx, &lark.UpdateAttendanceUserStatsViewReq{ UserStatsViewID: "x", }) @@ -524,36 +660,42 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserStatsData(ctx, &lark.GetAttendanceUserStatsDataReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserApproval(ctx, &lark.GetAttendanceUserApprovalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAttendanceUserApproval(ctx, &lark.CreateAttendanceUserApprovalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAttendanceRemedyApproval(ctx, &lark.UpdateAttendanceRemedyApprovalReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchGetAttendanceUserFlow(ctx, &lark.BatchGetAttendanceUserFlowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserFlow(ctx, &lark.GetAttendanceUserFlowReq{ UserFlowID: "x", }) @@ -562,48 +704,56 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserTask(ctx, &lark.GetAttendanceUserTaskReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateAttendanceUserFlow(ctx, &lark.BatchCreateAttendanceUserFlowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserTaskRemedyAllowedRemedyList(ctx, &lark.GetAttendanceUserTaskRemedyAllowedRemedyListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserTaskRemedy(ctx, &lark.GetAttendanceUserTaskRemedyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateAttendanceUserTaskRemedy(ctx, &lark.CreateAttendanceUserTaskRemedyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAttendanceUserSettingList(ctx, &lark.GetAttendanceUserSettingListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateAttendanceUserSetting(ctx, &lark.UpdateAttendanceUserSettingReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadAttendanceFile(ctx, &lark.DownloadAttendanceFileReq{ FileID: "x", }) @@ -612,9 +762,62 @@ func Test_Attendance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadAttendanceFile(ctx, &lark.UploadAttendanceFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAttendanceArchiveRuleDelReport(ctx, &lark.CreateAttendanceArchiveRuleDelReportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAttendanceArchiveRule(ctx, &lark.ListAttendanceArchiveRuleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadAttendanceArchiveRuleReport(ctx, &lark.UploadAttendanceArchiveRuleReportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAttendanceArchiveRuleUserStatsFieldsQuery(ctx, &lark.CreateAttendanceArchiveRuleUserStatsFieldsQueryReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListAttendanceGroupUser(ctx, &lark.ListAttendanceGroupUserReq{ + GroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateAttendanceUserDailyShiftTemp(ctx, &lark.BatchCreateAttendanceUserDailyShiftTempReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchAttendanceUserFlowDel(ctx, &lark.BatchAttendanceUserFlowDelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/auth_sample_test.go b/test/auth_sample_test.go index c15ff47c..cb912330 100644 --- a/test/auth_sample_test.go +++ b/test/auth_sample_test.go @@ -37,10 +37,12 @@ func Test_Auth_Sample_Failed(t *testing.T) { moduleCli := cli.Auth t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAccessToken(ctx, &lark.GetAccessTokenReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Auth_Sample_Failed(t *testing.T) { moduleCli := cli.Auth t.Run("", func(t *testing.T) { + cli.Mock().MockAuthResendAppTicket(func(ctx context.Context, request *lark.ResendAppTicketReq, options ...lark.MethodOptionFunc) (*lark.ResendAppTicketResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Auth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAuthGetAccessToken(func(ctx context.Context, request *lark.GetAccessTokenReq, options ...lark.MethodOptionFunc) (*lark.GetAccessTokenResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Auth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAuthRefreshAccessToken(func(ctx context.Context, request *lark.RefreshAccessTokenReq, options ...lark.MethodOptionFunc) (*lark.RefreshAccessTokenResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Auth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockAuthGetUserInfo(func(ctx context.Context, request *lark.GetUserInfoReq, options ...lark.MethodOptionFunc) (*lark.GetUserInfoResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -90,6 +96,7 @@ func Test_Auth_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -100,27 +107,32 @@ func Test_Auth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ResendAppTicket(ctx, &lark.ResendAppTicketReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetAccessToken(ctx, &lark.GetAccessTokenReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RefreshAccessToken(ctx, &lark.RefreshAccessTokenReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetUserInfo(ctx, &lark.GetUserInfoReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/authen_sample_test.go b/test/authen_sample_test.go new file mode 100644 index 00000000..59b49b52 --- /dev/null +++ b/test/authen_sample_test.go @@ -0,0 +1,100 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Authen_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Authen + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAuthenAccessToken(ctx, &lark.CreateAuthenAccessTokenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Authen + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAuthenCreateAuthenAccessToken(func(ctx context.Context, request *lark.CreateAuthenAccessTokenReq, options ...lark.MethodOptionFunc) (*lark.CreateAuthenAccessTokenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAuthenCreateAuthenAccessToken() + + _, _, err := moduleCli.CreateAuthenAccessToken(ctx, &lark.CreateAuthenAccessTokenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockAuthenCreateAuthenRefreshAccessToken(func(ctx context.Context, request *lark.CreateAuthenRefreshAccessTokenReq, options ...lark.MethodOptionFunc) (*lark.CreateAuthenRefreshAccessTokenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockAuthenCreateAuthenRefreshAccessToken() + + _, _, err := moduleCli.CreateAuthenRefreshAccessToken(ctx, &lark.CreateAuthenRefreshAccessTokenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Authen + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAuthenAccessToken(ctx, &lark.CreateAuthenAccessTokenReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAuthenRefreshAccessToken(ctx, &lark.CreateAuthenRefreshAccessTokenReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/baike_sample_test.go b/test/baike_sample_test.go index e06216ef..3a60435d 100644 --- a/test/baike_sample_test.go +++ b/test/baike_sample_test.go @@ -37,10 +37,12 @@ func Test_Baike_Sample_Failed(t *testing.T) { moduleCli := cli.Baike t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBaikeDraft(ctx, &lark.CreateBaikeDraftReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { moduleCli := cli.Baike t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeCreateBaikeDraft(func(ctx context.Context, request *lark.CreateBaikeDraftReq, options ...lark.MethodOptionFunc) (*lark.CreateBaikeDraftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeCreateBaikeUpdate(func(ctx context.Context, request *lark.CreateBaikeUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateBaikeUpdateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeCreateBaikeEntity(func(ctx context.Context, request *lark.CreateBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.CreateBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeUpdateBaikeEntity(func(ctx context.Context, request *lark.UpdateBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.UpdateBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeGetBaikeEntity(func(ctx context.Context, request *lark.GetBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.GetBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeGetBaikeEntityList(func(ctx context.Context, request *lark.GetBaikeEntityListReq, options ...lark.MethodOptionFunc) (*lark.GetBaikeEntityListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeMatchBaikeEntity(func(ctx context.Context, request *lark.MatchBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.MatchBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeSearchBaikeEntity(func(ctx context.Context, request *lark.SearchBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.SearchBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeHighlightBaikeEntity(func(ctx context.Context, request *lark.HighlightBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.HighlightBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeExtractBaikeEntity(func(ctx context.Context, request *lark.ExtractBaikeEntityReq, options ...lark.MethodOptionFunc) (*lark.ExtractBaikeEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeGetBaikeClassificationList(func(ctx context.Context, request *lark.GetBaikeClassificationListReq, options ...lark.MethodOptionFunc) (*lark.GetBaikeClassificationListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeUploadBaikeImage(func(ctx context.Context, request *lark.UploadBaikeImageReq, options ...lark.MethodOptionFunc) (*lark.UploadBaikeImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBaikeDownloadBaikeImage(func(ctx context.Context, request *lark.DownloadBaikeImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadBaikeImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -189,6 +204,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -199,12 +215,14 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBaikeDraft(ctx, &lark.CreateBaikeDraftReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBaikeUpdate(ctx, &lark.CreateBaikeUpdateReq{ DraftID: "x", }) @@ -213,12 +231,14 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBaikeEntity(ctx, &lark.CreateBaikeEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBaikeEntity(ctx, &lark.UpdateBaikeEntityReq{ EntityID: "x", }) @@ -227,6 +247,7 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBaikeEntity(ctx, &lark.GetBaikeEntityReq{ EntityID: "x", }) @@ -235,53 +256,62 @@ func Test_Baike_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBaikeEntityList(ctx, &lark.GetBaikeEntityListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.MatchBaikeEntity(ctx, &lark.MatchBaikeEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchBaikeEntity(ctx, &lark.SearchBaikeEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.HighlightBaikeEntity(ctx, &lark.HighlightBaikeEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ExtractBaikeEntity(ctx, &lark.ExtractBaikeEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBaikeClassificationList(ctx, &lark.GetBaikeClassificationListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadBaikeImage(ctx, &lark.UploadBaikeImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadBaikeImage(ctx, &lark.DownloadBaikeImageReq{ FileToken: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/base_sample_test.go b/test/base_sample_test.go new file mode 100644 index 00000000..a6dafef7 --- /dev/null +++ b/test/base_sample_test.go @@ -0,0 +1,126 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Base_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Base + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Base + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBaseCreateBaseAppRole(func(ctx context.Context, request *lark.CreateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.CreateBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBaseCreateBaseAppRole() + + _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBaseListBaseAppRole(func(ctx context.Context, request *lark.ListBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.ListBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBaseListBaseAppRole() + + _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBaseUpdateBaseAppRole(func(ctx context.Context, request *lark.UpdateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.UpdateBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBaseUpdateBaseAppRole() + + _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Base + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{ + AppToken: "x", + RoleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/bitable_sample_test.go b/test/bitable_sample_test.go index f32d4081..784cb937 100644 --- a/test/bitable_sample_test.go +++ b/test/bitable_sample_test.go @@ -37,10 +37,12 @@ func Test_Bitable_Sample_Failed(t *testing.T) { moduleCli := cli.Bitable t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CopyBitableDashboard(ctx, &lark.CopyBitableDashboardReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { moduleCli := cli.Bitable t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCopyBitableDashboard(func(ctx context.Context, request *lark.CopyBitableDashboardReq, options ...lark.MethodOptionFunc) (*lark.CopyBitableDashboardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableDashboardList(func(ctx context.Context, request *lark.GetBitableDashboardListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableDashboardListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableView(func(ctx context.Context, request *lark.UpdateBitableViewReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableView(func(ctx context.Context, request *lark.GetBitableViewReq, options ...lark.MethodOptionFunc) (*lark.GetBitableViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableViewList(func(ctx context.Context, request *lark.GetBitableViewListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableViewListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableView(func(ctx context.Context, request *lark.CreateBitableViewReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableView(func(ctx context.Context, request *lark.DeleteBitableViewReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableRecord(func(ctx context.Context, request *lark.GetBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.GetBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableRecordList(func(ctx context.Context, request *lark.GetBitableRecordListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableRecordListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableSearchBitableRecord(func(ctx context.Context, request *lark.SearchBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.SearchBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableRecord(func(ctx context.Context, request *lark.CreateBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableRecord(func(ctx context.Context, request *lark.UpdateBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableRecord(func(ctx context.Context, request *lark.DeleteBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchCreateBitableRecord(func(ctx context.Context, request *lark.BatchCreateBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchUpdateBitableRecord(func(ctx context.Context, request *lark.BatchUpdateBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchDeleteBitableRecord(func(ctx context.Context, request *lark.BatchDeleteBitableRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteBitableRecordResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableFieldList(func(ctx context.Context, request *lark.GetBitableFieldListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableFieldListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableField(func(ctx context.Context, request *lark.CreateBitableFieldReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableField(func(ctx context.Context, request *lark.UpdateBitableFieldReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableField(func(ctx context.Context, request *lark.DeleteBitableFieldReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableAppRoleList(func(ctx context.Context, request *lark.GetBitableAppRoleListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableAppRoleListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableAppRole(func(ctx context.Context, request *lark.CreateBitableAppRoleReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableAppRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableAppRole(func(ctx context.Context, request *lark.DeleteBitableAppRoleReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableAppRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableAppRole(func(ctx context.Context, request *lark.UpdateBitableAppRoleReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableAppRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchDeleteBitableAppRoleMember(func(ctx context.Context, request *lark.BatchDeleteBitableAppRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteBitableAppRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchCreateBitableAppRoleMember(func(ctx context.Context, request *lark.BatchCreateBitableAppRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateBitableAppRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableAppRoleMemberList(func(ctx context.Context, request *lark.GetBitableAppRoleMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableAppRoleMemberListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableAppRoleMember(func(ctx context.Context, request *lark.CreateBitableAppRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableAppRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableAppRoleMember(func(ctx context.Context, request *lark.DeleteBitableAppRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableAppRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableTable(func(ctx context.Context, request *lark.CreateBitableTableReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchCreateBitableTable(func(ctx context.Context, request *lark.BatchCreateBitableTableReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateBitableTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableDeleteBitableTable(func(ctx context.Context, request *lark.DeleteBitableTableReq, options ...lark.MethodOptionFunc) (*lark.DeleteBitableTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableBatchDeleteBitableTable(func(ctx context.Context, request *lark.BatchDeleteBitableTableReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteBitableTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableTable(func(ctx context.Context, request *lark.UpdateBitableTableReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -422,6 +458,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableTableList(func(ctx context.Context, request *lark.GetBitableTableListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableTableListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -433,6 +470,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableTableForm(func(ctx context.Context, request *lark.UpdateBitableTableFormReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableTableFormResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -444,6 +482,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableTableForm(func(ctx context.Context, request *lark.GetBitableTableFormReq, options ...lark.MethodOptionFunc) (*lark.GetBitableTableFormResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -455,6 +494,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableTableFormField(func(ctx context.Context, request *lark.UpdateBitableTableFormFieldReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableTableFormFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -466,6 +506,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableTableFormFieldList(func(ctx context.Context, request *lark.GetBitableTableFormFieldListReq, options ...lark.MethodOptionFunc) (*lark.GetBitableTableFormFieldListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -477,6 +518,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCopyBitableApp(func(ctx context.Context, request *lark.CopyBitableAppReq, options ...lark.MethodOptionFunc) (*lark.CopyBitableAppResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -488,6 +530,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableCreateBitableApp(func(ctx context.Context, request *lark.CreateBitableAppReq, options ...lark.MethodOptionFunc) (*lark.CreateBitableAppResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -499,6 +542,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableGetBitableMeta(func(ctx context.Context, request *lark.GetBitableMetaReq, options ...lark.MethodOptionFunc) (*lark.GetBitableMetaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -510,6 +554,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBitableUpdateBitableMeta(func(ctx context.Context, request *lark.UpdateBitableMetaReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableMetaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -519,6 +564,55 @@ func Test_Bitable_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBitableListBitableAppBlockWorkflow(func(ctx context.Context, request *lark.ListBitableAppBlockWorkflowReq, options ...lark.MethodOptionFunc) (*lark.ListBitableAppBlockWorkflowResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBitableListBitableAppBlockWorkflow() + + _, _, err := moduleCli.ListBitableAppBlockWorkflow(ctx, &lark.ListBitableAppBlockWorkflowReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBitableBatchGetBitableAppTableRecord(func(ctx context.Context, request *lark.BatchGetBitableAppTableRecordReq, options ...lark.MethodOptionFunc) (*lark.BatchGetBitableAppTableRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBitableBatchGetBitableAppTableRecord() + + _, _, err := moduleCli.BatchGetBitableAppTableRecord(ctx, &lark.BatchGetBitableAppTableRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBitableListBitableAppWorkflow(func(ctx context.Context, request *lark.ListBitableAppWorkflowReq, options ...lark.MethodOptionFunc) (*lark.ListBitableAppWorkflowResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBitableListBitableAppWorkflow() + + _, _, err := moduleCli.ListBitableAppWorkflow(ctx, &lark.ListBitableAppWorkflowReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBitableUpdateBitableAppWorkflow(func(ctx context.Context, request *lark.UpdateBitableAppWorkflowReq, options ...lark.MethodOptionFunc) (*lark.UpdateBitableAppWorkflowResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBitableUpdateBitableAppWorkflow() + + _, _, err := moduleCli.UpdateBitableAppWorkflow(ctx, &lark.UpdateBitableAppWorkflowReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -529,6 +623,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CopyBitableDashboard(ctx, &lark.CopyBitableDashboardReq{ AppToken: "x", BlockID: "x", @@ -538,6 +633,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableDashboardList(ctx, &lark.GetBitableDashboardListReq{ AppToken: "x", }) @@ -546,6 +642,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableView(ctx, &lark.UpdateBitableViewReq{ AppToken: "x", TableID: "x", @@ -556,6 +653,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableView(ctx, &lark.GetBitableViewReq{ AppToken: "x", TableID: "x", @@ -566,6 +664,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableViewList(ctx, &lark.GetBitableViewListReq{ AppToken: "x", TableID: "x", @@ -575,6 +674,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableView(ctx, &lark.CreateBitableViewReq{ AppToken: "x", TableID: "x", @@ -584,6 +684,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableView(ctx, &lark.DeleteBitableViewReq{ AppToken: "x", TableID: "x", @@ -594,6 +695,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableRecord(ctx, &lark.GetBitableRecordReq{ AppToken: "x", TableID: "x", @@ -604,6 +706,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableRecordList(ctx, &lark.GetBitableRecordListReq{ AppToken: "x", TableID: "x", @@ -613,6 +716,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchBitableRecord(ctx, &lark.SearchBitableRecordReq{ AppToken: "x", TableID: "x", @@ -622,6 +726,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableRecord(ctx, &lark.CreateBitableRecordReq{ AppToken: "x", TableID: "x", @@ -631,6 +736,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableRecord(ctx, &lark.UpdateBitableRecordReq{ AppToken: "x", TableID: "x", @@ -641,6 +747,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableRecord(ctx, &lark.DeleteBitableRecordReq{ AppToken: "x", TableID: "x", @@ -651,6 +758,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateBitableRecord(ctx, &lark.BatchCreateBitableRecordReq{ AppToken: "x", TableID: "x", @@ -660,6 +768,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchUpdateBitableRecord(ctx, &lark.BatchUpdateBitableRecordReq{ AppToken: "x", TableID: "x", @@ -669,6 +778,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchDeleteBitableRecord(ctx, &lark.BatchDeleteBitableRecordReq{ AppToken: "x", TableID: "x", @@ -678,6 +788,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableFieldList(ctx, &lark.GetBitableFieldListReq{ AppToken: "x", TableID: "x", @@ -687,6 +798,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableField(ctx, &lark.CreateBitableFieldReq{ AppToken: "x", TableID: "x", @@ -696,6 +808,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableField(ctx, &lark.UpdateBitableFieldReq{ AppToken: "x", TableID: "x", @@ -706,6 +819,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableField(ctx, &lark.DeleteBitableFieldReq{ AppToken: "x", TableID: "x", @@ -716,6 +830,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableAppRoleList(ctx, &lark.GetBitableAppRoleListReq{ AppToken: "x", }) @@ -724,6 +839,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableAppRole(ctx, &lark.CreateBitableAppRoleReq{ AppToken: "x", }) @@ -732,6 +848,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableAppRole(ctx, &lark.DeleteBitableAppRoleReq{ AppToken: "x", RoleID: "x", @@ -741,6 +858,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableAppRole(ctx, &lark.UpdateBitableAppRoleReq{ AppToken: "x", RoleID: "x", @@ -750,6 +868,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchDeleteBitableAppRoleMember(ctx, &lark.BatchDeleteBitableAppRoleMemberReq{ AppToken: "x", RoleID: "x", @@ -759,6 +878,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateBitableAppRoleMember(ctx, &lark.BatchCreateBitableAppRoleMemberReq{ AppToken: "x", RoleID: "x", @@ -768,6 +888,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableAppRoleMemberList(ctx, &lark.GetBitableAppRoleMemberListReq{ AppToken: "x", RoleID: "x", @@ -777,6 +898,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableAppRoleMember(ctx, &lark.CreateBitableAppRoleMemberReq{ AppToken: "x", RoleID: "x", @@ -786,6 +908,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableAppRoleMember(ctx, &lark.DeleteBitableAppRoleMemberReq{ AppToken: "x", RoleID: "x", @@ -796,6 +919,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableTable(ctx, &lark.CreateBitableTableReq{ AppToken: "x", }) @@ -804,6 +928,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateBitableTable(ctx, &lark.BatchCreateBitableTableReq{ AppToken: "x", }) @@ -812,6 +937,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteBitableTable(ctx, &lark.DeleteBitableTableReq{ AppToken: "x", TableID: "x", @@ -821,6 +947,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchDeleteBitableTable(ctx, &lark.BatchDeleteBitableTableReq{ AppToken: "x", }) @@ -829,6 +956,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableTable(ctx, &lark.UpdateBitableTableReq{ AppToken: "x", TableID: "x", @@ -838,6 +966,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableTableList(ctx, &lark.GetBitableTableListReq{ AppToken: "x", }) @@ -846,6 +975,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableTableForm(ctx, &lark.UpdateBitableTableFormReq{ AppToken: "x", TableID: "x", @@ -856,6 +986,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableTableForm(ctx, &lark.GetBitableTableFormReq{ AppToken: "x", TableID: "x", @@ -866,6 +997,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableTableFormField(ctx, &lark.UpdateBitableTableFormFieldReq{ AppToken: "x", TableID: "x", @@ -877,6 +1009,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableTableFormFieldList(ctx, &lark.GetBitableTableFormFieldListReq{ AppToken: "x", TableID: "x", @@ -887,6 +1020,7 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CopyBitableApp(ctx, &lark.CopyBitableAppReq{ AppToken: "x", }) @@ -895,12 +1029,14 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateBitableApp(ctx, &lark.CreateBitableAppReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBitableMeta(ctx, &lark.GetBitableMetaReq{ AppToken: "x", }) @@ -909,11 +1045,51 @@ func Test_Bitable_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateBitableMeta(ctx, &lark.UpdateBitableMetaReq{ AppToken: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListBitableAppBlockWorkflow(ctx, &lark.ListBitableAppBlockWorkflowReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetBitableAppTableRecord(ctx, &lark.BatchGetBitableAppTableRecordReq{ + AppToken: "x", + TableID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListBitableAppWorkflow(ctx, &lark.ListBitableAppWorkflowReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateBitableAppWorkflow(ctx, &lark.UpdateBitableAppWorkflowReq{ + AppToken: "x", + WorkflowID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/board_sample_test.go b/test/board_sample_test.go new file mode 100644 index 00000000..eed1c813 --- /dev/null +++ b/test/board_sample_test.go @@ -0,0 +1,167 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Board_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Board + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Board + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBoardCreateBoardWhiteboardNode(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodeReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBoardCreateBoardWhiteboardNode() + + _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBoardCreateBoardWhiteboardNodePlantuml(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodePlantumlReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodePlantumlResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBoardCreateBoardWhiteboardNodePlantuml() + + _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBoardDownloadBoardWhiteboardAsImage(func(ctx context.Context, request *lark.DownloadBoardWhiteboardAsImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadBoardWhiteboardAsImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBoardDownloadBoardWhiteboardAsImage() + + _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBoardGetBoardWhiteboardTheme(func(ctx context.Context, request *lark.GetBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.GetBoardWhiteboardThemeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBoardGetBoardWhiteboardTheme() + + _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockBoardUpdateBoardWhiteboardTheme(func(ctx context.Context, request *lark.UpdateBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.UpdateBoardWhiteboardThemeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockBoardUpdateBoardWhiteboardTheme() + + _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Board + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/bot_sample_test.go b/test/bot_sample_test.go index 7facf34c..9a3761fe 100644 --- a/test/bot_sample_test.go +++ b/test/bot_sample_test.go @@ -37,10 +37,12 @@ func Test_Bot_Sample_Failed(t *testing.T) { moduleCli := cli.Bot t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBotInfo(ctx, &lark.GetBotInfoReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Bot_Sample_Failed(t *testing.T) { moduleCli := cli.Bot t.Run("", func(t *testing.T) { + cli.Mock().MockBotGetBotInfo(func(ctx context.Context, request *lark.GetBotInfoReq, options ...lark.MethodOptionFunc) (*lark.GetBotInfoResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Bot_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockBotAddBotToChat(func(ctx context.Context, request *lark.AddBotToChatReq, options ...lark.MethodOptionFunc) (*lark.AddBotToChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -68,6 +72,7 @@ func Test_Bot_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -78,15 +83,18 @@ func Test_Bot_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetBotInfo(ctx, &lark.GetBotInfoReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AddBotToChat(ctx, &lark.AddBotToChatReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/calendar_sample_test.go b/test/calendar_sample_test.go index 1ce8a814..a39504bf 100644 --- a/test/calendar_sample_test.go +++ b/test/calendar_sample_test.go @@ -37,488 +37,54 @@ func Test_Calendar_Sample_Failed(t *testing.T) { moduleCli := cli.Calendar t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Calendar - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarACL(func(ctx context.Context, request *lark.CreateCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarACLResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendarACL() - - _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarACL(func(ctx context.Context, request *lark.DeleteCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarACLResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendarACL() - - _, _, err := moduleCli.DeleteCalendarACL(ctx, &lark.DeleteCalendarACLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarACLList(func(ctx context.Context, request *lark.GetCalendarACLListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarACLListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarACLList() - - _, _, err := moduleCli.GetCalendarACLList(ctx, &lark.GetCalendarACLListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSubscribeCalendarACL(func(ctx context.Context, request *lark.SubscribeCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarACLResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSubscribeCalendarACL() - - _, _, err := moduleCli.SubscribeCalendarACL(ctx, &lark.SubscribeCalendarACLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUnsubscribeCalendarACL(func(ctx context.Context, request *lark.UnsubscribeCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarACLResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUnsubscribeCalendarACL() - - _, _, err := moduleCli.UnsubscribeCalendarACL(ctx, &lark.UnsubscribeCalendarACLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetPrimaryCalendar(func(ctx context.Context, request *lark.GetPrimaryCalendarReq, options ...lark.MethodOptionFunc) (*lark.GetPrimaryCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetPrimaryCalendar() - - _, _, err := moduleCli.GetPrimaryCalendar(ctx, &lark.GetPrimaryCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendar(func(ctx context.Context, request *lark.CreateCalendarReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendar() - - _, _, err := moduleCli.CreateCalendar(ctx, &lark.CreateCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendar(func(ctx context.Context, request *lark.DeleteCalendarReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendar() - - _, _, err := moduleCli.DeleteCalendar(ctx, &lark.DeleteCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendar(func(ctx context.Context, request *lark.GetCalendarReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendar() - - _, _, err := moduleCli.GetCalendar(ctx, &lark.GetCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarList(func(ctx context.Context, request *lark.GetCalendarListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarList() - - _, _, err := moduleCli.GetCalendarList(ctx, &lark.GetCalendarListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUpdateCalendar(func(ctx context.Context, request *lark.UpdateCalendarReq, options ...lark.MethodOptionFunc) (*lark.UpdateCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUpdateCalendar() - - _, _, err := moduleCli.UpdateCalendar(ctx, &lark.UpdateCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSearchCalendar(func(ctx context.Context, request *lark.SearchCalendarReq, options ...lark.MethodOptionFunc) (*lark.SearchCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSearchCalendar() - - _, _, err := moduleCli.SearchCalendar(ctx, &lark.SearchCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSubscribeCalendar(func(ctx context.Context, request *lark.SubscribeCalendarReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSubscribeCalendar() - - _, _, err := moduleCli.SubscribeCalendar(ctx, &lark.SubscribeCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUnsubscribeCalendar(func(ctx context.Context, request *lark.UnsubscribeCalendarReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUnsubscribeCalendar() - - _, _, err := moduleCli.UnsubscribeCalendar(ctx, &lark.UnsubscribeCalendarReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSubscribeCalendarChangeEvent(func(ctx context.Context, request *lark.SubscribeCalendarChangeEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarChangeEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSubscribeCalendarChangeEvent() - - _, _, err := moduleCli.SubscribeCalendarChangeEvent(ctx, &lark.SubscribeCalendarChangeEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUnsubscribeCalendarChangeEvent(func(ctx context.Context, request *lark.UnsubscribeCalendarChangeEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarChangeEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUnsubscribeCalendarChangeEvent() - - _, _, err := moduleCli.UnsubscribeCalendarChangeEvent(ctx, &lark.UnsubscribeCalendarChangeEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarEvent(func(ctx context.Context, request *lark.CreateCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendarEvent() - - _, _, err := moduleCli.CreateCalendarEvent(ctx, &lark.CreateCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarEvent(func(ctx context.Context, request *lark.DeleteCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendarEvent() - - _, _, err := moduleCli.DeleteCalendarEvent(ctx, &lark.DeleteCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEvent(func(ctx context.Context, request *lark.GetCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEvent() - - _, _, err := moduleCli.GetCalendarEvent(ctx, &lark.GetCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEventList(func(ctx context.Context, request *lark.GetCalendarEventListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEventList() - - _, _, err := moduleCli.GetCalendarEventList(ctx, &lark.GetCalendarEventListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUpdateCalendarEvent(func(ctx context.Context, request *lark.UpdateCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.UpdateCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUpdateCalendarEvent() - - _, _, err := moduleCli.UpdateCalendarEvent(ctx, &lark.UpdateCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSearchCalendarEvent(func(ctx context.Context, request *lark.SearchCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.SearchCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSearchCalendarEvent() - - _, _, err := moduleCli.SearchCalendarEvent(ctx, &lark.SearchCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarSubscribeCalendarEvent(func(ctx context.Context, request *lark.SubscribeCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarSubscribeCalendarEvent() - - _, _, err := moduleCli.SubscribeCalendarEvent(ctx, &lark.SubscribeCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarUnsubscribeCalendarEvent(func(ctx context.Context, request *lark.UnsubscribeCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarUnsubscribeCalendarEvent() - - _, _, err := moduleCli.UnsubscribeCalendarEvent(ctx, &lark.UnsubscribeCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarReplyCalendarEvent(func(ctx context.Context, request *lark.ReplyCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarReplyCalendarEvent() - - _, _, err := moduleCli.ReplyCalendarEvent(ctx, &lark.ReplyCalendarEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEventInstanceList(func(ctx context.Context, request *lark.GetCalendarEventInstanceListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventInstanceListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEventInstanceList() - - _, _, err := moduleCli.GetCalendarEventInstanceList(ctx, &lark.GetCalendarEventInstanceListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEventInstanceViewList(func(ctx context.Context, request *lark.GetCalendarEventInstanceViewListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventInstanceViewListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEventInstanceViewList() - - _, _, err := moduleCli.GetCalendarEventInstanceViewList(ctx, &lark.GetCalendarEventInstanceViewListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarEventMeetingChat(func(ctx context.Context, request *lark.DeleteCalendarEventMeetingChatReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventMeetingChatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendarEventMeetingChat() - - _, _, err := moduleCli.DeleteCalendarEventMeetingChat(ctx, &lark.DeleteCalendarEventMeetingChatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarEventMeetingChat(func(ctx context.Context, request *lark.CreateCalendarEventMeetingChatReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventMeetingChatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendarEventMeetingChat() - - _, _, err := moduleCli.CreateCalendarEventMeetingChat(ctx, &lark.CreateCalendarEventMeetingChatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarTimeoffEvent(func(ctx context.Context, request *lark.CreateCalendarTimeoffEventReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarTimeoffEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendarTimeoffEvent() - - _, _, err := moduleCli.CreateCalendarTimeoffEvent(ctx, &lark.CreateCalendarTimeoffEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarTimeoffEvent(func(ctx context.Context, request *lark.DeleteCalendarTimeoffEventReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarTimeoffEventResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendarTimeoffEvent() - - _, _, err := moduleCli.DeleteCalendarTimeoffEvent(ctx, &lark.DeleteCalendarTimeoffEventReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarBatchGetCalendarMeetingRoomSummary(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomSummaryReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomSummaryResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomSummary() - - _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarBatchGetCalendarMeetingRoomFreebusy(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomFreebusyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomFreebusyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() - - _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarReplyCalendarMeetingRoomInstance(func(ctx context.Context, request *lark.ReplyCalendarMeetingRoomInstanceReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarMeetingRoomInstanceResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarReplyCalendarMeetingRoomInstance() - - _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarEventAttendee(func(ctx context.Context, request *lark.CreateCalendarEventAttendeeReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventAttendeeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarCreateCalendarEventAttendee() - - _, _, err := moduleCli.CreateCalendarEventAttendee(ctx, &lark.CreateCalendarEventAttendeeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarEventAttendee(func(ctx context.Context, request *lark.DeleteCalendarEventAttendeeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventAttendeeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarDeleteCalendarEventAttendee() - - _, _, err := moduleCli.DeleteCalendarEventAttendee(ctx, &lark.DeleteCalendarEventAttendeeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEventAttendeeList(func(ctx context.Context, request *lark.GetCalendarEventAttendeeListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventAttendeeListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEventAttendeeList() - - _, _, err := moduleCli.GetCalendarEventAttendeeList(ctx, &lark.GetCalendarEventAttendeeListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarEventAttendeeChatMemberList(func(ctx context.Context, request *lark.GetCalendarEventAttendeeChatMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventAttendeeChatMemberListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarEventAttendeeChatMemberList() - - _, _, err := moduleCli.GetCalendarEventAttendeeChatMemberList(ctx, &lark.GetCalendarEventAttendeeChatMemberListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarFreeBusyList(func(ctx context.Context, request *lark.GetCalendarFreeBusyListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarFreeBusyListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGetCalendarFreeBusyList() - _, _, err := moduleCli.GetCalendarFreeBusyList(ctx, &lark.GetCalendarFreeBusyListReq{}) + _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal(err.Error(), "failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGenerateCaldavConf(func(ctx context.Context, request *lark.GenerateCaldavConfReq, options ...lark.MethodOptionFunc) (*lark.GenerateCaldavConfResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCalendarGenerateCaldavConf() + }) - _, _, err := moduleCli.GenerateCaldavConf(ctx, &lark.GenerateCaldavConfReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Calendar t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarCreateCalendarExchangeBinding(func(ctx context.Context, request *lark.CreateCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarExchangeBindingResp, *lark.Response, error) { + + cli.Mock().MockCalendarBatchGetCalendarMeetingRoomFreebusy(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomFreebusyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomFreebusyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarCreateCalendarExchangeBinding() + defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() - _, _, err := moduleCli.CreateCalendarExchangeBinding(ctx, &lark.CreateCalendarExchangeBindingReq{}) + _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarDeleteCalendarExchangeBinding(func(ctx context.Context, request *lark.DeleteCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarExchangeBindingResp, *lark.Response, error) { + + cli.Mock().MockCalendarBatchGetCalendarMeetingRoomSummary(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomSummaryReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomSummaryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarDeleteCalendarExchangeBinding() + defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomSummary() - _, _, err := moduleCli.DeleteCalendarExchangeBinding(ctx, &lark.DeleteCalendarExchangeBindingReq{}) + _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarGetCalendarExchangeBinding(func(ctx context.Context, request *lark.GetCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarExchangeBindingResp, *lark.Response, error) { + + cli.Mock().MockCalendarReplyCalendarMeetingRoomInstance(func(ctx context.Context, request *lark.ReplyCalendarMeetingRoomInstanceReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarMeetingRoomInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarGetCalendarExchangeBinding() + defer cli.Mock().UnMockCalendarReplyCalendarMeetingRoomInstance() - _, _, err := moduleCli.GetCalendarExchangeBinding(ctx, &lark.GetCalendarExchangeBindingReq{}) + _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -529,334 +95,25 @@ func Test_Calendar_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarACL(ctx, &lark.DeleteCalendarACLReq{ - CalendarID: "x", - ACLID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarACLList(ctx, &lark.GetCalendarACLListReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeCalendarACL(ctx, &lark.SubscribeCalendarACLReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeCalendarACL(ctx, &lark.UnsubscribeCalendarACLReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetPrimaryCalendar(ctx, &lark.GetPrimaryCalendarReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendar(ctx, &lark.CreateCalendarReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendar(ctx, &lark.DeleteCalendarReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendar(ctx, &lark.GetCalendarReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarList(ctx, &lark.GetCalendarListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCalendar(ctx, &lark.UpdateCalendarReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCalendar(ctx, &lark.SearchCalendarReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeCalendar(ctx, &lark.SubscribeCalendarReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeCalendar(ctx, &lark.UnsubscribeCalendarReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeCalendarChangeEvent(ctx, &lark.SubscribeCalendarChangeEventReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeCalendarChangeEvent(ctx, &lark.UnsubscribeCalendarChangeEventReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarEvent(ctx, &lark.CreateCalendarEventReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarEvent(ctx, &lark.DeleteCalendarEventReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEvent(ctx, &lark.GetCalendarEventReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEventList(ctx, &lark.GetCalendarEventListReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCalendarEvent(ctx, &lark.UpdateCalendarEventReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCalendarEvent(ctx, &lark.SearchCalendarEventReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeCalendarEvent(ctx, &lark.SubscribeCalendarEventReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeCalendarEvent(ctx, &lark.UnsubscribeCalendarEventReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ReplyCalendarEvent(ctx, &lark.ReplyCalendarEventReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEventInstanceList(ctx, &lark.GetCalendarEventInstanceListReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEventInstanceViewList(ctx, &lark.GetCalendarEventInstanceViewListReq{ - CalendarID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarEventMeetingChat(ctx, &lark.DeleteCalendarEventMeetingChatReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarEventMeetingChat(ctx, &lark.CreateCalendarEventMeetingChatReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarTimeoffEvent(ctx, &lark.CreateCalendarTimeoffEventReq{}) + _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarTimeoffEvent(ctx, &lark.DeleteCalendarTimeoffEventReq{ - TimeoffEventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarEventAttendee(ctx, &lark.CreateCalendarEventAttendeeReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarEventAttendee(ctx, &lark.DeleteCalendarEventAttendeeReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEventAttendeeList(ctx, &lark.GetCalendarEventAttendeeListReq{ - CalendarID: "x", - EventID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarEventAttendeeChatMemberList(ctx, &lark.GetCalendarEventAttendeeChatMemberListReq{ - CalendarID: "x", - EventID: "x", - AttendeeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarFreeBusyList(ctx, &lark.GetCalendarFreeBusyListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GenerateCaldavConf(ctx, &lark.GenerateCaldavConfReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCalendarExchangeBinding(ctx, &lark.CreateCalendarExchangeBindingReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCalendarExchangeBinding(ctx, &lark.DeleteCalendarExchangeBindingReq{ - ExchangeBindingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCalendarExchangeBinding(ctx, &lark.GetCalendarExchangeBindingReq{ - ExchangeBindingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/cardkit_sample_test.go b/test/cardkit_sample_test.go new file mode 100644 index 00000000..66b283bf --- /dev/null +++ b/test/cardkit_sample_test.go @@ -0,0 +1,272 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Cardkit_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Cardkit + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCardElementContent(ctx, &lark.UpdateCardkitCardElementContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Cardkit + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitUpdateCardkitCardElementContent(func(ctx context.Context, request *lark.UpdateCardkitCardElementContentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCardkitCardElementContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitUpdateCardkitCardElementContent() + + _, _, err := moduleCli.UpdateCardkitCardElementContent(ctx, &lark.UpdateCardkitCardElementContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitCreateCardkitCardElement(func(ctx context.Context, request *lark.CreateCardkitCardElementReq, options ...lark.MethodOptionFunc) (*lark.CreateCardkitCardElementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitCreateCardkitCardElement() + + _, _, err := moduleCli.CreateCardkitCardElement(ctx, &lark.CreateCardkitCardElementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitDeleteCardkitCardElement(func(ctx context.Context, request *lark.DeleteCardkitCardElementReq, options ...lark.MethodOptionFunc) (*lark.DeleteCardkitCardElementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitDeleteCardkitCardElement() + + _, _, err := moduleCli.DeleteCardkitCardElement(ctx, &lark.DeleteCardkitCardElementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitUpdateCardkitCardElement(func(ctx context.Context, request *lark.UpdateCardkitCardElementReq, options ...lark.MethodOptionFunc) (*lark.UpdateCardkitCardElementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitUpdateCardkitCardElement() + + _, _, err := moduleCli.UpdateCardkitCardElement(ctx, &lark.UpdateCardkitCardElementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitUpdateCardkitCardElementV1(func(ctx context.Context, request *lark.UpdateCardkitCardElementV1Req, options ...lark.MethodOptionFunc) (*lark.UpdateCardkitCardElementV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitUpdateCardkitCardElementV1() + + _, _, err := moduleCli.UpdateCardkitCardElementV1(ctx, &lark.UpdateCardkitCardElementV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitBatchUpdateCardkitCard(func(ctx context.Context, request *lark.BatchUpdateCardkitCardReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateCardkitCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitBatchUpdateCardkitCard() + + _, _, err := moduleCli.BatchUpdateCardkitCard(ctx, &lark.BatchUpdateCardkitCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitCreateCardkitCard(func(ctx context.Context, request *lark.CreateCardkitCardReq, options ...lark.MethodOptionFunc) (*lark.CreateCardkitCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitCreateCardkitCard() + + _, _, err := moduleCli.CreateCardkitCard(ctx, &lark.CreateCardkitCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitCreateCardkitCardIDConvert(func(ctx context.Context, request *lark.CreateCardkitCardIDConvertReq, options ...lark.MethodOptionFunc) (*lark.CreateCardkitCardIDConvertResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitCreateCardkitCardIDConvert() + + _, _, err := moduleCli.CreateCardkitCardIDConvert(ctx, &lark.CreateCardkitCardIDConvertReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitUpdateCardkitCardSettings(func(ctx context.Context, request *lark.UpdateCardkitCardSettingsReq, options ...lark.MethodOptionFunc) (*lark.UpdateCardkitCardSettingsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitUpdateCardkitCardSettings() + + _, _, err := moduleCli.UpdateCardkitCardSettings(ctx, &lark.UpdateCardkitCardSettingsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCardkitUpdateCardkitCard(func(ctx context.Context, request *lark.UpdateCardkitCardReq, options ...lark.MethodOptionFunc) (*lark.UpdateCardkitCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCardkitUpdateCardkitCard() + + _, _, err := moduleCli.UpdateCardkitCard(ctx, &lark.UpdateCardkitCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Cardkit + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCardElementContent(ctx, &lark.UpdateCardkitCardElementContentReq{ + CardID: "x", + ElementID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCardkitCardElement(ctx, &lark.CreateCardkitCardElementReq{ + CardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCardkitCardElement(ctx, &lark.DeleteCardkitCardElementReq{ + CardID: "x", + ElementID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCardElement(ctx, &lark.UpdateCardkitCardElementReq{ + CardID: "x", + ElementID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCardElementV1(ctx, &lark.UpdateCardkitCardElementV1Req{ + CardID: "x", + ElementID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateCardkitCard(ctx, &lark.BatchUpdateCardkitCardReq{ + CardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCardkitCard(ctx, &lark.CreateCardkitCardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCardkitCardIDConvert(ctx, &lark.CreateCardkitCardIDConvertReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCardSettings(ctx, &lark.UpdateCardkitCardSettingsReq{ + CardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCardkitCard(ctx, &lark.UpdateCardkitCardReq{ + CardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/ccmdocs_sample_test.go b/test/ccmdocs_sample_test.go new file mode 100644 index 00000000..486c619a --- /dev/null +++ b/test/ccmdocs_sample_test.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_CcmDocs_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.CcmDocs + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.CcmDocs + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCcmDocsCreateCcmDocsDefaultDocsApiMeta(func(ctx context.Context, request *lark.CreateCcmDocsDefaultDocsApiMetaReq, options ...lark.MethodOptionFunc) (*lark.CreateCcmDocsDefaultDocsApiMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta() + + _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.CcmDocs + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/chat_sample_test.go b/test/chat_sample_test.go index fa5e9c68..9ebe9aaa 100644 --- a/test/chat_sample_test.go +++ b/test/chat_sample_test.go @@ -37,10 +37,12 @@ func Test_Chat_Sample_Failed(t *testing.T) { moduleCli := cli.Chat t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateChat(ctx, &lark.CreateChatReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { moduleCli := cli.Chat t.Run("", func(t *testing.T) { + cli.Mock().MockChatCreateChat(func(ctx context.Context, request *lark.CreateChatReq, options ...lark.MethodOptionFunc) (*lark.CreateChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChat(func(ctx context.Context, request *lark.GetChatReq, options ...lark.MethodOptionFunc) (*lark.GetChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatOld(func(ctx context.Context, request *lark.GetChatOldReq, options ...lark.MethodOptionFunc) (*lark.GetChatOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChat(func(ctx context.Context, request *lark.UpdateChatReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChat(func(ctx context.Context, request *lark.DeleteChatReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatListOfSelf(func(ctx context.Context, request *lark.GetChatListOfSelfReq, options ...lark.MethodOptionFunc) (*lark.GetChatListOfSelfResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatSearchChat(func(ctx context.Context, request *lark.SearchChatReq, options ...lark.MethodOptionFunc) (*lark.SearchChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatMemberList(func(ctx context.Context, request *lark.GetChatMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetChatMemberListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatIsInChat(func(ctx context.Context, request *lark.IsInChatReq, options ...lark.MethodOptionFunc) (*lark.IsInChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatCreateChatManager(func(ctx context.Context, request *lark.CreateChatManagerReq, options ...lark.MethodOptionFunc) (*lark.CreateChatManagerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChatManager(func(ctx context.Context, request *lark.DeleteChatManagerReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatManagerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatAddChatMember(func(ctx context.Context, request *lark.AddChatMemberReq, options ...lark.MethodOptionFunc) (*lark.AddChatMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChatMember(func(ctx context.Context, request *lark.DeleteChatMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatJoinChat(func(ctx context.Context, request *lark.JoinChatReq, options ...lark.MethodOptionFunc) (*lark.JoinChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatModeration(func(ctx context.Context, request *lark.GetChatModerationReq, options ...lark.MethodOptionFunc) (*lark.GetChatModerationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChatModeration(func(ctx context.Context, request *lark.UpdateChatModerationReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatModerationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChatTopNotice(func(ctx context.Context, request *lark.UpdateChatTopNoticeReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatTopNoticeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChatTopNotice(func(ctx context.Context, request *lark.DeleteChatTopNoticeReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatTopNoticeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGenChatShareLink(func(ctx context.Context, request *lark.GenChatShareLinkReq, options ...lark.MethodOptionFunc) (*lark.GenChatShareLinkResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatAnnouncement(func(ctx context.Context, request *lark.GetChatAnnouncementReq, options ...lark.MethodOptionFunc) (*lark.GetChatAnnouncementResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChatAnnouncement(func(ctx context.Context, request *lark.UpdateChatAnnouncementReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatAnnouncementResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatCreateChatTab(func(ctx context.Context, request *lark.CreateChatTabReq, options ...lark.MethodOptionFunc) (*lark.CreateChatTabResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChatTab(func(ctx context.Context, request *lark.DeleteChatTabReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatTabResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatTabList(func(ctx context.Context, request *lark.GetChatTabListReq, options ...lark.MethodOptionFunc) (*lark.GetChatTabListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChatTab(func(ctx context.Context, request *lark.UpdateChatTabReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatTabResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatSortChatTab(func(ctx context.Context, request *lark.SortChatTabReq, options ...lark.MethodOptionFunc) (*lark.SortChatTabResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatCreateChatMenuTree(func(ctx context.Context, request *lark.CreateChatMenuTreeReq, options ...lark.MethodOptionFunc) (*lark.CreateChatMenuTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatDeleteChatMenuTree(func(ctx context.Context, request *lark.DeleteChatMenuTreeReq, options ...lark.MethodOptionFunc) (*lark.DeleteChatMenuTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatUpdateChatMenuTree(func(ctx context.Context, request *lark.UpdateChatMenuTreeReq, options ...lark.MethodOptionFunc) (*lark.UpdateChatMenuTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatSortChatMenuTree(func(ctx context.Context, request *lark.SortChatMenuTreeReq, options ...lark.MethodOptionFunc) (*lark.SortChatMenuTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockChatGetChatMenuTree(func(ctx context.Context, request *lark.GetChatMenuTreeReq, options ...lark.MethodOptionFunc) (*lark.GetChatMenuTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -387,6 +420,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -397,12 +431,14 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateChat(ctx, &lark.CreateChatReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChat(ctx, &lark.GetChatReq{ ChatID: "x", }) @@ -411,12 +447,14 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatOld(ctx, &lark.GetChatOldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChat(ctx, &lark.UpdateChatReq{ ChatID: "x", }) @@ -425,6 +463,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChat(ctx, &lark.DeleteChatReq{ ChatID: "x", }) @@ -433,18 +472,21 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatListOfSelf(ctx, &lark.GetChatListOfSelfReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchChat(ctx, &lark.SearchChatReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatMemberList(ctx, &lark.GetChatMemberListReq{ ChatID: "x", }) @@ -453,6 +495,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.IsInChat(ctx, &lark.IsInChatReq{ ChatID: "x", }) @@ -461,6 +504,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateChatManager(ctx, &lark.CreateChatManagerReq{ ChatID: "x", }) @@ -469,6 +513,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChatManager(ctx, &lark.DeleteChatManagerReq{ ChatID: "x", }) @@ -477,6 +522,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AddChatMember(ctx, &lark.AddChatMemberReq{ ChatID: "x", }) @@ -485,6 +531,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChatMember(ctx, &lark.DeleteChatMemberReq{ ChatID: "x", }) @@ -493,6 +540,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.JoinChat(ctx, &lark.JoinChatReq{ ChatID: "x", }) @@ -501,6 +549,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatModeration(ctx, &lark.GetChatModerationReq{ ChatID: "x", }) @@ -509,6 +558,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChatModeration(ctx, &lark.UpdateChatModerationReq{ ChatID: "x", }) @@ -517,6 +567,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChatTopNotice(ctx, &lark.UpdateChatTopNoticeReq{ ChatID: "x", }) @@ -525,6 +576,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChatTopNotice(ctx, &lark.DeleteChatTopNoticeReq{ ChatID: "x", }) @@ -533,6 +585,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GenChatShareLink(ctx, &lark.GenChatShareLinkReq{ ChatID: "x", }) @@ -541,6 +594,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatAnnouncement(ctx, &lark.GetChatAnnouncementReq{ ChatID: "x", }) @@ -549,6 +603,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChatAnnouncement(ctx, &lark.UpdateChatAnnouncementReq{ ChatID: "x", }) @@ -557,6 +612,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateChatTab(ctx, &lark.CreateChatTabReq{ ChatID: "x", }) @@ -565,6 +621,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChatTab(ctx, &lark.DeleteChatTabReq{ ChatID: "x", }) @@ -573,6 +630,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatTabList(ctx, &lark.GetChatTabListReq{ ChatID: "x", }) @@ -581,6 +639,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChatTab(ctx, &lark.UpdateChatTabReq{ ChatID: "x", }) @@ -589,6 +648,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SortChatTab(ctx, &lark.SortChatTabReq{ ChatID: "x", }) @@ -597,6 +657,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateChatMenuTree(ctx, &lark.CreateChatMenuTreeReq{ ChatID: "x", }) @@ -605,6 +666,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteChatMenuTree(ctx, &lark.DeleteChatMenuTreeReq{ ChatID: "x", }) @@ -613,6 +675,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateChatMenuTree(ctx, &lark.UpdateChatMenuTreeReq{ ChatID: "x", MenuItemID: "x", @@ -622,6 +685,7 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SortChatMenuTree(ctx, &lark.SortChatMenuTreeReq{ ChatID: "x", }) @@ -630,11 +694,13 @@ func Test_Chat_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetChatMenuTree(ctx, &lark.GetChatMenuTreeReq{ ChatID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/compensation_sample_test.go b/test/compensation_sample_test.go new file mode 100644 index 00000000..3d0b5436 --- /dev/null +++ b/test/compensation_sample_test.go @@ -0,0 +1,347 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Compensation_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Compensation + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCompensationArchive(ctx, &lark.CreateCompensationArchiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Compensation + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationCreateCompensationArchive(func(ctx context.Context, request *lark.CreateCompensationArchiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCompensationArchiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationCreateCompensationArchive() + + _, _, err := moduleCli.CreateCompensationArchive(ctx, &lark.CreateCompensationArchiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchCreateCompensationLumpSumPayment(func(ctx context.Context, request *lark.BatchCreateCompensationLumpSumPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateCompensationLumpSumPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchCreateCompensationLumpSumPayment() + + _, _, err := moduleCli.BatchCreateCompensationLumpSumPayment(ctx, &lark.BatchCreateCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchRemoveCompensationLumpSumPayment(func(ctx context.Context, request *lark.BatchRemoveCompensationLumpSumPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchRemoveCompensationLumpSumPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchRemoveCompensationLumpSumPayment() + + _, _, err := moduleCli.BatchRemoveCompensationLumpSumPayment(ctx, &lark.BatchRemoveCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchUpdateCompensationLumpSumPayment(func(ctx context.Context, request *lark.BatchUpdateCompensationLumpSumPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateCompensationLumpSumPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchUpdateCompensationLumpSumPayment() + + _, _, err := moduleCli.BatchUpdateCompensationLumpSumPayment(ctx, &lark.BatchUpdateCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationLumpSumPayment(func(ctx context.Context, request *lark.QueryCompensationLumpSumPaymentReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationLumpSumPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationLumpSumPayment() + + _, _, err := moduleCli.QueryCompensationLumpSumPayment(ctx, &lark.QueryCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationLumpSumPaymentDetail(func(ctx context.Context, request *lark.QueryCompensationLumpSumPaymentDetailReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationLumpSumPaymentDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationLumpSumPaymentDetail() + + _, _, err := moduleCli.QueryCompensationLumpSumPaymentDetail(ctx, &lark.QueryCompensationLumpSumPaymentDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchCreateCompensationRecurringPayment(func(ctx context.Context, request *lark.BatchCreateCompensationRecurringPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateCompensationRecurringPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchCreateCompensationRecurringPayment() + + _, _, err := moduleCli.BatchCreateCompensationRecurringPayment(ctx, &lark.BatchCreateCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchRemoveCompensationRecurringPayment(func(ctx context.Context, request *lark.BatchRemoveCompensationRecurringPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchRemoveCompensationRecurringPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchRemoveCompensationRecurringPayment() + + _, _, err := moduleCli.BatchRemoveCompensationRecurringPayment(ctx, &lark.BatchRemoveCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationBatchUpdateCompensationRecurringPayment(func(ctx context.Context, request *lark.BatchUpdateCompensationRecurringPaymentReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateCompensationRecurringPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationBatchUpdateCompensationRecurringPayment() + + _, _, err := moduleCli.BatchUpdateCompensationRecurringPayment(ctx, &lark.BatchUpdateCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationRecurringPayment(func(ctx context.Context, request *lark.QueryCompensationRecurringPaymentReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationRecurringPaymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationRecurringPayment() + + _, _, err := moduleCli.QueryCompensationRecurringPayment(ctx, &lark.QueryCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationSocialArchive(func(ctx context.Context, request *lark.QueryCompensationSocialArchiveReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationSocialArchiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationSocialArchive() + + _, _, err := moduleCli.QueryCompensationSocialArchive(ctx, &lark.QueryCompensationSocialArchiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationSocialArchiveAdjustRecord(func(ctx context.Context, request *lark.QueryCompensationSocialArchiveAdjustRecordReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationSocialArchiveAdjustRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationSocialArchiveAdjustRecord() + + _, _, err := moduleCli.QueryCompensationSocialArchiveAdjustRecord(ctx, &lark.QueryCompensationSocialArchiveAdjustRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationListCompensationSocialInsurance(func(ctx context.Context, request *lark.ListCompensationSocialInsuranceReq, options ...lark.MethodOptionFunc) (*lark.ListCompensationSocialInsuranceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationListCompensationSocialInsurance() + + _, _, err := moduleCli.ListCompensationSocialInsurance(ctx, &lark.ListCompensationSocialInsuranceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationListCompensationSocialPlan(func(ctx context.Context, request *lark.ListCompensationSocialPlanReq, options ...lark.MethodOptionFunc) (*lark.ListCompensationSocialPlanResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationListCompensationSocialPlan() + + _, _, err := moduleCli.ListCompensationSocialPlan(ctx, &lark.ListCompensationSocialPlanReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCompensationQueryCompensationSocialPlan(func(ctx context.Context, request *lark.QueryCompensationSocialPlanReq, options ...lark.MethodOptionFunc) (*lark.QueryCompensationSocialPlanResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCompensationQueryCompensationSocialPlan() + + _, _, err := moduleCli.QueryCompensationSocialPlan(ctx, &lark.QueryCompensationSocialPlanReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Compensation + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCompensationArchive(ctx, &lark.CreateCompensationArchiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateCompensationLumpSumPayment(ctx, &lark.BatchCreateCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchRemoveCompensationLumpSumPayment(ctx, &lark.BatchRemoveCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateCompensationLumpSumPayment(ctx, &lark.BatchUpdateCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationLumpSumPayment(ctx, &lark.QueryCompensationLumpSumPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationLumpSumPaymentDetail(ctx, &lark.QueryCompensationLumpSumPaymentDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateCompensationRecurringPayment(ctx, &lark.BatchCreateCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchRemoveCompensationRecurringPayment(ctx, &lark.BatchRemoveCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateCompensationRecurringPayment(ctx, &lark.BatchUpdateCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationRecurringPayment(ctx, &lark.QueryCompensationRecurringPaymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationSocialArchive(ctx, &lark.QueryCompensationSocialArchiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationSocialArchiveAdjustRecord(ctx, &lark.QueryCompensationSocialArchiveAdjustRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCompensationSocialInsurance(ctx, &lark.ListCompensationSocialInsuranceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCompensationSocialPlan(ctx, &lark.ListCompensationSocialPlanReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCompensationSocialPlan(ctx, &lark.QueryCompensationSocialPlanReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/contact_sample_test.go b/test/contact_sample_test.go index 25d33fbd..c9d91f1e 100644 --- a/test/contact_sample_test.go +++ b/test/contact_sample_test.go @@ -37,10 +37,12 @@ func Test_Contact_Sample_Failed(t *testing.T) { moduleCli := cli.Contact t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateUser(ctx, &lark.CreateUserReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { moduleCli := cli.Contact t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateUser(func(ctx context.Context, request *lark.CreateUserReq, options ...lark.MethodOptionFunc) (*lark.CreateUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteUser(func(ctx context.Context, request *lark.DeleteUserReq, options ...lark.MethodOptionFunc) (*lark.DeleteUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactResurrectUser(func(ctx context.Context, request *lark.ResurrectUserReq, options ...lark.MethodOptionFunc) (*lark.ResurrectUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetUser(func(ctx context.Context, request *lark.GetUserReq, options ...lark.MethodOptionFunc) (*lark.GetUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchGetUser(func(ctx context.Context, request *lark.BatchGetUserReq, options ...lark.MethodOptionFunc) (*lark.BatchGetUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetUserList(func(ctx context.Context, request *lark.GetUserListReq, options ...lark.MethodOptionFunc) (*lark.GetUserListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetUserListOld(func(ctx context.Context, request *lark.GetUserListOldReq, options ...lark.MethodOptionFunc) (*lark.GetUserListOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateUserPatch(func(ctx context.Context, request *lark.UpdateUserPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserPatchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateUser(func(ctx context.Context, request *lark.UpdateUserReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchGetUserByID(func(ctx context.Context, request *lark.BatchGetUserByIDReq, options ...lark.MethodOptionFunc) (*lark.BatchGetUserByIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchGetUserByIDOld(func(ctx context.Context, request *lark.BatchGetUserByIDOldReq, options ...lark.MethodOptionFunc) (*lark.BatchGetUserByIDOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactSearchUserOld(func(ctx context.Context, request *lark.SearchUserOldReq, options ...lark.MethodOptionFunc) (*lark.SearchUserOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateUserID(func(ctx context.Context, request *lark.UpdateUserIDReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateDepartment(func(ctx context.Context, request *lark.CreateDepartmentReq, options ...lark.MethodOptionFunc) (*lark.CreateDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetDepartment(func(ctx context.Context, request *lark.GetDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchGetDepartment(func(ctx context.Context, request *lark.BatchGetDepartmentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetDepartmentList(func(ctx context.Context, request *lark.GetDepartmentListReq, options ...lark.MethodOptionFunc) (*lark.GetDepartmentListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateDepartmentPatch(func(ctx context.Context, request *lark.UpdateDepartmentPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateDepartmentPatchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateDepartment(func(ctx context.Context, request *lark.UpdateDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetDepartmentListOld(func(ctx context.Context, request *lark.GetDepartmentListOldReq, options ...lark.MethodOptionFunc) (*lark.GetDepartmentListOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetParentDepartment(func(ctx context.Context, request *lark.GetParentDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetParentDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactSearchDepartment(func(ctx context.Context, request *lark.SearchDepartmentReq, options ...lark.MethodOptionFunc) (*lark.SearchDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateDepartmentID(func(ctx context.Context, request *lark.UpdateDepartmentIDReq, options ...lark.MethodOptionFunc) (*lark.UpdateDepartmentIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteDepartment(func(ctx context.Context, request *lark.DeleteDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUnbindDepartmentChat(func(ctx context.Context, request *lark.UnbindDepartmentChatReq, options ...lark.MethodOptionFunc) (*lark.UnbindDepartmentChatResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateContactGroup(func(ctx context.Context, request *lark.CreateContactGroupReq, options ...lark.MethodOptionFunc) (*lark.CreateContactGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactGroup(func(ctx context.Context, request *lark.UpdateContactGroupReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactGroup(func(ctx context.Context, request *lark.DeleteContactGroupReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactGroup(func(ctx context.Context, request *lark.GetContactGroupReq, options ...lark.MethodOptionFunc) (*lark.GetContactGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactGroupList(func(ctx context.Context, request *lark.GetContactGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetContactGroupListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactMemberGroupList(func(ctx context.Context, request *lark.GetContactMemberGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetContactMemberGroupListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactAddContactGroupMember(func(ctx context.Context, request *lark.AddContactGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.AddContactGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchAddContactGroupMember(func(ctx context.Context, request *lark.BatchAddContactGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchAddContactGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactGroupMember(func(ctx context.Context, request *lark.DeleteContactGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -422,6 +458,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchDeleteContactGroupMember(func(ctx context.Context, request *lark.BatchDeleteContactGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteContactGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -433,6 +470,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactGroupMember(func(ctx context.Context, request *lark.GetContactGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.GetContactGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -444,6 +482,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateContactFunctionalRole(func(ctx context.Context, request *lark.CreateContactFunctionalRoleReq, options ...lark.MethodOptionFunc) (*lark.CreateContactFunctionalRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -455,6 +494,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactFunctionalRole(func(ctx context.Context, request *lark.DeleteContactFunctionalRoleReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactFunctionalRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -466,6 +506,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactFunctionalRole(func(ctx context.Context, request *lark.UpdateContactFunctionalRoleReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactFunctionalRoleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -477,6 +518,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchCreateContactFunctionalRoleMember(func(ctx context.Context, request *lark.BatchCreateContactFunctionalRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateContactFunctionalRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -488,6 +530,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBatchDeleteContactFunctionalRoleMember(func(ctx context.Context, request *lark.BatchDeleteContactFunctionalRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteContactFunctionalRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -499,6 +542,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactFunctionalRoleMemberScope(func(ctx context.Context, request *lark.UpdateContactFunctionalRoleMemberScopeReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactFunctionalRoleMemberScopeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -510,6 +554,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactFunctionalRoleMemberScope(func(ctx context.Context, request *lark.GetContactFunctionalRoleMemberScopeReq, options ...lark.MethodOptionFunc) (*lark.GetContactFunctionalRoleMemberScopeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -521,6 +566,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactFunctionalRoleMember(func(ctx context.Context, request *lark.GetContactFunctionalRoleMemberReq, options ...lark.MethodOptionFunc) (*lark.GetContactFunctionalRoleMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -532,6 +578,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateContactJobLevel(func(ctx context.Context, request *lark.CreateContactJobLevelReq, options ...lark.MethodOptionFunc) (*lark.CreateContactJobLevelResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -543,6 +590,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactJobLevel(func(ctx context.Context, request *lark.DeleteContactJobLevelReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactJobLevelResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -554,6 +602,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactJobLevel(func(ctx context.Context, request *lark.UpdateContactJobLevelReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactJobLevelResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -565,6 +614,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobLevel(func(ctx context.Context, request *lark.GetContactJobLevelReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobLevelResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -576,6 +626,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobLevelList(func(ctx context.Context, request *lark.GetContactJobLevelListReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobLevelListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -587,6 +638,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateContactJobFamily(func(ctx context.Context, request *lark.CreateContactJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.CreateContactJobFamilyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -598,6 +650,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactJobFamily(func(ctx context.Context, request *lark.DeleteContactJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactJobFamilyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -609,6 +662,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactJobFamily(func(ctx context.Context, request *lark.UpdateContactJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactJobFamilyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -620,6 +674,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobFamily(func(ctx context.Context, request *lark.GetContactJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobFamilyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -631,6 +686,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobFamilyList(func(ctx context.Context, request *lark.GetContactJobFamilyListReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobFamilyListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -642,6 +698,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobTitle(func(ctx context.Context, request *lark.GetContactJobTitleReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobTitleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -653,6 +710,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactJobTitleList(func(ctx context.Context, request *lark.GetContactJobTitleListReq, options ...lark.MethodOptionFunc) (*lark.GetContactJobTitleListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -664,6 +722,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactWorkCity(func(ctx context.Context, request *lark.GetContactWorkCityReq, options ...lark.MethodOptionFunc) (*lark.GetContactWorkCityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -675,6 +734,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactWorkCityList(func(ctx context.Context, request *lark.GetContactWorkCityListReq, options ...lark.MethodOptionFunc) (*lark.GetContactWorkCityListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -686,6 +746,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetEmployeeTypeEnumList(func(ctx context.Context, request *lark.GetEmployeeTypeEnumListReq, options ...lark.MethodOptionFunc) (*lark.GetEmployeeTypeEnumListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -697,6 +758,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateEmployeeTypeEnumPatch(func(ctx context.Context, request *lark.UpdateEmployeeTypeEnumPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateEmployeeTypeEnumPatchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -708,6 +770,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteEmployeeTypeEnum(func(ctx context.Context, request *lark.DeleteEmployeeTypeEnumReq, options ...lark.MethodOptionFunc) (*lark.DeleteEmployeeTypeEnumResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -719,6 +782,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateEmployeeTypeEnum(func(ctx context.Context, request *lark.CreateEmployeeTypeEnumReq, options ...lark.MethodOptionFunc) (*lark.CreateEmployeeTypeEnumResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -730,6 +794,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactCustomAttrList(func(ctx context.Context, request *lark.GetContactCustomAttrListReq, options ...lark.MethodOptionFunc) (*lark.GetContactCustomAttrListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -741,6 +806,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactCreateContactUnit(func(ctx context.Context, request *lark.CreateContactUnitReq, options ...lark.MethodOptionFunc) (*lark.CreateContactUnitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -752,6 +818,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUpdateContactUnit(func(ctx context.Context, request *lark.UpdateContactUnitReq, options ...lark.MethodOptionFunc) (*lark.UpdateContactUnitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -763,6 +830,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactDeleteContactUnit(func(ctx context.Context, request *lark.DeleteContactUnitReq, options ...lark.MethodOptionFunc) (*lark.DeleteContactUnitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -774,6 +842,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactUnit(func(ctx context.Context, request *lark.GetContactUnitReq, options ...lark.MethodOptionFunc) (*lark.GetContactUnitResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -785,6 +854,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactUnitList(func(ctx context.Context, request *lark.GetContactUnitListReq, options ...lark.MethodOptionFunc) (*lark.GetContactUnitListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -796,6 +866,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactBindContactUnitDepartment(func(ctx context.Context, request *lark.BindContactUnitDepartmentReq, options ...lark.MethodOptionFunc) (*lark.BindContactUnitDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -807,6 +878,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactUnbindContactUnitDepartment(func(ctx context.Context, request *lark.UnbindContactUnitDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UnbindContactUnitDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -818,6 +890,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactUnitDepartmentList(func(ctx context.Context, request *lark.GetContactUnitDepartmentListReq, options ...lark.MethodOptionFunc) (*lark.GetContactUnitDepartmentListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -829,6 +902,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockContactGetContactScopeList(func(ctx context.Context, request *lark.GetContactScopeListReq, options ...lark.MethodOptionFunc) (*lark.GetContactScopeListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -838,6 +912,55 @@ func Test_Contact_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockContactBatchAddContactV2User(func(ctx context.Context, request *lark.BatchAddContactV2UserReq, options ...lark.MethodOptionFunc) (*lark.BatchAddContactV2UserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockContactBatchAddContactV2User() + + _, _, err := moduleCli.BatchAddContactV2User(ctx, &lark.BatchAddContactV2UserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockContactBatchAddContactV2Department(func(ctx context.Context, request *lark.BatchAddContactV2DepartmentReq, options ...lark.MethodOptionFunc) (*lark.BatchAddContactV2DepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockContactBatchAddContactV2Department() + + _, _, err := moduleCli.BatchAddContactV2Department(ctx, &lark.BatchAddContactV2DepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockContactGetContactV2Task(func(ctx context.Context, request *lark.GetContactV2TaskReq, options ...lark.MethodOptionFunc) (*lark.GetContactV2TaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockContactGetContactV2Task() + + _, _, err := moduleCli.GetContactV2Task(ctx, &lark.GetContactV2TaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockContactListContactV2Role(func(ctx context.Context, request *lark.ListContactV2RoleReq, options ...lark.MethodOptionFunc) (*lark.ListContactV2RoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockContactListContactV2Role() + + _, _, err := moduleCli.ListContactV2Role(ctx, &lark.ListContactV2RoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -848,12 +971,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateUser(ctx, &lark.CreateUserReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteUser(ctx, &lark.DeleteUserReq{ UserID: "x", }) @@ -862,6 +987,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ResurrectUser(ctx, &lark.ResurrectUserReq{ UserID: "x", }) @@ -870,6 +996,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetUser(ctx, &lark.GetUserReq{ UserID: "x", }) @@ -878,24 +1005,28 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchGetUser(ctx, &lark.BatchGetUserReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetUserList(ctx, &lark.GetUserListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetUserListOld(ctx, &lark.GetUserListOldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateUserPatch(ctx, &lark.UpdateUserPatchReq{ UserID: "x", }) @@ -904,6 +1035,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateUser(ctx, &lark.UpdateUserReq{ UserID: "x", }) @@ -912,24 +1044,28 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchGetUserByID(ctx, &lark.BatchGetUserByIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchGetUserByIDOld(ctx, &lark.BatchGetUserByIDOldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchUserOld(ctx, &lark.SearchUserOldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateUserID(ctx, &lark.UpdateUserIDReq{ UserID: "x", }) @@ -938,12 +1074,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateDepartment(ctx, &lark.CreateDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetDepartment(ctx, &lark.GetDepartmentReq{ DepartmentID: "x", }) @@ -952,12 +1090,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchGetDepartment(ctx, &lark.BatchGetDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetDepartmentList(ctx, &lark.GetDepartmentListReq{ DepartmentID: "x", }) @@ -966,6 +1106,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateDepartmentPatch(ctx, &lark.UpdateDepartmentPatchReq{ DepartmentID: "x", }) @@ -974,6 +1115,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateDepartment(ctx, &lark.UpdateDepartmentReq{ DepartmentID: "x", }) @@ -982,24 +1124,28 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetDepartmentListOld(ctx, &lark.GetDepartmentListOldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetParentDepartment(ctx, &lark.GetParentDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchDepartment(ctx, &lark.SearchDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateDepartmentID(ctx, &lark.UpdateDepartmentIDReq{ DepartmentID: "x", }) @@ -1008,6 +1154,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteDepartment(ctx, &lark.DeleteDepartmentReq{ DepartmentID: "x", }) @@ -1016,18 +1163,21 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UnbindDepartmentChat(ctx, &lark.UnbindDepartmentChatReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateContactGroup(ctx, &lark.CreateContactGroupReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactGroup(ctx, &lark.UpdateContactGroupReq{ GroupID: "x", }) @@ -1036,6 +1186,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactGroup(ctx, &lark.DeleteContactGroupReq{ GroupID: "x", }) @@ -1044,6 +1195,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactGroup(ctx, &lark.GetContactGroupReq{ GroupID: "x", }) @@ -1052,18 +1204,21 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactGroupList(ctx, &lark.GetContactGroupListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactMemberGroupList(ctx, &lark.GetContactMemberGroupListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AddContactGroupMember(ctx, &lark.AddContactGroupMemberReq{ GroupID: "x", }) @@ -1072,6 +1227,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchAddContactGroupMember(ctx, &lark.BatchAddContactGroupMemberReq{ GroupID: "x", }) @@ -1080,6 +1236,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactGroupMember(ctx, &lark.DeleteContactGroupMemberReq{ GroupID: "x", }) @@ -1088,6 +1245,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchDeleteContactGroupMember(ctx, &lark.BatchDeleteContactGroupMemberReq{ GroupID: "x", }) @@ -1096,6 +1254,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactGroupMember(ctx, &lark.GetContactGroupMemberReq{ GroupID: "x", }) @@ -1104,12 +1263,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateContactFunctionalRole(ctx, &lark.CreateContactFunctionalRoleReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactFunctionalRole(ctx, &lark.DeleteContactFunctionalRoleReq{ RoleID: "x", }) @@ -1118,6 +1279,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactFunctionalRole(ctx, &lark.UpdateContactFunctionalRoleReq{ RoleID: "x", }) @@ -1126,6 +1288,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateContactFunctionalRoleMember(ctx, &lark.BatchCreateContactFunctionalRoleMemberReq{ RoleID: "x", }) @@ -1134,6 +1297,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchDeleteContactFunctionalRoleMember(ctx, &lark.BatchDeleteContactFunctionalRoleMemberReq{ RoleID: "x", }) @@ -1142,6 +1306,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactFunctionalRoleMemberScope(ctx, &lark.UpdateContactFunctionalRoleMemberScopeReq{ RoleID: "x", }) @@ -1150,6 +1315,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactFunctionalRoleMemberScope(ctx, &lark.GetContactFunctionalRoleMemberScopeReq{ RoleID: "x", MemberID: "x", @@ -1159,6 +1325,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactFunctionalRoleMember(ctx, &lark.GetContactFunctionalRoleMemberReq{ RoleID: "x", }) @@ -1167,12 +1334,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateContactJobLevel(ctx, &lark.CreateContactJobLevelReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactJobLevel(ctx, &lark.DeleteContactJobLevelReq{ JobLevelID: "x", }) @@ -1181,6 +1350,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactJobLevel(ctx, &lark.UpdateContactJobLevelReq{ JobLevelID: "x", }) @@ -1189,6 +1359,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobLevel(ctx, &lark.GetContactJobLevelReq{ JobLevelID: "x", }) @@ -1197,18 +1368,21 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobLevelList(ctx, &lark.GetContactJobLevelListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateContactJobFamily(ctx, &lark.CreateContactJobFamilyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactJobFamily(ctx, &lark.DeleteContactJobFamilyReq{ JobFamilyID: "x", }) @@ -1217,6 +1391,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactJobFamily(ctx, &lark.UpdateContactJobFamilyReq{ JobFamilyID: "x", }) @@ -1225,6 +1400,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobFamily(ctx, &lark.GetContactJobFamilyReq{ JobFamilyID: "x", }) @@ -1233,12 +1409,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobFamilyList(ctx, &lark.GetContactJobFamilyListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobTitle(ctx, &lark.GetContactJobTitleReq{ JobTitleID: "x", }) @@ -1247,12 +1425,14 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactJobTitleList(ctx, &lark.GetContactJobTitleListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactWorkCity(ctx, &lark.GetContactWorkCityReq{ WorkCityID: "x", }) @@ -1261,18 +1441,21 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactWorkCityList(ctx, &lark.GetContactWorkCityListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetEmployeeTypeEnumList(ctx, &lark.GetEmployeeTypeEnumListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateEmployeeTypeEnumPatch(ctx, &lark.UpdateEmployeeTypeEnumPatchReq{ EnumID: "x", }) @@ -1281,6 +1464,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteEmployeeTypeEnum(ctx, &lark.DeleteEmployeeTypeEnumReq{ EnumID: "x", }) @@ -1289,24 +1473,28 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateEmployeeTypeEnum(ctx, &lark.CreateEmployeeTypeEnumReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactCustomAttrList(ctx, &lark.GetContactCustomAttrListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateContactUnit(ctx, &lark.CreateContactUnitReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateContactUnit(ctx, &lark.UpdateContactUnitReq{ UnitID: "x", }) @@ -1315,6 +1503,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteContactUnit(ctx, &lark.DeleteContactUnitReq{ UnitID: "x", }) @@ -1323,6 +1512,7 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactUnit(ctx, &lark.GetContactUnitReq{ UnitID: "x", }) @@ -1331,33 +1521,67 @@ func Test_Contact_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactUnitList(ctx, &lark.GetContactUnitListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BindContactUnitDepartment(ctx, &lark.BindContactUnitDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UnbindContactUnitDepartment(ctx, &lark.UnbindContactUnitDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactUnitDepartmentList(ctx, &lark.GetContactUnitDepartmentListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetContactScopeList(ctx, &lark.GetContactScopeListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchAddContactV2User(ctx, &lark.BatchAddContactV2UserReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchAddContactV2Department(ctx, &lark.BatchAddContactV2DepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetContactV2Task(ctx, &lark.GetContactV2TaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListContactV2Role(ctx, &lark.ListContactV2RoleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/corehr_sample_test.go b/test/corehr_sample_test.go index e62def6b..139d417b 100644 --- a/test/corehr_sample_test.go +++ b/test/corehr_sample_test.go @@ -37,10 +37,12 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { moduleCli := cli.CoreHR t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + + _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,2454 +50,336 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { moduleCli := cli.CoreHR t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() - - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRBank(func(ctx context.Context, request *lark.SearchCoreHRBankReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRBank() - - _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRBankBranch(func(ctx context.Context, request *lark.SearchCoreHRBankBranchReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankBranchResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCompensationChangeReasonList(func(ctx context.Context, request *lark.GetCoreHRCompensationChangeReasonListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationChangeReasonListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRBankBranch() + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationChangeReasonList() - _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) + _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCustomField(func(ctx context.Context, request *lark.GetCoreHRCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCustomField() - - _, _, err := moduleCli.GetCoreHRCustomField(ctx, &lark.GetCoreHRCustomFieldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCustomFieldList(func(ctx context.Context, request *lark.GetCoreHRCustomFieldListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCompensationIndicatorList(func(ctx context.Context, request *lark.GetCoreHRCompensationIndicatorListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationIndicatorListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCustomFieldList() + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationIndicatorList() - _, _, err := moduleCli.GetCoreHRCustomFieldList(ctx, &lark.GetCoreHRCustomFieldListReq{}) + _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCustomFieldObjectApiNameList(func(ctx context.Context, request *lark.GetCoreHRCustomFieldObjectApiNameListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldObjectApiNameListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCustomFieldObjectApiNameList() - - _, _, err := moduleCli.GetCoreHRCustomFieldObjectApiNameList(ctx, &lark.GetCoreHRCustomFieldObjectApiNameListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRCountryRegion(func(ctx context.Context, request *lark.SearchCoreHRCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCountryRegionResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCompensationItemList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRCountryRegion() + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemList() - _, _, err := moduleCli.SearchCoreHRCountryRegion(ctx, &lark.SearchCoreHRCountryRegionReq{}) + _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRCountryRegionSubdivision(func(ctx context.Context, request *lark.SearchCoreHRCountryRegionSubdivisionReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCountryRegionSubdivisionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRCountryRegionSubdivision() - - _, _, err := moduleCli.SearchCoreHRCountryRegionSubdivision(ctx, &lark.SearchCoreHRCountryRegionSubdivisionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRCity(func(ctx context.Context, request *lark.SearchCoreHRCityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCityResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCompensationItemCategoryList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemCategoryListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemCategoryListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRCity() + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemCategoryList() - _, _, err := moduleCli.SearchCoreHRCity(ctx, &lark.SearchCoreHRCityReq{}) + _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRDistrict(func(ctx context.Context, request *lark.SearchCoreHRDistrictReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRDistrictResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRDistrict() - - _, _, err := moduleCli.SearchCoreHRDistrict(ctx, &lark.SearchCoreHRDistrictReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCountryRegion(func(ctx context.Context, request *lark.GetCoreHRCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCountryRegionResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCompensationPlanList(func(ctx context.Context, request *lark.GetCoreHRCompensationPlanListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationPlanListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCountryRegion() + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationPlanList() - _, _, err := moduleCli.GetCoreHRCountryRegion(ctx, &lark.GetCoreHRCountryRegionReq{}) + _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCountryRegionList(func(ctx context.Context, request *lark.GetCoreHRCountryRegionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCountryRegionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCountryRegionList() - - _, _, err := moduleCli.GetCoreHRCountryRegionList(ctx, &lark.GetCoreHRCountryRegionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSubdivision(func(ctx context.Context, request *lark.GetCoreHRSubdivisionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubdivisionResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCompensationArchive(func(ctx context.Context, request *lark.QueryCoreHRCompensationArchiveReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCompensationArchiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRSubdivision() + defer cli.Mock().UnMockCoreHRQueryCoreHRCompensationArchive() - _, _, err := moduleCli.GetCoreHRSubdivision(ctx, &lark.GetCoreHRSubdivisionReq{}) + _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSubdivisionList(func(ctx context.Context, request *lark.GetCoreHRSubdivisionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubdivisionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRSubdivisionList() - _, _, err := moduleCli.GetCoreHRSubdivisionList(ctx, &lark.GetCoreHRSubdivisionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSubregion(func(ctx context.Context, request *lark.GetCoreHRSubregionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubregionResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchGetCoreHRJobFamily(func(ctx context.Context, request *lark.BatchGetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobFamilyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRSubregion() + defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobFamily() - _, _, err := moduleCli.GetCoreHRSubregion(ctx, &lark.GetCoreHRSubregionReq{}) + _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSubregionList(func(ctx context.Context, request *lark.GetCoreHRSubregionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubregionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRSubregionList() - - _, _, err := moduleCli.GetCoreHRSubregionList(ctx, &lark.GetCoreHRSubregionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHREmployeeType(func(ctx context.Context, request *lark.CreateCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmployeeTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchGetCoreHrbpByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHrbpByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHrbpByEmployeeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCoreHREmployeeType() + defer cli.Mock().UnMockCoreHRBatchGetCoreHrbpByEmployee() - _, _, err := moduleCli.CreateCoreHREmployeeType(ctx, &lark.CreateCoreHREmployeeTypeReq{}) + _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHREmployeeType(func(ctx context.Context, request *lark.DeleteCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmployeeTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHREmployeeType() - - _, _, err := moduleCli.DeleteCoreHREmployeeType(ctx, &lark.DeleteCoreHREmployeeTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHREmployeeType(func(ctx context.Context, request *lark.UpdateCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmployeeTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCoreHREmployeeType() + defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() - _, _, err := moduleCli.UpdateCoreHREmployeeType(ctx, &lark.UpdateCoreHREmployeeTypeReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHREmployeeType(func(ctx context.Context, request *lark.GetCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHREmployeeTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHREmployeeType() - - _, _, err := moduleCli.GetCoreHREmployeeType(ctx, &lark.GetCoreHREmployeeTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHREmployeeTypeList(func(ctx context.Context, request *lark.GetCoreHREmployeeTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHREmployeeTypeListResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBank(func(ctx context.Context, request *lark.SearchCoreHRBankReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHREmployeeTypeList() + defer cli.Mock().UnMockCoreHRSearchCoreHRBank() - _, _, err := moduleCli.GetCoreHREmployeeTypeList(ctx, &lark.GetCoreHREmployeeTypeListReq{}) + _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRNationalIDType(func(ctx context.Context, request *lark.CreateCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRNationalIDTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRNationalIDType() - _, _, err := moduleCli.CreateCoreHRNationalIDType(ctx, &lark.CreateCoreHRNationalIDTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRNationalIDType(func(ctx context.Context, request *lark.DeleteCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRNationalIDTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBankBranch(func(ctx context.Context, request *lark.SearchCoreHRBankBranchReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankBranchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRNationalIDType() + defer cli.Mock().UnMockCoreHRSearchCoreHRBankBranch() - _, _, err := moduleCli.DeleteCoreHRNationalIDType(ctx, &lark.DeleteCoreHRNationalIDTypeReq{}) + _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRNationalIDType(func(ctx context.Context, request *lark.UpdateCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRNationalIDTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRNationalIDType() - - _, _, err := moduleCli.UpdateCoreHRNationalIDType(ctx, &lark.UpdateCoreHRNationalIDTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRNationalIDType(func(ctx context.Context, request *lark.GetCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRNationalIDTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRNationalIDType() + defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() - _, _, err := moduleCli.GetCoreHRNationalIDType(ctx, &lark.GetCoreHRNationalIDTypeReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRNationalIDTypeList(func(ctx context.Context, request *lark.GetCoreHRNationalIDTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRNationalIDTypeListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRNationalIDTypeList() - - _, _, err := moduleCli.GetCoreHRNationalIDTypeList(ctx, &lark.GetCoreHRNationalIDTypeListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRWorkingHoursType(func(ctx context.Context, request *lark.CreateCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRWorkingHoursTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRAuthorization(func(ctx context.Context, request *lark.GetCoreHRAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCoreHRWorkingHoursType() + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorization() - _, _, err := moduleCli.CreateCoreHRWorkingHoursType(ctx, &lark.CreateCoreHRWorkingHoursTypeReq{}) + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRWorkingHoursType(func(ctx context.Context, request *lark.DeleteCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRWorkingHoursTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRWorkingHoursType() - - _, _, err := moduleCli.DeleteCoreHRWorkingHoursType(ctx, &lark.DeleteCoreHRWorkingHoursTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRWorkingHoursType(func(ctx context.Context, request *lark.UpdateCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRWorkingHoursTypeResp, *lark.Response, error) { + cli.Mock().MockCoreHRMatchCoreHRCompensationStandard(func(ctx context.Context, request *lark.MatchCoreHRCompensationStandardReq, options ...lark.MethodOptionFunc) (*lark.MatchCoreHRCompensationStandardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRWorkingHoursType() + defer cli.Mock().UnMockCoreHRMatchCoreHRCompensationStandard() - _, _, err := moduleCli.UpdateCoreHRWorkingHoursType(ctx, &lark.UpdateCoreHRWorkingHoursTypeReq{}) + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRWorkingHoursType(func(ctx context.Context, request *lark.GetCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRWorkingHoursTypeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRWorkingHoursType() - _, _, err := moduleCli.GetCoreHRWorkingHoursType(ctx, &lark.GetCoreHRWorkingHoursTypeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRWorkingHoursTypeList(func(ctx context.Context, request *lark.GetCoreHRWorkingHoursTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRWorkingHoursTypeListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRAuthorizationList(func(ctx context.Context, request *lark.GetCoreHRAuthorizationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRWorkingHoursTypeList() + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorizationList() - _, _, err := moduleCli.GetCoreHRWorkingHoursTypeList(ctx, &lark.GetCoreHRWorkingHoursTypeListReq{}) + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRCurrency(func(ctx context.Context, request *lark.SearchCoreHRCurrencyReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCurrencyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRCurrency() - - _, _, err := moduleCli.SearchCoreHRCurrency(ctx, &lark.SearchCoreHRCurrencyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCurrency(func(ctx context.Context, request *lark.GetCoreHRCurrencyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCurrencyResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.BatchQueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRDepartmentTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCurrency() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRDepartmentTimeline() - _, _, err := moduleCli.GetCoreHRCurrency(ctx, &lark.GetCoreHRCurrencyReq{}) + _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCurrencyList(func(ctx context.Context, request *lark.GetCoreHRCurrencyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCurrencyListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCurrencyList() - - _, _, err := moduleCli.GetCoreHRCurrencyList(ctx, &lark.GetCoreHRCurrencyListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHREmployee(func(ctx context.Context, request *lark.BatchGetCoreHREmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHREmployeeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.QueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRDepartmentTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHREmployee() + defer cli.Mock().UnMockCoreHRQueryCoreHRDepartmentTimeline() - _, _, err := moduleCli.BatchGetCoreHREmployee(ctx, &lark.BatchGetCoreHREmployeeReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHREmployee(func(ctx context.Context, request *lark.SearchCoreHREmployeeReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHREmployeeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHREmployee() + }) - _, _, err := moduleCli.SearchCoreHREmployee(ctx, &lark.SearchCoreHREmployeeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.CoreHR + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHREmployment(func(ctx context.Context, request *lark.CreateCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmploymentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHREmployment() - _, _, err := moduleCli.CreateCoreHREmployment(ctx, &lark.CreateCoreHREmploymentReq{}) + _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHREmployment(func(ctx context.Context, request *lark.DeleteCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmploymentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHREmployment() - _, _, err := moduleCli.DeleteCoreHREmployment(ctx, &lark.DeleteCoreHREmploymentReq{}) + _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHREmployment(func(ctx context.Context, request *lark.UpdateCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmploymentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHREmployment() - _, _, err := moduleCli.UpdateCoreHREmployment(ctx, &lark.UpdateCoreHREmploymentReq{}) + _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRPerson(func(ctx context.Context, request *lark.CreateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPersonResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRPerson() - _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) + _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRPerson(func(ctx context.Context, request *lark.UpdateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPersonResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRPerson() - _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{}) + _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRPerson(func(ctx context.Context, request *lark.DeleteCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPersonResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRPerson() - _, _, err := moduleCli.DeleteCoreHRPerson(ctx, &lark.DeleteCoreHRPersonReq{}) + _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUploadCoreHRPersonFile(func(ctx context.Context, request *lark.UploadCoreHRPersonFileReq, options ...lark.MethodOptionFunc) (*lark.UploadCoreHRPersonFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUploadCoreHRPersonFile() - _, _, err := moduleCli.UploadCoreHRPersonFile(ctx, &lark.UploadCoreHRPersonFileReq{}) + _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDownloadCoreHRPersonFile(func(ctx context.Context, request *lark.DownloadCoreHRPersonFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadCoreHRPersonFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDownloadCoreHRPersonFile() - _, _, err := moduleCli.DownloadCoreHRPersonFile(ctx, &lark.DownloadCoreHRPersonFileReq{}) + _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRPerson(func(ctx context.Context, request *lark.GetCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPersonResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRPerson() - _, _, err := moduleCli.GetCoreHRPerson(ctx, &lark.GetCoreHRPersonReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRJobData(func(ctx context.Context, request *lark.CreateCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRJobData() - _, _, err := moduleCli.CreateCoreHRJobData(ctx, &lark.CreateCoreHRJobDataReq{}) + _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRJobData(func(ctx context.Context, request *lark.DeleteCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRJobData() - _, _, err := moduleCli.DeleteCoreHRJobData(ctx, &lark.DeleteCoreHRJobDataReq{}) + _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRJobData(func(ctx context.Context, request *lark.UpdateCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRJobData() - _, _, err := moduleCli.UpdateCoreHRJobData(ctx, &lark.UpdateCoreHRJobDataReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobData(func(ctx context.Context, request *lark.GetCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobData() - _, _, err := moduleCli.GetCoreHRJobData(ctx, &lark.GetCoreHRJobDataReq{}) + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCoreHRJobData(func(ctx context.Context, request *lark.QueryCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRQueryCoreHRJobData() - _, _, err := moduleCli.QueryCoreHRJobData(ctx, &lark.QueryCoreHRJobDataReq{}) + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRJobData(func(ctx context.Context, request *lark.BatchGetCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobData() - _, _, err := moduleCli.BatchGetCoreHRJobData(ctx, &lark.BatchGetCoreHRJobDataReq{}) + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobDataList(func(ctx context.Context, request *lark.GetCoreHRJobDataListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobDataListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobDataList() - _, _, err := moduleCli.GetCoreHRJobDataList(ctx, &lark.GetCoreHRJobDataListReq{}) + _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRDepartmentParentList(func(ctx context.Context, request *lark.GetCoreHRDepartmentParentListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentParentListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRDepartmentParentList() - _, _, err := moduleCli.GetCoreHRDepartmentParentList(ctx, &lark.GetCoreHRDepartmentParentListReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRDepartment(func(ctx context.Context, request *lark.SearchCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRDepartment() - - _, _, err := moduleCli.SearchCoreHRDepartment(ctx, &lark.SearchCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRDepartment(func(ctx context.Context, request *lark.CreateCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRDepartment() - - _, _, err := moduleCli.CreateCoreHRDepartment(ctx, &lark.CreateCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRDepartment(func(ctx context.Context, request *lark.DeleteCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRDepartment() - - _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRDepartment(func(ctx context.Context, request *lark.UpdateCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRDepartment() - - _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRDepartment(func(ctx context.Context, request *lark.GetCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRDepartment() - - _, _, err := moduleCli.GetCoreHRDepartment(ctx, &lark.GetCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRDepartment(func(ctx context.Context, request *lark.BatchGetCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRDepartment() - - _, _, err := moduleCli.BatchGetCoreHRDepartment(ctx, &lark.BatchGetCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRDepartmentList(func(ctx context.Context, request *lark.GetCoreHRDepartmentListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRDepartmentList() - - _, _, err := moduleCli.GetCoreHRDepartmentList(ctx, &lark.GetCoreHRDepartmentListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRLocation(func(ctx context.Context, request *lark.BatchGetCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRLocationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRLocation() - - _, _, err := moduleCli.BatchGetCoreHRLocation(ctx, &lark.BatchGetCoreHRLocationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRLocation(func(ctx context.Context, request *lark.CreateCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLocationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRLocation() - - _, _, err := moduleCli.CreateCoreHRLocation(ctx, &lark.CreateCoreHRLocationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRLocation(func(ctx context.Context, request *lark.DeleteCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRLocationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRLocation() - - _, _, err := moduleCli.DeleteCoreHRLocation(ctx, &lark.DeleteCoreHRLocationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRLocation(func(ctx context.Context, request *lark.GetCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLocationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRLocation() - - _, _, err := moduleCli.GetCoreHRLocation(ctx, &lark.GetCoreHRLocationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRLocationList(func(ctx context.Context, request *lark.GetCoreHRLocationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLocationListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRLocationList() - - _, _, err := moduleCli.GetCoreHRLocationList(ctx, &lark.GetCoreHRLocationListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompany(func(ctx context.Context, request *lark.GetCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompanyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompany() - - _, _, err := moduleCli.GetCoreHRCompany(ctx, &lark.GetCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompanyList(func(ctx context.Context, request *lark.GetCoreHRCompanyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompanyListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompanyList() - - _, _, err := moduleCli.GetCoreHRCompanyList(ctx, &lark.GetCoreHRCompanyListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRCompany(func(ctx context.Context, request *lark.BatchGetCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRCompanyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRCompany() - - _, _, err := moduleCli.BatchGetCoreHRCompany(ctx, &lark.BatchGetCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRCompany(func(ctx context.Context, request *lark.CreateCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCompanyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRCompany() - - _, _, err := moduleCli.CreateCoreHRCompany(ctx, &lark.CreateCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRCompany(func(ctx context.Context, request *lark.UpdateCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCompanyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRCompany() - - _, _, err := moduleCli.UpdateCoreHRCompany(ctx, &lark.UpdateCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRCompany(func(ctx context.Context, request *lark.DeleteCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCompanyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRCompany() - - _, _, err := moduleCli.DeleteCoreHRCompany(ctx, &lark.DeleteCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRCostCenter(func(ctx context.Context, request *lark.CreateCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCostCenterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRCostCenter() - - _, _, err := moduleCli.CreateCoreHRCostCenter(ctx, &lark.CreateCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRActiveCoreHRCostCenter(func(ctx context.Context, request *lark.ActiveCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.ActiveCoreHRCostCenterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRActiveCoreHRCostCenter() - - _, _, err := moduleCli.ActiveCoreHRCostCenter(ctx, &lark.ActiveCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRCostCenter(func(ctx context.Context, request *lark.DeleteCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCostCenterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRCostCenter() - - _, _, err := moduleCli.DeleteCoreHRCostCenter(ctx, &lark.DeleteCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRCostCenter(func(ctx context.Context, request *lark.SearchCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCostCenterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRCostCenter() - - _, _, err := moduleCli.SearchCoreHRCostCenter(ctx, &lark.SearchCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRCostCenterVersion(func(ctx context.Context, request *lark.CreateCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCostCenterVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRCostCenterVersion() - - _, _, err := moduleCli.CreateCoreHRCostCenterVersion(ctx, &lark.CreateCoreHRCostCenterVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRCostCenterVersion(func(ctx context.Context, request *lark.UpdateCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCostCenterVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRCostCenterVersion() - - _, _, err := moduleCli.UpdateCoreHRCostCenterVersion(ctx, &lark.UpdateCoreHRCostCenterVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRCostCenterVersion(func(ctx context.Context, request *lark.DeleteCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCostCenterVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRCostCenterVersion() - - _, _, err := moduleCli.DeleteCoreHRCostCenterVersion(ctx, &lark.DeleteCoreHRCostCenterVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRJobLevel(func(ctx context.Context, request *lark.BatchGetCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobLevel() - - _, _, err := moduleCli.BatchGetCoreHRJobLevel(ctx, &lark.BatchGetCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRJobLevel(func(ctx context.Context, request *lark.CreateCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRJobLevel() - - _, _, err := moduleCli.CreateCoreHRJobLevel(ctx, &lark.CreateCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRJobLevel(func(ctx context.Context, request *lark.DeleteCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRJobLevel() - - _, _, err := moduleCli.DeleteCoreHRJobLevel(ctx, &lark.DeleteCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRJobLevel(func(ctx context.Context, request *lark.UpdateCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRJobLevel() - - _, _, err := moduleCli.UpdateCoreHRJobLevel(ctx, &lark.UpdateCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobLevel(func(ctx context.Context, request *lark.GetCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobLevel() - - _, _, err := moduleCli.GetCoreHRJobLevel(ctx, &lark.GetCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobLevelList(func(ctx context.Context, request *lark.GetCoreHRJobLevelListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobLevelListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobLevelList() - - _, _, err := moduleCli.GetCoreHRJobLevelList(ctx, &lark.GetCoreHRJobLevelListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRJobFamily(func(ctx context.Context, request *lark.BatchGetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobFamilyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobFamily() - - _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRJobFamily(func(ctx context.Context, request *lark.CreateCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobFamilyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRJobFamily() - - _, _, err := moduleCli.CreateCoreHRJobFamily(ctx, &lark.CreateCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRJobFamily(func(ctx context.Context, request *lark.DeleteCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobFamilyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRJobFamily() - - _, _, err := moduleCli.DeleteCoreHRJobFamily(ctx, &lark.DeleteCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRJobFamily(func(ctx context.Context, request *lark.UpdateCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobFamilyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRJobFamily() - - _, _, err := moduleCli.UpdateCoreHRJobFamily(ctx, &lark.UpdateCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobFamily(func(ctx context.Context, request *lark.GetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobFamilyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobFamily() - - _, _, err := moduleCli.GetCoreHRJobFamily(ctx, &lark.GetCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobFamilyList(func(ctx context.Context, request *lark.GetCoreHRJobFamilyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobFamilyListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobFamilyList() - - _, _, err := moduleCli.GetCoreHRJobFamilyList(ctx, &lark.GetCoreHRJobFamilyListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRJob(func(ctx context.Context, request *lark.CreateCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRJob() - - _, _, err := moduleCli.CreateCoreHRJob(ctx, &lark.CreateCoreHRJobReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRJob(func(ctx context.Context, request *lark.DeleteCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRJob() - - _, _, err := moduleCli.DeleteCoreHRJob(ctx, &lark.DeleteCoreHRJobReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRJob(func(ctx context.Context, request *lark.UpdateCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRJob() - - _, _, err := moduleCli.UpdateCoreHRJob(ctx, &lark.UpdateCoreHRJobReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobV2(func(ctx context.Context, request *lark.GetCoreHRJobV2Req, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobV2Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobV2() - - _, _, err := moduleCli.GetCoreHRJobV2(ctx, &lark.GetCoreHRJobV2Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobListV2(func(ctx context.Context, request *lark.GetCoreHRJobListV2Req, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobListV2Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobListV2() - - _, _, err := moduleCli.GetCoreHRJobListV2(ctx, &lark.GetCoreHRJobListV2Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJob(func(ctx context.Context, request *lark.GetCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJob() - - _, _, err := moduleCli.GetCoreHRJob(ctx, &lark.GetCoreHRJobReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRJobList(func(ctx context.Context, request *lark.GetCoreHRJobListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRJobList() - - _, _, err := moduleCli.GetCoreHRJobList(ctx, &lark.GetCoreHRJobListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRPreHire(func(ctx context.Context, request *lark.CreateCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPreHireResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRPreHire() - - _, _, err := moduleCli.CreateCoreHRPreHire(ctx, &lark.CreateCoreHRPreHireReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRPreHire(func(ctx context.Context, request *lark.DeleteCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPreHireResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRPreHire() - - _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRPreHire(func(ctx context.Context, request *lark.UpdateCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPreHireResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRPreHire() - - _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRPreHire(func(ctx context.Context, request *lark.GetCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPreHireResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRPreHire() - - _, _, err := moduleCli.GetCoreHRPreHire(ctx, &lark.GetCoreHRPreHireReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRPreHireList(func(ctx context.Context, request *lark.GetCoreHRPreHireListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPreHireListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRPreHireList() - - _, _, err := moduleCli.GetCoreHRPreHireList(ctx, &lark.GetCoreHRPreHireListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRContract(func(ctx context.Context, request *lark.SearchCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRContractResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRContract() - - _, _, err := moduleCli.SearchCoreHRContract(ctx, &lark.SearchCoreHRContractReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRContract(func(ctx context.Context, request *lark.CreateCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRContractResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRContract() - - _, _, err := moduleCli.CreateCoreHRContract(ctx, &lark.CreateCoreHRContractReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRContract(func(ctx context.Context, request *lark.DeleteCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRContractResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRContract() - - _, _, err := moduleCli.DeleteCoreHRContract(ctx, &lark.DeleteCoreHRContractReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRContract(func(ctx context.Context, request *lark.UpdateCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRContractResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRContract() - - _, _, err := moduleCli.UpdateCoreHRContract(ctx, &lark.UpdateCoreHRContractReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRContract(func(ctx context.Context, request *lark.GetCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRContractResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRContract() - - _, _, err := moduleCli.GetCoreHRContract(ctx, &lark.GetCoreHRContractReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRContractList(func(ctx context.Context, request *lark.GetCoreHRContractListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRContractListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRContractList() - - _, _, err := moduleCli.GetCoreHRContractList(ctx, &lark.GetCoreHRContractListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRProbation(func(ctx context.Context, request *lark.SearchCoreHRProbationReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRProbationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRProbation() - - _, _, err := moduleCli.SearchCoreHRProbation(ctx, &lark.SearchCoreHRProbationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHREnableDisableCoreHRProbationAssessment(func(ctx context.Context, request *lark.EnableDisableCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.EnableDisableCoreHRProbationAssessmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHREnableDisableCoreHRProbationAssessment() - - _, _, err := moduleCli.EnableDisableCoreHRProbationAssessment(ctx, &lark.EnableDisableCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRProbationAssessment(func(ctx context.Context, request *lark.CreateCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRProbationAssessmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRProbationAssessment() - - _, _, err := moduleCli.CreateCoreHRProbationAssessment(ctx, &lark.CreateCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCoreHRProbationAssessment(func(ctx context.Context, request *lark.UpdateCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProbationAssessmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRUpdateCoreHRProbationAssessment() - - _, _, err := moduleCli.UpdateCoreHRProbationAssessment(ctx, &lark.UpdateCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRProbationAssessment(func(ctx context.Context, request *lark.DeleteCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRProbationAssessmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRProbationAssessment() - - _, _, err := moduleCli.DeleteCoreHRProbationAssessment(ctx, &lark.DeleteCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRTransferReasonList(func(ctx context.Context, request *lark.GetCoreHRTransferReasonListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRTransferReasonListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRTransferReasonList() - - _, _, err := moduleCli.GetCoreHRTransferReasonList(ctx, &lark.GetCoreHRTransferReasonListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRTransferTypeList(func(ctx context.Context, request *lark.GetCoreHRTransferTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRTransferTypeListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRTransferTypeList() - - _, _, err := moduleCli.GetCoreHRTransferTypeList(ctx, &lark.GetCoreHRTransferTypeListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRJobChange(func(ctx context.Context, request *lark.CreateCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobChangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRJobChange() - - _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRJobChange(func(ctx context.Context, request *lark.SearchCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRJobChangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRJobChange() - - _, _, err := moduleCli.SearchCoreHRJobChange(ctx, &lark.SearchCoreHRJobChangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHROffboardingList(func(ctx context.Context, request *lark.GetCoreHROffboardingListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHROffboardingListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHROffboardingList() - - _, _, err := moduleCli.GetCoreHROffboardingList(ctx, &lark.GetCoreHROffboardingListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHROffboarding(func(ctx context.Context, request *lark.CreateCoreHROffboardingReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHROffboardingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHROffboarding() - - _, _, err := moduleCli.CreateCoreHROffboarding(ctx, &lark.CreateCoreHROffboardingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHROffboarding(func(ctx context.Context, request *lark.SearchCoreHROffboardingReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHROffboardingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHROffboarding() - - _, _, err := moduleCli.SearchCoreHROffboarding(ctx, &lark.SearchCoreHROffboardingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCoreHRLeaveGrantingRecord(func(ctx context.Context, request *lark.CreateCoreHRLeaveGrantingRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLeaveGrantingRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRCreateCoreHRLeaveGrantingRecord() - - _, _, err := moduleCli.CreateCoreHRLeaveGrantingRecord(ctx, &lark.CreateCoreHRLeaveGrantingRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCoreHRLeaveGrantingRecord(func(ctx context.Context, request *lark.DeleteCoreHRLeaveGrantingRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRLeaveGrantingRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRDeleteCoreHRLeaveGrantingRecord() - - _, _, err := moduleCli.DeleteCoreHRLeaveGrantingRecord(ctx, &lark.DeleteCoreHRLeaveGrantingRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRLeaveTypeList(func(ctx context.Context, request *lark.GetCoreHRLeaveTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveTypeListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRLeaveTypeList() - - _, _, err := moduleCli.GetCoreHRLeaveTypeList(ctx, &lark.GetCoreHRLeaveTypeListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRLeaveBalanceList(func(ctx context.Context, request *lark.GetCoreHRLeaveBalanceListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveBalanceListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRLeaveBalanceList() - - _, _, err := moduleCli.GetCoreHRLeaveBalanceList(ctx, &lark.GetCoreHRLeaveBalanceListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRLeaveRequestHistoryList(func(ctx context.Context, request *lark.GetCoreHRLeaveRequestHistoryListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveRequestHistoryListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRLeaveRequestHistoryList() - - _, _, err := moduleCli.GetCoreHRLeaveRequestHistoryList(ctx, &lark.GetCoreHRLeaveRequestHistoryListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHrbpByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHrbpByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHrbpByEmployeeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHrbpByEmployee() - - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHrbpByDepartment(func(ctx context.Context, request *lark.GetCoreHrbpByDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpByDepartmentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHrbpByDepartment() - - _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHrbpList(func(ctx context.Context, request *lark.GetCoreHrbpListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHrbpList() - - _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSecurityGroupBp(func(ctx context.Context, request *lark.GetCoreHRSecurityGroupBpReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSecurityGroupBpResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRSecurityGroupBp() - - _, _, err := moduleCli.GetCoreHRSecurityGroupBp(ctx, &lark.GetCoreHRSecurityGroupBpReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRAssignedUser(func(ctx context.Context, request *lark.SearchCoreHRAssignedUserReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRAssignedUserResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRSearchCoreHRAssignedUser() - - _, _, err := moduleCli.SearchCoreHRAssignedUser(ctx, &lark.SearchCoreHRAssignedUserReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRAuthorization(func(ctx context.Context, request *lark.GetCoreHRAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRAuthorization() - - _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRAuthorizationList(func(ctx context.Context, request *lark.GetCoreHRAuthorizationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRAuthorizationList() - - _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRSecurityGroupList(func(ctx context.Context, request *lark.GetCoreHRSecurityGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSecurityGroupListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRSecurityGroupList() - - _, _, err := moduleCli.GetCoreHRSecurityGroupList(ctx, &lark.GetCoreHRSecurityGroupListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRProcessList(func(ctx context.Context, request *lark.GetCoreHRProcessListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRProcessList() - - _, _, err := moduleCli.GetCoreHRProcessList(ctx, &lark.GetCoreHRProcessListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRProcess(func(ctx context.Context, request *lark.GetCoreHRProcessReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRProcess() - - _, _, err := moduleCli.GetCoreHRProcess(ctx, &lark.GetCoreHRProcessReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRProcessFormVariableData(func(ctx context.Context, request *lark.GetCoreHRProcessFormVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessFormVariableDataResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRGetCoreHRProcessFormVariableData() - - _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRMatchCoreHRCompensationStandard(func(ctx context.Context, request *lark.MatchCoreHRCompensationStandardReq, options ...lark.MethodOptionFunc) (*lark.MatchCoreHRCompensationStandardResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCoreHRMatchCoreHRCompensationStandard() - - _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.CoreHR - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCustomField(ctx, &lark.GetCoreHRCustomFieldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCustomFieldList(ctx, &lark.GetCoreHRCustomFieldListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCustomFieldObjectApiNameList(ctx, &lark.GetCoreHRCustomFieldObjectApiNameListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRCountryRegion(ctx, &lark.SearchCoreHRCountryRegionReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRCountryRegionSubdivision(ctx, &lark.SearchCoreHRCountryRegionSubdivisionReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRCity(ctx, &lark.SearchCoreHRCityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRDistrict(ctx, &lark.SearchCoreHRDistrictReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCountryRegion(ctx, &lark.GetCoreHRCountryRegionReq{ - CountryRegionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCountryRegionList(ctx, &lark.GetCoreHRCountryRegionListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSubdivision(ctx, &lark.GetCoreHRSubdivisionReq{ - SubdivisionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSubdivisionList(ctx, &lark.GetCoreHRSubdivisionListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSubregion(ctx, &lark.GetCoreHRSubregionReq{ - SubregionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSubregionList(ctx, &lark.GetCoreHRSubregionListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHREmployeeType(ctx, &lark.CreateCoreHREmployeeTypeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHREmployeeType(ctx, &lark.DeleteCoreHREmployeeTypeReq{ - EmployeeTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHREmployeeType(ctx, &lark.UpdateCoreHREmployeeTypeReq{ - EmployeeTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHREmployeeType(ctx, &lark.GetCoreHREmployeeTypeReq{ - EmployeeTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHREmployeeTypeList(ctx, &lark.GetCoreHREmployeeTypeListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRNationalIDType(ctx, &lark.CreateCoreHRNationalIDTypeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRNationalIDType(ctx, &lark.DeleteCoreHRNationalIDTypeReq{ - NationalIDTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRNationalIDType(ctx, &lark.UpdateCoreHRNationalIDTypeReq{ - NationalIDTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRNationalIDType(ctx, &lark.GetCoreHRNationalIDTypeReq{ - NationalIDTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRNationalIDTypeList(ctx, &lark.GetCoreHRNationalIDTypeListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRWorkingHoursType(ctx, &lark.CreateCoreHRWorkingHoursTypeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRWorkingHoursType(ctx, &lark.DeleteCoreHRWorkingHoursTypeReq{ - WorkingHoursTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRWorkingHoursType(ctx, &lark.UpdateCoreHRWorkingHoursTypeReq{ - WorkingHoursTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRWorkingHoursType(ctx, &lark.GetCoreHRWorkingHoursTypeReq{ - WorkingHoursTypeID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRWorkingHoursTypeList(ctx, &lark.GetCoreHRWorkingHoursTypeListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRCurrency(ctx, &lark.SearchCoreHRCurrencyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCurrency(ctx, &lark.GetCoreHRCurrencyReq{ - CurrencyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCurrencyList(ctx, &lark.GetCoreHRCurrencyListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHREmployee(ctx, &lark.BatchGetCoreHREmployeeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHREmployee(ctx, &lark.SearchCoreHREmployeeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHREmployment(ctx, &lark.CreateCoreHREmploymentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHREmployment(ctx, &lark.DeleteCoreHREmploymentReq{ - EmploymentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHREmployment(ctx, &lark.UpdateCoreHREmploymentReq{ - EmploymentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{ - PersonID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRPerson(ctx, &lark.DeleteCoreHRPersonReq{ - PersonID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UploadCoreHRPersonFile(ctx, &lark.UploadCoreHRPersonFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadCoreHRPersonFile(ctx, &lark.DownloadCoreHRPersonFileReq{ - ID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRPerson(ctx, &lark.GetCoreHRPersonReq{ - PersonID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRJobData(ctx, &lark.CreateCoreHRJobDataReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRJobData(ctx, &lark.DeleteCoreHRJobDataReq{ - JobDataID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRJobData(ctx, &lark.UpdateCoreHRJobDataReq{ - JobDataID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobData(ctx, &lark.GetCoreHRJobDataReq{ - JobDataID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCoreHRJobData(ctx, &lark.QueryCoreHRJobDataReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRJobData(ctx, &lark.BatchGetCoreHRJobDataReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobDataList(ctx, &lark.GetCoreHRJobDataListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRDepartmentParentList(ctx, &lark.GetCoreHRDepartmentParentListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRDepartment(ctx, &lark.SearchCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRDepartment(ctx, &lark.CreateCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{ - DepartmentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{ - DepartmentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRDepartment(ctx, &lark.GetCoreHRDepartmentReq{ - DepartmentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRDepartment(ctx, &lark.BatchGetCoreHRDepartmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRDepartmentList(ctx, &lark.GetCoreHRDepartmentListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRLocation(ctx, &lark.BatchGetCoreHRLocationReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRLocation(ctx, &lark.CreateCoreHRLocationReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRLocation(ctx, &lark.DeleteCoreHRLocationReq{ - LocationID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRLocation(ctx, &lark.GetCoreHRLocationReq{ - LocationID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRLocationList(ctx, &lark.GetCoreHRLocationListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompany(ctx, &lark.GetCoreHRCompanyReq{ - CompanyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompanyList(ctx, &lark.GetCoreHRCompanyListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRCompany(ctx, &lark.BatchGetCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRCompany(ctx, &lark.CreateCoreHRCompanyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRCompany(ctx, &lark.UpdateCoreHRCompanyReq{ - CompanyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRCompany(ctx, &lark.DeleteCoreHRCompanyReq{ - CompanyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRCostCenter(ctx, &lark.CreateCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ActiveCoreHRCostCenter(ctx, &lark.ActiveCoreHRCostCenterReq{ - CostCenterID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRCostCenter(ctx, &lark.DeleteCoreHRCostCenterReq{ - CostCenterID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRCostCenter(ctx, &lark.SearchCoreHRCostCenterReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRCostCenterVersion(ctx, &lark.CreateCoreHRCostCenterVersionReq{ - CostCenterID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRCostCenterVersion(ctx, &lark.UpdateCoreHRCostCenterVersionReq{ - CostCenterID: "x", - VersionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRCostCenterVersion(ctx, &lark.DeleteCoreHRCostCenterVersionReq{ - CostCenterID: "x", - VersionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRJobLevel(ctx, &lark.BatchGetCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRJobLevel(ctx, &lark.CreateCoreHRJobLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRJobLevel(ctx, &lark.DeleteCoreHRJobLevelReq{ - JobLevelID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRJobLevel(ctx, &lark.UpdateCoreHRJobLevelReq{ - JobLevelID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobLevel(ctx, &lark.GetCoreHRJobLevelReq{ - JobLevelID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobLevelList(ctx, &lark.GetCoreHRJobLevelListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRJobFamily(ctx, &lark.CreateCoreHRJobFamilyReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRJobFamily(ctx, &lark.DeleteCoreHRJobFamilyReq{ - JobFamilyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRJobFamily(ctx, &lark.UpdateCoreHRJobFamilyReq{ - JobFamilyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobFamily(ctx, &lark.GetCoreHRJobFamilyReq{ - JobFamilyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobFamilyList(ctx, &lark.GetCoreHRJobFamilyListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRJob(ctx, &lark.CreateCoreHRJobReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRJob(ctx, &lark.DeleteCoreHRJobReq{ - JobID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRJob(ctx, &lark.UpdateCoreHRJobReq{ - JobID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobV2(ctx, &lark.GetCoreHRJobV2Req{ - JobID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobListV2(ctx, &lark.GetCoreHRJobListV2Req{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJob(ctx, &lark.GetCoreHRJobReq{ - JobID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRJobList(ctx, &lark.GetCoreHRJobListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRPreHire(ctx, &lark.CreateCoreHRPreHireReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{ - PreHireID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{ - PreHireID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRPreHire(ctx, &lark.GetCoreHRPreHireReq{ - PreHireID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRPreHireList(ctx, &lark.GetCoreHRPreHireListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRContract(ctx, &lark.SearchCoreHRContractReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRContract(ctx, &lark.CreateCoreHRContractReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRContract(ctx, &lark.DeleteCoreHRContractReq{ - ContractID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRContract(ctx, &lark.UpdateCoreHRContractReq{ - ContractID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRContract(ctx, &lark.GetCoreHRContractReq{ - ContractID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRContractList(ctx, &lark.GetCoreHRContractListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRProbation(ctx, &lark.SearchCoreHRProbationReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.EnableDisableCoreHRProbationAssessment(ctx, &lark.EnableDisableCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRProbationAssessment(ctx, &lark.CreateCoreHRProbationAssessmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCoreHRProbationAssessment(ctx, &lark.UpdateCoreHRProbationAssessmentReq{ - AssessmentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRProbationAssessment(ctx, &lark.DeleteCoreHRProbationAssessmentReq{ - AssessmentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRTransferReasonList(ctx, &lark.GetCoreHRTransferReasonListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRTransferTypeList(ctx, &lark.GetCoreHRTransferTypeListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRJobChange(ctx, &lark.SearchCoreHRJobChangeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHROffboardingList(ctx, &lark.GetCoreHROffboardingListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHROffboarding(ctx, &lark.CreateCoreHROffboardingReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHROffboarding(ctx, &lark.SearchCoreHROffboardingReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCoreHRLeaveGrantingRecord(ctx, &lark.CreateCoreHRLeaveGrantingRecordReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCoreHRLeaveGrantingRecord(ctx, &lark.DeleteCoreHRLeaveGrantingRecordReq{ - LeaveGrantingRecordID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRLeaveTypeList(ctx, &lark.GetCoreHRLeaveTypeListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRLeaveBalanceList(ctx, &lark.GetCoreHRLeaveBalanceListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRLeaveRequestHistoryList(ctx, &lark.GetCoreHRLeaveRequestHistoryListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSecurityGroupBp(ctx, &lark.GetCoreHRSecurityGroupBpReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRAssignedUser(ctx, &lark.SearchCoreHRAssignedUserReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRSecurityGroupList(ctx, &lark.GetCoreHRSecurityGroupListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRProcessList(ctx, &lark.GetCoreHRProcessListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRProcess(ctx, &lark.GetCoreHRProcessReq{ - ProcessID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{ - ProcessID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/directory_sample_test.go b/test/directory_sample_test.go new file mode 100644 index 00000000..70dec1e5 --- /dev/null +++ b/test/directory_sample_test.go @@ -0,0 +1,479 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Directory_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Directory + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryCollaborationRule(ctx, &lark.CreateDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Directory + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryCollaborationRule(func(ctx context.Context, request *lark.CreateDirectoryCollaborationRuleReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryCollaborationRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryCollaborationRule() + + _, _, err := moduleCli.CreateDirectoryCollaborationRule(ctx, &lark.CreateDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryDeleteDirectoryCollaborationRule(func(ctx context.Context, request *lark.DeleteDirectoryCollaborationRuleReq, options ...lark.MethodOptionFunc) (*lark.DeleteDirectoryCollaborationRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryDeleteDirectoryCollaborationRule() + + _, _, err := moduleCli.DeleteDirectoryCollaborationRule(ctx, &lark.DeleteDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryListDirectoryCollaborationRule(func(ctx context.Context, request *lark.ListDirectoryCollaborationRuleReq, options ...lark.MethodOptionFunc) (*lark.ListDirectoryCollaborationRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryListDirectoryCollaborationRule() + + _, _, err := moduleCli.ListDirectoryCollaborationRule(ctx, &lark.ListDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryUpdateDirectoryCollaborationRule(func(ctx context.Context, request *lark.UpdateDirectoryCollaborationRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateDirectoryCollaborationRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryUpdateDirectoryCollaborationRule() + + _, _, err := moduleCli.UpdateDirectoryCollaborationRule(ctx, &lark.UpdateDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryListDirectoryCollaborationTenant(func(ctx context.Context, request *lark.ListDirectoryCollaborationTenantReq, options ...lark.MethodOptionFunc) (*lark.ListDirectoryCollaborationTenantResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryListDirectoryCollaborationTenant() + + _, _, err := moduleCli.ListDirectoryCollaborationTenant(ctx, &lark.ListDirectoryCollaborationTenantReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryListDirectoryCollborationShareEntity(func(ctx context.Context, request *lark.ListDirectoryCollborationShareEntityReq, options ...lark.MethodOptionFunc) (*lark.ListDirectoryCollborationShareEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryListDirectoryCollborationShareEntity() + + _, _, err := moduleCli.ListDirectoryCollborationShareEntity(ctx, &lark.ListDirectoryCollborationShareEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryDepartment(func(ctx context.Context, request *lark.CreateDirectoryDepartmentReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryDepartment() + + _, _, err := moduleCli.CreateDirectoryDepartment(ctx, &lark.CreateDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryDeleteDirectoryDepartment(func(ctx context.Context, request *lark.DeleteDirectoryDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteDirectoryDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryDeleteDirectoryDepartment() + + _, _, err := moduleCli.DeleteDirectoryDepartment(ctx, &lark.DeleteDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryDepartmentFilter(func(ctx context.Context, request *lark.CreateDirectoryDepartmentFilterReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryDepartmentFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryDepartmentFilter() + + _, _, err := moduleCli.CreateDirectoryDepartmentFilter(ctx, &lark.CreateDirectoryDepartmentFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryMGetDirectoryDepartment(func(ctx context.Context, request *lark.MGetDirectoryDepartmentReq, options ...lark.MethodOptionFunc) (*lark.MGetDirectoryDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryMGetDirectoryDepartment() + + _, _, err := moduleCli.MGetDirectoryDepartment(ctx, &lark.MGetDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryUpdateDirectoryDepartment(func(ctx context.Context, request *lark.UpdateDirectoryDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDirectoryDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryUpdateDirectoryDepartment() + + _, _, err := moduleCli.UpdateDirectoryDepartment(ctx, &lark.UpdateDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectorySearchDirectoryDepartment(func(ctx context.Context, request *lark.SearchDirectoryDepartmentReq, options ...lark.MethodOptionFunc) (*lark.SearchDirectoryDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectorySearchDirectoryDepartment() + + _, _, err := moduleCli.SearchDirectoryDepartment(ctx, &lark.SearchDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryEmployee(func(ctx context.Context, request *lark.CreateDirectoryEmployeeReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryEmployee() + + _, _, err := moduleCli.CreateDirectoryEmployee(ctx, &lark.CreateDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryDeleteDirectoryEmployee(func(ctx context.Context, request *lark.DeleteDirectoryEmployeeReq, options ...lark.MethodOptionFunc) (*lark.DeleteDirectoryEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryDeleteDirectoryEmployee() + + _, _, err := moduleCli.DeleteDirectoryEmployee(ctx, &lark.DeleteDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryEmployeeFilter(func(ctx context.Context, request *lark.CreateDirectoryEmployeeFilterReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryEmployeeFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryEmployeeFilter() + + _, _, err := moduleCli.CreateDirectoryEmployeeFilter(ctx, &lark.CreateDirectoryEmployeeFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryMGetDirectoryEmployee(func(ctx context.Context, request *lark.MGetDirectoryEmployeeReq, options ...lark.MethodOptionFunc) (*lark.MGetDirectoryEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryMGetDirectoryEmployee() + + _, _, err := moduleCli.MGetDirectoryEmployee(ctx, &lark.MGetDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryUpdateDirectoryEmployee(func(ctx context.Context, request *lark.UpdateDirectoryEmployeeReq, options ...lark.MethodOptionFunc) (*lark.UpdateDirectoryEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryUpdateDirectoryEmployee() + + _, _, err := moduleCli.UpdateDirectoryEmployee(ctx, &lark.UpdateDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryUpdateDirectoryEmployeeRegular(func(ctx context.Context, request *lark.UpdateDirectoryEmployeeRegularReq, options ...lark.MethodOptionFunc) (*lark.UpdateDirectoryEmployeeRegularResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryUpdateDirectoryEmployeeRegular() + + _, _, err := moduleCli.UpdateDirectoryEmployeeRegular(ctx, &lark.UpdateDirectoryEmployeeRegularReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryCreateDirectoryEmployeeResurrect(func(ctx context.Context, request *lark.CreateDirectoryEmployeeResurrectReq, options ...lark.MethodOptionFunc) (*lark.CreateDirectoryEmployeeResurrectResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryCreateDirectoryEmployeeResurrect() + + _, _, err := moduleCli.CreateDirectoryEmployeeResurrect(ctx, &lark.CreateDirectoryEmployeeResurrectReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectorySearchDirectoryEmployee(func(ctx context.Context, request *lark.SearchDirectoryEmployeeReq, options ...lark.MethodOptionFunc) (*lark.SearchDirectoryEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectorySearchDirectoryEmployee() + + _, _, err := moduleCli.SearchDirectoryEmployee(ctx, &lark.SearchDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDirectoryUpdateDirectoryEmployeeToBeResigned(func(ctx context.Context, request *lark.UpdateDirectoryEmployeeToBeResignedReq, options ...lark.MethodOptionFunc) (*lark.UpdateDirectoryEmployeeToBeResignedResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDirectoryUpdateDirectoryEmployeeToBeResigned() + + _, _, err := moduleCli.UpdateDirectoryEmployeeToBeResigned(ctx, &lark.UpdateDirectoryEmployeeToBeResignedReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Directory + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryCollaborationRule(ctx, &lark.CreateDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDirectoryCollaborationRule(ctx, &lark.DeleteDirectoryCollaborationRuleReq{ + CollaborationRuleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListDirectoryCollaborationRule(ctx, &lark.ListDirectoryCollaborationRuleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDirectoryCollaborationRule(ctx, &lark.UpdateDirectoryCollaborationRuleReq{ + CollaborationRuleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListDirectoryCollaborationTenant(ctx, &lark.ListDirectoryCollaborationTenantReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListDirectoryCollborationShareEntity(ctx, &lark.ListDirectoryCollborationShareEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryDepartment(ctx, &lark.CreateDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDirectoryDepartment(ctx, &lark.DeleteDirectoryDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryDepartmentFilter(ctx, &lark.CreateDirectoryDepartmentFilterReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MGetDirectoryDepartment(ctx, &lark.MGetDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDirectoryDepartment(ctx, &lark.UpdateDirectoryDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchDirectoryDepartment(ctx, &lark.SearchDirectoryDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryEmployee(ctx, &lark.CreateDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDirectoryEmployee(ctx, &lark.DeleteDirectoryEmployeeReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryEmployeeFilter(ctx, &lark.CreateDirectoryEmployeeFilterReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MGetDirectoryEmployee(ctx, &lark.MGetDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDirectoryEmployee(ctx, &lark.UpdateDirectoryEmployeeReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDirectoryEmployeeRegular(ctx, &lark.UpdateDirectoryEmployeeRegularReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDirectoryEmployeeResurrect(ctx, &lark.CreateDirectoryEmployeeResurrectReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchDirectoryEmployee(ctx, &lark.SearchDirectoryEmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDirectoryEmployeeToBeResigned(ctx, &lark.UpdateDirectoryEmployeeToBeResignedReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/docs_sample_test.go b/test/docs_sample_test.go new file mode 100644 index 00000000..b0f9f962 --- /dev/null +++ b/test/docs_sample_test.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Docs_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Docs + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Docs + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDocsGetDocsContent(func(ctx context.Context, request *lark.GetDocsContentReq, options ...lark.MethodOptionFunc) (*lark.GetDocsContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDocsGetDocsContent() + + _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Docs + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/drive_sample_test.go b/test/drive_sample_test.go index 967ea571..d258f45a 100644 --- a/test/drive_sample_test.go +++ b/test/drive_sample_test.go @@ -37,10 +37,12 @@ func Test_Drive_Sample_Failed(t *testing.T) { moduleCli := cli.Drive t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveRootFolderMeta(ctx, &lark.GetDriveRootFolderMetaReq{}) + + _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,2972 +50,53 @@ func Test_Drive_Sample_Failed(t *testing.T) { moduleCli := cli.Drive t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveRootFolderMeta(func(ctx context.Context, request *lark.GetDriveRootFolderMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveRootFolderMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveRootFolderMeta() - - _, _, err := moduleCli.GetDriveRootFolderMeta(ctx, &lark.GetDriveRootFolderMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileList(func(ctx context.Context, request *lark.GetDriveFileListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileList() - - _, _, err := moduleCli.GetDriveFileList(ctx, &lark.GetDriveFileListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFolderMeta(func(ctx context.Context, request *lark.GetDriveFolderMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFolderMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFolderMeta() - - _, _, err := moduleCli.GetDriveFolderMeta(ctx, &lark.GetDriveFolderMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveFolder(func(ctx context.Context, request *lark.CreateDriveFolderReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFolderResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveFolder() - - _, _, err := moduleCli.CreateDriveFolder(ctx, &lark.CreateDriveFolderReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileMeta(func(ctx context.Context, request *lark.GetDriveFileMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileMeta() - - _, _, err := moduleCli.GetDriveFileMeta(ctx, &lark.GetDriveFileMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveFile(func(ctx context.Context, request *lark.CreateDriveFileReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveFile() - - _, _, err := moduleCli.CreateDriveFile(ctx, &lark.CreateDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCopyDriveFile(func(ctx context.Context, request *lark.CopyDriveFileReq, options ...lark.MethodOptionFunc) (*lark.CopyDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCopyDriveFile() - - _, _, err := moduleCli.CopyDriveFile(ctx, &lark.CopyDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveMoveDriveFile(func(ctx context.Context, request *lark.MoveDriveFileReq, options ...lark.MethodOptionFunc) (*lark.MoveDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveMoveDriveFile() - - _, _, err := moduleCli.MoveDriveFile(ctx, &lark.MoveDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveFile(func(ctx context.Context, request *lark.DeleteDriveFileReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveFile() - - _, _, err := moduleCli.DeleteDriveFile(ctx, &lark.DeleteDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileStatistics(func(ctx context.Context, request *lark.GetDriveFileStatisticsReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileStatisticsResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileStatistics() - - _, _, err := moduleCli.GetDriveFileStatistics(ctx, &lark.GetDriveFileStatisticsReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveFileShortcut(func(ctx context.Context, request *lark.CreateDriveFileShortcutReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileShortcutResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveFileShortcut() - - _, _, err := moduleCli.CreateDriveFileShortcut(ctx, &lark.CreateDriveFileShortcutReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileTask(func(ctx context.Context, request *lark.GetDriveFileTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileTask() - - _, _, err := moduleCli.GetDriveFileTask(ctx, &lark.GetDriveFileTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUploadDriveMedia(func(ctx context.Context, request *lark.UploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.UploadDriveMediaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUploadDriveMedia() - - _, _, err := moduleCli.UploadDriveMedia(ctx, &lark.UploadDriveMediaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDownloadDriveMedia(func(ctx context.Context, request *lark.DownloadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveMediaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDownloadDriveMedia() - - _, _, err := moduleCli.DownloadDriveMedia(ctx, &lark.DownloadDriveMediaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDrivePrepareUploadDriveMedia(func(ctx context.Context, request *lark.PrepareUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.PrepareUploadDriveMediaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDrivePrepareUploadDriveMedia() - - _, _, err := moduleCli.PrepareUploadDriveMedia(ctx, &lark.PrepareUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDrivePartUploadDriveMedia(func(ctx context.Context, request *lark.PartUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.PartUploadDriveMediaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDrivePartUploadDriveMedia() - - _, _, err := moduleCli.PartUploadDriveMedia(ctx, &lark.PartUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveFinishUploadDriveMedia(func(ctx context.Context, request *lark.FinishUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.FinishUploadDriveMediaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveFinishUploadDriveMedia() - - _, _, err := moduleCli.FinishUploadDriveMedia(ctx, &lark.FinishUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDocxDocument(func(ctx context.Context, request *lark.GetDocxDocumentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxDocumentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDocxDocument() - - _, _, err := moduleCli.GetDocxDocument(ctx, &lark.GetDocxDocumentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDocxDocumentRawContent(func(ctx context.Context, request *lark.GetDocxDocumentRawContentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxDocumentRawContentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDocxDocumentRawContent() - - _, _, err := moduleCli.GetDocxDocumentRawContent(ctx, &lark.GetDocxDocumentRawContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDocxBlockListOfDocument(func(ctx context.Context, request *lark.GetDocxBlockListOfDocumentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockListOfDocumentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDocxBlockListOfDocument() - - _, _, err := moduleCli.GetDocxBlockListOfDocument(ctx, &lark.GetDocxBlockListOfDocumentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDocx(func(ctx context.Context, request *lark.CreateDocxReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDocx() - - _, _, err := moduleCli.CreateDocx(ctx, &lark.CreateDocxReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDocxBlock(func(ctx context.Context, request *lark.GetDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDocxBlock() - - _, _, err := moduleCli.GetDocxBlock(ctx, &lark.GetDocxBlockReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDocxBlock(func(ctx context.Context, request *lark.CreateDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxBlockResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDocxBlock() - - _, _, err := moduleCli.CreateDocxBlock(ctx, &lark.CreateDocxBlockReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDocxBlock(func(ctx context.Context, request *lark.UpdateDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.UpdateDocxBlockResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDocxBlock() - - _, _, err := moduleCli.UpdateDocxBlock(ctx, &lark.UpdateDocxBlockReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchDeleteDocxBlock(func(ctx context.Context, request *lark.BatchDeleteDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteDocxBlockResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchDeleteDocxBlock() - - _, _, err := moduleCli.BatchDeleteDocxBlock(ctx, &lark.BatchDeleteDocxBlockReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDocxBlockListOfBlock(func(ctx context.Context, request *lark.GetDocxBlockListOfBlockReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockListOfBlockResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDocxBlockListOfBlock() - - _, _, err := moduleCli.GetDocxBlockListOfBlock(ctx, &lark.GetDocxBlockListOfBlockReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveSubscribeDriveFile(func(ctx context.Context, request *lark.SubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.SubscribeDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveSubscribeDriveFile() - - _, _, err := moduleCli.SubscribeDriveFile(ctx, &lark.SubscribeDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUnsubscribeDriveFile(func(ctx context.Context, request *lark.UnsubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeDriveFileResp, *lark.Response, error) { + cli.Mock().MockDriveGetWhiteboardNodeList(func(ctx context.Context, request *lark.GetWhiteboardNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWhiteboardNodeListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockDriveUnsubscribeDriveFile() + defer cli.Mock().UnMockDriveGetWhiteboardNodeList() - _, _, err := moduleCli.UnsubscribeDriveFile(ctx, &lark.UnsubscribeDriveFileReq{}) + _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSubscribeDriveFile(func(ctx context.Context, request *lark.GetSubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.GetSubscribeDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSubscribeDriveFile() - - _, _, err := moduleCli.GetSubscribeDriveFile(ctx, &lark.GetSubscribeDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveSearchDriveFile(func(ctx context.Context, request *lark.SearchDriveFileReq, options ...lark.MethodOptionFunc) (*lark.SearchDriveFileResp, *lark.Response, error) { + cli.Mock().MockDriveCreateSpreadsheet(func(ctx context.Context, request *lark.CreateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.CreateSpreadsheetResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockDriveSearchDriveFile() + defer cli.Mock().UnMockDriveCreateSpreadsheet() - _, _, err := moduleCli.SearchDriveFile(ctx, &lark.SearchDriveFileReq{}) + _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveSheetFile(func(ctx context.Context, request *lark.DeleteDriveSheetFileReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveSheetFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveSheetFile() + }) - _, _, err := moduleCli.DeleteDriveSheetFile(ctx, &lark.DeleteDriveSheetFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Drive + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFolderChildren(func(ctx context.Context, request *lark.GetDriveFolderChildrenReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFolderChildrenResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFolderChildren() - _, _, err := moduleCli.GetDriveFolderChildren(ctx, &lark.GetDriveFolderChildrenReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveExportTask(func(ctx context.Context, request *lark.CreateDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveExportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") + _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{ + WhiteboardID: "x", }) - defer cli.Mock().UnMockDriveCreateDriveExportTask() - - _, _, err := moduleCli.CreateDriveExportTask(ctx, &lark.CreateDriveExportTaskReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveExportTask(func(ctx context.Context, request *lark.GetDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveExportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveExportTask() - _, _, err := moduleCli.GetDriveExportTask(ctx, &lark.GetDriveExportTaskReq{}) + _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDownloadDriveExportTask(func(ctx context.Context, request *lark.DownloadDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveExportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDownloadDriveExportTask() - - _, _, err := moduleCli.DownloadDriveExportTask(ctx, &lark.DownloadDriveExportTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileViewRecordList(func(ctx context.Context, request *lark.GetDriveFileViewRecordListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileViewRecordListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileViewRecordList() - - _, _, err := moduleCli.GetDriveFileViewRecordList(ctx, &lark.GetDriveFileViewRecordListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveFileVersion(func(ctx context.Context, request *lark.CreateDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveFileVersion() - - _, _, err := moduleCli.CreateDriveFileVersion(ctx, &lark.CreateDriveFileVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveFileVersion(func(ctx context.Context, request *lark.DeleteDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveFileVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveFileVersion() - - _, _, err := moduleCli.DeleteDriveFileVersion(ctx, &lark.DeleteDriveFileVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileVersion(func(ctx context.Context, request *lark.GetDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileVersionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileVersion() - - _, _, err := moduleCli.GetDriveFileVersion(ctx, &lark.GetDriveFileVersionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileVersionList(func(ctx context.Context, request *lark.GetDriveFileVersionListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileVersionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileVersionList() - - _, _, err := moduleCli.GetDriveFileVersionList(ctx, &lark.GetDriveFileVersionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDownloadDriveFile(func(ctx context.Context, request *lark.DownloadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDownloadDriveFile() - - _, _, err := moduleCli.DownloadDriveFile(ctx, &lark.DownloadDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUploadDriveFile(func(ctx context.Context, request *lark.UploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.UploadDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUploadDriveFile() - - _, _, err := moduleCli.UploadDriveFile(ctx, &lark.UploadDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDrivePrepareUploadDriveFile(func(ctx context.Context, request *lark.PrepareUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.PrepareUploadDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDrivePrepareUploadDriveFile() - - _, _, err := moduleCli.PrepareUploadDriveFile(ctx, &lark.PrepareUploadDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDrivePartUploadDriveFile(func(ctx context.Context, request *lark.PartUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.PartUploadDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDrivePartUploadDriveFile() - - _, _, err := moduleCli.PartUploadDriveFile(ctx, &lark.PartUploadDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveFinishUploadDriveFile(func(ctx context.Context, request *lark.FinishUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.FinishUploadDriveFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveFinishUploadDriveFile() - - _, _, err := moduleCli.FinishUploadDriveFile(ctx, &lark.FinishUploadDriveFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveMemberPermissionOld(func(ctx context.Context, request *lark.CreateDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveMemberPermissionOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveMemberPermissionOld() - - _, _, err := moduleCli.CreateDriveMemberPermissionOld(ctx, &lark.CreateDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveTransferDriveOwnerPermission(func(ctx context.Context, request *lark.TransferDriveOwnerPermissionReq, options ...lark.MethodOptionFunc) (*lark.TransferDriveOwnerPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveTransferDriveOwnerPermission() - - _, _, err := moduleCli.TransferDriveOwnerPermission(ctx, &lark.TransferDriveOwnerPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCheckDriveMemberPermission(func(ctx context.Context, request *lark.CheckDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.CheckDriveMemberPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCheckDriveMemberPermission() - - _, _, err := moduleCli.CheckDriveMemberPermission(ctx, &lark.CheckDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveMemberPermissionList(func(ctx context.Context, request *lark.GetDriveMemberPermissionListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveMemberPermissionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveMemberPermissionList() - - _, _, err := moduleCli.GetDriveMemberPermissionList(ctx, &lark.GetDriveMemberPermissionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveMemberPermissionListOld(func(ctx context.Context, request *lark.GetDriveMemberPermissionListOldReq, options ...lark.MethodOptionFunc) (*lark.GetDriveMemberPermissionListOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveMemberPermissionListOld() - - _, _, err := moduleCli.GetDriveMemberPermissionListOld(ctx, &lark.GetDriveMemberPermissionListOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveMemberPermission(func(ctx context.Context, request *lark.CreateDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveMemberPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveMemberPermission() - - _, _, err := moduleCli.CreateDriveMemberPermission(ctx, &lark.CreateDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveMemberPermission(func(ctx context.Context, request *lark.UpdateDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveMemberPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveMemberPermission() - - _, _, err := moduleCli.UpdateDriveMemberPermission(ctx, &lark.UpdateDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveMemberPermission(func(ctx context.Context, request *lark.DeleteDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveMemberPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveMemberPermission() - - _, _, err := moduleCli.DeleteDriveMemberPermission(ctx, &lark.DeleteDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDrivePublicPermissionOld(func(ctx context.Context, request *lark.GetDrivePublicPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDrivePublicPermissionOld() - - _, _, err := moduleCli.GetDrivePublicPermissionOld(ctx, &lark.GetDrivePublicPermissionOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDrivePermissionPublicPassword(func(ctx context.Context, request *lark.CreateDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.CreateDrivePermissionPublicPasswordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDrivePermissionPublicPassword() - - _, _, err := moduleCli.CreateDrivePermissionPublicPassword(ctx, &lark.CreateDrivePermissionPublicPasswordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDrivePermissionPublicPassword(func(ctx context.Context, request *lark.UpdateDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePermissionPublicPasswordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDrivePermissionPublicPassword() - - _, _, err := moduleCli.UpdateDrivePermissionPublicPassword(ctx, &lark.UpdateDrivePermissionPublicPasswordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDrivePermissionPublicPassword(func(ctx context.Context, request *lark.DeleteDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.DeleteDrivePermissionPublicPasswordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDrivePermissionPublicPassword() - - _, _, err := moduleCli.DeleteDrivePermissionPublicPassword(ctx, &lark.DeleteDrivePermissionPublicPasswordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDrivePublicPermission(func(ctx context.Context, request *lark.GetDrivePublicPermissionReq, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDrivePublicPermission() - - _, _, err := moduleCli.GetDrivePublicPermission(ctx, &lark.GetDrivePublicPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDrivePublicPermission(func(ctx context.Context, request *lark.UpdateDrivePublicPermissionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePublicPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDrivePublicPermission() - - _, _, err := moduleCli.UpdateDrivePublicPermission(ctx, &lark.UpdateDrivePublicPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDrivePublicPermissionV2(func(ctx context.Context, request *lark.GetDrivePublicPermissionV2Req, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionV2Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDrivePublicPermissionV2() - - _, _, err := moduleCli.GetDrivePublicPermissionV2(ctx, &lark.GetDrivePublicPermissionV2Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDrivePublicPermissionV2(func(ctx context.Context, request *lark.UpdateDrivePublicPermissionV2Req, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePublicPermissionV2Resp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDrivePublicPermissionV2() - - _, _, err := moduleCli.UpdateDrivePublicPermissionV2(ctx, &lark.UpdateDrivePublicPermissionV2Req{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchGetDriveMediaTmpDownloadURL(func(ctx context.Context, request *lark.BatchGetDriveMediaTmpDownloadURLReq, options ...lark.MethodOptionFunc) (*lark.BatchGetDriveMediaTmpDownloadURLResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchGetDriveMediaTmpDownloadURL() - - _, _, err := moduleCli.BatchGetDriveMediaTmpDownloadURL(ctx, &lark.BatchGetDriveMediaTmpDownloadURLReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveCommentList(func(ctx context.Context, request *lark.GetDriveCommentListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveCommentList() - - _, _, err := moduleCli.GetDriveCommentList(ctx, &lark.GetDriveCommentListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveComment(func(ctx context.Context, request *lark.CreateDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveCommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveComment() - - _, _, err := moduleCli.CreateDriveComment(ctx, &lark.CreateDriveCommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveComment(func(ctx context.Context, request *lark.GetDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveComment() - - _, _, err := moduleCli.GetDriveComment(ctx, &lark.GetDriveCommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchGetDriveComment(func(ctx context.Context, request *lark.BatchGetDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetDriveCommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchGetDriveComment() - - _, _, err := moduleCli.BatchGetDriveComment(ctx, &lark.BatchGetDriveCommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveCommentReplyList(func(ctx context.Context, request *lark.GetDriveCommentReplyListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentReplyListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveCommentReplyList() - - _, _, err := moduleCli.GetDriveCommentReplyList(ctx, &lark.GetDriveCommentReplyListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveComment(func(ctx context.Context, request *lark.UpdateDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveCommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveComment() - - _, _, err := moduleCli.UpdateDriveComment(ctx, &lark.UpdateDriveCommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveComment(func(ctx context.Context, request *lark.DeleteDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveCommentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveComment() - - _, _, err := moduleCli.DeleteDriveComment(ctx, &lark.DeleteDriveCommentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveCommentPatch(func(ctx context.Context, request *lark.UpdateDriveCommentPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveCommentPatchResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveCommentPatch() - - _, _, err := moduleCli.UpdateDriveCommentPatch(ctx, &lark.UpdateDriveCommentPatchReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveFileSubscription(func(ctx context.Context, request *lark.GetDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileSubscriptionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveFileSubscription() - - _, _, err := moduleCli.GetDriveFileSubscription(ctx, &lark.GetDriveFileSubscriptionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveFileSubscription(func(ctx context.Context, request *lark.CreateDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileSubscriptionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveFileSubscription() - - _, _, err := moduleCli.CreateDriveFileSubscription(ctx, &lark.CreateDriveFileSubscriptionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveFileSubscription(func(ctx context.Context, request *lark.UpdateDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveFileSubscriptionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveFileSubscription() - - _, _, err := moduleCli.UpdateDriveFileSubscription(ctx, &lark.UpdateDriveFileSubscriptionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveDoc(func(ctx context.Context, request *lark.CreateDriveDocReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveDocResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveDoc() - - _, _, err := moduleCli.CreateDriveDoc(ctx, &lark.CreateDriveDocReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveDocContent(func(ctx context.Context, request *lark.GetDriveDocContentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocContentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveDocContent() - - _, _, err := moduleCli.GetDriveDocContent(ctx, &lark.GetDriveDocContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveDocContent(func(ctx context.Context, request *lark.UpdateDriveDocContentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveDocContentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveDocContent() - - _, _, err := moduleCli.UpdateDriveDocContent(ctx, &lark.UpdateDriveDocContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveDocRawContent(func(ctx context.Context, request *lark.GetDriveDocRawContentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocRawContentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveDocRawContent() - - _, _, err := moduleCli.GetDriveDocRawContent(ctx, &lark.GetDriveDocRawContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveDocMeta(func(ctx context.Context, request *lark.GetDriveDocMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveDocMeta() - - _, _, err := moduleCli.GetDriveDocMeta(ctx, &lark.GetDriveDocMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSpreadsheet(func(ctx context.Context, request *lark.UpdateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.UpdateSpreadsheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSpreadsheet() - - _, _, err := moduleCli.UpdateSpreadsheet(ctx, &lark.UpdateSpreadsheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSpreadsheet(func(ctx context.Context, request *lark.GetSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.GetSpreadsheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSpreadsheet() - - _, _, err := moduleCli.GetSpreadsheet(ctx, &lark.GetSpreadsheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSpreadsheet(func(ctx context.Context, request *lark.CreateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.CreateSpreadsheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSpreadsheet() - - _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetMeta(func(ctx context.Context, request *lark.GetSheetMetaReq, options ...lark.MethodOptionFunc) (*lark.GetSheetMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetMeta() - - _, _, err := moduleCli.GetSheetMeta(ctx, &lark.GetSheetMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetProperty(func(ctx context.Context, request *lark.UpdateSheetPropertyReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetPropertyResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetProperty() - - _, _, err := moduleCli.UpdateSheetProperty(ctx, &lark.UpdateSheetPropertyReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheet(func(ctx context.Context, request *lark.GetSheetReq, options ...lark.MethodOptionFunc) (*lark.GetSheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheet() - - _, _, err := moduleCli.GetSheet(ctx, &lark.GetSheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetList(func(ctx context.Context, request *lark.GetSheetListReq, options ...lark.MethodOptionFunc) (*lark.GetSheetListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetList() - - _, _, err := moduleCli.GetSheetList(ctx, &lark.GetSheetListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchUpdateSheet(func(ctx context.Context, request *lark.BatchUpdateSheetReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateSheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchUpdateSheet() - - _, _, err := moduleCli.BatchUpdateSheet(ctx, &lark.BatchUpdateSheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveImportSheet(func(ctx context.Context, request *lark.ImportSheetReq, options ...lark.MethodOptionFunc) (*lark.ImportSheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveImportSheet() - - _, _, err := moduleCli.ImportSheet(ctx, &lark.ImportSheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateDriveImportTask(func(ctx context.Context, request *lark.CreateDriveImportTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveImportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateDriveImportTask() - - _, _, err := moduleCli.CreateDriveImportTask(ctx, &lark.CreateDriveImportTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetDriveImportTask(func(ctx context.Context, request *lark.GetDriveImportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveImportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetDriveImportTask() - - _, _, err := moduleCli.GetDriveImportTask(ctx, &lark.GetDriveImportTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveMoveSheetDimension(func(ctx context.Context, request *lark.MoveSheetDimensionReq, options ...lark.MethodOptionFunc) (*lark.MoveSheetDimensionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveMoveSheetDimension() - - _, _, err := moduleCli.MoveSheetDimension(ctx, &lark.MoveSheetDimensionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDrivePrependSheetValue(func(ctx context.Context, request *lark.PrependSheetValueReq, options ...lark.MethodOptionFunc) (*lark.PrependSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDrivePrependSheetValue() - - _, _, err := moduleCli.PrependSheetValue(ctx, &lark.PrependSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveAppendSheetValue(func(ctx context.Context, request *lark.AppendSheetValueReq, options ...lark.MethodOptionFunc) (*lark.AppendSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveAppendSheetValue() - - _, _, err := moduleCli.AppendSheetValue(ctx, &lark.AppendSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveInsertSheetDimensionRange(func(ctx context.Context, request *lark.InsertSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.InsertSheetDimensionRangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveInsertSheetDimensionRange() - - _, _, err := moduleCli.InsertSheetDimensionRange(ctx, &lark.InsertSheetDimensionRangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveAddSheetDimensionRange(func(ctx context.Context, request *lark.AddSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.AddSheetDimensionRangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveAddSheetDimensionRange() - - _, _, err := moduleCli.AddSheetDimensionRange(ctx, &lark.AddSheetDimensionRangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetDimensionRange(func(ctx context.Context, request *lark.UpdateSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetDimensionRangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetDimensionRange() - - _, _, err := moduleCli.UpdateSheetDimensionRange(ctx, &lark.UpdateSheetDimensionRangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetDimensionRange(func(ctx context.Context, request *lark.DeleteSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetDimensionRangeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetDimensionRange() - - _, _, err := moduleCli.DeleteSheetDimensionRange(ctx, &lark.DeleteSheetDimensionRangeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetValue(func(ctx context.Context, request *lark.GetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.GetSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetValue() - - _, _, err := moduleCli.GetSheetValue(ctx, &lark.GetSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchGetSheetValue(func(ctx context.Context, request *lark.BatchGetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.BatchGetSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchGetSheetValue() - - _, _, err := moduleCli.BatchGetSheetValue(ctx, &lark.BatchGetSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveSetSheetValue(func(ctx context.Context, request *lark.SetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.SetSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveSetSheetValue() - - _, _, err := moduleCli.SetSheetValue(ctx, &lark.SetSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchSetSheetValue(func(ctx context.Context, request *lark.BatchSetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.BatchSetSheetValueResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchSetSheetValue() - - _, _, err := moduleCli.BatchSetSheetValue(ctx, &lark.BatchSetSheetValueReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveSetSheetStyle(func(ctx context.Context, request *lark.SetSheetStyleReq, options ...lark.MethodOptionFunc) (*lark.SetSheetStyleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveSetSheetStyle() - - _, _, err := moduleCli.SetSheetStyle(ctx, &lark.SetSheetStyleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveBatchSetSheetStyle(func(ctx context.Context, request *lark.BatchSetSheetStyleReq, options ...lark.MethodOptionFunc) (*lark.BatchSetSheetStyleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveBatchSetSheetStyle() - - _, _, err := moduleCli.BatchSetSheetStyle(ctx, &lark.BatchSetSheetStyleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveMergeSheetCell(func(ctx context.Context, request *lark.MergeSheetCellReq, options ...lark.MethodOptionFunc) (*lark.MergeSheetCellResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveMergeSheetCell() - - _, _, err := moduleCli.MergeSheetCell(ctx, &lark.MergeSheetCellReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUnmergeSheetCell(func(ctx context.Context, request *lark.UnmergeSheetCellReq, options ...lark.MethodOptionFunc) (*lark.UnmergeSheetCellResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUnmergeSheetCell() - - _, _, err := moduleCli.UnmergeSheetCell(ctx, &lark.UnmergeSheetCellReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveSetSheetValueImage(func(ctx context.Context, request *lark.SetSheetValueImageReq, options ...lark.MethodOptionFunc) (*lark.SetSheetValueImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveSetSheetValueImage() - - _, _, err := moduleCli.SetSheetValueImage(ctx, &lark.SetSheetValueImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveFindSheet(func(ctx context.Context, request *lark.FindSheetReq, options ...lark.MethodOptionFunc) (*lark.FindSheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveFindSheet() - - _, _, err := moduleCli.FindSheet(ctx, &lark.FindSheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveReplaceSheet(func(ctx context.Context, request *lark.ReplaceSheetReq, options ...lark.MethodOptionFunc) (*lark.ReplaceSheetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveReplaceSheet() - - _, _, err := moduleCli.ReplaceSheet(ctx, &lark.ReplaceSheetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetConditionFormat(func(ctx context.Context, request *lark.CreateSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetConditionFormatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetConditionFormat() - - _, _, err := moduleCli.CreateSheetConditionFormat(ctx, &lark.CreateSheetConditionFormatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetConditionFormat(func(ctx context.Context, request *lark.GetSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.GetSheetConditionFormatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetConditionFormat() - - _, _, err := moduleCli.GetSheetConditionFormat(ctx, &lark.GetSheetConditionFormatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetConditionFormat(func(ctx context.Context, request *lark.UpdateSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetConditionFormatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetConditionFormat() - - _, _, err := moduleCli.UpdateSheetConditionFormat(ctx, &lark.UpdateSheetConditionFormatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetConditionFormat(func(ctx context.Context, request *lark.DeleteSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetConditionFormatResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetConditionFormat() - - _, _, err := moduleCli.DeleteSheetConditionFormat(ctx, &lark.DeleteSheetConditionFormatReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetProtectedDimension(func(ctx context.Context, request *lark.CreateSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetProtectedDimensionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetProtectedDimension() - - _, _, err := moduleCli.CreateSheetProtectedDimension(ctx, &lark.CreateSheetProtectedDimensionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetProtectedDimension(func(ctx context.Context, request *lark.GetSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.GetSheetProtectedDimensionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetProtectedDimension() - - _, _, err := moduleCli.GetSheetProtectedDimension(ctx, &lark.GetSheetProtectedDimensionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetProtectedDimension(func(ctx context.Context, request *lark.UpdateSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetProtectedDimensionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetProtectedDimension() - - _, _, err := moduleCli.UpdateSheetProtectedDimension(ctx, &lark.UpdateSheetProtectedDimensionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetProtectedDimension(func(ctx context.Context, request *lark.DeleteSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetProtectedDimensionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetProtectedDimension() - - _, _, err := moduleCli.DeleteSheetProtectedDimension(ctx, &lark.DeleteSheetProtectedDimensionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetDataValidationDropdown(func(ctx context.Context, request *lark.CreateSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetDataValidationDropdownResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetDataValidationDropdown() - - _, _, err := moduleCli.CreateSheetDataValidationDropdown(ctx, &lark.CreateSheetDataValidationDropdownReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetDataValidationDropdown(func(ctx context.Context, request *lark.DeleteSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetDataValidationDropdownResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetDataValidationDropdown() - - _, _, err := moduleCli.DeleteSheetDataValidationDropdown(ctx, &lark.DeleteSheetDataValidationDropdownReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetDataValidationDropdown(func(ctx context.Context, request *lark.UpdateSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetDataValidationDropdownResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetDataValidationDropdown() - - _, _, err := moduleCli.UpdateSheetDataValidationDropdown(ctx, &lark.UpdateSheetDataValidationDropdownReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetDataValidationDropdown(func(ctx context.Context, request *lark.GetSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.GetSheetDataValidationDropdownResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetDataValidationDropdown() - - _, _, err := moduleCli.GetSheetDataValidationDropdown(ctx, &lark.GetSheetDataValidationDropdownReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetFilter(func(ctx context.Context, request *lark.CreateSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetFilter() - - _, _, err := moduleCli.CreateSheetFilter(ctx, &lark.CreateSheetFilterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetFilter(func(ctx context.Context, request *lark.DeleteSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetFilter() - - _, _, err := moduleCli.DeleteSheetFilter(ctx, &lark.DeleteSheetFilterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetFilter(func(ctx context.Context, request *lark.UpdateSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetFilter() - - _, _, err := moduleCli.UpdateSheetFilter(ctx, &lark.UpdateSheetFilterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetFilter(func(ctx context.Context, request *lark.GetSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetFilter() - - _, _, err := moduleCli.GetSheetFilter(ctx, &lark.GetSheetFilterReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetFilterView(func(ctx context.Context, request *lark.CreateSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterViewResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetFilterView() - - _, _, err := moduleCli.CreateSheetFilterView(ctx, &lark.CreateSheetFilterViewReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetFilterView(func(ctx context.Context, request *lark.DeleteSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterViewResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetFilterView() - - _, _, err := moduleCli.DeleteSheetFilterView(ctx, &lark.DeleteSheetFilterViewReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetFilterView(func(ctx context.Context, request *lark.UpdateSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterViewResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetFilterView() - - _, _, err := moduleCli.UpdateSheetFilterView(ctx, &lark.UpdateSheetFilterViewReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetFilterView(func(ctx context.Context, request *lark.GetSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterViewResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetFilterView() - - _, _, err := moduleCli.GetSheetFilterView(ctx, &lark.GetSheetFilterViewReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveQuerySheetFilterView(func(ctx context.Context, request *lark.QuerySheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFilterViewResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveQuerySheetFilterView() - - _, _, err := moduleCli.QuerySheetFilterView(ctx, &lark.QuerySheetFilterViewReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetFilterViewCondition(func(ctx context.Context, request *lark.CreateSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterViewConditionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetFilterViewCondition() - - _, _, err := moduleCli.CreateSheetFilterViewCondition(ctx, &lark.CreateSheetFilterViewConditionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetFilterViewCondition(func(ctx context.Context, request *lark.DeleteSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterViewConditionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetFilterViewCondition() - - _, _, err := moduleCli.DeleteSheetFilterViewCondition(ctx, &lark.DeleteSheetFilterViewConditionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetFilterViewCondition(func(ctx context.Context, request *lark.UpdateSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterViewConditionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetFilterViewCondition() - - _, _, err := moduleCli.UpdateSheetFilterViewCondition(ctx, &lark.UpdateSheetFilterViewConditionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetFilterViewCondition(func(ctx context.Context, request *lark.GetSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterViewConditionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetFilterViewCondition() - - _, _, err := moduleCli.GetSheetFilterViewCondition(ctx, &lark.GetSheetFilterViewConditionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveQuerySheetFilterViewCondition(func(ctx context.Context, request *lark.QuerySheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFilterViewConditionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveQuerySheetFilterViewCondition() - - _, _, err := moduleCli.QuerySheetFilterViewCondition(ctx, &lark.QuerySheetFilterViewConditionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSheetFloatImage(func(ctx context.Context, request *lark.CreateSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFloatImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateSheetFloatImage() - - _, _, err := moduleCli.CreateSheetFloatImage(ctx, &lark.CreateSheetFloatImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteSheetFloatImage(func(ctx context.Context, request *lark.DeleteSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFloatImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteSheetFloatImage() - - _, _, err := moduleCli.DeleteSheetFloatImage(ctx, &lark.DeleteSheetFloatImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateSheetFloatImage(func(ctx context.Context, request *lark.UpdateSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFloatImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateSheetFloatImage() - - _, _, err := moduleCli.UpdateSheetFloatImage(ctx, &lark.UpdateSheetFloatImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetSheetFloatImage(func(ctx context.Context, request *lark.GetSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFloatImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetSheetFloatImage() - - _, _, err := moduleCli.GetSheetFloatImage(ctx, &lark.GetSheetFloatImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveQuerySheetFloatImage(func(ctx context.Context, request *lark.QuerySheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFloatImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveQuerySheetFloatImage() - - _, _, err := moduleCli.QuerySheetFloatImage(ctx, &lark.QuerySheetFloatImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateWikiSpace(func(ctx context.Context, request *lark.CreateWikiSpaceReq, options ...lark.MethodOptionFunc) (*lark.CreateWikiSpaceResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateWikiSpace() - - _, _, err := moduleCli.CreateWikiSpace(ctx, &lark.CreateWikiSpaceReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWikiSpaceList(func(ctx context.Context, request *lark.GetWikiSpaceListReq, options ...lark.MethodOptionFunc) (*lark.GetWikiSpaceListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetWikiSpaceList() - - _, _, err := moduleCli.GetWikiSpaceList(ctx, &lark.GetWikiSpaceListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWikiSpace(func(ctx context.Context, request *lark.GetWikiSpaceReq, options ...lark.MethodOptionFunc) (*lark.GetWikiSpaceResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetWikiSpace() - - _, _, err := moduleCli.GetWikiSpace(ctx, &lark.GetWikiSpaceReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateWikiSpaceSetting(func(ctx context.Context, request *lark.UpdateWikiSpaceSettingReq, options ...lark.MethodOptionFunc) (*lark.UpdateWikiSpaceSettingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateWikiSpaceSetting() - - _, _, err := moduleCli.UpdateWikiSpaceSetting(ctx, &lark.UpdateWikiSpaceSettingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteWikiSpaceMember(func(ctx context.Context, request *lark.DeleteWikiSpaceMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteWikiSpaceMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteWikiSpaceMember() - - _, _, err := moduleCli.DeleteWikiSpaceMember(ctx, &lark.DeleteWikiSpaceMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveAddWikiSpaceMember(func(ctx context.Context, request *lark.AddWikiSpaceMemberReq, options ...lark.MethodOptionFunc) (*lark.AddWikiSpaceMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveAddWikiSpaceMember() - - _, _, err := moduleCli.AddWikiSpaceMember(ctx, &lark.AddWikiSpaceMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateWikiNode(func(ctx context.Context, request *lark.CreateWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.CreateWikiNodeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCreateWikiNode() - - _, _, err := moduleCli.CreateWikiNode(ctx, &lark.CreateWikiNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWikiNodeList(func(ctx context.Context, request *lark.GetWikiNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWikiNodeListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetWikiNodeList() - - _, _, err := moduleCli.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveMoveWikiNode(func(ctx context.Context, request *lark.MoveWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.MoveWikiNodeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveMoveWikiNode() - - _, _, err := moduleCli.MoveWikiNode(ctx, &lark.MoveWikiNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateWikiNodeTitle(func(ctx context.Context, request *lark.UpdateWikiNodeTitleReq, options ...lark.MethodOptionFunc) (*lark.UpdateWikiNodeTitleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateWikiNodeTitle() - - _, _, err := moduleCli.UpdateWikiNodeTitle(ctx, &lark.UpdateWikiNodeTitleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCopyWikiNode(func(ctx context.Context, request *lark.CopyWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.CopyWikiNodeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCopyWikiNode() - - _, _, err := moduleCli.CopyWikiNode(ctx, &lark.CopyWikiNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWikiNode(func(ctx context.Context, request *lark.GetWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.GetWikiNodeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetWikiNode() - - _, _, err := moduleCli.GetWikiNode(ctx, &lark.GetWikiNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveMoveDocsToWiki(func(ctx context.Context, request *lark.MoveDocsToWikiReq, options ...lark.MethodOptionFunc) (*lark.MoveDocsToWikiResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveMoveDocsToWiki() - - _, _, err := moduleCli.MoveDocsToWiki(ctx, &lark.MoveDocsToWikiReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWikiTask(func(ctx context.Context, request *lark.GetWikiTaskReq, options ...lark.MethodOptionFunc) (*lark.GetWikiTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveGetWikiTask() - - _, _, err := moduleCli.GetWikiTask(ctx, &lark.GetWikiTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveDeleteDriveMemberPermissionOld(func(ctx context.Context, request *lark.DeleteDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveMemberPermissionOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveDeleteDriveMemberPermissionOld() - - _, _, err := moduleCli.DeleteDriveMemberPermissionOld(ctx, &lark.DeleteDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveUpdateDriveMemberPermissionOld(func(ctx context.Context, request *lark.UpdateDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveMemberPermissionOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveUpdateDriveMemberPermissionOld() - - _, _, err := moduleCli.UpdateDriveMemberPermissionOld(ctx, &lark.UpdateDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveTransferDriveMemberPermission(func(ctx context.Context, request *lark.TransferDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.TransferDriveMemberPermissionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveTransferDriveMemberPermission() - - _, _, err := moduleCli.TransferDriveMemberPermission(ctx, &lark.TransferDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCheckDriveMemberPermissionOld(func(ctx context.Context, request *lark.CheckDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.CheckDriveMemberPermissionOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDriveCheckDriveMemberPermissionOld() - - _, _, err := moduleCli.CheckDriveMemberPermissionOld(ctx, &lark.CheckDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveRootFolderMeta(ctx, &lark.GetDriveRootFolderMetaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileList(ctx, &lark.GetDriveFileListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFolderMeta(ctx, &lark.GetDriveFolderMetaReq{ - FolderToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveFolder(ctx, &lark.CreateDriveFolderReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileMeta(ctx, &lark.GetDriveFileMetaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveFile(ctx, &lark.CreateDriveFileReq{ - FolderToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CopyDriveFile(ctx, &lark.CopyDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MoveDriveFile(ctx, &lark.MoveDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveFile(ctx, &lark.DeleteDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileStatistics(ctx, &lark.GetDriveFileStatisticsReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveFileShortcut(ctx, &lark.CreateDriveFileShortcutReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileTask(ctx, &lark.GetDriveFileTaskReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UploadDriveMedia(ctx, &lark.UploadDriveMediaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadDriveMedia(ctx, &lark.DownloadDriveMediaReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.PrepareUploadDriveMedia(ctx, &lark.PrepareUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.PartUploadDriveMedia(ctx, &lark.PartUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.FinishUploadDriveMedia(ctx, &lark.FinishUploadDriveMediaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDocxDocument(ctx, &lark.GetDocxDocumentReq{ - DocumentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDocxDocumentRawContent(ctx, &lark.GetDocxDocumentRawContentReq{ - DocumentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDocxBlockListOfDocument(ctx, &lark.GetDocxBlockListOfDocumentReq{ - DocumentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDocx(ctx, &lark.CreateDocxReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDocxBlock(ctx, &lark.GetDocxBlockReq{ - DocumentID: "x", - BlockID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDocxBlock(ctx, &lark.CreateDocxBlockReq{ - DocumentID: "x", - BlockID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDocxBlock(ctx, &lark.UpdateDocxBlockReq{ - DocumentID: "x", - BlockID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteDocxBlock(ctx, &lark.BatchDeleteDocxBlockReq{ - DocumentID: "x", - BlockID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDocxBlockListOfBlock(ctx, &lark.GetDocxBlockListOfBlockReq{ - DocumentID: "x", - BlockID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeDriveFile(ctx, &lark.SubscribeDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeDriveFile(ctx, &lark.UnsubscribeDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSubscribeDriveFile(ctx, &lark.GetSubscribeDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchDriveFile(ctx, &lark.SearchDriveFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveSheetFile(ctx, &lark.DeleteDriveSheetFileReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFolderChildren(ctx, &lark.GetDriveFolderChildrenReq{ - FolderToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveExportTask(ctx, &lark.CreateDriveExportTaskReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveExportTask(ctx, &lark.GetDriveExportTaskReq{ - Ticket: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadDriveExportTask(ctx, &lark.DownloadDriveExportTaskReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileViewRecordList(ctx, &lark.GetDriveFileViewRecordListReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveFileVersion(ctx, &lark.CreateDriveFileVersionReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveFileVersion(ctx, &lark.DeleteDriveFileVersionReq{ - FileToken: "x", - VersionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileVersion(ctx, &lark.GetDriveFileVersionReq{ - FileToken: "x", - VersionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileVersionList(ctx, &lark.GetDriveFileVersionListReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadDriveFile(ctx, &lark.DownloadDriveFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UploadDriveFile(ctx, &lark.UploadDriveFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.PrepareUploadDriveFile(ctx, &lark.PrepareUploadDriveFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.PartUploadDriveFile(ctx, &lark.PartUploadDriveFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.FinishUploadDriveFile(ctx, &lark.FinishUploadDriveFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveMemberPermissionOld(ctx, &lark.CreateDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.TransferDriveOwnerPermission(ctx, &lark.TransferDriveOwnerPermissionReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CheckDriveMemberPermission(ctx, &lark.CheckDriveMemberPermissionReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveMemberPermissionList(ctx, &lark.GetDriveMemberPermissionListReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveMemberPermissionListOld(ctx, &lark.GetDriveMemberPermissionListOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveMemberPermission(ctx, &lark.CreateDriveMemberPermissionReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveMemberPermission(ctx, &lark.UpdateDriveMemberPermissionReq{ - Token: "x", - MemberID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveMemberPermission(ctx, &lark.DeleteDriveMemberPermissionReq{ - Token: "x", - MemberID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDrivePublicPermissionOld(ctx, &lark.GetDrivePublicPermissionOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDrivePermissionPublicPassword(ctx, &lark.CreateDrivePermissionPublicPasswordReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDrivePermissionPublicPassword(ctx, &lark.UpdateDrivePermissionPublicPasswordReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDrivePermissionPublicPassword(ctx, &lark.DeleteDrivePermissionPublicPasswordReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDrivePublicPermission(ctx, &lark.GetDrivePublicPermissionReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDrivePublicPermission(ctx, &lark.UpdateDrivePublicPermissionReq{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDrivePublicPermissionV2(ctx, &lark.GetDrivePublicPermissionV2Req{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDrivePublicPermissionV2(ctx, &lark.UpdateDrivePublicPermissionV2Req{ - Token: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetDriveMediaTmpDownloadURL(ctx, &lark.BatchGetDriveMediaTmpDownloadURLReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveCommentList(ctx, &lark.GetDriveCommentListReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveComment(ctx, &lark.CreateDriveCommentReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveComment(ctx, &lark.GetDriveCommentReq{ - FileToken: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetDriveComment(ctx, &lark.BatchGetDriveCommentReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveCommentReplyList(ctx, &lark.GetDriveCommentReplyListReq{ - FileToken: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveComment(ctx, &lark.UpdateDriveCommentReq{ - FileToken: "x", - CommentID: "x", - ReplyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveComment(ctx, &lark.DeleteDriveCommentReq{ - FileToken: "x", - CommentID: "x", - ReplyID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveCommentPatch(ctx, &lark.UpdateDriveCommentPatchReq{ - FileToken: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveFileSubscription(ctx, &lark.GetDriveFileSubscriptionReq{ - FileToken: "x", - SubscriptionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveFileSubscription(ctx, &lark.CreateDriveFileSubscriptionReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveFileSubscription(ctx, &lark.UpdateDriveFileSubscriptionReq{ - FileToken: "x", - SubscriptionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveDoc(ctx, &lark.CreateDriveDocReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveDocContent(ctx, &lark.GetDriveDocContentReq{ - DocToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveDocContent(ctx, &lark.UpdateDriveDocContentReq{ - DocToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveDocRawContent(ctx, &lark.GetDriveDocRawContentReq{ - DocToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveDocMeta(ctx, &lark.GetDriveDocMetaReq{ - DocToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSpreadsheet(ctx, &lark.UpdateSpreadsheetReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSpreadsheet(ctx, &lark.GetSpreadsheetReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetMeta(ctx, &lark.GetSheetMetaReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetProperty(ctx, &lark.UpdateSheetPropertyReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheet(ctx, &lark.GetSheetReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetList(ctx, &lark.GetSheetListReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateSheet(ctx, &lark.BatchUpdateSheetReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ImportSheet(ctx, &lark.ImportSheetReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateDriveImportTask(ctx, &lark.CreateDriveImportTaskReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetDriveImportTask(ctx, &lark.GetDriveImportTaskReq{ - Ticket: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MoveSheetDimension(ctx, &lark.MoveSheetDimensionReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.PrependSheetValue(ctx, &lark.PrependSheetValueReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AppendSheetValue(ctx, &lark.AppendSheetValueReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.InsertSheetDimensionRange(ctx, &lark.InsertSheetDimensionRangeReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddSheetDimensionRange(ctx, &lark.AddSheetDimensionRangeReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetDimensionRange(ctx, &lark.UpdateSheetDimensionRangeReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetDimensionRange(ctx, &lark.DeleteSheetDimensionRangeReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetValue(ctx, &lark.GetSheetValueReq{ - SpreadSheetToken: "x", - Range: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetSheetValue(ctx, &lark.BatchGetSheetValueReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetSheetValue(ctx, &lark.SetSheetValueReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchSetSheetValue(ctx, &lark.BatchSetSheetValueReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetSheetStyle(ctx, &lark.SetSheetStyleReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchSetSheetStyle(ctx, &lark.BatchSetSheetStyleReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MergeSheetCell(ctx, &lark.MergeSheetCellReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnmergeSheetCell(ctx, &lark.UnmergeSheetCellReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetSheetValueImage(ctx, &lark.SetSheetValueImageReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.FindSheet(ctx, &lark.FindSheetReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ReplaceSheet(ctx, &lark.ReplaceSheetReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetConditionFormat(ctx, &lark.CreateSheetConditionFormatReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetConditionFormat(ctx, &lark.GetSheetConditionFormatReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetConditionFormat(ctx, &lark.UpdateSheetConditionFormatReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetConditionFormat(ctx, &lark.DeleteSheetConditionFormatReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetProtectedDimension(ctx, &lark.CreateSheetProtectedDimensionReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetProtectedDimension(ctx, &lark.GetSheetProtectedDimensionReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetProtectedDimension(ctx, &lark.UpdateSheetProtectedDimensionReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetProtectedDimension(ctx, &lark.DeleteSheetProtectedDimensionReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetDataValidationDropdown(ctx, &lark.CreateSheetDataValidationDropdownReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetDataValidationDropdown(ctx, &lark.DeleteSheetDataValidationDropdownReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetDataValidationDropdown(ctx, &lark.UpdateSheetDataValidationDropdownReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetDataValidationDropdown(ctx, &lark.GetSheetDataValidationDropdownReq{ - SpreadSheetToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetFilter(ctx, &lark.CreateSheetFilterReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetFilter(ctx, &lark.DeleteSheetFilterReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetFilter(ctx, &lark.UpdateSheetFilterReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetFilter(ctx, &lark.GetSheetFilterReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetFilterView(ctx, &lark.CreateSheetFilterViewReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetFilterView(ctx, &lark.DeleteSheetFilterViewReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetFilterView(ctx, &lark.UpdateSheetFilterViewReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetFilterView(ctx, &lark.GetSheetFilterViewReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QuerySheetFilterView(ctx, &lark.QuerySheetFilterViewReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetFilterViewCondition(ctx, &lark.CreateSheetFilterViewConditionReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetFilterViewCondition(ctx, &lark.DeleteSheetFilterViewConditionReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - ConditionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetFilterViewCondition(ctx, &lark.UpdateSheetFilterViewConditionReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - ConditionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetFilterViewCondition(ctx, &lark.GetSheetFilterViewConditionReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - ConditionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QuerySheetFilterViewCondition(ctx, &lark.QuerySheetFilterViewConditionReq{ - SpreadSheetToken: "x", - SheetID: "x", - FilterViewID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSheetFloatImage(ctx, &lark.CreateSheetFloatImageReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteSheetFloatImage(ctx, &lark.DeleteSheetFloatImageReq{ - SpreadSheetToken: "x", - SheetID: "x", - FloatImageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateSheetFloatImage(ctx, &lark.UpdateSheetFloatImageReq{ - SpreadSheetToken: "x", - SheetID: "x", - FloatImageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetSheetFloatImage(ctx, &lark.GetSheetFloatImageReq{ - SpreadSheetToken: "x", - SheetID: "x", - FloatImageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QuerySheetFloatImage(ctx, &lark.QuerySheetFloatImageReq{ - SpreadSheetToken: "x", - SheetID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateWikiSpace(ctx, &lark.CreateWikiSpaceReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWikiSpaceList(ctx, &lark.GetWikiSpaceListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWikiSpace(ctx, &lark.GetWikiSpaceReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateWikiSpaceSetting(ctx, &lark.UpdateWikiSpaceSettingReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteWikiSpaceMember(ctx, &lark.DeleteWikiSpaceMemberReq{ - SpaceID: "x", - MemberID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddWikiSpaceMember(ctx, &lark.AddWikiSpaceMemberReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateWikiNode(ctx, &lark.CreateWikiNodeReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MoveWikiNode(ctx, &lark.MoveWikiNodeReq{ - SpaceID: "x", - NodeToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateWikiNodeTitle(ctx, &lark.UpdateWikiNodeTitleReq{ - SpaceID: "x", - NodeToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CopyWikiNode(ctx, &lark.CopyWikiNodeReq{ - SpaceID: "x", - NodeToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWikiNode(ctx, &lark.GetWikiNodeReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MoveDocsToWiki(ctx, &lark.MoveDocsToWikiReq{ - SpaceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWikiTask(ctx, &lark.GetWikiTaskReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteDriveMemberPermissionOld(ctx, &lark.DeleteDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateDriveMemberPermissionOld(ctx, &lark.UpdateDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.TransferDriveMemberPermission(ctx, &lark.TransferDriveMemberPermissionReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CheckDriveMemberPermissionOld(ctx, &lark.CheckDriveMemberPermissionOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/ehr_sample_test.go b/test/ehr_sample_test.go index ae03574d..89a85fb4 100644 --- a/test/ehr_sample_test.go +++ b/test/ehr_sample_test.go @@ -37,10 +37,12 @@ func Test_EHR_Sample_Failed(t *testing.T) { moduleCli := cli.EHR t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetEHREmployeeList(ctx, &lark.GetEHREmployeeListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_EHR_Sample_Failed(t *testing.T) { moduleCli := cli.EHR t.Run("", func(t *testing.T) { + cli.Mock().MockEHRGetEHREmployeeList(func(ctx context.Context, request *lark.GetEHREmployeeListReq, options ...lark.MethodOptionFunc) (*lark.GetEHREmployeeListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_EHR_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockEHRDownloadEHRAttachments(func(ctx context.Context, request *lark.DownloadEHRAttachmentsReq, options ...lark.MethodOptionFunc) (*lark.DownloadEHRAttachmentsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -68,6 +72,7 @@ func Test_EHR_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -78,17 +83,20 @@ func Test_EHR_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetEHREmployeeList(ctx, &lark.GetEHREmployeeListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadEHRAttachments(ctx, &lark.DownloadEHRAttachmentsReq{ Token: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/event_sample_test.go b/test/event_sample_test.go index 312eca1d..7706287e 100644 --- a/test/event_sample_test.go +++ b/test/event_sample_test.go @@ -37,10 +37,12 @@ func Test_Event_Sample_Failed(t *testing.T) { moduleCli := cli.Event t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetEventOutboundIpList(ctx, &lark.GetEventOutboundIpListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Event_Sample_Failed(t *testing.T) { moduleCli := cli.Event t.Run("", func(t *testing.T) { + cli.Mock().MockEventGetEventOutboundIpList(func(ctx context.Context, request *lark.GetEventOutboundIpListReq, options ...lark.MethodOptionFunc) (*lark.GetEventOutboundIpListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -57,6 +60,7 @@ func Test_Event_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -67,9 +71,11 @@ func Test_Event_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetEventOutboundIpList(ctx, &lark.GetEventOutboundIpListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/file_sample_test.go b/test/file_sample_test.go index fcd73183..27d2d6d5 100644 --- a/test/file_sample_test.go +++ b/test/file_sample_test.go @@ -37,10 +37,12 @@ func Test_File_Sample_Failed(t *testing.T) { moduleCli := cli.File t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadImage(ctx, &lark.UploadImageReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_File_Sample_Failed(t *testing.T) { moduleCli := cli.File t.Run("", func(t *testing.T) { + cli.Mock().MockFileUploadImage(func(ctx context.Context, request *lark.UploadImageReq, options ...lark.MethodOptionFunc) (*lark.UploadImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_File_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockFileDownloadImage(func(ctx context.Context, request *lark.DownloadImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_File_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockFileUploadFile(func(ctx context.Context, request *lark.UploadFileReq, options ...lark.MethodOptionFunc) (*lark.UploadFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_File_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockFileDownloadFile(func(ctx context.Context, request *lark.DownloadFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -90,6 +96,7 @@ func Test_File_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -100,12 +107,14 @@ func Test_File_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadImage(ctx, &lark.UploadImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadImage(ctx, &lark.DownloadImageReq{ ImageKey: "x", }) @@ -114,17 +123,20 @@ func Test_File_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadFile(ctx, &lark.UploadFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadFile(ctx, &lark.DownloadFileReq{ FileKey: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/helpdesk_sample_test.go b/test/helpdesk_sample_test.go index f50a2482..fe65a878 100644 --- a/test/helpdesk_sample_test.go +++ b/test/helpdesk_sample_test.go @@ -37,10 +37,12 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { moduleCli := cli.Helpdesk t.Run("", func(t *testing.T) { + _, _, err := moduleCli.StartHelpdeskService(ctx, &lark.StartHelpdeskServiceReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { moduleCli := cli.Helpdesk t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskNotification(func(ctx context.Context, request *lark.CreateHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskNotification(func(ctx context.Context, request *lark.UpdateHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskNotification(func(ctx context.Context, request *lark.GetHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskPreviewHelpdeskNotification(func(ctx context.Context, request *lark.PreviewHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.PreviewHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskSubmitApproveHelpdeskNotification(func(ctx context.Context, request *lark.SubmitApproveHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.SubmitApproveHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCancelApproveHelpdeskNotification(func(ctx context.Context, request *lark.CancelApproveHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.CancelApproveHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskExecuteSendHelpdeskNotification(func(ctx context.Context, request *lark.ExecuteSendHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.ExecuteSendHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCancelSendHelpdeskNotification(func(ctx context.Context, request *lark.CancelSendHelpdeskNotificationReq, options ...lark.MethodOptionFunc) (*lark.CancelSendHelpdeskNotificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskStartHelpdeskService(func(ctx context.Context, request *lark.StartHelpdeskServiceReq, options ...lark.MethodOptionFunc) (*lark.StartHelpdeskServiceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicket(func(ctx context.Context, request *lark.GetHelpdeskTicketReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskTicket(func(ctx context.Context, request *lark.UpdateHelpdeskTicketReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskTicketResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicketList(func(ctx context.Context, request *lark.GetHelpdeskTicketListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDownloadHelpdeskTicketImage(func(ctx context.Context, request *lark.DownloadHelpdeskTicketImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadHelpdeskTicketImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskAnswerHelpdeskTicketUserQuery(func(ctx context.Context, request *lark.AnswerHelpdeskTicketUserQueryReq, options ...lark.MethodOptionFunc) (*lark.AnswerHelpdeskTicketUserQueryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicketCustomizedFields(func(ctx context.Context, request *lark.GetHelpdeskTicketCustomizedFieldsReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketCustomizedFieldsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicketMessageList(func(ctx context.Context, request *lark.GetHelpdeskTicketMessageListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketMessageListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskSendHelpdeskTicketMessage(func(ctx context.Context, request *lark.SendHelpdeskTicketMessageReq, options ...lark.MethodOptionFunc) (*lark.SendHelpdeskTicketMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskSendHelpdeskMessage(func(ctx context.Context, request *lark.SendHelpdeskMessageReq, options ...lark.MethodOptionFunc) (*lark.SendHelpdeskMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicketCustomizedFieldList(func(ctx context.Context, request *lark.GetHelpdeskTicketCustomizedFieldListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketCustomizedFieldListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDeleteHelpdeskTicketCustomizedField(func(ctx context.Context, request *lark.DeleteHelpdeskTicketCustomizedFieldReq, options ...lark.MethodOptionFunc) (*lark.DeleteHelpdeskTicketCustomizedFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskTicketCustomizedField(func(ctx context.Context, request *lark.UpdateHelpdeskTicketCustomizedFieldReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskTicketCustomizedFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskTicketCustomizedField(func(ctx context.Context, request *lark.CreateHelpdeskTicketCustomizedFieldReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskTicketCustomizedFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskTicketCustomizedField(func(ctx context.Context, request *lark.GetHelpdeskTicketCustomizedFieldReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskTicketCustomizedFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskCategory(func(ctx context.Context, request *lark.CreateHelpdeskCategoryReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskCategoryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskCategory(func(ctx context.Context, request *lark.GetHelpdeskCategoryReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskCategoryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskCategory(func(ctx context.Context, request *lark.UpdateHelpdeskCategoryReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskCategoryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDeleteHelpdeskCategory(func(ctx context.Context, request *lark.DeleteHelpdeskCategoryReq, options ...lark.MethodOptionFunc) (*lark.DeleteHelpdeskCategoryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskCategoryList(func(ctx context.Context, request *lark.GetHelpdeskCategoryListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskCategoryListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskFAQ(func(ctx context.Context, request *lark.CreateHelpdeskFAQReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskFAQResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskFAQ(func(ctx context.Context, request *lark.GetHelpdeskFAQReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskFAQResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskFAQ(func(ctx context.Context, request *lark.UpdateHelpdeskFAQReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskFAQResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDeleteHelpdeskFAQ(func(ctx context.Context, request *lark.DeleteHelpdeskFAQReq, options ...lark.MethodOptionFunc) (*lark.DeleteHelpdeskFAQResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskFAQList(func(ctx context.Context, request *lark.GetHelpdeskFAQListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskFAQListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskFAQImage(func(ctx context.Context, request *lark.GetHelpdeskFAQImageReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskFAQImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -422,6 +458,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskSearchHelpdeskFAQ(func(ctx context.Context, request *lark.SearchHelpdeskFAQReq, options ...lark.MethodOptionFunc) (*lark.SearchHelpdeskFAQResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -433,6 +470,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskAgent(func(ctx context.Context, request *lark.UpdateHelpdeskAgentReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskAgentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -444,6 +482,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentEmail(func(ctx context.Context, request *lark.GetHelpdeskAgentEmailReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentEmailResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -455,6 +494,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskAgentSchedule(func(ctx context.Context, request *lark.CreateHelpdeskAgentScheduleReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskAgentScheduleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -466,6 +506,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDeleteHelpdeskAgentSchedule(func(ctx context.Context, request *lark.DeleteHelpdeskAgentScheduleReq, options ...lark.MethodOptionFunc) (*lark.DeleteHelpdeskAgentScheduleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -477,6 +518,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskAgentSchedule(func(ctx context.Context, request *lark.UpdateHelpdeskAgentScheduleReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskAgentScheduleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -488,6 +530,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentSchedule(func(ctx context.Context, request *lark.GetHelpdeskAgentScheduleReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentScheduleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -499,6 +542,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentScheduleList(func(ctx context.Context, request *lark.GetHelpdeskAgentScheduleListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentScheduleListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -510,6 +554,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskCreateHelpdeskAgentSkill(func(ctx context.Context, request *lark.CreateHelpdeskAgentSkillReq, options ...lark.MethodOptionFunc) (*lark.CreateHelpdeskAgentSkillResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -521,6 +566,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentSkill(func(ctx context.Context, request *lark.GetHelpdeskAgentSkillReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentSkillResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -532,6 +578,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUpdateHelpdeskAgentSkill(func(ctx context.Context, request *lark.UpdateHelpdeskAgentSkillReq, options ...lark.MethodOptionFunc) (*lark.UpdateHelpdeskAgentSkillResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -543,6 +590,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskDeleteHelpdeskAgentSkill(func(ctx context.Context, request *lark.DeleteHelpdeskAgentSkillReq, options ...lark.MethodOptionFunc) (*lark.DeleteHelpdeskAgentSkillResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -554,6 +602,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentSkillList(func(ctx context.Context, request *lark.GetHelpdeskAgentSkillListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentSkillListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -565,6 +614,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskGetHelpdeskAgentSkillRuleList(func(ctx context.Context, request *lark.GetHelpdeskAgentSkillRuleListReq, options ...lark.MethodOptionFunc) (*lark.GetHelpdeskAgentSkillRuleListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -576,6 +626,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskSubscribeHelpdeskEvent(func(ctx context.Context, request *lark.SubscribeHelpdeskEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeHelpdeskEventResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -587,6 +638,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHelpdeskUnsubscribeHelpdeskEvent(func(ctx context.Context, request *lark.UnsubscribeHelpdeskEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeHelpdeskEventResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -596,6 +648,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -606,12 +659,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskNotification(ctx, &lark.CreateHelpdeskNotificationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskNotification(ctx, &lark.UpdateHelpdeskNotificationReq{ NotificationID: "x", }) @@ -620,6 +675,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskNotification(ctx, &lark.GetHelpdeskNotificationReq{ NotificationID: "x", }) @@ -628,6 +684,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.PreviewHelpdeskNotification(ctx, &lark.PreviewHelpdeskNotificationReq{ NotificationID: "x", }) @@ -636,6 +693,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SubmitApproveHelpdeskNotification(ctx, &lark.SubmitApproveHelpdeskNotificationReq{ NotificationID: "x", }) @@ -644,6 +702,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CancelApproveHelpdeskNotification(ctx, &lark.CancelApproveHelpdeskNotificationReq{ NotificationID: "x", }) @@ -652,6 +711,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.ExecuteSendHelpdeskNotification(ctx, &lark.ExecuteSendHelpdeskNotificationReq{ NotificationID: "x", }) @@ -660,6 +720,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CancelSendHelpdeskNotification(ctx, &lark.CancelSendHelpdeskNotificationReq{ NotificationID: "x", }) @@ -668,12 +729,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.StartHelpdeskService(ctx, &lark.StartHelpdeskServiceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicket(ctx, &lark.GetHelpdeskTicketReq{ TicketID: "x", }) @@ -682,6 +745,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskTicket(ctx, &lark.UpdateHelpdeskTicketReq{ TicketID: "x", }) @@ -690,18 +754,21 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicketList(ctx, &lark.GetHelpdeskTicketListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DownloadHelpdeskTicketImage(ctx, &lark.DownloadHelpdeskTicketImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.AnswerHelpdeskTicketUserQuery(ctx, &lark.AnswerHelpdeskTicketUserQueryReq{ TicketID: "x", }) @@ -710,12 +777,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicketCustomizedFields(ctx, &lark.GetHelpdeskTicketCustomizedFieldsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicketMessageList(ctx, &lark.GetHelpdeskTicketMessageListReq{ TicketID: "x", }) @@ -724,6 +793,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SendHelpdeskTicketMessage(ctx, &lark.SendHelpdeskTicketMessageReq{ TicketID: "x", }) @@ -732,18 +802,21 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SendHelpdeskMessage(ctx, &lark.SendHelpdeskMessageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicketCustomizedFieldList(ctx, &lark.GetHelpdeskTicketCustomizedFieldListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteHelpdeskTicketCustomizedField(ctx, &lark.DeleteHelpdeskTicketCustomizedFieldReq{ TicketCustomizedFieldID: "x", }) @@ -752,6 +825,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskTicketCustomizedField(ctx, &lark.UpdateHelpdeskTicketCustomizedFieldReq{ TicketCustomizedFieldID: "x", }) @@ -760,12 +834,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskTicketCustomizedField(ctx, &lark.CreateHelpdeskTicketCustomizedFieldReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskTicketCustomizedField(ctx, &lark.GetHelpdeskTicketCustomizedFieldReq{ TicketCustomizedFieldID: "x", }) @@ -774,12 +850,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskCategory(ctx, &lark.CreateHelpdeskCategoryReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskCategory(ctx, &lark.GetHelpdeskCategoryReq{ ID: "x", }) @@ -788,6 +866,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskCategory(ctx, &lark.UpdateHelpdeskCategoryReq{ ID: "x", }) @@ -796,6 +875,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteHelpdeskCategory(ctx, &lark.DeleteHelpdeskCategoryReq{ ID: "x", }) @@ -804,18 +884,21 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskCategoryList(ctx, &lark.GetHelpdeskCategoryListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskFAQ(ctx, &lark.CreateHelpdeskFAQReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskFAQ(ctx, &lark.GetHelpdeskFAQReq{ ID: "x", }) @@ -824,6 +907,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskFAQ(ctx, &lark.UpdateHelpdeskFAQReq{ ID: "x", }) @@ -832,6 +916,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteHelpdeskFAQ(ctx, &lark.DeleteHelpdeskFAQReq{ ID: "x", }) @@ -840,12 +925,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskFAQList(ctx, &lark.GetHelpdeskFAQListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskFAQImage(ctx, &lark.GetHelpdeskFAQImageReq{ ID: "x", ImageKey: "x", @@ -855,12 +942,14 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchHelpdeskFAQ(ctx, &lark.SearchHelpdeskFAQReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskAgent(ctx, &lark.UpdateHelpdeskAgentReq{ AgentID: "x", }) @@ -869,18 +958,21 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentEmail(ctx, &lark.GetHelpdeskAgentEmailReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskAgentSchedule(ctx, &lark.CreateHelpdeskAgentScheduleReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteHelpdeskAgentSchedule(ctx, &lark.DeleteHelpdeskAgentScheduleReq{ AgentID: "x", }) @@ -889,6 +981,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskAgentSchedule(ctx, &lark.UpdateHelpdeskAgentScheduleReq{ AgentID: "x", }) @@ -897,6 +990,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentSchedule(ctx, &lark.GetHelpdeskAgentScheduleReq{ AgentID: "x", }) @@ -905,18 +999,21 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentScheduleList(ctx, &lark.GetHelpdeskAgentScheduleListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateHelpdeskAgentSkill(ctx, &lark.CreateHelpdeskAgentSkillReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentSkill(ctx, &lark.GetHelpdeskAgentSkillReq{ AgentSkillID: "x", }) @@ -925,6 +1022,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateHelpdeskAgentSkill(ctx, &lark.UpdateHelpdeskAgentSkillReq{ AgentSkillID: "x", }) @@ -933,6 +1031,7 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteHelpdeskAgentSkill(ctx, &lark.DeleteHelpdeskAgentSkillReq{ AgentSkillID: "x", }) @@ -941,27 +1040,32 @@ func Test_Helpdesk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentSkillList(ctx, &lark.GetHelpdeskAgentSkillListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHelpdeskAgentSkillRuleList(ctx, &lark.GetHelpdeskAgentSkillRuleListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SubscribeHelpdeskEvent(ctx, &lark.SubscribeHelpdeskEventReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UnsubscribeHelpdeskEvent(ctx, &lark.UnsubscribeHelpdeskEventReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/hire_sample_test.go b/test/hire_sample_test.go index 8f959696..8a95b2c1 100644 --- a/test/hire_sample_test.go +++ b/test/hire_sample_test.go @@ -37,10 +37,12 @@ func Test_Hire_Sample_Failed(t *testing.T) { moduleCli := cli.Hire t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHireJobConfig(ctx, &lark.GetHireJobConfigReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { moduleCli := cli.Hire t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireJobConfig(func(ctx context.Context, request *lark.GetHireJobConfigReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobConfigResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireJob(func(ctx context.Context, request *lark.CreateHireJobReq, options ...lark.MethodOptionFunc) (*lark.CreateHireJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireJob(func(ctx context.Context, request *lark.UpdateHireJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireJobConfig(func(ctx context.Context, request *lark.UpdateHireJobConfigReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireJobConfigResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireJob(func(ctx context.Context, request *lark.GetHireJobReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireJobManager(func(ctx context.Context, request *lark.GetHireJobManagerReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobManagerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireQueryHireTalentObject(func(ctx context.Context, request *lark.QueryHireTalentObjectReq, options ...lark.MethodOptionFunc) (*lark.QueryHireTalentObjectResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireTalent(func(ctx context.Context, request *lark.GetHireTalentReq, options ...lark.MethodOptionFunc) (*lark.GetHireTalentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireAttachment(func(ctx context.Context, request *lark.GetHireAttachmentReq, options ...lark.MethodOptionFunc) (*lark.GetHireAttachmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireAttachmentPreview(func(ctx context.Context, request *lark.GetHireAttachmentPreviewReq, options ...lark.MethodOptionFunc) (*lark.GetHireAttachmentPreviewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireReferralWebsiteJobPostList(func(ctx context.Context, request *lark.GetHireReferralWebsiteJobPostListReq, options ...lark.MethodOptionFunc) (*lark.GetHireReferralWebsiteJobPostListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireReferralWebsiteJobPost(func(ctx context.Context, request *lark.GetHireReferralWebsiteJobPostReq, options ...lark.MethodOptionFunc) (*lark.GetHireReferralWebsiteJobPostResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireReferralByApplication(func(ctx context.Context, request *lark.GetHireReferralByApplicationReq, options ...lark.MethodOptionFunc) (*lark.GetHireReferralByApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireExternalApplication(func(ctx context.Context, request *lark.CreateHireExternalApplicationReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireExternalApplication(func(ctx context.Context, request *lark.UpdateHireExternalApplicationReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireExternalApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -213,6 +230,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireDeleteHireExternalApplication(func(ctx context.Context, request *lark.DeleteHireExternalApplicationReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireExternalApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -224,6 +242,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireExternalInterview(func(ctx context.Context, request *lark.CreateHireExternalInterviewReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalInterviewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -235,6 +254,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireExternalInterviewAssessment(func(ctx context.Context, request *lark.CreateHireExternalInterviewAssessmentReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalInterviewAssessmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -246,6 +266,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireExternalBackgroundCheck(func(ctx context.Context, request *lark.CreateHireExternalBackgroundCheckReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalBackgroundCheckResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -257,6 +278,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireAddHireTalentToFolder(func(ctx context.Context, request *lark.AddHireTalentToFolderReq, options ...lark.MethodOptionFunc) (*lark.AddHireTalentToFolderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -268,6 +290,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireTalentFolderList(func(ctx context.Context, request *lark.GetHireTalentFolderListReq, options ...lark.MethodOptionFunc) (*lark.GetHireTalentFolderListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -279,6 +302,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchGetHireTalent(func(ctx context.Context, request *lark.BatchGetHireTalentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetHireTalentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -290,6 +314,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireJobProcessList(func(ctx context.Context, request *lark.GetHireJobProcessListReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobProcessListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -301,6 +326,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireApplication(func(ctx context.Context, request *lark.CreateHireApplicationReq, options ...lark.MethodOptionFunc) (*lark.CreateHireApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -312,6 +338,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireTerminateHireApplication(func(ctx context.Context, request *lark.TerminateHireApplicationReq, options ...lark.MethodOptionFunc) (*lark.TerminateHireApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -323,6 +350,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireApplication(func(ctx context.Context, request *lark.GetHireApplicationReq, options ...lark.MethodOptionFunc) (*lark.GetHireApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -334,6 +362,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireApplicationList(func(ctx context.Context, request *lark.GetHireApplicationListReq, options ...lark.MethodOptionFunc) (*lark.GetHireApplicationListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -345,6 +374,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireEvaluationList(func(ctx context.Context, request *lark.GetHireEvaluationListReq, options ...lark.MethodOptionFunc) (*lark.GetHireEvaluationListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -356,6 +386,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireQuestionnaireList(func(ctx context.Context, request *lark.GetHireQuestionnaireListReq, options ...lark.MethodOptionFunc) (*lark.GetHireQuestionnaireListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -367,6 +398,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireInterviewList(func(ctx context.Context, request *lark.GetHireInterviewListReq, options ...lark.MethodOptionFunc) (*lark.GetHireInterviewListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -378,6 +410,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireOffer(func(ctx context.Context, request *lark.CreateHireOfferReq, options ...lark.MethodOptionFunc) (*lark.CreateHireOfferResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -389,6 +422,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireOffer(func(ctx context.Context, request *lark.UpdateHireOfferReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireOfferResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -400,6 +434,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireOfferByApplication(func(ctx context.Context, request *lark.GetHireOfferByApplicationReq, options ...lark.MethodOptionFunc) (*lark.GetHireOfferByApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -411,6 +446,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireOffer(func(ctx context.Context, request *lark.GetHireOfferReq, options ...lark.MethodOptionFunc) (*lark.GetHireOfferResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -422,6 +458,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireOfferList(func(ctx context.Context, request *lark.GetHireOfferListReq, options ...lark.MethodOptionFunc) (*lark.GetHireOfferListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -433,6 +470,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireOfferStatus(func(ctx context.Context, request *lark.UpdateHireOfferStatusReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireOfferStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -444,6 +482,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireOfferInternStatus(func(ctx context.Context, request *lark.UpdateHireOfferInternStatusReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireOfferInternStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -455,6 +494,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireApplicationInterviewList(func(ctx context.Context, request *lark.GetHireApplicationInterviewListReq, options ...lark.MethodOptionFunc) (*lark.GetHireApplicationInterviewListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -466,6 +506,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireOfferSchema(func(ctx context.Context, request *lark.GetHireOfferSchemaReq, options ...lark.MethodOptionFunc) (*lark.GetHireOfferSchemaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -477,6 +518,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireEHRImportTask(func(ctx context.Context, request *lark.UpdateHireEHRImportTaskReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireEHRImportTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -488,6 +530,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireMakeHireTransferOnboardByApplication(func(ctx context.Context, request *lark.MakeHireTransferOnboardByApplicationReq, options ...lark.MethodOptionFunc) (*lark.MakeHireTransferOnboardByApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -499,6 +542,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireEmployee(func(ctx context.Context, request *lark.UpdateHireEmployeeReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireEmployeeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -510,6 +554,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireEmployeeByApplication(func(ctx context.Context, request *lark.GetHireEmployeeByApplicationReq, options ...lark.MethodOptionFunc) (*lark.GetHireEmployeeByApplicationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -521,6 +566,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireEmployee(func(ctx context.Context, request *lark.GetHireEmployeeReq, options ...lark.MethodOptionFunc) (*lark.GetHireEmployeeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -532,6 +578,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireNote(func(ctx context.Context, request *lark.CreateHireNoteReq, options ...lark.MethodOptionFunc) (*lark.CreateHireNoteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -543,6 +590,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireNote(func(ctx context.Context, request *lark.UpdateHireNoteReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireNoteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -554,6 +602,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireNote(func(ctx context.Context, request *lark.GetHireNoteReq, options ...lark.MethodOptionFunc) (*lark.GetHireNoteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -565,6 +614,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireNoteList(func(ctx context.Context, request *lark.GetHireNoteListReq, options ...lark.MethodOptionFunc) (*lark.GetHireNoteListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -576,6 +626,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireGetHireResumeSource(func(ctx context.Context, request *lark.GetHireResumeSourceReq, options ...lark.MethodOptionFunc) (*lark.GetHireResumeSourceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -587,6 +638,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireEcoAccountCustomField(func(ctx context.Context, request *lark.CreateHireEcoAccountCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.CreateHireEcoAccountCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -598,6 +650,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchUpdateHireEcoAccountCustomField(func(ctx context.Context, request *lark.BatchUpdateHireEcoAccountCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateHireEcoAccountCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -609,6 +662,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchDeleteHireEcoAccountCustomField(func(ctx context.Context, request *lark.BatchDeleteHireEcoAccountCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteHireEcoAccountCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -620,6 +674,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireEcoBackgroundCheckCustomField(func(ctx context.Context, request *lark.CreateHireEcoBackgroundCheckCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.CreateHireEcoBackgroundCheckCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -631,6 +686,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchUpdateHireEcoBackgroundCheckCustomField(func(ctx context.Context, request *lark.BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -642,6 +698,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchDeleteHireEcoBackgroundCheckCustomField(func(ctx context.Context, request *lark.BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -653,6 +710,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireEcoBackgroundCheckPackage(func(ctx context.Context, request *lark.CreateHireEcoBackgroundCheckPackageReq, options ...lark.MethodOptionFunc) (*lark.CreateHireEcoBackgroundCheckPackageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -664,6 +722,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchUpdateHireEcoBackgroundCheckPackage(func(ctx context.Context, request *lark.BatchUpdateHireEcoBackgroundCheckPackageReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateHireEcoBackgroundCheckPackageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -675,6 +734,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchDeleteHireEcoBackgroundCheckPackage(func(ctx context.Context, request *lark.BatchDeleteHireEcoBackgroundCheckPackageReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteHireEcoBackgroundCheckPackageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -686,6 +746,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireEcoBackgroundCheckProgress(func(ctx context.Context, request *lark.UpdateHireEcoBackgroundCheckProgressReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireEcoBackgroundCheckProgressResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -697,6 +758,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHireEcoBackgroundCheckResult(func(ctx context.Context, request *lark.UpdateHireEcoBackgroundCheckResultReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireEcoBackgroundCheckResultResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -708,6 +770,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCancelHireEcoBackgroundCheck(func(ctx context.Context, request *lark.CancelHireEcoBackgroundCheckReq, options ...lark.MethodOptionFunc) (*lark.CancelHireEcoBackgroundCheckResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -719,6 +782,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireEcoExamPaper(func(ctx context.Context, request *lark.CreateHireEcoExamPaperReq, options ...lark.MethodOptionFunc) (*lark.CreateHireEcoExamPaperResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -730,6 +794,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchUpdateHireEcoExamPaper(func(ctx context.Context, request *lark.BatchUpdateHireEcoExamPaperReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateHireEcoExamPaperResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -741,6 +806,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireBatchDeleteHireEcoExamPaper(func(ctx context.Context, request *lark.BatchDeleteHireEcoExamPaperReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteHireEcoExamPaperResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -752,6 +818,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireEcoExamLoginInfo(func(ctx context.Context, request *lark.CreateHireEcoExamLoginInfoReq, options ...lark.MethodOptionFunc) (*lark.CreateHireEcoExamLoginInfoResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -763,6 +830,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireUpdateHiredEcoExamResult(func(ctx context.Context, request *lark.UpdateHiredEcoExamResultReq, options ...lark.MethodOptionFunc) (*lark.UpdateHiredEcoExamResultResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -774,6 +842,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireCreateHireReferralAccount(func(ctx context.Context, request *lark.CreateHireReferralAccountReq, options ...lark.MethodOptionFunc) (*lark.CreateHireReferralAccountResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -785,6 +854,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireDeactivateHireReferralAccount(func(ctx context.Context, request *lark.DeactivateHireReferralAccountReq, options ...lark.MethodOptionFunc) (*lark.DeactivateHireReferralAccountResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -796,6 +866,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireWithdrawHireReferralAccount(func(ctx context.Context, request *lark.WithdrawHireReferralAccountReq, options ...lark.MethodOptionFunc) (*lark.WithdrawHireReferralAccountResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -807,6 +878,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHireReconcileHireReferralAccount(func(ctx context.Context, request *lark.ReconcileHireReferralAccountReq, options ...lark.MethodOptionFunc) (*lark.ReconcileHireReferralAccountResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -816,191 +888,1550 @@ func Test_Hire_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Hire - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireJobConfig(ctx, &lark.GetHireJobConfigReq{ - JobID: "x", + + cli.Mock().MockHireGetHireInterviewRecord(func(ctx context.Context, request *lark.GetHireInterviewRecordReq, options ...lark.MethodOptionFunc) (*lark.GetHireInterviewRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireGetHireInterviewRecord() + + _, _, err := moduleCli.GetHireInterviewRecord(ctx, &lark.GetHireInterviewRecordReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireJob(ctx, &lark.CreateHireJobReq{}) + + cli.Mock().MockHireListHireInterviewRecord(func(ctx context.Context, request *lark.ListHireInterviewRecordReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewRecord() + + _, _, err := moduleCli.ListHireInterviewRecord(ctx, &lark.ListHireInterviewRecordReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireJob(ctx, &lark.UpdateHireJobReq{ - JobID: "x", + + cli.Mock().MockHireGetHireTalentV2(func(ctx context.Context, request *lark.GetHireTalentV2Req, options ...lark.MethodOptionFunc) (*lark.GetHireTalentV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireGetHireTalentV2() + + _, _, err := moduleCli.GetHireTalentV2(ctx, &lark.GetHireTalentV2Req{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireJobConfig(ctx, &lark.UpdateHireJobConfigReq{ - JobID: "x", + + cli.Mock().MockHireCreateHireAttachment(func(ctx context.Context, request *lark.CreateHireAttachmentReq, options ...lark.MethodOptionFunc) (*lark.CreateHireAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireCreateHireAttachment() + + _, _, err := moduleCli.CreateHireAttachment(ctx, &lark.CreateHireAttachmentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireJob(ctx, &lark.GetHireJobReq{ - JobID: "x", + + cli.Mock().MockHireCreateHireAdvertisementPublish(func(ctx context.Context, request *lark.CreateHireAdvertisementPublishReq, options ...lark.MethodOptionFunc) (*lark.CreateHireAdvertisementPublishResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireCreateHireAdvertisementPublish() + + _, _, err := moduleCli.CreateHireAdvertisementPublish(ctx, &lark.CreateHireAdvertisementPublishReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireJobManager(ctx, &lark.GetHireJobManagerReq{ - JobID: "x", - ManagerID: "x", + + cli.Mock().MockHireBatchQueryHireAgency(func(ctx context.Context, request *lark.BatchQueryHireAgencyReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryHireAgencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireBatchQueryHireAgency() + + _, _, err := moduleCli.BatchQueryHireAgency(ctx, &lark.BatchQueryHireAgencyReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryHireTalentObject(ctx, &lark.QueryHireTalentObjectReq{}) + + cli.Mock().MockHireGetHireAgency(func(ctx context.Context, request *lark.GetHireAgencyReq, options ...lark.MethodOptionFunc) (*lark.GetHireAgencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireAgency() + + _, _, err := moduleCli.GetHireAgency(ctx, &lark.GetHireAgencyReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireTalent(ctx, &lark.GetHireTalentReq{ - TalentID: "x", + + cli.Mock().MockHireGetHireAgencyAccount(func(ctx context.Context, request *lark.GetHireAgencyAccountReq, options ...lark.MethodOptionFunc) (*lark.GetHireAgencyAccountResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireGetHireAgencyAccount() + + _, _, err := moduleCli.GetHireAgencyAccount(ctx, &lark.GetHireAgencyAccountReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireAttachment(ctx, &lark.GetHireAttachmentReq{ - AttachmentID: "x", + + cli.Mock().MockHireCreateHireAgencyOperateAgencyAccount(func(ctx context.Context, request *lark.CreateHireAgencyOperateAgencyAccountReq, options ...lark.MethodOptionFunc) (*lark.CreateHireAgencyOperateAgencyAccountResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireCreateHireAgencyOperateAgencyAccount() + + _, _, err := moduleCli.CreateHireAgencyOperateAgencyAccount(ctx, &lark.CreateHireAgencyOperateAgencyAccountReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireAttachmentPreview(ctx, &lark.GetHireAttachmentPreviewReq{ - AttachmentID: "x", + + cli.Mock().MockHireCreateHireAgencyProtect(func(ctx context.Context, request *lark.CreateHireAgencyProtectReq, options ...lark.MethodOptionFunc) (*lark.CreateHireAgencyProtectResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireCreateHireAgencyProtect() + + _, _, err := moduleCli.CreateHireAgencyProtect(ctx, &lark.CreateHireAgencyProtectReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireReferralWebsiteJobPostList(ctx, &lark.GetHireReferralWebsiteJobPostListReq{}) + + cli.Mock().MockHireCreateHireAgencyProtectSearch(func(ctx context.Context, request *lark.CreateHireAgencyProtectSearchReq, options ...lark.MethodOptionFunc) (*lark.CreateHireAgencyProtectSearchResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireAgencyProtectSearch() + + _, _, err := moduleCli.CreateHireAgencyProtectSearch(ctx, &lark.CreateHireAgencyProtectSearchReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireReferralWebsiteJobPost(ctx, &lark.GetHireReferralWebsiteJobPostReq{ - JobPostID: "x", + + cli.Mock().MockHireQueryHireAgency(func(ctx context.Context, request *lark.QueryHireAgencyReq, options ...lark.MethodOptionFunc) (*lark.QueryHireAgencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireQueryHireAgency() + + _, _, err := moduleCli.QueryHireAgency(ctx, &lark.QueryHireAgencyReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireReferralByApplication(ctx, &lark.GetHireReferralByApplicationReq{}) + + cli.Mock().MockHireCreateHireApplicationCancelOnboard(func(ctx context.Context, request *lark.CreateHireApplicationCancelOnboardReq, options ...lark.MethodOptionFunc) (*lark.CreateHireApplicationCancelOnboardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireApplicationCancelOnboard() + + _, _, err := moduleCli.CreateHireApplicationCancelOnboard(ctx, &lark.CreateHireApplicationCancelOnboardReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireExternalApplication(ctx, &lark.CreateHireExternalApplicationReq{}) + + cli.Mock().MockHireGetHireApplicationDetail(func(ctx context.Context, request *lark.GetHireApplicationDetailReq, options ...lark.MethodOptionFunc) (*lark.GetHireApplicationDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireApplicationDetail() + + _, _, err := moduleCli.GetHireApplicationDetail(ctx, &lark.GetHireApplicationDetailReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireExternalApplication(ctx, &lark.UpdateHireExternalApplicationReq{ - ExternalApplicationID: "x", + + cli.Mock().MockHireCreateHireApplicationRecover(func(ctx context.Context, request *lark.CreateHireApplicationRecoverReq, options ...lark.MethodOptionFunc) (*lark.CreateHireApplicationRecoverResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireCreateHireApplicationRecover() + + _, _, err := moduleCli.CreateHireApplicationRecover(ctx, &lark.CreateHireApplicationRecoverReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteHireExternalApplication(ctx, &lark.DeleteHireExternalApplicationReq{ - ExternalApplicationID: "x", + + cli.Mock().MockHireTransferHireApplicationStage(func(ctx context.Context, request *lark.TransferHireApplicationStageReq, options ...lark.MethodOptionFunc) (*lark.TransferHireApplicationStageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireTransferHireApplicationStage() + + _, _, err := moduleCli.TransferHireApplicationStage(ctx, &lark.TransferHireApplicationStageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireExternalInterview(ctx, &lark.CreateHireExternalInterviewReq{}) + + cli.Mock().MockHireBatchQueryHireBackgroundCheckOrder(func(ctx context.Context, request *lark.BatchQueryHireBackgroundCheckOrderReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryHireBackgroundCheckOrderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireBatchQueryHireBackgroundCheckOrder() + + _, _, err := moduleCli.BatchQueryHireBackgroundCheckOrder(ctx, &lark.BatchQueryHireBackgroundCheckOrderReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireExternalInterviewAssessment(ctx, &lark.CreateHireExternalInterviewAssessmentReq{}) + + cli.Mock().MockHireListHireBackgroundCheckOrder(func(ctx context.Context, request *lark.ListHireBackgroundCheckOrderReq, options ...lark.MethodOptionFunc) (*lark.ListHireBackgroundCheckOrderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireBackgroundCheckOrder() + + _, _, err := moduleCli.ListHireBackgroundCheckOrder(ctx, &lark.ListHireBackgroundCheckOrderReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireExternalBackgroundCheck(ctx, &lark.CreateHireExternalBackgroundCheckReq{}) + + cli.Mock().MockHireSearchHireDiversityInclusion(func(ctx context.Context, request *lark.SearchHireDiversityInclusionReq, options ...lark.MethodOptionFunc) (*lark.SearchHireDiversityInclusionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireDiversityInclusion() + + _, _, err := moduleCli.SearchHireDiversityInclusion(ctx, &lark.SearchHireDiversityInclusionReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddHireTalentToFolder(ctx, &lark.AddHireTalentToFolderReq{}) + + cli.Mock().MockHireListHireEvaluationTask(func(ctx context.Context, request *lark.ListHireEvaluationTaskReq, options ...lark.MethodOptionFunc) (*lark.ListHireEvaluationTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireEvaluationTask() + + _, _, err := moduleCli.ListHireEvaluationTask(ctx, &lark.ListHireEvaluationTaskReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireTalentFolderList(ctx, &lark.GetHireTalentFolderListReq{}) + + cli.Mock().MockHireCreateHireExam(func(ctx context.Context, request *lark.CreateHireExamReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExamResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireExam() + + _, _, err := moduleCli.CreateHireExam(ctx, &lark.CreateHireExamReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetHireTalent(ctx, &lark.BatchGetHireTalentReq{}) + + cli.Mock().MockHireListHireExamMarkingTask(func(ctx context.Context, request *lark.ListHireExamMarkingTaskReq, options ...lark.MethodOptionFunc) (*lark.ListHireExamMarkingTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireExamMarkingTask() + + _, _, err := moduleCli.ListHireExamMarkingTask(ctx, &lark.ListHireExamMarkingTaskReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireJobProcessList(ctx, &lark.GetHireJobProcessListReq{}) + + cli.Mock().MockHireListHireExternalApplication(func(ctx context.Context, request *lark.ListHireExternalApplicationReq, options ...lark.MethodOptionFunc) (*lark.ListHireExternalApplicationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireExternalApplication() + + _, _, err := moduleCli.ListHireExternalApplication(ctx, &lark.ListHireExternalApplicationReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireApplication(ctx, &lark.CreateHireApplicationReq{}) + + cli.Mock().MockHireBatchQueryHireExternalBackgroundCheck(func(ctx context.Context, request *lark.BatchQueryHireExternalBackgroundCheckReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryHireExternalBackgroundCheckResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireBatchQueryHireExternalBackgroundCheck() + + _, _, err := moduleCli.BatchQueryHireExternalBackgroundCheck(ctx, &lark.BatchQueryHireExternalBackgroundCheckReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.TerminateHireApplication(ctx, &lark.TerminateHireApplicationReq{ - ApplicationID: "x", + + cli.Mock().MockHireDeleteHireExternalBackgroundCheck(func(ctx context.Context, request *lark.DeleteHireExternalBackgroundCheckReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireExternalBackgroundCheckResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockHireDeleteHireExternalBackgroundCheck() + + _, _, err := moduleCli.DeleteHireExternalBackgroundCheck(ctx, &lark.DeleteHireExternalBackgroundCheckReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireExternalBackgroundCheck(func(ctx context.Context, request *lark.UpdateHireExternalBackgroundCheckReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireExternalBackgroundCheckResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireExternalBackgroundCheck() + + _, _, err := moduleCli.UpdateHireExternalBackgroundCheck(ctx, &lark.UpdateHireExternalBackgroundCheckReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireBatchQueryHireExternalInterview(func(ctx context.Context, request *lark.BatchQueryHireExternalInterviewReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryHireExternalInterviewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireBatchQueryHireExternalInterview() + + _, _, err := moduleCli.BatchQueryHireExternalInterview(ctx, &lark.BatchQueryHireExternalInterviewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireExternalInterview(func(ctx context.Context, request *lark.DeleteHireExternalInterviewReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireExternalInterviewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireExternalInterview() + + _, _, err := moduleCli.DeleteHireExternalInterview(ctx, &lark.DeleteHireExternalInterviewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireExternalInterview(func(ctx context.Context, request *lark.UpdateHireExternalInterviewReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireExternalInterviewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireExternalInterview() + + _, _, err := moduleCli.UpdateHireExternalInterview(ctx, &lark.UpdateHireExternalInterviewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireExternalInterviewAssessment(func(ctx context.Context, request *lark.UpdateHireExternalInterviewAssessmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireExternalInterviewAssessmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireExternalInterviewAssessment() + + _, _, err := moduleCli.UpdateHireExternalInterviewAssessment(ctx, &lark.UpdateHireExternalInterviewAssessmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireBatchQueryHireExternalOffer(func(ctx context.Context, request *lark.BatchQueryHireExternalOfferReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryHireExternalOfferResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireBatchQueryHireExternalOffer() + + _, _, err := moduleCli.BatchQueryHireExternalOffer(ctx, &lark.BatchQueryHireExternalOfferReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireExternalOffer(func(ctx context.Context, request *lark.CreateHireExternalOfferReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalOfferResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireExternalOffer() + + _, _, err := moduleCli.CreateHireExternalOffer(ctx, &lark.CreateHireExternalOfferReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireExternalOffer(func(ctx context.Context, request *lark.DeleteHireExternalOfferReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireExternalOfferResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireExternalOffer() + + _, _, err := moduleCli.DeleteHireExternalOffer(ctx, &lark.DeleteHireExternalOfferReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireExternalOffer(func(ctx context.Context, request *lark.UpdateHireExternalOfferReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireExternalOfferResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireExternalOffer() + + _, _, err := moduleCli.UpdateHireExternalOffer(ctx, &lark.UpdateHireExternalOfferReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireExternalReferralReward(func(ctx context.Context, request *lark.CreateHireExternalReferralRewardReq, options ...lark.MethodOptionFunc) (*lark.CreateHireExternalReferralRewardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireExternalReferralReward() + + _, _, err := moduleCli.CreateHireExternalReferralReward(ctx, &lark.CreateHireExternalReferralRewardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireExternalReferralReward(func(ctx context.Context, request *lark.DeleteHireExternalReferralRewardReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireExternalReferralRewardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireExternalReferralReward() + + _, _, err := moduleCli.DeleteHireExternalReferralReward(ctx, &lark.DeleteHireExternalReferralRewardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireInterviewByTalent(func(ctx context.Context, request *lark.GetHireInterviewByTalentReq, options ...lark.MethodOptionFunc) (*lark.GetHireInterviewByTalentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireInterviewByTalent() + + _, _, err := moduleCli.GetHireInterviewByTalent(ctx, &lark.GetHireInterviewByTalentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewFeedbackForm(func(ctx context.Context, request *lark.ListHireInterviewFeedbackFormReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewFeedbackFormResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewFeedbackForm() + + _, _, err := moduleCli.ListHireInterviewFeedbackForm(ctx, &lark.ListHireInterviewFeedbackFormReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireInterviewRecordAttachment(func(ctx context.Context, request *lark.GetHireInterviewRecordAttachmentReq, options ...lark.MethodOptionFunc) (*lark.GetHireInterviewRecordAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireInterviewRecordAttachment() + + _, _, err := moduleCli.GetHireInterviewRecordAttachment(ctx, &lark.GetHireInterviewRecordAttachmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireInterviewRecordV1(func(ctx context.Context, request *lark.GetHireInterviewRecordV1Req, options ...lark.MethodOptionFunc) (*lark.GetHireInterviewRecordV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireInterviewRecordV1() + + _, _, err := moduleCli.GetHireInterviewRecordV1(ctx, &lark.GetHireInterviewRecordV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewRecordV1(func(ctx context.Context, request *lark.ListHireInterviewRecordV1Req, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewRecordV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewRecordV1() + + _, _, err := moduleCli.ListHireInterviewRecordV1(ctx, &lark.ListHireInterviewRecordV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewRegistrationSchema(func(ctx context.Context, request *lark.ListHireInterviewRegistrationSchemaReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewRegistrationSchemaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewRegistrationSchema() + + _, _, err := moduleCli.ListHireInterviewRegistrationSchema(ctx, &lark.ListHireInterviewRegistrationSchemaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewRoundType(func(ctx context.Context, request *lark.ListHireInterviewRoundTypeReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewRoundTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewRoundType() + + _, _, err := moduleCli.ListHireInterviewRoundType(ctx, &lark.ListHireInterviewRoundTypeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewTask(func(ctx context.Context, request *lark.ListHireInterviewTaskReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewTask() + + _, _, err := moduleCli.ListHireInterviewTask(ctx, &lark.ListHireInterviewTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireInterviewer(func(ctx context.Context, request *lark.ListHireInterviewerReq, options ...lark.MethodOptionFunc) (*lark.ListHireInterviewerResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireInterviewer() + + _, _, err := moduleCli.ListHireInterviewer(ctx, &lark.ListHireInterviewerReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireInterviewer(func(ctx context.Context, request *lark.UpdateHireInterviewerReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireInterviewerResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireInterviewer() + + _, _, err := moduleCli.UpdateHireInterviewer(ctx, &lark.UpdateHireInterviewerReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCloseHireJob(func(ctx context.Context, request *lark.CloseHireJobReq, options ...lark.MethodOptionFunc) (*lark.CloseHireJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCloseHireJob() + + _, _, err := moduleCli.CloseHireJob(ctx, &lark.CloseHireJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireJobDetail(func(ctx context.Context, request *lark.GetHireJobDetailReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireJobDetail() + + _, _, err := moduleCli.GetHireJobDetail(ctx, &lark.GetHireJobDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJob(func(ctx context.Context, request *lark.ListHireJobReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJob() + + _, _, err := moduleCli.ListHireJob(ctx, &lark.ListHireJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireOpenHireJob(func(ctx context.Context, request *lark.OpenHireJobReq, options ...lark.MethodOptionFunc) (*lark.OpenHireJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireOpenHireJob() + + _, _, err := moduleCli.OpenHireJob(ctx, &lark.OpenHireJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireJobRecruiter(func(ctx context.Context, request *lark.GetHireJobRecruiterReq, options ...lark.MethodOptionFunc) (*lark.GetHireJobRecruiterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireJobRecruiter() + + _, _, err := moduleCli.GetHireJobRecruiter(ctx, &lark.GetHireJobRecruiterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobFunction(func(ctx context.Context, request *lark.ListHireJobFunctionReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobFunctionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobFunction() + + _, _, err := moduleCli.ListHireJobFunction(ctx, &lark.ListHireJobFunctionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireJobPublishRecord(func(ctx context.Context, request *lark.SearchHireJobPublishRecordReq, options ...lark.MethodOptionFunc) (*lark.SearchHireJobPublishRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireJobPublishRecord() + + _, _, err := moduleCli.SearchHireJobPublishRecord(ctx, &lark.SearchHireJobPublishRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireJobRequirement(func(ctx context.Context, request *lark.CreateHireJobRequirementReq, options ...lark.MethodOptionFunc) (*lark.CreateHireJobRequirementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireJobRequirement() + + _, _, err := moduleCli.CreateHireJobRequirement(ctx, &lark.CreateHireJobRequirementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireJobRequirement(func(ctx context.Context, request *lark.DeleteHireJobRequirementReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireJobRequirementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireJobRequirement() + + _, _, err := moduleCli.DeleteHireJobRequirement(ctx, &lark.DeleteHireJobRequirementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobRequirement(func(ctx context.Context, request *lark.ListHireJobRequirementReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobRequirementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobRequirement() + + _, _, err := moduleCli.ListHireJobRequirement(ctx, &lark.ListHireJobRequirementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobRequirementByID(func(ctx context.Context, request *lark.ListHireJobRequirementByIDReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobRequirementByIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobRequirementByID() + + _, _, err := moduleCli.ListHireJobRequirementByID(ctx, &lark.ListHireJobRequirementByIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireJobRequirement(func(ctx context.Context, request *lark.UpdateHireJobRequirementReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireJobRequirementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireJobRequirement() + + _, _, err := moduleCli.UpdateHireJobRequirement(ctx, &lark.UpdateHireJobRequirementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobRequirementSchema(func(ctx context.Context, request *lark.ListHireJobRequirementSchemaReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobRequirementSchemaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobRequirementSchema() + + _, _, err := moduleCli.ListHireJobRequirementSchema(ctx, &lark.ListHireJobRequirementSchemaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobSchema(func(ctx context.Context, request *lark.ListHireJobSchemaReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobSchemaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobSchema() + + _, _, err := moduleCli.ListHireJobSchema(ctx, &lark.ListHireJobSchemaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireJobType(func(ctx context.Context, request *lark.ListHireJobTypeReq, options ...lark.MethodOptionFunc) (*lark.ListHireJobTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireJobType() + + _, _, err := moduleCli.ListHireJobType(ctx, &lark.ListHireJobTypeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireLocation(func(ctx context.Context, request *lark.ListHireLocationReq, options ...lark.MethodOptionFunc) (*lark.ListHireLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireLocation() + + _, _, err := moduleCli.ListHireLocation(ctx, &lark.ListHireLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireQueryHireLocation(func(ctx context.Context, request *lark.QueryHireLocationReq, options ...lark.MethodOptionFunc) (*lark.QueryHireLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireQueryHireLocation() + + _, _, err := moduleCli.QueryHireLocation(ctx, &lark.QueryHireLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireMinutes(func(ctx context.Context, request *lark.GetHireMinutesReq, options ...lark.MethodOptionFunc) (*lark.GetHireMinutesResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireMinutes() + + _, _, err := moduleCli.GetHireMinutes(ctx, &lark.GetHireMinutesReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireNote(func(ctx context.Context, request *lark.DeleteHireNoteReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireNoteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireNote() + + _, _, err := moduleCli.DeleteHireNote(ctx, &lark.DeleteHireNoteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireOfferApplicationForm(func(ctx context.Context, request *lark.GetHireOfferApplicationFormReq, options ...lark.MethodOptionFunc) (*lark.GetHireOfferApplicationFormResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireOfferApplicationForm() + + _, _, err := moduleCli.GetHireOfferApplicationForm(ctx, &lark.GetHireOfferApplicationFormReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireOfferApplicationForm(func(ctx context.Context, request *lark.ListHireOfferApplicationFormReq, options ...lark.MethodOptionFunc) (*lark.ListHireOfferApplicationFormResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireOfferApplicationForm() + + _, _, err := moduleCli.ListHireOfferApplicationForm(ctx, &lark.ListHireOfferApplicationFormReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireOfferApprovalTemplate(func(ctx context.Context, request *lark.ListHireOfferApprovalTemplateReq, options ...lark.MethodOptionFunc) (*lark.ListHireOfferApprovalTemplateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireOfferApprovalTemplate() + + _, _, err := moduleCli.ListHireOfferApprovalTemplate(ctx, &lark.ListHireOfferApprovalTemplateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireOfferCustomField(func(ctx context.Context, request *lark.UpdateHireOfferCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireOfferCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireOfferCustomField() + + _, _, err := moduleCli.UpdateHireOfferCustomField(ctx, &lark.UpdateHireOfferCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHirePortalApplySchema(func(ctx context.Context, request *lark.ListHirePortalApplySchemaReq, options ...lark.MethodOptionFunc) (*lark.ListHirePortalApplySchemaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHirePortalApplySchema() + + _, _, err := moduleCli.ListHirePortalApplySchema(ctx, &lark.ListHirePortalApplySchemaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireReferral(func(ctx context.Context, request *lark.SearchHireReferralReq, options ...lark.MethodOptionFunc) (*lark.SearchHireReferralResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireReferral() + + _, _, err := moduleCli.SearchHireReferral(ctx, &lark.SearchHireReferralReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireReferralAccountEnable(func(ctx context.Context, request *lark.CreateHireReferralAccountEnableReq, options ...lark.MethodOptionFunc) (*lark.CreateHireReferralAccountEnableResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireReferralAccountEnable() + + _, _, err := moduleCli.CreateHireReferralAccountEnable(ctx, &lark.CreateHireReferralAccountEnableReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireReferralAccountAssets(func(ctx context.Context, request *lark.GetHireReferralAccountAssetsReq, options ...lark.MethodOptionFunc) (*lark.GetHireReferralAccountAssetsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireReferralAccountAssets() + + _, _, err := moduleCli.GetHireReferralAccountAssets(ctx, &lark.GetHireReferralAccountAssetsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireRegistrationSchema(func(ctx context.Context, request *lark.ListHireRegistrationSchemaReq, options ...lark.MethodOptionFunc) (*lark.ListHireRegistrationSchemaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireRegistrationSchema() + + _, _, err := moduleCli.ListHireRegistrationSchema(ctx, &lark.ListHireRegistrationSchemaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireRole(func(ctx context.Context, request *lark.GetHireRoleReq, options ...lark.MethodOptionFunc) (*lark.GetHireRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireRole() + + _, _, err := moduleCli.GetHireRole(ctx, &lark.GetHireRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireRole(func(ctx context.Context, request *lark.ListHireRoleReq, options ...lark.MethodOptionFunc) (*lark.ListHireRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireRole() + + _, _, err := moduleCli.ListHireRole(ctx, &lark.ListHireRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireSubject(func(ctx context.Context, request *lark.ListHireSubjectReq, options ...lark.MethodOptionFunc) (*lark.ListHireSubjectResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireSubject() + + _, _, err := moduleCli.ListHireSubject(ctx, &lark.ListHireSubjectReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentExternalInfo(func(ctx context.Context, request *lark.CreateHireTalentExternalInfoReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentExternalInfoResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentExternalInfo() + + _, _, err := moduleCli.CreateHireTalentExternalInfo(ctx, &lark.CreateHireTalentExternalInfoReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireTalentExternalInfo(func(ctx context.Context, request *lark.UpdateHireTalentExternalInfoReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireTalentExternalInfoResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireTalentExternalInfo() + + _, _, err := moduleCli.UpdateHireTalentExternalInfo(ctx, &lark.UpdateHireTalentExternalInfoReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentCombinedCreate(func(ctx context.Context, request *lark.CreateHireTalentCombinedCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentCombinedCreateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentCombinedCreate() + + _, _, err := moduleCli.CreateHireTalentCombinedCreate(ctx, &lark.CreateHireTalentCombinedCreateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentCombinedUpdate(func(ctx context.Context, request *lark.CreateHireTalentCombinedUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentCombinedUpdateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentCombinedUpdate() + + _, _, err := moduleCli.CreateHireTalentCombinedUpdate(ctx, &lark.CreateHireTalentCombinedUpdateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireTalentList(func(ctx context.Context, request *lark.GetHireTalentListReq, options ...lark.MethodOptionFunc) (*lark.GetHireTalentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireTalentList() + + _, _, err := moduleCli.GetHireTalentList(ctx, &lark.GetHireTalentListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentOnboardStatus(func(ctx context.Context, request *lark.CreateHireTalentOnboardStatusReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentOnboardStatusResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentOnboardStatus() + + _, _, err := moduleCli.CreateHireTalentOnboardStatus(ctx, &lark.CreateHireTalentOnboardStatusReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireRemoveHireTalentToFolder(func(ctx context.Context, request *lark.RemoveHireTalentToFolderReq, options ...lark.MethodOptionFunc) (*lark.RemoveHireTalentToFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireRemoveHireTalentToFolder() + + _, _, err := moduleCli.RemoveHireTalentToFolder(ctx, &lark.RemoveHireTalentToFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentTag(func(ctx context.Context, request *lark.CreateHireTalentTagReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentTag() + + _, _, err := moduleCli.CreateHireTalentTag(ctx, &lark.CreateHireTalentTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireTalentOperationLog(func(ctx context.Context, request *lark.SearchHireTalentOperationLogReq, options ...lark.MethodOptionFunc) (*lark.SearchHireTalentOperationLogResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireTalentOperationLog() + + _, _, err := moduleCli.SearchHireTalentOperationLog(ctx, &lark.SearchHireTalentOperationLogReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentBlocklistChangeTalentBlock(func(ctx context.Context, request *lark.CreateHireTalentBlocklistChangeTalentBlockReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentBlocklistChangeTalentBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentBlocklistChangeTalentBlock() + + _, _, err := moduleCli.CreateHireTalentBlocklistChangeTalentBlock(ctx, &lark.CreateHireTalentBlocklistChangeTalentBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireBatchHireTalentPoolChangeTalentPool(func(ctx context.Context, request *lark.BatchHireTalentPoolChangeTalentPoolReq, options ...lark.MethodOptionFunc) (*lark.BatchHireTalentPoolChangeTalentPoolResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireBatchHireTalentPoolChangeTalentPool() + + _, _, err := moduleCli.BatchHireTalentPoolChangeTalentPool(ctx, &lark.BatchHireTalentPoolChangeTalentPoolReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTalentPoolMoveTalent(func(ctx context.Context, request *lark.CreateHireTalentPoolMoveTalentReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentPoolMoveTalentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTalentPoolMoveTalent() + + _, _, err := moduleCli.CreateHireTalentPoolMoveTalent(ctx, &lark.CreateHireTalentPoolMoveTalentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireTalentPool(func(ctx context.Context, request *lark.SearchHireTalentPoolReq, options ...lark.MethodOptionFunc) (*lark.SearchHireTalentPoolResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireTalentPool() + + _, _, err := moduleCli.SearchHireTalentPool(ctx, &lark.SearchHireTalentPoolReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireTalentTag(func(ctx context.Context, request *lark.ListHireTalentTagReq, options ...lark.MethodOptionFunc) (*lark.ListHireTalentTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireTalentTag() + + _, _, err := moduleCli.ListHireTalentTag(ctx, &lark.ListHireTalentTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireTerminationReason(func(ctx context.Context, request *lark.ListHireTerminationReasonReq, options ...lark.MethodOptionFunc) (*lark.ListHireTerminationReasonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireTerminationReason() + + _, _, err := moduleCli.ListHireTerminationReason(ctx, &lark.ListHireTerminationReasonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireTest(func(ctx context.Context, request *lark.SearchHireTestReq, options ...lark.MethodOptionFunc) (*lark.SearchHireTestResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireTest() + + _, _, err := moduleCli.SearchHireTest(ctx, &lark.SearchHireTestReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireTodo(func(ctx context.Context, request *lark.ListHireTodoReq, options ...lark.MethodOptionFunc) (*lark.ListHireTodoResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireTodo() + + _, _, err := moduleCli.ListHireTodo(ctx, &lark.ListHireTodoReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireTripartiteAgreement(func(ctx context.Context, request *lark.CreateHireTripartiteAgreementReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTripartiteAgreementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireTripartiteAgreement() + + _, _, err := moduleCli.CreateHireTripartiteAgreement(ctx, &lark.CreateHireTripartiteAgreementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireTripartiteAgreement(func(ctx context.Context, request *lark.DeleteHireTripartiteAgreementReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireTripartiteAgreementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireTripartiteAgreement() + + _, _, err := moduleCli.DeleteHireTripartiteAgreement(ctx, &lark.DeleteHireTripartiteAgreementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireTripartiteAgreement(func(ctx context.Context, request *lark.ListHireTripartiteAgreementReq, options ...lark.MethodOptionFunc) (*lark.ListHireTripartiteAgreementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireTripartiteAgreement() + + _, _, err := moduleCli.ListHireTripartiteAgreement(ctx, &lark.ListHireTripartiteAgreementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireTripartiteAgreement(func(ctx context.Context, request *lark.UpdateHireTripartiteAgreementReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireTripartiteAgreementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireTripartiteAgreement() + + _, _, err := moduleCli.UpdateHireTripartiteAgreement(ctx, &lark.UpdateHireTripartiteAgreementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireUserRole(func(ctx context.Context, request *lark.ListHireUserRoleReq, options ...lark.MethodOptionFunc) (*lark.ListHireUserRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireUserRole() + + _, _, err := moduleCli.ListHireUserRole(ctx, &lark.ListHireUserRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireWebsiteChannel(func(ctx context.Context, request *lark.CreateHireWebsiteChannelReq, options ...lark.MethodOptionFunc) (*lark.CreateHireWebsiteChannelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireWebsiteChannel() + + _, _, err := moduleCli.CreateHireWebsiteChannel(ctx, &lark.CreateHireWebsiteChannelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireDeleteHireWebsiteChannel(func(ctx context.Context, request *lark.DeleteHireWebsiteChannelReq, options ...lark.MethodOptionFunc) (*lark.DeleteHireWebsiteChannelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireDeleteHireWebsiteChannel() + + _, _, err := moduleCli.DeleteHireWebsiteChannel(ctx, &lark.DeleteHireWebsiteChannelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireWebsiteChannel(func(ctx context.Context, request *lark.ListHireWebsiteChannelReq, options ...lark.MethodOptionFunc) (*lark.ListHireWebsiteChannelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireWebsiteChannel() + + _, _, err := moduleCli.ListHireWebsiteChannel(ctx, &lark.ListHireWebsiteChannelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireUpdateHireWebsiteChannel(func(ctx context.Context, request *lark.UpdateHireWebsiteChannelReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireWebsiteChannelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireUpdateHireWebsiteChannel() + + _, _, err := moduleCli.UpdateHireWebsiteChannel(ctx, &lark.UpdateHireWebsiteChannelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireWebsiteDeliveryByAttachment(func(ctx context.Context, request *lark.CreateHireWebsiteDeliveryByAttachmentReq, options ...lark.MethodOptionFunc) (*lark.CreateHireWebsiteDeliveryByAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireWebsiteDeliveryByAttachment() + + _, _, err := moduleCli.CreateHireWebsiteDeliveryByAttachment(ctx, &lark.CreateHireWebsiteDeliveryByAttachmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireWebsiteDeliveryByResume(func(ctx context.Context, request *lark.CreateHireWebsiteDeliveryByResumeReq, options ...lark.MethodOptionFunc) (*lark.CreateHireWebsiteDeliveryByResumeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireWebsiteDeliveryByResume() + + _, _, err := moduleCli.CreateHireWebsiteDeliveryByResume(ctx, &lark.CreateHireWebsiteDeliveryByResumeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireWebsiteDeliveryTask(func(ctx context.Context, request *lark.GetHireWebsiteDeliveryTaskReq, options ...lark.MethodOptionFunc) (*lark.GetHireWebsiteDeliveryTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireWebsiteDeliveryTask() + + _, _, err := moduleCli.GetHireWebsiteDeliveryTask(ctx, &lark.GetHireWebsiteDeliveryTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireGetHireWebsiteJobPost(func(ctx context.Context, request *lark.GetHireWebsiteJobPostReq, options ...lark.MethodOptionFunc) (*lark.GetHireWebsiteJobPostResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireGetHireWebsiteJobPost() + + _, _, err := moduleCli.GetHireWebsiteJobPost(ctx, &lark.GetHireWebsiteJobPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireWebsiteJobPost(func(ctx context.Context, request *lark.ListHireWebsiteJobPostReq, options ...lark.MethodOptionFunc) (*lark.ListHireWebsiteJobPostResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireWebsiteJobPost() + + _, _, err := moduleCli.ListHireWebsiteJobPost(ctx, &lark.ListHireWebsiteJobPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireSearchHireWebsiteJobPost(func(ctx context.Context, request *lark.SearchHireWebsiteJobPostReq, options ...lark.MethodOptionFunc) (*lark.SearchHireWebsiteJobPostResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireSearchHireWebsiteJobPost() + + _, _, err := moduleCli.SearchHireWebsiteJobPost(ctx, &lark.SearchHireWebsiteJobPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireCreateHireWebsiteSiteUser(func(ctx context.Context, request *lark.CreateHireWebsiteSiteUserReq, options ...lark.MethodOptionFunc) (*lark.CreateHireWebsiteSiteUserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireCreateHireWebsiteSiteUser() + + _, _, err := moduleCli.CreateHireWebsiteSiteUser(ctx, &lark.CreateHireWebsiteSiteUserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockHireListHireWebsite(func(ctx context.Context, request *lark.ListHireWebsiteReq, options ...lark.MethodOptionFunc) (*lark.ListHireWebsiteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockHireListHireWebsite() + + _, _, err := moduleCli.ListHireWebsite(ctx, &lark.ListHireWebsiteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Hire + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireJobConfig(ctx, &lark.GetHireJobConfigReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireJob(ctx, &lark.CreateHireJobReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireJob(ctx, &lark.UpdateHireJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireJobConfig(ctx, &lark.UpdateHireJobConfigReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireJob(ctx, &lark.GetHireJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireJobManager(ctx, &lark.GetHireJobManagerReq{ + JobID: "x", + ManagerID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryHireTalentObject(ctx, &lark.QueryHireTalentObjectReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireTalent(ctx, &lark.GetHireTalentReq{ + TalentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireAttachment(ctx, &lark.GetHireAttachmentReq{ + AttachmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireAttachmentPreview(ctx, &lark.GetHireAttachmentPreviewReq{ + AttachmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireReferralWebsiteJobPostList(ctx, &lark.GetHireReferralWebsiteJobPostListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireReferralWebsiteJobPost(ctx, &lark.GetHireReferralWebsiteJobPostReq{ + JobPostID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireReferralByApplication(ctx, &lark.GetHireReferralByApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalApplication(ctx, &lark.CreateHireExternalApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireExternalApplication(ctx, &lark.UpdateHireExternalApplicationReq{ + ExternalApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireExternalApplication(ctx, &lark.DeleteHireExternalApplicationReq{ + ExternalApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalInterview(ctx, &lark.CreateHireExternalInterviewReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalInterviewAssessment(ctx, &lark.CreateHireExternalInterviewAssessmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalBackgroundCheck(ctx, &lark.CreateHireExternalBackgroundCheckReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddHireTalentToFolder(ctx, &lark.AddHireTalentToFolderReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireTalentFolderList(ctx, &lark.GetHireTalentFolderListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetHireTalent(ctx, &lark.BatchGetHireTalentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireJobProcessList(ctx, &lark.GetHireJobProcessListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireApplication(ctx, &lark.CreateHireApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.TerminateHireApplication(ctx, &lark.TerminateHireApplicationReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetHireApplication(ctx, &lark.GetHireApplicationReq{ ApplicationID: "x", }) @@ -1009,301 +2440,1221 @@ func Test_Hire_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireApplicationList(ctx, &lark.GetHireApplicationListReq{}) + + _, _, err := moduleCli.GetHireApplicationList(ctx, &lark.GetHireApplicationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireEvaluationList(ctx, &lark.GetHireEvaluationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireQuestionnaireList(ctx, &lark.GetHireQuestionnaireListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireInterviewList(ctx, &lark.GetHireInterviewListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireOffer(ctx, &lark.CreateHireOfferReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireOffer(ctx, &lark.UpdateHireOfferReq{ + OfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireOfferByApplication(ctx, &lark.GetHireOfferByApplicationReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireOffer(ctx, &lark.GetHireOfferReq{ + OfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireOfferList(ctx, &lark.GetHireOfferListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireOfferStatus(ctx, &lark.UpdateHireOfferStatusReq{ + OfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireOfferInternStatus(ctx, &lark.UpdateHireOfferInternStatusReq{ + OfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireApplicationInterviewList(ctx, &lark.GetHireApplicationInterviewListReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireOfferSchema(ctx, &lark.GetHireOfferSchemaReq{ + OfferSchemaID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireEHRImportTask(ctx, &lark.UpdateHireEHRImportTaskReq{ + EHRImportTaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MakeHireTransferOnboardByApplication(ctx, &lark.MakeHireTransferOnboardByApplicationReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireEmployee(ctx, &lark.UpdateHireEmployeeReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireEmployeeByApplication(ctx, &lark.GetHireEmployeeByApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireEmployee(ctx, &lark.GetHireEmployeeReq{ + EmployeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireNote(ctx, &lark.CreateHireNoteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireNote(ctx, &lark.UpdateHireNoteReq{ + NoteID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireNote(ctx, &lark.GetHireNoteReq{ + NoteID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireNoteList(ctx, &lark.GetHireNoteListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireResumeSource(ctx, &lark.GetHireResumeSourceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireEcoAccountCustomField(ctx, &lark.CreateHireEcoAccountCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateHireEcoAccountCustomField(ctx, &lark.BatchUpdateHireEcoAccountCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteHireEcoAccountCustomField(ctx, &lark.BatchDeleteHireEcoAccountCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireEcoBackgroundCheckCustomField(ctx, &lark.CreateHireEcoBackgroundCheckCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateHireEcoBackgroundCheckCustomField(ctx, &lark.BatchUpdateHireEcoBackgroundCheckCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteHireEcoBackgroundCheckCustomField(ctx, &lark.BatchDeleteHireEcoBackgroundCheckCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireEcoBackgroundCheckPackage(ctx, &lark.CreateHireEcoBackgroundCheckPackageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateHireEcoBackgroundCheckPackage(ctx, &lark.BatchUpdateHireEcoBackgroundCheckPackageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteHireEcoBackgroundCheckPackage(ctx, &lark.BatchDeleteHireEcoBackgroundCheckPackageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireEcoBackgroundCheckProgress(ctx, &lark.UpdateHireEcoBackgroundCheckProgressReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireEcoBackgroundCheckResult(ctx, &lark.UpdateHireEcoBackgroundCheckResultReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CancelHireEcoBackgroundCheck(ctx, &lark.CancelHireEcoBackgroundCheckReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireEcoExamPaper(ctx, &lark.CreateHireEcoExamPaperReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateHireEcoExamPaper(ctx, &lark.BatchUpdateHireEcoExamPaperReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteHireEcoExamPaper(ctx, &lark.BatchDeleteHireEcoExamPaperReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireEcoExamLoginInfo(ctx, &lark.CreateHireEcoExamLoginInfoReq{ + ExamID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHiredEcoExamResult(ctx, &lark.UpdateHiredEcoExamResultReq{ + ExamID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireReferralAccount(ctx, &lark.CreateHireReferralAccountReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeactivateHireReferralAccount(ctx, &lark.DeactivateHireReferralAccountReq{ + ReferralAccountID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.WithdrawHireReferralAccount(ctx, &lark.WithdrawHireReferralAccountReq{ + ReferralAccountID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ReconcileHireReferralAccount(ctx, &lark.ReconcileHireReferralAccountReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireInterviewRecord(ctx, &lark.GetHireInterviewRecordReq{ + InterviewRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewRecord(ctx, &lark.ListHireInterviewRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireTalentV2(ctx, &lark.GetHireTalentV2Req{ + TalentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireAttachment(ctx, &lark.CreateHireAttachmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireAdvertisementPublish(ctx, &lark.CreateHireAdvertisementPublishReq{ + AdvertisementID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryHireAgency(ctx, &lark.BatchQueryHireAgencyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireAgency(ctx, &lark.GetHireAgencyReq{ + AgencyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireAgencyAccount(ctx, &lark.GetHireAgencyAccountReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireAgencyOperateAgencyAccount(ctx, &lark.CreateHireAgencyOperateAgencyAccountReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireAgencyProtect(ctx, &lark.CreateHireAgencyProtectReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireAgencyProtectSearch(ctx, &lark.CreateHireAgencyProtectSearchReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryHireAgency(ctx, &lark.QueryHireAgencyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireApplicationCancelOnboard(ctx, &lark.CreateHireApplicationCancelOnboardReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireApplicationDetail(ctx, &lark.GetHireApplicationDetailReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireApplicationRecover(ctx, &lark.CreateHireApplicationRecoverReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.TransferHireApplicationStage(ctx, &lark.TransferHireApplicationStageReq{ + ApplicationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryHireBackgroundCheckOrder(ctx, &lark.BatchQueryHireBackgroundCheckOrderReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireBackgroundCheckOrder(ctx, &lark.ListHireBackgroundCheckOrderReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchHireDiversityInclusion(ctx, &lark.SearchHireDiversityInclusionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireEvaluationTask(ctx, &lark.ListHireEvaluationTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExam(ctx, &lark.CreateHireExamReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireExamMarkingTask(ctx, &lark.ListHireExamMarkingTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireExternalApplication(ctx, &lark.ListHireExternalApplicationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryHireExternalBackgroundCheck(ctx, &lark.BatchQueryHireExternalBackgroundCheckReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireExternalBackgroundCheck(ctx, &lark.DeleteHireExternalBackgroundCheckReq{ + ExternalBackgroundCheckID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireExternalBackgroundCheck(ctx, &lark.UpdateHireExternalBackgroundCheckReq{ + ExternalBackgroundCheckID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryHireExternalInterview(ctx, &lark.BatchQueryHireExternalInterviewReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireExternalInterview(ctx, &lark.DeleteHireExternalInterviewReq{ + ExternalInterviewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireExternalInterview(ctx, &lark.UpdateHireExternalInterviewReq{ + ExternalInterviewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireExternalInterviewAssessment(ctx, &lark.UpdateHireExternalInterviewAssessmentReq{ + ExternalInterviewAssessmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryHireExternalOffer(ctx, &lark.BatchQueryHireExternalOfferReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalOffer(ctx, &lark.CreateHireExternalOfferReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireExternalOffer(ctx, &lark.DeleteHireExternalOfferReq{ + ExternalOfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireExternalOffer(ctx, &lark.UpdateHireExternalOfferReq{ + ExternalOfferID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireExternalReferralReward(ctx, &lark.CreateHireExternalReferralRewardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireExternalReferralReward(ctx, &lark.DeleteHireExternalReferralRewardReq{ + ExternalReferralRewardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireInterviewByTalent(ctx, &lark.GetHireInterviewByTalentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewFeedbackForm(ctx, &lark.ListHireInterviewFeedbackFormReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireInterviewRecordAttachment(ctx, &lark.GetHireInterviewRecordAttachmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireInterviewRecordV1(ctx, &lark.GetHireInterviewRecordV1Req{ + InterviewRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewRecordV1(ctx, &lark.ListHireInterviewRecordV1Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewRegistrationSchema(ctx, &lark.ListHireInterviewRegistrationSchemaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewRoundType(ctx, &lark.ListHireInterviewRoundTypeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewTask(ctx, &lark.ListHireInterviewTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireInterviewer(ctx, &lark.ListHireInterviewerReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireInterviewer(ctx, &lark.UpdateHireInterviewerReq{ + InterviewerID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CloseHireJob(ctx, &lark.CloseHireJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireJobDetail(ctx, &lark.GetHireJobDetailReq{ + JobID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireEvaluationList(ctx, &lark.GetHireEvaluationListReq{}) + + _, _, err := moduleCli.ListHireJob(ctx, &lark.ListHireJobReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireQuestionnaireList(ctx, &lark.GetHireQuestionnaireListReq{}) + + _, _, err := moduleCli.OpenHireJob(ctx, &lark.OpenHireJobReq{ + JobID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireInterviewList(ctx, &lark.GetHireInterviewListReq{}) + + _, _, err := moduleCli.GetHireJobRecruiter(ctx, &lark.GetHireJobRecruiterReq{ + JobID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireOffer(ctx, &lark.CreateHireOfferReq{}) + + _, _, err := moduleCli.ListHireJobFunction(ctx, &lark.ListHireJobFunctionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireOffer(ctx, &lark.UpdateHireOfferReq{ - OfferID: "x", - }) + + _, _, err := moduleCli.SearchHireJobPublishRecord(ctx, &lark.SearchHireJobPublishRecordReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireOfferByApplication(ctx, &lark.GetHireOfferByApplicationReq{ - ApplicationID: "x", - }) + + _, _, err := moduleCli.CreateHireJobRequirement(ctx, &lark.CreateHireJobRequirementReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireOffer(ctx, &lark.GetHireOfferReq{ - OfferID: "x", + + _, _, err := moduleCli.DeleteHireJobRequirement(ctx, &lark.DeleteHireJobRequirementReq{ + JobRequirementID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireOfferList(ctx, &lark.GetHireOfferListReq{}) + + _, _, err := moduleCli.ListHireJobRequirement(ctx, &lark.ListHireJobRequirementReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireOfferStatus(ctx, &lark.UpdateHireOfferStatusReq{ - OfferID: "x", + + _, _, err := moduleCli.ListHireJobRequirementByID(ctx, &lark.ListHireJobRequirementByIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireJobRequirement(ctx, &lark.UpdateHireJobRequirementReq{ + JobRequirementID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireOfferInternStatus(ctx, &lark.UpdateHireOfferInternStatusReq{ - OfferID: "x", + + _, _, err := moduleCli.ListHireJobRequirementSchema(ctx, &lark.ListHireJobRequirementSchemaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireJobSchema(ctx, &lark.ListHireJobSchemaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireJobType(ctx, &lark.ListHireJobTypeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireLocation(ctx, &lark.ListHireLocationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryHireLocation(ctx, &lark.QueryHireLocationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireMinutes(ctx, &lark.GetHireMinutesReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteHireNote(ctx, &lark.DeleteHireNoteReq{ + NoteID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireApplicationInterviewList(ctx, &lark.GetHireApplicationInterviewListReq{ - ApplicationID: "x", + + _, _, err := moduleCli.GetHireOfferApplicationForm(ctx, &lark.GetHireOfferApplicationFormReq{ + OfferApplicationFormID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireOfferSchema(ctx, &lark.GetHireOfferSchemaReq{ - OfferSchemaID: "x", + + _, _, err := moduleCli.ListHireOfferApplicationForm(ctx, &lark.ListHireOfferApplicationFormReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireOfferApprovalTemplate(ctx, &lark.ListHireOfferApprovalTemplateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateHireOfferCustomField(ctx, &lark.UpdateHireOfferCustomFieldReq{ + OfferCustomFieldID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireEHRImportTask(ctx, &lark.UpdateHireEHRImportTaskReq{ - EHRImportTaskID: "x", + + _, _, err := moduleCli.ListHirePortalApplySchema(ctx, &lark.ListHirePortalApplySchemaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchHireReferral(ctx, &lark.SearchHireReferralReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireReferralAccountEnable(ctx, &lark.CreateHireReferralAccountEnableReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireReferralAccountAssets(ctx, &lark.GetHireReferralAccountAssetsReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireRegistrationSchema(ctx, &lark.ListHireRegistrationSchemaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireRole(ctx, &lark.GetHireRoleReq{ + RoleID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MakeHireTransferOnboardByApplication(ctx, &lark.MakeHireTransferOnboardByApplicationReq{ - ApplicationID: "x", + + _, _, err := moduleCli.ListHireRole(ctx, &lark.ListHireRoleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListHireSubject(ctx, &lark.ListHireSubjectReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireTalentExternalInfo(ctx, &lark.CreateHireTalentExternalInfoReq{ + TalentID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireEmployee(ctx, &lark.UpdateHireEmployeeReq{ - EmployeeID: "x", + + _, _, err := moduleCli.UpdateHireTalentExternalInfo(ctx, &lark.UpdateHireTalentExternalInfoReq{ + TalentID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireEmployeeByApplication(ctx, &lark.GetHireEmployeeByApplicationReq{}) + + _, _, err := moduleCli.CreateHireTalentCombinedCreate(ctx, &lark.CreateHireTalentCombinedCreateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireEmployee(ctx, &lark.GetHireEmployeeReq{ - EmployeeID: "x", + + _, _, err := moduleCli.CreateHireTalentCombinedUpdate(ctx, &lark.CreateHireTalentCombinedUpdateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetHireTalentList(ctx, &lark.GetHireTalentListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireTalentOnboardStatus(ctx, &lark.CreateHireTalentOnboardStatusReq{ + TalentID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireNote(ctx, &lark.CreateHireNoteReq{}) + + _, _, err := moduleCli.RemoveHireTalentToFolder(ctx, &lark.RemoveHireTalentToFolderReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireNote(ctx, &lark.UpdateHireNoteReq{ - NoteID: "x", + + _, _, err := moduleCli.CreateHireTalentTag(ctx, &lark.CreateHireTalentTagReq{ + TalentID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireNote(ctx, &lark.GetHireNoteReq{ - NoteID: "x", + + _, _, err := moduleCli.SearchHireTalentOperationLog(ctx, &lark.SearchHireTalentOperationLogReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateHireTalentBlocklistChangeTalentBlock(ctx, &lark.CreateHireTalentBlocklistChangeTalentBlockReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchHireTalentPoolChangeTalentPool(ctx, &lark.BatchHireTalentPoolChangeTalentPoolReq{ + TalentPoolID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireNoteList(ctx, &lark.GetHireNoteListReq{}) + + _, _, err := moduleCli.CreateHireTalentPoolMoveTalent(ctx, &lark.CreateHireTalentPoolMoveTalentReq{ + TalentPoolID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetHireResumeSource(ctx, &lark.GetHireResumeSourceReq{}) + + _, _, err := moduleCli.SearchHireTalentPool(ctx, &lark.SearchHireTalentPoolReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireEcoAccountCustomField(ctx, &lark.CreateHireEcoAccountCustomFieldReq{}) + + _, _, err := moduleCli.ListHireTalentTag(ctx, &lark.ListHireTalentTagReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateHireEcoAccountCustomField(ctx, &lark.BatchUpdateHireEcoAccountCustomFieldReq{}) + + _, _, err := moduleCli.ListHireTerminationReason(ctx, &lark.ListHireTerminationReasonReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteHireEcoAccountCustomField(ctx, &lark.BatchDeleteHireEcoAccountCustomFieldReq{}) + + _, _, err := moduleCli.SearchHireTest(ctx, &lark.SearchHireTestReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireEcoBackgroundCheckCustomField(ctx, &lark.CreateHireEcoBackgroundCheckCustomFieldReq{}) + + _, _, err := moduleCli.ListHireTodo(ctx, &lark.ListHireTodoReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateHireEcoBackgroundCheckCustomField(ctx, &lark.BatchUpdateHireEcoBackgroundCheckCustomFieldReq{}) + + _, _, err := moduleCli.CreateHireTripartiteAgreement(ctx, &lark.CreateHireTripartiteAgreementReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteHireEcoBackgroundCheckCustomField(ctx, &lark.BatchDeleteHireEcoBackgroundCheckCustomFieldReq{}) + + _, _, err := moduleCli.DeleteHireTripartiteAgreement(ctx, &lark.DeleteHireTripartiteAgreementReq{ + TripartiteAgreementID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireEcoBackgroundCheckPackage(ctx, &lark.CreateHireEcoBackgroundCheckPackageReq{}) + + _, _, err := moduleCli.ListHireTripartiteAgreement(ctx, &lark.ListHireTripartiteAgreementReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateHireEcoBackgroundCheckPackage(ctx, &lark.BatchUpdateHireEcoBackgroundCheckPackageReq{}) + + _, _, err := moduleCli.UpdateHireTripartiteAgreement(ctx, &lark.UpdateHireTripartiteAgreementReq{ + TripartiteAgreementID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteHireEcoBackgroundCheckPackage(ctx, &lark.BatchDeleteHireEcoBackgroundCheckPackageReq{}) + + _, _, err := moduleCli.ListHireUserRole(ctx, &lark.ListHireUserRoleReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireEcoBackgroundCheckProgress(ctx, &lark.UpdateHireEcoBackgroundCheckProgressReq{}) + + _, _, err := moduleCli.CreateHireWebsiteChannel(ctx, &lark.CreateHireWebsiteChannelReq{ + WebsiteID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHireEcoBackgroundCheckResult(ctx, &lark.UpdateHireEcoBackgroundCheckResultReq{}) + + _, _, err := moduleCli.DeleteHireWebsiteChannel(ctx, &lark.DeleteHireWebsiteChannelReq{ + WebsiteID: "x", + ChannelID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CancelHireEcoBackgroundCheck(ctx, &lark.CancelHireEcoBackgroundCheckReq{}) + + _, _, err := moduleCli.ListHireWebsiteChannel(ctx, &lark.ListHireWebsiteChannelReq{ + WebsiteID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireEcoExamPaper(ctx, &lark.CreateHireEcoExamPaperReq{}) + + _, _, err := moduleCli.UpdateHireWebsiteChannel(ctx, &lark.UpdateHireWebsiteChannelReq{ + WebsiteID: "x", + ChannelID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateHireEcoExamPaper(ctx, &lark.BatchUpdateHireEcoExamPaperReq{}) + + _, _, err := moduleCli.CreateHireWebsiteDeliveryByAttachment(ctx, &lark.CreateHireWebsiteDeliveryByAttachmentReq{ + WebsiteID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteHireEcoExamPaper(ctx, &lark.BatchDeleteHireEcoExamPaperReq{}) + + _, _, err := moduleCli.CreateHireWebsiteDeliveryByResume(ctx, &lark.CreateHireWebsiteDeliveryByResumeReq{ + WebsiteID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireEcoExamLoginInfo(ctx, &lark.CreateHireEcoExamLoginInfoReq{ - ExamID: "x", + + _, _, err := moduleCli.GetHireWebsiteDeliveryTask(ctx, &lark.GetHireWebsiteDeliveryTaskReq{ + WebsiteID: "x", + DeliveryTaskID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateHiredEcoExamResult(ctx, &lark.UpdateHiredEcoExamResultReq{ - ExamID: "x", + + _, _, err := moduleCli.GetHireWebsiteJobPost(ctx, &lark.GetHireWebsiteJobPostReq{ + WebsiteID: "x", + JobPostID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireReferralAccount(ctx, &lark.CreateHireReferralAccountReq{}) + + _, _, err := moduleCli.ListHireWebsiteJobPost(ctx, &lark.ListHireWebsiteJobPostReq{ + WebsiteID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeactivateHireReferralAccount(ctx, &lark.DeactivateHireReferralAccountReq{ - ReferralAccountID: "x", + + _, _, err := moduleCli.SearchHireWebsiteJobPost(ctx, &lark.SearchHireWebsiteJobPostReq{ + WebsiteID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.WithdrawHireReferralAccount(ctx, &lark.WithdrawHireReferralAccountReq{ - ReferralAccountID: "x", + + _, _, err := moduleCli.CreateHireWebsiteSiteUser(ctx, &lark.CreateHireWebsiteSiteUserReq{ + WebsiteID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ReconcileHireReferralAccount(ctx, &lark.ReconcileHireReferralAccountReq{}) + + _, _, err := moduleCli.ListHireWebsite(ctx, &lark.ListHireWebsiteReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/humanauth_sample_test.go b/test/humanauth_sample_test.go index 4acc1e6d..bf749e0a 100644 --- a/test/humanauth_sample_test.go +++ b/test/humanauth_sample_test.go @@ -37,10 +37,12 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { moduleCli := cli.HumanAuth t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetFaceVerifyAuthResult(ctx, &lark.GetFaceVerifyAuthResultReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { moduleCli := cli.HumanAuth t.Run("", func(t *testing.T) { + cli.Mock().MockHumanAuthGetFaceVerifyAuthResult(func(ctx context.Context, request *lark.GetFaceVerifyAuthResultReq, options ...lark.MethodOptionFunc) (*lark.GetFaceVerifyAuthResultResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHumanAuthUploadFaceVerifyImage(func(ctx context.Context, request *lark.UploadFaceVerifyImageReq, options ...lark.MethodOptionFunc) (*lark.UploadFaceVerifyImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHumanAuthCropFaceVerifyImage(func(ctx context.Context, request *lark.CropFaceVerifyImageReq, options ...lark.MethodOptionFunc) (*lark.CropFaceVerifyImageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockHumanAuthCreateIdentity(func(ctx context.Context, request *lark.CreateIdentityReq, options ...lark.MethodOptionFunc) (*lark.CreateIdentityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -90,6 +96,7 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -100,27 +107,32 @@ func Test_HumanAuth_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetFaceVerifyAuthResult(ctx, &lark.GetFaceVerifyAuthResultReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UploadFaceVerifyImage(ctx, &lark.UploadFaceVerifyImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CropFaceVerifyImage(ctx, &lark.CropFaceVerifyImageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateIdentity(ctx, &lark.CreateIdentityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/jssdk_sample_test.go b/test/jssdk_sample_test.go index 2bdca27c..849c20a5 100644 --- a/test/jssdk_sample_test.go +++ b/test/jssdk_sample_test.go @@ -37,10 +37,12 @@ func Test_Jssdk_Sample_Failed(t *testing.T) { moduleCli := cli.Jssdk t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetJssdkTicket(ctx, &lark.GetJssdkTicketReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Jssdk_Sample_Failed(t *testing.T) { moduleCli := cli.Jssdk t.Run("", func(t *testing.T) { + cli.Mock().MockJssdkGetJssdkTicket(func(ctx context.Context, request *lark.GetJssdkTicketReq, options ...lark.MethodOptionFunc) (*lark.GetJssdkTicketResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -57,6 +60,7 @@ func Test_Jssdk_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -67,9 +71,11 @@ func Test_Jssdk_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetJssdkTicket(ctx, &lark.GetJssdkTicketReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/lingo_sample_test.go b/test/lingo_sample_test.go index 5afd963a..29a93759 100644 --- a/test/lingo_sample_test.go +++ b/test/lingo_sample_test.go @@ -37,10 +37,12 @@ func Test_Lingo_Sample_Failed(t *testing.T) { moduleCli := cli.Lingo t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) + + _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,169 +50,17 @@ func Test_Lingo_Sample_Failed(t *testing.T) { moduleCli := cli.Lingo t.Run("", func(t *testing.T) { - cli.Mock().MockLingoCreateLingoDraft(func(ctx context.Context, request *lark.CreateLingoDraftReq, options ...lark.MethodOptionFunc) (*lark.CreateLingoDraftResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoCreateLingoDraft() - - _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoUpdateLingoDraft(func(ctx context.Context, request *lark.UpdateLingoDraftReq, options ...lark.MethodOptionFunc) (*lark.UpdateLingoDraftResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoUpdateLingoDraft() - _, _, err := moduleCli.UpdateLingoDraft(ctx, &lark.UpdateLingoDraftReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoDeleteLingoEntity(func(ctx context.Context, request *lark.DeleteLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.DeleteLingoEntityResp, *lark.Response, error) { + cli.Mock().MockLingoBatchHighlightLingoEntity(func(ctx context.Context, request *lark.BatchHighlightLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.BatchHighlightLingoEntityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockLingoDeleteLingoEntity() + defer cli.Mock().UnMockLingoBatchHighlightLingoEntity() - _, _, err := moduleCli.DeleteLingoEntity(ctx, &lark.DeleteLingoEntityReq{}) + _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoCreateLingoEntity(func(ctx context.Context, request *lark.CreateLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.CreateLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoCreateLingoEntity() - - _, _, err := moduleCli.CreateLingoEntity(ctx, &lark.CreateLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoUpdateLingoEntity(func(ctx context.Context, request *lark.UpdateLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.UpdateLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoUpdateLingoEntity() - - _, _, err := moduleCli.UpdateLingoEntity(ctx, &lark.UpdateLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoGetLingoEntity(func(ctx context.Context, request *lark.GetLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.GetLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoGetLingoEntity() - - _, _, err := moduleCli.GetLingoEntity(ctx, &lark.GetLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoGetLingoEntityList(func(ctx context.Context, request *lark.GetLingoEntityListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoEntityListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoGetLingoEntityList() - - _, _, err := moduleCli.GetLingoEntityList(ctx, &lark.GetLingoEntityListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoMatchLingoEntity(func(ctx context.Context, request *lark.MatchLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.MatchLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoMatchLingoEntity() - - _, _, err := moduleCli.MatchLingoEntity(ctx, &lark.MatchLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoSearchLingoEntity(func(ctx context.Context, request *lark.SearchLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.SearchLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoSearchLingoEntity() - - _, _, err := moduleCli.SearchLingoEntity(ctx, &lark.SearchLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoHighlightLingoEntity(func(ctx context.Context, request *lark.HighlightLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.HighlightLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoHighlightLingoEntity() - - _, _, err := moduleCli.HighlightLingoEntity(ctx, &lark.HighlightLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoExtractLingoEntity(func(ctx context.Context, request *lark.ExtractLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.ExtractLingoEntityResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoExtractLingoEntity() - - _, _, err := moduleCli.ExtractLingoEntity(ctx, &lark.ExtractLingoEntityReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoGetLingoClassificationList(func(ctx context.Context, request *lark.GetLingoClassificationListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoClassificationListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoGetLingoClassificationList() - - _, _, err := moduleCli.GetLingoClassificationList(ctx, &lark.GetLingoClassificationListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoGetLingoRepoList(func(ctx context.Context, request *lark.GetLingoRepoListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoRepoListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoGetLingoRepoList() - - _, _, err := moduleCli.GetLingoRepoList(ctx, &lark.GetLingoRepoListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoUploadLingoFile(func(ctx context.Context, request *lark.UploadLingoFileReq, options ...lark.MethodOptionFunc) (*lark.UploadLingoFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoUploadLingoFile() - - _, _, err := moduleCli.UploadLingoFile(ctx, &lark.UploadLingoFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockLingoDownloadLingoFile(func(ctx context.Context, request *lark.DownloadLingoFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadLingoFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockLingoDownloadLingoFile() - - _, _, err := moduleCli.DownloadLingoFile(ctx, &lark.DownloadLingoFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -221,103 +71,11 @@ func Test_Lingo_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateLingoDraft(ctx, &lark.UpdateLingoDraftReq{ - DraftID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteLingoEntity(ctx, &lark.DeleteLingoEntityReq{ - EntityID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateLingoEntity(ctx, &lark.CreateLingoEntityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateLingoEntity(ctx, &lark.UpdateLingoEntityReq{ - EntityID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetLingoEntity(ctx, &lark.GetLingoEntityReq{ - EntityID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetLingoEntityList(ctx, &lark.GetLingoEntityListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MatchLingoEntity(ctx, &lark.MatchLingoEntityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchLingoEntity(ctx, &lark.SearchLingoEntityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.HighlightLingoEntity(ctx, &lark.HighlightLingoEntityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ExtractLingoEntity(ctx, &lark.ExtractLingoEntityReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetLingoClassificationList(ctx, &lark.GetLingoClassificationListReq{}) + _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetLingoRepoList(ctx, &lark.GetLingoRepoListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UploadLingoFile(ctx, &lark.UploadLingoFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadLingoFile(ctx, &lark.DownloadLingoFileReq{ - FileToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/mail_sample_test.go b/test/mail_sample_test.go index 73fa6137..b861ec35 100644 --- a/test/mail_sample_test.go +++ b/test/mail_sample_test.go @@ -37,10 +37,12 @@ func Test_Mail_Sample_Failed(t *testing.T) { moduleCli := cli.Mail t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) + + _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,499 +50,281 @@ func Test_Mail_Sample_Failed(t *testing.T) { moduleCli := cli.Mail t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailUser(func(ctx context.Context, request *lark.GetMailUserReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetMailUser() - - _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailGroup(func(ctx context.Context, request *lark.CreateMailGroupReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupResp, *lark.Response, error) { + cli.Mock().MockMailApplyMailRule(func(ctx context.Context, request *lark.ApplyMailRuleReq, options ...lark.MethodOptionFunc) (*lark.ApplyMailRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailGroup() + defer cli.Mock().UnMockMailApplyMailRule() - _, _, err := moduleCli.CreateMailGroup(ctx, &lark.CreateMailGroupReq{}) + _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailGroup(func(ctx context.Context, request *lark.DeleteMailGroupReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeleteMailGroup() - - _, _, err := moduleCli.DeleteMailGroup(ctx, &lark.DeleteMailGroupReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdateMailGroupPatch(func(ctx context.Context, request *lark.UpdateMailGroupPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailGroupPatchResp, *lark.Response, error) { + cli.Mock().MockMailCreateUserMailboxMailContact(func(ctx context.Context, request *lark.CreateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.CreateUserMailboxMailContactResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUpdateMailGroupPatch() + defer cli.Mock().UnMockMailCreateUserMailboxMailContact() - _, _, err := moduleCli.UpdateMailGroupPatch(ctx, &lark.UpdateMailGroupPatchReq{}) + _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdateMailGroup(func(ctx context.Context, request *lark.UpdateMailGroupReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailGroupResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailUpdateMailGroup() - _, _, err := moduleCli.UpdateMailGroup(ctx, &lark.UpdateMailGroupReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroup(func(ctx context.Context, request *lark.GetMailGroupReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailUserMailboxFolder(func(ctx context.Context, request *lark.CreateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxFolderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailGroup() + defer cli.Mock().UnMockMailCreateMailUserMailboxFolder() - _, _, err := moduleCli.GetMailGroup(ctx, &lark.GetMailGroupReq{}) + _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupList(func(ctx context.Context, request *lark.GetMailGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetMailGroupList() - - _, _, err := moduleCli.GetMailGroupList(ctx, &lark.GetMailGroupListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchCreateMailGroupManager(func(ctx context.Context, request *lark.BatchCreateMailGroupManagerReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupManagerResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailUserMailboxRule(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailBatchCreateMailGroupManager() + defer cli.Mock().UnMockMailCreateMailUserMailboxRule() - _, _, err := moduleCli.BatchCreateMailGroupManager(ctx, &lark.BatchCreateMailGroupManagerReq{}) + _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchDeleteMailGroupManager(func(ctx context.Context, request *lark.BatchDeleteMailGroupManagerReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupManagerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailBatchDeleteMailGroupManager() - _, _, err := moduleCli.BatchDeleteMailGroupManager(ctx, &lark.BatchDeleteMailGroupManagerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupManagerList(func(ctx context.Context, request *lark.GetMailGroupManagerListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupManagerListResp, *lark.Response, error) { + cli.Mock().MockMailDeleteUserMailboxMailContact(func(ctx context.Context, request *lark.DeleteUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.DeleteUserMailboxMailContactResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailGroupManagerList() + defer cli.Mock().UnMockMailDeleteUserMailboxMailContact() - _, _, err := moduleCli.GetMailGroupManagerList(ctx, &lark.GetMailGroupManagerListReq{}) + _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailGroupMember(func(ctx context.Context, request *lark.CreateMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailCreateMailGroupMember() - _, _, err := moduleCli.CreateMailGroupMember(ctx, &lark.CreateMailGroupMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailGroupMember(func(ctx context.Context, request *lark.DeleteMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupMemberResp, *lark.Response, error) { + cli.Mock().MockMailDeleteMailUserMailboxFolder(func(ctx context.Context, request *lark.DeleteMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxFolderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteMailGroupMember() + defer cli.Mock().UnMockMailDeleteMailUserMailboxFolder() - _, _, err := moduleCli.DeleteMailGroupMember(ctx, &lark.DeleteMailGroupMemberReq{}) + _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupMember(func(ctx context.Context, request *lark.GetMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetMailGroupMember() - _, _, err := moduleCli.GetMailGroupMember(ctx, &lark.GetMailGroupMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupMemberList(func(ctx context.Context, request *lark.GetMailGroupMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupMemberListResp, *lark.Response, error) { + cli.Mock().MockMailDeleteMailUserMailboxRule(func(ctx context.Context, request *lark.DeleteMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailGroupMemberList() + defer cli.Mock().UnMockMailDeleteMailUserMailboxRule() - _, _, err := moduleCli.GetMailGroupMemberList(ctx, &lark.GetMailGroupMemberListReq{}) + _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchCreateMailGroupMember(func(ctx context.Context, request *lark.BatchCreateMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailBatchCreateMailGroupMember() - - _, _, err := moduleCli.BatchCreateMailGroupMember(ctx, &lark.BatchCreateMailGroupMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchDeleteMailGroupMember(func(ctx context.Context, request *lark.BatchDeleteMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupMemberResp, *lark.Response, error) { + cli.Mock().MockMailListUserMailboxMailContact(func(ctx context.Context, request *lark.ListUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.ListUserMailboxMailContactResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailBatchDeleteMailGroupMember() + defer cli.Mock().UnMockMailListUserMailboxMailContact() - _, _, err := moduleCli.BatchDeleteMailGroupMember(ctx, &lark.BatchDeleteMailGroupMemberReq{}) + _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailGroupPermissionMember(func(ctx context.Context, request *lark.CreateMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupPermissionMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailCreateMailGroupPermissionMember() - - _, _, err := moduleCli.CreateMailGroupPermissionMember(ctx, &lark.CreateMailGroupPermissionMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailGroupPermissionMember(func(ctx context.Context, request *lark.DeleteMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupPermissionMemberResp, *lark.Response, error) { + cli.Mock().MockMailGetMailUserMailboxEventSubscription(func(ctx context.Context, request *lark.GetMailUserMailboxEventSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxEventSubscriptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteMailGroupPermissionMember() + defer cli.Mock().UnMockMailGetMailUserMailboxEventSubscription() - _, _, err := moduleCli.DeleteMailGroupPermissionMember(ctx, &lark.DeleteMailGroupPermissionMemberReq{}) + _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupPermissionMember(func(ctx context.Context, request *lark.GetMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupPermissionMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetMailGroupPermissionMember() - _, _, err := moduleCli.GetMailGroupPermissionMember(ctx, &lark.GetMailGroupPermissionMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupPermissionMemberList(func(ctx context.Context, request *lark.GetMailGroupPermissionMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupPermissionMemberListResp, *lark.Response, error) { + cli.Mock().MockMailListMailUserMailboxFolder(func(ctx context.Context, request *lark.ListMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxFolderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailGroupPermissionMemberList() + defer cli.Mock().UnMockMailListMailUserMailboxFolder() - _, _, err := moduleCli.GetMailGroupPermissionMemberList(ctx, &lark.GetMailGroupPermissionMemberListReq{}) + _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchCreateMailGroupPermissionMember(func(ctx context.Context, request *lark.BatchCreateMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupPermissionMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailBatchCreateMailGroupPermissionMember() - - _, _, err := moduleCli.BatchCreateMailGroupPermissionMember(ctx, &lark.BatchCreateMailGroupPermissionMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchDeleteMailGroupPermissionMember(func(ctx context.Context, request *lark.BatchDeleteMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupPermissionMemberResp, *lark.Response, error) { + cli.Mock().MockMailGetMailUserMailboxMessage(func(ctx context.Context, request *lark.GetMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailBatchDeleteMailGroupPermissionMember() + defer cli.Mock().UnMockMailGetMailUserMailboxMessage() - _, _, err := moduleCli.BatchDeleteMailGroupPermissionMember(ctx, &lark.BatchDeleteMailGroupPermissionMemberReq{}) + _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailGroupAlias(func(ctx context.Context, request *lark.CreateMailGroupAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupAliasResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailCreateMailGroupAlias() - - _, _, err := moduleCli.CreateMailGroupAlias(ctx, &lark.CreateMailGroupAliasReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailGroupAliasList(func(ctx context.Context, request *lark.GetMailGroupAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupAliasListResp, *lark.Response, error) { + cli.Mock().MockMailListMailUserMailboxMessage(func(ctx context.Context, request *lark.ListMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailGroupAliasList() + defer cli.Mock().UnMockMailListMailUserMailboxMessage() - _, _, err := moduleCli.GetMailGroupAliasList(ctx, &lark.GetMailGroupAliasListReq{}) + _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailGroupAlias(func(ctx context.Context, request *lark.DeleteMailGroupAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupAliasResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeleteMailGroupAlias() - - _, _, err := moduleCli.DeleteMailGroupAlias(ctx, &lark.DeleteMailGroupAliasReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreatePublicMailbox(func(ctx context.Context, request *lark.CreatePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.CreatePublicMailboxResp, *lark.Response, error) { + cli.Mock().MockMailGetMailMessageSubscription(func(ctx context.Context, request *lark.GetMailMessageSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetMailMessageSubscriptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreatePublicMailbox() + defer cli.Mock().UnMockMailGetMailMessageSubscription() - _, _, err := moduleCli.CreatePublicMailbox(ctx, &lark.CreatePublicMailboxReq{}) + _, _, err := moduleCli.GetMailMessageSubscription(ctx, &lark.GetMailMessageSubscriptionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetPublicMailbox(func(ctx context.Context, request *lark.GetPublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetPublicMailbox() - _, _, err := moduleCli.GetPublicMailbox(ctx, &lark.GetPublicMailboxReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetPublicMailboxList(func(ctx context.Context, request *lark.GetPublicMailboxListReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxListResp, *lark.Response, error) { + cli.Mock().MockMailListMailUserMailboxRule(func(ctx context.Context, request *lark.ListMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetPublicMailboxList() + defer cli.Mock().UnMockMailListMailUserMailboxRule() - _, _, err := moduleCli.GetPublicMailboxList(ctx, &lark.GetPublicMailboxListReq{}) + _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdatePublicMailboxPatch(func(ctx context.Context, request *lark.UpdatePublicMailboxPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdatePublicMailboxPatchResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailUpdatePublicMailboxPatch() - _, _, err := moduleCli.UpdatePublicMailboxPatch(ctx, &lark.UpdatePublicMailboxPatchReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdatePublicMailbox(func(ctx context.Context, request *lark.UpdatePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.UpdatePublicMailboxResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailUserMailboxRuleReorder(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReorderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleReorderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUpdatePublicMailbox() + defer cli.Mock().UnMockMailCreateMailUserMailboxRuleReorder() - _, _, err := moduleCli.UpdatePublicMailbox(ctx, &lark.UpdatePublicMailboxReq{}) + _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeletePublicMailbox(func(ctx context.Context, request *lark.DeletePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.DeletePublicMailboxResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeletePublicMailbox() - _, _, err := moduleCli.DeletePublicMailbox(ctx, &lark.DeletePublicMailboxReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreatePublicMailboxMember(func(ctx context.Context, request *lark.CreatePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.CreatePublicMailboxMemberResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailUserMailboxMessageSend(func(ctx context.Context, request *lark.CreateMailUserMailboxMessageSendReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxMessageSendResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreatePublicMailboxMember() + defer cli.Mock().UnMockMailCreateMailUserMailboxMessageSend() - _, _, err := moduleCli.CreatePublicMailboxMember(ctx, &lark.CreatePublicMailboxMemberReq{}) + _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetPublicMailboxMember(func(ctx context.Context, request *lark.GetPublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailGetPublicMailboxMember() - - _, _, err := moduleCli.GetPublicMailboxMember(ctx, &lark.GetPublicMailboxMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetPublicMailboxMemberList(func(ctx context.Context, request *lark.GetPublicMailboxMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxMemberListResp, *lark.Response, error) { + cli.Mock().MockMailSubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.SubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeMailUserMailboxEventResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetPublicMailboxMemberList() + defer cli.Mock().UnMockMailSubscribeMailUserMailboxEvent() - _, _, err := moduleCli.GetPublicMailboxMemberList(ctx, &lark.GetPublicMailboxMemberListReq{}) + _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchCreatePublicMailboxMember(func(ctx context.Context, request *lark.BatchCreatePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreatePublicMailboxMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailBatchCreatePublicMailboxMember() - - _, _, err := moduleCli.BatchCreatePublicMailboxMember(ctx, &lark.BatchCreatePublicMailboxMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailBatchDeletePublicMailboxMember(func(ctx context.Context, request *lark.BatchDeletePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeletePublicMailboxMemberResp, *lark.Response, error) { + cli.Mock().MockMailSubscribeMailMessage(func(ctx context.Context, request *lark.SubscribeMailMessageReq, options ...lark.MethodOptionFunc) (*lark.SubscribeMailMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailBatchDeletePublicMailboxMember() + defer cli.Mock().UnMockMailSubscribeMailMessage() - _, _, err := moduleCli.BatchDeletePublicMailboxMember(ctx, &lark.BatchDeletePublicMailboxMemberReq{}) + _, _, err := moduleCli.SubscribeMailMessage(ctx, &lark.SubscribeMailMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeletePublicMailboxMember(func(ctx context.Context, request *lark.DeletePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.DeletePublicMailboxMemberResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeletePublicMailboxMember() - _, _, err := moduleCli.DeletePublicMailboxMember(ctx, &lark.DeletePublicMailboxMemberReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMailClearPublicMailboxMember(func(ctx context.Context, request *lark.ClearPublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.ClearPublicMailboxMemberResp, *lark.Response, error) { + cli.Mock().MockMailUnsubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.UnsubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeMailUserMailboxEventResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailClearPublicMailboxMember() + defer cli.Mock().UnMockMailUnsubscribeMailUserMailboxEvent() - _, _, err := moduleCli.ClearPublicMailboxMember(ctx, &lark.ClearPublicMailboxMemberReq{}) + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailPublicMailboxAlias(func(ctx context.Context, request *lark.CreateMailPublicMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailPublicMailboxAliasResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailCreateMailPublicMailboxAlias() - - _, _, err := moduleCli.CreateMailPublicMailboxAlias(ctx, &lark.CreateMailPublicMailboxAliasReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailPublicMailboxAliasList(func(ctx context.Context, request *lark.GetMailPublicMailboxAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailPublicMailboxAliasListResp, *lark.Response, error) { + cli.Mock().MockMailUnsubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.UnsubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeMailUserMailboxEventResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailPublicMailboxAliasList() + defer cli.Mock().UnMockMailUnsubscribeMailUserMailboxEvent() - _, _, err := moduleCli.GetMailPublicMailboxAliasList(ctx, &lark.GetMailPublicMailboxAliasListReq{}) + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailPublicMailboxAlias(func(ctx context.Context, request *lark.DeleteMailPublicMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailPublicMailboxAliasResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeleteMailPublicMailboxAlias() - - _, _, err := moduleCli.DeleteMailPublicMailboxAlias(ctx, &lark.DeleteMailPublicMailboxAliasReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxAlias(func(ctx context.Context, request *lark.CreateMailUserMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxAliasResp, *lark.Response, error) { + cli.Mock().MockMailUpdateUserMailboxMailContact(func(ctx context.Context, request *lark.UpdateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserMailboxMailContactResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxAlias() + defer cli.Mock().UnMockMailUpdateUserMailboxMailContact() - _, _, err := moduleCli.CreateMailUserMailboxAlias(ctx, &lark.CreateMailUserMailboxAliasReq{}) + _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailUserMailboxAlias(func(ctx context.Context, request *lark.DeleteMailUserMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxAliasResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMailDeleteMailUserMailboxAlias() - - _, _, err := moduleCli.DeleteMailUserMailboxAlias(ctx, &lark.DeleteMailUserMailboxAliasReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailUserMailboxAliasList(func(ctx context.Context, request *lark.GetMailUserMailboxAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxAliasListResp, *lark.Response, error) { + cli.Mock().MockMailUpdateMailUserMailboxFolder(func(ctx context.Context, request *lark.UpdateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxFolderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailUserMailboxAliasList() + defer cli.Mock().UnMockMailUpdateMailUserMailboxFolder() - _, _, err := moduleCli.GetMailUserMailboxAliasList(ctx, &lark.GetMailUserMailboxAliasListReq{}) + _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailUserMailbox(func(ctx context.Context, request *lark.DeleteMailUserMailboxReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxResp, *lark.Response, error) { + + cli.Mock().MockMailUpdateMailUserMailboxRule(func(ctx context.Context, request *lark.UpdateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteMailUserMailbox() + defer cli.Mock().UnMockMailUpdateMailUserMailboxRule() - _, _, err := moduleCli.DeleteMailUserMailbox(ctx, &lark.DeleteMailUserMailboxReq{}) + _, _, err := moduleCli.UpdateMailUserMailboxRule(ctx, &lark.UpdateMailUserMailboxRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -551,333 +335,184 @@ func Test_Mail_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailGroup(ctx, &lark.CreateMailGroupReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailGroup(ctx, &lark.DeleteMailGroupReq{ - MailGroupID: "x", + _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{ + UserMailboxID: "x", + RuleID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMailGroupPatch(ctx, &lark.UpdateMailGroupPatchReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMailGroup(ctx, &lark.UpdateMailGroupReq{ - MailGroupID: "x", + _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroup(ctx, &lark.GetMailGroupReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupList(ctx, &lark.GetMailGroupListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchCreateMailGroupManager(ctx, &lark.BatchCreateMailGroupManagerReq{ - MailGroupID: "x", + _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteMailGroupManager(ctx, &lark.BatchDeleteMailGroupManagerReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupManagerList(ctx, &lark.GetMailGroupManagerListReq{ - MailGroupID: "x", + _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailGroupMember(ctx, &lark.CreateMailGroupMemberReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailGroupMember(ctx, &lark.DeleteMailGroupMemberReq{ - MailGroupID: "x", - MemberID: "x", + _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{ + UserMailboxID: "x", + MailContactID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupMember(ctx, &lark.GetMailGroupMemberReq{ - MailGroupID: "x", - MemberID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupMemberList(ctx, &lark.GetMailGroupMemberListReq{ - MailGroupID: "x", + _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{ + UserMailboxID: "x", + FolderID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchCreateMailGroupMember(ctx, &lark.BatchCreateMailGroupMemberReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteMailGroupMember(ctx, &lark.BatchDeleteMailGroupMemberReq{ - MailGroupID: "x", + _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{ + UserMailboxID: "x", + RuleID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailGroupPermissionMember(ctx, &lark.CreateMailGroupPermissionMemberReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailGroupPermissionMember(ctx, &lark.DeleteMailGroupPermissionMemberReq{ - MailGroupID: "x", - PermissionMemberID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupPermissionMember(ctx, &lark.GetMailGroupPermissionMemberReq{ - MailGroupID: "x", - PermissionMemberID: "x", + _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupPermissionMemberList(ctx, &lark.GetMailGroupPermissionMemberListReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchCreateMailGroupPermissionMember(ctx, &lark.BatchCreateMailGroupPermissionMemberReq{ - MailGroupID: "x", + _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteMailGroupPermissionMember(ctx, &lark.BatchDeleteMailGroupPermissionMemberReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailGroupAlias(ctx, &lark.CreateMailGroupAliasReq{ - MailGroupID: "x", + _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailGroupAliasList(ctx, &lark.GetMailGroupAliasListReq{ - MailGroupID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailGroupAlias(ctx, &lark.DeleteMailGroupAliasReq{ - MailGroupID: "x", - AliasID: "x", + _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{ + UserMailboxID: "x", + MessageID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreatePublicMailbox(ctx, &lark.CreatePublicMailboxReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetPublicMailbox(ctx, &lark.GetPublicMailboxReq{ - PublicMailboxID: "x", + _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetPublicMailboxList(ctx, &lark.GetPublicMailboxListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdatePublicMailboxPatch(ctx, &lark.UpdatePublicMailboxPatchReq{ - PublicMailboxID: "x", + _, _, err := moduleCli.GetMailMessageSubscription(ctx, &lark.GetMailMessageSubscriptionReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdatePublicMailbox(ctx, &lark.UpdatePublicMailboxReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeletePublicMailbox(ctx, &lark.DeletePublicMailboxReq{ - PublicMailboxID: "x", + _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreatePublicMailboxMember(ctx, &lark.CreatePublicMailboxMemberReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetPublicMailboxMember(ctx, &lark.GetPublicMailboxMemberReq{ - PublicMailboxID: "x", - MemberID: "x", + _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetPublicMailboxMemberList(ctx, &lark.GetPublicMailboxMemberListReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchCreatePublicMailboxMember(ctx, &lark.BatchCreatePublicMailboxMemberReq{ - PublicMailboxID: "x", + _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeletePublicMailboxMember(ctx, &lark.BatchDeletePublicMailboxMemberReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeletePublicMailboxMember(ctx, &lark.DeletePublicMailboxMemberReq{ - PublicMailboxID: "x", - MemberID: "x", + _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ClearPublicMailboxMember(ctx, &lark.ClearPublicMailboxMemberReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailPublicMailboxAlias(ctx, &lark.CreateMailPublicMailboxAliasReq{ - PublicMailboxID: "x", + _, _, err := moduleCli.SubscribeMailMessage(ctx, &lark.SubscribeMailMessageReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailPublicMailboxAliasList(ctx, &lark.GetMailPublicMailboxAliasListReq{ - PublicMailboxID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailPublicMailboxAlias(ctx, &lark.DeleteMailPublicMailboxAliasReq{ - PublicMailboxID: "x", - AliasID: "x", + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxAlias(ctx, &lark.CreateMailUserMailboxAliasReq{ + + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{ UserMailboxID: "x", }) as.NotNil(err) @@ -885,28 +520,34 @@ func Test_Mail_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailUserMailboxAlias(ctx, &lark.DeleteMailUserMailboxAliasReq{ + + _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{ UserMailboxID: "x", - AliasID: "x", + MailContactID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailUserMailboxAliasList(ctx, &lark.GetMailUserMailboxAliasListReq{ + + _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{ UserMailboxID: "x", + FolderID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailUserMailbox(ctx, &lark.DeleteMailUserMailboxReq{ + + _, _, err := moduleCli.UpdateMailUserMailboxRule(ctx, &lark.UpdateMailUserMailboxRuleReq{ UserMailboxID: "x", + RuleID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/MDM_sample_test.go b/test/mdm_sample_test.go similarity index 69% rename from test/MDM_sample_test.go rename to test/mdm_sample_test.go index e72d845a..c64f50e5 100644 --- a/test/MDM_sample_test.go +++ b/test/mdm_sample_test.go @@ -37,10 +37,12 @@ func Test_MDM_Sample_Failed(t *testing.T) { moduleCli := cli.MDM t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BindMDMUserAuthDataRelation(ctx, &lark.BindMDMUserAuthDataRelationReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_MDM_Sample_Failed(t *testing.T) { moduleCli := cli.MDM t.Run("", func(t *testing.T) { + cli.Mock().MockMDMBindMDMUserAuthDataRelation(func(ctx context.Context, request *lark.BindMDMUserAuthDataRelationReq, options ...lark.MethodOptionFunc) (*lark.BindMDMUserAuthDataRelationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_MDM_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockMDMUnbindMDMUserAuthDataRelation(func(ctx context.Context, request *lark.UnbindMDMUserAuthDataRelationReq, options ...lark.MethodOptionFunc) (*lark.UnbindMDMUserAuthDataRelationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -68,6 +72,31 @@ func Test_MDM_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMDMGetMDMBatchCountryRegion(func(ctx context.Context, request *lark.GetMDMBatchCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.GetMDMBatchCountryRegionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMDMGetMDMBatchCountryRegion() + + _, _, err := moduleCli.GetMDMBatchCountryRegion(ctx, &lark.GetMDMBatchCountryRegionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMDMListMDMCountryRegion(func(ctx context.Context, request *lark.ListMDMCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.ListMDMCountryRegionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMDMListMDMCountryRegion() + + _, _, err := moduleCli.ListMDMCountryRegion(ctx, &lark.ListMDMCountryRegionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -78,15 +107,32 @@ func Test_MDM_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BindMDMUserAuthDataRelation(ctx, &lark.BindMDMUserAuthDataRelationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UnbindMDMUserAuthDataRelation(ctx, &lark.UnbindMDMUserAuthDataRelationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMDMBatchCountryRegion(ctx, &lark.GetMDMBatchCountryRegionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListMDMCountryRegion(ctx, &lark.ListMDMCountryRegionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/meetingroom_sample_test.go b/test/meetingroom_sample_test.go new file mode 100644 index 00000000..46bdfd7a --- /dev/null +++ b/test/meetingroom_sample_test.go @@ -0,0 +1,81 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_MeetingRoom_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.MeetingRoom + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.MeetingRoom + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMeetingRoomGetMeetingRoomCustomization(func(ctx context.Context, request *lark.GetMeetingRoomCustomizationReq, options ...lark.MethodOptionFunc) (*lark.GetMeetingRoomCustomizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMeetingRoomGetMeetingRoomCustomization() + + _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.MeetingRoom + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/message_sample_test.go b/test/message_sample_test.go index c96901f8..ac531992 100644 --- a/test/message_sample_test.go +++ b/test/message_sample_test.go @@ -37,10 +37,12 @@ func Test_Message_Sample_Failed(t *testing.T) { moduleCli := cli.Message t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) + + _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,345 +50,101 @@ func Test_Message_Sample_Failed(t *testing.T) { moduleCli := cli.Message t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendEphemeralMessage(func(ctx context.Context, request *lark.SendEphemeralMessageReq, options ...lark.MethodOptionFunc) (*lark.SendEphemeralMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageSendEphemeralMessage() - - _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendUrgentAppMessage(func(ctx context.Context, request *lark.SendUrgentAppMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentAppMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageSendUrgentAppMessage() - - _, _, err := moduleCli.SendUrgentAppMessage(ctx, &lark.SendUrgentAppMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendUrgentSmsMessage(func(ctx context.Context, request *lark.SendUrgentSmsMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentSmsMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageSendUrgentSmsMessage() - - _, _, err := moduleCli.SendUrgentSmsMessage(ctx, &lark.SendUrgentSmsMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendUrgentPhoneMessage(func(ctx context.Context, request *lark.SendUrgentPhoneMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentPhoneMessageResp, *lark.Response, error) { + cli.Mock().MockMessageCreateAppFeedCard(func(ctx context.Context, request *lark.CreateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.CreateAppFeedCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageSendUrgentPhoneMessage() + defer cli.Mock().UnMockMessageCreateAppFeedCard() - _, _, err := moduleCli.SendUrgentPhoneMessage(ctx, &lark.SendUrgentPhoneMessageReq{}) + _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendRawMessageOld(func(ctx context.Context, request *lark.SendRawMessageOldReq, options ...lark.MethodOptionFunc) (*lark.SendRawMessageOldResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageSendRawMessageOld() - _, _, err := moduleCli.SendRawMessageOld(ctx, &lark.SendRawMessageOldReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageBatchSendOldRawMessage(func(ctx context.Context, request *lark.BatchSendOldRawMessageReq, options ...lark.MethodOptionFunc) (*lark.BatchSendOldRawMessageResp, *lark.Response, error) { + cli.Mock().MockMessageCreateIMTagRelation(func(ctx context.Context, request *lark.CreateIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.CreateIMTagRelationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageBatchSendOldRawMessage() + defer cli.Mock().UnMockMessageCreateIMTagRelation() - _, _, err := moduleCli.BatchSendOldRawMessage(ctx, &lark.BatchSendOldRawMessageReq{}) + _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageSendRawMessage(func(ctx context.Context, request *lark.SendRawMessageReq, options ...lark.MethodOptionFunc) (*lark.SendRawMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageSendRawMessage() - - _, _, err := moduleCli.SendRawMessage(ctx, &lark.SendRawMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageReplyRawMessage(func(ctx context.Context, request *lark.ReplyRawMessageReq, options ...lark.MethodOptionFunc) (*lark.ReplyRawMessageResp, *lark.Response, error) { + cli.Mock().MockMessageDeleteAppFeedCard(func(ctx context.Context, request *lark.DeleteAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.DeleteAppFeedCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageReplyRawMessage() + defer cli.Mock().UnMockMessageDeleteAppFeedCard() - _, _, err := moduleCli.ReplyRawMessage(ctx, &lark.ReplyRawMessageReq{}) + _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageUpdateMessageEdit(func(ctx context.Context, request *lark.UpdateMessageEditReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageEditResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageUpdateMessageEdit() - - _, _, err := moduleCli.UpdateMessageEdit(ctx, &lark.UpdateMessageEditReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteMessage(func(ctx context.Context, request *lark.DeleteMessageReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessageResp, *lark.Response, error) { + cli.Mock().MockMessageListIMTagRelation(func(ctx context.Context, request *lark.ListIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.ListIMTagRelationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageDeleteMessage() + defer cli.Mock().UnMockMessageListIMTagRelation() - _, _, err := moduleCli.DeleteMessage(ctx, &lark.DeleteMessageReq{}) + _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageForwardMessage(func(ctx context.Context, request *lark.ForwardMessageReq, options ...lark.MethodOptionFunc) (*lark.ForwardMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageForwardMessage() - _, _, err := moduleCli.ForwardMessage(ctx, &lark.ForwardMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageMergeForwardMessage(func(ctx context.Context, request *lark.MergeForwardMessageReq, options ...lark.MethodOptionFunc) (*lark.MergeForwardMessageResp, *lark.Response, error) { + cli.Mock().MockMessageUpdateAppFeedCard(func(ctx context.Context, request *lark.UpdateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageMergeForwardMessage() + defer cli.Mock().UnMockMessageUpdateAppFeedCard() - _, _, err := moduleCli.MergeForwardMessage(ctx, &lark.MergeForwardMessageReq{}) + _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageForwardThreadMessage(func(ctx context.Context, request *lark.ForwardThreadMessageReq, options ...lark.MethodOptionFunc) (*lark.ForwardThreadMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageForwardThreadMessage() - - _, _, err := moduleCli.ForwardThreadMessage(ctx, &lark.ForwardThreadMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageBatchDeleteMessage(func(ctx context.Context, request *lark.BatchDeleteMessageReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMessageResp, *lark.Response, error) { + cli.Mock().MockMessageDeleteIMTagRelation(func(ctx context.Context, request *lark.DeleteIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.DeleteIMTagRelationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageBatchDeleteMessage() + defer cli.Mock().UnMockMessageDeleteIMTagRelation() - _, _, err := moduleCli.BatchDeleteMessage(ctx, &lark.BatchDeleteMessageReq{}) + _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageUpdateMessage(func(ctx context.Context, request *lark.UpdateMessageReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageUpdateMessage() - _, _, err := moduleCli.UpdateMessage(ctx, &lark.UpdateMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageUpdateMessageDelay(func(ctx context.Context, request *lark.UpdateMessageDelayReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageDelayResp, *lark.Response, error) { + cli.Mock().MockMessageUpdateAppFeedCardButton(func(ctx context.Context, request *lark.UpdateAppFeedCardButtonReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardButtonResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageUpdateMessageDelay() + defer cli.Mock().UnMockMessageUpdateAppFeedCardButton() - _, _, err := moduleCli.UpdateMessageDelay(ctx, &lark.UpdateMessageDelayReq{}) + _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageReadUserList(func(ctx context.Context, request *lark.GetMessageReadUserListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageReadUserListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageReadUserList() - _, _, err := moduleCli.GetMessageReadUserList(ctx, &lark.GetMessageReadUserListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetBatchSentMessageReadUser(func(ctx context.Context, request *lark.GetBatchSentMessageReadUserReq, options ...lark.MethodOptionFunc) (*lark.GetBatchSentMessageReadUserResp, *lark.Response, error) { + cli.Mock().MockMessageInstantReminderAppFeedCard(func(ctx context.Context, request *lark.InstantReminderAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.InstantReminderAppFeedCardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageGetBatchSentMessageReadUser() + defer cli.Mock().UnMockMessageInstantReminderAppFeedCard() - _, _, err := moduleCli.GetBatchSentMessageReadUser(ctx, &lark.GetBatchSentMessageReadUserReq{}) + _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetBatchSentMessageProgress(func(ctx context.Context, request *lark.GetBatchSentMessageProgressReq, options ...lark.MethodOptionFunc) (*lark.GetBatchSentMessageProgressResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetBatchSentMessageProgress() - - _, _, err := moduleCli.GetBatchSentMessageProgress(ctx, &lark.GetBatchSentMessageProgressReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageList(func(ctx context.Context, request *lark.GetMessageListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageList() - - _, _, err := moduleCli.GetMessageList(ctx, &lark.GetMessageListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageFile(func(ctx context.Context, request *lark.GetMessageFileReq, options ...lark.MethodOptionFunc) (*lark.GetMessageFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageFile() - - _, _, err := moduleCli.GetMessageFile(ctx, &lark.GetMessageFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessage(func(ctx context.Context, request *lark.GetMessageReq, options ...lark.MethodOptionFunc) (*lark.GetMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessage() - - _, _, err := moduleCli.GetMessage(ctx, &lark.GetMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteEphemeralMessage(func(ctx context.Context, request *lark.DeleteEphemeralMessageReq, options ...lark.MethodOptionFunc) (*lark.DeleteEphemeralMessageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageDeleteEphemeralMessage() - - _, _, err := moduleCli.DeleteEphemeralMessage(ctx, &lark.DeleteEphemeralMessageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageCreateMessageReaction(func(ctx context.Context, request *lark.CreateMessageReactionReq, options ...lark.MethodOptionFunc) (*lark.CreateMessageReactionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageCreateMessageReaction() - - _, _, err := moduleCli.CreateMessageReaction(ctx, &lark.CreateMessageReactionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageReactionList(func(ctx context.Context, request *lark.GetMessageReactionListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageReactionListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageReactionList() - - _, _, err := moduleCli.GetMessageReactionList(ctx, &lark.GetMessageReactionListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteMessageReaction(func(ctx context.Context, request *lark.DeleteMessageReactionReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessageReactionResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageDeleteMessageReaction() - - _, _, err := moduleCli.DeleteMessageReaction(ctx, &lark.DeleteMessageReactionReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageCreateMessagePin(func(ctx context.Context, request *lark.CreateMessagePinReq, options ...lark.MethodOptionFunc) (*lark.CreateMessagePinResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageCreateMessagePin() - - _, _, err := moduleCli.CreateMessagePin(ctx, &lark.CreateMessagePinReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteMessagePin(func(ctx context.Context, request *lark.DeleteMessagePinReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessagePinResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageDeleteMessagePin() - - _, _, err := moduleCli.DeleteMessagePin(ctx, &lark.DeleteMessagePinReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessagePinList(func(ctx context.Context, request *lark.GetMessagePinListReq, options ...lark.MethodOptionFunc) (*lark.GetMessagePinListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessagePinList() - - _, _, err := moduleCli.GetMessagePinList(ctx, &lark.GetMessagePinListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageSpecialFocusList(func(ctx context.Context, request *lark.GetMessageSpecialFocusListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageSpecialFocusListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageSpecialFocusList() - - _, _, err := moduleCli.GetMessageSpecialFocusList(ctx, &lark.GetMessageSpecialFocusListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockMessageGetMessageSpecialFocusUnread(func(ctx context.Context, request *lark.GetMessageSpecialFocusUnreadReq, options ...lark.MethodOptionFunc) (*lark.GetMessageSpecialFocusUnreadResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMessageGetMessageSpecialFocusUnread() - - _, _, err := moduleCli.GetMessageSpecialFocusUnread(ctx, &lark.GetMessageSpecialFocusUnreadReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -397,229 +155,62 @@ func Test_Message_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendUrgentAppMessage(ctx, &lark.SendUrgentAppMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendUrgentSmsMessage(ctx, &lark.SendUrgentSmsMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendUrgentPhoneMessage(ctx, &lark.SendUrgentPhoneMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendRawMessageOld(ctx, &lark.SendRawMessageOldReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchSendOldRawMessage(ctx, &lark.BatchSendOldRawMessageReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SendRawMessage(ctx, &lark.SendRawMessageReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ReplyRawMessage(ctx, &lark.ReplyRawMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMessageEdit(ctx, &lark.UpdateMessageEditReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMessage(ctx, &lark.DeleteMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ForwardMessage(ctx, &lark.ForwardMessageReq{ - MessageID: "x", - }) + _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MergeForwardMessage(ctx, &lark.MergeForwardMessageReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ForwardThreadMessage(ctx, &lark.ForwardThreadMessageReq{ - ThreadID: "x", - }) + _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteMessage(ctx, &lark.BatchDeleteMessageReq{ - BatchMessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMessage(ctx, &lark.UpdateMessageReq{ - MessageID: "x", - }) + _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMessageDelay(ctx, &lark.UpdateMessageDelayReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageReadUserList(ctx, &lark.GetMessageReadUserListReq{ - MessageID: "x", - }) + _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetBatchSentMessageReadUser(ctx, &lark.GetBatchSentMessageReadUserReq{ - BatchMessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetBatchSentMessageProgress(ctx, &lark.GetBatchSentMessageProgressReq{ - BatchMessageID: "x", - }) + _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageList(ctx, &lark.GetMessageListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageFile(ctx, &lark.GetMessageFileReq{ - MessageID: "x", - FileKey: "x", - }) + _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessage(ctx, &lark.GetMessageReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteEphemeralMessage(ctx, &lark.DeleteEphemeralMessageReq{}) + _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMessageReaction(ctx, &lark.CreateMessageReactionReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageReactionList(ctx, &lark.GetMessageReactionListReq{ - MessageID: "x", + _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{ + FeedCardID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMessageReaction(ctx, &lark.DeleteMessageReactionReq{ - MessageID: "x", - ReactionID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMessagePin(ctx, &lark.CreateMessagePinReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMessagePin(ctx, &lark.DeleteMessagePinReq{ - MessageID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessagePinList(ctx, &lark.GetMessagePinListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageSpecialFocusList(ctx, &lark.GetMessageSpecialFocusListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMessageSpecialFocusUnread(ctx, &lark.GetMessageSpecialFocusUnreadReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/mina_sample_test.go b/test/mina_sample_test.go index 2fef73a6..001fd2f6 100644 --- a/test/mina_sample_test.go +++ b/test/mina_sample_test.go @@ -37,10 +37,12 @@ func Test_Mina_Sample_Failed(t *testing.T) { moduleCli := cli.Mina t.Run("", func(t *testing.T) { + _, _, err := moduleCli.MinaCodeToSession(ctx, &lark.MinaCodeToSessionReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Mina_Sample_Failed(t *testing.T) { moduleCli := cli.Mina t.Run("", func(t *testing.T) { + cli.Mock().MockMinaMinaCodeToSession(func(ctx context.Context, request *lark.MinaCodeToSessionReq, options ...lark.MethodOptionFunc) (*lark.MinaCodeToSessionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -57,6 +60,7 @@ func Test_Mina_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -67,9 +71,11 @@ func Test_Mina_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.MinaCodeToSession(ctx, &lark.MinaCodeToSessionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/minutes_sample_test.go b/test/minutes_sample_test.go index fc3045ee..dfe8fa90 100644 --- a/test/minutes_sample_test.go +++ b/test/minutes_sample_test.go @@ -37,10 +37,12 @@ func Test_Minutes_Sample_Failed(t *testing.T) { moduleCli := cli.Minutes t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetMinutesStatistics(ctx, &lark.GetMinutesStatisticsReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Minutes_Sample_Failed(t *testing.T) { moduleCli := cli.Minutes t.Run("", func(t *testing.T) { + cli.Mock().MockMinutesGetMinutesStatistics(func(ctx context.Context, request *lark.GetMinutesStatisticsReq, options ...lark.MethodOptionFunc) (*lark.GetMinutesStatisticsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Minutes_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockMinutesGetMinutesMinute(func(ctx context.Context, request *lark.GetMinutesMinuteReq, options ...lark.MethodOptionFunc) (*lark.GetMinutesMinuteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -68,6 +72,31 @@ func Test_Minutes_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMinutesGetMinutesMinuteMedia(func(ctx context.Context, request *lark.GetMinutesMinuteMediaReq, options ...lark.MethodOptionFunc) (*lark.GetMinutesMinuteMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMinutesGetMinutesMinuteMedia() + + _, _, err := moduleCli.GetMinutesMinuteMedia(ctx, &lark.GetMinutesMinuteMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMinutesGetMinutesMinuteTranscript(func(ctx context.Context, request *lark.GetMinutesMinuteTranscriptReq, options ...lark.MethodOptionFunc) (*lark.GetMinutesMinuteTranscriptResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMinutesGetMinutesMinuteTranscript() + + _, _, err := moduleCli.GetMinutesMinuteTranscript(ctx, &lark.GetMinutesMinuteTranscriptReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -78,6 +107,7 @@ func Test_Minutes_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetMinutesStatistics(ctx, &lark.GetMinutesStatisticsReq{ MinuteToken: "x", }) @@ -86,11 +116,31 @@ func Test_Minutes_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetMinutesMinute(ctx, &lark.GetMinutesMinuteReq{ MinuteToken: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMinutesMinuteMedia(ctx, &lark.GetMinutesMinuteMediaReq{ + MinuteToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMinutesMinuteTranscript(ctx, &lark.GetMinutesMinuteTranscriptReq{ + MinuteToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/moments_sample_test.go b/test/moments_sample_test.go new file mode 100644 index 00000000..58132f0a --- /dev/null +++ b/test/moments_sample_test.go @@ -0,0 +1,83 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Moments_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Moments + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMomentsPost(ctx, &lark.GetMomentsPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Moments + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMomentsGetMomentsPost(func(ctx context.Context, request *lark.GetMomentsPostReq, options ...lark.MethodOptionFunc) (*lark.GetMomentsPostResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMomentsGetMomentsPost() + + _, _, err := moduleCli.GetMomentsPost(ctx, &lark.GetMomentsPostReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Moments + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMomentsPost(ctx, &lark.GetMomentsPostReq{ + PostID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/okr_sample_test.go b/test/okr_sample_test.go index 04830b79..5bb30a56 100644 --- a/test/okr_sample_test.go +++ b/test/okr_sample_test.go @@ -37,10 +37,12 @@ func Test_OKR_Sample_Failed(t *testing.T) { moduleCli := cli.OKR t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) + + _, _, err := moduleCli.GetOKRReview(ctx, &lark.GetOKRReviewReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,191 +50,17 @@ func Test_OKR_Sample_Failed(t *testing.T) { moduleCli := cli.OKR t.Run("", func(t *testing.T) { - cli.Mock().MockOKRCreateOKRPeriod(func(ctx context.Context, request *lark.CreateOKRPeriodReq, options ...lark.MethodOptionFunc) (*lark.CreateOKRPeriodResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRCreateOKRPeriod() - - _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRUpdateOKRPeriod(func(ctx context.Context, request *lark.UpdateOKRPeriodReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRPeriodResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRUpdateOKRPeriod() - - _, _, err := moduleCli.UpdateOKRPeriod(ctx, &lark.UpdateOKRPeriodReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRPeriodList(func(ctx context.Context, request *lark.GetOKRPeriodListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRPeriodListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRPeriodList() - - _, _, err := moduleCli.GetOKRPeriodList(ctx, &lark.GetOKRPeriodListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRPeriodRuleList(func(ctx context.Context, request *lark.GetOKRPeriodRuleListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRPeriodRuleListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRPeriodRuleList() - - _, _, err := moduleCli.GetOKRPeriodRuleList(ctx, &lark.GetOKRPeriodRuleListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRBatchGetOKR(func(ctx context.Context, request *lark.BatchGetOKRReq, options ...lark.MethodOptionFunc) (*lark.BatchGetOKRResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRBatchGetOKR() - - _, _, err := moduleCli.BatchGetOKR(ctx, &lark.BatchGetOKRReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetUserOKRList(func(ctx context.Context, request *lark.GetUserOKRListReq, options ...lark.MethodOptionFunc) (*lark.GetUserOKRListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetUserOKRList() - - _, _, err := moduleCli.GetUserOKRList(ctx, &lark.GetUserOKRListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRDeleteOKRProgressRecord(func(ctx context.Context, request *lark.DeleteOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteOKRProgressRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRDeleteOKRProgressRecord() - - _, _, err := moduleCli.DeleteOKRProgressRecord(ctx, &lark.DeleteOKRProgressRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRUpdateOKRProgressRecord(func(ctx context.Context, request *lark.UpdateOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRProgressRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRUpdateOKRProgressRecord() - - _, _, err := moduleCli.UpdateOKRProgressRecord(ctx, &lark.UpdateOKRProgressRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRProgressRecord(func(ctx context.Context, request *lark.GetOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.GetOKRProgressRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRProgressRecord() - - _, _, err := moduleCli.GetOKRProgressRecord(ctx, &lark.GetOKRProgressRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRCreateOKRProgressRecord(func(ctx context.Context, request *lark.CreateOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateOKRProgressRecordResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRCreateOKRProgressRecord() - - _, _, err := moduleCli.CreateOKRProgressRecord(ctx, &lark.CreateOKRProgressRecordReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRUploadOKRImage(func(ctx context.Context, request *lark.UploadOKRImageReq, options ...lark.MethodOptionFunc) (*lark.UploadOKRImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRUploadOKRImage() - - _, _, err := moduleCli.UploadOKRImage(ctx, &lark.UploadOKRImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRMetricSourceList(func(ctx context.Context, request *lark.GetOKRMetricSourceListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRMetricSourceList() - - _, _, err := moduleCli.GetOKRMetricSourceList(ctx, &lark.GetOKRMetricSourceListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRMetricSourceTableList(func(ctx context.Context, request *lark.GetOKRMetricSourceTableListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRMetricSourceTableList() - - _, _, err := moduleCli.GetOKRMetricSourceTableList(ctx, &lark.GetOKRMetricSourceTableListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRBatchUpdateOKRMetricSourceTableItem(func(ctx context.Context, request *lark.BatchUpdateOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateOKRMetricSourceTableItemResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRBatchUpdateOKRMetricSourceTableItem() - - _, _, err := moduleCli.BatchUpdateOKRMetricSourceTableItem(ctx, &lark.BatchUpdateOKRMetricSourceTableItemReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRUpdateOKRMetricSourceTableItem(func(ctx context.Context, request *lark.UpdateOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRMetricSourceTableItemResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRUpdateOKRMetricSourceTableItem() - _, _, err := moduleCli.UpdateOKRMetricSourceTableItem(ctx, &lark.UpdateOKRMetricSourceTableItemReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRMetricSourceTableItem(func(ctx context.Context, request *lark.GetOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableItemResp, *lark.Response, error) { + cli.Mock().MockOKRGetOKRReview(func(ctx context.Context, request *lark.GetOKRReviewReq, options ...lark.MethodOptionFunc) (*lark.GetOKRReviewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockOKRGetOKRMetricSourceTableItem() + defer cli.Mock().UnMockOKRGetOKRReview() - _, _, err := moduleCli.GetOKRMetricSourceTableItem(ctx, &lark.GetOKRMetricSourceTableItemReq{}) + _, _, err := moduleCli.GetOKRReview(ctx, &lark.GetOKRReviewReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockOKRGetOKRMetricSourceTableItemList(func(ctx context.Context, request *lark.GetOKRMetricSourceTableItemListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableItemListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockOKRGetOKRMetricSourceTableItemList() - - _, _, err := moduleCli.GetOKRMetricSourceTableItemList(ctx, &lark.GetOKRMetricSourceTableItemListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -243,131 +71,11 @@ func Test_OKR_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateOKRPeriod(ctx, &lark.UpdateOKRPeriodReq{ - PeriodID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRPeriodList(ctx, &lark.GetOKRPeriodListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRPeriodRuleList(ctx, &lark.GetOKRPeriodRuleListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetOKR(ctx, &lark.BatchGetOKRReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetUserOKRList(ctx, &lark.GetUserOKRListReq{ - UserID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteOKRProgressRecord(ctx, &lark.DeleteOKRProgressRecordReq{ - ProgressID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateOKRProgressRecord(ctx, &lark.UpdateOKRProgressRecordReq{ - ProgressID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRProgressRecord(ctx, &lark.GetOKRProgressRecordReq{ - ProgressID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateOKRProgressRecord(ctx, &lark.CreateOKRProgressRecordReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UploadOKRImage(ctx, &lark.UploadOKRImageReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRMetricSourceList(ctx, &lark.GetOKRMetricSourceListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRMetricSourceTableList(ctx, &lark.GetOKRMetricSourceTableListReq{ - MetricSourceID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchUpdateOKRMetricSourceTableItem(ctx, &lark.BatchUpdateOKRMetricSourceTableItemReq{ - MetricSourceID: "x", - MetricTableID: "x", - }) + _, _, err := moduleCli.GetOKRReview(ctx, &lark.GetOKRReviewReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateOKRMetricSourceTableItem(ctx, &lark.UpdateOKRMetricSourceTableItemReq{ - MetricSourceID: "x", - MetricTableID: "x", - MetricItemID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRMetricSourceTableItem(ctx, &lark.GetOKRMetricSourceTableItemReq{ - MetricSourceID: "x", - MetricTableID: "x", - MetricItemID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRMetricSourceTableItemList(ctx, &lark.GetOKRMetricSourceTableItemListReq{ - MetricSourceID: "x", - MetricTableID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/passport_sample_test.go b/test/passport_sample_test.go index 704d8a69..a5e6d060 100644 --- a/test/passport_sample_test.go +++ b/test/passport_sample_test.go @@ -37,10 +37,12 @@ func Test_Passport_Sample_Failed(t *testing.T) { moduleCli := cli.Passport t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPassportSession(ctx, &lark.GetPassportSessionReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Passport_Sample_Failed(t *testing.T) { moduleCli := cli.Passport t.Run("", func(t *testing.T) { + cli.Mock().MockPassportGetPassportSession(func(ctx context.Context, request *lark.GetPassportSessionReq, options ...lark.MethodOptionFunc) (*lark.GetPassportSessionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -57,6 +60,19 @@ func Test_Passport_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPassportCreatePassportSessionLogout(func(ctx context.Context, request *lark.CreatePassportSessionLogoutReq, options ...lark.MethodOptionFunc) (*lark.CreatePassportSessionLogoutResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPassportCreatePassportSessionLogout() + + _, _, err := moduleCli.CreatePassportSessionLogout(ctx, &lark.CreatePassportSessionLogoutReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -67,9 +83,18 @@ func Test_Passport_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPassportSession(ctx, &lark.GetPassportSessionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePassportSessionLogout(ctx, &lark.CreatePassportSessionLogoutReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/payroll_sample_test.go b/test/payroll_sample_test.go new file mode 100644 index 00000000..a7dcc193 --- /dev/null +++ b/test/payroll_sample_test.go @@ -0,0 +1,290 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_Payroll_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.Payroll + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollAcctItem(ctx, &lark.ListPayrollAcctItemReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Payroll + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollAcctItem(func(ctx context.Context, request *lark.ListPayrollAcctItemReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollAcctItemResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollAcctItem() + + _, _, err := moduleCli.ListPayrollAcctItem(ctx, &lark.ListPayrollAcctItemReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollCostAllocationDetail(func(ctx context.Context, request *lark.ListPayrollCostAllocationDetailReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollCostAllocationDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollCostAllocationDetail() + + _, _, err := moduleCli.ListPayrollCostAllocationDetail(ctx, &lark.ListPayrollCostAllocationDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollCostAllocationPlan(func(ctx context.Context, request *lark.ListPayrollCostAllocationPlanReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollCostAllocationPlanResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollCostAllocationPlan() + + _, _, err := moduleCli.ListPayrollCostAllocationPlan(ctx, &lark.ListPayrollCostAllocationPlanReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollCostAllocationReport(func(ctx context.Context, request *lark.ListPayrollCostAllocationReportReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollCostAllocationReportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollCostAllocationReport() + + _, _, err := moduleCli.ListPayrollCostAllocationReport(ctx, &lark.ListPayrollCostAllocationReportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollDatasource(func(ctx context.Context, request *lark.ListPayrollDatasourceReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollDatasourceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollDatasource() + + _, _, err := moduleCli.ListPayrollDatasource(ctx, &lark.ListPayrollDatasourceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollQueryPayrollDatasourceRecord(func(ctx context.Context, request *lark.QueryPayrollDatasourceRecordReq, options ...lark.MethodOptionFunc) (*lark.QueryPayrollDatasourceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollQueryPayrollDatasourceRecord() + + _, _, err := moduleCli.QueryPayrollDatasourceRecord(ctx, &lark.QueryPayrollDatasourceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollCreatePayrollDatasourceRecordSave(func(ctx context.Context, request *lark.CreatePayrollDatasourceRecordSaveReq, options ...lark.MethodOptionFunc) (*lark.CreatePayrollDatasourceRecordSaveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollCreatePayrollDatasourceRecordSave() + + _, _, err := moduleCli.CreatePayrollDatasourceRecordSave(ctx, &lark.CreatePayrollDatasourceRecordSaveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollPaygroup(func(ctx context.Context, request *lark.ListPayrollPaygroupReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollPaygroupResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollPaygroup() + + _, _, err := moduleCli.ListPayrollPaygroup(ctx, &lark.ListPayrollPaygroupReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollCreatePayrollPaymentActivityArchive(func(ctx context.Context, request *lark.CreatePayrollPaymentActivityArchiveReq, options ...lark.MethodOptionFunc) (*lark.CreatePayrollPaymentActivityArchiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollCreatePayrollPaymentActivityArchive() + + _, _, err := moduleCli.CreatePayrollPaymentActivityArchive(ctx, &lark.CreatePayrollPaymentActivityArchiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollPaymentActivity(func(ctx context.Context, request *lark.ListPayrollPaymentActivityReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollPaymentActivityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollPaymentActivity() + + _, _, err := moduleCli.ListPayrollPaymentActivity(ctx, &lark.ListPayrollPaymentActivityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollListPayrollPaymentActivityDetail(func(ctx context.Context, request *lark.ListPayrollPaymentActivityDetailReq, options ...lark.MethodOptionFunc) (*lark.ListPayrollPaymentActivityDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollListPayrollPaymentActivityDetail() + + _, _, err := moduleCli.ListPayrollPaymentActivityDetail(ctx, &lark.ListPayrollPaymentActivityDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPayrollQueryPayrollPaymentDetail(func(ctx context.Context, request *lark.QueryPayrollPaymentDetailReq, options ...lark.MethodOptionFunc) (*lark.QueryPayrollPaymentDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPayrollQueryPayrollPaymentDetail() + + _, _, err := moduleCli.QueryPayrollPaymentDetail(ctx, &lark.QueryPayrollPaymentDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Payroll + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollAcctItem(ctx, &lark.ListPayrollAcctItemReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollCostAllocationDetail(ctx, &lark.ListPayrollCostAllocationDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollCostAllocationPlan(ctx, &lark.ListPayrollCostAllocationPlanReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollCostAllocationReport(ctx, &lark.ListPayrollCostAllocationReportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollDatasource(ctx, &lark.ListPayrollDatasourceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPayrollDatasourceRecord(ctx, &lark.QueryPayrollDatasourceRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePayrollDatasourceRecordSave(ctx, &lark.CreatePayrollDatasourceRecordSaveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollPaygroup(ctx, &lark.ListPayrollPaygroupReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePayrollPaymentActivityArchive(ctx, &lark.CreatePayrollPaymentActivityArchiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollPaymentActivity(ctx, &lark.ListPayrollPaymentActivityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPayrollPaymentActivityDetail(ctx, &lark.ListPayrollPaymentActivityDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPayrollPaymentDetail(ctx, &lark.QueryPayrollPaymentDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/performance_sample_test.go b/test/performance_sample_test.go index aee39d92..99410802 100644 --- a/test/performance_sample_test.go +++ b/test/performance_sample_test.go @@ -37,10 +37,12 @@ func Test_Performance_Sample_Failed(t *testing.T) { moduleCli := cli.Performance t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPerformanceSemesterList(ctx, &lark.GetPerformanceSemesterListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Performance_Sample_Failed(t *testing.T) { moduleCli := cli.Performance t.Run("", func(t *testing.T) { + cli.Mock().MockPerformanceGetPerformanceSemesterList(func(ctx context.Context, request *lark.GetPerformanceSemesterListReq, options ...lark.MethodOptionFunc) (*lark.GetPerformanceSemesterListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Performance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPerformanceGetPerformanceStageTaskByUser(func(ctx context.Context, request *lark.GetPerformanceStageTaskByUserReq, options ...lark.MethodOptionFunc) (*lark.GetPerformanceStageTaskByUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Performance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPerformanceGetPerformanceStageTaskByPage(func(ctx context.Context, request *lark.GetPerformanceStageTaskByPageReq, options ...lark.MethodOptionFunc) (*lark.GetPerformanceStageTaskByPageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Performance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPerformanceGetPerformanceReviewData(func(ctx context.Context, request *lark.GetPerformanceReviewDataReq, options ...lark.MethodOptionFunc) (*lark.GetPerformanceReviewDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -90,6 +96,211 @@ func Test_Performance_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceActivity(func(ctx context.Context, request *lark.QueryPerformanceActivityReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceActivityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceActivity() + + _, _, err := moduleCli.QueryPerformanceActivity(ctx, &lark.QueryPerformanceActivityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceCreatePerformanceAdditionalInformationImport(func(ctx context.Context, request *lark.CreatePerformanceAdditionalInformationImportReq, options ...lark.MethodOptionFunc) (*lark.CreatePerformanceAdditionalInformationImportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceCreatePerformanceAdditionalInformationImport() + + _, _, err := moduleCli.CreatePerformanceAdditionalInformationImport(ctx, &lark.CreatePerformanceAdditionalInformationImportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceAdditionalInformation(func(ctx context.Context, request *lark.QueryPerformanceAdditionalInformationReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceAdditionalInformationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceAdditionalInformation() + + _, _, err := moduleCli.QueryPerformanceAdditionalInformation(ctx, &lark.QueryPerformanceAdditionalInformationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceDeletePerformanceAdditionalInformationsBatch(func(ctx context.Context, request *lark.DeletePerformanceAdditionalInformationsBatchReq, options ...lark.MethodOptionFunc) (*lark.DeletePerformanceAdditionalInformationsBatchResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceDeletePerformanceAdditionalInformationsBatch() + + _, _, err := moduleCli.DeletePerformanceAdditionalInformationsBatch(ctx, &lark.DeletePerformanceAdditionalInformationsBatchReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceIndicator(func(ctx context.Context, request *lark.QueryPerformanceIndicatorReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceIndicatorResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceIndicator() + + _, _, err := moduleCli.QueryPerformanceIndicator(ctx, &lark.QueryPerformanceIndicatorReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceCreatePerformanceMetricDetailImport(func(ctx context.Context, request *lark.CreatePerformanceMetricDetailImportReq, options ...lark.MethodOptionFunc) (*lark.CreatePerformanceMetricDetailImportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceCreatePerformanceMetricDetailImport() + + _, _, err := moduleCli.CreatePerformanceMetricDetailImport(ctx, &lark.CreatePerformanceMetricDetailImportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceMetricDetail(func(ctx context.Context, request *lark.QueryPerformanceMetricDetailReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceMetricDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceMetricDetail() + + _, _, err := moduleCli.QueryPerformanceMetricDetail(ctx, &lark.QueryPerformanceMetricDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceMetricField(func(ctx context.Context, request *lark.QueryPerformanceMetricFieldReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceMetricFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceMetricField() + + _, _, err := moduleCli.QueryPerformanceMetricField(ctx, &lark.QueryPerformanceMetricFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceMetricLib(func(ctx context.Context, request *lark.QueryPerformanceMetricLibReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceMetricLibResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceMetricLib() + + _, _, err := moduleCli.QueryPerformanceMetricLib(ctx, &lark.QueryPerformanceMetricLibReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceListPerformanceMetricTag(func(ctx context.Context, request *lark.ListPerformanceMetricTagReq, options ...lark.MethodOptionFunc) (*lark.ListPerformanceMetricTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceListPerformanceMetricTag() + + _, _, err := moduleCli.ListPerformanceMetricTag(ctx, &lark.ListPerformanceMetricTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceMetricTemplate(func(ctx context.Context, request *lark.QueryPerformanceMetricTemplateReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceMetricTemplateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceMetricTemplate() + + _, _, err := moduleCli.QueryPerformanceMetricTemplate(ctx, &lark.QueryPerformanceMetricTemplateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceQuestion(func(ctx context.Context, request *lark.QueryPerformanceQuestionReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceQuestionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceQuestion() + + _, _, err := moduleCli.QueryPerformanceQuestion(ctx, &lark.QueryPerformanceQuestionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceReviewData(func(ctx context.Context, request *lark.QueryPerformanceReviewDataReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceReviewDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceReviewData() + + _, _, err := moduleCli.QueryPerformanceReviewData(ctx, &lark.QueryPerformanceReviewDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceReviewTemplate(func(ctx context.Context, request *lark.QueryPerformanceReviewTemplateReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceReviewTemplateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceReviewTemplate() + + _, _, err := moduleCli.QueryPerformanceReviewTemplate(ctx, &lark.QueryPerformanceReviewTemplateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceReviewee(func(ctx context.Context, request *lark.QueryPerformanceRevieweeReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceRevieweeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceReviewee() + + _, _, err := moduleCli.QueryPerformanceReviewee(ctx, &lark.QueryPerformanceRevieweeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceCreatePerformanceUserGroupUserRelWrite(func(ctx context.Context, request *lark.CreatePerformanceUserGroupUserRelWriteReq, options ...lark.MethodOptionFunc) (*lark.CreatePerformanceUserGroupUserRelWriteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceCreatePerformanceUserGroupUserRelWrite() + + _, _, err := moduleCli.CreatePerformanceUserGroupUserRelWrite(ctx, &lark.CreatePerformanceUserGroupUserRelWriteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockPerformanceQueryPerformanceUserInfo(func(ctx context.Context, request *lark.QueryPerformanceUserInfoReq, options ...lark.MethodOptionFunc) (*lark.QueryPerformanceUserInfoResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockPerformanceQueryPerformanceUserInfo() + + _, _, err := moduleCli.QueryPerformanceUserInfo(ctx, &lark.QueryPerformanceUserInfoReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -100,27 +311,151 @@ func Test_Performance_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPerformanceSemesterList(ctx, &lark.GetPerformanceSemesterListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPerformanceStageTaskByUser(ctx, &lark.GetPerformanceStageTaskByUserReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPerformanceStageTaskByPage(ctx, &lark.GetPerformanceStageTaskByPageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPerformanceReviewData(ctx, &lark.GetPerformanceReviewDataReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceActivity(ctx, &lark.QueryPerformanceActivityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePerformanceAdditionalInformationImport(ctx, &lark.CreatePerformanceAdditionalInformationImportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceAdditionalInformation(ctx, &lark.QueryPerformanceAdditionalInformationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeletePerformanceAdditionalInformationsBatch(ctx, &lark.DeletePerformanceAdditionalInformationsBatchReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceIndicator(ctx, &lark.QueryPerformanceIndicatorReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePerformanceMetricDetailImport(ctx, &lark.CreatePerformanceMetricDetailImportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceMetricDetail(ctx, &lark.QueryPerformanceMetricDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceMetricField(ctx, &lark.QueryPerformanceMetricFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceMetricLib(ctx, &lark.QueryPerformanceMetricLibReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListPerformanceMetricTag(ctx, &lark.ListPerformanceMetricTagReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceMetricTemplate(ctx, &lark.QueryPerformanceMetricTemplateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceQuestion(ctx, &lark.QueryPerformanceQuestionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceReviewData(ctx, &lark.QueryPerformanceReviewDataReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceReviewTemplate(ctx, &lark.QueryPerformanceReviewTemplateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceReviewee(ctx, &lark.QueryPerformanceRevieweeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePerformanceUserGroupUserRelWrite(ctx, &lark.CreatePerformanceUserGroupUserRelWriteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryPerformanceUserInfo(ctx, &lark.QueryPerformanceUserInfoReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/personalsettings_sample_test.go b/test/personalsettings_sample_test.go index 0b2e3877..35b5064f 100644 --- a/test/personalsettings_sample_test.go +++ b/test/personalsettings_sample_test.go @@ -37,10 +37,12 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { moduleCli := cli.PersonalSettings t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreatePersonalSettingsSystemStatus(ctx, &lark.CreatePersonalSettingsSystemStatusReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { moduleCli := cli.PersonalSettings t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsCreatePersonalSettingsSystemStatus(func(ctx context.Context, request *lark.CreatePersonalSettingsSystemStatusReq, options ...lark.MethodOptionFunc) (*lark.CreatePersonalSettingsSystemStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsDeletePersonalSettingsSystemStatus(func(ctx context.Context, request *lark.DeletePersonalSettingsSystemStatusReq, options ...lark.MethodOptionFunc) (*lark.DeletePersonalSettingsSystemStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsUpdatePersonalSettingsSystemStatus(func(ctx context.Context, request *lark.UpdatePersonalSettingsSystemStatusReq, options ...lark.MethodOptionFunc) (*lark.UpdatePersonalSettingsSystemStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsGetPersonalSettingsSystemStatusList(func(ctx context.Context, request *lark.GetPersonalSettingsSystemStatusListReq, options ...lark.MethodOptionFunc) (*lark.GetPersonalSettingsSystemStatusListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsBatchOpenPersonalSettingsSystemStatus(func(ctx context.Context, request *lark.BatchOpenPersonalSettingsSystemStatusReq, options ...lark.MethodOptionFunc) (*lark.BatchOpenPersonalSettingsSystemStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockPersonalSettingsBatchClosePersonalSettingsSystemStatus(func(ctx context.Context, request *lark.BatchClosePersonalSettingsSystemStatusReq, options ...lark.MethodOptionFunc) (*lark.BatchClosePersonalSettingsSystemStatusResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -112,6 +120,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -122,12 +131,14 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreatePersonalSettingsSystemStatus(ctx, &lark.CreatePersonalSettingsSystemStatusReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeletePersonalSettingsSystemStatus(ctx, &lark.DeletePersonalSettingsSystemStatusReq{ SystemStatusID: "x", }) @@ -136,6 +147,7 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdatePersonalSettingsSystemStatus(ctx, &lark.UpdatePersonalSettingsSystemStatusReq{ SystemStatusID: "x", }) @@ -144,12 +156,14 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetPersonalSettingsSystemStatusList(ctx, &lark.GetPersonalSettingsSystemStatusListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchOpenPersonalSettingsSystemStatus(ctx, &lark.BatchOpenPersonalSettingsSystemStatusReq{ SystemStatusID: "x", }) @@ -158,11 +172,13 @@ func Test_PersonalSettings_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchClosePersonalSettingsSystemStatus(ctx, &lark.BatchClosePersonalSettingsSystemStatusReq{ SystemStatusID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/Report_sample_test.go b/test/report_sample_test.go similarity index 82% rename from test/Report_sample_test.go rename to test/report_sample_test.go index 53664093..8c74dd1d 100644 --- a/test/Report_sample_test.go +++ b/test/report_sample_test.go @@ -37,10 +37,12 @@ func Test_Report_Sample_Failed(t *testing.T) { moduleCli := cli.Report t.Run("", func(t *testing.T) { + _, _, err := moduleCli.QueryReportRule(ctx, &lark.QueryReportRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Report_Sample_Failed(t *testing.T) { moduleCli := cli.Report t.Run("", func(t *testing.T) { + cli.Mock().MockReportQueryReportRule(func(ctx context.Context, request *lark.QueryReportRuleReq, options ...lark.MethodOptionFunc) (*lark.QueryReportRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Report_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockReportRemoveReportView(func(ctx context.Context, request *lark.RemoveReportViewReq, options ...lark.MethodOptionFunc) (*lark.RemoveReportViewResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -69,16 +73,6 @@ func Test_Report_Sample_Failed(t *testing.T) { as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockReportQueryReportTask(func(ctx context.Context, request *lark.QueryReportTaskReq, options ...lark.MethodOptionFunc) (*lark.QueryReportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockReportQueryReportTask() - - _, _, err := moduleCli.QueryReportTask(ctx, &lark.QueryReportTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -89,12 +83,14 @@ func Test_Report_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.QueryReportRule(ctx, &lark.QueryReportRuleReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{ RuleID: "x", }) @@ -102,10 +98,5 @@ func Test_Report_Sample_Failed(t *testing.T) { as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryReportTask(ctx, &lark.QueryReportTaskReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/search_sample_test.go b/test/search_sample_test.go index 777062d9..3f1e2fbc 100644 --- a/test/search_sample_test.go +++ b/test/search_sample_test.go @@ -37,10 +37,12 @@ func Test_Search_Sample_Failed(t *testing.T) { moduleCli := cli.Search t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateSearchDataSource(ctx, &lark.CreateSearchDataSourceReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Search_Sample_Failed(t *testing.T) { moduleCli := cli.Search t.Run("", func(t *testing.T) { + cli.Mock().MockSearchSearchMessage(func(ctx context.Context, request *lark.SearchMessageReq, options ...lark.MethodOptionFunc) (*lark.SearchMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchSearchApp(func(ctx context.Context, request *lark.SearchAppReq, options ...lark.MethodOptionFunc) (*lark.SearchAppResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -70,6 +74,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchCreateSearchDataSource(func(ctx context.Context, request *lark.CreateSearchDataSourceReq, options ...lark.MethodOptionFunc) (*lark.CreateSearchDataSourceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -81,6 +86,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchGetSearchDataSource(func(ctx context.Context, request *lark.GetSearchDataSourceReq, options ...lark.MethodOptionFunc) (*lark.GetSearchDataSourceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -92,6 +98,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchUpdateSearchDataSource(func(ctx context.Context, request *lark.UpdateSearchDataSourceReq, options ...lark.MethodOptionFunc) (*lark.UpdateSearchDataSourceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -103,6 +110,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchGetSearchDataSourceList(func(ctx context.Context, request *lark.GetSearchDataSourceListReq, options ...lark.MethodOptionFunc) (*lark.GetSearchDataSourceListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -114,6 +122,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchDeleteSearchDataSource(func(ctx context.Context, request *lark.DeleteSearchDataSourceReq, options ...lark.MethodOptionFunc) (*lark.DeleteSearchDataSourceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -125,6 +134,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchBatchCreateSearchDataSourceItem(func(ctx context.Context, request *lark.BatchCreateSearchDataSourceItemReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateSearchDataSourceItemResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -136,6 +146,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchCreateSearchDataSourceItem(func(ctx context.Context, request *lark.CreateSearchDataSourceItemReq, options ...lark.MethodOptionFunc) (*lark.CreateSearchDataSourceItemResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -147,6 +158,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchGetSearchDataSourceItem(func(ctx context.Context, request *lark.GetSearchDataSourceItemReq, options ...lark.MethodOptionFunc) (*lark.GetSearchDataSourceItemResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -158,6 +170,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchDeleteSearchDataSourceItem(func(ctx context.Context, request *lark.DeleteSearchDataSourceItemReq, options ...lark.MethodOptionFunc) (*lark.DeleteSearchDataSourceItemResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -169,6 +182,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchUpdateSearchSchema(func(ctx context.Context, request *lark.UpdateSearchSchemaReq, options ...lark.MethodOptionFunc) (*lark.UpdateSearchSchemaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -180,6 +194,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchDeleteSearchSchema(func(ctx context.Context, request *lark.DeleteSearchSchemaReq, options ...lark.MethodOptionFunc) (*lark.DeleteSearchSchemaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -191,6 +206,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchGetSearchSchema(func(ctx context.Context, request *lark.GetSearchSchemaReq, options ...lark.MethodOptionFunc) (*lark.GetSearchSchemaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -202,6 +218,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockSearchCreateSearchSchema(func(ctx context.Context, request *lark.CreateSearchSchemaReq, options ...lark.MethodOptionFunc) (*lark.CreateSearchSchemaResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -211,6 +228,19 @@ func Test_Search_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSearchSearchSearchDocWiki(func(ctx context.Context, request *lark.SearchSearchDocWikiReq, options ...lark.MethodOptionFunc) (*lark.SearchSearchDocWikiResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSearchSearchSearchDocWiki() + + _, _, err := moduleCli.SearchSearchDocWiki(ctx, &lark.SearchSearchDocWikiReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -221,24 +251,28 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchMessage(ctx, &lark.SearchMessageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.SearchApp(ctx, &lark.SearchAppReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateSearchDataSource(ctx, &lark.CreateSearchDataSourceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetSearchDataSource(ctx, &lark.GetSearchDataSourceReq{ DataSourceID: "x", }) @@ -247,6 +281,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateSearchDataSource(ctx, &lark.UpdateSearchDataSourceReq{ DataSourceID: "x", }) @@ -255,12 +290,14 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetSearchDataSourceList(ctx, &lark.GetSearchDataSourceListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteSearchDataSource(ctx, &lark.DeleteSearchDataSourceReq{ DataSourceID: "x", }) @@ -269,6 +306,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.BatchCreateSearchDataSourceItem(ctx, &lark.BatchCreateSearchDataSourceItemReq{ DataSourceID: "x", }) @@ -277,6 +315,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateSearchDataSourceItem(ctx, &lark.CreateSearchDataSourceItemReq{ DataSourceID: "x", }) @@ -285,6 +324,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetSearchDataSourceItem(ctx, &lark.GetSearchDataSourceItemReq{ DataSourceID: "x", ItemID: "x", @@ -294,6 +334,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteSearchDataSourceItem(ctx, &lark.DeleteSearchDataSourceItemReq{ DataSourceID: "x", ItemID: "x", @@ -303,6 +344,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.UpdateSearchSchema(ctx, &lark.UpdateSearchSchemaReq{ SchemaID: "x", }) @@ -311,6 +353,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.DeleteSearchSchema(ctx, &lark.DeleteSearchSchemaReq{ SchemaID: "x", }) @@ -319,6 +362,7 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetSearchSchema(ctx, &lark.GetSearchSchemaReq{ SchemaID: "x", }) @@ -327,9 +371,18 @@ func Test_Search_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.CreateSearchSchema(ctx, &lark.CreateSearchSchemaReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchSearchDocWiki(ctx, &lark.SearchSearchDocWikiReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/securityandcompliance_sample_test.go b/test/securityandcompliance_sample_test.go new file mode 100644 index 00000000..75339bbf --- /dev/null +++ b/test/securityandcompliance_sample_test.go @@ -0,0 +1,222 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_SecurityAndCompliance_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.SecurityAndCompliance + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListSecurityAndComplianceOpenapiLogData(ctx, &lark.ListSecurityAndComplianceOpenapiLogDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.SecurityAndCompliance + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData(func(ctx context.Context, request *lark.ListSecurityAndComplianceOpenapiLogDataReq, options ...lark.MethodOptionFunc) (*lark.ListSecurityAndComplianceOpenapiLogDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData() + + _, _, err := moduleCli.ListSecurityAndComplianceOpenapiLogData(ctx, &lark.ListSecurityAndComplianceOpenapiLogDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord(func(ctx context.Context, request *lark.UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateSecurityAndComplianceDeviceApplyRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord() + + _, _, err := moduleCli.UpdateSecurityAndComplianceDeviceApplyRecord(ctx, &lark.UpdateSecurityAndComplianceDeviceApplyRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord(func(ctx context.Context, request *lark.CreateSecurityAndComplianceDeviceRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateSecurityAndComplianceDeviceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord() + + _, _, err := moduleCli.CreateSecurityAndComplianceDeviceRecord(ctx, &lark.CreateSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord(func(ctx context.Context, request *lark.DeleteSecurityAndComplianceDeviceRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteSecurityAndComplianceDeviceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord() + + _, _, err := moduleCli.DeleteSecurityAndComplianceDeviceRecord(ctx, &lark.DeleteSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord(func(ctx context.Context, request *lark.GetSecurityAndComplianceDeviceRecordReq, options ...lark.MethodOptionFunc) (*lark.GetSecurityAndComplianceDeviceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecord() + + _, _, err := moduleCli.GetSecurityAndComplianceDeviceRecord(ctx, &lark.GetSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceListSecurityAndComplianceDeviceRecord(func(ctx context.Context, request *lark.ListSecurityAndComplianceDeviceRecordReq, options ...lark.MethodOptionFunc) (*lark.ListSecurityAndComplianceDeviceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceListSecurityAndComplianceDeviceRecord() + + _, _, err := moduleCli.ListSecurityAndComplianceDeviceRecord(ctx, &lark.ListSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine(func(ctx context.Context, request *lark.GetSecurityAndComplianceDeviceRecordMineReq, options ...lark.MethodOptionFunc) (*lark.GetSecurityAndComplianceDeviceRecordMineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine() + + _, _, err := moduleCli.GetSecurityAndComplianceDeviceRecordMine(ctx, &lark.GetSecurityAndComplianceDeviceRecordMineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord(func(ctx context.Context, request *lark.UpdateSecurityAndComplianceDeviceRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateSecurityAndComplianceDeviceRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord() + + _, _, err := moduleCli.UpdateSecurityAndComplianceDeviceRecord(ctx, &lark.UpdateSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.SecurityAndCompliance + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListSecurityAndComplianceOpenapiLogData(ctx, &lark.ListSecurityAndComplianceOpenapiLogDataReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSecurityAndComplianceDeviceApplyRecord(ctx, &lark.UpdateSecurityAndComplianceDeviceApplyRecordReq{ + DeviceApplyRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSecurityAndComplianceDeviceRecord(ctx, &lark.CreateSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSecurityAndComplianceDeviceRecord(ctx, &lark.DeleteSecurityAndComplianceDeviceRecordReq{ + DeviceRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSecurityAndComplianceDeviceRecord(ctx, &lark.GetSecurityAndComplianceDeviceRecordReq{ + DeviceRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListSecurityAndComplianceDeviceRecord(ctx, &lark.ListSecurityAndComplianceDeviceRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSecurityAndComplianceDeviceRecordMine(ctx, &lark.GetSecurityAndComplianceDeviceRecordMineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSecurityAndComplianceDeviceRecord(ctx, &lark.UpdateSecurityAndComplianceDeviceRecordReq{ + DeviceRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/task_sample_test.go b/test/task_sample_test.go index d3388e00..3ae89829 100644 --- a/test/task_sample_test.go +++ b/test/task_sample_test.go @@ -37,10 +37,12 @@ func Test_Task_Sample_Failed(t *testing.T) { moduleCli := cli.Task t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{}) + + _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,257 +50,173 @@ func Test_Task_Sample_Failed(t *testing.T) { moduleCli := cli.Task t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTaskFollower(func(ctx context.Context, request *lark.CreateTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskFollowerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskCreateTaskFollower() - - _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskDeleteTaskFollower(func(ctx context.Context, request *lark.DeleteTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskFollowerResp, *lark.Response, error) { + cli.Mock().MockTaskAddTaskDependency(func(ctx context.Context, request *lark.AddTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.AddTaskDependencyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskDeleteTaskFollower() + defer cli.Mock().UnMockTaskAddTaskDependency() - _, _, err := moduleCli.DeleteTaskFollower(ctx, &lark.DeleteTaskFollowerReq{}) + _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskBatchDeleteTaskFollower(func(ctx context.Context, request *lark.BatchDeleteTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskFollowerResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskBatchDeleteTaskFollower() - - _, _, err := moduleCli.BatchDeleteTaskFollower(ctx, &lark.BatchDeleteTaskFollowerReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskFollowerList(func(ctx context.Context, request *lark.GetTaskFollowerListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskFollowerListResp, *lark.Response, error) { + cli.Mock().MockTaskAddTaskMember(func(ctx context.Context, request *lark.AddTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskFollowerList() + defer cli.Mock().UnMockTaskAddTaskMember() - _, _, err := moduleCli.GetTaskFollowerList(ctx, &lark.GetTaskFollowerListReq{}) + _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTaskCollaborator(func(ctx context.Context, request *lark.CreateTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCollaboratorResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskCreateTaskCollaborator() - - _, _, err := moduleCli.CreateTaskCollaborator(ctx, &lark.CreateTaskCollaboratorReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskDeleteTaskCollaborator(func(ctx context.Context, request *lark.DeleteTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskCollaboratorResp, *lark.Response, error) { + cli.Mock().MockTaskAddTaskReminder(func(ctx context.Context, request *lark.AddTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.AddTaskReminderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskDeleteTaskCollaborator() + defer cli.Mock().UnMockTaskAddTaskReminder() - _, _, err := moduleCli.DeleteTaskCollaborator(ctx, &lark.DeleteTaskCollaboratorReq{}) + _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskBatchDeleteTaskCollaborator(func(ctx context.Context, request *lark.BatchDeleteTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskCollaboratorResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskBatchDeleteTaskCollaborator() - - _, _, err := moduleCli.BatchDeleteTaskCollaborator(ctx, &lark.BatchDeleteTaskCollaboratorReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskCollaboratorList(func(ctx context.Context, request *lark.GetTaskCollaboratorListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCollaboratorListResp, *lark.Response, error) { + cli.Mock().MockTaskAddTaskTasklist(func(ctx context.Context, request *lark.AddTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskCollaboratorList() + defer cli.Mock().UnMockTaskAddTaskTasklist() - _, _, err := moduleCli.GetTaskCollaboratorList(ctx, &lark.GetTaskCollaboratorListReq{}) + _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTaskReminder(func(ctx context.Context, request *lark.CreateTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskReminderResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskCreateTaskReminder() - _, _, err := moduleCli.CreateTaskReminder(ctx, &lark.CreateTaskReminderReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskReminderList(func(ctx context.Context, request *lark.GetTaskReminderListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskReminderListResp, *lark.Response, error) { + cli.Mock().MockTaskAddTaskTasklistMember(func(ctx context.Context, request *lark.AddTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskReminderList() + defer cli.Mock().UnMockTaskAddTaskTasklistMember() - _, _, err := moduleCli.GetTaskReminderList(ctx, &lark.GetTaskReminderListReq{}) + _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskDeleteTaskReminder(func(ctx context.Context, request *lark.DeleteTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskReminderResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskDeleteTaskReminder() - - _, _, err := moduleCli.DeleteTaskReminder(ctx, &lark.DeleteTaskReminderReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTask(func(ctx context.Context, request *lark.CreateTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskResp, *lark.Response, error) { + cli.Mock().MockTaskCreateTaskSubtask(func(ctx context.Context, request *lark.CreateTaskSubtaskReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskSubtaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskCreateTask() + defer cli.Mock().UnMockTaskCreateTaskSubtask() - _, _, err := moduleCli.CreateTask(ctx, &lark.CreateTaskReq{}) + _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTask(func(ctx context.Context, request *lark.GetTaskReq, options ...lark.MethodOptionFunc) (*lark.GetTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskGetTask() - - _, _, err := moduleCli.GetTask(ctx, &lark.GetTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskList(func(ctx context.Context, request *lark.GetTaskListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskListResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskTaskListOfSection(func(ctx context.Context, request *lark.GetTaskTaskListOfSectionReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfSectionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskList() + defer cli.Mock().UnMockTaskGetTaskTaskListOfSection() - _, _, err := moduleCli.GetTaskList(ctx, &lark.GetTaskListReq{}) + _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskDeleteTask(func(ctx context.Context, request *lark.DeleteTaskReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskDeleteTask() - - _, _, err := moduleCli.DeleteTask(ctx, &lark.DeleteTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskUpdateTask(func(ctx context.Context, request *lark.UpdateTaskReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskTaskListOfTasklist(func(ctx context.Context, request *lark.GetTaskTaskListOfTasklistReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfTasklistResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskUpdateTask() + defer cli.Mock().UnMockTaskGetTaskTaskListOfTasklist() - _, _, err := moduleCli.UpdateTask(ctx, &lark.UpdateTaskReq{}) + _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCompleteTask(func(ctx context.Context, request *lark.CompleteTaskReq, options ...lark.MethodOptionFunc) (*lark.CompleteTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockTaskCompleteTask() - - _, _, err := moduleCli.CompleteTask(ctx, &lark.CompleteTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockTaskUncompleteTask(func(ctx context.Context, request *lark.UncompleteTaskReq, options ...lark.MethodOptionFunc) (*lark.UncompleteTaskResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskSubtaskList(func(ctx context.Context, request *lark.GetTaskSubtaskListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskSubtaskListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskUncompleteTask() + defer cli.Mock().UnMockTaskGetTaskSubtaskList() - _, _, err := moduleCli.UncompleteTask(ctx, &lark.UncompleteTaskReq{}) + _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTaskComment(func(ctx context.Context, request *lark.CreateTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCommentResp, *lark.Response, error) { + + cli.Mock().MockTaskRemoveTaskDependency(func(ctx context.Context, request *lark.RemoveTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskDependencyResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskCreateTaskComment() + defer cli.Mock().UnMockTaskRemoveTaskDependency() - _, _, err := moduleCli.CreateTaskComment(ctx, &lark.CreateTaskCommentReq{}) + _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskComment(func(ctx context.Context, request *lark.GetTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCommentResp, *lark.Response, error) { + + cli.Mock().MockTaskRemoveTaskMember(func(ctx context.Context, request *lark.RemoveTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskComment() + defer cli.Mock().UnMockTaskRemoveTaskMember() - _, _, err := moduleCli.GetTaskComment(ctx, &lark.GetTaskCommentReq{}) + _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskCommentList(func(ctx context.Context, request *lark.GetTaskCommentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCommentListResp, *lark.Response, error) { + + cli.Mock().MockTaskRemoveTaskReminder(func(ctx context.Context, request *lark.RemoveTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskReminderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskCommentList() + defer cli.Mock().UnMockTaskRemoveTaskReminder() - _, _, err := moduleCli.GetTaskCommentList(ctx, &lark.GetTaskCommentListReq{}) + _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskDeleteTaskComment(func(ctx context.Context, request *lark.DeleteTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskCommentResp, *lark.Response, error) { + + cli.Mock().MockTaskRemoveTaskTasklist(func(ctx context.Context, request *lark.RemoveTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskDeleteTaskComment() + defer cli.Mock().UnMockTaskRemoveTaskTasklist() - _, _, err := moduleCli.DeleteTaskComment(ctx, &lark.DeleteTaskCommentReq{}) + _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskUpdateTaskComment(func(ctx context.Context, request *lark.UpdateTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskCommentResp, *lark.Response, error) { + + cli.Mock().MockTaskRemoveTaskTasklistMember(func(ctx context.Context, request *lark.RemoveTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskUpdateTaskComment() + defer cli.Mock().UnMockTaskRemoveTaskTasklistMember() - _, _, err := moduleCli.UpdateTaskComment(ctx, &lark.UpdateTaskCommentReq{}) + _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -309,104 +227,80 @@ func Test_Task_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskFollower(ctx, &lark.DeleteTaskFollowerReq{ - TaskID: "x", - FollowerID: "x", + _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteTaskFollower(ctx, &lark.BatchDeleteTaskFollowerReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskFollowerList(ctx, &lark.GetTaskFollowerListReq{ - TaskID: "x", + _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskCollaborator(ctx, &lark.CreateTaskCollaboratorReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskCollaborator(ctx, &lark.DeleteTaskCollaboratorReq{ - TaskID: "x", - CollaboratorID: "x", + _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchDeleteTaskCollaborator(ctx, &lark.BatchDeleteTaskCollaboratorReq{ - TaskID: "x", + + _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskCollaboratorList(ctx, &lark.GetTaskCollaboratorListReq{ - TaskID: "x", + + _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{ + TasklistGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskReminder(ctx, &lark.CreateTaskReminderReq{ - TaskID: "x", + + _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskReminderList(ctx, &lark.GetTaskReminderListReq{ - TaskID: "x", + + _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{ + SectionGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskReminder(ctx, &lark.DeleteTaskReminderReq{ - TaskID: "x", - ReminderID: "x", + + _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{ + TasklistGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTask(ctx, &lark.CreateTaskReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTask(ctx, &lark.GetTaskReq{ + _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{ TaskGuid: "x", }) as.NotNil(err) @@ -414,13 +308,8 @@ func Test_Task_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskList(ctx, &lark.GetTaskListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTask(ctx, &lark.DeleteTaskReq{ + _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{ TaskGuid: "x", }) as.NotNil(err) @@ -428,7 +317,8 @@ func Test_Task_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateTask(ctx, &lark.UpdateTaskReq{ + + _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{ TaskGuid: "x", }) as.NotNil(err) @@ -436,62 +326,31 @@ func Test_Task_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CompleteTask(ctx, &lark.CompleteTaskReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UncompleteTask(ctx, &lark.UncompleteTaskReq{ - TaskID: "x", + _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskComment(ctx, &lark.CreateTaskCommentReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskComment(ctx, &lark.GetTaskCommentReq{ - TaskID: "x", - CommentID: "x", + _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{ + TaskGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskCommentList(ctx, &lark.GetTaskCommentListReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskComment(ctx, &lark.DeleteTaskCommentReq{ - TaskID: "x", - CommentID: "x", + _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{ + TasklistGuid: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateTaskComment(ctx, &lark.UpdateTaskCommentReq{ - TaskID: "x", - CommentID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/taskv1_sample_test.go b/test/taskv1_sample_test.go new file mode 100644 index 00000000..a2cadf6e --- /dev/null +++ b/test/taskv1_sample_test.go @@ -0,0 +1,184 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_TaskV1_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.TaskV1 + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.TaskV1 + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1CreateTaskV1(func(ctx context.Context, request *lark.CreateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1CreateTaskV1() + + _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1DeleteTaskV1(func(ctx context.Context, request *lark.DeleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1DeleteTaskV1() + + _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1GetTaskV1CommentList(func(ctx context.Context, request *lark.GetTaskV1CommentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CommentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1GetTaskV1CommentList() + + _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1GetTaskV1(func(ctx context.Context, request *lark.GetTaskV1Req, options ...lark.MethodOptionFunc) (*lark.GetTaskV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1GetTaskV1() + + _, _, err := moduleCli.GetTaskV1(ctx, &lark.GetTaskV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1GetTaskV1List(func(ctx context.Context, request *lark.GetTaskV1ListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1ListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1GetTaskV1List() + + _, _, err := moduleCli.GetTaskV1List(ctx, &lark.GetTaskV1ListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskV1UpdateTaskV1(func(ctx context.Context, request *lark.UpdateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.UpdateTaskV1Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskV1UpdateTaskV1() + + _, _, err := moduleCli.UpdateTaskV1(ctx, &lark.UpdateTaskV1Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.TaskV1 + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskV1(ctx, &lark.GetTaskV1Req{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskV1List(ctx, &lark.GetTaskV1ListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskV1(ctx, &lark.UpdateTaskV1Req{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/tenant_sample_test.go b/test/tenant_sample_test.go index 01231e9c..fdad782b 100644 --- a/test/tenant_sample_test.go +++ b/test/tenant_sample_test.go @@ -37,10 +37,12 @@ func Test_Tenant_Sample_Failed(t *testing.T) { moduleCli := cli.Tenant t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetTenantProductAssignInfo(ctx, &lark.GetTenantProductAssignInfoReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Tenant_Sample_Failed(t *testing.T) { moduleCli := cli.Tenant t.Run("", func(t *testing.T) { + cli.Mock().MockTenantGetTenantProductAssignInfo(func(ctx context.Context, request *lark.GetTenantProductAssignInfoReq, options ...lark.MethodOptionFunc) (*lark.GetTenantProductAssignInfoResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -59,6 +62,7 @@ func Test_Tenant_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + cli.Mock().MockTenantGetTenant(func(ctx context.Context, request *lark.GetTenantReq, options ...lark.MethodOptionFunc) (*lark.GetTenantResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -68,6 +72,7 @@ func Test_Tenant_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -78,15 +83,18 @@ func Test_Tenant_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetTenantProductAssignInfo(ctx, &lark.GetTenantProductAssignInfoReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetTenant(ctx, &lark.GetTenantReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } diff --git a/test/trustparty_sample_test.go b/test/trustparty_sample_test.go new file mode 100644 index 00000000..b30b96b3 --- /dev/null +++ b/test/trustparty_sample_test.go @@ -0,0 +1,167 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_TrustParty_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.TrustParty + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantCollaborationDepartment(ctx, &lark.GetTrustPartyCollaborationTenantCollaborationDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.TrustParty + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment(func(ctx context.Context, request *lark.GetTrustPartyCollaborationTenantCollaborationDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetTrustPartyCollaborationTenantCollaborationDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationDepartment() + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantCollaborationDepartment(ctx, &lark.GetTrustPartyCollaborationTenantCollaborationDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser(func(ctx context.Context, request *lark.GetTrustPartyCollaborationTenantCollaborationUserReq, options ...lark.MethodOptionFunc) (*lark.GetTrustPartyCollaborationTenantCollaborationUserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTrustPartyGetTrustPartyCollaborationTenantCollaborationUser() + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantCollaborationUser(ctx, &lark.GetTrustPartyCollaborationTenantCollaborationUserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTrustPartyGetTrustPartyCollaborationTenant(func(ctx context.Context, request *lark.GetTrustPartyCollaborationTenantReq, options ...lark.MethodOptionFunc) (*lark.GetTrustPartyCollaborationTenantResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTrustPartyGetTrustPartyCollaborationTenant() + + _, _, err := moduleCli.GetTrustPartyCollaborationTenant(ctx, &lark.GetTrustPartyCollaborationTenantReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTrustPartyListTrustPartyCollaborationTenant(func(ctx context.Context, request *lark.ListTrustPartyCollaborationTenantReq, options ...lark.MethodOptionFunc) (*lark.ListTrustPartyCollaborationTenantResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTrustPartyListTrustPartyCollaborationTenant() + + _, _, err := moduleCli.ListTrustPartyCollaborationTenant(ctx, &lark.ListTrustPartyCollaborationTenantReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization(func(ctx context.Context, request *lark.GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...lark.MethodOptionFunc) (*lark.GetTrustPartyCollaborationTenantVisibleOrganizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization() + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantVisibleOrganization(ctx, &lark.GetTrustPartyCollaborationTenantVisibleOrganizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.TrustParty + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantCollaborationDepartment(ctx, &lark.GetTrustPartyCollaborationTenantCollaborationDepartmentReq{ + TargetTenantKey: "x", + TargetDepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantCollaborationUser(ctx, &lark.GetTrustPartyCollaborationTenantCollaborationUserReq{ + TargetTenantKey: "x", + TargetUserID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTrustPartyCollaborationTenant(ctx, &lark.GetTrustPartyCollaborationTenantReq{ + TargetTenantKey: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListTrustPartyCollaborationTenant(ctx, &lark.ListTrustPartyCollaborationTenantReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTrustPartyCollaborationTenantVisibleOrganization(ctx, &lark.GetTrustPartyCollaborationTenantVisibleOrganizationReq{ + TargetTenantKey: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/vc_sample_test.go b/test/vc_sample_test.go index 348ed236..1c2924d1 100644 --- a/test/vc_sample_test.go +++ b/test/vc_sample_test.go @@ -37,10 +37,12 @@ func Test_VC_Sample_Failed(t *testing.T) { moduleCli := cli.VC t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) + + _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,947 +50,32 @@ func Test_VC_Sample_Failed(t *testing.T) { moduleCli := cli.VC t.Run("", func(t *testing.T) { - cli.Mock().MockVCApplyVCReserve(func(ctx context.Context, request *lark.ApplyVCReserveReq, options ...lark.MethodOptionFunc) (*lark.ApplyVCReserveResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCApplyVCReserve() - - _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCReserve(func(ctx context.Context, request *lark.UpdateVCReserveReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCReserve() - - _, _, err := moduleCli.UpdateVCReserve(ctx, &lark.UpdateVCReserveReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCDeleteVCReserve(func(ctx context.Context, request *lark.DeleteVCReserveReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCReserveResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCDeleteVCReserve() - - _, _, err := moduleCli.DeleteVCReserve(ctx, &lark.DeleteVCReserveReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserve(func(ctx context.Context, request *lark.GetVCReserveReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserve() - - _, _, err := moduleCli.GetVCReserve(ctx, &lark.GetVCReserveReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserveActiveMeeting(func(ctx context.Context, request *lark.GetVCReserveActiveMeetingReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveActiveMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserveActiveMeeting() - - _, _, err := moduleCli.GetVCReserveActiveMeeting(ctx, &lark.GetVCReserveActiveMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCMeeting(func(ctx context.Context, request *lark.GetVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCMeeting() - - _, _, err := moduleCli.GetVCMeeting(ctx, &lark.GetVCMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCListVCMeetingByNo(func(ctx context.Context, request *lark.ListVCMeetingByNoReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingByNoResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCListVCMeetingByNo() - - _, _, err := moduleCli.ListVCMeetingByNo(ctx, &lark.ListVCMeetingByNoReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCInviteVCMeeting(func(ctx context.Context, request *lark.InviteVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.InviteVCMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCInviteVCMeeting() - - _, _, err := moduleCli.InviteVCMeeting(ctx, &lark.InviteVCMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCKickoutVCMeeting(func(ctx context.Context, request *lark.KickoutVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.KickoutVCMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCKickoutVCMeeting() - - _, _, err := moduleCli.KickoutVCMeeting(ctx, &lark.KickoutVCMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCSetVCHostMeeting(func(ctx context.Context, request *lark.SetVCHostMeetingReq, options ...lark.MethodOptionFunc) (*lark.SetVCHostMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCSetVCHostMeeting() - - _, _, err := moduleCli.SetVCHostMeeting(ctx, &lark.SetVCHostMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCEndVCMeeting(func(ctx context.Context, request *lark.EndVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.EndVCMeetingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCEndVCMeeting() - - _, _, err := moduleCli.EndVCMeeting(ctx, &lark.EndVCMeetingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCStartVCMeetingRecording(func(ctx context.Context, request *lark.StartVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.StartVCMeetingRecordingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCStartVCMeetingRecording() - - _, _, err := moduleCli.StartVCMeetingRecording(ctx, &lark.StartVCMeetingRecordingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCStopVCMeetingRecording(func(ctx context.Context, request *lark.StopVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.StopVCMeetingRecordingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCStopVCMeetingRecording() - - _, _, err := moduleCli.StopVCMeetingRecording(ctx, &lark.StopVCMeetingRecordingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCMeetingRecording(func(ctx context.Context, request *lark.GetVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingRecordingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCMeetingRecording() - - _, _, err := moduleCli.GetVCMeetingRecording(ctx, &lark.GetVCMeetingRecordingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCSetVCPermissionMeetingRecording(func(ctx context.Context, request *lark.SetVCPermissionMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.SetVCPermissionMeetingRecordingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCSetVCPermissionMeetingRecording() - - _, _, err := moduleCli.SetVCPermissionMeetingRecording(ctx, &lark.SetVCPermissionMeetingRecordingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCDailyReport(func(ctx context.Context, request *lark.GetVCDailyReportReq, options ...lark.MethodOptionFunc) (*lark.GetVCDailyReportResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCDailyReport() - - _, _, err := moduleCli.GetVCDailyReport(ctx, &lark.GetVCDailyReportReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCTopUserReport(func(ctx context.Context, request *lark.GetVCTopUserReportReq, options ...lark.MethodOptionFunc) (*lark.GetVCTopUserReportResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCTopUserReport() - - _, _, err := moduleCli.GetVCTopUserReport(ctx, &lark.GetVCTopUserReportReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCRoomList(func(ctx context.Context, request *lark.GetVCRoomListReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCRoomList() - - _, _, err := moduleCli.GetVCRoomList(ctx, &lark.GetVCRoomListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCRoom(func(ctx context.Context, request *lark.GetVCRoomReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCRoom() - - _, _, err := moduleCli.GetVCRoom(ctx, &lark.GetVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCBatchGetVCRoom(func(ctx context.Context, request *lark.BatchGetVCRoomReq, options ...lark.MethodOptionFunc) (*lark.BatchGetVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCBatchGetVCRoom() - - _, _, err := moduleCli.BatchGetVCRoom(ctx, &lark.BatchGetVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCCreateVCRoom(func(ctx context.Context, request *lark.CreateVCRoomReq, options ...lark.MethodOptionFunc) (*lark.CreateVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCCreateVCRoom() - - _, _, err := moduleCli.CreateVCRoom(ctx, &lark.CreateVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCRoom(func(ctx context.Context, request *lark.UpdateVCRoomReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCRoom() - - _, _, err := moduleCli.UpdateVCRoom(ctx, &lark.UpdateVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCDeleteVCRoom(func(ctx context.Context, request *lark.DeleteVCRoomReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCDeleteVCRoom() - - _, _, err := moduleCli.DeleteVCRoom(ctx, &lark.DeleteVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCSearchVCRoom(func(ctx context.Context, request *lark.SearchVCRoomReq, options ...lark.MethodOptionFunc) (*lark.SearchVCRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCSearchVCRoom() - - _, _, err := moduleCli.SearchVCRoom(ctx, &lark.SearchVCRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCRoomLevelList(func(ctx context.Context, request *lark.GetVCRoomLevelListReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomLevelListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCRoomLevelList() - - _, _, err := moduleCli.GetVCRoomLevelList(ctx, &lark.GetVCRoomLevelListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCRoomLevel(func(ctx context.Context, request *lark.GetVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCRoomLevel() - - _, _, err := moduleCli.GetVCRoomLevel(ctx, &lark.GetVCRoomLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCBatchGetVCRoomLevel(func(ctx context.Context, request *lark.BatchGetVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.BatchGetVCRoomLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCBatchGetVCRoomLevel() - - _, _, err := moduleCli.BatchGetVCRoomLevel(ctx, &lark.BatchGetVCRoomLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCCreateVCRoomLevel(func(ctx context.Context, request *lark.CreateVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.CreateVCRoomLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCCreateVCRoomLevel() - - _, _, err := moduleCli.CreateVCRoomLevel(ctx, &lark.CreateVCRoomLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCRoomLevel(func(ctx context.Context, request *lark.UpdateVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCRoomLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCRoomLevel() - - _, _, err := moduleCli.UpdateVCRoomLevel(ctx, &lark.UpdateVCRoomLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCDeleteVCRoomLevel(func(ctx context.Context, request *lark.DeleteVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCRoomLevelResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCDeleteVCRoomLevel() - - _, _, err := moduleCli.DeleteVCRoomLevel(ctx, &lark.DeleteVCRoomLevelReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - t.Run("", func(t *testing.T) { - cli.Mock().MockVCSearchVCRoomLevel(func(ctx context.Context, request *lark.SearchVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.SearchVCRoomLevelResp, *lark.Response, error) { + cli.Mock().MockVCQueryVCRoomConfig(func(ctx context.Context, request *lark.QueryVCRoomConfigReq, options ...lark.MethodOptionFunc) (*lark.QueryVCRoomConfigResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCSearchVCRoomLevel() + defer cli.Mock().UnMockVCQueryVCRoomConfig() - _, _, err := moduleCli.SearchVCRoomLevel(ctx, &lark.SearchVCRoomLevelReq{}) + _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - t.Run("", func(t *testing.T) { - cli.Mock().MockVCSetVCScopeConfig(func(ctx context.Context, request *lark.SetVCScopeConfigReq, options ...lark.MethodOptionFunc) (*lark.SetVCScopeConfigResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCSetVCScopeConfig() + }) - _, _, err := moduleCli.SetVCScopeConfig(ctx, &lark.SetVCScopeConfigReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.VC + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCScopeConfig(func(ctx context.Context, request *lark.GetVCScopeConfigReq, options ...lark.MethodOptionFunc) (*lark.GetVCScopeConfigResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCScopeConfig() - _, _, err := moduleCli.GetVCScopeConfig(ctx, &lark.GetVCScopeConfigReq{}) + _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) as.NotNil(err) - as.Equal(err.Error(), "mock-failed") + as.Equal("mock-http-failed", err.Error()) }) - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserveConfig(func(ctx context.Context, request *lark.GetVCReserveConfigReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserveConfig() - - _, _, err := moduleCli.GetVCReserveConfig(ctx, &lark.GetVCReserveConfigReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCReserveConfig(func(ctx context.Context, request *lark.UpdateVCReserveConfigReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCReserveConfig() - - _, _, err := moduleCli.UpdateVCReserveConfig(ctx, &lark.UpdateVCReserveConfigReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserveConfigForm(func(ctx context.Context, request *lark.GetVCReserveConfigFormReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigFormResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserveConfigForm() - - _, _, err := moduleCli.GetVCReserveConfigForm(ctx, &lark.GetVCReserveConfigFormReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCReserveConfigForm(func(ctx context.Context, request *lark.UpdateVCReserveConfigFormReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigFormResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCReserveConfigForm() - - _, _, err := moduleCli.UpdateVCReserveConfigForm(ctx, &lark.UpdateVCReserveConfigFormReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserveConfigAdmin(func(ctx context.Context, request *lark.GetVCReserveConfigAdminReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigAdminResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserveConfigAdmin() - - _, _, err := moduleCli.GetVCReserveConfigAdmin(ctx, &lark.GetVCReserveConfigAdminReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCReserveConfigAdmin(func(ctx context.Context, request *lark.UpdateVCReserveConfigAdminReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigAdminResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCReserveConfigAdmin() - - _, _, err := moduleCli.UpdateVCReserveConfigAdmin(ctx, &lark.UpdateVCReserveConfigAdminReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCReserveConfigDisableInform(func(ctx context.Context, request *lark.GetVCReserveConfigDisableInformReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigDisableInformResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCReserveConfigDisableInform() - - _, _, err := moduleCli.GetVCReserveConfigDisableInform(ctx, &lark.GetVCReserveConfigDisableInformReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCUpdateVCReserveConfigDisableInform(func(ctx context.Context, request *lark.UpdateVCReserveConfigDisableInformReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigDisableInformResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCUpdateVCReserveConfigDisableInform() - - _, _, err := moduleCli.UpdateVCReserveConfigDisableInform(ctx, &lark.UpdateVCReserveConfigDisableInformReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCExportVCMeetingList(func(ctx context.Context, request *lark.ExportVCMeetingListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCMeetingListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCExportVCMeetingList() - - _, _, err := moduleCli.ExportVCMeetingList(ctx, &lark.ExportVCMeetingListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCExportVCParticipantList(func(ctx context.Context, request *lark.ExportVCParticipantListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCParticipantListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCExportVCParticipantList() - - _, _, err := moduleCli.ExportVCParticipantList(ctx, &lark.ExportVCParticipantListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCExportVCParticipantQualityList(func(ctx context.Context, request *lark.ExportVCParticipantQualityListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCParticipantQualityListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCExportVCParticipantQualityList() - - _, _, err := moduleCli.ExportVCParticipantQualityList(ctx, &lark.ExportVCParticipantQualityListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCExportVCResourceReservationList(func(ctx context.Context, request *lark.ExportVCResourceReservationListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCResourceReservationListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCExportVCResourceReservationList() - - _, _, err := moduleCli.ExportVCResourceReservationList(ctx, &lark.ExportVCResourceReservationListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCExportTask(func(ctx context.Context, request *lark.GetVCExportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetVCExportTaskResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCExportTask() - - _, _, err := moduleCli.GetVCExportTask(ctx, &lark.GetVCExportTaskReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCDownloadVCExportFile(func(ctx context.Context, request *lark.DownloadVCExportFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadVCExportFileResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCDownloadVCExportFile() - - _, _, err := moduleCli.DownloadVCExportFile(ctx, &lark.DownloadVCExportFileReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCAlertList(func(ctx context.Context, request *lark.GetVCAlertListReq, options ...lark.MethodOptionFunc) (*lark.GetVCAlertListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCAlertList() - - _, _, err := moduleCli.GetVCAlertList(ctx, &lark.GetVCAlertListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCMeetingList(func(ctx context.Context, request *lark.GetVCMeetingListReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCMeetingList() - - _, _, err := moduleCli.GetVCMeetingList(ctx, &lark.GetVCMeetingListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCParticipantList(func(ctx context.Context, request *lark.GetVCParticipantListReq, options ...lark.MethodOptionFunc) (*lark.GetVCParticipantListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCParticipantList() - - _, _, err := moduleCli.GetVCParticipantList(ctx, &lark.GetVCParticipantListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCParticipantQualityList(func(ctx context.Context, request *lark.GetVCParticipantQualityListReq, options ...lark.MethodOptionFunc) (*lark.GetVCParticipantQualityListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCParticipantQualityList() - - _, _, err := moduleCli.GetVCParticipantQualityList(ctx, &lark.GetVCParticipantQualityListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - cli.Mock().MockVCGetVCResourceReservationList(func(ctx context.Context, request *lark.GetVCResourceReservationListReq, options ...lark.MethodOptionFunc) (*lark.GetVCResourceReservationListResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCGetVCResourceReservationList() - - _, _, err := moduleCli.GetVCResourceReservationList(ctx, &lark.GetVCResourceReservationListReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCReserve(ctx, &lark.UpdateVCReserveReq{ - ReserveID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteVCReserve(ctx, &lark.DeleteVCReserveReq{ - ReserveID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserve(ctx, &lark.GetVCReserveReq{ - ReserveID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserveActiveMeeting(ctx, &lark.GetVCReserveActiveMeetingReq{ - ReserveID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeeting(ctx, &lark.GetVCMeetingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListVCMeetingByNo(ctx, &lark.ListVCMeetingByNoReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.InviteVCMeeting(ctx, &lark.InviteVCMeetingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.KickoutVCMeeting(ctx, &lark.KickoutVCMeetingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetVCHostMeeting(ctx, &lark.SetVCHostMeetingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.EndVCMeeting(ctx, &lark.EndVCMeetingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.StartVCMeetingRecording(ctx, &lark.StartVCMeetingRecordingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.StopVCMeetingRecording(ctx, &lark.StopVCMeetingRecordingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingRecording(ctx, &lark.GetVCMeetingRecordingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetVCPermissionMeetingRecording(ctx, &lark.SetVCPermissionMeetingRecordingReq{ - MeetingID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCDailyReport(ctx, &lark.GetVCDailyReportReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCTopUserReport(ctx, &lark.GetVCTopUserReportReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCRoomList(ctx, &lark.GetVCRoomListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCRoom(ctx, &lark.GetVCRoomReq{ - RoomID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetVCRoom(ctx, &lark.BatchGetVCRoomReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCRoom(ctx, &lark.CreateVCRoomReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCRoom(ctx, &lark.UpdateVCRoomReq{ - RoomID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteVCRoom(ctx, &lark.DeleteVCRoomReq{ - RoomID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchVCRoom(ctx, &lark.SearchVCRoomReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCRoomLevelList(ctx, &lark.GetVCRoomLevelListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCRoomLevel(ctx, &lark.GetVCRoomLevelReq{ - RoomLevelID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetVCRoomLevel(ctx, &lark.BatchGetVCRoomLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCRoomLevel(ctx, &lark.CreateVCRoomLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCRoomLevel(ctx, &lark.UpdateVCRoomLevelReq{ - RoomLevelID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteVCRoomLevel(ctx, &lark.DeleteVCRoomLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchVCRoomLevel(ctx, &lark.SearchVCRoomLevelReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SetVCScopeConfig(ctx, &lark.SetVCScopeConfigReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCScopeConfig(ctx, &lark.GetVCScopeConfigReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserveConfig(ctx, &lark.GetVCReserveConfigReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCReserveConfig(ctx, &lark.UpdateVCReserveConfigReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserveConfigForm(ctx, &lark.GetVCReserveConfigFormReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCReserveConfigForm(ctx, &lark.UpdateVCReserveConfigFormReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserveConfigAdmin(ctx, &lark.GetVCReserveConfigAdminReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCReserveConfigAdmin(ctx, &lark.UpdateVCReserveConfigAdminReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCReserveConfigDisableInform(ctx, &lark.GetVCReserveConfigDisableInformReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateVCReserveConfigDisableInform(ctx, &lark.UpdateVCReserveConfigDisableInformReq{ - ReserveConfigID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ExportVCMeetingList(ctx, &lark.ExportVCMeetingListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ExportVCParticipantList(ctx, &lark.ExportVCParticipantListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ExportVCParticipantQualityList(ctx, &lark.ExportVCParticipantQualityListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ExportVCResourceReservationList(ctx, &lark.ExportVCResourceReservationListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCExportTask(ctx, &lark.GetVCExportTaskReq{ - TaskID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadVCExportFile(ctx, &lark.DownloadVCExportFileReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCAlertList(ctx, &lark.GetVCAlertListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingList(ctx, &lark.GetVCMeetingListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCParticipantList(ctx, &lark.GetVCParticipantListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCParticipantQualityList(ctx, &lark.GetVCParticipantQualityListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCResourceReservationList(ctx, &lark.GetVCResourceReservationListReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) }) } diff --git a/test/vcmeeting_sample_test.go b/test/vcmeeting_sample_test.go new file mode 100644 index 00000000..ec915224 --- /dev/null +++ b/test/vcmeeting_sample_test.go @@ -0,0 +1,328 @@ +// Code generated by lark_sdk_gen. DO NOT EDIT. +/** + * Copyright 2022 chyroc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package test + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/chyroc/lark" +) + +func Test_VCMeeting_Sample_Failed(t *testing.T) { + as := assert.New(t) + + t.Run("request failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) + cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) + moduleCli := cli.VCMeeting + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "failed") + }) + + }) + + t.Run("request mock failed", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.VCMeeting + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet() + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingCreateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomCreateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingDeleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete() + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingDelete(ctx, &lark.CreateVCMeetingDefaultBuildingDeleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomDeleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingListVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.ListVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultBuildingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultBuilding() + + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingListVCMeetingDefaultCountry(func(ctx context.Context, request *lark.ListVCMeetingDefaultCountryReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultCountryResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultCountry() + + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingListVCMeetingDefaultDistrict(func(ctx context.Context, request *lark.ListVCMeetingDefaultDistrictReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultDistrictResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultDistrict() + + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingListVCMeetingDefaultRoom(func(ctx context.Context, request *lark.ListVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultRoom() + + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingUpdateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomUpdateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.VCMeeting + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingDelete(ctx, &lark.CreateVCMeetingDefaultBuildingDeleteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + }) +} diff --git a/test/verification_sample_test.go b/test/verification_sample_test.go index d8826397..006bdb37 100644 --- a/test/verification_sample_test.go +++ b/test/verification_sample_test.go @@ -37,10 +37,12 @@ func Test_Verification_Sample_Failed(t *testing.T) { moduleCli := cli.Verification t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetVerification(ctx, &lark.GetVerificationReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) + }) t.Run("request mock failed", func(t *testing.T) { @@ -48,6 +50,7 @@ func Test_Verification_Sample_Failed(t *testing.T) { moduleCli := cli.Verification t.Run("", func(t *testing.T) { + cli.Mock().MockVerificationGetVerification(func(ctx context.Context, request *lark.GetVerificationReq, options ...lark.MethodOptionFunc) (*lark.GetVerificationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) @@ -57,6 +60,7 @@ func Test_Verification_Sample_Failed(t *testing.T) { as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -67,9 +71,11 @@ func Test_Verification_Sample_Failed(t *testing.T) { }) t.Run("", func(t *testing.T) { + _, _, err := moduleCli.GetVerification(ctx, &lark.GetVerificationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) + }) } From a1e3d4bdd7926e8a77567387836647e0e3b2b0ef Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 16:23:03 +0800 Subject: [PATCH 02/15] fix(ci): resolve generated compile breaks in helpdesk and event callback --- api_event_callback_module.go | 1042 ++++++++++++++++++- api_helpdesk_ticket_customized_field_get.go | 1 - 2 files changed, 1038 insertions(+), 5 deletions(-) diff --git a/api_event_callback_module.go b/api_event_callback_module.go index a35d0d11..09be2b58 100644 --- a/api_event_callback_module.go +++ b/api_event_callback_module.go @@ -27,7 +27,155 @@ import ( type EventType string const ( - EventTypeV1TripApproval EventType = "APPROVED" + EventTypeV2ElearningCourseRegistrationCreatedV2 EventType = "elearning.course_registration.created_v2" + EventTypeV2ElearningCourseRegistrationUpdatedV2 EventType = "elearning.course_registration.updated_v2" + EventTypeV2ElearningCourseRegistrationDeletedV2 EventType = "elearning.course_registration.deleted_v2" + EventTypeV2URLPreviewGet EventType = "url.preview.get" + EventTypeV2HireApplicationStageChangedV1 EventType = "hire.application.stage_changed_v1" + EventTypeV2HireApplicationDeletedV1 EventType = "hire.application.deleted_v1" + EventTypeV2CorehrJobCreatedV1 EventType = "corehr.job.created_v1" + EventTypeV2CorehrJobUpdatedV1 EventType = "corehr.job.updated_v1" + EventTypeV2CorehrJobDeletedV1 EventType = "corehr.job.deleted_v1" + EventTypeV2CorehrProcessUpdatedV2 EventType = "corehr.process.updated_v2" + EventTypeV2CorehrProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" + EventTypeV2CorehrProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" + EventTypeV2CorehrProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" + EventTypeV2ContactCustomAttrEventUpdatedV3 EventType = "contact.custom_attr_event.updated_v3" + EventTypeV2ApplicationApplicationCreatedV6 EventType = "application.application.created_v6" + EventTypeV1AppOpen EventType = "app_open" + EventTypeV1AppStatusChange EventType = "app_status_change" + EventTypeV1OrderPaid EventType = "order_paid" + EventTypeV1AppTicket EventType = "app_ticket" + EventTypeV1AppUninstalled EventType = "app_uninstalled" + EventTypeV2ApplicationApplicationVisibilityAddedV6 EventType = "application.application.visibility.added_v6" + EventTypeV2ApplicationApplicationAppVersionPublishApplyV6 EventType = "application.application.app_version.publish_apply_v6" + EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6 EventType = "application.application.app_version.publish_revoke_v6" + EventTypeV2ApplicationApplicationAppVersionAuditV6 EventType = "application.application.app_version.audit_v6" + EventTypeV1OutApproval EventType = "out_approval" + EventTypeV1RemedyApproval EventType = "approval.instance.remedy_group_update_v4" + EventTypeV1ShiftApproval EventType = "shift_approval" + EventTypeV1TripApproval EventType = "trip_approval" + EventTypeV1WorkApproval EventType = "work_approval" + EventTypeV1LeaveApprovalRevert EventType = "leave_approval_revert" + EventTypeV1LeaveApprovalV2 EventType = "leave_approval" + EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" + EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" + EventTypeV2DriveFileBitableRecordChangedV1 EventType = "drive.file.bitable_record_changed_v1" + EventTypeV2DriveFileTitleUpdatedV1 EventType = "drive.file.title_updated_v1" + EventTypeV2DriveFileReadV1 EventType = "drive.file.read_v1" + EventTypeV2DriveFileEditV1 EventType = "drive.file.edit_v1" + EventTypeV2DriveFilePermissionMemberAddedV1 EventType = "drive.file.permission_member_added_v1" + EventTypeV2DriveFilePermissionMemberRemovedV1 EventType = "drive.file.permission_member_removed_v1" + EventTypeV2DriveFileTrashedV1 EventType = "drive.file.trashed_v1" + EventTypeV2DriveFileDeletedV1 EventType = "drive.file.deleted_v1" + EventTypeV2ApprovalApprovalUpdatedV4 EventType = "approval.approval.updated_v4" + EventTypeV1ThirdPartyMeetingRoomEventUpdated EventType = "third_party_meeting_room_event_updated" + EventTypeV1ThirdPartyMeetingRoomEventDeleted EventType = "third_party_meeting_room_event_deleted" + EventTypeV2MeetingRoomMeetingRoomCreatedV1 EventType = "meeting_room.meeting_room.created_v1" + EventTypeV2MeetingRoomMeetingRoomUpdatedV1 EventType = "meeting_room.meeting_room.updated_v1" + EventTypeV2MeetingRoomMeetingRoomStatusChangedV1 EventType = "meeting_room.meeting_room.status_changed_v1" + EventTypeV2MeetingRoomMeetingRoomDeletedV1 EventType = "meeting_room.meeting_room.deleted_v1" + EventTypeV1ThirdPartyMeetingRoomEventCreated EventType = "third_party_meeting_room_event_created" + EventTypeV2ApplicationApplicationFeedbackCreatedV6 EventType = "application.application.feedback.created_v6" + EventTypeV2ApplicationApplicationFeedbackUpdatedV6 EventType = "application.application.feedback.updated_v6" + EventTypeV2TaskTaskUpdateTenantV1 EventType = "task.task.update_tenant_v1" + EventTypeV2TaskTaskUpdatedV1 EventType = "task.task.updated_v1" + EventTypeV2TaskTaskCommentUpdatedV1 EventType = "task.task.comment.updated_v1" + EventTypeV2HelpdeskTicketMessageCreatedV1 EventType = "helpdesk.ticket_message.created_v1" + EventTypeV2HelpdeskTicketCreatedV1 EventType = "helpdesk.ticket.created_v1" + EventTypeV2HelpdeskTicketUpdatedV1 EventType = "helpdesk.ticket.updated_v1" + EventTypeV2HelpdeskNotificationApproveV1 EventType = "helpdesk.notification.approve_v1" + EventTypeV2ContactDepartmentCreatedV3 EventType = "contact.department.created_v3" + EventTypeV2ContactDepartmentDeletedV3 EventType = "contact.department.deleted_v3" + EventTypeV2ContactDepartmentUpdatedV3 EventType = "contact.department.updated_v3" + EventTypeV2ContactUserUpdatedV3 EventType = "contact.user.updated_v3" + EventTypeV2ContactUserCreatedV3 EventType = "contact.user.created_v3" + EventTypeV2ContactUserDeletedV3 EventType = "contact.user.deleted_v3" + EventTypeV2ContactScopeUpdatedV3 EventType = "contact.scope.updated_v3" + EventTypeV2ContactEmployeeTypeEnumCreatedV3 EventType = "contact.employee_type_enum.created_v3" + EventTypeV2ContactEmployeeTypeEnumActivedV3 EventType = "contact.employee_type_enum.actived_v3" + EventTypeV2ContactEmployeeTypeEnumDeactivatedV3 EventType = "contact.employee_type_enum.deactivated_v3" + EventTypeV2ContactEmployeeTypeEnumUpdatedV3 EventType = "contact.employee_type_enum.updated_v3" + EventTypeV2ContactEmployeeTypeEnumDeletedV3 EventType = "contact.employee_type_enum.deleted_v3" + EventTypeV2IMMessageReceiveV1 EventType = "im.message.receive_v1" + EventTypeV2IMMessageReadV1 EventType = "im.message.message_read_v1" + EventTypeV2IMMessageReactionDeletedV1 EventType = "im.message.reaction.deleted_v1" + EventTypeV2IMMessageReactionCreatedV1 EventType = "im.message.reaction.created_v1" + EventTypeV2IMChatDisbandedV1 EventType = "im.chat.disbanded_v1" + EventTypeV2IMChatUpdatedV1 EventType = "im.chat.updated_v1" + EventTypeV2IMChatMemberBotAddedV1 EventType = "im.chat.member.bot.added_v1" + EventTypeV2IMChatMemberBotDeletedV1 EventType = "im.chat.member.bot.deleted_v1" + EventTypeV2IMChatMemberUserAddedV1 EventType = "im.chat.member.user.added_v1" + EventTypeV2IMChatMemberUserWithdrawnV1 EventType = "im.chat.member.user.withdrawn_v1" + EventTypeV2IMChatMemberUserDeletedV1 EventType = "im.chat.member.user.deleted_v1" + EventTypeV2VCMeetingMeetingStartedV1 EventType = "vc.meeting.meeting_started_v1" + EventTypeV2VCMeetingMeetingEndedV1 EventType = "vc.meeting.meeting_ended_v1" + EventTypeV2VCMeetingJoinMeetingV1 EventType = "vc.meeting.join_meeting_v1" + EventTypeV2VCMeetingLeaveMeetingV1 EventType = "vc.meeting.leave_meeting_v1" + EventTypeV2VCMeetingRecordingStartedV1 EventType = "vc.meeting.recording_started_v1" + EventTypeV2VCMeetingRecordingEndedV1 EventType = "vc.meeting.recording_ended_v1" + EventTypeV2VCMeetingRecordingReadyV1 EventType = "vc.meeting.recording_ready_v1" + EventTypeV2VCMeetingShareStartedV1 EventType = "vc.meeting.share_started_v1" + EventTypeV2VCMeetingShareEndedV1 EventType = "vc.meeting.share_ended_v1" + EventTypeV2ACSAccessRecordCreatedV1 EventType = "acs.access_record.created_v1" + EventTypeV2ACSUserUpdatedV1 EventType = "acs.user.updated_v1" + EventTypeV2CalendarCalendarACLCreatedV4 EventType = "calendar.calendar.acl.created_v4" + EventTypeV2CalendarCalendarACLDeletedV4 EventType = "calendar.calendar.acl.deleted_v4" + EventTypeV2CalendarCalendarEventChangedV4 EventType = "calendar.calendar.event.changed_v4" + EventTypeV2CalendarCalendarChangedV4 EventType = "calendar.calendar.changed_v4" + EventTypeV1AddBot EventType = "add_bot" + EventTypeV1RemoveBot EventType = "remove_bot" + EventTypeV1P2PChatCreate EventType = "p2p_chat_create" + EventTypeV1ReceiveMessage EventType = "message" + EventTypeV1AddUserToChat EventType = "add_user_to_chat" + EventTypeV1RemoveUserFromChat EventType = "remove_user_from_chat" + EventTypeV1RevokeAddUserFromChat EventType = "revoke_add_user_from_chat" + EventTypeV1ChatDisband EventType = "chat_disband" + EventTypeV1ApprovalInstance EventType = "approval_instance" + EventTypeV1ApprovalTask EventType = "approval_task" + EventTypeV1ApprovalCc EventType = "approval_cc" + EventTypeV2AttendanceUserTaskUpdatedV1 EventType = "attendance.user_task.updated_v1" + EventTypeV2AttendanceUserFlowCreatedV1 EventType = "attendance.user_flow.created_v1" + EventTypeV2IMMessageRecalledV1 EventType = "im.message.recalled_v1" + EventTypeV2VCRoomCreatedV1 EventType = "vc.room.created_v1" + EventTypeV2VCRoomDeletedV1 EventType = "vc.room.deleted_v1" + EventTypeV2VCRoomUpdatedV1 EventType = "vc.room.updated_v1" + EventTypeV2VCMeetingAllMeetingStartedV1 EventType = "vc.meeting.all_meeting_started_v1" + EventTypeV2VCMeetingAllMeetingEndedV1 EventType = "vc.meeting.all_meeting_ended_v1" + EventTypeV2VCRoomLevelCreatedV1 EventType = "vc.room_level.created_v1" + EventTypeV2VCRoomLevelDeletedV1 EventType = "vc.room_level.deleted_v1" + EventTypeV2VCRoomLevelUpdatedV1 EventType = "vc.room_level.updated_v1" + EventTypeV2VCReserveConfigUpdatedV1 EventType = "vc.reserve_config.updated_v1" + EventTypeV2ApplicationBotMenuV6 EventType = "application.bot.menu_v6" + EventTypeV2HireOfferStatusChangedV1 EventType = "hire.offer.status_changed_v1" + EventTypeV2CorehrEmploymentCreatedV1 EventType = "corehr.employment.created_v1" + EventTypeV2CorehrEmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" + EventTypeV2CorehrEmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" + EventTypeV2CorehrPersonCreatedV1 EventType = "corehr.person.created_v1" + EventTypeV2CorehrPersonUpdatedV1 EventType = "corehr.person.updated_v1" + EventTypeV2CorehrPersonDeletedV1 EventType = "corehr.person.deleted_v1" + EventTypeV2CorehrDepartmentCreatedV1 EventType = "corehr.department.created_v1" + EventTypeV2CorehrDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" + EventTypeV2CorehrDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" + EventTypeV2CorehrJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" + EventTypeV2CorehrContractCreatedV1 EventType = "corehr.contract.created_v1" + EventTypeV2CorehrEmploymentConvertedV1 EventType = "corehr.employment.converted_v1" + EventTypeV2CorehrJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" + EventTypeV2CorehrJobDataChangedV1 EventType = "corehr.job_data.changed_v1" + EventTypeV2CorehrOffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" + EventTypeV2CorehrEmploymentResignedV1 EventType = "corehr.employment.resigned_v1" + EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" + EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1 EventType = "hire.ehr_import_task_for_internship_offer.imported_v1" + EventTypeV2HireEHRImportTaskImportedV1 EventType = "hire.ehr_import_task.imported_v1" + EventTypeV2CorehrProbationUpdatedV2 EventType = "corehr.probation.updated_v2" + EventTypeV2CorehrPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" + EventTypeV2HireEcoAccountCreatedV1 EventType = "hire.eco_account.created_v1" + EventTypeV2HireEcoBackgroundCheckCreatedV1 EventType = "hire.eco_background_check.created_v1" + EventTypeV2HireEcoBackgroundCheckCanceledV1 EventType = "hire.eco_background_check.canceled_v1" + EventTypeV2HireEcoExamCreatedV1 EventType = "hire.eco_exam.created_v1" + EventTypeV2HireReferralAccountAssetsUpdateV1 EventType = "hire.referral_account.assets_update_v1" + EventTypeV2CorehrContractDeletedV1 EventType = "corehr.contract.deleted_v1" + EventTypeV2CorehrContractUpdatedV1 EventType = "corehr.contract.updated_v1" ) type eventHandler struct { @@ -508,6 +656,749 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { } switch req.Header.EventType { + case EventTypeV2ElearningCourseRegistrationCreatedV2: + event := new(EventV2ElearningCourseRegistrationCreatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ElearningCourseRegistrationCreatedV2 = event + case EventTypeV2ElearningCourseRegistrationUpdatedV2: + event := new(EventV2ElearningCourseRegistrationUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ElearningCourseRegistrationUpdatedV2 = event + case EventTypeV2ElearningCourseRegistrationDeletedV2: + event := new(EventV2ElearningCourseRegistrationDeletedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ElearningCourseRegistrationDeletedV2 = event + case EventTypeV2URLPreviewGet: + event := new(EventV2URLPreviewGet) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2URLPreviewGet = event + case EventTypeV2HireApplicationStageChangedV1: + event := new(EventV2HireApplicationStageChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireApplicationStageChangedV1 = event + case EventTypeV2HireApplicationDeletedV1: + event := new(EventV2HireApplicationDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireApplicationDeletedV1 = event + case EventTypeV2CorehrJobCreatedV1: + event := new(EventV2CorehrJobCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobCreatedV1 = event + case EventTypeV2CorehrJobUpdatedV1: + event := new(EventV2CorehrJobUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobUpdatedV1 = event + case EventTypeV2CorehrJobDeletedV1: + event := new(EventV2CorehrJobDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobDeletedV1 = event + case EventTypeV2CorehrProcessUpdatedV2: + event := new(EventV2CorehrProcessUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrProcessUpdatedV2 = event + case EventTypeV2CorehrProcessNodeUpdatedV2: + event := new(EventV2CorehrProcessNodeUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrProcessNodeUpdatedV2 = event + case EventTypeV2CorehrProcessApproverUpdatedV2: + event := new(EventV2CorehrProcessApproverUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrProcessApproverUpdatedV2 = event + case EventTypeV2CorehrProcessCcUpdatedV2: + event := new(EventV2CorehrProcessCcUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrProcessCcUpdatedV2 = event + case EventTypeV2ContactCustomAttrEventUpdatedV3: + event := new(EventV2ContactCustomAttrEventUpdatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactCustomAttrEventUpdatedV3 = event + case EventTypeV2ApplicationApplicationCreatedV6: + event := new(EventV2ApplicationApplicationCreatedV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationCreatedV6 = event + + case EventTypeV2ApplicationApplicationVisibilityAddedV6: + event := new(EventV2ApplicationApplicationVisibilityAddedV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationVisibilityAddedV6 = event + case EventTypeV2ApplicationApplicationAppVersionPublishApplyV6: + event := new(EventV2ApplicationApplicationAppVersionPublishApplyV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationAppVersionPublishApplyV6 = event + case EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6: + event := new(EventV2ApplicationApplicationAppVersionPublishRevokeV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationAppVersionPublishRevokeV6 = event + case EventTypeV2ApplicationApplicationAppVersionAuditV6: + event := new(EventV2ApplicationApplicationAppVersionAuditV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationAppVersionAuditV6 = event + + case EventTypeV2DriveFileCreatedInFolderV1: + event := new(EventV2DriveFileCreatedInFolderV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileCreatedInFolderV1 = event + case EventTypeV2DriveFileBitableFieldChangedV1: + event := new(EventV2DriveFileBitableFieldChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileBitableFieldChangedV1 = event + case EventTypeV2DriveFileBitableRecordChangedV1: + event := new(EventV2DriveFileBitableRecordChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileBitableRecordChangedV1 = event + case EventTypeV2DriveFileTitleUpdatedV1: + event := new(EventV2DriveFileTitleUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileTitleUpdatedV1 = event + case EventTypeV2DriveFileReadV1: + event := new(EventV2DriveFileReadV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileReadV1 = event + case EventTypeV2DriveFileEditV1: + event := new(EventV2DriveFileEditV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileEditV1 = event + case EventTypeV2DriveFilePermissionMemberAddedV1: + event := new(EventV2DriveFilePermissionMemberAddedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFilePermissionMemberAddedV1 = event + case EventTypeV2DriveFilePermissionMemberRemovedV1: + event := new(EventV2DriveFilePermissionMemberRemovedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFilePermissionMemberRemovedV1 = event + case EventTypeV2DriveFileTrashedV1: + event := new(EventV2DriveFileTrashedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileTrashedV1 = event + case EventTypeV2DriveFileDeletedV1: + event := new(EventV2DriveFileDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2DriveFileDeletedV1 = event + case EventTypeV2ApprovalApprovalUpdatedV4: + event := new(EventV2ApprovalApprovalUpdatedV4) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApprovalApprovalUpdatedV4 = event + + case EventTypeV2MeetingRoomMeetingRoomCreatedV1: + event := new(EventV2MeetingRoomMeetingRoomCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2MeetingRoomMeetingRoomCreatedV1 = event + case EventTypeV2MeetingRoomMeetingRoomUpdatedV1: + event := new(EventV2MeetingRoomMeetingRoomUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2MeetingRoomMeetingRoomUpdatedV1 = event + case EventTypeV2MeetingRoomMeetingRoomStatusChangedV1: + event := new(EventV2MeetingRoomMeetingRoomStatusChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2MeetingRoomMeetingRoomStatusChangedV1 = event + case EventTypeV2MeetingRoomMeetingRoomDeletedV1: + event := new(EventV2MeetingRoomMeetingRoomDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2MeetingRoomMeetingRoomDeletedV1 = event + + case EventTypeV2ApplicationApplicationFeedbackCreatedV6: + event := new(EventV2ApplicationApplicationFeedbackCreatedV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationFeedbackCreatedV6 = event + case EventTypeV2ApplicationApplicationFeedbackUpdatedV6: + event := new(EventV2ApplicationApplicationFeedbackUpdatedV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationApplicationFeedbackUpdatedV6 = event + case EventTypeV2TaskTaskUpdateTenantV1: + event := new(EventV2TaskTaskUpdateTenantV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2TaskTaskUpdateTenantV1 = event + case EventTypeV2TaskTaskUpdatedV1: + event := new(EventV2TaskTaskUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2TaskTaskUpdatedV1 = event + case EventTypeV2TaskTaskCommentUpdatedV1: + event := new(EventV2TaskTaskCommentUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2TaskTaskCommentUpdatedV1 = event + case EventTypeV2HelpdeskTicketMessageCreatedV1: + event := new(EventV2HelpdeskTicketMessageCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HelpdeskTicketMessageCreatedV1 = event + case EventTypeV2HelpdeskTicketCreatedV1: + event := new(EventV2HelpdeskTicketCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HelpdeskTicketCreatedV1 = event + case EventTypeV2HelpdeskTicketUpdatedV1: + event := new(EventV2HelpdeskTicketUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HelpdeskTicketUpdatedV1 = event + case EventTypeV2HelpdeskNotificationApproveV1: + event := new(EventV2HelpdeskNotificationApproveV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HelpdeskNotificationApproveV1 = event + case EventTypeV2ContactDepartmentCreatedV3: + event := new(EventV2ContactDepartmentCreatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactDepartmentCreatedV3 = event + case EventTypeV2ContactDepartmentDeletedV3: + event := new(EventV2ContactDepartmentDeletedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactDepartmentDeletedV3 = event + case EventTypeV2ContactDepartmentUpdatedV3: + event := new(EventV2ContactDepartmentUpdatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactDepartmentUpdatedV3 = event + case EventTypeV2ContactUserUpdatedV3: + event := new(EventV2ContactUserUpdatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactUserUpdatedV3 = event + case EventTypeV2ContactUserCreatedV3: + event := new(EventV2ContactUserCreatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactUserCreatedV3 = event + case EventTypeV2ContactUserDeletedV3: + event := new(EventV2ContactUserDeletedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactUserDeletedV3 = event + case EventTypeV2ContactScopeUpdatedV3: + event := new(EventV2ContactScopeUpdatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactScopeUpdatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumCreatedV3: + event := new(EventV2ContactEmployeeTypeEnumCreatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactEmployeeTypeEnumCreatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumActivedV3: + event := new(EventV2ContactEmployeeTypeEnumActivedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactEmployeeTypeEnumActivedV3 = event + case EventTypeV2ContactEmployeeTypeEnumDeactivatedV3: + event := new(EventV2ContactEmployeeTypeEnumDeactivatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactEmployeeTypeEnumDeactivatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumUpdatedV3: + event := new(EventV2ContactEmployeeTypeEnumUpdatedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactEmployeeTypeEnumUpdatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumDeletedV3: + event := new(EventV2ContactEmployeeTypeEnumDeletedV3) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ContactEmployeeTypeEnumDeletedV3 = event + case EventTypeV2IMMessageReceiveV1: + event := new(EventV2IMMessageReceiveV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMMessageReceiveV1 = event + case EventTypeV2IMMessageReadV1: + event := new(EventV2IMMessageReadV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMMessageReadV1 = event + case EventTypeV2IMMessageReactionDeletedV1: + event := new(EventV2IMMessageReactionDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMMessageReactionDeletedV1 = event + case EventTypeV2IMMessageReactionCreatedV1: + event := new(EventV2IMMessageReactionCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMMessageReactionCreatedV1 = event + case EventTypeV2IMChatDisbandedV1: + event := new(EventV2IMChatDisbandedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatDisbandedV1 = event + case EventTypeV2IMChatUpdatedV1: + event := new(EventV2IMChatUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatUpdatedV1 = event + case EventTypeV2IMChatMemberBotAddedV1: + event := new(EventV2IMChatMemberBotAddedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatMemberBotAddedV1 = event + case EventTypeV2IMChatMemberBotDeletedV1: + event := new(EventV2IMChatMemberBotDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatMemberBotDeletedV1 = event + case EventTypeV2IMChatMemberUserAddedV1: + event := new(EventV2IMChatMemberUserAddedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatMemberUserAddedV1 = event + case EventTypeV2IMChatMemberUserWithdrawnV1: + event := new(EventV2IMChatMemberUserWithdrawnV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatMemberUserWithdrawnV1 = event + case EventTypeV2IMChatMemberUserDeletedV1: + event := new(EventV2IMChatMemberUserDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMChatMemberUserDeletedV1 = event + case EventTypeV2VCMeetingMeetingStartedV1: + event := new(EventV2VCMeetingMeetingStartedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingMeetingStartedV1 = event + case EventTypeV2VCMeetingMeetingEndedV1: + event := new(EventV2VCMeetingMeetingEndedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingMeetingEndedV1 = event + case EventTypeV2VCMeetingJoinMeetingV1: + event := new(EventV2VCMeetingJoinMeetingV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingJoinMeetingV1 = event + case EventTypeV2VCMeetingLeaveMeetingV1: + event := new(EventV2VCMeetingLeaveMeetingV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingLeaveMeetingV1 = event + case EventTypeV2VCMeetingRecordingStartedV1: + event := new(EventV2VCMeetingRecordingStartedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingRecordingStartedV1 = event + case EventTypeV2VCMeetingRecordingEndedV1: + event := new(EventV2VCMeetingRecordingEndedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingRecordingEndedV1 = event + case EventTypeV2VCMeetingRecordingReadyV1: + event := new(EventV2VCMeetingRecordingReadyV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingRecordingReadyV1 = event + case EventTypeV2VCMeetingShareStartedV1: + event := new(EventV2VCMeetingShareStartedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingShareStartedV1 = event + case EventTypeV2VCMeetingShareEndedV1: + event := new(EventV2VCMeetingShareEndedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingShareEndedV1 = event + case EventTypeV2ACSAccessRecordCreatedV1: + event := new(EventV2ACSAccessRecordCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ACSAccessRecordCreatedV1 = event + case EventTypeV2ACSUserUpdatedV1: + event := new(EventV2ACSUserUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ACSUserUpdatedV1 = event + case EventTypeV2CalendarCalendarACLCreatedV4: + event := new(EventV2CalendarCalendarACLCreatedV4) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CalendarCalendarACLCreatedV4 = event + case EventTypeV2CalendarCalendarACLDeletedV4: + event := new(EventV2CalendarCalendarACLDeletedV4) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CalendarCalendarACLDeletedV4 = event + case EventTypeV2CalendarCalendarEventChangedV4: + event := new(EventV2CalendarCalendarEventChangedV4) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CalendarCalendarEventChangedV4 = event + case EventTypeV2CalendarCalendarChangedV4: + event := new(EventV2CalendarCalendarChangedV4) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CalendarCalendarChangedV4 = event + + case EventTypeV2AttendanceUserTaskUpdatedV1: + event := new(EventV2AttendanceUserTaskUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2AttendanceUserTaskUpdatedV1 = event + case EventTypeV2AttendanceUserFlowCreatedV1: + event := new(EventV2AttendanceUserFlowCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2AttendanceUserFlowCreatedV1 = event + case EventTypeV2IMMessageRecalledV1: + event := new(EventV2IMMessageRecalledV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2IMMessageRecalledV1 = event + case EventTypeV2VCRoomCreatedV1: + event := new(EventV2VCRoomCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomCreatedV1 = event + case EventTypeV2VCRoomDeletedV1: + event := new(EventV2VCRoomDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomDeletedV1 = event + case EventTypeV2VCRoomUpdatedV1: + event := new(EventV2VCRoomUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomUpdatedV1 = event + case EventTypeV2VCMeetingAllMeetingStartedV1: + event := new(EventV2VCMeetingAllMeetingStartedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingAllMeetingStartedV1 = event + case EventTypeV2VCMeetingAllMeetingEndedV1: + event := new(EventV2VCMeetingAllMeetingEndedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCMeetingAllMeetingEndedV1 = event + case EventTypeV2VCRoomLevelCreatedV1: + event := new(EventV2VCRoomLevelCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomLevelCreatedV1 = event + case EventTypeV2VCRoomLevelDeletedV1: + event := new(EventV2VCRoomLevelDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomLevelDeletedV1 = event + case EventTypeV2VCRoomLevelUpdatedV1: + event := new(EventV2VCRoomLevelUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCRoomLevelUpdatedV1 = event + case EventTypeV2VCReserveConfigUpdatedV1: + event := new(EventV2VCReserveConfigUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2VCReserveConfigUpdatedV1 = event + case EventTypeV2ApplicationBotMenuV6: + event := new(EventV2ApplicationBotMenuV6) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2ApplicationBotMenuV6 = event + case EventTypeV2HireOfferStatusChangedV1: + event := new(EventV2HireOfferStatusChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireOfferStatusChangedV1 = event + case EventTypeV2CorehrEmploymentCreatedV1: + event := new(EventV2CorehrEmploymentCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrEmploymentCreatedV1 = event + case EventTypeV2CorehrEmploymentUpdatedV1: + event := new(EventV2CorehrEmploymentUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrEmploymentUpdatedV1 = event + case EventTypeV2CorehrEmploymentDeletedV1: + event := new(EventV2CorehrEmploymentDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrEmploymentDeletedV1 = event + case EventTypeV2CorehrPersonCreatedV1: + event := new(EventV2CorehrPersonCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrPersonCreatedV1 = event + case EventTypeV2CorehrPersonUpdatedV1: + event := new(EventV2CorehrPersonUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrPersonUpdatedV1 = event + case EventTypeV2CorehrPersonDeletedV1: + event := new(EventV2CorehrPersonDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrPersonDeletedV1 = event + case EventTypeV2CorehrDepartmentCreatedV1: + event := new(EventV2CorehrDepartmentCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrDepartmentCreatedV1 = event + case EventTypeV2CorehrDepartmentUpdatedV1: + event := new(EventV2CorehrDepartmentUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrDepartmentUpdatedV1 = event + case EventTypeV2CorehrDepartmentDeletedV1: + event := new(EventV2CorehrDepartmentDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrDepartmentDeletedV1 = event + case EventTypeV2CorehrJobDataEmployedV1: + event := new(EventV2CorehrJobDataEmployedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobDataEmployedV1 = event + case EventTypeV2CorehrContractCreatedV1: + event := new(EventV2CorehrContractCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrContractCreatedV1 = event + case EventTypeV2CorehrEmploymentConvertedV1: + event := new(EventV2CorehrEmploymentConvertedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrEmploymentConvertedV1 = event + case EventTypeV2CorehrJobChangeUpdatedV1: + event := new(EventV2CorehrJobChangeUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobChangeUpdatedV1 = event + case EventTypeV2CorehrJobDataChangedV1: + event := new(EventV2CorehrJobDataChangedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrJobDataChangedV1 = event + case EventTypeV2CorehrOffboardingUpdatedV1: + event := new(EventV2CorehrOffboardingUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrOffboardingUpdatedV1 = event + case EventTypeV2CorehrEmploymentResignedV1: + event := new(EventV2CorehrEmploymentResignedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrEmploymentResignedV1 = event + case EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1: + event := new(EventV2CorehrOrgRoleAuthorizationUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrOrgRoleAuthorizationUpdatedV1 = event + case EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1: + event := new(EventV2HireEHRImportTaskForInternshipOfferImportedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEHRImportTaskForInternshipOfferImportedV1 = event + case EventTypeV2HireEHRImportTaskImportedV1: + event := new(EventV2HireEHRImportTaskImportedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEHRImportTaskImportedV1 = event + case EventTypeV2CorehrProbationUpdatedV2: + event := new(EventV2CorehrProbationUpdatedV2) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrProbationUpdatedV2 = event + case EventTypeV2CorehrPreHireUpdatedV1: + event := new(EventV2CorehrPreHireUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrPreHireUpdatedV1 = event + case EventTypeV2HireEcoAccountCreatedV1: + event := new(EventV2HireEcoAccountCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEcoAccountCreatedV1 = event + case EventTypeV2HireEcoBackgroundCheckCreatedV1: + event := new(EventV2HireEcoBackgroundCheckCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEcoBackgroundCheckCreatedV1 = event + case EventTypeV2HireEcoBackgroundCheckCanceledV1: + event := new(EventV2HireEcoBackgroundCheckCanceledV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEcoBackgroundCheckCanceledV1 = event + case EventTypeV2HireEcoExamCreatedV1: + event := new(EventV2HireEcoExamCreatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireEcoExamCreatedV1 = event + case EventTypeV2HireReferralAccountAssetsUpdateV1: + event := new(EventV2HireReferralAccountAssetsUpdateV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2HireReferralAccountAssetsUpdateV1 = event + case EventTypeV2CorehrContractDeletedV1: + event := new(EventV2CorehrContractDeletedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrContractDeletedV1 = event + case EventTypeV2CorehrContractUpdatedV1: + event := new(EventV2CorehrContractUpdatedV1) + if err := req.unmarshalEvent(event); err != nil { + return err + } + req.eventV2CorehrContractUpdatedV1 = event } @@ -531,12 +1422,155 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { } switch v1type.Type { - case EventTypeV1TripApproval: - event := new(EventV1TripApproval) + + case EventTypeV1AppOpen: + event := new(EventV1AppOpen) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AppOpen = event + case EventTypeV1AppStatusChange: + event := new(EventV1AppStatusChange) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AppStatusChange = event + case EventTypeV1OrderPaid: + event := new(EventV1OrderPaid) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1OrderPaid = event + case EventTypeV1AppTicket: + event := new(EventV1AppTicket) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AppTicket = event + case EventTypeV1AppUninstalled: + event := new(EventV1AppUninstalled) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AppUninstalled = event + + case EventTypeV1OutApproval: + event := new(EventV1OutApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1OutApproval = event + case EventTypeV1RemedyApproval: + event := new(EventV1RemedyApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1RemedyApproval = event + case EventTypeV1ShiftApproval: + event := new(EventV1ShiftApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ShiftApproval = event + case EventTypeV1WorkApproval: + event := new(EventV1WorkApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1WorkApproval = event + case EventTypeV1LeaveApprovalV2: + event := new(EventV1LeaveApprovalV2) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1LeaveApprovalV2 = event + + case EventTypeV1ThirdPartyMeetingRoomEventUpdated: + event := new(EventV1ThirdPartyMeetingRoomEventUpdated) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ThirdPartyMeetingRoomEventUpdated = event + case EventTypeV1ThirdPartyMeetingRoomEventDeleted: + event := new(EventV1ThirdPartyMeetingRoomEventDeleted) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ThirdPartyMeetingRoomEventDeleted = event + + case EventTypeV1ThirdPartyMeetingRoomEventCreated: + event := new(EventV1ThirdPartyMeetingRoomEventCreated) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ThirdPartyMeetingRoomEventCreated = event + + case EventTypeV1AddBot: + event := new(EventV1AddBot) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AddBot = event + case EventTypeV1RemoveBot: + event := new(EventV1RemoveBot) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1RemoveBot = event + case EventTypeV1P2PChatCreate: + event := new(EventV1P2PChatCreate) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1P2PChatCreate = event + case EventTypeV1ReceiveMessage: + event := new(EventV1ReceiveMessage) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ReceiveMessage = event + case EventTypeV1AddUserToChat: + event := new(EventV1AddUserToChat) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AddUserToChat = event + case EventTypeV1RemoveUserFromChat: + event := new(EventV1RemoveUserFromChat) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1RemoveUserFromChat = event + case EventTypeV1RevokeAddUserFromChat: + event := new(EventV1RevokeAddUserFromChat) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1RevokeAddUserFromChat = event + case EventTypeV1ChatDisband: + event := new(EventV1ChatDisband) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ChatDisband = event + case EventTypeV1ApprovalInstance: + event := new(EventV1ApprovalInstance) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ApprovalInstance = event + case EventTypeV1ApprovalTask: + event := new(EventV1ApprovalTask) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1ApprovalTask = event + case EventTypeV1ApprovalCc: + event := new(EventV1ApprovalCc) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1TripApproval = event + req.eventV1ApprovalCc = event } diff --git a/api_helpdesk_ticket_customized_field_get.go b/api_helpdesk_ticket_customized_field_get.go index b54f77d9..69fee128 100644 --- a/api_helpdesk_ticket_customized_field_get.go +++ b/api_helpdesk_ticket_customized_field_get.go @@ -93,7 +93,6 @@ type GetHelpdeskTicketCustomizedFieldRespDropdownOption struct { Children []interface{} `json:"children,omitempty"` // 选项列表 Tag string `json:"tag,omitempty"` // 选项ID DisplayName string `json:"display_name,omitempty"` // 展示名称 - Children []interface{} `json:"children,omitempty"` // 同上: 选项列表, 只适用于多层下拉列表(最多可以设置三级下拉列表) } // GetHelpdeskTicketCustomizedFieldRespUpdatedBy ... From 5655770a58069908f7a0605c25370d9409dfb924 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 16:30:28 +0800 Subject: [PATCH 03/15] chore(api): sync pending generated updates to PR branch --- README.md | 2361 ++++---- README_CN.md | 2361 ++++---- ...alendar_meeting_room_freebusy_batch_get.go | 41 +- api_calendar_meeting_room_instance_reply.go | 21 +- ...calendar_meeting_room_summary_batch_get.go | 44 +- api_corehr_bank_branch_search.go | 42 +- api_corehr_bank_search.go | 32 +- api_corehr_bp_by_employee_get_batch.go | 20 +- api_corehr_job_family_get_batch.go | 44 +- api_corehr_nationality_search.go | 34 +- api_drive_spreadsheet_create.go | 26 +- api_mail_user_mailbox_event_subscribe.go | 5 +- api_mail_user_mailbox_event_subscription.go | 5 +- api_mail_user_mailbox_event_unsubscribe.go | 16 +- api_mail_user_mailbox_folder_create.go | 9 +- api_mail_user_mailbox_folder_delete.go | 8 +- api_mail_user_mailbox_folder_list.go | 5 +- api_mail_user_mailbox_folder_update.go | 9 +- api_mail_user_mailbox_mail_contact_create.go | 11 +- api_mail_user_mailbox_mail_contact_delete.go | 9 +- api_mail_user_mailbox_mail_contact_list.go | 9 +- api_mail_user_mailbox_mail_contact_update.go | 11 +- api_mail_user_mailbox_message_get.go | 15 +- api_mail_user_mailbox_message_list.go | 9 +- api_mail_user_mailbox_message_send.go | 13 +- api_mail_user_mailbox_rule_create.go | 11 +- api_mail_user_mailbox_rule_delete.go | 7 +- api_mail_user_mailbox_rule_list.go | 7 +- api_mail_user_mailbox_rule_reorder.go | 10 +- api_mail_user_mailbox_rule_update.go | 11 +- api_vc_meeting_default_building_batch_get.go | 10 +- ...c_meeting_default_building_batch_get_id.go | 10 +- api_vc_meeting_default_building_create.go | 10 +- api_vc_meeting_default_building_delete.go | 10 +- api_vc_meeting_default_building_list.go | 10 +- api_vc_meeting_default_building_update.go | 10 +- api_vc_meeting_default_country_list.go | 10 +- api_vc_meeting_default_district_list.go | 10 +- api_vc_meeting_default_room_batch_get.go | 10 +- api_vc_meeting_default_room_batch_get_id.go | 10 +- api_vc_meeting_default_room_create.go | 10 +- api_vc_meeting_default_room_delete.go | 10 +- api_vc_meeting_default_room_list.go | 10 +- api_vc_meeting_default_room_update.go | 10 +- api_vc_room_config_query.go | 77 +- mock.go | 1838 +++--- test/calendar_sample_test.go | 954 ++- test/corehr_sample_test.go | 5170 ++++++++++++++++- test/drive_sample_test.go | 3602 +++++++++++- test/lingo_sample_test.go | 286 +- test/mail_sample_test.go | 1219 +++- test/message_sample_test.go | 822 ++- test/okr_sample_test.go | 351 +- test/report_sample_test.go | 33 +- test/task_sample_test.go | 1319 ++++- test/taskv1_sample_test.go | 30 +- test/vc_sample_test.go | 1119 +++- test/vcmeeting_sample_test.go | 98 +- 58 files changed, 18236 insertions(+), 4028 deletions(-) diff --git a/README.md b/README.md index 0c6726bd..85a81e2a 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## Support APIs -API Count: 1621, Event Count: 153 +API Count: 1622, Event Count: 153
@@ -46,346 +46,346 @@ API Count: 1621, Event Count: 153 - ACS - - CreateACSRuleExternal - - CreateACSVisitor - - DeleteACSRuleExternal - DeleteACSVisitor + - CreateACSVisitor - DeviceBindACSRuleExternal - - GetACSAccessRecordList - - GetACSAccessRecordPhoto - - GetACSDeviceList - GetACSRuleExternal + - DeleteACSRuleExternal + - CreateACSRuleExternal + - UpdateACSUser - GetACSUser - - GetACSUserFace - GetACSUserList - - UpdateACSUser - UpdateACSUserFace + - GetACSUserFace + - GetACSDeviceList + - GetACSAccessRecordList + - GetACSAccessRecordPhoto - AI - - DetectFaceAttributes - - DetectTextLanguage - - ExtractAIContractField - ParseAIResume - - RecognizeAIBankCard - - RecognizeAIBusinessCard - - RecognizeAIBusinessLicense - - RecognizeAIChinesePassport - - RecognizeAIDrivingLicense - - RecognizeAIFoodManageLicense - - RecognizeAIFoodProduceLicense + - RecognizeAIVehicleInvoice - RecognizeAIHealthCertificate - RecognizeAIHkmMainlandTravelPermit - - RecognizeAITaxiInvoice - - RecognizeAITrainInvoice - RecognizeAITwMainlandTravelPermit - - RecognizeAIVatInvoice - - RecognizeAIVehicleInvoice + - RecognizeAIChinesePassport + - RecognizeAIBankCard - RecognizeAIVehicleLicense + - RecognizeAITrainInvoice + - RecognizeAITaxiInvoice - RecognizeAiidCard + - RecognizeAIFoodProduceLicense + - RecognizeAIFoodManageLicense + - RecognizeAIDrivingLicense + - RecognizeAIVatInvoice + - RecognizeAIBusinessLicense + - ExtractAIContractField + - RecognizeAIBusinessCard - RecognizeBasicImage - - RecognizeSpeechFile - RecognizeSpeechStream + - RecognizeSpeechFile - TranslateText + - DetectTextLanguage + - DetectFaceAttributes - APaaS - - AddAPaaSApprovalTaskAssignee - - AgreeAPaaSApprovalTask + - ListAPaaSApp + - ListAPaaSApplicationAuditLogAuditLog + - GetAPaaSApplicationAuditLogDataChangeLogDetail + - ListAPaaSApplicationAuditLogDataChangeLogs + - GetAPaaSApplicationAuditLog + - GetAPaaSApplicationEnvironmentVariable + - QueryAPaaSApplicationEnvironmentVariable + - CreateAPaaSApplicationFlowExecute + - CreateAPaaSApplicationFunctionInvoke - BatchCreateAPaaSApplicationObjectRecord - - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization - - BatchCreateAPaaSApplicationRoleMemberAuthorization - BatchDeleteAPaaSApplicationObjectRecord - BatchQueryAPaaSApplicationObjectRecord - - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization - - BatchRemoveAPaaSApplicationRoleMemberAuthorization - BatchUpdateAPaaSApplicationObjectRecord - - CreateAPaaSApplicationFlowExecute - - CreateAPaaSApplicationFunctionInvoke - - CreateAPaaSApplicationObjectOqlQuery - CreateAPaaSApplicationObjectRecord + - DeleteAPaaSApplicationObjectRecord + - UpdateAPaaSApplicationObjectRecord + - QueryAPaaSApplicationObjectRecord + - CreateAPaaSApplicationObjectOqlQuery + - SearchAPaaSApplicationObject + - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization + - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization + - BatchCreateAPaaSApplicationRoleMemberAuthorization + - BatchRemoveAPaaSApplicationRoleMemberAuthorization + - GetAPaaSApplicationRoleMember - CreateAPaaSApprovalInstanceCancel + - AddAPaaSApprovalTaskAssignee + - AgreeAPaaSApprovalTask + - RejectAPaaSApprovalTask + - TransferAPaaSApprovalTask + - ListAPaaSSeatActivity + - ListAPaaSSeatAssignment - CreateAPaaSUserTaskCc - CreateAPaaSUserTaskChatGroup - CreateAPaaSUserTaskExpediting + - QueryAPaaSUserTask - CreateAPaaSUserTaskRollback - CreateAPaaSUserTaskRollbackPoints - - CreateAPaaSWorkspaceSqlCommands - - CreateAPaaSWorkspaceTableRecordsPost - - DeleteAPaaSApplicationObjectRecord - - DeleteAPaaSWorkspaceTableRecordsDelete - - GetAPaaSApplicationAuditLog - - GetAPaaSApplicationAuditLogDataChangeLogDetail - - GetAPaaSApplicationEnvironmentVariable - - GetAPaaSApplicationRoleMember - GetAPaaSWorkspaceEnumGet - - GetAPaaSWorkspaceTableGet - - GetAPaaSWorkspaceTableRecordsGet - - GetAPaaSWorkspaceViewViewsGet - - ListAPaaSApp - - ListAPaaSApplicationAuditLogAuditLog - - ListAPaaSApplicationAuditLogDataChangeLogs - - ListAPaaSSeatActivity - - ListAPaaSSeatAssignment - ListAPaaSWorkspaceEnum - ListAPaaSWorkspaceTable - - QueryAPaaSApplicationEnvironmentVariable - - QueryAPaaSApplicationObjectRecord - - QueryAPaaSUserTask - - RejectAPaaSApprovalTask - - SearchAPaaSApplicationObject - - TransferAPaaSApprovalTask - - UpdateAPaaSApplicationObjectRecord - UpdateAPaaSWorkspaceTableRecordsBatchUpdate + - DeleteAPaaSWorkspaceTableRecordsDelete + - GetAPaaSWorkspaceTableRecordsGet - UpdateAPaaSWorkspaceTableRecordsPatch + - CreateAPaaSWorkspaceTableRecordsPost + - GetAPaaSWorkspaceTableGet + - GetAPaaSWorkspaceViewViewsGet + - CreateAPaaSWorkspaceSqlCommands - Admin - AdminResetPassword - - CreateAdminBadge - - CreateAdminBadgeGrant - - DeleteAdminBadgeGrant - - GetAdminBadge - - GetAdminBadgeGrant - - GetAdminBadgeGrantList - - GetAdminBadgeList - GetAdminDeptStats - GetAdminUserStats + - UploadAdminBadgeImage + - CreateAdminBadge - UpdateAdminBadge + - GetAdminBadgeList + - GetAdminBadge + - CreateAdminBadgeGrant - UpdateAdminBadgeGrant - - UploadAdminBadgeImage + - GetAdminBadgeGrantList + - GetAdminBadgeGrant + - DeleteAdminBadgeGrant - Aily - - CreateAilyAppDataAsset - - CreateAilyAppKnowledgeAsk - - CreateAilyAppSkillStart - - CreateAilySession - CreateAilySessionAilyMessage - - CreateAilySessionRun + - GetAilySessionAilyMessage + - ListAilySessionAilyMessage - CreateAilySessionRunCancel - - DeleteAilyAppDataAsset + - CreateAilySessionRun + - GetAilySessionRun + - ListAilySessionRun + - CreateAilySession - DeleteAilySession - - GetAilyAppDataAsset - - GetAilyAppSkill - GetAilySession - - GetAilySessionAilyMessage - - GetAilySessionRun + - UpdateAilySession + - CreateAilyAppDataAsset + - DeleteAilyAppDataAsset + - GetAilyAppDataAsset - ListAilyAppDataAsset + - UploadAilyAppDataAssetFile - ListAilyAppDataAssetTag + - CreateAilyAppKnowledgeAsk + - GetAilyAppSkill - ListAilyAppSkill - - ListAilySessionAilyMessage - - ListAilySessionRun - - UpdateAilySession - - UploadAilyAppDataAssetFile + - CreateAilyAppSkillStart - AppLink - - OpenBot + - OpenNativeApp + - OpenLark + - OpenScan + - OpenWorkbench + - OpenMiniProgram + - OpenWebApp + - OpenChat - OpenCalender - - OpenCalenderAccount - - OpenCalenderEventCreate - OpenCalenderView - - OpenChat + - OpenCalenderEventCreate + - OpenCalenderAccount - OpenDocs - - OpenLark - - OpenMiniProgram - - OpenNativeApp + - OpenBot - OpenSSOLogin - - OpenScan + - OpenWebURL - OpenTask - OpenTaskCreate - OpenTaskDetail - OpenTaskTab - - OpenWebApp - - OpenWebURL - - OpenWorkbench - Application - - CheckApplicationVisibleWhiteBlackList - - CheckUserIsInApplicationPaidScope - - CreateApplicationAppUsageMessagePushOverview - - CreateApplicationScopeApply - - GetApplication - - GetApplicationAppAdminUserList - - GetApplicationAppList - - GetApplicationAppVisibility - - GetApplicationCollaborators - - GetApplicationContactsRangeConfiguration + - SearchApplicationWorkplaceAccessData + - SearchApplicationCustomWorkplaceAccessData + - SearchApplicationWorkplaceBlockAccessData - GetApplicationFavourite - - GetApplicationFeedbackList - - GetApplicationOrder - - GetApplicationOrderList - GetApplicationRecommend - GetApplicationRecommendRuleList - - GetApplicationUnderAuditList - - GetApplicationUsageDepartmentOverview - - GetApplicationUsageOverview - - GetApplicationUsageTrend + - IsApplicationUserAdmin - GetApplicationUserAdminScope + - GetApplicationAppVisibility + - GetApplicationContactsRangeConfiguration + - UpdateApplicationContactsRangeConfiguration - GetApplicationUserVisibleApp + - CheckApplicationVisibleWhiteBlackList + - GetApplicationAppList + - UpdateApplicationAppVisibility + - UpdateApplicationAppVisibilityV6 + - UpdateApplicationAppManagement + - GetApplicationAppAdminUserList + - CheckUserIsInApplicationPaidScope + - GetApplicationOrderList + - GetApplicationOrder + - GetApplicationUnderAuditList + - GetApplication - GetApplicationVersion - - GetApplicationVersionContactsRangeSuggest - GetApplicationVersionList - - IsApplicationUserAdmin - - ListApplication - - ListApplicationScope - - SearchApplicationCustomWorkplaceAccessData - - SearchApplicationWorkplaceAccessData - - SearchApplicationWorkplaceBlockAccessData - - SetApplicationAppBadge + - GetApplicationVersionContactsRangeSuggest + - UpdateApplicationVersion - UpdateApplication - - UpdateApplicationAppManagement - - UpdateApplicationAppVisibility - - UpdateApplicationAppVisibilityV6 - - UpdateApplicationCollaborators - - UpdateApplicationContactsRangeConfiguration + - GetApplicationUsageDepartmentOverview + - GetApplicationUsageOverview + - GetApplicationUsageTrend - UpdateApplicationFeedback + - GetApplicationFeedbackList + - SetApplicationAppBadge + - CreateApplicationAppUsageMessagePushOverview + - GetApplicationCollaborators + - UpdateApplicationCollaborators - UpdateApplicationOwner - - UpdateApplicationVersion + - ListApplication + - CreateApplicationScopeApply + - ListApplicationScope - Approval - - AddApprovalInstanceSign - - ApproveApprovalInstance - - CancelApprovalInstance - - CheckApprovalExternalInstance - CreateApproval - - CreateApprovalCarbonCopy - - CreateApprovalComment - - CreateApprovalExternalApproval - - CreateApprovalExternalInstance - - CreateApprovalInstance - - DeleteApprovalComment - GetApproval - - GetApprovalComment - - GetApprovalExternalApproval - - GetApprovalExternalList + - GetApprovalList + - SubscribeApprovalSubscription + - UnsubscribeApprovalSubscription + - CreateApprovalInstance - GetApprovalInstance - GetApprovalInstanceList - - GetApprovalList - - GetApprovalUserTaskList + - CancelApprovalInstance + - CreateApprovalCarbonCopy - PreviewApprovalInstance + - ApproveApprovalInstance - RejectApprovalInstance - - RemoveApprovalComment + - TransferApprovalInstance - ResubmitApprovalInstanceTask - RollbackApprovalInstance - - SearchApprovalCarbonCopy + - AddApprovalInstanceSign + - CreateApprovalComment + - GetApprovalComment + - DeleteApprovalComment + - RemoveApprovalComment + - CreateApprovalExternalApproval + - GetApprovalExternalApproval + - CreateApprovalExternalInstance + - CheckApprovalExternalInstance + - GetApprovalExternalList + - UploadApprovalFile + - UpdateApprovalMessage + - SendApprovalMessage - SearchApprovalInstance + - SearchApprovalCarbonCopy - SearchApprovalTask - - SendApprovalMessage - - SubscribeApprovalSubscription - - TransferApprovalInstance + - GetApprovalUserTaskList - TransformApprovalUserID - - UnsubscribeApprovalSubscription - - UpdateApprovalMessage - - UploadApprovalFile - Attendance - - BatchAttendanceUserFlowDel - - BatchCreateAttendanceUserDailyShift - - BatchCreateAttendanceUserDailyShiftTemp - - BatchCreateAttendanceUserFlow - - BatchGetAttendanceUserFlow - - CreateAttendanceArchiveRuleDelReport - - CreateAttendanceArchiveRuleUserStatsFieldsQuery + - GetAttendanceGroupList - CreateAttendanceGroup - - CreateAttendanceShift - - CreateAttendanceUserApproval - - CreateAttendanceUserTaskRemedy - - DeleteAttendanceGroup - - DeleteAttendanceShift - - DownloadAttendanceFile + - SearchAttendanceGroup - GetAttendanceGroup - - GetAttendanceGroupList - - GetAttendanceLeaveEmployExpireRecord + - DeleteAttendanceGroup + - GetAttendanceShiftList - GetAttendanceShift - GetAttendanceShiftDetail - - GetAttendanceShiftList - - GetAttendanceUserApproval + - DeleteAttendanceShift + - UpdateAttendanceLeaveAccrualRecord + - GetAttendanceLeaveEmployExpireRecord + - CreateAttendanceShift - GetAttendanceUserDailyShift - - GetAttendanceUserFlow - - GetAttendanceUserSettingList - - GetAttendanceUserStatsData + - BatchCreateAttendanceUserDailyShift - GetAttendanceUserStatsField - GetAttendanceUserStatsView + - UpdateAttendanceUserStatsView + - GetAttendanceUserStatsData + - GetAttendanceUserApproval + - CreateAttendanceUserApproval + - UpdateAttendanceRemedyApproval + - BatchGetAttendanceUserFlow + - GetAttendanceUserFlow - GetAttendanceUserTask - - GetAttendanceUserTaskRemedy + - BatchCreateAttendanceUserFlow - GetAttendanceUserTaskRemedyAllowedRemedyList - - ListAttendanceArchiveRule - - ListAttendanceGroupUser - - SearchAttendanceGroup - - UpdateAttendanceLeaveAccrualRecord - - UpdateAttendanceRemedyApproval + - GetAttendanceUserTaskRemedy + - CreateAttendanceUserTaskRemedy + - GetAttendanceUserSettingList - UpdateAttendanceUserSetting - - UpdateAttendanceUserStatsView - - UploadAttendanceArchiveRuleReport + - DownloadAttendanceFile - UploadAttendanceFile + - CreateAttendanceArchiveRuleDelReport + - ListAttendanceArchiveRule + - UploadAttendanceArchiveRuleReport + - CreateAttendanceArchiveRuleUserStatsFieldsQuery + - ListAttendanceGroupUser + - BatchCreateAttendanceUserDailyShiftTemp + - BatchAttendanceUserFlowDel - Auth - - GenOAuthURL + - ResendAppTicket - GetAccessToken + - RefreshAccessToken + - GetUserInfo + - GenOAuthURL - GetAppAccessToken - GetAppTicket - GetTenantAccessToken - - GetUserInfo - - RefreshAccessToken - - ResendAppTicket - SetAppTicket - Authen - CreateAuthenAccessToken - CreateAuthenRefreshAccessToken - Baike - CreateBaikeDraft - - CreateBaikeEntity - CreateBaikeUpdate - - DownloadBaikeImage - - ExtractBaikeEntity - - GetBaikeClassificationList + - CreateBaikeEntity + - UpdateBaikeEntity - GetBaikeEntity - GetBaikeEntityList - - HighlightBaikeEntity - MatchBaikeEntity - SearchBaikeEntity - - UpdateBaikeEntity + - HighlightBaikeEntity + - ExtractBaikeEntity + - GetBaikeClassificationList - UploadBaikeImage + - DownloadBaikeImage - Base - CreateBaseAppRole - ListBaseAppRole - UpdateBaseAppRole - Bitable - - BatchCreateBitableAppRoleMember + - CopyBitableDashboard + - GetBitableDashboardList + - UpdateBitableView + - GetBitableView + - GetBitableViewList + - CreateBitableView + - DeleteBitableView + - GetBitableRecord + - GetBitableRecordList + - SearchBitableRecord + - CreateBitableRecord + - UpdateBitableRecord + - DeleteBitableRecord - BatchCreateBitableRecord - - BatchCreateBitableTable - - BatchDeleteBitableAppRoleMember - - BatchDeleteBitableRecord - - BatchDeleteBitableTable - - BatchGetBitableAppTableRecord - BatchUpdateBitableRecord - - CopyBitableApp - - CopyBitableDashboard - - CreateBitableApp - - CreateBitableAppRole - - CreateBitableAppRoleMember + - BatchDeleteBitableRecord + - GetBitableFieldList - CreateBitableField - - CreateBitableRecord - - CreateBitableTable - - CreateBitableView - - DeleteBitableAppRole - - DeleteBitableAppRoleMember + - UpdateBitableField - DeleteBitableField - - DeleteBitableRecord - - DeleteBitableTable - - DeleteBitableView - GetBitableAppRoleList + - CreateBitableAppRole + - DeleteBitableAppRole + - UpdateBitableAppRole + - BatchDeleteBitableAppRoleMember + - BatchCreateBitableAppRoleMember - GetBitableAppRoleMemberList - - GetBitableDashboardList - - GetBitableFieldList - - GetBitableMeta - - GetBitableRecord - - GetBitableRecordList + - CreateBitableAppRoleMember + - DeleteBitableAppRoleMember + - CreateBitableTable + - BatchCreateBitableTable + - DeleteBitableTable + - BatchDeleteBitableTable + - UpdateBitableTable + - GetBitableTableList + - UpdateBitableTableForm - GetBitableTableForm + - UpdateBitableTableFormField - GetBitableTableFormFieldList - - GetBitableTableList - - GetBitableView - - GetBitableViewList + - CopyBitableApp + - CreateBitableApp + - GetBitableMeta + - UpdateBitableMeta - ListBitableAppBlockWorkflow + - BatchGetBitableAppTableRecord - ListBitableAppWorkflow - - SearchBitableRecord - - UpdateBitableAppRole - UpdateBitableAppWorkflow - - UpdateBitableField - - UpdateBitableMeta - - UpdateBitableRecord - - UpdateBitableTable - - UpdateBitableTableForm - - UpdateBitableTableFormField - - UpdateBitableView - Board - CreateBoardWhiteboardNode - CreateBoardWhiteboardNodePlantuml @@ -393,547 +393,542 @@ API Count: 1621, Event Count: 153 - GetBoardWhiteboardTheme - UpdateBoardWhiteboardTheme - Bot - - AddBotToChat - GetBotInfo + - AddBotToChat - Calendar - - BatchGetCalendarMeetingRoomFreebusy - - BatchGetCalendarMeetingRoomSummary - - ReplyCalendarMeetingRoomInstance - - BatchQueryCalendarFreebusy - - CreateCalendar - CreateCalendarACL - - CreateCalendarEvent - - CreateCalendarEventAttendee - - CreateCalendarEventMeetingChat - - CreateCalendarEventMeetingMinute - - CreateCalendarExchangeBinding - - CreateCalendarPrimarys - - CreateCalendarTimeoffEvent - - DeleteCalendar - DeleteCalendarACL - - DeleteCalendarEvent - - DeleteCalendarEventAttendee - - DeleteCalendarEventMeetingChat - - DeleteCalendarExchangeBinding - - DeleteCalendarTimeoffEvent - - GenerateCaldavConf - - GetCalendar - GetCalendarACLList - - GetCalendarEvent - - GetCalendarEventAttendeeChatMemberList - - GetCalendarEventAttendeeList - - GetCalendarEventInstanceList - - GetCalendarEventInstanceViewList - - GetCalendarEventList - - GetCalendarExchangeBinding - - GetCalendarFreeBusyList - - GetCalendarList + - SubscribeCalendarACL + - UnsubscribeCalendarACL - GetPrimaryCalendar - - MGetCalendar - - ReplyCalendarEvent + - CreateCalendar + - DeleteCalendar + - GetCalendar + - GetCalendarList + - UpdateCalendar - SearchCalendar - - SearchCalendarEvent - SubscribeCalendar - - SubscribeCalendarACL - - SubscribeCalendarChangeEvent - - SubscribeCalendarEvent - UnsubscribeCalendar - - UnsubscribeCalendarACL + - SubscribeCalendarChangeEvent - UnsubscribeCalendarChangeEvent - - UnsubscribeCalendarEvent - - UpdateCalendar + - CreateCalendarEvent + - DeleteCalendarEvent + - GetCalendarEvent + - GetCalendarEventList - UpdateCalendarEvent + - SearchCalendarEvent + - SubscribeCalendarEvent + - UnsubscribeCalendarEvent + - ReplyCalendarEvent + - GetCalendarEventInstanceList + - GetCalendarEventInstanceViewList + - DeleteCalendarEventMeetingChat + - CreateCalendarEventMeetingChat + - CreateCalendarTimeoffEvent + - DeleteCalendarTimeoffEvent + - BatchGetCalendarMeetingRoomSummary + - BatchGetCalendarMeetingRoomFreebusy + - ReplyCalendarMeetingRoomInstance + - CreateCalendarEventAttendee + - DeleteCalendarEventAttendee + - GetCalendarEventAttendeeList + - GetCalendarEventAttendeeChatMemberList + - GetCalendarFreeBusyList + - GenerateCaldavConf + - CreateCalendarExchangeBinding + - DeleteCalendarExchangeBinding + - GetCalendarExchangeBinding + - CreateCalendarEventMeetingMinute + - MGetCalendar + - CreateCalendarPrimarys + - BatchQueryCalendarFreebusy - Cardkit - - BatchUpdateCardkitCard - - CreateCardkitCard + - UpdateCardkitCardElementContent - CreateCardkitCardElement - - CreateCardkitCardIDConvert - DeleteCardkitCardElement - - UpdateCardkitCard - UpdateCardkitCardElement - - UpdateCardkitCardElementContent - UpdateCardkitCardElementV1 + - BatchUpdateCardkitCard + - CreateCardkitCard + - CreateCardkitCardIDConvert - UpdateCardkitCardSettings + - UpdateCardkitCard - CcmDocs - CreateCcmDocsDefaultDocsApiMeta - Chat - - AddChatMember - CreateChat - - CreateChatManager - - CreateChatMenuTree - - CreateChatTab + - GetChat + - GetChatOld + - UpdateChat - DeleteChat + - GetChatListOfSelf + - SearchChat + - GetChatMemberList + - IsInChat + - CreateChatManager - DeleteChatManager + - AddChatMember - DeleteChatMember - - DeleteChatMenuTree - - DeleteChatTab + - JoinChat + - GetChatModeration + - UpdateChatModeration + - UpdateChatTopNotice - DeleteChatTopNotice - GenChatShareLink - - GetChat - GetChatAnnouncement - - GetChatListOfSelf - - GetChatMemberList - - GetChatMenuTree - - GetChatModeration - - GetChatOld + - UpdateChatAnnouncement + - CreateChatTab + - DeleteChatTab - GetChatTabList - - IsInChat - - JoinChat - - SearchChat - - SortChatMenuTree + - UpdateChatTab - SortChatTab - - UpdateChat - - UpdateChatAnnouncement + - CreateChatMenuTree + - DeleteChatMenuTree - UpdateChatMenuTree - - UpdateChatModeration - - UpdateChatTab - - UpdateChatTopNotice + - SortChatMenuTree + - GetChatMenuTree - Compensation + - CreateCompensationArchive - BatchCreateCompensationLumpSumPayment - - BatchCreateCompensationRecurringPayment - BatchRemoveCompensationLumpSumPayment - - BatchRemoveCompensationRecurringPayment - BatchUpdateCompensationLumpSumPayment - - BatchUpdateCompensationRecurringPayment - - CreateCompensationArchive - - ListCompensationSocialInsurance - - ListCompensationSocialPlan - QueryCompensationLumpSumPayment - QueryCompensationLumpSumPaymentDetail + - BatchCreateCompensationRecurringPayment + - BatchRemoveCompensationRecurringPayment + - BatchUpdateCompensationRecurringPayment - QueryCompensationRecurringPayment - QueryCompensationSocialArchive - QueryCompensationSocialArchiveAdjustRecord + - ListCompensationSocialInsurance + - ListCompensationSocialPlan - QueryCompensationSocialPlan - Contact - - AddContactGroupMember - - BatchAddContactGroupMember - - BatchAddContactV2Department - - BatchAddContactV2User - - BatchCreateContactFunctionalRoleMember - - BatchDeleteContactFunctionalRoleMember - - BatchDeleteContactGroupMember - - BatchGetDepartment + - CreateUser + - DeleteUser + - ResurrectUser + - GetUser - BatchGetUser + - GetUserList + - GetUserListOld + - UpdateUserPatch + - UpdateUser - BatchGetUserByID - BatchGetUserByIDOld - - BindContactUnitDepartment - - CreateContactFunctionalRole - - CreateContactGroup - - CreateContactJobFamily - - CreateContactJobLevel - - CreateContactUnit + - SearchUserOld + - UpdateUserID - CreateDepartment - - CreateEmployeeTypeEnum - - CreateUser - - DeleteContactFunctionalRole - - DeleteContactGroup - - DeleteContactGroupMember - - DeleteContactJobFamily - - DeleteContactJobLevel - - DeleteContactUnit + - GetDepartment + - BatchGetDepartment + - GetDepartmentList + - UpdateDepartmentPatch + - UpdateDepartment + - GetDepartmentListOld + - GetParentDepartment + - SearchDepartment + - UpdateDepartmentID - DeleteDepartment - - DeleteEmployeeTypeEnum - - DeleteUser - - GetContactCustomAttrList - - GetContactFunctionalRoleMember - - GetContactFunctionalRoleMemberScope + - UnbindDepartmentChat + - CreateContactGroup + - UpdateContactGroup + - DeleteContactGroup - GetContactGroup - GetContactGroupList + - GetContactMemberGroupList + - AddContactGroupMember + - BatchAddContactGroupMember + - DeleteContactGroupMember + - BatchDeleteContactGroupMember - GetContactGroupMember - - GetContactJobFamily - - GetContactJobFamilyList + - CreateContactFunctionalRole + - DeleteContactFunctionalRole + - UpdateContactFunctionalRole + - BatchCreateContactFunctionalRoleMember + - BatchDeleteContactFunctionalRoleMember + - UpdateContactFunctionalRoleMemberScope + - GetContactFunctionalRoleMemberScope + - GetContactFunctionalRoleMember + - CreateContactJobLevel + - DeleteContactJobLevel + - UpdateContactJobLevel - GetContactJobLevel - GetContactJobLevelList + - CreateContactJobFamily + - DeleteContactJobFamily + - UpdateContactJobFamily + - GetContactJobFamily + - GetContactJobFamilyList - GetContactJobTitle - GetContactJobTitleList - - GetContactMemberGroupList - - GetContactScopeList - - GetContactUnit - - GetContactUnitDepartmentList - - GetContactUnitList - - GetContactV2Task - GetContactWorkCity - GetContactWorkCityList - - GetDepartment - - GetDepartmentList - - GetDepartmentListOld - GetEmployeeTypeEnumList - - GetParentDepartment - - GetUser - - GetUserList - - GetUserListOld - - ListContactV2Role - - ResurrectUser - - SearchDepartment - - SearchUserOld - - UnbindContactUnitDepartment - - UnbindDepartmentChat - - UpdateContactFunctionalRole - - UpdateContactFunctionalRoleMemberScope - - UpdateContactGroup - - UpdateContactJobFamily - - UpdateContactJobLevel - - UpdateContactUnit - - UpdateDepartment - - UpdateDepartmentID - - UpdateDepartmentPatch - UpdateEmployeeTypeEnumPatch - - UpdateUser - - UpdateUserID - - UpdateUserPatch + - DeleteEmployeeTypeEnum + - CreateEmployeeTypeEnum + - GetContactCustomAttrList + - CreateContactUnit + - UpdateContactUnit + - DeleteContactUnit + - GetContactUnit + - GetContactUnitList + - BindContactUnitDepartment + - UnbindContactUnitDepartment + - GetContactUnitDepartmentList + - GetContactScopeList + - BatchAddContactV2User + - BatchAddContactV2Department + - GetContactV2Task + - ListContactV2Role - CoreHR - - GetCoreHRCompensationChangeReasonList - - GetCoreHRCompensationIndicatorList - - GetCoreHRCompensationItemList - - GetCoreHRCompensationItemCategoryList - - GetCoreHRCompensationPlanList - - QueryCoreHRCompensationArchive - - BatchGetCoreHRJobFamily - - BatchGetCoreHrbpByEmployee - SearchCoreHRNationality - SearchCoreHRBank - SearchCoreHRBankBranch - - SearchCoreHRNationality - - GetCoreHRAuthorization - - MatchCoreHRCompensationStandard - - GetCoreHRAuthorizationList - - BatchQueryCoreHRDepartmentTimeline - - QueryCoreHRDepartmentTimeline - - ActiveCoreHRCostCenter - - AddCorehrAuthorizationRoleAssign - - AddCorehrCommonDataMetaDataEnumOption - - BatchCorehrWorkforcePlanDetailV2 - - BatchGetCoreHRCompany - - BatchGetCoreHRDepartment - - BatchGetCoreHREmployee - - BatchGetCoreHRJobData - - BatchGetCoreHRJobLevel - - BatchGetCoreHRLocation - - BatchGetCorehrJob - - BatchGetCorehrPathway - - BatchQueryCorehrCostAllocation - - BatchQueryCorehrDefaultCostCenter - - BatchQueryCorehrEmployeesAdditionalJob - - BatchQueryCorehrWorkforcePlanDetail - - CreateCoreHRCompany - - CreateCoreHRContract - - CreateCoreHRCostCenter - - CreateCoreHRCostCenterVersion - - CreateCoreHRDepartment + - GetCoreHRCustomField + - GetCoreHRCustomFieldList + - GetCoreHRCustomFieldObjectApiNameList + - SearchCoreHRCountryRegion + - SearchCoreHRCountryRegionSubdivision + - SearchCoreHRCity + - SearchCoreHRDistrict + - GetCoreHRCountryRegion + - GetCoreHRCountryRegionList + - GetCoreHRSubdivision + - GetCoreHRSubdivisionList + - GetCoreHRSubregion + - GetCoreHRSubregionList - CreateCoreHREmployeeType - - CreateCoreHREmployment - - CreateCoreHRJob - - CreateCoreHRJobChange - - CreateCoreHRJobData - - CreateCoreHRJobFamily - - CreateCoreHRJobLevel - - CreateCoreHRLeaveGrantingRecord - - CreateCoreHRLocation + - DeleteCoreHREmployeeType + - UpdateCoreHREmployeeType + - GetCoreHREmployeeType + - GetCoreHREmployeeTypeList - CreateCoreHRNationalIDType - - CreateCoreHROffboarding - - CreateCoreHRPerson - - CreateCoreHRPreHire - - CreateCoreHRProbationAssessment + - DeleteCoreHRNationalIDType + - UpdateCoreHRNationalIDType + - GetCoreHRNationalIDType + - GetCoreHRNationalIDTypeList - CreateCoreHRWorkingHoursType - - CreateCorehrCommonDataIDConvert - - CreateCorehrCommonDataMetaDataEditEnumOption - - CreateCorehrCompanyActive - - CreateCorehrCostAllocationVersion - - CreateCorehrCustomOrg - - CreateCorehrCustomOrgActive - - CreateCorehrDefaultCostCenterVersion - - CreateCorehrDepartmentTree - - CreateCorehrEmployee - - CreateCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesInternationalAssignment - - CreateCorehrJobChange - - CreateCorehrJobChangeRevoke - - CreateCorehrJobGrade - - CreateCorehrLeaveWorkCalendar - - CreateCorehrLeaveWorkCalendarDate - - CreateCorehrLocationActive - - CreateCorehrLocationAddress - - CreateCorehrOffboardingEdit - - CreateCorehrOffboardingRevoke - - CreateCorehrOffboardingSubmitV2 - - CreateCorehrPathway - - CreateCorehrPathwayActive - - CreateCorehrPerson - - CreateCorehrPosition - - CreateCorehrPositionActive - - CreateCorehrPositionDelPosition - - CreateCorehrPreHireComplete - - CreateCorehrPreHireRestoreFlowInstance - - CreateCorehrPreHireTransformOnboardingTask - - CreateCorehrPreHireTransitTask - - CreateCorehrPreHireWithdrawOnboarding - - CreateCorehrProbationSubmit - - CreateCorehrProbationWithdraw - - CreateCorehrProcessQueryFlowDataTemplate - - CreateCorehrProcessStart - - CreateCorehrReportDetailRowBatchdelete - - CreateCorehrReportDetailRowBatchsave - - CreateCorehrSignatureFileTerminate - - CreateCorehrWorkforcePlanDetailRowBatchdelete - - CreateCorehrWorkforcePlanDetailRowBatchsave - - DeleteCoreHRCompany - - DeleteCoreHRContract - - DeleteCoreHRCostCenter - - DeleteCoreHRCostCenterVersion - - DeleteCoreHRDepartment - - DeleteCoreHREmployeeType - - DeleteCoreHREmployment - - DeleteCoreHRJob - - DeleteCoreHRJobData - - DeleteCoreHRJobFamily - - DeleteCoreHRJobLevel - - DeleteCoreHRLeaveGrantingRecord - - DeleteCoreHRLocation - - DeleteCoreHRNationalIDType - - DeleteCoreHRPerson - - DeleteCoreHRPreHire - - DeleteCoreHRProbationAssessment - DeleteCoreHRWorkingHoursType - - DeleteCorehrCustomOrg - - DeleteCorehrDepartment - - DeleteCorehrEmployeesAdditionalJob - - DeleteCorehrEmployeesInternationalAssignment - - DeleteCorehrJobGrade - - DeleteCorehrLocationAddress - - DeleteCorehrPathway - - DeleteCorehrPreHire - - DownloadCoreHRPersonFile - - DownloadCorehrSignatureFile - - EnableDisableCoreHRProbationAssessment - - GetCoreHRCompany - - GetCoreHRCompanyList - - GetCoreHRContract - - GetCoreHRContractList - - GetCoreHRCountryRegion - - GetCoreHRCountryRegionList + - UpdateCoreHRWorkingHoursType + - GetCoreHRWorkingHoursType + - GetCoreHRWorkingHoursTypeList + - SearchCoreHRCurrency - GetCoreHRCurrency - GetCoreHRCurrencyList - - GetCoreHRCustomField - - GetCoreHRCustomFieldList - - GetCoreHRCustomFieldObjectApiNameList - - GetCoreHRDepartment - - GetCoreHRDepartmentList - - GetCoreHRDepartmentParentList - - GetCoreHREmployeeType - - GetCoreHREmployeeTypeList - - GetCoreHRJob + - BatchGetCoreHREmployee + - SearchCoreHREmployee + - CreateCoreHREmployment + - DeleteCoreHREmployment + - UpdateCoreHREmployment + - CreateCoreHRPerson + - UpdateCoreHRPerson + - DeleteCoreHRPerson + - UploadCoreHRPersonFile + - DownloadCoreHRPersonFile + - GetCoreHRPerson + - CreateCoreHRJobData + - DeleteCoreHRJobData + - UpdateCoreHRJobData - GetCoreHRJobData + - QueryCoreHRJobData + - BatchGetCoreHRJobData - GetCoreHRJobDataList - - GetCoreHRJobFamily - - GetCoreHRJobFamilyList + - GetCoreHRDepartmentParentList + - SearchCoreHRDepartment + - CreateCoreHRDepartment + - DeleteCoreHRDepartment + - UpdateCoreHRDepartment + - GetCoreHRDepartment + - BatchGetCoreHRDepartment + - GetCoreHRDepartmentList + - BatchGetCoreHRLocation + - CreateCoreHRLocation + - DeleteCoreHRLocation + - GetCoreHRLocation + - GetCoreHRLocationList + - GetCoreHRCompany + - GetCoreHRCompanyList + - BatchGetCoreHRCompany + - CreateCoreHRCompany + - UpdateCoreHRCompany + - DeleteCoreHRCompany + - CreateCoreHRCostCenter + - ActiveCoreHRCostCenter + - DeleteCoreHRCostCenter + - SearchCoreHRCostCenter + - CreateCoreHRCostCenterVersion + - UpdateCoreHRCostCenterVersion + - DeleteCoreHRCostCenterVersion + - BatchGetCoreHRJobLevel + - CreateCoreHRJobLevel + - DeleteCoreHRJobLevel + - UpdateCoreHRJobLevel - GetCoreHRJobLevel - GetCoreHRJobLevelList - - GetCoreHRJobList - - GetCoreHRJobListV2 + - BatchGetCoreHRJobFamily + - CreateCoreHRJobFamily + - DeleteCoreHRJobFamily + - UpdateCoreHRJobFamily + - GetCoreHRJobFamily + - GetCoreHRJobFamilyList + - CreateCoreHRJob + - DeleteCoreHRJob + - UpdateCoreHRJob - GetCoreHRJobV2 - - GetCoreHRLeaveBalanceList - - GetCoreHRLeaveRequestHistoryList - - GetCoreHRLeaveTypeList - - GetCoreHRLocation - - GetCoreHRLocationList - - GetCoreHRNationalIDType - - GetCoreHRNationalIDTypeList - - GetCoreHROffboardingList - - GetCoreHRPerson + - GetCoreHRJobListV2 + - GetCoreHRJob + - GetCoreHRJobList + - CreateCoreHRPreHire + - DeleteCoreHRPreHire + - UpdateCoreHRPreHire - GetCoreHRPreHire - GetCoreHRPreHireList - - GetCoreHRProcess - - GetCoreHRProcessFormVariableData - - GetCoreHRProcessList - - GetCoreHRSecurityGroupBp - - GetCoreHRSecurityGroupList - - GetCoreHRSubdivision - - GetCoreHRSubdivisionList - - GetCoreHRSubregion - - GetCoreHRSubregionList + - SearchCoreHRContract + - CreateCoreHRContract + - DeleteCoreHRContract + - UpdateCoreHRContract + - GetCoreHRContract + - GetCoreHRContractList + - SearchCoreHRProbation + - EnableDisableCoreHRProbationAssessment + - CreateCoreHRProbationAssessment + - UpdateCoreHRProbationAssessment + - DeleteCoreHRProbationAssessment - GetCoreHRTransferReasonList - GetCoreHRTransferTypeList - - GetCoreHRWorkingHoursType - - GetCoreHRWorkingHoursTypeList + - CreateCoreHRJobChange + - SearchCoreHRJobChange + - GetCoreHROffboardingList + - CreateCoreHROffboarding + - SearchCoreHROffboarding + - CreateCoreHRLeaveGrantingRecord + - DeleteCoreHRLeaveGrantingRecord + - GetCoreHRLeaveTypeList + - GetCoreHRLeaveBalanceList + - GetCoreHRLeaveRequestHistoryList + - BatchGetCoreHrbpByEmployee - GetCoreHrbpByDepartment - GetCoreHrbpList + - GetCoreHRSecurityGroupBp + - SearchCoreHRAssignedUser + - GetCoreHRAuthorization + - GetCoreHRAuthorizationList + - GetCoreHRSecurityGroupList + - GetCoreHRProcessList + - GetCoreHRProcess + - GetCoreHRProcessFormVariableData + - MatchCoreHRCompensationStandard + - QueryCoreHRCompensationArchive + - GetCoreHRCompensationChangeReasonList + - GetCoreHRCompensationIndicatorList + - GetCoreHRCompensationItemList + - GetCoreHRCompensationItemCategoryList + - GetCoreHRCompensationPlanList - GetCorehrApprovalGroups - - GetCorehrDraft - - GetCorehrLeaveCalendarByScope - - GetCorehrProcessFlowVariableData - - GetCorehrProcessFormVariableData - - ListCorehrApprover - - ListCorehrEmployeesInternationalAssignment - - ListCorehrSignatureFile - - ListCorehrSignatureFileByBizID - - ListCorehrSignatureNodeByFileID - - ListCorehrSignatureTemplateInfoWithThumbnail - - ListCorehrWorkforcePlan - - QueryCoreHRJobData - - QueryCoreHRJobGrade - QueryCorehrApprovalGroupsDepartmentChangeListByIDs - QueryCorehrApprovalGroupsJobChangeListByIDs - QueryCorehrApprovalGroupsPositionChangeListByIDs + - ListCorehrApprover + - SearchCorehrBasicInfoLanguage + - SearchCorehrBasicInfoTimeZone + - CreateCorehrCompanyActive - QueryCorehrCompanyMultiTimeline - QueryCorehrCompanyRecentChange - - QueryCorehrCostCenterRecentChange - - QueryCorehrCustomOrg - - QueryCorehrCustomOrgRecentChange - - QueryCorehrDepartmentOperationLogs - - QueryCorehrDepartmentRecentChange - - QueryCorehrJobFamilyMultiTimeline - - QueryCorehrJobFamilyRecentChange - - QueryCorehrJobGradeRecentChange - - QueryCorehrJobLevelRecentChange - - QueryCorehrJobMultiTimeline - - QueryCorehrJobRecentChange - - QueryCorehrLocationMultiTimeline - - QueryCorehrLocationRecentChange - - QueryCorehrPosition - - QueryCorehrPositionRecentChange - - QueryCorehrPreHire - - QueryCorehrSignatureFile - - RemoveCorehrAuthorizationRoleAssign + - BatchQueryCorehrCostAllocation + - CreateCorehrCostAllocationVersion - RemoveCorehrCostAllocationVersion - - RemoveCorehrDefaultCostCenterVersion - - SearchCoreHRAssignedUser - - SearchCoreHRCity - - SearchCoreHRContract - - SearchCoreHRCostCenter - - SearchCoreHRCountryRegion - - SearchCoreHRCountryRegionSubdivision - - SearchCoreHRCurrency - - SearchCoreHRDepartment - - SearchCoreHRDistrict - - SearchCoreHREmployee - - SearchCoreHRJobChange - - SearchCoreHROffboarding - - SearchCoreHRPreHire - - SearchCoreHRProbation - - SearchCorehrBasicInfoLanguage - - SearchCorehrBasicInfoTimeZone - - SearchCorehrEnum - - SearchCorehrSignatureTemplate - - UpdateCoreHRCompany - - UpdateCoreHRContract - - UpdateCoreHRCostCenterVersion - - UpdateCoreHRDepartment - - UpdateCoreHREmployeeType - - UpdateCoreHREmployment - - UpdateCoreHRJob - - UpdateCoreHRJobData - - UpdateCoreHRJobFamily - - UpdateCoreHRJobLevel - - UpdateCoreHRNationalIDType - - UpdateCoreHRPerson - - UpdateCoreHRPreHire - - UpdateCoreHRProbationAssessment - - UpdateCoreHRWorkingHoursType - - UpdateCorehrAuthorizationRoleAssign - UpdateCorehrCostAllocationVersion + - QueryCorehrCostCenterRecentChange + - CreateCorehrCustomOrgActive + - CreateCorehrCustomOrg + - DeleteCorehrCustomOrg - UpdateCorehrCustomOrg + - QueryCorehrCustomOrg + - QueryCorehrCustomOrgRecentChange - UpdateCorehrCustomOrgRule + - BatchQueryCorehrDefaultCostCenter + - CreateCorehrDefaultCostCenterVersion + - RemoveCorehrDefaultCostCenterVersion - UpdateCorehrDefaultCostCenterVersion + - DeleteCorehrDepartment - UpdateCorehrDepartment + - BatchQueryCoreHRDepartmentTimeline + - QueryCorehrDepartmentOperationLogs + - QueryCorehrDepartmentRecentChange + - QueryCoreHRDepartmentTimeline + - CreateCorehrDepartmentTree + - GetCorehrDraft + - CreateCorehrEmployee + - BatchQueryCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesAdditionalJob + - DeleteCorehrEmployeesAdditionalJob - UpdateCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesInternationalAssignment + - DeleteCorehrEmployeesInternationalAssignment + - ListCorehrEmployeesInternationalAssignment - UpdateCorehrEmployeesInternationalAssignment + - SearchCorehrEnum + - BatchGetCorehrJob + - QueryCorehrJobMultiTimeline + - QueryCorehrJobRecentChange + - CreateCorehrJobChange + - CreateCorehrJobChangeRevoke + - QueryCorehrJobFamilyMultiTimeline + - QueryCorehrJobFamilyRecentChange + - CreateCorehrJobGrade + - DeleteCorehrJobGrade - UpdateCorehrJobGrade - - UpdateCorehrLocation + - QueryCoreHRJobGrade + - QueryCorehrJobGradeRecentChange + - QueryCorehrJobLevelRecentChange + - CreateCorehrLocationAddress + - DeleteCorehrLocationAddress - UpdateCorehrLocationAddress + - CreateCorehrLocationActive + - UpdateCorehrLocation + - QueryCorehrLocationMultiTimeline + - QueryCorehrLocationRecentChange + - CreateCorehrOffboardingEdit + - CreateCorehrOffboardingRevoke + - CreateCorehrOffboardingSubmitV2 + - CreateCorehrPathwayActive + - BatchGetCorehrPathway + - CreateCorehrPathway + - DeleteCorehrPathway - UpdateCorehrPathway - - UpdateCorehrPerson + - CreateCorehrPositionActive + - CreateCorehrPosition + - CreateCorehrPositionDelPosition - UpdateCorehrPosition + - QueryCorehrPosition + - QueryCorehrPositionRecentChange + - CreateCorehrPreHireComplete + - DeleteCorehrPreHire - UpdateCorehrPreHire + - QueryCorehrPreHire + - CreateCorehrPreHireRestoreFlowInstance + - SearchCoreHRPreHire + - CreateCorehrPreHireTransformOnboardingTask + - CreateCorehrPreHireTransitTask + - CreateCorehrPreHireWithdrawOnboarding + - CreateCorehrProbationSubmit + - CreateCorehrProbationWithdraw - UpdateCorehrProcessApprover - UpdateCorehrProcessExtra - - UpdateCorehrProcessRevoke + - GetCorehrProcessFormVariableData + - CreateCorehrProcessQueryFlowDataTemplate - UpdateCorehrProcessTransfer + - GetCorehrProcessFlowVariableData + - UpdateCorehrProcessRevoke + - CreateCorehrProcessStart - UpdateCorehrProcessWithdraw - - UploadCoreHRPersonFile + - CreateCorehrReportDetailRowBatchdelete + - CreateCorehrReportDetailRowBatchsave + - DownloadCorehrSignatureFile + - ListCorehrSignatureFile + - ListCorehrSignatureFileByBizID + - QueryCorehrSignatureFile + - CreateCorehrSignatureFileTerminate + - ListCorehrSignatureNodeByFileID + - SearchCorehrSignatureTemplate + - ListCorehrSignatureTemplateInfoWithThumbnail + - ListCorehrWorkforcePlan + - BatchQueryCorehrWorkforcePlanDetail + - BatchCorehrWorkforcePlanDetailV2 + - CreateCorehrWorkforcePlanDetailRowBatchdelete + - CreateCorehrWorkforcePlanDetailRowBatchsave + - AddCorehrAuthorizationRoleAssign + - GetCoreHRAuthorization + - GetCoreHRAuthorizationList + - RemoveCorehrAuthorizationRoleAssign + - UpdateCorehrAuthorizationRoleAssign + - CreateCorehrCommonDataIDConvert + - AddCorehrCommonDataMetaDataEnumOption + - CreateCorehrCommonDataMetaDataEditEnumOption + - MatchCoreHRCompensationStandard + - GetCorehrLeaveCalendarByScope + - CreateCorehrLeaveWorkCalendar + - CreateCorehrLeaveWorkCalendarDate + - CreateCorehrPerson + - UpdateCorehrPerson - Directory - CreateDirectoryCollaborationRule - - CreateDirectoryDepartment - - CreateDirectoryDepartmentFilter - - CreateDirectoryEmployee - - CreateDirectoryEmployeeFilter - - CreateDirectoryEmployeeResurrect - DeleteDirectoryCollaborationRule - - DeleteDirectoryDepartment - - DeleteDirectoryEmployee - ListDirectoryCollaborationRule + - UpdateDirectoryCollaborationRule - ListDirectoryCollaborationTenant - ListDirectoryCollborationShareEntity + - CreateDirectoryDepartment + - DeleteDirectoryDepartment + - CreateDirectoryDepartmentFilter - MGetDirectoryDepartment - - MGetDirectoryEmployee - - SearchDirectoryDepartment - - SearchDirectoryEmployee - - UpdateDirectoryCollaborationRule - UpdateDirectoryDepartment + - SearchDirectoryDepartment + - CreateDirectoryEmployee + - DeleteDirectoryEmployee + - CreateDirectoryEmployeeFilter + - MGetDirectoryEmployee - UpdateDirectoryEmployee - UpdateDirectoryEmployeeRegular + - CreateDirectoryEmployeeResurrect + - SearchDirectoryEmployee - UpdateDirectoryEmployeeToBeResigned - Docs - GetDocsContent - Drive - - GetWhiteboardNodeList - - CreateSpreadsheet - AddSheetDimensionRange - AddWikiSpaceMember - AppendSheetValue - BatchCreateDrivePermissionMember - BatchDeleteDocxBlock - - BatchDeleteDocxChatAnnouncementBlockChildren - BatchGetDriveComment - BatchGetDriveMediaTmpDownloadURL - BatchGetSheetValue - BatchSetSheetStyle - BatchSetSheetValue - - BatchUpdateDocxChatAnnouncementBlock - - BatchUpdateDocxDocumentBlock - BatchUpdateSheet - - CheckDriveMemberPermission - CheckDriveMemberPermissionOld + - CheckDriveMemberPermission - CopyDriveFile - CopyWikiNode - - CreateDocx - CreateDocxBlock - - CreateDocxChatAnnouncementBlockChildren - - CreateDocxDocumentBlockDescendant - - CreateDocxDocumentConvert + - CreateDocx - CreateDriveComment - CreateDriveDoc - CreateDriveExportTask - - CreateDriveFile - CreateDriveFileShortcut - CreateDriveFileSubscription - CreateDriveFileVersion + - CreateDriveFile - CreateDriveFolder - CreateDriveImportTask - - CreateDriveMemberPermission - CreateDriveMemberPermissionOld + - CreateDriveMemberPermission - CreateDrivePermissionPublicPassword - CreateSheetConditionFormat - CreateSheetDataValidationDropdown - - CreateSheetFilter - - CreateSheetFilterView - CreateSheetFilterViewCondition + - CreateSheetFilterView + - CreateSheetFilter - CreateSheetFloatImage - CreateSheetProtectedDimension + - CreateSpreadsheet - CreateWikiNode - CreateWikiSpace - DeleteDriveComment - - DeleteDriveFile - DeleteDriveFileVersion - - DeleteDriveMemberPermission + - DeleteDriveFile - DeleteDriveMemberPermissionOld + - DeleteDriveMemberPermission - DeleteDrivePermissionPublicPassword - DeleteDriveSheetFile - DeleteSheetConditionFormat - DeleteSheetDataValidationDropdown - DeleteSheetDimensionRange - - DeleteSheetFilter - - DeleteSheetFilterView - DeleteSheetFilterViewCondition + - DeleteSheetFilterView + - DeleteSheetFilter - DeleteSheetFloatImage - DeleteSheetProtectedDimension - DeleteWikiSpaceMember @@ -943,17 +938,14 @@ API Count: 1621, Event Count: 153 - FindSheet - FinishUploadDriveFile - FinishUploadDriveMedia - - GetDocxBlock - GetDocxBlockListOfBlock - GetDocxBlockListOfDocument - - GetDocxChatAnnouncement - - GetDocxChatAnnouncementBlock - - GetDocxChatAnnouncementBlockChildren - - GetDocxDocument + - GetDocxBlock - GetDocxDocumentRawContent - - GetDriveComment + - GetDocxDocument - GetDriveCommentList - GetDriveCommentReplyList + - GetDriveComment - GetDriveDocContent - GetDriveDocMeta - GetDriveDocRawContent @@ -963,40 +955,39 @@ API Count: 1621, Event Count: 153 - GetDriveFileStatistics - GetDriveFileSubscription - GetDriveFileTask - - GetDriveFileVersion - GetDriveFileVersionList + - GetDriveFileVersion - GetDriveFileViewRecordList - GetDriveFolderChildren - GetDriveFolderMeta - GetDriveImportTask - - GetDriveMemberPermissionList - GetDriveMemberPermissionListOld - - GetDrivePublicPermission + - GetDriveMemberPermissionList - GetDrivePublicPermissionOld - GetDrivePublicPermissionV2 + - GetDrivePublicPermission - GetDriveRootFolderMeta - GetDriveSheetDefaultImportResult - - GetSheet - GetSheetConditionFormat - GetSheetDataValidationDropdown - - GetSheetFilter - - GetSheetFilterView - GetSheetFilterViewCondition + - GetSheetFilterView + - GetSheetFilter - GetSheetFloatImage - GetSheetList - GetSheetMeta - GetSheetProtectedDimension - GetSheetValue + - GetSheet - GetSpreadsheet - GetSubscribeDriveFile - - GetWikiNode - GetWikiNodeList - - GetWikiSpace + - GetWikiNode - GetWikiSpaceList + - GetWikiSpace - GetWikiTask - ImportSheet - InsertSheetDimensionRange - - ListDocxChatAnnouncementBlock - ListDriveFileLike - ListWikiSpaceMember - MergeSheetCell @@ -1009,36 +1000,36 @@ API Count: 1621, Event Count: 153 - PrepareUploadDriveFile - PrepareUploadDriveMedia - PrependSheetValue - - QuerySheetFilterView - QuerySheetFilterViewCondition + - QuerySheetFilterView - QuerySheetFloatImage - ReplaceSheet - SearchDriveFile - SearchWikiNode - SetSheetStyle - - SetSheetValue - SetSheetValueImage + - SetSheetValue - SubscribeDriveFile - TransferDriveMemberPermission - TransferDriveOwnerPermission - UnmergeSheetCell - UnsubscribeDriveFile - UpdateDocxBlock - - UpdateDriveComment - UpdateDriveCommentPatch + - UpdateDriveComment - UpdateDriveDocContent - UpdateDriveFileSubscription - - UpdateDriveMemberPermission - UpdateDriveMemberPermissionOld + - UpdateDriveMemberPermission - UpdateDrivePermissionPublicPassword - - UpdateDrivePublicPermission - UpdateDrivePublicPermissionV2 + - UpdateDrivePublicPermission - UpdateSheetConditionFormat - UpdateSheetDataValidationDropdown - UpdateSheetDimensionRange - - UpdateSheetFilter - - UpdateSheetFilterView - UpdateSheetFilterViewCondition + - UpdateSheetFilterView + - UpdateSheetFilter - UpdateSheetFloatImage - UpdateSheetProperty - UpdateSheetProtectedDimension @@ -1047,732 +1038,742 @@ API Count: 1621, Event Count: 153 - UpdateWikiSpaceSetting - UploadDriveFile - UploadDriveMedia + - GetWhiteboardNodeList + - BatchDeleteDocxChatAnnouncementBlockChildren + - CreateDocxChatAnnouncementBlockChildren + - GetDocxChatAnnouncementBlockChildren + - BatchUpdateDocxChatAnnouncementBlock + - GetDocxChatAnnouncementBlock + - ListDocxChatAnnouncementBlock + - GetDocxChatAnnouncement + - CreateDocxDocumentBlockDescendant + - BatchUpdateDocxDocumentBlock + - CreateDocxDocumentConvert - EHR - - DownloadEHRAttachments - GetEHREmployeeList + - DownloadEHRAttachments - Event - GetEventOutboundIpList - EventCallback - - EventV1TripApproval - - EventV1AddBot - - EventV1AddUserToChat - - EventV1AppOpen - - EventV1AppStatusChange - - EventV1AppTicket - - EventV1AppUninstalled - - EventV1ApprovalCc - - EventV1ApprovalInstance - - EventV1ApprovalTask - - EventV1ChatDisband - - EventV1LeaveApprovalRevert - - EventV1LeaveApprovalV2 - - EventV1OrderPaid - - EventV1OutApproval - - EventV1P2PChatCreate - - EventV1ReceiveMessage - - EventV1RemedyApproval - - EventV1RemoveBot - - EventV1RemoveUserFromChat - - EventV1RevokeAddUserFromChat - - EventV1ShiftApproval - - EventV1ThirdPartyMeetingRoomEventCreated - - EventV1ThirdPartyMeetingRoomEventDeleted - - EventV1ThirdPartyMeetingRoomEventUpdated - - EventV1WorkApproval - - EventV2ACSAccessRecordCreatedV1 - - EventV2ACSUserUpdatedV1 - - EventV2ApplicationApplicationAppVersionAuditV6 - - EventV2ApplicationApplicationAppVersionPublishApplyV6 - - EventV2ApplicationApplicationAppVersionPublishRevokeV6 - - EventV2ApplicationApplicationCreatedV6 - - EventV2ApplicationApplicationFeedbackCreatedV6 - - EventV2ApplicationApplicationFeedbackUpdatedV6 - - EventV2ApplicationApplicationVisibilityAddedV6 - - EventV2ApplicationBotMenuV6 - - EventV2ApprovalApprovalUpdatedV4 - - EventV2AttendanceUserFlowCreatedV1 - - EventV2AttendanceUserTaskUpdatedV1 - - EventV2CalendarCalendarACLCreatedV4 - - EventV2CalendarCalendarACLDeletedV4 - - EventV2CalendarCalendarChangedV4 - - EventV2CalendarCalendarEventChangedV4 - - EventV2CardActionTrigger - - EventV2ContactCustomAttrEventUpdatedV3 - - EventV2ContactDepartmentCreatedV3 - - EventV2ContactDepartmentDeletedV3 - - EventV2ContactDepartmentUpdatedV3 - - EventV2ContactEmployeeTypeEnumActivedV3 - - EventV2ContactEmployeeTypeEnumCreatedV3 - - EventV2ContactEmployeeTypeEnumDeactivatedV3 - - EventV2ContactEmployeeTypeEnumDeletedV3 - - EventV2ContactEmployeeTypeEnumUpdatedV3 - - EventV2ContactScopeUpdatedV3 - - EventV2ContactUserCreatedV3 - - EventV2ContactUserDeletedV3 - - EventV2ContactUserUpdatedV3 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrOffboardingChecklistUpdatedV2 - - EventV2CorehrOffboardingStatusUpdatedV2 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrOffboardingUpdatedV2 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPreHireUpdatedV1 - - EventV2CorehrProbationUpdatedV2 + - EventV2ElearningCourseRegistrationCreatedV2 + - EventV2ElearningCourseRegistrationUpdatedV2 + - EventV2ElearningCourseRegistrationDeletedV2 + - EventV2URLPreviewGet + - EventV2HireApplicationStageChangedV1 + - EventV2HireApplicationDeletedV1 + - EventV2CorehrJobCreatedV1 + - EventV2CorehrJobUpdatedV1 + - EventV2CorehrJobDeletedV1 + - EventV2CorehrProcessUpdatedV2 + - EventV2CorehrProcessNodeUpdatedV2 - EventV2CorehrProcessApproverUpdatedV2 - EventV2CorehrProcessCcUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessUpdatedV2 + - EventV2ContactCustomAttrEventUpdatedV3 + - EventV2ApplicationApplicationCreatedV6 + - EventV1AppOpen + - EventV1AppStatusChange + - EventV1OrderPaid + - EventV1AppTicket + - EventV1AppUninstalled + - EventV2ApplicationApplicationVisibilityAddedV6 + - EventV2ApplicationApplicationAppVersionPublishApplyV6 + - EventV2ApplicationApplicationAppVersionPublishRevokeV6 + - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV1OutApproval + - EventV1RemedyApproval + - EventV1ShiftApproval + - EventV1WorkApproval + - EventV1LeaveApprovalV2 + - EventV1LeaveApprovalRevert + - EventV2DriveFileCreatedInFolderV1 - EventV2DriveFileBitableFieldChangedV1 - EventV2DriveFileBitableRecordChangedV1 - - EventV2DriveFileCreatedInFolderV1 - - EventV2DriveFileDeletedV1 + - EventV2DriveFileTitleUpdatedV1 + - EventV2DriveFileReadV1 - EventV2DriveFileEditV1 - EventV2DriveFilePermissionMemberAddedV1 - EventV2DriveFilePermissionMemberRemovedV1 - - EventV2DriveFileReadV1 - - EventV2DriveFileTitleUpdatedV1 - EventV2DriveFileTrashedV1 - - EventV2ElearningCourseRegistrationCreatedV2 - - EventV2ElearningCourseRegistrationDeletedV2 - - EventV2ElearningCourseRegistrationUpdatedV2 - - EventV2HelpdeskNotificationApproveV1 - - EventV2HelpdeskTicketCreatedV1 + - EventV2DriveFileDeletedV1 + - EventV2ApprovalApprovalUpdatedV4 + - EventV1ThirdPartyMeetingRoomEventUpdated + - EventV1ThirdPartyMeetingRoomEventDeleted + - EventV2MeetingRoomMeetingRoomCreatedV1 + - EventV2MeetingRoomMeetingRoomUpdatedV1 + - EventV2MeetingRoomMeetingRoomStatusChangedV1 + - EventV2MeetingRoomMeetingRoomDeletedV1 + - EventV1ThirdPartyMeetingRoomEventCreated + - EventV2ApplicationApplicationFeedbackCreatedV6 + - EventV2ApplicationApplicationFeedbackUpdatedV6 + - EventV2TaskTaskUpdateTenantV1 + - EventV2TaskTaskUpdatedV1 + - EventV2TaskTaskCommentUpdatedV1 - EventV2HelpdeskTicketMessageCreatedV1 + - EventV2HelpdeskTicketCreatedV1 - EventV2HelpdeskTicketUpdatedV1 - - EventV2HireApplicationDeletedV1 - - EventV2HireApplicationStageChangedV1 - - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - - EventV2HireEHRImportTaskImportedV1 - - EventV2HireEcoAccountCreatedV1 - - EventV2HireEcoBackgroundCheckCanceledV1 - - EventV2HireEcoBackgroundCheckCreatedV1 - - EventV2HireEcoExamCreatedV1 - - EventV2HireOfferStatusChangedV1 - - EventV2HireReferralAccountAssetsUpdateV1 + - EventV2HelpdeskNotificationApproveV1 + - EventV2ContactDepartmentCreatedV3 + - EventV2ContactDepartmentDeletedV3 + - EventV2ContactDepartmentUpdatedV3 + - EventV2ContactUserUpdatedV3 + - EventV2ContactUserCreatedV3 + - EventV2ContactUserDeletedV3 + - EventV2ContactScopeUpdatedV3 + - EventV2ContactEmployeeTypeEnumCreatedV3 + - EventV2ContactEmployeeTypeEnumActivedV3 + - EventV2ContactEmployeeTypeEnumDeactivatedV3 + - EventV2ContactEmployeeTypeEnumUpdatedV3 + - EventV2ContactEmployeeTypeEnumDeletedV3 + - EventV2IMMessageReceiveV1 + - EventV2IMMessageReadV1 + - EventV2IMMessageReactionDeletedV1 + - EventV2IMMessageReactionCreatedV1 - EventV2IMChatDisbandedV1 + - EventV2IMChatUpdatedV1 - EventV2IMChatMemberBotAddedV1 - EventV2IMChatMemberBotDeletedV1 - EventV2IMChatMemberUserAddedV1 - - EventV2IMChatMemberUserDeletedV1 - EventV2IMChatMemberUserWithdrawnV1 - - EventV2IMChatUpdatedV1 - - EventV2IMMessageReactionCreatedV1 - - EventV2IMMessageReactionDeletedV1 - - EventV2IMMessageReadV1 - - EventV2IMMessageRecalledV1 - - EventV2IMMessageReceiveV1 - - EventV2MeetingRoomMeetingRoomCreatedV1 - - EventV2MeetingRoomMeetingRoomDeletedV1 - - EventV2MeetingRoomMeetingRoomStatusChangedV1 - - EventV2MeetingRoomMeetingRoomUpdatedV1 - - EventV2TaskTaskCommentUpdatedV1 - - EventV2TaskTaskUpdateTenantV1 - - EventV2TaskTaskUpdatedV1 - - EventV2URLPreviewGet - - EventV2VCMeetingAllMeetingEndedV1 - - EventV2VCMeetingAllMeetingStartedV1 + - EventV2IMChatMemberUserDeletedV1 + - EventV2VCMeetingMeetingStartedV1 + - EventV2VCMeetingMeetingEndedV1 - EventV2VCMeetingJoinMeetingV1 - EventV2VCMeetingLeaveMeetingV1 - - EventV2VCMeetingMeetingEndedV1 - - EventV2VCMeetingMeetingStartedV1 + - EventV2VCMeetingRecordingStartedV1 - EventV2VCMeetingRecordingEndedV1 - EventV2VCMeetingRecordingReadyV1 - - EventV2VCMeetingRecordingStartedV1 - - EventV2VCMeetingShareEndedV1 - EventV2VCMeetingShareStartedV1 - - EventV2VCReserveConfigUpdatedV1 + - EventV2VCMeetingShareEndedV1 + - EventV2ACSAccessRecordCreatedV1 + - EventV2ACSUserUpdatedV1 + - EventV2CalendarCalendarACLCreatedV4 + - EventV2CalendarCalendarACLDeletedV4 + - EventV2CalendarCalendarEventChangedV4 + - EventV2CalendarCalendarChangedV4 + - EventV1AddBot + - EventV1RemoveBot + - EventV1P2PChatCreate + - EventV1ReceiveMessage + - EventV1AddUserToChat + - EventV1RemoveUserFromChat + - EventV1RevokeAddUserFromChat + - EventV1ChatDisband + - EventV1ApprovalInstance + - EventV1ApprovalTask + - EventV1ApprovalCc + - EventV2AttendanceUserTaskUpdatedV1 + - EventV2AttendanceUserFlowCreatedV1 + - EventV2IMMessageRecalledV1 - EventV2VCRoomCreatedV1 - EventV2VCRoomDeletedV1 + - EventV2VCRoomUpdatedV1 + - EventV2VCMeetingAllMeetingStartedV1 + - EventV2VCMeetingAllMeetingEndedV1 - EventV2VCRoomLevelCreatedV1 - EventV2VCRoomLevelDeletedV1 - EventV2VCRoomLevelUpdatedV1 - - EventV2VCRoomUpdatedV1 + - EventV2VCReserveConfigUpdatedV1 + - EventV2ApplicationBotMenuV6 + - EventV2HireOfferStatusChangedV1 + - EventV2CorehrEmploymentCreatedV1 + - EventV2CorehrEmploymentUpdatedV1 + - EventV2CorehrEmploymentDeletedV1 + - EventV2CorehrPersonCreatedV1 + - EventV2CorehrPersonUpdatedV1 + - EventV2CorehrPersonDeletedV1 + - EventV2CorehrDepartmentCreatedV1 + - EventV2CorehrDepartmentUpdatedV1 + - EventV2CorehrDepartmentDeletedV1 + - EventV2CorehrJobDataEmployedV1 + - EventV2CorehrContractCreatedV1 + - EventV2CorehrEmploymentConvertedV1 + - EventV2CorehrJobChangeUpdatedV1 + - EventV2CorehrJobDataChangedV1 + - EventV2CorehrOffboardingUpdatedV1 + - EventV2CorehrEmploymentResignedV1 + - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2HireEHRImportTaskForInternshipOfferImportedV1 + - EventV2HireEHRImportTaskImportedV1 + - EventV2CorehrProbationUpdatedV2 + - EventV2CorehrPreHireUpdatedV1 + - EventV2HireEcoAccountCreatedV1 + - EventV2HireEcoBackgroundCheckCreatedV1 + - EventV2HireEcoBackgroundCheckCanceledV1 + - EventV2HireEcoExamCreatedV1 + - EventV2HireReferralAccountAssetsUpdateV1 + - EventV2CorehrContractDeletedV1 + - EventV2CorehrContractUpdatedV1 + - EventV1TripApproval + - EventV2CardActionTrigger + - EventV2CorehrOffboardingChecklistUpdatedV2 + - EventV2CorehrOffboardingStatusUpdatedV2 + - EventV2CorehrOffboardingUpdatedV2 - File - - DownloadFile + - UploadImage - DownloadImage - UploadFile - - UploadImage + - DownloadFile - Helpdesk - - AnswerHelpdeskTicketUserQuery + - CreateHelpdeskNotification + - UpdateHelpdeskNotification + - GetHelpdeskNotification + - PreviewHelpdeskNotification + - SubmitApproveHelpdeskNotification - CancelApproveHelpdeskNotification + - ExecuteSendHelpdeskNotification - CancelSendHelpdeskNotification - - CreateHelpdeskAgentSchedule - - CreateHelpdeskAgentSkill - - CreateHelpdeskCategory - - CreateHelpdeskFAQ - - CreateHelpdeskNotification + - StartHelpdeskService + - GetHelpdeskTicket + - UpdateHelpdeskTicket + - GetHelpdeskTicketList + - DownloadHelpdeskTicketImage + - AnswerHelpdeskTicketUserQuery + - GetHelpdeskTicketCustomizedFields + - GetHelpdeskTicketMessageList + - SendHelpdeskTicketMessage + - SendHelpdeskMessage + - GetHelpdeskTicketCustomizedFieldList + - DeleteHelpdeskTicketCustomizedField + - UpdateHelpdeskTicketCustomizedField - CreateHelpdeskTicketCustomizedField - - DeleteHelpdeskAgentSchedule - - DeleteHelpdeskAgentSkill + - GetHelpdeskTicketCustomizedField + - CreateHelpdeskCategory + - GetHelpdeskCategory + - UpdateHelpdeskCategory - DeleteHelpdeskCategory + - GetHelpdeskCategoryList + - CreateHelpdeskFAQ + - GetHelpdeskFAQ + - UpdateHelpdeskFAQ - DeleteHelpdeskFAQ - - DeleteHelpdeskTicketCustomizedField - - DownloadHelpdeskTicketImage - - ExecuteSendHelpdeskNotification + - GetHelpdeskFAQList + - GetHelpdeskFAQImage + - SearchHelpdeskFAQ + - UpdateHelpdeskAgent - GetHelpdeskAgentEmail + - CreateHelpdeskAgentSchedule + - DeleteHelpdeskAgentSchedule + - UpdateHelpdeskAgentSchedule - GetHelpdeskAgentSchedule - GetHelpdeskAgentScheduleList + - CreateHelpdeskAgentSkill - GetHelpdeskAgentSkill + - UpdateHelpdeskAgentSkill + - DeleteHelpdeskAgentSkill - GetHelpdeskAgentSkillList - GetHelpdeskAgentSkillRuleList - - GetHelpdeskCategory - - GetHelpdeskCategoryList - - GetHelpdeskFAQ - - GetHelpdeskFAQImage - - GetHelpdeskFAQList - - GetHelpdeskNotification - - GetHelpdeskTicket - - GetHelpdeskTicketCustomizedField - - GetHelpdeskTicketCustomizedFieldList - - GetHelpdeskTicketCustomizedFields - - GetHelpdeskTicketList - - GetHelpdeskTicketMessageList - - PreviewHelpdeskNotification - - SearchHelpdeskFAQ - - SendHelpdeskMessage - - SendHelpdeskTicketMessage - - StartHelpdeskService - - SubmitApproveHelpdeskNotification - SubscribeHelpdeskEvent - UnsubscribeHelpdeskEvent - - UpdateHelpdeskAgent - - UpdateHelpdeskAgentSchedule - - UpdateHelpdeskAgentSkill - - UpdateHelpdeskCategory - - UpdateHelpdeskFAQ - - UpdateHelpdeskNotification - - UpdateHelpdeskTicket - - UpdateHelpdeskTicketCustomizedField - Hire + - GetHireJobConfig + - CreateHireJob + - UpdateHireJob + - UpdateHireJobConfig + - GetHireJob + - GetHireJobManager + - QueryHireTalentObject + - GetHireTalent + - GetHireAttachment + - GetHireAttachmentPreview + - GetHireReferralWebsiteJobPostList + - GetHireReferralWebsiteJobPost + - GetHireReferralByApplication + - CreateHireExternalApplication + - UpdateHireExternalApplication + - DeleteHireExternalApplication + - CreateHireExternalInterview + - CreateHireExternalInterviewAssessment + - CreateHireExternalBackgroundCheck - AddHireTalentToFolder - - BatchDeleteHireEcoAccountCustomField - - BatchDeleteHireEcoBackgroundCheckCustomField - - BatchDeleteHireEcoBackgroundCheckPackage - - BatchDeleteHireEcoExamPaper + - GetHireTalentFolderList - BatchGetHireTalent - - BatchHireTalentPoolChangeTalentPool - - BatchQueryHireAgency - - BatchQueryHireBackgroundCheckOrder - - BatchQueryHireExternalBackgroundCheck - - BatchQueryHireExternalInterview - - BatchQueryHireExternalOffer + - GetHireJobProcessList + - CreateHireApplication + - TerminateHireApplication + - GetHireApplication + - GetHireApplicationList + - GetHireEvaluationList + - GetHireQuestionnaireList + - GetHireInterviewList + - CreateHireOffer + - UpdateHireOffer + - GetHireOfferByApplication + - GetHireOffer + - GetHireOfferList + - UpdateHireOfferStatus + - UpdateHireOfferInternStatus + - GetHireApplicationInterviewList + - GetHireOfferSchema + - UpdateHireEHRImportTask + - MakeHireTransferOnboardByApplication + - UpdateHireEmployee + - GetHireEmployeeByApplication + - GetHireEmployee + - CreateHireNote + - UpdateHireNote + - GetHireNote + - GetHireNoteList + - GetHireResumeSource + - CreateHireEcoAccountCustomField - BatchUpdateHireEcoAccountCustomField + - BatchDeleteHireEcoAccountCustomField + - CreateHireEcoBackgroundCheckCustomField - BatchUpdateHireEcoBackgroundCheckCustomField + - BatchDeleteHireEcoBackgroundCheckCustomField + - CreateHireEcoBackgroundCheckPackage - BatchUpdateHireEcoBackgroundCheckPackage - - BatchUpdateHireEcoExamPaper + - BatchDeleteHireEcoBackgroundCheckPackage + - UpdateHireEcoBackgroundCheckProgress + - UpdateHireEcoBackgroundCheckResult - CancelHireEcoBackgroundCheck - - CloseHireJob + - CreateHireEcoExamPaper + - BatchUpdateHireEcoExamPaper + - BatchDeleteHireEcoExamPaper + - CreateHireEcoExamLoginInfo + - UpdateHiredEcoExamResult + - CreateHireReferralAccount + - DeactivateHireReferralAccount + - WithdrawHireReferralAccount + - ReconcileHireReferralAccount + - GetHireInterviewRecord + - ListHireInterviewRecord + - GetHireTalentV2 + - CreateHireAttachment - CreateHireAdvertisementPublish + - BatchQueryHireAgency + - GetHireAgency + - GetHireAgencyAccount - CreateHireAgencyOperateAgencyAccount - CreateHireAgencyProtect - CreateHireAgencyProtectSearch - - CreateHireApplication + - QueryHireAgency - CreateHireApplicationCancelOnboard + - GetHireApplicationDetail - CreateHireApplicationRecover - - CreateHireAttachment - - CreateHireEcoAccountCustomField - - CreateHireEcoBackgroundCheckCustomField - - CreateHireEcoBackgroundCheckPackage - - CreateHireEcoExamLoginInfo - - CreateHireEcoExamPaper + - TransferHireApplicationStage + - BatchQueryHireBackgroundCheckOrder + - ListHireBackgroundCheckOrder + - SearchHireDiversityInclusion + - ListHireEvaluationTask - CreateHireExam - - CreateHireExternalApplication - - CreateHireExternalBackgroundCheck - - CreateHireExternalInterview - - CreateHireExternalInterviewAssessment - - CreateHireExternalOffer - - CreateHireExternalReferralReward - - CreateHireJob - - CreateHireJobRequirement - - CreateHireNote - - CreateHireOffer - - CreateHireReferralAccount - - CreateHireReferralAccountEnable - - CreateHireTalentBlocklistChangeTalentBlock - - CreateHireTalentCombinedCreate - - CreateHireTalentCombinedUpdate - - CreateHireTalentExternalInfo - - CreateHireTalentOnboardStatus - - CreateHireTalentPoolMoveTalent - - CreateHireTalentTag - - CreateHireTripartiteAgreement - - CreateHireWebsiteChannel - - CreateHireWebsiteDeliveryByAttachment - - CreateHireWebsiteDeliveryByResume - - CreateHireWebsiteSiteUser - - DeactivateHireReferralAccount - - DeleteHireExternalApplication + - ListHireExamMarkingTask + - ListHireExternalApplication + - BatchQueryHireExternalBackgroundCheck - DeleteHireExternalBackgroundCheck + - UpdateHireExternalBackgroundCheck + - BatchQueryHireExternalInterview - DeleteHireExternalInterview + - UpdateHireExternalInterview + - UpdateHireExternalInterviewAssessment + - BatchQueryHireExternalOffer + - CreateHireExternalOffer - DeleteHireExternalOffer + - UpdateHireExternalOffer + - CreateHireExternalReferralReward - DeleteHireExternalReferralReward - - DeleteHireJobRequirement - - DeleteHireNote - - DeleteHireTripartiteAgreement - - DeleteHireWebsiteChannel - - GetHireAgency - - GetHireAgencyAccount - - GetHireApplication - - GetHireApplicationDetail - - GetHireApplicationInterviewList - - GetHireApplicationList - - GetHireAttachment - - GetHireAttachmentPreview - - GetHireEmployee - - GetHireEmployeeByApplication - - GetHireEvaluationList - GetHireInterviewByTalent - - GetHireInterviewList - - GetHireInterviewRecord + - ListHireInterviewFeedbackForm - GetHireInterviewRecordAttachment - GetHireInterviewRecordV1 - - GetHireJob - - GetHireJobConfig - - GetHireJobDetail - - GetHireJobManager - - GetHireJobProcessList - - GetHireJobRecruiter - - GetHireMinutes - - GetHireNote - - GetHireNoteList - - GetHireOffer - - GetHireOfferApplicationForm - - GetHireOfferByApplication - - GetHireOfferList - - GetHireOfferSchema - - GetHireQuestionnaireList - - GetHireReferralAccountAssets - - GetHireReferralByApplication - - GetHireReferralWebsiteJobPost - - GetHireReferralWebsiteJobPostList - - GetHireResumeSource - - GetHireRole - - GetHireTalent - - GetHireTalentFolderList - - GetHireTalentList - - GetHireTalentV2 - - GetHireWebsiteDeliveryTask - - GetHireWebsiteJobPost - - ListHireBackgroundCheckOrder - - ListHireEvaluationTask - - ListHireExamMarkingTask - - ListHireExternalApplication - - ListHireInterviewFeedbackForm - - ListHireInterviewRecord - ListHireInterviewRecordV1 - ListHireInterviewRegistrationSchema - ListHireInterviewRoundType - ListHireInterviewTask - ListHireInterviewer + - UpdateHireInterviewer + - CloseHireJob + - GetHireJobDetail - ListHireJob + - OpenHireJob + - GetHireJobRecruiter - ListHireJobFunction + - SearchHireJobPublishRecord + - CreateHireJobRequirement + - DeleteHireJobRequirement - ListHireJobRequirement - ListHireJobRequirementByID + - UpdateHireJobRequirement - ListHireJobRequirementSchema - ListHireJobSchema - ListHireJobType - ListHireLocation + - QueryHireLocation + - GetHireMinutes + - DeleteHireNote + - GetHireOfferApplicationForm - ListHireOfferApplicationForm - ListHireOfferApprovalTemplate + - UpdateHireOfferCustomField - ListHirePortalApplySchema + - SearchHireReferral + - CreateHireReferralAccountEnable + - GetHireReferralAccountAssets - ListHireRegistrationSchema + - GetHireRole - ListHireRole - ListHireSubject + - CreateHireTalentExternalInfo + - UpdateHireTalentExternalInfo + - CreateHireTalentCombinedCreate + - CreateHireTalentCombinedUpdate + - GetHireTalentList + - CreateHireTalentOnboardStatus + - RemoveHireTalentToFolder + - CreateHireTalentTag + - SearchHireTalentOperationLog + - CreateHireTalentBlocklistChangeTalentBlock + - BatchHireTalentPoolChangeTalentPool + - CreateHireTalentPoolMoveTalent + - SearchHireTalentPool - ListHireTalentTag - ListHireTerminationReason + - SearchHireTest - ListHireTodo + - CreateHireTripartiteAgreement + - DeleteHireTripartiteAgreement - ListHireTripartiteAgreement + - UpdateHireTripartiteAgreement - ListHireUserRole - - ListHireWebsite + - CreateHireWebsiteChannel + - DeleteHireWebsiteChannel - ListHireWebsiteChannel - - ListHireWebsiteJobPost - - MakeHireTransferOnboardByApplication - - OpenHireJob - - QueryHireAgency - - QueryHireLocation - - QueryHireTalentObject - - ReconcileHireReferralAccount - - RemoveHireTalentToFolder - - SearchHireDiversityInclusion - - SearchHireJobPublishRecord - - SearchHireReferral - - SearchHireTalentOperationLog - - SearchHireTalentPool - - SearchHireTest - - SearchHireWebsiteJobPost - - TerminateHireApplication - - TransferHireApplicationStage - - UpdateHireEHRImportTask - - UpdateHireEcoBackgroundCheckProgress - - UpdateHireEcoBackgroundCheckResult - - UpdateHireEmployee - - UpdateHireExternalApplication - - UpdateHireExternalBackgroundCheck - - UpdateHireExternalInterview - - UpdateHireExternalInterviewAssessment - - UpdateHireExternalOffer - - UpdateHireInterviewer - - UpdateHireJob - - UpdateHireJobConfig - - UpdateHireJobRequirement - - UpdateHireNote - - UpdateHireOffer - - UpdateHireOfferCustomField - - UpdateHireOfferInternStatus - - UpdateHireOfferStatus - - UpdateHireTalentExternalInfo - - UpdateHireTripartiteAgreement - UpdateHireWebsiteChannel - - UpdateHiredEcoExamResult - - WithdrawHireReferralAccount + - CreateHireWebsiteDeliveryByAttachment + - CreateHireWebsiteDeliveryByResume + - GetHireWebsiteDeliveryTask + - GetHireWebsiteJobPost + - ListHireWebsiteJobPost + - SearchHireWebsiteJobPost + - CreateHireWebsiteSiteUser + - ListHireWebsite - HumanAuth - - CreateIdentity - - CropFaceVerifyImage - GetFaceVerifyAuthResult - UploadFaceVerifyImage + - CropFaceVerifyImage + - CreateIdentity - Jssdk - - GenerateJssdkSignature - GetJssdkTicket + - GenerateJssdkSignature - Lingo - - BatchHighlightLingoEntity - CreateLingoDraft - - CreateLingoEntity + - UpdateLingoDraft - DeleteLingoEntity - - DownloadLingoFile - - ExtractLingoEntity - - GetLingoClassificationList + - CreateLingoEntity + - UpdateLingoEntity - GetLingoEntity - GetLingoEntityList - - GetLingoRepoList - - HighlightLingoEntity - MatchLingoEntity - SearchLingoEntity - - UpdateLingoDraft - - UpdateLingoEntity + - HighlightLingoEntity + - ExtractLingoEntity + - GetLingoClassificationList + - GetLingoRepoList - UploadLingoFile + - DownloadLingoFile + - BatchHighlightLingoEntity - MDM - BindMDMUserAuthDataRelation + - UnbindMDMUserAuthDataRelation - GetMDMBatchCountryRegion - ListMDMCountryRegion - - UnbindMDMUserAuthDataRelation - Mail - - ApplyMailRule - - CreateUserMailboxMailContact - - CreateMailUserMailboxFolder - - CreateMailUserMailboxRule - - DeleteUserMailboxMailContact - - DeleteMailUserMailboxFolder - - DeleteMailUserMailboxRule - - ListUserMailboxMailContact - - GetMailUserMailboxEventSubscription - - ListMailUserMailboxFolder - - GetMailUserMailboxMessage - - ListMailUserMailboxMessage - - GetMailMessageSubscription - - ListMailUserMailboxRule - - CreateMailUserMailboxRuleReorder - - CreateMailUserMailboxMessageSend - - SubscribeMailUserMailboxEvent - - SubscribeMailMessage - - UnsubscribeMailUserMailboxEvent - - UnsubscribeMailUserMailboxEvent - - UpdateUserMailboxMailContact - - UpdateMailUserMailboxFolder - - UpdateMailUserMailboxRule - - BatchCreateMailGroupManager - - BatchCreateMailGroupMember - - BatchCreateMailGroupPermissionMember - - BatchCreatePublicMailboxMember - - BatchDeleteMailGroupManager - - BatchDeleteMailGroupMember - - BatchDeleteMailGroupPermissionMember - - BatchDeletePublicMailboxMember - - ClearPublicMailboxMember + - GetMailUser - CreateMailGroup - - CreateMailGroupAlias - - CreateMailGroupMember - - CreateMailGroupPermissionMember - - CreateMailPublicMailboxAlias - - CreateMailUserMailboxAlias - - CreatePublicMailbox - - CreatePublicMailboxMember - DeleteMailGroup - - DeleteMailGroupAlias - - DeleteMailGroupMember - - DeleteMailGroupPermissionMember - - DeleteMailPublicMailboxAlias - - DeleteMailUserMailbox - - DeleteMailUserMailboxAlias - - DeletePublicMailbox - - DeletePublicMailboxMember - - DownloadMailUserMailboxMessageAttachmentURL + - UpdateMailGroupPatch + - UpdateMailGroup - GetMailGroup - - GetMailGroupAliasList - GetMailGroupList + - BatchCreateMailGroupManager + - BatchDeleteMailGroupManager - GetMailGroupManagerList + - CreateMailGroupMember + - DeleteMailGroupMember - GetMailGroupMember - GetMailGroupMemberList + - BatchCreateMailGroupMember + - BatchDeleteMailGroupMember + - CreateMailGroupPermissionMember + - DeleteMailGroupPermissionMember - GetMailGroupPermissionMember - GetMailGroupPermissionMemberList - - GetMailPublicMailboxAliasList - - GetMailUser - - GetMailUserMailboxAliasList - - GetMailUserMailboxMessageByCard + - BatchCreateMailGroupPermissionMember + - BatchDeleteMailGroupPermissionMember + - CreateMailGroupAlias + - GetMailGroupAliasList + - DeleteMailGroupAlias + - CreatePublicMailbox - GetPublicMailbox - GetPublicMailboxList + - UpdatePublicMailboxPatch + - UpdatePublicMailbox + - DeletePublicMailbox + - CreatePublicMailboxMember - GetPublicMailboxMember - GetPublicMailboxMemberList + - BatchCreatePublicMailboxMember + - BatchDeletePublicMailboxMember + - DeletePublicMailboxMember + - ClearPublicMailboxMember + - CreateMailPublicMailboxAlias + - GetMailPublicMailboxAliasList + - DeleteMailPublicMailboxAlias + - CreateMailUserMailboxAlias + - DeleteMailUserMailboxAlias + - GetMailUserMailboxAliasList + - DeleteMailUserMailbox - RemoveMailPublicMailboxToRecycleBin - - UpdateMailGroup - - UpdateMailGroupPatch - - UpdatePublicMailbox - - UpdatePublicMailboxPatch + - SubscribeMailUserMailboxEvent + - GetMailUserMailboxEventSubscription + - UnsubscribeMailUserMailboxEvent + - CreateMailUserMailboxFolder + - DeleteMailUserMailboxFolder + - ListMailUserMailboxFolder + - UpdateMailUserMailboxFolder + - CreateUserMailboxMailContact + - DeleteUserMailboxMailContact + - ListUserMailboxMailContact + - UpdateUserMailboxMailContact + - DownloadMailUserMailboxMessageAttachmentURL + - GetMailUserMailboxMessage + - GetMailUserMailboxMessageByCard + - ListMailUserMailboxMessage + - CreateMailUserMailboxMessageSend + - CreateMailUserMailboxRule + - DeleteMailUserMailboxRule + - ListMailUserMailboxRule + - CreateMailUserMailboxRuleReorder + - UpdateMailUserMailboxRule + - ApplyMailRule + - GetMailMessageSubscription + - SubscribeMailMessage - MeetingRoom - GetMeetingRoomCustomization - Message - - CreateAppFeedCard - - CreateIMTagRelation - - DeleteAppFeedCard - - ListIMTagRelation - - UpdateAppFeedCard - - DeleteIMTagRelation - - UpdateAppFeedCardButton - - InstantReminderAppFeedCard - - BatchDeleteMessage + - SendEphemeralMessage + - SendUrgentAppMessage + - SendUrgentSmsMessage + - SendUrgentPhoneMessage + - SendRawMessageOld - BatchSendOldRawMessage - - BatchUpdateURLPreview - - CreateIMMessagePushFollowUp - - CreateIMTag - - CreateMessagePin - - CreateMessageReaction - - DeleteEphemeralMessage + - SendRawMessage + - ReplyRawMessage + - UpdateMessageEdit - DeleteMessage - - DeleteMessagePin - - DeleteMessageReaction - ForwardMessage + - MergeForwardMessage - ForwardThreadMessage - - GetBatchSentMessageProgress + - BatchDeleteMessage + - UpdateMessage + - UpdateMessageDelay + - GetMessageReadUserList - GetBatchSentMessageReadUser - - GetMessage - - GetMessageFile + - GetBatchSentMessageProgress - GetMessageList - - GetMessagePinList + - GetMessageFile + - GetMessage + - DeleteEphemeralMessage + - CreateMessageReaction - GetMessageReactionList - - GetMessageReadUserList + - DeleteMessageReaction + - CreateMessagePin + - DeleteMessagePin + - GetMessagePinList - GetMessageSpecialFocusList - GetMessageSpecialFocusUnread + - DeleteAppFeedCard + - UpdateAppFeedCard + - CreateAppFeedCard + - CreateIMTagRelation + - ListIMTagRelation + - DeleteIMTagRelation + - UpdateAppFeedCardButton + - UpdateIMFeedCardBotTimeSentive + - InstantReminderAppFeedCard + - CreateIMTag + - UpdateIMTag + - BatchUpdateURLPreview + - CreateIMMessagePushFollowUp - MGetIMTag - - MergeForwardMessage - Reply - - ReplyRawMessage - Send - - SendEphemeralMessage - - SendRawMessage - - SendRawMessageOld - - SendUrgentAppMessage - - SendUrgentPhoneMessage - - SendUrgentSmsMessage - - UpdateIMFeedCardBotTimeSentive - - UpdateIMTag - - UpdateMessage - - UpdateMessageDelay - - UpdateMessageEdit - Mina - MinaCodeToSession - Minutes + - GetMinutesStatistics - GetMinutesMinute - GetMinutesMinuteMedia - GetMinutesMinuteTranscript - - GetMinutesStatistics - Moments - GetMomentsPost - OKR - - GetOKRReview - - BatchGetOKR - - BatchUpdateOKRMetricSourceTableItem - CreateOKRPeriod - - CreateOKRProgressRecord - - DeleteOKRProgressRecord - - GetOKRMetricSourceList - - GetOKRMetricSourceTableItem - - GetOKRMetricSourceTableItemList - - GetOKRMetricSourceTableList + - UpdateOKRPeriod - GetOKRPeriodList - GetOKRPeriodRuleList - - GetOKRProgressRecord + - BatchGetOKR - GetUserOKRList - - UpdateOKRMetricSourceTableItem - - UpdateOKRPeriod + - DeleteOKRProgressRecord - UpdateOKRProgressRecord + - GetOKRProgressRecord + - CreateOKRProgressRecord - UploadOKRImage + - GetOKRMetricSourceList + - GetOKRMetricSourceTableList + - BatchUpdateOKRMetricSourceTableItem + - UpdateOKRMetricSourceTableItem + - GetOKRMetricSourceTableItem + - GetOKRMetricSourceTableItemList + - GetOKRReview - Passport - - CreatePassportSessionLogout - GetPassportSession + - CreatePassportSessionLogout - Payroll - - CreatePayrollDatasourceRecordSave - - CreatePayrollPaymentActivityArchive - ListPayrollAcctItem - ListPayrollCostAllocationDetail - ListPayrollCostAllocationPlan - ListPayrollCostAllocationReport - ListPayrollDatasource + - QueryPayrollDatasourceRecord + - CreatePayrollDatasourceRecordSave - ListPayrollPaygroup + - CreatePayrollPaymentActivityArchive - ListPayrollPaymentActivity - ListPayrollPaymentActivityDetail - - QueryPayrollDatasourceRecord - QueryPayrollPaymentDetail -- Performance - - CreatePerformanceAdditionalInformationImport - - CreatePerformanceMetricDetailImport - - CreatePerformanceUserGroupUserRelWrite - - DeletePerformanceAdditionalInformationsBatch - - GetPerformanceReviewData +- Performance - GetPerformanceSemesterList - - GetPerformanceStageTaskByPage - GetPerformanceStageTaskByUser - - ListPerformanceMetricTag + - GetPerformanceStageTaskByPage + - GetPerformanceReviewData - QueryPerformanceActivity + - CreatePerformanceAdditionalInformationImport - QueryPerformanceAdditionalInformation + - DeletePerformanceAdditionalInformationsBatch - QueryPerformanceIndicator + - CreatePerformanceMetricDetailImport - QueryPerformanceMetricDetail - QueryPerformanceMetricField - QueryPerformanceMetricLib + - ListPerformanceMetricTag - QueryPerformanceMetricTemplate - QueryPerformanceQuestion - QueryPerformanceReviewData - QueryPerformanceReviewTemplate - QueryPerformanceReviewee + - CreatePerformanceUserGroupUserRelWrite - QueryPerformanceUserInfo - PersonalSettings - - BatchClosePersonalSettingsSystemStatus - - BatchOpenPersonalSettingsSystemStatus - CreatePersonalSettingsSystemStatus - DeletePersonalSettingsSystemStatus - - GetPersonalSettingsSystemStatusList - UpdatePersonalSettingsSystemStatus + - GetPersonalSettingsSystemStatusList + - BatchOpenPersonalSettingsSystemStatus + - BatchClosePersonalSettingsSystemStatus - Report - - QueryReportRule - RemoveReportView + - QueryReportRule - QueryReportTask - Search - - BatchCreateSearchDataSourceItem + - SearchMessage + - SearchApp - CreateSearchDataSource - - CreateSearchDataSourceItem - - CreateSearchSchema + - GetSearchDataSource + - UpdateSearchDataSource + - GetSearchDataSourceList - DeleteSearchDataSource + - BatchCreateSearchDataSourceItem + - CreateSearchDataSourceItem + - GetSearchDataSourceItem - DeleteSearchDataSourceItem + - UpdateSearchSchema - DeleteSearchSchema - - GetSearchDataSource - - GetSearchDataSourceItem - - GetSearchDataSourceList - GetSearchSchema - - SearchApp - - SearchMessage + - CreateSearchSchema - SearchSearchDocWiki - - UpdateSearchDataSource - - UpdateSearchSchema - SecurityAndCompliance + - ListSecurityAndComplianceOpenapiLogData + - UpdateSecurityAndComplianceDeviceApplyRecord - CreateSecurityAndComplianceDeviceRecord - DeleteSecurityAndComplianceDeviceRecord - GetSecurityAndComplianceDeviceRecord - - GetSecurityAndComplianceDeviceRecordMine - ListSecurityAndComplianceDeviceRecord - - ListSecurityAndComplianceOpenapiLogData - - UpdateSecurityAndComplianceDeviceApplyRecord + - GetSecurityAndComplianceDeviceRecordMine - UpdateSecurityAndComplianceDeviceRecord - Task - - AddTaskDependency - - AddTaskMember - - AddTaskReminder - - AddTaskTasklist - - AddTaskTasklistMember - - CreateTaskSubtask - - GetTaskTaskListOfSection - - GetTaskTaskListOfTasklist - - GetTaskSubtaskList - - RemoveTaskDependency - - RemoveTaskMember - - RemoveTaskReminder - - RemoveTaskTasklist - - RemoveTaskTasklistMember - - AddTaskCustomField - - BatchDeleteTaskCollaborator + - CreateTaskFollower + - DeleteTaskFollower - BatchDeleteTaskFollower - - CompleteTask - - CreateTask + - GetTaskFollowerList - CreateTaskCollaborator - - CreateTaskComment - - CreateTaskCommentV2 - - CreateTaskCustomField - - CreateTaskCustomFieldOption - - CreateTaskFollower - - CreateTaskReminder - - CreateTaskSection - - CreateTaskTasklist - - CreateTaskTasklistActivitySubscription - - DeleteTask - - DeleteTaskAttachment - DeleteTaskCollaborator - - DeleteTaskComment - - DeleteTaskCommentV2 - - DeleteTaskFollower + - BatchDeleteTaskCollaborator + - GetTaskCollaboratorList + - CreateTaskReminder + - GetTaskReminderList - DeleteTaskReminder - - DeleteTaskSection - - DeleteTaskTasklist - - DeleteTaskTasklistActivitySubscription + - CreateTask - GetTask + - GetTaskList + - DeleteTask + - UpdateTask + - CompleteTask + - UncompleteTask + - CreateTaskComment + - GetTaskComment + - DeleteTaskComment + - UpdateTaskComment + - DeleteTaskAttachment - GetTaskAttachment - GetTaskAttachmentList - - GetTaskCollaboratorList - - GetTaskComment + - UploadTaskAttachment + - CreateTaskCommentV2 + - DeleteTaskCommentV2 - GetTaskCommentV2 + - ListTaskComment + - UpdateTaskCommentV2 + - CreateTaskCustomFieldOption + - UpdateTaskCustomFieldOption + - AddTaskCustomField + - CreateTaskCustomField - GetTaskCustomField - - GetTaskFollowerList - - GetTaskList - - GetTaskReminderList + - ListTaskCustomField + - UpdateTaskCustomField + - RemoveTaskCustomField + - CreateTaskSection + - DeleteTaskSection - GetTaskSection - GetTaskSectionList - - GetTaskTasklist + - UpdateTaskSection + - GetTaskTaskListOfSection + - CreateTaskSubtask + - GetTaskSubtaskList + - AddTaskDependency + - AddTaskMember + - AddTaskReminder + - AddTaskTasklist + - RemoveTaskDependency + - RemoveTaskMember + - RemoveTaskReminder + - RemoveTaskTasklist + - GetTaskTasklists + - CreateTaskTasklistActivitySubscription + - DeleteTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscriptionList + - UpdateTaskTasklistActivitySubscription + - AddTaskTasklistMember + - CreateTaskTasklist + - DeleteTaskTasklist + - GetTaskTasklist - GetTaskTasklistList - - GetTaskTasklists - - ListTaskComment - - ListTaskCustomField - - RemoveTaskCustomField - - UncompleteTask - - UpdateTask - - UpdateTaskComment - - UpdateTaskCommentV2 - - UpdateTaskCustomField - - UpdateTaskCustomFieldOption - - UpdateTaskSection - UpdateTaskTasklist - - UpdateTaskTasklistActivitySubscription - - UploadTaskAttachment + - RemoveTaskTasklistMember + - GetTaskTaskListOfTasklist - TaskV1 + - GetTaskV1CommentList - CreateTaskV1 - DeleteTaskV1 - - GetTaskV1CommentList - GetTaskV1 - GetTaskV1List - UpdateTaskV1 @@ -1794,86 +1795,86 @@ API Count: 1621, Event Count: 153 - UncompleteTaskV1 - UpdateTaskV1Comment - Tenant - - GetTenant - GetTenantProductAssignInfo + - GetTenant - TrustParty - - GetTrustPartyCollaborationTenant - GetTrustPartyCollaborationTenantCollaborationDepartment - GetTrustPartyCollaborationTenantCollaborationUser - - GetTrustPartyCollaborationTenantVisibleOrganization + - GetTrustPartyCollaborationTenant - ListTrustPartyCollaborationTenant + - GetTrustPartyCollaborationTenantVisibleOrganization - VC - - QueryVCRoomConfig - ApplyVCReserve + - UpdateVCReserve + - DeleteVCReserve + - GetVCReserve + - GetVCReserveActiveMeeting + - GetVCMeeting + - ListVCMeetingByNo + - InviteVCMeeting + - KickoutVCMeeting + - SetVCHostMeeting + - EndVCMeeting + - StartVCMeetingRecording + - StopVCMeetingRecording + - GetVCMeetingRecording + - SetVCPermissionMeetingRecording + - GetVCDailyReport + - GetVCTopUserReport + - GetVCRoomList + - GetVCRoom - BatchGetVCRoom - - BatchGetVCRoomLevel - CreateVCRoom - - CreateVCRoomLevel - - DeleteVCReserve + - UpdateVCRoom - DeleteVCRoom + - SearchVCRoom + - GetVCRoomLevelList + - GetVCRoomLevel + - BatchGetVCRoomLevel + - CreateVCRoomLevel + - UpdateVCRoomLevel - DeleteVCRoomLevel - - DownloadVCExportFile - - EndVCMeeting + - SearchVCRoomLevel + - SetVCScopeConfig + - GetVCScopeConfig + - GetVCReserveConfig + - UpdateVCReserveConfig + - GetVCReserveConfigForm + - UpdateVCReserveConfigForm + - GetVCReserveConfigAdmin + - UpdateVCReserveConfigAdmin + - GetVCReserveConfigDisableInform + - UpdateVCReserveConfigDisableInform - ExportVCMeetingList - ExportVCParticipantList - ExportVCParticipantQualityList - ExportVCResourceReservationList - - GetVCAlertList - - GetVCDailyReport - GetVCExportTask - - GetVCMeeting + - DownloadVCExportFile + - GetVCAlertList - GetVCMeetingList - - GetVCMeetingRecording - GetVCParticipantList - GetVCParticipantQualityList - - GetVCReserve - - GetVCReserveActiveMeeting - - GetVCReserveConfig - - GetVCReserveConfigAdmin - - GetVCReserveConfigDisableInform - - GetVCReserveConfigForm - GetVCResourceReservationList - - GetVCRoom - - GetVCRoomLevel - - GetVCRoomLevelList - - GetVCRoomList - - GetVCScopeConfig - - GetVCTopUserReport - - InviteVCMeeting - - KickoutVCMeeting - - ListVCMeetingByNo - - SearchVCRoom - - SearchVCRoomLevel - - SetVCHostMeeting - - SetVCPermissionMeetingRecording + - QueryVCRoomConfig - SetVCRoomConfig - SetVCRoomConfigCheckboardAccessCode - SetVCRoomConfigRoomAccessCode - - SetVCScopeConfig - - StartVCMeetingRecording - - StopVCMeetingRecording - - UpdateVCReserve - - UpdateVCReserveConfig - - UpdateVCReserveConfigAdmin - - UpdateVCReserveConfigDisableInform - - UpdateVCReserveConfigForm - - UpdateVCRoom - - UpdateVCRoomLevel - VCMeeting - - GetVCMeetingDefaultBuildingBatchGet - - GetVCMeetingDefaultBuildingBatchGetID - - GetVCMeetingDefaultRoomBatchGet - - GetVCMeetingDefaultRoomBatchGetID + - ListVCMeetingDefaultRoom - CreateVCMeetingDefaultBuildingCreate + - GetVCMeetingDefaultRoomBatchGet + - CreateVCMeetingDefaultBuildingUpdate - CreateVCMeetingDefaultRoomCreate + - CreateVCMeetingDefaultRoomUpdate - CreateVCMeetingDefaultBuildingDelete - - CreateVCMeetingDefaultRoomDelete - - ListVCMeetingDefaultBuilding - ListVCMeetingDefaultCountry + - GetVCMeetingDefaultBuildingBatchGetID - ListVCMeetingDefaultDistrict - - ListVCMeetingDefaultRoom - - CreateVCMeetingDefaultBuildingUpdate - - CreateVCMeetingDefaultRoomUpdate + - CreateVCMeetingDefaultRoomDelete + - GetVCMeetingDefaultRoomBatchGetID + - ListVCMeetingDefaultBuilding + - GetVCMeetingDefaultBuildingBatchGet - Verification - GetVerification diff --git a/README_CN.md b/README_CN.md index 6e9a95b6..cbfefe56 100644 --- a/README_CN.md +++ b/README_CN.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## 支持的接口 -API 总数: 1621, 事件总数: 153 +API 总数: 1622, 事件总数: 153
@@ -46,346 +46,346 @@ API 总数: 1621, 事件总数: 153 - ACS - - CreateACSRuleExternal - - CreateACSVisitor - - DeleteACSRuleExternal - DeleteACSVisitor + - CreateACSVisitor - DeviceBindACSRuleExternal - - GetACSAccessRecordList - - GetACSAccessRecordPhoto - - GetACSDeviceList - GetACSRuleExternal + - DeleteACSRuleExternal + - CreateACSRuleExternal + - UpdateACSUser - GetACSUser - - GetACSUserFace - GetACSUserList - - UpdateACSUser - UpdateACSUserFace + - GetACSUserFace + - GetACSDeviceList + - GetACSAccessRecordList + - GetACSAccessRecordPhoto - AI - - DetectFaceAttributes - - DetectTextLanguage - - ExtractAIContractField - ParseAIResume - - RecognizeAIBankCard - - RecognizeAIBusinessCard - - RecognizeAIBusinessLicense - - RecognizeAIChinesePassport - - RecognizeAIDrivingLicense - - RecognizeAIFoodManageLicense - - RecognizeAIFoodProduceLicense + - RecognizeAIVehicleInvoice - RecognizeAIHealthCertificate - RecognizeAIHkmMainlandTravelPermit - - RecognizeAITaxiInvoice - - RecognizeAITrainInvoice - RecognizeAITwMainlandTravelPermit - - RecognizeAIVatInvoice - - RecognizeAIVehicleInvoice + - RecognizeAIChinesePassport + - RecognizeAIBankCard - RecognizeAIVehicleLicense + - RecognizeAITrainInvoice + - RecognizeAITaxiInvoice - RecognizeAiidCard + - RecognizeAIFoodProduceLicense + - RecognizeAIFoodManageLicense + - RecognizeAIDrivingLicense + - RecognizeAIVatInvoice + - RecognizeAIBusinessLicense + - ExtractAIContractField + - RecognizeAIBusinessCard - RecognizeBasicImage - - RecognizeSpeechFile - RecognizeSpeechStream + - RecognizeSpeechFile - TranslateText + - DetectTextLanguage + - DetectFaceAttributes - APaaS - - AddAPaaSApprovalTaskAssignee - - AgreeAPaaSApprovalTask + - ListAPaaSApp + - ListAPaaSApplicationAuditLogAuditLog + - GetAPaaSApplicationAuditLogDataChangeLogDetail + - ListAPaaSApplicationAuditLogDataChangeLogs + - GetAPaaSApplicationAuditLog + - GetAPaaSApplicationEnvironmentVariable + - QueryAPaaSApplicationEnvironmentVariable + - CreateAPaaSApplicationFlowExecute + - CreateAPaaSApplicationFunctionInvoke - BatchCreateAPaaSApplicationObjectRecord - - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization - - BatchCreateAPaaSApplicationRoleMemberAuthorization - BatchDeleteAPaaSApplicationObjectRecord - BatchQueryAPaaSApplicationObjectRecord - - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization - - BatchRemoveAPaaSApplicationRoleMemberAuthorization - BatchUpdateAPaaSApplicationObjectRecord - - CreateAPaaSApplicationFlowExecute - - CreateAPaaSApplicationFunctionInvoke - - CreateAPaaSApplicationObjectOqlQuery - CreateAPaaSApplicationObjectRecord + - DeleteAPaaSApplicationObjectRecord + - UpdateAPaaSApplicationObjectRecord + - QueryAPaaSApplicationObjectRecord + - CreateAPaaSApplicationObjectOqlQuery + - SearchAPaaSApplicationObject + - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization + - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization + - BatchCreateAPaaSApplicationRoleMemberAuthorization + - BatchRemoveAPaaSApplicationRoleMemberAuthorization + - GetAPaaSApplicationRoleMember - CreateAPaaSApprovalInstanceCancel + - AddAPaaSApprovalTaskAssignee + - AgreeAPaaSApprovalTask + - RejectAPaaSApprovalTask + - TransferAPaaSApprovalTask + - ListAPaaSSeatActivity + - ListAPaaSSeatAssignment - CreateAPaaSUserTaskCc - CreateAPaaSUserTaskChatGroup - CreateAPaaSUserTaskExpediting + - QueryAPaaSUserTask - CreateAPaaSUserTaskRollback - CreateAPaaSUserTaskRollbackPoints - - CreateAPaaSWorkspaceSqlCommands - - CreateAPaaSWorkspaceTableRecordsPost - - DeleteAPaaSApplicationObjectRecord - - DeleteAPaaSWorkspaceTableRecordsDelete - - GetAPaaSApplicationAuditLog - - GetAPaaSApplicationAuditLogDataChangeLogDetail - - GetAPaaSApplicationEnvironmentVariable - - GetAPaaSApplicationRoleMember - GetAPaaSWorkspaceEnumGet - - GetAPaaSWorkspaceTableGet - - GetAPaaSWorkspaceTableRecordsGet - - GetAPaaSWorkspaceViewViewsGet - - ListAPaaSApp - - ListAPaaSApplicationAuditLogAuditLog - - ListAPaaSApplicationAuditLogDataChangeLogs - - ListAPaaSSeatActivity - - ListAPaaSSeatAssignment - ListAPaaSWorkspaceEnum - ListAPaaSWorkspaceTable - - QueryAPaaSApplicationEnvironmentVariable - - QueryAPaaSApplicationObjectRecord - - QueryAPaaSUserTask - - RejectAPaaSApprovalTask - - SearchAPaaSApplicationObject - - TransferAPaaSApprovalTask - - UpdateAPaaSApplicationObjectRecord - UpdateAPaaSWorkspaceTableRecordsBatchUpdate + - DeleteAPaaSWorkspaceTableRecordsDelete + - GetAPaaSWorkspaceTableRecordsGet - UpdateAPaaSWorkspaceTableRecordsPatch + - CreateAPaaSWorkspaceTableRecordsPost + - GetAPaaSWorkspaceTableGet + - GetAPaaSWorkspaceViewViewsGet + - CreateAPaaSWorkspaceSqlCommands - Admin - AdminResetPassword - - CreateAdminBadge - - CreateAdminBadgeGrant - - DeleteAdminBadgeGrant - - GetAdminBadge - - GetAdminBadgeGrant - - GetAdminBadgeGrantList - - GetAdminBadgeList - GetAdminDeptStats - GetAdminUserStats + - UploadAdminBadgeImage + - CreateAdminBadge - UpdateAdminBadge + - GetAdminBadgeList + - GetAdminBadge + - CreateAdminBadgeGrant - UpdateAdminBadgeGrant - - UploadAdminBadgeImage + - GetAdminBadgeGrantList + - GetAdminBadgeGrant + - DeleteAdminBadgeGrant - Aily - - CreateAilyAppDataAsset - - CreateAilyAppKnowledgeAsk - - CreateAilyAppSkillStart - - CreateAilySession - CreateAilySessionAilyMessage - - CreateAilySessionRun + - GetAilySessionAilyMessage + - ListAilySessionAilyMessage - CreateAilySessionRunCancel - - DeleteAilyAppDataAsset + - CreateAilySessionRun + - GetAilySessionRun + - ListAilySessionRun + - CreateAilySession - DeleteAilySession - - GetAilyAppDataAsset - - GetAilyAppSkill - GetAilySession - - GetAilySessionAilyMessage - - GetAilySessionRun + - UpdateAilySession + - CreateAilyAppDataAsset + - DeleteAilyAppDataAsset + - GetAilyAppDataAsset - ListAilyAppDataAsset + - UploadAilyAppDataAssetFile - ListAilyAppDataAssetTag + - CreateAilyAppKnowledgeAsk + - GetAilyAppSkill - ListAilyAppSkill - - ListAilySessionAilyMessage - - ListAilySessionRun - - UpdateAilySession - - UploadAilyAppDataAssetFile + - CreateAilyAppSkillStart - AppLink - - OpenBot + - OpenNativeApp + - OpenLark + - OpenScan + - OpenWorkbench + - OpenMiniProgram + - OpenWebApp + - OpenChat - OpenCalender - - OpenCalenderAccount - - OpenCalenderEventCreate - OpenCalenderView - - OpenChat + - OpenCalenderEventCreate + - OpenCalenderAccount - OpenDocs - - OpenLark - - OpenMiniProgram - - OpenNativeApp + - OpenBot - OpenSSOLogin - - OpenScan + - OpenWebURL - OpenTask - OpenTaskCreate - OpenTaskDetail - OpenTaskTab - - OpenWebApp - - OpenWebURL - - OpenWorkbench - Application - - CheckApplicationVisibleWhiteBlackList - - CheckUserIsInApplicationPaidScope - - CreateApplicationAppUsageMessagePushOverview - - CreateApplicationScopeApply - - GetApplication - - GetApplicationAppAdminUserList - - GetApplicationAppList - - GetApplicationAppVisibility - - GetApplicationCollaborators - - GetApplicationContactsRangeConfiguration + - SearchApplicationWorkplaceAccessData + - SearchApplicationCustomWorkplaceAccessData + - SearchApplicationWorkplaceBlockAccessData - GetApplicationFavourite - - GetApplicationFeedbackList - - GetApplicationOrder - - GetApplicationOrderList - GetApplicationRecommend - GetApplicationRecommendRuleList - - GetApplicationUnderAuditList - - GetApplicationUsageDepartmentOverview - - GetApplicationUsageOverview - - GetApplicationUsageTrend + - IsApplicationUserAdmin - GetApplicationUserAdminScope + - GetApplicationAppVisibility + - GetApplicationContactsRangeConfiguration + - UpdateApplicationContactsRangeConfiguration - GetApplicationUserVisibleApp + - CheckApplicationVisibleWhiteBlackList + - GetApplicationAppList + - UpdateApplicationAppVisibility + - UpdateApplicationAppVisibilityV6 + - UpdateApplicationAppManagement + - GetApplicationAppAdminUserList + - CheckUserIsInApplicationPaidScope + - GetApplicationOrderList + - GetApplicationOrder + - GetApplicationUnderAuditList + - GetApplication - GetApplicationVersion - - GetApplicationVersionContactsRangeSuggest - GetApplicationVersionList - - IsApplicationUserAdmin - - ListApplication - - ListApplicationScope - - SearchApplicationCustomWorkplaceAccessData - - SearchApplicationWorkplaceAccessData - - SearchApplicationWorkplaceBlockAccessData - - SetApplicationAppBadge + - GetApplicationVersionContactsRangeSuggest + - UpdateApplicationVersion - UpdateApplication - - UpdateApplicationAppManagement - - UpdateApplicationAppVisibility - - UpdateApplicationAppVisibilityV6 - - UpdateApplicationCollaborators - - UpdateApplicationContactsRangeConfiguration + - GetApplicationUsageDepartmentOverview + - GetApplicationUsageOverview + - GetApplicationUsageTrend - UpdateApplicationFeedback + - GetApplicationFeedbackList + - SetApplicationAppBadge + - CreateApplicationAppUsageMessagePushOverview + - GetApplicationCollaborators + - UpdateApplicationCollaborators - UpdateApplicationOwner - - UpdateApplicationVersion + - ListApplication + - CreateApplicationScopeApply + - ListApplicationScope - Approval - - AddApprovalInstanceSign - - ApproveApprovalInstance - - CancelApprovalInstance - - CheckApprovalExternalInstance - CreateApproval - - CreateApprovalCarbonCopy - - CreateApprovalComment - - CreateApprovalExternalApproval - - CreateApprovalExternalInstance - - CreateApprovalInstance - - DeleteApprovalComment - GetApproval - - GetApprovalComment - - GetApprovalExternalApproval - - GetApprovalExternalList + - GetApprovalList + - SubscribeApprovalSubscription + - UnsubscribeApprovalSubscription + - CreateApprovalInstance - GetApprovalInstance - GetApprovalInstanceList - - GetApprovalList - - GetApprovalUserTaskList + - CancelApprovalInstance + - CreateApprovalCarbonCopy - PreviewApprovalInstance + - ApproveApprovalInstance - RejectApprovalInstance - - RemoveApprovalComment + - TransferApprovalInstance - ResubmitApprovalInstanceTask - RollbackApprovalInstance - - SearchApprovalCarbonCopy + - AddApprovalInstanceSign + - CreateApprovalComment + - GetApprovalComment + - DeleteApprovalComment + - RemoveApprovalComment + - CreateApprovalExternalApproval + - GetApprovalExternalApproval + - CreateApprovalExternalInstance + - CheckApprovalExternalInstance + - GetApprovalExternalList + - UploadApprovalFile + - UpdateApprovalMessage + - SendApprovalMessage - SearchApprovalInstance + - SearchApprovalCarbonCopy - SearchApprovalTask - - SendApprovalMessage - - SubscribeApprovalSubscription - - TransferApprovalInstance + - GetApprovalUserTaskList - TransformApprovalUserID - - UnsubscribeApprovalSubscription - - UpdateApprovalMessage - - UploadApprovalFile - Attendance - - BatchAttendanceUserFlowDel - - BatchCreateAttendanceUserDailyShift - - BatchCreateAttendanceUserDailyShiftTemp - - BatchCreateAttendanceUserFlow - - BatchGetAttendanceUserFlow - - CreateAttendanceArchiveRuleDelReport - - CreateAttendanceArchiveRuleUserStatsFieldsQuery + - GetAttendanceGroupList - CreateAttendanceGroup - - CreateAttendanceShift - - CreateAttendanceUserApproval - - CreateAttendanceUserTaskRemedy - - DeleteAttendanceGroup - - DeleteAttendanceShift - - DownloadAttendanceFile + - SearchAttendanceGroup - GetAttendanceGroup - - GetAttendanceGroupList - - GetAttendanceLeaveEmployExpireRecord + - DeleteAttendanceGroup + - GetAttendanceShiftList - GetAttendanceShift - GetAttendanceShiftDetail - - GetAttendanceShiftList - - GetAttendanceUserApproval + - DeleteAttendanceShift + - UpdateAttendanceLeaveAccrualRecord + - GetAttendanceLeaveEmployExpireRecord + - CreateAttendanceShift - GetAttendanceUserDailyShift - - GetAttendanceUserFlow - - GetAttendanceUserSettingList - - GetAttendanceUserStatsData + - BatchCreateAttendanceUserDailyShift - GetAttendanceUserStatsField - GetAttendanceUserStatsView + - UpdateAttendanceUserStatsView + - GetAttendanceUserStatsData + - GetAttendanceUserApproval + - CreateAttendanceUserApproval + - UpdateAttendanceRemedyApproval + - BatchGetAttendanceUserFlow + - GetAttendanceUserFlow - GetAttendanceUserTask - - GetAttendanceUserTaskRemedy + - BatchCreateAttendanceUserFlow - GetAttendanceUserTaskRemedyAllowedRemedyList - - ListAttendanceArchiveRule - - ListAttendanceGroupUser - - SearchAttendanceGroup - - UpdateAttendanceLeaveAccrualRecord - - UpdateAttendanceRemedyApproval + - GetAttendanceUserTaskRemedy + - CreateAttendanceUserTaskRemedy + - GetAttendanceUserSettingList - UpdateAttendanceUserSetting - - UpdateAttendanceUserStatsView - - UploadAttendanceArchiveRuleReport + - DownloadAttendanceFile - UploadAttendanceFile + - CreateAttendanceArchiveRuleDelReport + - ListAttendanceArchiveRule + - UploadAttendanceArchiveRuleReport + - CreateAttendanceArchiveRuleUserStatsFieldsQuery + - ListAttendanceGroupUser + - BatchCreateAttendanceUserDailyShiftTemp + - BatchAttendanceUserFlowDel - Auth - - GenOAuthURL + - ResendAppTicket - GetAccessToken + - RefreshAccessToken + - GetUserInfo + - GenOAuthURL - GetAppAccessToken - GetAppTicket - GetTenantAccessToken - - GetUserInfo - - RefreshAccessToken - - ResendAppTicket - SetAppTicket - Authen - CreateAuthenAccessToken - CreateAuthenRefreshAccessToken - Baike - CreateBaikeDraft - - CreateBaikeEntity - CreateBaikeUpdate - - DownloadBaikeImage - - ExtractBaikeEntity - - GetBaikeClassificationList + - CreateBaikeEntity + - UpdateBaikeEntity - GetBaikeEntity - GetBaikeEntityList - - HighlightBaikeEntity - MatchBaikeEntity - SearchBaikeEntity - - UpdateBaikeEntity + - HighlightBaikeEntity + - ExtractBaikeEntity + - GetBaikeClassificationList - UploadBaikeImage + - DownloadBaikeImage - Base - CreateBaseAppRole - ListBaseAppRole - UpdateBaseAppRole - Bitable - - BatchCreateBitableAppRoleMember + - CopyBitableDashboard + - GetBitableDashboardList + - UpdateBitableView + - GetBitableView + - GetBitableViewList + - CreateBitableView + - DeleteBitableView + - GetBitableRecord + - GetBitableRecordList + - SearchBitableRecord + - CreateBitableRecord + - UpdateBitableRecord + - DeleteBitableRecord - BatchCreateBitableRecord - - BatchCreateBitableTable - - BatchDeleteBitableAppRoleMember - - BatchDeleteBitableRecord - - BatchDeleteBitableTable - - BatchGetBitableAppTableRecord - BatchUpdateBitableRecord - - CopyBitableApp - - CopyBitableDashboard - - CreateBitableApp - - CreateBitableAppRole - - CreateBitableAppRoleMember + - BatchDeleteBitableRecord + - GetBitableFieldList - CreateBitableField - - CreateBitableRecord - - CreateBitableTable - - CreateBitableView - - DeleteBitableAppRole - - DeleteBitableAppRoleMember + - UpdateBitableField - DeleteBitableField - - DeleteBitableRecord - - DeleteBitableTable - - DeleteBitableView - GetBitableAppRoleList + - CreateBitableAppRole + - DeleteBitableAppRole + - UpdateBitableAppRole + - BatchDeleteBitableAppRoleMember + - BatchCreateBitableAppRoleMember - GetBitableAppRoleMemberList - - GetBitableDashboardList - - GetBitableFieldList - - GetBitableMeta - - GetBitableRecord - - GetBitableRecordList + - CreateBitableAppRoleMember + - DeleteBitableAppRoleMember + - CreateBitableTable + - BatchCreateBitableTable + - DeleteBitableTable + - BatchDeleteBitableTable + - UpdateBitableTable + - GetBitableTableList + - UpdateBitableTableForm - GetBitableTableForm + - UpdateBitableTableFormField - GetBitableTableFormFieldList - - GetBitableTableList - - GetBitableView - - GetBitableViewList + - CopyBitableApp + - CreateBitableApp + - GetBitableMeta + - UpdateBitableMeta - ListBitableAppBlockWorkflow + - BatchGetBitableAppTableRecord - ListBitableAppWorkflow - - SearchBitableRecord - - UpdateBitableAppRole - UpdateBitableAppWorkflow - - UpdateBitableField - - UpdateBitableMeta - - UpdateBitableRecord - - UpdateBitableTable - - UpdateBitableTableForm - - UpdateBitableTableFormField - - UpdateBitableView - Board - CreateBoardWhiteboardNode - CreateBoardWhiteboardNodePlantuml @@ -393,547 +393,542 @@ API 总数: 1621, 事件总数: 153 - GetBoardWhiteboardTheme - UpdateBoardWhiteboardTheme - Bot - - AddBotToChat - GetBotInfo + - AddBotToChat - Calendar - - BatchGetCalendarMeetingRoomFreebusy - - BatchGetCalendarMeetingRoomSummary - - ReplyCalendarMeetingRoomInstance - - BatchQueryCalendarFreebusy - - CreateCalendar - CreateCalendarACL - - CreateCalendarEvent - - CreateCalendarEventAttendee - - CreateCalendarEventMeetingChat - - CreateCalendarEventMeetingMinute - - CreateCalendarExchangeBinding - - CreateCalendarPrimarys - - CreateCalendarTimeoffEvent - - DeleteCalendar - DeleteCalendarACL - - DeleteCalendarEvent - - DeleteCalendarEventAttendee - - DeleteCalendarEventMeetingChat - - DeleteCalendarExchangeBinding - - DeleteCalendarTimeoffEvent - - GenerateCaldavConf - - GetCalendar - GetCalendarACLList - - GetCalendarEvent - - GetCalendarEventAttendeeChatMemberList - - GetCalendarEventAttendeeList - - GetCalendarEventInstanceList - - GetCalendarEventInstanceViewList - - GetCalendarEventList - - GetCalendarExchangeBinding - - GetCalendarFreeBusyList - - GetCalendarList + - SubscribeCalendarACL + - UnsubscribeCalendarACL - GetPrimaryCalendar - - MGetCalendar - - ReplyCalendarEvent + - CreateCalendar + - DeleteCalendar + - GetCalendar + - GetCalendarList + - UpdateCalendar - SearchCalendar - - SearchCalendarEvent - SubscribeCalendar - - SubscribeCalendarACL - - SubscribeCalendarChangeEvent - - SubscribeCalendarEvent - UnsubscribeCalendar - - UnsubscribeCalendarACL + - SubscribeCalendarChangeEvent - UnsubscribeCalendarChangeEvent - - UnsubscribeCalendarEvent - - UpdateCalendar + - CreateCalendarEvent + - DeleteCalendarEvent + - GetCalendarEvent + - GetCalendarEventList - UpdateCalendarEvent + - SearchCalendarEvent + - SubscribeCalendarEvent + - UnsubscribeCalendarEvent + - ReplyCalendarEvent + - GetCalendarEventInstanceList + - GetCalendarEventInstanceViewList + - DeleteCalendarEventMeetingChat + - CreateCalendarEventMeetingChat + - CreateCalendarTimeoffEvent + - DeleteCalendarTimeoffEvent + - BatchGetCalendarMeetingRoomSummary + - BatchGetCalendarMeetingRoomFreebusy + - ReplyCalendarMeetingRoomInstance + - CreateCalendarEventAttendee + - DeleteCalendarEventAttendee + - GetCalendarEventAttendeeList + - GetCalendarEventAttendeeChatMemberList + - GetCalendarFreeBusyList + - GenerateCaldavConf + - CreateCalendarExchangeBinding + - DeleteCalendarExchangeBinding + - GetCalendarExchangeBinding + - CreateCalendarEventMeetingMinute + - MGetCalendar + - CreateCalendarPrimarys + - BatchQueryCalendarFreebusy - Cardkit - - BatchUpdateCardkitCard - - CreateCardkitCard + - UpdateCardkitCardElementContent - CreateCardkitCardElement - - CreateCardkitCardIDConvert - DeleteCardkitCardElement - - UpdateCardkitCard - UpdateCardkitCardElement - - UpdateCardkitCardElementContent - UpdateCardkitCardElementV1 + - BatchUpdateCardkitCard + - CreateCardkitCard + - CreateCardkitCardIDConvert - UpdateCardkitCardSettings + - UpdateCardkitCard - CcmDocs - CreateCcmDocsDefaultDocsApiMeta - Chat - - AddChatMember - CreateChat - - CreateChatManager - - CreateChatMenuTree - - CreateChatTab + - GetChat + - GetChatOld + - UpdateChat - DeleteChat + - GetChatListOfSelf + - SearchChat + - GetChatMemberList + - IsInChat + - CreateChatManager - DeleteChatManager + - AddChatMember - DeleteChatMember - - DeleteChatMenuTree - - DeleteChatTab + - JoinChat + - GetChatModeration + - UpdateChatModeration + - UpdateChatTopNotice - DeleteChatTopNotice - GenChatShareLink - - GetChat - GetChatAnnouncement - - GetChatListOfSelf - - GetChatMemberList - - GetChatMenuTree - - GetChatModeration - - GetChatOld + - UpdateChatAnnouncement + - CreateChatTab + - DeleteChatTab - GetChatTabList - - IsInChat - - JoinChat - - SearchChat - - SortChatMenuTree + - UpdateChatTab - SortChatTab - - UpdateChat - - UpdateChatAnnouncement + - CreateChatMenuTree + - DeleteChatMenuTree - UpdateChatMenuTree - - UpdateChatModeration - - UpdateChatTab - - UpdateChatTopNotice + - SortChatMenuTree + - GetChatMenuTree - Compensation + - CreateCompensationArchive - BatchCreateCompensationLumpSumPayment - - BatchCreateCompensationRecurringPayment - BatchRemoveCompensationLumpSumPayment - - BatchRemoveCompensationRecurringPayment - BatchUpdateCompensationLumpSumPayment - - BatchUpdateCompensationRecurringPayment - - CreateCompensationArchive - - ListCompensationSocialInsurance - - ListCompensationSocialPlan - QueryCompensationLumpSumPayment - QueryCompensationLumpSumPaymentDetail + - BatchCreateCompensationRecurringPayment + - BatchRemoveCompensationRecurringPayment + - BatchUpdateCompensationRecurringPayment - QueryCompensationRecurringPayment - QueryCompensationSocialArchive - QueryCompensationSocialArchiveAdjustRecord + - ListCompensationSocialInsurance + - ListCompensationSocialPlan - QueryCompensationSocialPlan - Contact - - AddContactGroupMember - - BatchAddContactGroupMember - - BatchAddContactV2Department - - BatchAddContactV2User - - BatchCreateContactFunctionalRoleMember - - BatchDeleteContactFunctionalRoleMember - - BatchDeleteContactGroupMember - - BatchGetDepartment + - CreateUser + - DeleteUser + - ResurrectUser + - GetUser - BatchGetUser + - GetUserList + - GetUserListOld + - UpdateUserPatch + - UpdateUser - BatchGetUserByID - BatchGetUserByIDOld - - BindContactUnitDepartment - - CreateContactFunctionalRole - - CreateContactGroup - - CreateContactJobFamily - - CreateContactJobLevel - - CreateContactUnit + - SearchUserOld + - UpdateUserID - CreateDepartment - - CreateEmployeeTypeEnum - - CreateUser - - DeleteContactFunctionalRole - - DeleteContactGroup - - DeleteContactGroupMember - - DeleteContactJobFamily - - DeleteContactJobLevel - - DeleteContactUnit + - GetDepartment + - BatchGetDepartment + - GetDepartmentList + - UpdateDepartmentPatch + - UpdateDepartment + - GetDepartmentListOld + - GetParentDepartment + - SearchDepartment + - UpdateDepartmentID - DeleteDepartment - - DeleteEmployeeTypeEnum - - DeleteUser - - GetContactCustomAttrList - - GetContactFunctionalRoleMember - - GetContactFunctionalRoleMemberScope + - UnbindDepartmentChat + - CreateContactGroup + - UpdateContactGroup + - DeleteContactGroup - GetContactGroup - GetContactGroupList + - GetContactMemberGroupList + - AddContactGroupMember + - BatchAddContactGroupMember + - DeleteContactGroupMember + - BatchDeleteContactGroupMember - GetContactGroupMember - - GetContactJobFamily - - GetContactJobFamilyList + - CreateContactFunctionalRole + - DeleteContactFunctionalRole + - UpdateContactFunctionalRole + - BatchCreateContactFunctionalRoleMember + - BatchDeleteContactFunctionalRoleMember + - UpdateContactFunctionalRoleMemberScope + - GetContactFunctionalRoleMemberScope + - GetContactFunctionalRoleMember + - CreateContactJobLevel + - DeleteContactJobLevel + - UpdateContactJobLevel - GetContactJobLevel - GetContactJobLevelList + - CreateContactJobFamily + - DeleteContactJobFamily + - UpdateContactJobFamily + - GetContactJobFamily + - GetContactJobFamilyList - GetContactJobTitle - GetContactJobTitleList - - GetContactMemberGroupList - - GetContactScopeList - - GetContactUnit - - GetContactUnitDepartmentList - - GetContactUnitList - - GetContactV2Task - GetContactWorkCity - GetContactWorkCityList - - GetDepartment - - GetDepartmentList - - GetDepartmentListOld - GetEmployeeTypeEnumList - - GetParentDepartment - - GetUser - - GetUserList - - GetUserListOld - - ListContactV2Role - - ResurrectUser - - SearchDepartment - - SearchUserOld - - UnbindContactUnitDepartment - - UnbindDepartmentChat - - UpdateContactFunctionalRole - - UpdateContactFunctionalRoleMemberScope - - UpdateContactGroup - - UpdateContactJobFamily - - UpdateContactJobLevel - - UpdateContactUnit - - UpdateDepartment - - UpdateDepartmentID - - UpdateDepartmentPatch - UpdateEmployeeTypeEnumPatch - - UpdateUser - - UpdateUserID - - UpdateUserPatch + - DeleteEmployeeTypeEnum + - CreateEmployeeTypeEnum + - GetContactCustomAttrList + - CreateContactUnit + - UpdateContactUnit + - DeleteContactUnit + - GetContactUnit + - GetContactUnitList + - BindContactUnitDepartment + - UnbindContactUnitDepartment + - GetContactUnitDepartmentList + - GetContactScopeList + - BatchAddContactV2User + - BatchAddContactV2Department + - GetContactV2Task + - ListContactV2Role - CoreHR - - GetCoreHRCompensationChangeReasonList - - GetCoreHRCompensationIndicatorList - - GetCoreHRCompensationItemList - - GetCoreHRCompensationItemCategoryList - - GetCoreHRCompensationPlanList - - QueryCoreHRCompensationArchive - - BatchGetCoreHRJobFamily - - BatchGetCoreHrbpByEmployee - SearchCoreHRNationality - SearchCoreHRBank - SearchCoreHRBankBranch - - SearchCoreHRNationality - - GetCoreHRAuthorization - - MatchCoreHRCompensationStandard - - GetCoreHRAuthorizationList - - BatchQueryCoreHRDepartmentTimeline - - QueryCoreHRDepartmentTimeline - - ActiveCoreHRCostCenter - - AddCorehrAuthorizationRoleAssign - - AddCorehrCommonDataMetaDataEnumOption - - BatchCorehrWorkforcePlanDetailV2 - - BatchGetCoreHRCompany - - BatchGetCoreHRDepartment - - BatchGetCoreHREmployee - - BatchGetCoreHRJobData - - BatchGetCoreHRJobLevel - - BatchGetCoreHRLocation - - BatchGetCorehrJob - - BatchGetCorehrPathway - - BatchQueryCorehrCostAllocation - - BatchQueryCorehrDefaultCostCenter - - BatchQueryCorehrEmployeesAdditionalJob - - BatchQueryCorehrWorkforcePlanDetail - - CreateCoreHRCompany - - CreateCoreHRContract - - CreateCoreHRCostCenter - - CreateCoreHRCostCenterVersion - - CreateCoreHRDepartment + - GetCoreHRCustomField + - GetCoreHRCustomFieldList + - GetCoreHRCustomFieldObjectApiNameList + - SearchCoreHRCountryRegion + - SearchCoreHRCountryRegionSubdivision + - SearchCoreHRCity + - SearchCoreHRDistrict + - GetCoreHRCountryRegion + - GetCoreHRCountryRegionList + - GetCoreHRSubdivision + - GetCoreHRSubdivisionList + - GetCoreHRSubregion + - GetCoreHRSubregionList - CreateCoreHREmployeeType - - CreateCoreHREmployment - - CreateCoreHRJob - - CreateCoreHRJobChange - - CreateCoreHRJobData - - CreateCoreHRJobFamily - - CreateCoreHRJobLevel - - CreateCoreHRLeaveGrantingRecord - - CreateCoreHRLocation + - DeleteCoreHREmployeeType + - UpdateCoreHREmployeeType + - GetCoreHREmployeeType + - GetCoreHREmployeeTypeList - CreateCoreHRNationalIDType - - CreateCoreHROffboarding - - CreateCoreHRPerson - - CreateCoreHRPreHire - - CreateCoreHRProbationAssessment + - DeleteCoreHRNationalIDType + - UpdateCoreHRNationalIDType + - GetCoreHRNationalIDType + - GetCoreHRNationalIDTypeList - CreateCoreHRWorkingHoursType - - CreateCorehrCommonDataIDConvert - - CreateCorehrCommonDataMetaDataEditEnumOption - - CreateCorehrCompanyActive - - CreateCorehrCostAllocationVersion - - CreateCorehrCustomOrg - - CreateCorehrCustomOrgActive - - CreateCorehrDefaultCostCenterVersion - - CreateCorehrDepartmentTree - - CreateCorehrEmployee - - CreateCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesInternationalAssignment - - CreateCorehrJobChange - - CreateCorehrJobChangeRevoke - - CreateCorehrJobGrade - - CreateCorehrLeaveWorkCalendar - - CreateCorehrLeaveWorkCalendarDate - - CreateCorehrLocationActive - - CreateCorehrLocationAddress - - CreateCorehrOffboardingEdit - - CreateCorehrOffboardingRevoke - - CreateCorehrOffboardingSubmitV2 - - CreateCorehrPathway - - CreateCorehrPathwayActive - - CreateCorehrPerson - - CreateCorehrPosition - - CreateCorehrPositionActive - - CreateCorehrPositionDelPosition - - CreateCorehrPreHireComplete - - CreateCorehrPreHireRestoreFlowInstance - - CreateCorehrPreHireTransformOnboardingTask - - CreateCorehrPreHireTransitTask - - CreateCorehrPreHireWithdrawOnboarding - - CreateCorehrProbationSubmit - - CreateCorehrProbationWithdraw - - CreateCorehrProcessQueryFlowDataTemplate - - CreateCorehrProcessStart - - CreateCorehrReportDetailRowBatchdelete - - CreateCorehrReportDetailRowBatchsave - - CreateCorehrSignatureFileTerminate - - CreateCorehrWorkforcePlanDetailRowBatchdelete - - CreateCorehrWorkforcePlanDetailRowBatchsave - - DeleteCoreHRCompany - - DeleteCoreHRContract - - DeleteCoreHRCostCenter - - DeleteCoreHRCostCenterVersion - - DeleteCoreHRDepartment - - DeleteCoreHREmployeeType - - DeleteCoreHREmployment - - DeleteCoreHRJob - - DeleteCoreHRJobData - - DeleteCoreHRJobFamily - - DeleteCoreHRJobLevel - - DeleteCoreHRLeaveGrantingRecord - - DeleteCoreHRLocation - - DeleteCoreHRNationalIDType - - DeleteCoreHRPerson - - DeleteCoreHRPreHire - - DeleteCoreHRProbationAssessment - DeleteCoreHRWorkingHoursType - - DeleteCorehrCustomOrg - - DeleteCorehrDepartment - - DeleteCorehrEmployeesAdditionalJob - - DeleteCorehrEmployeesInternationalAssignment - - DeleteCorehrJobGrade - - DeleteCorehrLocationAddress - - DeleteCorehrPathway - - DeleteCorehrPreHire - - DownloadCoreHRPersonFile - - DownloadCorehrSignatureFile - - EnableDisableCoreHRProbationAssessment - - GetCoreHRCompany - - GetCoreHRCompanyList - - GetCoreHRContract - - GetCoreHRContractList - - GetCoreHRCountryRegion - - GetCoreHRCountryRegionList + - UpdateCoreHRWorkingHoursType + - GetCoreHRWorkingHoursType + - GetCoreHRWorkingHoursTypeList + - SearchCoreHRCurrency - GetCoreHRCurrency - GetCoreHRCurrencyList - - GetCoreHRCustomField - - GetCoreHRCustomFieldList - - GetCoreHRCustomFieldObjectApiNameList - - GetCoreHRDepartment - - GetCoreHRDepartmentList - - GetCoreHRDepartmentParentList - - GetCoreHREmployeeType - - GetCoreHREmployeeTypeList - - GetCoreHRJob + - BatchGetCoreHREmployee + - SearchCoreHREmployee + - CreateCoreHREmployment + - DeleteCoreHREmployment + - UpdateCoreHREmployment + - CreateCoreHRPerson + - UpdateCoreHRPerson + - DeleteCoreHRPerson + - UploadCoreHRPersonFile + - DownloadCoreHRPersonFile + - GetCoreHRPerson + - CreateCoreHRJobData + - DeleteCoreHRJobData + - UpdateCoreHRJobData - GetCoreHRJobData + - QueryCoreHRJobData + - BatchGetCoreHRJobData - GetCoreHRJobDataList - - GetCoreHRJobFamily - - GetCoreHRJobFamilyList + - GetCoreHRDepartmentParentList + - SearchCoreHRDepartment + - CreateCoreHRDepartment + - DeleteCoreHRDepartment + - UpdateCoreHRDepartment + - GetCoreHRDepartment + - BatchGetCoreHRDepartment + - GetCoreHRDepartmentList + - BatchGetCoreHRLocation + - CreateCoreHRLocation + - DeleteCoreHRLocation + - GetCoreHRLocation + - GetCoreHRLocationList + - GetCoreHRCompany + - GetCoreHRCompanyList + - BatchGetCoreHRCompany + - CreateCoreHRCompany + - UpdateCoreHRCompany + - DeleteCoreHRCompany + - CreateCoreHRCostCenter + - ActiveCoreHRCostCenter + - DeleteCoreHRCostCenter + - SearchCoreHRCostCenter + - CreateCoreHRCostCenterVersion + - UpdateCoreHRCostCenterVersion + - DeleteCoreHRCostCenterVersion + - BatchGetCoreHRJobLevel + - CreateCoreHRJobLevel + - DeleteCoreHRJobLevel + - UpdateCoreHRJobLevel - GetCoreHRJobLevel - GetCoreHRJobLevelList - - GetCoreHRJobList - - GetCoreHRJobListV2 + - BatchGetCoreHRJobFamily + - CreateCoreHRJobFamily + - DeleteCoreHRJobFamily + - UpdateCoreHRJobFamily + - GetCoreHRJobFamily + - GetCoreHRJobFamilyList + - CreateCoreHRJob + - DeleteCoreHRJob + - UpdateCoreHRJob - GetCoreHRJobV2 - - GetCoreHRLeaveBalanceList - - GetCoreHRLeaveRequestHistoryList - - GetCoreHRLeaveTypeList - - GetCoreHRLocation - - GetCoreHRLocationList - - GetCoreHRNationalIDType - - GetCoreHRNationalIDTypeList - - GetCoreHROffboardingList - - GetCoreHRPerson + - GetCoreHRJobListV2 + - GetCoreHRJob + - GetCoreHRJobList + - CreateCoreHRPreHire + - DeleteCoreHRPreHire + - UpdateCoreHRPreHire - GetCoreHRPreHire - GetCoreHRPreHireList - - GetCoreHRProcess - - GetCoreHRProcessFormVariableData - - GetCoreHRProcessList - - GetCoreHRSecurityGroupBp - - GetCoreHRSecurityGroupList - - GetCoreHRSubdivision - - GetCoreHRSubdivisionList - - GetCoreHRSubregion - - GetCoreHRSubregionList + - SearchCoreHRContract + - CreateCoreHRContract + - DeleteCoreHRContract + - UpdateCoreHRContract + - GetCoreHRContract + - GetCoreHRContractList + - SearchCoreHRProbation + - EnableDisableCoreHRProbationAssessment + - CreateCoreHRProbationAssessment + - UpdateCoreHRProbationAssessment + - DeleteCoreHRProbationAssessment - GetCoreHRTransferReasonList - GetCoreHRTransferTypeList - - GetCoreHRWorkingHoursType - - GetCoreHRWorkingHoursTypeList + - CreateCoreHRJobChange + - SearchCoreHRJobChange + - GetCoreHROffboardingList + - CreateCoreHROffboarding + - SearchCoreHROffboarding + - CreateCoreHRLeaveGrantingRecord + - DeleteCoreHRLeaveGrantingRecord + - GetCoreHRLeaveTypeList + - GetCoreHRLeaveBalanceList + - GetCoreHRLeaveRequestHistoryList + - BatchGetCoreHrbpByEmployee - GetCoreHrbpByDepartment - GetCoreHrbpList + - GetCoreHRSecurityGroupBp + - SearchCoreHRAssignedUser + - GetCoreHRAuthorization + - GetCoreHRAuthorizationList + - GetCoreHRSecurityGroupList + - GetCoreHRProcessList + - GetCoreHRProcess + - GetCoreHRProcessFormVariableData + - MatchCoreHRCompensationStandard + - QueryCoreHRCompensationArchive + - GetCoreHRCompensationChangeReasonList + - GetCoreHRCompensationIndicatorList + - GetCoreHRCompensationItemList + - GetCoreHRCompensationItemCategoryList + - GetCoreHRCompensationPlanList - GetCorehrApprovalGroups - - GetCorehrDraft - - GetCorehrLeaveCalendarByScope - - GetCorehrProcessFlowVariableData - - GetCorehrProcessFormVariableData - - ListCorehrApprover - - ListCorehrEmployeesInternationalAssignment - - ListCorehrSignatureFile - - ListCorehrSignatureFileByBizID - - ListCorehrSignatureNodeByFileID - - ListCorehrSignatureTemplateInfoWithThumbnail - - ListCorehrWorkforcePlan - - QueryCoreHRJobData - - QueryCoreHRJobGrade - QueryCorehrApprovalGroupsDepartmentChangeListByIDs - QueryCorehrApprovalGroupsJobChangeListByIDs - QueryCorehrApprovalGroupsPositionChangeListByIDs + - ListCorehrApprover + - SearchCorehrBasicInfoLanguage + - SearchCorehrBasicInfoTimeZone + - CreateCorehrCompanyActive - QueryCorehrCompanyMultiTimeline - QueryCorehrCompanyRecentChange - - QueryCorehrCostCenterRecentChange - - QueryCorehrCustomOrg - - QueryCorehrCustomOrgRecentChange - - QueryCorehrDepartmentOperationLogs - - QueryCorehrDepartmentRecentChange - - QueryCorehrJobFamilyMultiTimeline - - QueryCorehrJobFamilyRecentChange - - QueryCorehrJobGradeRecentChange - - QueryCorehrJobLevelRecentChange - - QueryCorehrJobMultiTimeline - - QueryCorehrJobRecentChange - - QueryCorehrLocationMultiTimeline - - QueryCorehrLocationRecentChange - - QueryCorehrPosition - - QueryCorehrPositionRecentChange - - QueryCorehrPreHire - - QueryCorehrSignatureFile - - RemoveCorehrAuthorizationRoleAssign + - BatchQueryCorehrCostAllocation + - CreateCorehrCostAllocationVersion - RemoveCorehrCostAllocationVersion - - RemoveCorehrDefaultCostCenterVersion - - SearchCoreHRAssignedUser - - SearchCoreHRCity - - SearchCoreHRContract - - SearchCoreHRCostCenter - - SearchCoreHRCountryRegion - - SearchCoreHRCountryRegionSubdivision - - SearchCoreHRCurrency - - SearchCoreHRDepartment - - SearchCoreHRDistrict - - SearchCoreHREmployee - - SearchCoreHRJobChange - - SearchCoreHROffboarding - - SearchCoreHRPreHire - - SearchCoreHRProbation - - SearchCorehrBasicInfoLanguage - - SearchCorehrBasicInfoTimeZone - - SearchCorehrEnum - - SearchCorehrSignatureTemplate - - UpdateCoreHRCompany - - UpdateCoreHRContract - - UpdateCoreHRCostCenterVersion - - UpdateCoreHRDepartment - - UpdateCoreHREmployeeType - - UpdateCoreHREmployment - - UpdateCoreHRJob - - UpdateCoreHRJobData - - UpdateCoreHRJobFamily - - UpdateCoreHRJobLevel - - UpdateCoreHRNationalIDType - - UpdateCoreHRPerson - - UpdateCoreHRPreHire - - UpdateCoreHRProbationAssessment - - UpdateCoreHRWorkingHoursType - - UpdateCorehrAuthorizationRoleAssign - UpdateCorehrCostAllocationVersion + - QueryCorehrCostCenterRecentChange + - CreateCorehrCustomOrgActive + - CreateCorehrCustomOrg + - DeleteCorehrCustomOrg - UpdateCorehrCustomOrg + - QueryCorehrCustomOrg + - QueryCorehrCustomOrgRecentChange - UpdateCorehrCustomOrgRule + - BatchQueryCorehrDefaultCostCenter + - CreateCorehrDefaultCostCenterVersion + - RemoveCorehrDefaultCostCenterVersion - UpdateCorehrDefaultCostCenterVersion + - DeleteCorehrDepartment - UpdateCorehrDepartment + - BatchQueryCoreHRDepartmentTimeline + - QueryCorehrDepartmentOperationLogs + - QueryCorehrDepartmentRecentChange + - QueryCoreHRDepartmentTimeline + - CreateCorehrDepartmentTree + - GetCorehrDraft + - CreateCorehrEmployee + - BatchQueryCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesAdditionalJob + - DeleteCorehrEmployeesAdditionalJob - UpdateCorehrEmployeesAdditionalJob + - CreateCorehrEmployeesInternationalAssignment + - DeleteCorehrEmployeesInternationalAssignment + - ListCorehrEmployeesInternationalAssignment - UpdateCorehrEmployeesInternationalAssignment + - SearchCorehrEnum + - BatchGetCorehrJob + - QueryCorehrJobMultiTimeline + - QueryCorehrJobRecentChange + - CreateCorehrJobChange + - CreateCorehrJobChangeRevoke + - QueryCorehrJobFamilyMultiTimeline + - QueryCorehrJobFamilyRecentChange + - CreateCorehrJobGrade + - DeleteCorehrJobGrade - UpdateCorehrJobGrade - - UpdateCorehrLocation + - QueryCoreHRJobGrade + - QueryCorehrJobGradeRecentChange + - QueryCorehrJobLevelRecentChange + - CreateCorehrLocationAddress + - DeleteCorehrLocationAddress - UpdateCorehrLocationAddress + - CreateCorehrLocationActive + - UpdateCorehrLocation + - QueryCorehrLocationMultiTimeline + - QueryCorehrLocationRecentChange + - CreateCorehrOffboardingEdit + - CreateCorehrOffboardingRevoke + - CreateCorehrOffboardingSubmitV2 + - CreateCorehrPathwayActive + - BatchGetCorehrPathway + - CreateCorehrPathway + - DeleteCorehrPathway - UpdateCorehrPathway - - UpdateCorehrPerson + - CreateCorehrPositionActive + - CreateCorehrPosition + - CreateCorehrPositionDelPosition - UpdateCorehrPosition + - QueryCorehrPosition + - QueryCorehrPositionRecentChange + - CreateCorehrPreHireComplete + - DeleteCorehrPreHire - UpdateCorehrPreHire + - QueryCorehrPreHire + - CreateCorehrPreHireRestoreFlowInstance + - SearchCoreHRPreHire + - CreateCorehrPreHireTransformOnboardingTask + - CreateCorehrPreHireTransitTask + - CreateCorehrPreHireWithdrawOnboarding + - CreateCorehrProbationSubmit + - CreateCorehrProbationWithdraw - UpdateCorehrProcessApprover - UpdateCorehrProcessExtra - - UpdateCorehrProcessRevoke + - GetCorehrProcessFormVariableData + - CreateCorehrProcessQueryFlowDataTemplate - UpdateCorehrProcessTransfer + - GetCorehrProcessFlowVariableData + - UpdateCorehrProcessRevoke + - CreateCorehrProcessStart - UpdateCorehrProcessWithdraw - - UploadCoreHRPersonFile + - CreateCorehrReportDetailRowBatchdelete + - CreateCorehrReportDetailRowBatchsave + - DownloadCorehrSignatureFile + - ListCorehrSignatureFile + - ListCorehrSignatureFileByBizID + - QueryCorehrSignatureFile + - CreateCorehrSignatureFileTerminate + - ListCorehrSignatureNodeByFileID + - SearchCorehrSignatureTemplate + - ListCorehrSignatureTemplateInfoWithThumbnail + - ListCorehrWorkforcePlan + - BatchQueryCorehrWorkforcePlanDetail + - BatchCorehrWorkforcePlanDetailV2 + - CreateCorehrWorkforcePlanDetailRowBatchdelete + - CreateCorehrWorkforcePlanDetailRowBatchsave + - AddCorehrAuthorizationRoleAssign + - GetCoreHRAuthorization + - GetCoreHRAuthorizationList + - RemoveCorehrAuthorizationRoleAssign + - UpdateCorehrAuthorizationRoleAssign + - CreateCorehrCommonDataIDConvert + - AddCorehrCommonDataMetaDataEnumOption + - CreateCorehrCommonDataMetaDataEditEnumOption + - MatchCoreHRCompensationStandard + - GetCorehrLeaveCalendarByScope + - CreateCorehrLeaveWorkCalendar + - CreateCorehrLeaveWorkCalendarDate + - CreateCorehrPerson + - UpdateCorehrPerson - Directory - CreateDirectoryCollaborationRule - - CreateDirectoryDepartment - - CreateDirectoryDepartmentFilter - - CreateDirectoryEmployee - - CreateDirectoryEmployeeFilter - - CreateDirectoryEmployeeResurrect - DeleteDirectoryCollaborationRule - - DeleteDirectoryDepartment - - DeleteDirectoryEmployee - ListDirectoryCollaborationRule + - UpdateDirectoryCollaborationRule - ListDirectoryCollaborationTenant - ListDirectoryCollborationShareEntity + - CreateDirectoryDepartment + - DeleteDirectoryDepartment + - CreateDirectoryDepartmentFilter - MGetDirectoryDepartment - - MGetDirectoryEmployee - - SearchDirectoryDepartment - - SearchDirectoryEmployee - - UpdateDirectoryCollaborationRule - UpdateDirectoryDepartment + - SearchDirectoryDepartment + - CreateDirectoryEmployee + - DeleteDirectoryEmployee + - CreateDirectoryEmployeeFilter + - MGetDirectoryEmployee - UpdateDirectoryEmployee - UpdateDirectoryEmployeeRegular + - CreateDirectoryEmployeeResurrect + - SearchDirectoryEmployee - UpdateDirectoryEmployeeToBeResigned - Docs - GetDocsContent - Drive - - GetWhiteboardNodeList - - CreateSpreadsheet - AddSheetDimensionRange - AddWikiSpaceMember - AppendSheetValue - BatchCreateDrivePermissionMember - BatchDeleteDocxBlock - - BatchDeleteDocxChatAnnouncementBlockChildren - BatchGetDriveComment - BatchGetDriveMediaTmpDownloadURL - BatchGetSheetValue - BatchSetSheetStyle - BatchSetSheetValue - - BatchUpdateDocxChatAnnouncementBlock - - BatchUpdateDocxDocumentBlock - BatchUpdateSheet - - CheckDriveMemberPermission - CheckDriveMemberPermissionOld + - CheckDriveMemberPermission - CopyDriveFile - CopyWikiNode - - CreateDocx - CreateDocxBlock - - CreateDocxChatAnnouncementBlockChildren - - CreateDocxDocumentBlockDescendant - - CreateDocxDocumentConvert + - CreateDocx - CreateDriveComment - CreateDriveDoc - CreateDriveExportTask - - CreateDriveFile - CreateDriveFileShortcut - CreateDriveFileSubscription - CreateDriveFileVersion + - CreateDriveFile - CreateDriveFolder - CreateDriveImportTask - - CreateDriveMemberPermission - CreateDriveMemberPermissionOld + - CreateDriveMemberPermission - CreateDrivePermissionPublicPassword - CreateSheetConditionFormat - CreateSheetDataValidationDropdown - - CreateSheetFilter - - CreateSheetFilterView - CreateSheetFilterViewCondition + - CreateSheetFilterView + - CreateSheetFilter - CreateSheetFloatImage - CreateSheetProtectedDimension + - CreateSpreadsheet - CreateWikiNode - CreateWikiSpace - DeleteDriveComment - - DeleteDriveFile - DeleteDriveFileVersion - - DeleteDriveMemberPermission + - DeleteDriveFile - DeleteDriveMemberPermissionOld + - DeleteDriveMemberPermission - DeleteDrivePermissionPublicPassword - DeleteDriveSheetFile - DeleteSheetConditionFormat - DeleteSheetDataValidationDropdown - DeleteSheetDimensionRange - - DeleteSheetFilter - - DeleteSheetFilterView - DeleteSheetFilterViewCondition + - DeleteSheetFilterView + - DeleteSheetFilter - DeleteSheetFloatImage - DeleteSheetProtectedDimension - DeleteWikiSpaceMember @@ -943,17 +938,14 @@ API 总数: 1621, 事件总数: 153 - FindSheet - FinishUploadDriveFile - FinishUploadDriveMedia - - GetDocxBlock - GetDocxBlockListOfBlock - GetDocxBlockListOfDocument - - GetDocxChatAnnouncement - - GetDocxChatAnnouncementBlock - - GetDocxChatAnnouncementBlockChildren - - GetDocxDocument + - GetDocxBlock - GetDocxDocumentRawContent - - GetDriveComment + - GetDocxDocument - GetDriveCommentList - GetDriveCommentReplyList + - GetDriveComment - GetDriveDocContent - GetDriveDocMeta - GetDriveDocRawContent @@ -963,40 +955,39 @@ API 总数: 1621, 事件总数: 153 - GetDriveFileStatistics - GetDriveFileSubscription - GetDriveFileTask - - GetDriveFileVersion - GetDriveFileVersionList + - GetDriveFileVersion - GetDriveFileViewRecordList - GetDriveFolderChildren - GetDriveFolderMeta - GetDriveImportTask - - GetDriveMemberPermissionList - GetDriveMemberPermissionListOld - - GetDrivePublicPermission + - GetDriveMemberPermissionList - GetDrivePublicPermissionOld - GetDrivePublicPermissionV2 + - GetDrivePublicPermission - GetDriveRootFolderMeta - GetDriveSheetDefaultImportResult - - GetSheet - GetSheetConditionFormat - GetSheetDataValidationDropdown - - GetSheetFilter - - GetSheetFilterView - GetSheetFilterViewCondition + - GetSheetFilterView + - GetSheetFilter - GetSheetFloatImage - GetSheetList - GetSheetMeta - GetSheetProtectedDimension - GetSheetValue + - GetSheet - GetSpreadsheet - GetSubscribeDriveFile - - GetWikiNode - GetWikiNodeList - - GetWikiSpace + - GetWikiNode - GetWikiSpaceList + - GetWikiSpace - GetWikiTask - ImportSheet - InsertSheetDimensionRange - - ListDocxChatAnnouncementBlock - ListDriveFileLike - ListWikiSpaceMember - MergeSheetCell @@ -1009,36 +1000,36 @@ API 总数: 1621, 事件总数: 153 - PrepareUploadDriveFile - PrepareUploadDriveMedia - PrependSheetValue - - QuerySheetFilterView - QuerySheetFilterViewCondition + - QuerySheetFilterView - QuerySheetFloatImage - ReplaceSheet - SearchDriveFile - SearchWikiNode - SetSheetStyle - - SetSheetValue - SetSheetValueImage + - SetSheetValue - SubscribeDriveFile - TransferDriveMemberPermission - TransferDriveOwnerPermission - UnmergeSheetCell - UnsubscribeDriveFile - UpdateDocxBlock - - UpdateDriveComment - UpdateDriveCommentPatch + - UpdateDriveComment - UpdateDriveDocContent - UpdateDriveFileSubscription - - UpdateDriveMemberPermission - UpdateDriveMemberPermissionOld + - UpdateDriveMemberPermission - UpdateDrivePermissionPublicPassword - - UpdateDrivePublicPermission - UpdateDrivePublicPermissionV2 + - UpdateDrivePublicPermission - UpdateSheetConditionFormat - UpdateSheetDataValidationDropdown - UpdateSheetDimensionRange - - UpdateSheetFilter - - UpdateSheetFilterView - UpdateSheetFilterViewCondition + - UpdateSheetFilterView + - UpdateSheetFilter - UpdateSheetFloatImage - UpdateSheetProperty - UpdateSheetProtectedDimension @@ -1047,732 +1038,742 @@ API 总数: 1621, 事件总数: 153 - UpdateWikiSpaceSetting - UploadDriveFile - UploadDriveMedia + - GetWhiteboardNodeList + - BatchDeleteDocxChatAnnouncementBlockChildren + - CreateDocxChatAnnouncementBlockChildren + - GetDocxChatAnnouncementBlockChildren + - BatchUpdateDocxChatAnnouncementBlock + - GetDocxChatAnnouncementBlock + - ListDocxChatAnnouncementBlock + - GetDocxChatAnnouncement + - CreateDocxDocumentBlockDescendant + - BatchUpdateDocxDocumentBlock + - CreateDocxDocumentConvert - EHR - - DownloadEHRAttachments - GetEHREmployeeList + - DownloadEHRAttachments - Event - GetEventOutboundIpList - EventCallback - - EventV1TripApproval - - EventV1AddBot - - EventV1AddUserToChat - - EventV1AppOpen - - EventV1AppStatusChange - - EventV1AppTicket - - EventV1AppUninstalled - - EventV1ApprovalCc - - EventV1ApprovalInstance - - EventV1ApprovalTask - - EventV1ChatDisband - - EventV1LeaveApprovalRevert - - EventV1LeaveApprovalV2 - - EventV1OrderPaid - - EventV1OutApproval - - EventV1P2PChatCreate - - EventV1ReceiveMessage - - EventV1RemedyApproval - - EventV1RemoveBot - - EventV1RemoveUserFromChat - - EventV1RevokeAddUserFromChat - - EventV1ShiftApproval - - EventV1ThirdPartyMeetingRoomEventCreated - - EventV1ThirdPartyMeetingRoomEventDeleted - - EventV1ThirdPartyMeetingRoomEventUpdated - - EventV1WorkApproval - - EventV2ACSAccessRecordCreatedV1 - - EventV2ACSUserUpdatedV1 - - EventV2ApplicationApplicationAppVersionAuditV6 - - EventV2ApplicationApplicationAppVersionPublishApplyV6 - - EventV2ApplicationApplicationAppVersionPublishRevokeV6 - - EventV2ApplicationApplicationCreatedV6 - - EventV2ApplicationApplicationFeedbackCreatedV6 - - EventV2ApplicationApplicationFeedbackUpdatedV6 - - EventV2ApplicationApplicationVisibilityAddedV6 - - EventV2ApplicationBotMenuV6 - - EventV2ApprovalApprovalUpdatedV4 - - EventV2AttendanceUserFlowCreatedV1 - - EventV2AttendanceUserTaskUpdatedV1 - - EventV2CalendarCalendarACLCreatedV4 - - EventV2CalendarCalendarACLDeletedV4 - - EventV2CalendarCalendarChangedV4 - - EventV2CalendarCalendarEventChangedV4 - - EventV2CardActionTrigger - - EventV2ContactCustomAttrEventUpdatedV3 - - EventV2ContactDepartmentCreatedV3 - - EventV2ContactDepartmentDeletedV3 - - EventV2ContactDepartmentUpdatedV3 - - EventV2ContactEmployeeTypeEnumActivedV3 - - EventV2ContactEmployeeTypeEnumCreatedV3 - - EventV2ContactEmployeeTypeEnumDeactivatedV3 - - EventV2ContactEmployeeTypeEnumDeletedV3 - - EventV2ContactEmployeeTypeEnumUpdatedV3 - - EventV2ContactScopeUpdatedV3 - - EventV2ContactUserCreatedV3 - - EventV2ContactUserDeletedV3 - - EventV2ContactUserUpdatedV3 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrOffboardingChecklistUpdatedV2 - - EventV2CorehrOffboardingStatusUpdatedV2 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrOffboardingUpdatedV2 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPreHireUpdatedV1 - - EventV2CorehrProbationUpdatedV2 + - EventV2ElearningCourseRegistrationCreatedV2 + - EventV2ElearningCourseRegistrationUpdatedV2 + - EventV2ElearningCourseRegistrationDeletedV2 + - EventV2URLPreviewGet + - EventV2HireApplicationStageChangedV1 + - EventV2HireApplicationDeletedV1 + - EventV2CorehrJobCreatedV1 + - EventV2CorehrJobUpdatedV1 + - EventV2CorehrJobDeletedV1 + - EventV2CorehrProcessUpdatedV2 + - EventV2CorehrProcessNodeUpdatedV2 - EventV2CorehrProcessApproverUpdatedV2 - EventV2CorehrProcessCcUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessUpdatedV2 + - EventV2ContactCustomAttrEventUpdatedV3 + - EventV2ApplicationApplicationCreatedV6 + - EventV1AppOpen + - EventV1AppStatusChange + - EventV1OrderPaid + - EventV1AppTicket + - EventV1AppUninstalled + - EventV2ApplicationApplicationVisibilityAddedV6 + - EventV2ApplicationApplicationAppVersionPublishApplyV6 + - EventV2ApplicationApplicationAppVersionPublishRevokeV6 + - EventV2ApplicationApplicationAppVersionAuditV6 + - EventV1OutApproval + - EventV1RemedyApproval + - EventV1ShiftApproval + - EventV1WorkApproval + - EventV1LeaveApprovalV2 + - EventV1LeaveApprovalRevert + - EventV2DriveFileCreatedInFolderV1 - EventV2DriveFileBitableFieldChangedV1 - EventV2DriveFileBitableRecordChangedV1 - - EventV2DriveFileCreatedInFolderV1 - - EventV2DriveFileDeletedV1 + - EventV2DriveFileTitleUpdatedV1 + - EventV2DriveFileReadV1 - EventV2DriveFileEditV1 - EventV2DriveFilePermissionMemberAddedV1 - EventV2DriveFilePermissionMemberRemovedV1 - - EventV2DriveFileReadV1 - - EventV2DriveFileTitleUpdatedV1 - EventV2DriveFileTrashedV1 - - EventV2ElearningCourseRegistrationCreatedV2 - - EventV2ElearningCourseRegistrationDeletedV2 - - EventV2ElearningCourseRegistrationUpdatedV2 - - EventV2HelpdeskNotificationApproveV1 - - EventV2HelpdeskTicketCreatedV1 + - EventV2DriveFileDeletedV1 + - EventV2ApprovalApprovalUpdatedV4 + - EventV1ThirdPartyMeetingRoomEventUpdated + - EventV1ThirdPartyMeetingRoomEventDeleted + - EventV2MeetingRoomMeetingRoomCreatedV1 + - EventV2MeetingRoomMeetingRoomUpdatedV1 + - EventV2MeetingRoomMeetingRoomStatusChangedV1 + - EventV2MeetingRoomMeetingRoomDeletedV1 + - EventV1ThirdPartyMeetingRoomEventCreated + - EventV2ApplicationApplicationFeedbackCreatedV6 + - EventV2ApplicationApplicationFeedbackUpdatedV6 + - EventV2TaskTaskUpdateTenantV1 + - EventV2TaskTaskUpdatedV1 + - EventV2TaskTaskCommentUpdatedV1 - EventV2HelpdeskTicketMessageCreatedV1 + - EventV2HelpdeskTicketCreatedV1 - EventV2HelpdeskTicketUpdatedV1 - - EventV2HireApplicationDeletedV1 - - EventV2HireApplicationStageChangedV1 - - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - - EventV2HireEHRImportTaskImportedV1 - - EventV2HireEcoAccountCreatedV1 - - EventV2HireEcoBackgroundCheckCanceledV1 - - EventV2HireEcoBackgroundCheckCreatedV1 - - EventV2HireEcoExamCreatedV1 - - EventV2HireOfferStatusChangedV1 - - EventV2HireReferralAccountAssetsUpdateV1 + - EventV2HelpdeskNotificationApproveV1 + - EventV2ContactDepartmentCreatedV3 + - EventV2ContactDepartmentDeletedV3 + - EventV2ContactDepartmentUpdatedV3 + - EventV2ContactUserUpdatedV3 + - EventV2ContactUserCreatedV3 + - EventV2ContactUserDeletedV3 + - EventV2ContactScopeUpdatedV3 + - EventV2ContactEmployeeTypeEnumCreatedV3 + - EventV2ContactEmployeeTypeEnumActivedV3 + - EventV2ContactEmployeeTypeEnumDeactivatedV3 + - EventV2ContactEmployeeTypeEnumUpdatedV3 + - EventV2ContactEmployeeTypeEnumDeletedV3 + - EventV2IMMessageReceiveV1 + - EventV2IMMessageReadV1 + - EventV2IMMessageReactionDeletedV1 + - EventV2IMMessageReactionCreatedV1 - EventV2IMChatDisbandedV1 + - EventV2IMChatUpdatedV1 - EventV2IMChatMemberBotAddedV1 - EventV2IMChatMemberBotDeletedV1 - EventV2IMChatMemberUserAddedV1 - - EventV2IMChatMemberUserDeletedV1 - EventV2IMChatMemberUserWithdrawnV1 - - EventV2IMChatUpdatedV1 - - EventV2IMMessageReactionCreatedV1 - - EventV2IMMessageReactionDeletedV1 - - EventV2IMMessageReadV1 - - EventV2IMMessageRecalledV1 - - EventV2IMMessageReceiveV1 - - EventV2MeetingRoomMeetingRoomCreatedV1 - - EventV2MeetingRoomMeetingRoomDeletedV1 - - EventV2MeetingRoomMeetingRoomStatusChangedV1 - - EventV2MeetingRoomMeetingRoomUpdatedV1 - - EventV2TaskTaskCommentUpdatedV1 - - EventV2TaskTaskUpdateTenantV1 - - EventV2TaskTaskUpdatedV1 - - EventV2URLPreviewGet - - EventV2VCMeetingAllMeetingEndedV1 - - EventV2VCMeetingAllMeetingStartedV1 + - EventV2IMChatMemberUserDeletedV1 + - EventV2VCMeetingMeetingStartedV1 + - EventV2VCMeetingMeetingEndedV1 - EventV2VCMeetingJoinMeetingV1 - EventV2VCMeetingLeaveMeetingV1 - - EventV2VCMeetingMeetingEndedV1 - - EventV2VCMeetingMeetingStartedV1 + - EventV2VCMeetingRecordingStartedV1 - EventV2VCMeetingRecordingEndedV1 - EventV2VCMeetingRecordingReadyV1 - - EventV2VCMeetingRecordingStartedV1 - - EventV2VCMeetingShareEndedV1 - EventV2VCMeetingShareStartedV1 - - EventV2VCReserveConfigUpdatedV1 + - EventV2VCMeetingShareEndedV1 + - EventV2ACSAccessRecordCreatedV1 + - EventV2ACSUserUpdatedV1 + - EventV2CalendarCalendarACLCreatedV4 + - EventV2CalendarCalendarACLDeletedV4 + - EventV2CalendarCalendarEventChangedV4 + - EventV2CalendarCalendarChangedV4 + - EventV1AddBot + - EventV1RemoveBot + - EventV1P2PChatCreate + - EventV1ReceiveMessage + - EventV1AddUserToChat + - EventV1RemoveUserFromChat + - EventV1RevokeAddUserFromChat + - EventV1ChatDisband + - EventV1ApprovalInstance + - EventV1ApprovalTask + - EventV1ApprovalCc + - EventV2AttendanceUserTaskUpdatedV1 + - EventV2AttendanceUserFlowCreatedV1 + - EventV2IMMessageRecalledV1 - EventV2VCRoomCreatedV1 - EventV2VCRoomDeletedV1 + - EventV2VCRoomUpdatedV1 + - EventV2VCMeetingAllMeetingStartedV1 + - EventV2VCMeetingAllMeetingEndedV1 - EventV2VCRoomLevelCreatedV1 - EventV2VCRoomLevelDeletedV1 - EventV2VCRoomLevelUpdatedV1 - - EventV2VCRoomUpdatedV1 + - EventV2VCReserveConfigUpdatedV1 + - EventV2ApplicationBotMenuV6 + - EventV2HireOfferStatusChangedV1 + - EventV2CorehrEmploymentCreatedV1 + - EventV2CorehrEmploymentUpdatedV1 + - EventV2CorehrEmploymentDeletedV1 + - EventV2CorehrPersonCreatedV1 + - EventV2CorehrPersonUpdatedV1 + - EventV2CorehrPersonDeletedV1 + - EventV2CorehrDepartmentCreatedV1 + - EventV2CorehrDepartmentUpdatedV1 + - EventV2CorehrDepartmentDeletedV1 + - EventV2CorehrJobDataEmployedV1 + - EventV2CorehrContractCreatedV1 + - EventV2CorehrEmploymentConvertedV1 + - EventV2CorehrJobChangeUpdatedV1 + - EventV2CorehrJobDataChangedV1 + - EventV2CorehrOffboardingUpdatedV1 + - EventV2CorehrEmploymentResignedV1 + - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2HireEHRImportTaskForInternshipOfferImportedV1 + - EventV2HireEHRImportTaskImportedV1 + - EventV2CorehrProbationUpdatedV2 + - EventV2CorehrPreHireUpdatedV1 + - EventV2HireEcoAccountCreatedV1 + - EventV2HireEcoBackgroundCheckCreatedV1 + - EventV2HireEcoBackgroundCheckCanceledV1 + - EventV2HireEcoExamCreatedV1 + - EventV2HireReferralAccountAssetsUpdateV1 + - EventV2CorehrContractDeletedV1 + - EventV2CorehrContractUpdatedV1 + - EventV1TripApproval + - EventV2CardActionTrigger + - EventV2CorehrOffboardingChecklistUpdatedV2 + - EventV2CorehrOffboardingStatusUpdatedV2 + - EventV2CorehrOffboardingUpdatedV2 - File - - DownloadFile + - UploadImage - DownloadImage - UploadFile - - UploadImage + - DownloadFile - Helpdesk - - AnswerHelpdeskTicketUserQuery + - CreateHelpdeskNotification + - UpdateHelpdeskNotification + - GetHelpdeskNotification + - PreviewHelpdeskNotification + - SubmitApproveHelpdeskNotification - CancelApproveHelpdeskNotification + - ExecuteSendHelpdeskNotification - CancelSendHelpdeskNotification - - CreateHelpdeskAgentSchedule - - CreateHelpdeskAgentSkill - - CreateHelpdeskCategory - - CreateHelpdeskFAQ - - CreateHelpdeskNotification + - StartHelpdeskService + - GetHelpdeskTicket + - UpdateHelpdeskTicket + - GetHelpdeskTicketList + - DownloadHelpdeskTicketImage + - AnswerHelpdeskTicketUserQuery + - GetHelpdeskTicketCustomizedFields + - GetHelpdeskTicketMessageList + - SendHelpdeskTicketMessage + - SendHelpdeskMessage + - GetHelpdeskTicketCustomizedFieldList + - DeleteHelpdeskTicketCustomizedField + - UpdateHelpdeskTicketCustomizedField - CreateHelpdeskTicketCustomizedField - - DeleteHelpdeskAgentSchedule - - DeleteHelpdeskAgentSkill + - GetHelpdeskTicketCustomizedField + - CreateHelpdeskCategory + - GetHelpdeskCategory + - UpdateHelpdeskCategory - DeleteHelpdeskCategory + - GetHelpdeskCategoryList + - CreateHelpdeskFAQ + - GetHelpdeskFAQ + - UpdateHelpdeskFAQ - DeleteHelpdeskFAQ - - DeleteHelpdeskTicketCustomizedField - - DownloadHelpdeskTicketImage - - ExecuteSendHelpdeskNotification + - GetHelpdeskFAQList + - GetHelpdeskFAQImage + - SearchHelpdeskFAQ + - UpdateHelpdeskAgent - GetHelpdeskAgentEmail + - CreateHelpdeskAgentSchedule + - DeleteHelpdeskAgentSchedule + - UpdateHelpdeskAgentSchedule - GetHelpdeskAgentSchedule - GetHelpdeskAgentScheduleList + - CreateHelpdeskAgentSkill - GetHelpdeskAgentSkill + - UpdateHelpdeskAgentSkill + - DeleteHelpdeskAgentSkill - GetHelpdeskAgentSkillList - GetHelpdeskAgentSkillRuleList - - GetHelpdeskCategory - - GetHelpdeskCategoryList - - GetHelpdeskFAQ - - GetHelpdeskFAQImage - - GetHelpdeskFAQList - - GetHelpdeskNotification - - GetHelpdeskTicket - - GetHelpdeskTicketCustomizedField - - GetHelpdeskTicketCustomizedFieldList - - GetHelpdeskTicketCustomizedFields - - GetHelpdeskTicketList - - GetHelpdeskTicketMessageList - - PreviewHelpdeskNotification - - SearchHelpdeskFAQ - - SendHelpdeskMessage - - SendHelpdeskTicketMessage - - StartHelpdeskService - - SubmitApproveHelpdeskNotification - SubscribeHelpdeskEvent - UnsubscribeHelpdeskEvent - - UpdateHelpdeskAgent - - UpdateHelpdeskAgentSchedule - - UpdateHelpdeskAgentSkill - - UpdateHelpdeskCategory - - UpdateHelpdeskFAQ - - UpdateHelpdeskNotification - - UpdateHelpdeskTicket - - UpdateHelpdeskTicketCustomizedField - Hire + - GetHireJobConfig + - CreateHireJob + - UpdateHireJob + - UpdateHireJobConfig + - GetHireJob + - GetHireJobManager + - QueryHireTalentObject + - GetHireTalent + - GetHireAttachment + - GetHireAttachmentPreview + - GetHireReferralWebsiteJobPostList + - GetHireReferralWebsiteJobPost + - GetHireReferralByApplication + - CreateHireExternalApplication + - UpdateHireExternalApplication + - DeleteHireExternalApplication + - CreateHireExternalInterview + - CreateHireExternalInterviewAssessment + - CreateHireExternalBackgroundCheck - AddHireTalentToFolder - - BatchDeleteHireEcoAccountCustomField - - BatchDeleteHireEcoBackgroundCheckCustomField - - BatchDeleteHireEcoBackgroundCheckPackage - - BatchDeleteHireEcoExamPaper + - GetHireTalentFolderList - BatchGetHireTalent - - BatchHireTalentPoolChangeTalentPool - - BatchQueryHireAgency - - BatchQueryHireBackgroundCheckOrder - - BatchQueryHireExternalBackgroundCheck - - BatchQueryHireExternalInterview - - BatchQueryHireExternalOffer + - GetHireJobProcessList + - CreateHireApplication + - TerminateHireApplication + - GetHireApplication + - GetHireApplicationList + - GetHireEvaluationList + - GetHireQuestionnaireList + - GetHireInterviewList + - CreateHireOffer + - UpdateHireOffer + - GetHireOfferByApplication + - GetHireOffer + - GetHireOfferList + - UpdateHireOfferStatus + - UpdateHireOfferInternStatus + - GetHireApplicationInterviewList + - GetHireOfferSchema + - UpdateHireEHRImportTask + - MakeHireTransferOnboardByApplication + - UpdateHireEmployee + - GetHireEmployeeByApplication + - GetHireEmployee + - CreateHireNote + - UpdateHireNote + - GetHireNote + - GetHireNoteList + - GetHireResumeSource + - CreateHireEcoAccountCustomField - BatchUpdateHireEcoAccountCustomField + - BatchDeleteHireEcoAccountCustomField + - CreateHireEcoBackgroundCheckCustomField - BatchUpdateHireEcoBackgroundCheckCustomField + - BatchDeleteHireEcoBackgroundCheckCustomField + - CreateHireEcoBackgroundCheckPackage - BatchUpdateHireEcoBackgroundCheckPackage - - BatchUpdateHireEcoExamPaper + - BatchDeleteHireEcoBackgroundCheckPackage + - UpdateHireEcoBackgroundCheckProgress + - UpdateHireEcoBackgroundCheckResult - CancelHireEcoBackgroundCheck - - CloseHireJob + - CreateHireEcoExamPaper + - BatchUpdateHireEcoExamPaper + - BatchDeleteHireEcoExamPaper + - CreateHireEcoExamLoginInfo + - UpdateHiredEcoExamResult + - CreateHireReferralAccount + - DeactivateHireReferralAccount + - WithdrawHireReferralAccount + - ReconcileHireReferralAccount + - GetHireInterviewRecord + - ListHireInterviewRecord + - GetHireTalentV2 + - CreateHireAttachment - CreateHireAdvertisementPublish + - BatchQueryHireAgency + - GetHireAgency + - GetHireAgencyAccount - CreateHireAgencyOperateAgencyAccount - CreateHireAgencyProtect - CreateHireAgencyProtectSearch - - CreateHireApplication + - QueryHireAgency - CreateHireApplicationCancelOnboard + - GetHireApplicationDetail - CreateHireApplicationRecover - - CreateHireAttachment - - CreateHireEcoAccountCustomField - - CreateHireEcoBackgroundCheckCustomField - - CreateHireEcoBackgroundCheckPackage - - CreateHireEcoExamLoginInfo - - CreateHireEcoExamPaper + - TransferHireApplicationStage + - BatchQueryHireBackgroundCheckOrder + - ListHireBackgroundCheckOrder + - SearchHireDiversityInclusion + - ListHireEvaluationTask - CreateHireExam - - CreateHireExternalApplication - - CreateHireExternalBackgroundCheck - - CreateHireExternalInterview - - CreateHireExternalInterviewAssessment - - CreateHireExternalOffer - - CreateHireExternalReferralReward - - CreateHireJob - - CreateHireJobRequirement - - CreateHireNote - - CreateHireOffer - - CreateHireReferralAccount - - CreateHireReferralAccountEnable - - CreateHireTalentBlocklistChangeTalentBlock - - CreateHireTalentCombinedCreate - - CreateHireTalentCombinedUpdate - - CreateHireTalentExternalInfo - - CreateHireTalentOnboardStatus - - CreateHireTalentPoolMoveTalent - - CreateHireTalentTag - - CreateHireTripartiteAgreement - - CreateHireWebsiteChannel - - CreateHireWebsiteDeliveryByAttachment - - CreateHireWebsiteDeliveryByResume - - CreateHireWebsiteSiteUser - - DeactivateHireReferralAccount - - DeleteHireExternalApplication + - ListHireExamMarkingTask + - ListHireExternalApplication + - BatchQueryHireExternalBackgroundCheck - DeleteHireExternalBackgroundCheck + - UpdateHireExternalBackgroundCheck + - BatchQueryHireExternalInterview - DeleteHireExternalInterview + - UpdateHireExternalInterview + - UpdateHireExternalInterviewAssessment + - BatchQueryHireExternalOffer + - CreateHireExternalOffer - DeleteHireExternalOffer + - UpdateHireExternalOffer + - CreateHireExternalReferralReward - DeleteHireExternalReferralReward - - DeleteHireJobRequirement - - DeleteHireNote - - DeleteHireTripartiteAgreement - - DeleteHireWebsiteChannel - - GetHireAgency - - GetHireAgencyAccount - - GetHireApplication - - GetHireApplicationDetail - - GetHireApplicationInterviewList - - GetHireApplicationList - - GetHireAttachment - - GetHireAttachmentPreview - - GetHireEmployee - - GetHireEmployeeByApplication - - GetHireEvaluationList - GetHireInterviewByTalent - - GetHireInterviewList - - GetHireInterviewRecord + - ListHireInterviewFeedbackForm - GetHireInterviewRecordAttachment - GetHireInterviewRecordV1 - - GetHireJob - - GetHireJobConfig - - GetHireJobDetail - - GetHireJobManager - - GetHireJobProcessList - - GetHireJobRecruiter - - GetHireMinutes - - GetHireNote - - GetHireNoteList - - GetHireOffer - - GetHireOfferApplicationForm - - GetHireOfferByApplication - - GetHireOfferList - - GetHireOfferSchema - - GetHireQuestionnaireList - - GetHireReferralAccountAssets - - GetHireReferralByApplication - - GetHireReferralWebsiteJobPost - - GetHireReferralWebsiteJobPostList - - GetHireResumeSource - - GetHireRole - - GetHireTalent - - GetHireTalentFolderList - - GetHireTalentList - - GetHireTalentV2 - - GetHireWebsiteDeliveryTask - - GetHireWebsiteJobPost - - ListHireBackgroundCheckOrder - - ListHireEvaluationTask - - ListHireExamMarkingTask - - ListHireExternalApplication - - ListHireInterviewFeedbackForm - - ListHireInterviewRecord - ListHireInterviewRecordV1 - ListHireInterviewRegistrationSchema - ListHireInterviewRoundType - ListHireInterviewTask - ListHireInterviewer + - UpdateHireInterviewer + - CloseHireJob + - GetHireJobDetail - ListHireJob + - OpenHireJob + - GetHireJobRecruiter - ListHireJobFunction + - SearchHireJobPublishRecord + - CreateHireJobRequirement + - DeleteHireJobRequirement - ListHireJobRequirement - ListHireJobRequirementByID + - UpdateHireJobRequirement - ListHireJobRequirementSchema - ListHireJobSchema - ListHireJobType - ListHireLocation + - QueryHireLocation + - GetHireMinutes + - DeleteHireNote + - GetHireOfferApplicationForm - ListHireOfferApplicationForm - ListHireOfferApprovalTemplate + - UpdateHireOfferCustomField - ListHirePortalApplySchema + - SearchHireReferral + - CreateHireReferralAccountEnable + - GetHireReferralAccountAssets - ListHireRegistrationSchema + - GetHireRole - ListHireRole - ListHireSubject + - CreateHireTalentExternalInfo + - UpdateHireTalentExternalInfo + - CreateHireTalentCombinedCreate + - CreateHireTalentCombinedUpdate + - GetHireTalentList + - CreateHireTalentOnboardStatus + - RemoveHireTalentToFolder + - CreateHireTalentTag + - SearchHireTalentOperationLog + - CreateHireTalentBlocklistChangeTalentBlock + - BatchHireTalentPoolChangeTalentPool + - CreateHireTalentPoolMoveTalent + - SearchHireTalentPool - ListHireTalentTag - ListHireTerminationReason + - SearchHireTest - ListHireTodo + - CreateHireTripartiteAgreement + - DeleteHireTripartiteAgreement - ListHireTripartiteAgreement + - UpdateHireTripartiteAgreement - ListHireUserRole - - ListHireWebsite + - CreateHireWebsiteChannel + - DeleteHireWebsiteChannel - ListHireWebsiteChannel - - ListHireWebsiteJobPost - - MakeHireTransferOnboardByApplication - - OpenHireJob - - QueryHireAgency - - QueryHireLocation - - QueryHireTalentObject - - ReconcileHireReferralAccount - - RemoveHireTalentToFolder - - SearchHireDiversityInclusion - - SearchHireJobPublishRecord - - SearchHireReferral - - SearchHireTalentOperationLog - - SearchHireTalentPool - - SearchHireTest - - SearchHireWebsiteJobPost - - TerminateHireApplication - - TransferHireApplicationStage - - UpdateHireEHRImportTask - - UpdateHireEcoBackgroundCheckProgress - - UpdateHireEcoBackgroundCheckResult - - UpdateHireEmployee - - UpdateHireExternalApplication - - UpdateHireExternalBackgroundCheck - - UpdateHireExternalInterview - - UpdateHireExternalInterviewAssessment - - UpdateHireExternalOffer - - UpdateHireInterviewer - - UpdateHireJob - - UpdateHireJobConfig - - UpdateHireJobRequirement - - UpdateHireNote - - UpdateHireOffer - - UpdateHireOfferCustomField - - UpdateHireOfferInternStatus - - UpdateHireOfferStatus - - UpdateHireTalentExternalInfo - - UpdateHireTripartiteAgreement - UpdateHireWebsiteChannel - - UpdateHiredEcoExamResult - - WithdrawHireReferralAccount + - CreateHireWebsiteDeliveryByAttachment + - CreateHireWebsiteDeliveryByResume + - GetHireWebsiteDeliveryTask + - GetHireWebsiteJobPost + - ListHireWebsiteJobPost + - SearchHireWebsiteJobPost + - CreateHireWebsiteSiteUser + - ListHireWebsite - HumanAuth - - CreateIdentity - - CropFaceVerifyImage - GetFaceVerifyAuthResult - UploadFaceVerifyImage + - CropFaceVerifyImage + - CreateIdentity - Jssdk - - GenerateJssdkSignature - GetJssdkTicket + - GenerateJssdkSignature - Lingo - - BatchHighlightLingoEntity - CreateLingoDraft - - CreateLingoEntity + - UpdateLingoDraft - DeleteLingoEntity - - DownloadLingoFile - - ExtractLingoEntity - - GetLingoClassificationList + - CreateLingoEntity + - UpdateLingoEntity - GetLingoEntity - GetLingoEntityList - - GetLingoRepoList - - HighlightLingoEntity - MatchLingoEntity - SearchLingoEntity - - UpdateLingoDraft - - UpdateLingoEntity + - HighlightLingoEntity + - ExtractLingoEntity + - GetLingoClassificationList + - GetLingoRepoList - UploadLingoFile + - DownloadLingoFile + - BatchHighlightLingoEntity - MDM - BindMDMUserAuthDataRelation + - UnbindMDMUserAuthDataRelation - GetMDMBatchCountryRegion - ListMDMCountryRegion - - UnbindMDMUserAuthDataRelation - Mail - - ApplyMailRule - - CreateUserMailboxMailContact - - CreateMailUserMailboxFolder - - CreateMailUserMailboxRule - - DeleteUserMailboxMailContact - - DeleteMailUserMailboxFolder - - DeleteMailUserMailboxRule - - ListUserMailboxMailContact - - GetMailUserMailboxEventSubscription - - ListMailUserMailboxFolder - - GetMailUserMailboxMessage - - ListMailUserMailboxMessage - - GetMailMessageSubscription - - ListMailUserMailboxRule - - CreateMailUserMailboxRuleReorder - - CreateMailUserMailboxMessageSend - - SubscribeMailUserMailboxEvent - - SubscribeMailMessage - - UnsubscribeMailUserMailboxEvent - - UnsubscribeMailUserMailboxEvent - - UpdateUserMailboxMailContact - - UpdateMailUserMailboxFolder - - UpdateMailUserMailboxRule - - BatchCreateMailGroupManager - - BatchCreateMailGroupMember - - BatchCreateMailGroupPermissionMember - - BatchCreatePublicMailboxMember - - BatchDeleteMailGroupManager - - BatchDeleteMailGroupMember - - BatchDeleteMailGroupPermissionMember - - BatchDeletePublicMailboxMember - - ClearPublicMailboxMember + - GetMailUser - CreateMailGroup - - CreateMailGroupAlias - - CreateMailGroupMember - - CreateMailGroupPermissionMember - - CreateMailPublicMailboxAlias - - CreateMailUserMailboxAlias - - CreatePublicMailbox - - CreatePublicMailboxMember - DeleteMailGroup - - DeleteMailGroupAlias - - DeleteMailGroupMember - - DeleteMailGroupPermissionMember - - DeleteMailPublicMailboxAlias - - DeleteMailUserMailbox - - DeleteMailUserMailboxAlias - - DeletePublicMailbox - - DeletePublicMailboxMember - - DownloadMailUserMailboxMessageAttachmentURL + - UpdateMailGroupPatch + - UpdateMailGroup - GetMailGroup - - GetMailGroupAliasList - GetMailGroupList + - BatchCreateMailGroupManager + - BatchDeleteMailGroupManager - GetMailGroupManagerList + - CreateMailGroupMember + - DeleteMailGroupMember - GetMailGroupMember - GetMailGroupMemberList + - BatchCreateMailGroupMember + - BatchDeleteMailGroupMember + - CreateMailGroupPermissionMember + - DeleteMailGroupPermissionMember - GetMailGroupPermissionMember - GetMailGroupPermissionMemberList - - GetMailPublicMailboxAliasList - - GetMailUser - - GetMailUserMailboxAliasList - - GetMailUserMailboxMessageByCard + - BatchCreateMailGroupPermissionMember + - BatchDeleteMailGroupPermissionMember + - CreateMailGroupAlias + - GetMailGroupAliasList + - DeleteMailGroupAlias + - CreatePublicMailbox - GetPublicMailbox - GetPublicMailboxList + - UpdatePublicMailboxPatch + - UpdatePublicMailbox + - DeletePublicMailbox + - CreatePublicMailboxMember - GetPublicMailboxMember - GetPublicMailboxMemberList + - BatchCreatePublicMailboxMember + - BatchDeletePublicMailboxMember + - DeletePublicMailboxMember + - ClearPublicMailboxMember + - CreateMailPublicMailboxAlias + - GetMailPublicMailboxAliasList + - DeleteMailPublicMailboxAlias + - CreateMailUserMailboxAlias + - DeleteMailUserMailboxAlias + - GetMailUserMailboxAliasList + - DeleteMailUserMailbox - RemoveMailPublicMailboxToRecycleBin - - UpdateMailGroup - - UpdateMailGroupPatch - - UpdatePublicMailbox - - UpdatePublicMailboxPatch + - SubscribeMailUserMailboxEvent + - GetMailUserMailboxEventSubscription + - UnsubscribeMailUserMailboxEvent + - CreateMailUserMailboxFolder + - DeleteMailUserMailboxFolder + - ListMailUserMailboxFolder + - UpdateMailUserMailboxFolder + - CreateUserMailboxMailContact + - DeleteUserMailboxMailContact + - ListUserMailboxMailContact + - UpdateUserMailboxMailContact + - DownloadMailUserMailboxMessageAttachmentURL + - GetMailUserMailboxMessage + - GetMailUserMailboxMessageByCard + - ListMailUserMailboxMessage + - CreateMailUserMailboxMessageSend + - CreateMailUserMailboxRule + - DeleteMailUserMailboxRule + - ListMailUserMailboxRule + - CreateMailUserMailboxRuleReorder + - UpdateMailUserMailboxRule + - ApplyMailRule + - GetMailMessageSubscription + - SubscribeMailMessage - MeetingRoom - GetMeetingRoomCustomization - Message - - CreateAppFeedCard - - CreateIMTagRelation - - DeleteAppFeedCard - - ListIMTagRelation - - UpdateAppFeedCard - - DeleteIMTagRelation - - UpdateAppFeedCardButton - - InstantReminderAppFeedCard - - BatchDeleteMessage + - SendEphemeralMessage + - SendUrgentAppMessage + - SendUrgentSmsMessage + - SendUrgentPhoneMessage + - SendRawMessageOld - BatchSendOldRawMessage - - BatchUpdateURLPreview - - CreateIMMessagePushFollowUp - - CreateIMTag - - CreateMessagePin - - CreateMessageReaction - - DeleteEphemeralMessage + - SendRawMessage + - ReplyRawMessage + - UpdateMessageEdit - DeleteMessage - - DeleteMessagePin - - DeleteMessageReaction - ForwardMessage + - MergeForwardMessage - ForwardThreadMessage - - GetBatchSentMessageProgress + - BatchDeleteMessage + - UpdateMessage + - UpdateMessageDelay + - GetMessageReadUserList - GetBatchSentMessageReadUser - - GetMessage - - GetMessageFile + - GetBatchSentMessageProgress - GetMessageList - - GetMessagePinList + - GetMessageFile + - GetMessage + - DeleteEphemeralMessage + - CreateMessageReaction - GetMessageReactionList - - GetMessageReadUserList + - DeleteMessageReaction + - CreateMessagePin + - DeleteMessagePin + - GetMessagePinList - GetMessageSpecialFocusList - GetMessageSpecialFocusUnread + - DeleteAppFeedCard + - UpdateAppFeedCard + - CreateAppFeedCard + - CreateIMTagRelation + - ListIMTagRelation + - DeleteIMTagRelation + - UpdateAppFeedCardButton + - UpdateIMFeedCardBotTimeSentive + - InstantReminderAppFeedCard + - CreateIMTag + - UpdateIMTag + - BatchUpdateURLPreview + - CreateIMMessagePushFollowUp - MGetIMTag - - MergeForwardMessage - Reply - - ReplyRawMessage - Send - - SendEphemeralMessage - - SendRawMessage - - SendRawMessageOld - - SendUrgentAppMessage - - SendUrgentPhoneMessage - - SendUrgentSmsMessage - - UpdateIMFeedCardBotTimeSentive - - UpdateIMTag - - UpdateMessage - - UpdateMessageDelay - - UpdateMessageEdit - Mina - MinaCodeToSession - Minutes + - GetMinutesStatistics - GetMinutesMinute - GetMinutesMinuteMedia - GetMinutesMinuteTranscript - - GetMinutesStatistics - Moments - GetMomentsPost - OKR - - GetOKRReview - - BatchGetOKR - - BatchUpdateOKRMetricSourceTableItem - CreateOKRPeriod - - CreateOKRProgressRecord - - DeleteOKRProgressRecord - - GetOKRMetricSourceList - - GetOKRMetricSourceTableItem - - GetOKRMetricSourceTableItemList - - GetOKRMetricSourceTableList + - UpdateOKRPeriod - GetOKRPeriodList - GetOKRPeriodRuleList - - GetOKRProgressRecord + - BatchGetOKR - GetUserOKRList - - UpdateOKRMetricSourceTableItem - - UpdateOKRPeriod + - DeleteOKRProgressRecord - UpdateOKRProgressRecord + - GetOKRProgressRecord + - CreateOKRProgressRecord - UploadOKRImage + - GetOKRMetricSourceList + - GetOKRMetricSourceTableList + - BatchUpdateOKRMetricSourceTableItem + - UpdateOKRMetricSourceTableItem + - GetOKRMetricSourceTableItem + - GetOKRMetricSourceTableItemList + - GetOKRReview - Passport - - CreatePassportSessionLogout - GetPassportSession + - CreatePassportSessionLogout - Payroll - - CreatePayrollDatasourceRecordSave - - CreatePayrollPaymentActivityArchive - ListPayrollAcctItem - ListPayrollCostAllocationDetail - ListPayrollCostAllocationPlan - ListPayrollCostAllocationReport - ListPayrollDatasource + - QueryPayrollDatasourceRecord + - CreatePayrollDatasourceRecordSave - ListPayrollPaygroup + - CreatePayrollPaymentActivityArchive - ListPayrollPaymentActivity - ListPayrollPaymentActivityDetail - - QueryPayrollDatasourceRecord - QueryPayrollPaymentDetail -- Performance - - CreatePerformanceAdditionalInformationImport - - CreatePerformanceMetricDetailImport - - CreatePerformanceUserGroupUserRelWrite - - DeletePerformanceAdditionalInformationsBatch - - GetPerformanceReviewData +- Performance - GetPerformanceSemesterList - - GetPerformanceStageTaskByPage - GetPerformanceStageTaskByUser - - ListPerformanceMetricTag + - GetPerformanceStageTaskByPage + - GetPerformanceReviewData - QueryPerformanceActivity + - CreatePerformanceAdditionalInformationImport - QueryPerformanceAdditionalInformation + - DeletePerformanceAdditionalInformationsBatch - QueryPerformanceIndicator + - CreatePerformanceMetricDetailImport - QueryPerformanceMetricDetail - QueryPerformanceMetricField - QueryPerformanceMetricLib + - ListPerformanceMetricTag - QueryPerformanceMetricTemplate - QueryPerformanceQuestion - QueryPerformanceReviewData - QueryPerformanceReviewTemplate - QueryPerformanceReviewee + - CreatePerformanceUserGroupUserRelWrite - QueryPerformanceUserInfo - PersonalSettings - - BatchClosePersonalSettingsSystemStatus - - BatchOpenPersonalSettingsSystemStatus - CreatePersonalSettingsSystemStatus - DeletePersonalSettingsSystemStatus - - GetPersonalSettingsSystemStatusList - UpdatePersonalSettingsSystemStatus + - GetPersonalSettingsSystemStatusList + - BatchOpenPersonalSettingsSystemStatus + - BatchClosePersonalSettingsSystemStatus - Report - - QueryReportRule - RemoveReportView + - QueryReportRule - QueryReportTask - Search - - BatchCreateSearchDataSourceItem + - SearchMessage + - SearchApp - CreateSearchDataSource - - CreateSearchDataSourceItem - - CreateSearchSchema + - GetSearchDataSource + - UpdateSearchDataSource + - GetSearchDataSourceList - DeleteSearchDataSource + - BatchCreateSearchDataSourceItem + - CreateSearchDataSourceItem + - GetSearchDataSourceItem - DeleteSearchDataSourceItem + - UpdateSearchSchema - DeleteSearchSchema - - GetSearchDataSource - - GetSearchDataSourceItem - - GetSearchDataSourceList - GetSearchSchema - - SearchApp - - SearchMessage + - CreateSearchSchema - SearchSearchDocWiki - - UpdateSearchDataSource - - UpdateSearchSchema - SecurityAndCompliance + - ListSecurityAndComplianceOpenapiLogData + - UpdateSecurityAndComplianceDeviceApplyRecord - CreateSecurityAndComplianceDeviceRecord - DeleteSecurityAndComplianceDeviceRecord - GetSecurityAndComplianceDeviceRecord - - GetSecurityAndComplianceDeviceRecordMine - ListSecurityAndComplianceDeviceRecord - - ListSecurityAndComplianceOpenapiLogData - - UpdateSecurityAndComplianceDeviceApplyRecord + - GetSecurityAndComplianceDeviceRecordMine - UpdateSecurityAndComplianceDeviceRecord - Task - - AddTaskDependency - - AddTaskMember - - AddTaskReminder - - AddTaskTasklist - - AddTaskTasklistMember - - CreateTaskSubtask - - GetTaskTaskListOfSection - - GetTaskTaskListOfTasklist - - GetTaskSubtaskList - - RemoveTaskDependency - - RemoveTaskMember - - RemoveTaskReminder - - RemoveTaskTasklist - - RemoveTaskTasklistMember - - AddTaskCustomField - - BatchDeleteTaskCollaborator + - CreateTaskFollower + - DeleteTaskFollower - BatchDeleteTaskFollower - - CompleteTask - - CreateTask + - GetTaskFollowerList - CreateTaskCollaborator - - CreateTaskComment - - CreateTaskCommentV2 - - CreateTaskCustomField - - CreateTaskCustomFieldOption - - CreateTaskFollower - - CreateTaskReminder - - CreateTaskSection - - CreateTaskTasklist - - CreateTaskTasklistActivitySubscription - - DeleteTask - - DeleteTaskAttachment - DeleteTaskCollaborator - - DeleteTaskComment - - DeleteTaskCommentV2 - - DeleteTaskFollower + - BatchDeleteTaskCollaborator + - GetTaskCollaboratorList + - CreateTaskReminder + - GetTaskReminderList - DeleteTaskReminder - - DeleteTaskSection - - DeleteTaskTasklist - - DeleteTaskTasklistActivitySubscription + - CreateTask - GetTask + - GetTaskList + - DeleteTask + - UpdateTask + - CompleteTask + - UncompleteTask + - CreateTaskComment + - GetTaskComment + - DeleteTaskComment + - UpdateTaskComment + - DeleteTaskAttachment - GetTaskAttachment - GetTaskAttachmentList - - GetTaskCollaboratorList - - GetTaskComment + - UploadTaskAttachment + - CreateTaskCommentV2 + - DeleteTaskCommentV2 - GetTaskCommentV2 + - ListTaskComment + - UpdateTaskCommentV2 + - CreateTaskCustomFieldOption + - UpdateTaskCustomFieldOption + - AddTaskCustomField + - CreateTaskCustomField - GetTaskCustomField - - GetTaskFollowerList - - GetTaskList - - GetTaskReminderList + - ListTaskCustomField + - UpdateTaskCustomField + - RemoveTaskCustomField + - CreateTaskSection + - DeleteTaskSection - GetTaskSection - GetTaskSectionList - - GetTaskTasklist + - UpdateTaskSection + - GetTaskTaskListOfSection + - CreateTaskSubtask + - GetTaskSubtaskList + - AddTaskDependency + - AddTaskMember + - AddTaskReminder + - AddTaskTasklist + - RemoveTaskDependency + - RemoveTaskMember + - RemoveTaskReminder + - RemoveTaskTasklist + - GetTaskTasklists + - CreateTaskTasklistActivitySubscription + - DeleteTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscription - GetTaskTasklistActivitySubscriptionList + - UpdateTaskTasklistActivitySubscription + - AddTaskTasklistMember + - CreateTaskTasklist + - DeleteTaskTasklist + - GetTaskTasklist - GetTaskTasklistList - - GetTaskTasklists - - ListTaskComment - - ListTaskCustomField - - RemoveTaskCustomField - - UncompleteTask - - UpdateTask - - UpdateTaskComment - - UpdateTaskCommentV2 - - UpdateTaskCustomField - - UpdateTaskCustomFieldOption - - UpdateTaskSection - UpdateTaskTasklist - - UpdateTaskTasklistActivitySubscription - - UploadTaskAttachment + - RemoveTaskTasklistMember + - GetTaskTaskListOfTasklist - TaskV1 + - GetTaskV1CommentList - CreateTaskV1 - DeleteTaskV1 - - GetTaskV1CommentList - GetTaskV1 - GetTaskV1List - UpdateTaskV1 @@ -1794,86 +1795,86 @@ API 总数: 1621, 事件总数: 153 - UncompleteTaskV1 - UpdateTaskV1Comment - Tenant - - GetTenant - GetTenantProductAssignInfo + - GetTenant - TrustParty - - GetTrustPartyCollaborationTenant - GetTrustPartyCollaborationTenantCollaborationDepartment - GetTrustPartyCollaborationTenantCollaborationUser - - GetTrustPartyCollaborationTenantVisibleOrganization + - GetTrustPartyCollaborationTenant - ListTrustPartyCollaborationTenant + - GetTrustPartyCollaborationTenantVisibleOrganization - VC - - QueryVCRoomConfig - ApplyVCReserve + - UpdateVCReserve + - DeleteVCReserve + - GetVCReserve + - GetVCReserveActiveMeeting + - GetVCMeeting + - ListVCMeetingByNo + - InviteVCMeeting + - KickoutVCMeeting + - SetVCHostMeeting + - EndVCMeeting + - StartVCMeetingRecording + - StopVCMeetingRecording + - GetVCMeetingRecording + - SetVCPermissionMeetingRecording + - GetVCDailyReport + - GetVCTopUserReport + - GetVCRoomList + - GetVCRoom - BatchGetVCRoom - - BatchGetVCRoomLevel - CreateVCRoom - - CreateVCRoomLevel - - DeleteVCReserve + - UpdateVCRoom - DeleteVCRoom + - SearchVCRoom + - GetVCRoomLevelList + - GetVCRoomLevel + - BatchGetVCRoomLevel + - CreateVCRoomLevel + - UpdateVCRoomLevel - DeleteVCRoomLevel - - DownloadVCExportFile - - EndVCMeeting + - SearchVCRoomLevel + - SetVCScopeConfig + - GetVCScopeConfig + - GetVCReserveConfig + - UpdateVCReserveConfig + - GetVCReserveConfigForm + - UpdateVCReserveConfigForm + - GetVCReserveConfigAdmin + - UpdateVCReserveConfigAdmin + - GetVCReserveConfigDisableInform + - UpdateVCReserveConfigDisableInform - ExportVCMeetingList - ExportVCParticipantList - ExportVCParticipantQualityList - ExportVCResourceReservationList - - GetVCAlertList - - GetVCDailyReport - GetVCExportTask - - GetVCMeeting + - DownloadVCExportFile + - GetVCAlertList - GetVCMeetingList - - GetVCMeetingRecording - GetVCParticipantList - GetVCParticipantQualityList - - GetVCReserve - - GetVCReserveActiveMeeting - - GetVCReserveConfig - - GetVCReserveConfigAdmin - - GetVCReserveConfigDisableInform - - GetVCReserveConfigForm - GetVCResourceReservationList - - GetVCRoom - - GetVCRoomLevel - - GetVCRoomLevelList - - GetVCRoomList - - GetVCScopeConfig - - GetVCTopUserReport - - InviteVCMeeting - - KickoutVCMeeting - - ListVCMeetingByNo - - SearchVCRoom - - SearchVCRoomLevel - - SetVCHostMeeting - - SetVCPermissionMeetingRecording + - QueryVCRoomConfig - SetVCRoomConfig - SetVCRoomConfigCheckboardAccessCode - SetVCRoomConfigRoomAccessCode - - SetVCScopeConfig - - StartVCMeetingRecording - - StopVCMeetingRecording - - UpdateVCReserve - - UpdateVCReserveConfig - - UpdateVCReserveConfigAdmin - - UpdateVCReserveConfigDisableInform - - UpdateVCReserveConfigForm - - UpdateVCRoom - - UpdateVCRoomLevel - VCMeeting - - GetVCMeetingDefaultBuildingBatchGet - - GetVCMeetingDefaultBuildingBatchGetID - - GetVCMeetingDefaultRoomBatchGet - - GetVCMeetingDefaultRoomBatchGetID + - ListVCMeetingDefaultRoom - CreateVCMeetingDefaultBuildingCreate + - GetVCMeetingDefaultRoomBatchGet + - CreateVCMeetingDefaultBuildingUpdate - CreateVCMeetingDefaultRoomCreate + - CreateVCMeetingDefaultRoomUpdate - CreateVCMeetingDefaultBuildingDelete - - CreateVCMeetingDefaultRoomDelete - - ListVCMeetingDefaultBuilding - ListVCMeetingDefaultCountry + - GetVCMeetingDefaultBuildingBatchGetID - ListVCMeetingDefaultDistrict - - ListVCMeetingDefaultRoom - - CreateVCMeetingDefaultBuildingUpdate - - CreateVCMeetingDefaultRoomUpdate + - CreateVCMeetingDefaultRoomDelete + - GetVCMeetingDefaultRoomBatchGetID + - ListVCMeetingDefaultBuilding + - GetVCMeetingDefaultBuildingBatchGet - Verification - GetVerification diff --git a/api_calendar_meeting_room_freebusy_batch_get.go b/api_calendar_meeting_room_freebusy_batch_get.go index 204231e1..8e969dac 100644 --- a/api_calendar_meeting_room_freebusy_batch_get.go +++ b/api_calendar_meeting_room_freebusy_batch_get.go @@ -21,9 +21,14 @@ import ( "context" ) -// BatchGetCalendarMeetingRoomFreebusy 该接口用于获取指定会议室的忙闲日程实例列表。非重复日程只有唯一实例;重复日程可能存在多个实例, 依据重复规则和时间范围扩展。 +// BatchGetCalendarMeetingRoomFreebusy 调用该接口获取指定会议室的忙碌、空闲日程信息。 +// +// 查询结果中: +// - 非重复日程只有唯一的实例信息。 +// - 重复日程可能存在多个实例信息, 根据日程重复规则和时间范围进行扩展。建议查询的时间区间为 30 天内。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uIDOyUjLygjM14iM4ITN +// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/query-room-availability func (r *CalendarService) BatchGetCalendarMeetingRoomFreebusy(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) { if r.cli.mock.mockCalendarBatchGetCalendarMeetingRoomFreebusy != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#BatchGetCalendarMeetingRoomFreebusy mock enable") @@ -38,6 +43,7 @@ func (r *CalendarService) BatchGetCalendarMeetingRoomFreebusy(ctx context.Contex Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, + NeedUserAccessToken: true, } resp := new(batchGetCalendarMeetingRoomFreebusyResp) @@ -57,36 +63,37 @@ func (r *Mock) UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() { // BatchGetCalendarMeetingRoomFreebusyReq ... type BatchGetCalendarMeetingRoomFreebusyReq struct { - RoomIDs []string `query:"room_ids" json:"-"` // 用于查询指定会议室的 ID - TimeMin string `query:"time_min" json:"-"` // 查询会议室忙闲的起始时间, 需要遵循格式 [RFC3339](https://tools.ietf.org/html/rfc3339), 需要进行URL Encode - TimeMax string `query:"time_max" json:"-"` // 查询会议室忙闲的结束时间, 需要遵循格式 [RFC3339](https://tools.ietf.org/html/rfc3339), 需要进行URL Encode + RoomIDs []string `query:"room_ids" json:"-"` // 会议室 ID。你可以通过[查询会议室列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room/list)或[搜索会议室](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room/search)接口获取指定会议室 ID。 1. room_ids个数不要超过20。 2. GET 请求中传入多个会议室 ID 的格式示例为 `room_ids=omm_83d09ad4f6896e02029a6a075f71xxxx&room_ids=omm_eada1d61a550955240c28757e7dexxxx`。 + TimeMin string `query:"time_min" json:"-"` // 查询的起始时间, 需要遵循 [RFC3339](https://tools.ietf.org/html/rfc3339) 格式, 示例: 2019-09-04T08:45:00+08:00。 注意: 传入该参数时需要进行 URL 编码。 + TimeMax string `query:"time_max" json:"-"` // 查询的结束时间, 需要遵循 [RFC3339](https://tools.ietf.org/html/rfc3339) 格式, 示例: 2019-09-04T09:45:00+08:00。 注意: 传入该参数时需要进行 URL 编码。 } // BatchGetCalendarMeetingRoomFreebusyResp ... type BatchGetCalendarMeetingRoomFreebusyResp struct { - TimeMin string `json:"time_min,omitempty"` // 查询会议室忙闲的起始时间, 与请求参数完全相同 - TimeMax string `json:"time_max,omitempty"` // 查询会议室忙闲的结束时间, 与请求参数完全相同 - FreeBusy map[string]*BatchGetCalendarMeetingRoomFreebusyRespFreeBusy `json:"free_busy,omitempty"` // 会议室忙闲列表 + TimeMin string `json:"time_min,omitempty"` // 查询会议室忙闲的起始时间。 + TimeMax string `json:"time_max,omitempty"` // 查询会议室忙闲的结束时间。 + FreeBusy map[string]*BatchGetCalendarMeetingRoomFreebusyRespFreeBusy `json:"free_busy,omitempty"` // 会议室忙闲信息列表。 } // BatchGetCalendarMeetingRoomFreebusyRespFreeBusy ... type BatchGetCalendarMeetingRoomFreebusyRespFreeBusy struct { - StartTime string `json:"start_time,omitempty"` // 忙碌起始时间 - EndTime string `json:"end_time,omitempty"` // 忙碌结束时间 - Uid string `json:"uid,omitempty"` // 日程 ID - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例的原始时间, 非重复日程以及重复性日程的原日程为0, 重复性日程的例外日程为非0 - OrganizerInfo *BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo `json:"organizer_info,omitempty"` // 组织者信息, 私密日程不返回该信息 + StartTime string `json:"start_time,omitempty"` // 忙碌日程的起始时间。 + EndTime string `json:"end_time,omitempty"` // 忙碌日程的结束时间。 + Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例的原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 + OrganizerInfo *BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo `json:"organizer_info,omitempty"` // 日程组织者信息。私密日程不会返回该信息。 } // BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo ... type BatchGetCalendarMeetingRoomFreebusyRespFreeBusyOrganizerInfo struct { - Name string `json:"name,omitempty"` // 组织者姓名 - OpenID string `json:"open_id,omitempty"` // 组织者 open_id + Name string `json:"name,omitempty"` // 组织者姓名。使用应用身份创建的日程不会返回该信息。 + OpenID string `json:"open_id,omitempty"` // 组织者的 open_id。 } // batchGetCalendarMeetingRoomFreebusyResp ... type batchGetCalendarMeetingRoomFreebusyResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *BatchGetCalendarMeetingRoomFreebusyResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 + Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 + Data *BatchGetCalendarMeetingRoomFreebusyResp `json:"data,omitempty"` // 返回信息。 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_calendar_meeting_room_instance_reply.go b/api_calendar_meeting_room_instance_reply.go index 0c9a61a4..d779e6f3 100644 --- a/api_calendar_meeting_room_instance_reply.go +++ b/api_calendar_meeting_room_instance_reply.go @@ -21,9 +21,13 @@ import ( "context" ) -// ReplyCalendarMeetingRoomInstance 该接口用于回复会议室日程实例, 包括未签到释放和提前结束释放。 +// ReplyCalendarMeetingRoomInstance 调用该接口用于回复会议室日程实例, 支持回复未签到释放、提前结束释放、被管理员置为接受、被管理员置为拒绝。 +// +// 说明: 你可以先调用[查询会议室忙闲](https://open.feishu.cn/document/ukTMukTMukTM/uIDOyUjLygjM14iM4ITN)接口, 获取指定会议室的某一日程的 uid、original_time 信息, 然后再调用本接口回复会议室日程。
+// ID说明: 日程 ID(event_id)格式为 `_`, 因此你可以通过 event_id 获取日程的 Uid 和 Original time。例如, 日程 ID 为 `c32537e6-e0a8-4506-b42f-47440655cdb4_0`, 则 Uid 为 `c32537e6-e0a8-4506-b42f-47440655cdb4`、Original time 为 `0`。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uYzN4UjL2cDO14iN3gTN +// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/reply-meeting-room-event-instance func (r *CalendarService) ReplyCalendarMeetingRoomInstance(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) { if r.cli.mock.mockCalendarReplyCalendarMeetingRoomInstance != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#ReplyCalendarMeetingRoomInstance mock enable") @@ -57,10 +61,10 @@ func (r *Mock) UnMockCalendarReplyCalendarMeetingRoomInstance() { // ReplyCalendarMeetingRoomInstanceReq ... type ReplyCalendarMeetingRoomInstanceReq struct { - RoomID string `json:"room_id,omitempty"` // 会议室的 ID - Uid string `json:"uid,omitempty"` // 会议室的日程 ID - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间, 非重复日程必为0。重复日程若为0则表示回复其所有实例, 否则表示回复单个实例。 - Status string `json:"status,omitempty"` // 回复状态, NOT_CHECK_IN 表示未签到, ENDED_BEFORE_DUE 表示提前结束, ACCEPTED_BY_ADMIN 表示被管理员置为接受, DECLINED_BY_ADMIN 表示被管理员置为拒绝 + RoomID string `json:"room_id,omitempty"` // 会议室 ID。 + Uid string `json:"uid,omitempty"` // 会议室对应的日程 Uid。 + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传 0;重复性日程的例外日程, 此处传对应的 original_time 值(时间戳类型)。 + Status string `json:"status,omitempty"` // 回复状态。 可选值有: - NOT_CHECK_IN: 未签到 - ENDED_BEFORE_DUE: 提前结束 - ACCEPTED_BY_ADMIN: 被管理员置为接受 DECLINED_BY_ADMIN: 被管理员置为拒绝 } // ReplyCalendarMeetingRoomInstanceResp ... @@ -69,7 +73,8 @@ type ReplyCalendarMeetingRoomInstanceResp struct { // replyCalendarMeetingRoomInstanceResp ... type replyCalendarMeetingRoomInstanceResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。105003表示 original_time 非法, 此时可能是重复日程的整个开始时间被修改, 建议应用重新查询会议室日程实例列表, 获取最新的 original_time。 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *ReplyCalendarMeetingRoomInstanceResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 说明: 如果返回 105003 表示 original_time 不合法。该问题可能是重复日程的整个开始时间被修改导致的, 建议应用重新查询会议室的日程列表, 获取最新的 original_time, 然后再次尝试调用本接口。 + Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 + Data *ReplyCalendarMeetingRoomInstanceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_calendar_meeting_room_summary_batch_get.go b/api_calendar_meeting_room_summary_batch_get.go index 12bcb4a1..38a69967 100644 --- a/api_calendar_meeting_room_summary_batch_get.go +++ b/api_calendar_meeting_room_summary_batch_get.go @@ -21,9 +21,12 @@ import ( "context" ) -// BatchGetCalendarMeetingRoomSummary 通过日程的Uid和Original time, 查询会议室日程主题。 +// BatchGetCalendarMeetingRoomSummary 调用该接口使用日程的 Uid 和 Original time 查询会议室日程主题与详情。 +// +// 日程 ID(event_id)格式为 `_`, 因此你可以通过 event_id 获取日程的 Uid 和 Original time。例如, 日程 ID 为 `c32537e6-e0a8-4506-b42f-47440655cdb4_0`, 则 Uid 为 `c32537e6-e0a8-4506-b42f-47440655cdb4`、Original time 为 `0`。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uIjM5UjLyITO14iMykTN/ +// new doc: https://open.feishu.cn/document/server-docs/calendar-v4/meeting-room-event/ func (r *CalendarService) BatchGetCalendarMeetingRoomSummary(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) { if r.cli.mock.mockCalendarBatchGetCalendarMeetingRoomSummary != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Calendar#BatchGetCalendarMeetingRoomSummary mock enable") @@ -57,47 +60,48 @@ func (r *Mock) UnMockCalendarBatchGetCalendarMeetingRoomSummary() { // BatchGetCalendarMeetingRoomSummaryReq ... type BatchGetCalendarMeetingRoomSummaryReq struct { - EventUids []*BatchGetCalendarMeetingRoomSummaryReqEventUid `json:"EventUids,omitempty"` // 需要查询的日程Uid和Original time + EventUids []*BatchGetCalendarMeetingRoomSummaryReqEventUid `json:"EventUids,omitempty"` // 需要查询的日程 Uid 和 Original time 列表。 } // BatchGetCalendarMeetingRoomSummaryReqEventUid ... type BatchGetCalendarMeetingRoomSummaryReqEventUid struct { - Uid string `json:"uid,omitempty"` // 日程的唯一id - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传0;重复性日程的例外, 传对应的original_time + Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处传 0;重复性日程的例外日程, 需要传入对应的 original_time 值(时间戳类型)。 } // BatchGetCalendarMeetingRoomSummaryResp ... type BatchGetCalendarMeetingRoomSummaryResp struct { - EventInfos []*BatchGetCalendarMeetingRoomSummaryRespEventInfo `json:"EventInfos,omitempty"` // 成功查询到的日程信息 - ErrorEventUids []*BatchGetCalendarMeetingRoomSummaryRespErrorEventUid `json:"ErrorEventUids,omitempty"` // 没有查询到的日程 + EventInfos []*BatchGetCalendarMeetingRoomSummaryRespEventInfo `json:"EventInfos,omitempty"` // 查询到的日程信息。 + ErrorEventUids []*BatchGetCalendarMeetingRoomSummaryRespErrorEventUid `json:"ErrorEventUids,omitempty"` // 没有查询到的日程信息。 } // BatchGetCalendarMeetingRoomSummaryRespErrorEventUid ... type BatchGetCalendarMeetingRoomSummaryRespErrorEventUid struct { - Uid string `json:"uid,omitempty"` // 日程的唯一id - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为0;重复性日程的例外, 为对应的original_time - ErrorMsg string `json:"error_msg,omitempty"` // 错误信息 + Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 + ErrorMsg string `json:"error_msg,omitempty"` // 错误信息。 } // BatchGetCalendarMeetingRoomSummaryRespEventInfo ... type BatchGetCalendarMeetingRoomSummaryRespEventInfo struct { - Uid string `json:"uid,omitempty"` // 日程的唯一id - OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为0;重复性日程的例外, 为对应的original_time - Summary string `json:"summary,omitempty"` // 日程主题 - Vchat *BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat `json:"vchat,omitempty"` // 视频会议信息 + Uid string `json:"uid,omitempty"` // 日程的唯一 ID。 + OriginalTime int64 `json:"original_time,omitempty"` // 日程实例原始时间。非重复性日程和重复性日程, 此处为 0;重复性日程的例外日程, 此处为对应的 original_time 值(时间戳类型)。 + Summary string `json:"summary,omitempty"` // 日程主题。 + Vchat *BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat `json:"vchat,omitempty"` // 视频会议信息。 } // BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat ... type BatchGetCalendarMeetingRoomSummaryRespEventInfoVchat struct { - VCType string `json:"vc_type,omitempty"` // 视屏会议类型 可选值有: - `vc`: 飞书视频会议, 取该类型时, 其他字段无效。 - `third_party`: 第三方链接视频会议, 取该类型时, icon_type、description、meeting_url字段生效。 - `no_meeting`: 无视频会议, 取该类型时, 其他字段无效。 - `lark_live`: 飞书直播, 内部类型, 飞书客户端使用, API不支持创建, 只读。 - `unknown`: 未知类型, 做兼容使用, 飞书客户端使用, API不支持创建, 只读。 - IconType string `json:"icon_type,omitempty"` // 第三方视频会议icon类型;可以为空, 为空展示默认icon。 可选值有: - `vc`: 飞书视频会议icon - `live`: 直播视频会议icon - `default`: 默认icon - Description string `json:"description,omitempty"` // 第三方视频会议文案, 可以为空, 为空展示默认文案 - MeetingURL string `json:"meeting_url,omitempty"` // 视频会议URL + VCType string `json:"vc_type,omitempty"` // 视频会议类型。 可选值有: - `vc`: 飞书视频会议。取该类型时, vchat 内的其他字段均无效。 - `third_party`: 第三方链接视频会议。取该类型时, 仅生效 vchat 内的 icon_type、description、meeting_url 字段。 - `no_meeting`: 无视频会议。取该类型时, vchat 内的其他字段均无效。 - `lark_live`: 飞书直播。该值用于客户端, 只读参数。 - `unknown`: 未知类型。该值用于客户端做兼容使用, 只读参数。 + IconType string `json:"icon_type,omitempty"` // 第三方视频会议 icon 类型。 可选值有: - `vc`: 飞书视频会议 icon - `live`: 直播视频会议 icon - `default`: 默认 icon + Description string `json:"description,omitempty"` // 第三方视频会议文案。 + MeetingURL string `json:"meeting_url,omitempty"` // 视频会议 URL。 } // batchGetCalendarMeetingRoomSummaryResp ... type batchGetCalendarMeetingRoomSummaryResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *BatchGetCalendarMeetingRoomSummaryResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败。 + Msg string `json:"msg,omitempty"` // 返回码的描述, `success` 表示成功, 其他为错误提示信息。 + Data *BatchGetCalendarMeetingRoomSummaryResp `json:"data,omitempty"` // 返回信息。 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bank_branch_search.go b/api_corehr_bank_branch_search.go index b086e9b8..477c0ee3 100644 --- a/api_corehr_bank_branch_search.go +++ b/api_corehr_bank_branch_search.go @@ -21,9 +21,10 @@ import ( "context" ) -// SearchCoreHRBankBranch 根据银行 ID、支行 ID 、支行名称查询银行信息 +// SearchCoreHRBankBranch 根据银行 ID、支行 ID 、支行名称、联行号, 支行状态、更新时间 查询银行信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-bank/search-2 func (r *CoreHRService) SearchCoreHRBankBranch(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRBankBranch != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBankBranch mock enable") @@ -57,17 +58,20 @@ func (r *Mock) UnMockCoreHRSearchCoreHRBankBranch() { // SearchCoreHRBankBranchReq ... type SearchCoreHRBankBranchReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 与「支行 ID 列表」、「支行名称列表」至少填写一项, 示例值: ["6891251722631891445"], 最大长度: `100` - BankBranchIDList []string `json:"bank_branch_id_list,omitempty"` // 支行 ID 列表, 示例值: ["6891251722631891415"], 最大长度: `100` - BankBranchNameList []string `json:"bank_branch_name_list,omitempty"` // 支行名称列表, 支持对支行名称精确搜索, 示例值: ["招商银行杭州未科支行"], 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: MDBK00000120 + BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 可通过[查询银行信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)列举, 或从[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_id_v2` 字段中获取示例值: ["MDBH00000080"] 最大长度: `100` + BankBranchIDList []string `json:"bank_branch_id_list,omitempty"` // 支行 ID 列表, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_branch_id_v2` 字段获取示例值: ["MDBK00061194"] 最大长度: `100` + BankBranchNameList []string `json:"bank_branch_name_list,omitempty"` // 支行名称列表, 支持对支行名称精确搜索示例值: ["招商银行北京分行"] 最大长度: `100` + CodeList []string `json:"code_list,omitempty"` // 金融分支机构编码(联行号)列表, 支持对金融分支机构编码精确搜索示例值: ["308100005019"] 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` + UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间示例值: "2020-01-01 00:00:00" + UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间示例值: "2024-01-01 00:00:00" } // SearchCoreHRBankBranchResp ... type SearchCoreHRBankBranchResp struct { - Items []*SearchCoreHRBankBranchRespItem `json:"items,omitempty"` // 查询的支行信息 + Items []*SearchCoreHRBankBranchRespItem `json:"items,omitempty"` // 查询到的支行列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } @@ -77,20 +81,26 @@ type SearchCoreHRBankBranchRespItem struct { BankBranchID string `json:"bank_branch_id,omitempty"` // 支行 ID BankBranchName []*SearchCoreHRBankBranchRespItemBankBranchName `json:"bank_branch_name,omitempty"` // 支行名称 BankID string `json:"bank_id,omitempty"` // 所属银行 ID, 可通过[查询银行信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询 - Code string `json:"code,omitempty"` // 金融分支机构编码 - SwiftCode string `json:"swift_code,omitempty"` // 银行代码 - Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 + Code string `json:"code,omitempty"` // 金融分支机构编码(即银行联行号) + SwiftCode string `json:"swift_code,omitempty"` // SWIFT 银行代码(ISO 9362) + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 + BankBranchCode string `json:"bank_branch_code,omitempty"` // Bank Branch Code(特定国家地区使用) + RegisterPlace string `json:"register_place,omitempty"` // 注册地址 + BankAddress string `json:"bank_address,omitempty"` // 银行地址 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + UpdateTime string `json:"update_time,omitempty"` // 更新时间 } // SearchCoreHRBankBranchRespItemBankBranchName ... type SearchCoreHRBankBranchRespItemBankBranchName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // searchCoreHRBankBranchResp ... type searchCoreHRBankBranchResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRBankBranchResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRBankBranchResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bank_search.go b/api_corehr_bank_search.go index 372bbb4f..302628d3 100644 --- a/api_corehr_bank_search.go +++ b/api_corehr_bank_search.go @@ -21,9 +21,10 @@ import ( "context" ) -// SearchCoreHRBank 根据银行 ID 、银行名称查询银行信息 +// SearchCoreHRBank 根据银行 ID 、银行名称, 查询银行信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-bank/search func (r *CoreHRService) SearchCoreHRBank(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRBank != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBank mock enable") @@ -57,16 +58,18 @@ func (r *Mock) UnMockCoreHRSearchCoreHRBank() { // SearchCoreHRBankReq ... type SearchCoreHRBankReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 与「银行名称列表」查询条件至少填写一项, 示例值: ["6891251722631891445"], 最大长度: `100` - BankNameList []string `json:"bank_name_list,omitempty"` // 银行名称列表, 支持对银行名称精确搜索, 示例值: ["招商银行"], 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: MDBH00000100 + BankIDList []string `json:"bank_id_list,omitempty"` // 银行 ID 列表, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)等接口返回的 `person_info.bank_account_list.bank_id_v2` 字段获取示例值: ["MDBH00000080"] 最大长度: `100` + BankNameList []string `json:"bank_name_list,omitempty"` // 银行名称列表, 支持对银行名称精确搜索示例值: ["招商银行"] 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` + UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间示例值: "2020-01-01 00:00:00" + UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间示例值: "2024-01-01 00:00:00" } // SearchCoreHRBankResp ... type SearchCoreHRBankResp struct { - Items []*SearchCoreHRBankRespItem `json:"items,omitempty"` // 查询的银行信息 + Items []*SearchCoreHRBankRespItem `json:"items,omitempty"` // 查询到的银行列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } @@ -77,18 +80,21 @@ type SearchCoreHRBankRespItem struct { BankName []*SearchCoreHRBankRespItemBankName `json:"bank_name,omitempty"` // 银行名称 BankCode string `json:"bank_code,omitempty"` // 总行代码 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search) 接口查询 - Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 + CreateTime string `json:"create_time,omitempty"` // 创建时间 + UpdateTime string `json:"update_time,omitempty"` // 更新时间 } // SearchCoreHRBankRespItemBankName ... type SearchCoreHRBankRespItemBankName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // searchCoreHRBankResp ... type searchCoreHRBankResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRBankResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRBankResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bp_by_employee_get_batch.go b/api_corehr_bp_by_employee_get_batch.go index 02d4e284..b175a6ab 100644 --- a/api_corehr_bp_by_employee_get_batch.go +++ b/api_corehr_bp_by_employee_get_batch.go @@ -23,9 +23,10 @@ import ( // BatchGetCoreHrbpByEmployee 查询员工的 HRBP 和属地 BP, 包括来自上级部门的 HRBP 和属地 BP。 // -// 该接口会按照应用拥有的「员工资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请「员工资源」权限范围 +// 该接口会按照应用拥有的「员工资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限 - 飞书人事(企业版)数据权限范围」中已申请「员工资源」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-bp/batch_get +// new doc: https://open.feishu.cn/document/corehr-v1/authorization/batch_get func (r *CoreHRService) BatchGetCoreHrbpByEmployee(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) { if r.cli.mock.mockCoreHRBatchGetCoreHrbpByEmployee != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHrbpByEmployee mock enable") @@ -59,15 +60,15 @@ func (r *Mock) UnMockCoreHRBatchGetCoreHrbpByEmployee() { // BatchGetCoreHrbpByEmployeeReq ... type BatchGetCoreHrbpByEmployeeReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_corehr_id: 以飞书人事的 ID 来识别用户, 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID - EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工雇佣 ID, 示例值: ["7140964208476371111"], 长度范围: `1` ~ `100` - GetAll *bool `json:"get_all,omitempty"` // 是否获取全部 BP, true 为获取员工所在部门及来自上级部门的全部 HRBP 和属地 BP, false 为仅获取员工的直属 HRBP 和属地 BP(当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP), 默认为 false, 示例值: true, 默认值: `false` + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工ID, ID类型与user_id_type的取值意义一致。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: ["7140964208476371111"] 长度范围: `1` ~ `100` + GetAll *bool `json:"get_all,omitempty"` // 是否获取全部 BP, true 为获取员工所在部门及来自上级部门的全部 HRBP 和属地 BP, false 为仅获取员工的直属 HRBP 和属地 BP(当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP), 默认为 false示例值: true默认值: `false` } // BatchGetCoreHrbpByEmployeeResp ... type BatchGetCoreHrbpByEmployeeResp struct { EmploymentDirectBps []*BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp `json:"employment_direct_bps,omitempty"` // 员工直属 BP 信息, 当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP - EmploymentAllBps []*BatchGetCoreHrbpByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息, 字段权限要求: 查看员工的全部 BP 信息 + EmploymentAllBps []*BatchGetCoreHrbpByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息字段权限要求: 查看员工的全部 BP 信息 } // BatchGetCoreHrbpByEmployeeRespEmploymentAllBp ... @@ -79,14 +80,15 @@ type BatchGetCoreHrbpByEmployeeRespEmploymentAllBp struct { // BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp ... type BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp struct { - EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID + EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID>可以使用[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search)接口获取员工其他信息。 HrbpIDs []string `json:"hrbp_ids,omitempty"` // 员工直属 HRBP 雇佣 ID LocationBpIDs []string `json:"location_bp_ids,omitempty"` // 员工直属属地 BP 雇佣 ID } // batchGetCoreHrbpByEmployeeResp ... type batchGetCoreHrbpByEmployeeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCoreHrbpByEmployeeResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCoreHrbpByEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_family_get_batch.go b/api_corehr_job_family_get_batch.go index 0d775ae3..554b268e 100644 --- a/api_corehr_job_family_get_batch.go +++ b/api_corehr_job_family_get_batch.go @@ -21,9 +21,14 @@ import ( "context" ) -// BatchGetCoreHRJobFamily 通过序列 ID 批量获取序列信息 +// BatchGetCoreHRJobFamily 通过序列 ID 或序列 Code 批量查询当前生效版本序列的详情信息, 包括序列名称、启用状态、上级序列等。 +// +// - 如果你只需要单一序列查询场景, 建议通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取序列信息。 +// - 序列ID和序列Code可一起使用, 之间为 AND 关系 +// - 数据库主从延迟 2s 以内, 即: 直接创建序列后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get +// new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/batch_get func (r *CoreHRService) BatchGetCoreHRJobFamily(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) { if r.cli.mock.mockCoreHRBatchGetCoreHRJobFamily != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHRJobFamily mock enable") @@ -57,7 +62,8 @@ func (r *Mock) UnMockCoreHRBatchGetCoreHRJobFamily() { // BatchGetCoreHRJobFamilyReq ... type BatchGetCoreHRJobFamilyReq struct { - JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 示例值: ["1554548"], 长度范围: `1` ~ `100` + JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID列表。- 序列 ID 列表和序列 Code 列表至少有一项有值, 否则接口将调用失败。- 未设置时表示不筛选该条件- ID获取方式: 调用[【创建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列ID示例值: ["1554548"] 长度范围: `0` ~ `100` + JobFamilyCodes []string `json:"job_family_codes,omitempty"` // 序列 Code 列表。- 序列 ID 列表和序列 Code 列表至少有一项有值, 否则接口将调用失败。- 未设置时表示不筛选该条件- Code获取方式: 调用[【创建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列Code示例值: ["122348"] 长度范围: `0` ~ `100` } // BatchGetCoreHRJobFamilyResp ... @@ -69,19 +75,22 @@ type BatchGetCoreHRJobFamilyResp struct { type BatchGetCoreHRJobFamilyRespItem struct { JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID Name []*BatchGetCoreHRJobFamilyRespItemName `json:"name,omitempty"` // 名称 - Active bool `json:"active,omitempty"` // 启用 - ParentID string `json:"parent_id,omitempty"` // 上级序列 - EffectiveTime string `json:"effective_time,omitempty"` // 生效时间 - ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间 - Code string `json:"code,omitempty"` // 编码 - CustomFields []*BatchGetCoreHRJobFamilyRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段 + Active bool `json:"active,omitempty"` // 启用状态, 启用为true, 停用为false + Selectable bool `json:"selectable,omitempty"` // 是否可被使用, true为可被使用, false为不可被使用 + ParentID string `json:"parent_id,omitempty"` // 上级序列 ID, 详细信息可通过[【查询单个序列】](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口查询获得(若查询的是一级序列, 则该字段不展示) + PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) + EffectiveTime string `json:"effective_time,omitempty"` // 生效时间, 返回格式: YYYY-MM-DD 00:00:00(最小单位到日) + ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间, 返回格式: YYYY-MM-DD 00:00:00(最小单位到日) + Code string `json:"code,omitempty"` // 编码 (不能与其他记录的编码重复) + Description []*BatchGetCoreHRJobFamilyRespItemDescription `json:"description,omitempty"` // 描述 + CustomFields []*BatchGetCoreHRJobFamilyRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段(该字段暂时不支持) } // BatchGetCoreHRJobFamilyRespItemCustomField ... type BatchGetCoreHRJobFamilyRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 Name *BatchGetCoreHRJobFamilyRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 + Type int64 `json:"type,omitempty"` // 自定义字段类型- 自定义字段详细见[【获取自定义字段列表】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } @@ -91,15 +100,22 @@ type BatchGetCoreHRJobFamilyRespItemCustomFieldName struct { EnUs string `json:"en_us,omitempty"` // 英文 } +// BatchGetCoreHRJobFamilyRespItemDescription ... +type BatchGetCoreHRJobFamilyRespItemDescription struct { + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 +} + // BatchGetCoreHRJobFamilyRespItemName ... type BatchGetCoreHRJobFamilyRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // batchGetCoreHRJobFamilyResp ... type batchGetCoreHRJobFamilyResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCoreHRJobFamilyResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCoreHRJobFamilyResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_nationality_search.go b/api_corehr_nationality_search.go index 3da861ce..bc4bda82 100644 --- a/api_corehr_nationality_search.go +++ b/api_corehr_nationality_search.go @@ -21,9 +21,10 @@ import ( "context" ) -// SearchCoreHRNationality 根据国家 ID、国籍 ID 查询国籍信息 +// SearchCoreHRNationality 根据国籍 ID、国家 ID, 查询国籍信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search +// new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-nationality/search func (r *CoreHRService) SearchCoreHRNationality(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) { if r.cli.mock.mockCoreHRSearchCoreHRNationality != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRNationality mock enable") @@ -57,40 +58,41 @@ func (r *Mock) UnMockCoreHRSearchCoreHRNationality() { // SearchCoreHRNationalityReq ... type SearchCoreHRNationalityReq struct { - PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100, 示例值: 100, 取值范围: `1` ~ `100` - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果, 示例值: 6891251722631890445 - NationalityIDList []string `json:"nationality_id_list,omitempty"` // 国籍 ID 列表, 示例值: ["6891251722631891445"], 最大长度: `100` - CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 国家 / 地区 ID 列表, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询, 示例值: ["6891251722631891441"], 最大长度: `100` - StatusList []int64 `json:"status_list,omitempty"` // 状态列表, 示例值: [1], 可选值有: 1: 生效, 0: 失效, 默认值: `[1]`, 最大长度: `2` + PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 7075702743846897196 + NationalityIDList []string `json:"nationality_id_list,omitempty"` // 国籍 ID 列表, 可从[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口返回的 `person_info.nationality_id_v2` 等字段中获取, 不填则返回全部示例值: ["7075702743923361324"] 最大长度: `100` + CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 国家 / 地区 ID 列表, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询, 不填则返回全部示例值: ["6862995791674344967"] 最大长度: `100` + StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 最大长度: `2` } // SearchCoreHRNationalityResp ... type SearchCoreHRNationalityResp struct { - Items []*SearchCoreHRNationalityRespItem `json:"items,omitempty"` // 查询的国籍信息 + Items []*SearchCoreHRNationalityRespItem `json:"items,omitempty"` // 查询到的国籍列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } // SearchCoreHRNationalityRespItem ... type SearchCoreHRNationalityRespItem struct { - NationalityID string `json:"nationality_id,omitempty"` // 国籍 ID(对应其他查询结果的 nationality_id_v2 字段) + NationalityID string `json:"nationality_id,omitempty"` // 国籍 ID, 对应[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口返回的 `person_info.nationality_id_v2` 字段 Name []*SearchCoreHRNationalityRespItemName `json:"name,omitempty"` // 名称 - Alpha2Code string `json:"alpha_2_code,omitempty"` // 二字码 - Alpha3Code string `json:"alpha_3_code,omitempty"` // 三字码 + Alpha2Code string `json:"alpha_2_code,omitempty"` // 国家/地区两位字母编码(ISO 3166-1) + Alpha3Code string `json:"alpha_3_code,omitempty"` // 国家/地区三位字母编码(ISO 3166-1) NumericCode int64 `json:"numeric_code,omitempty"` // 数字代码 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 ID, 可通过[查询国家 / 地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询 - Status int64 `json:"status,omitempty"` // 状态, 可选值有: 1: 生效, 0: 失效 + Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 } // SearchCoreHRNationalityRespItemName ... type SearchCoreHRNationalityRespItemName struct { - Lang string `json:"lang,omitempty"` // 语言 - Value string `json:"value,omitempty"` // 内容 + Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) + Value string `json:"value,omitempty"` // 文本内容 } // searchCoreHRNationalityResp ... type searchCoreHRNationalityResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCoreHRNationalityResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchCoreHRNationalityResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_drive_spreadsheet_create.go b/api_drive_spreadsheet_create.go index 9129fac0..21de8044 100644 --- a/api_drive_spreadsheet_create.go +++ b/api_drive_spreadsheet_create.go @@ -21,9 +21,12 @@ import ( "context" ) -// CreateSpreadsheet 使用该接口可以在指定的目录下创建在线表格。 +// CreateSpreadsheet 在云空间指定目录下创建电子表格。可自定义表格标题。不支持带内容创建表格。 +// +// 要基于模板创建电子表格, 可先获取模板电子表格的 `spreadsheet_token` 作为文件 token, 再调用[复制文件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/copy)接口创建电子表格。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet/create +// new doc: https://open.feishu.cn/document/server-docs/docs/sheets-v3/spreadsheet/create func (r *DriveService) CreateSpreadsheet(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) { if r.cli.mock.mockDriveCreateSpreadsheet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateSpreadsheet mock enable") @@ -58,26 +61,27 @@ func (r *Mock) UnMockDriveCreateSpreadsheet() { // CreateSpreadsheetReq ... type CreateSpreadsheetReq struct { - Title *string `json:"title,omitempty"` // 表格标题, 示例值: "title" - FolderToken *string `json:"folder_token,omitempty"` // 文件夹token, 获取方式见[概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction), 示例值: "fldcnMsNb*hIW9IjG1LVswg" + Title *string `json:"title,omitempty"` // 表格标题示例值: "Sales sheet" 长度范围: `0` ~ `255` 字符 + FolderToken *string `json:"folder_token,omitempty"` // 文件夹 token。你可通过以下两种方式获取文件夹的 token: 文件夹的 URL: https://sample.feishu.cn/drive/folder/[fldbcO1UuPz8VwnpPx5a92abcef]- 调用开放平台接口获取: - 调用[获取我的空间(root folder)元数据](https://open.feishu.cn/document/ukTMukTMukTM/ugTNzUjL4UzM14CO1MTN/get-root-folder-meta)接口获取根目录(即根文件夹)的 token。 - 继续调用[获取文件夹中的文件清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/list)接口, 获取根目录下文件夹的 token。提示: 要在知识库中创建电子表格, 你需调用[创建知识空间节点](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/create)接口, 并选择表格(sheet)类型。示例值: "fldbcO1UuPz8VwnpPx5a92abcef" } // CreateSpreadsheetResp ... type CreateSpreadsheetResp struct { - Spreadsheet *CreateSpreadsheetRespSpreadsheet `json:"spreadsheet,omitempty"` // 表格 + Spreadsheet *CreateSpreadsheetRespSpreadsheet `json:"spreadsheet,omitempty"` // 电子表格的基础信息 } // CreateSpreadsheetRespSpreadsheet ... type CreateSpreadsheetRespSpreadsheet struct { - Title string `json:"title,omitempty"` // 表格标题 - FolderToken string `json:"folder_token,omitempty"` // 文件夹token, 获取方式见[概述](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) - URL string `json:"url,omitempty"` // 文档url - SpreadSheetToken string `json:"spreadsheet_token,omitempty"` // 表格token + Title string `json:"title,omitempty"` // 电子表格标题 + FolderToken string `json:"folder_token,omitempty"` // 文件夹 token + URL string `json:"url,omitempty"` // 电子表格的 URL 链接 + SpreadSheetToken string `json:"spreadsheet_token,omitempty"` // 电子表格 token } // createSpreadsheetResp ... type createSpreadsheetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateSpreadsheetResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateSpreadsheetResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_mail_user_mailbox_event_subscribe.go b/api_mail_user_mailbox_event_subscribe.go index 6d940eee..51a036c5 100644 --- a/api_mail_user_mailbox_event_subscribe.go +++ b/api_mail_user_mailbox_event_subscribe.go @@ -21,9 +21,10 @@ import ( "context" ) -// SubscribeMailUserMailboxEvent 订阅邮箱事件 +// SubscribeMailUserMailboxEvent 订阅事件 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-event/subscribe +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-event/subscribe +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-event/subscribe func (r *MailService) SubscribeMailUserMailboxEvent(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) { if r.cli.mock.mockMailSubscribeMailUserMailboxEvent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#SubscribeMailUserMailboxEvent mock enable") diff --git a/api_mail_user_mailbox_event_subscription.go b/api_mail_user_mailbox_event_subscription.go index f6cdaeea..9ea61913 100644 --- a/api_mail_user_mailbox_event_subscription.go +++ b/api_mail_user_mailbox_event_subscription.go @@ -21,9 +21,10 @@ import ( "context" ) -// GetMailUserMailboxEventSubscription 获取邮箱事件订阅状态 +// GetMailUserMailboxEventSubscription 获取订阅状态 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-event/subscription +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-event/subscription +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-event/subscription func (r *MailService) GetMailUserMailboxEventSubscription(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) { if r.cli.mock.mockMailGetMailUserMailboxEventSubscription != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailUserMailboxEventSubscription mock enable") diff --git a/api_mail_user_mailbox_event_unsubscribe.go b/api_mail_user_mailbox_event_unsubscribe.go index 99fbb3a6..8d3ee7fe 100644 --- a/api_mail_user_mailbox_event_unsubscribe.go +++ b/api_mail_user_mailbox_event_unsubscribe.go @@ -21,9 +21,10 @@ import ( "context" ) -// UnsubscribeMailUserMailboxEvent 取消订阅邮箱事件 +// UnsubscribeMailUserMailboxEvent 取消订阅 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/unsubscribe +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-event/unsubscribe +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-event/unsubscribe func (r *MailService) UnsubscribeMailUserMailboxEvent(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) { if r.cli.mock.mockMailUnsubscribeMailUserMailboxEvent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UnsubscribeMailUserMailboxEvent mock enable") @@ -57,8 +58,8 @@ func (r *Mock) UnMockMailUnsubscribeMailUserMailboxEvent() { // UnsubscribeMailUserMailboxEventReq ... type UnsubscribeMailUserMailboxEventReq struct { - UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me, 示例值: "user@xxx.xx 或 me" - EventType int64 `json:"event_type,omitempty"` // 事件类型, 示例值: 1, 可选值有: 1: 邮件相关事件, 取值范围: `1` ~ `1` + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" + EventType int64 `json:"event_type,omitempty"` // 事件类型示例值: 1可选值有: 邮件相关事件 取值范围: `1` ~ `1` } // UnsubscribeMailUserMailboxEventResp ... @@ -67,7 +68,8 @@ type UnsubscribeMailUserMailboxEventResp struct { // unsubscribeMailUserMailboxEventResp ... type unsubscribeMailUserMailboxEventResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *UnsubscribeMailUserMailboxEventResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UnsubscribeMailUserMailboxEventResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_mail_user_mailbox_folder_create.go b/api_mail_user_mailbox_folder_create.go index 6db3d991..357235fc 100644 --- a/api_mail_user_mailbox_folder_create.go +++ b/api_mail_user_mailbox_folder_create.go @@ -21,9 +21,12 @@ import ( "context" ) -// CreateMailUserMailboxFolder 创建文件夹 +// CreateMailUserMailboxFolder 创建邮箱文件夹 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/create +// 使用 tenant_access_token 时, 需要申请邮箱文件夹资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/create +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-folder/create func (r *MailService) CreateMailUserMailboxFolder(ctx context.Context, request *CreateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxFolderResp, *Response, error) { if r.cli.mock.mockMailCreateMailUserMailboxFolder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxFolder mock enable") @@ -60,7 +63,7 @@ func (r *Mock) UnMockMailCreateMailUserMailboxFolder() { type CreateMailUserMailboxFolderReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" Name string `json:"name,omitempty"` // 文件夹名称示例值: "newsletter 相关" 长度范围: `1` ~ `250` 字符 - ParentFolderID string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹示例值: "725627422334644" + ParentFolderID string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹, id 获取方式见 [列出文邮箱文件夹](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list)示例值: "725627422334644" } // CreateMailUserMailboxFolderResp ... diff --git a/api_mail_user_mailbox_folder_delete.go b/api_mail_user_mailbox_folder_delete.go index 31f29a71..8b9220e3 100644 --- a/api_mail_user_mailbox_folder_delete.go +++ b/api_mail_user_mailbox_folder_delete.go @@ -21,11 +21,13 @@ import ( "context" ) -// DeleteMailUserMailboxFolder 删除文件夹 +// DeleteMailUserMailboxFolder 删除邮箱文件夹 // +// 使用 tenant_access_token 时, 需要申请邮箱文件夹资源的数据权限。 // 删除文件夹会将该文件夹下的邮件移至已删除中。 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/delete +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-folder/delete func (r *MailService) DeleteMailUserMailboxFolder(ctx context.Context, request *DeleteMailUserMailboxFolderReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxFolderResp, *Response, error) { if r.cli.mock.mockMailDeleteMailUserMailboxFolder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteMailUserMailboxFolder mock enable") @@ -61,7 +63,7 @@ func (r *Mock) UnMockMailDeleteMailUserMailboxFolder() { // DeleteMailUserMailboxFolderReq ... type DeleteMailUserMailboxFolderReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - FolderID string `path:"folder_id" json:"-"` // 文件夹 id示例值: "111111" + FolderID string `path:"folder_id" json:"-"` // 文件夹 id, id 获取方式见 [列出文邮箱文件夹](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list)示例值: "111111" } // DeleteMailUserMailboxFolderResp ... diff --git a/api_mail_user_mailbox_folder_list.go b/api_mail_user_mailbox_folder_list.go index de9d3762..baf5b6f8 100644 --- a/api_mail_user_mailbox_folder_list.go +++ b/api_mail_user_mailbox_folder_list.go @@ -23,7 +23,10 @@ import ( // ListMailUserMailboxFolder 列出邮箱文件夹 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/list +// 使用 tenant_access_token 时, 需要申请邮箱文件夹资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-folder/list func (r *MailService) ListMailUserMailboxFolder(ctx context.Context, request *ListMailUserMailboxFolderReq, options ...MethodOptionFunc) (*ListMailUserMailboxFolderResp, *Response, error) { if r.cli.mock.mockMailListMailUserMailboxFolder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxFolder mock enable") diff --git a/api_mail_user_mailbox_folder_update.go b/api_mail_user_mailbox_folder_update.go index 97a4f0e2..713cbf0f 100644 --- a/api_mail_user_mailbox_folder_update.go +++ b/api_mail_user_mailbox_folder_update.go @@ -23,7 +23,10 @@ import ( // UpdateMailUserMailboxFolder 修改邮箱文件夹 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-folder/patch +// 使用 tenant_access_token 时, 需要申请邮箱文件夹资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/patch +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-folder/patch func (r *MailService) UpdateMailUserMailboxFolder(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error) { if r.cli.mock.mockMailUpdateMailUserMailboxFolder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateMailUserMailboxFolder mock enable") @@ -59,9 +62,9 @@ func (r *Mock) UnMockMailUpdateMailUserMailboxFolder() { // UpdateMailUserMailboxFolderReq ... type UpdateMailUserMailboxFolderReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - FolderID string `path:"folder_id" json:"-"` // 文件夹 id示例值: "111111" + FolderID string `path:"folder_id" json:"-"` // 文件夹 id, id 获取方式见 [列出文邮箱文件夹](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list)示例值: "111111" Name *string `json:"name,omitempty"` // 文件夹名称示例值: "newsletter 相关" 长度范围: `1` ~ `250` 字符 - ParentFolderID *string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹示例值: "725627422334644" + ParentFolderID *string `json:"parent_folder_id,omitempty"` // 父文件夹 id, 该值为 0 表示根文件夹, id 获取方式见 [列出文邮箱文件夹](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list)示例值: "725627422334644" } // UpdateMailUserMailboxFolderResp ... diff --git a/api_mail_user_mailbox_mail_contact_create.go b/api_mail_user_mailbox_mail_contact_create.go index c385eb9a..f06de000 100644 --- a/api_mail_user_mailbox_mail_contact_create.go +++ b/api_mail_user_mailbox_mail_contact_create.go @@ -21,11 +21,12 @@ import ( "context" ) -// CreateUserMailboxMailContact 创建邮箱联系人 +// CreateUserMailboxMailContact 创建一个邮箱联系人 // -// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// 使用 tenant_access_token 时, 需要申请邮箱联系人资源的数据权限。 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/create +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/create +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-mail_contact/create func (r *MailService) CreateUserMailboxMailContact(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error) { if r.cli.mock.mockMailCreateUserMailboxMailContact != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateUserMailboxMailContact mock enable") @@ -67,7 +68,7 @@ type CreateUserMailboxMailContactReq struct { MailAddress *string `json:"mail_address,omitempty"` // 联系人邮箱示例值: "zhangsan@example.com" 最大长度: `319` 字符 Tag *string `json:"tag,omitempty"` // 联系人标签示例值: "朋友" 最大长度: `64` 字符 Remark *string `json:"remark,omitempty"` // 联系人备注示例值: "飞书发布会认识" 最大长度: `1000` 字符 - Position *string `json:"position,omitempty"` // 联系人职位示例值: "CFO" 最大长度: `64` 字符 + Position *string `json:"position,omitempty"` // 联系人职位示例值: "CEO" 最大长度: `64` 字符 } // CreateUserMailboxMailContactResp ... @@ -80,7 +81,7 @@ type CreateUserMailboxMailContactRespMailContact struct { ID string `json:"id,omitempty"` // 联系人 id Name string `json:"name,omitempty"` // 联系人姓名 Company string `json:"company,omitempty"` // 联系人公司 - Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号地址字段 + Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号字段 MailAddress string `json:"mail_address,omitempty"` // 联系人邮箱字段权限要求: 读取邮箱联系人邮箱地址字段 Tag string `json:"tag,omitempty"` // 联系人标签 Remark string `json:"remark,omitempty"` // 联系人备注 diff --git a/api_mail_user_mailbox_mail_contact_delete.go b/api_mail_user_mailbox_mail_contact_delete.go index c763973a..eeada253 100644 --- a/api_mail_user_mailbox_mail_contact_delete.go +++ b/api_mail_user_mailbox_mail_contact_delete.go @@ -21,11 +21,12 @@ import ( "context" ) -// DeleteUserMailboxMailContact 删除指定邮箱下的邮箱联系人 +// DeleteUserMailboxMailContact 删除一个邮箱联系人 // -// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// 使用 tenant_access_token 时, 需要申请邮箱联系人资源的数据权限。 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/delete +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-mail_contact/delete func (r *MailService) DeleteUserMailboxMailContact(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error) { if r.cli.mock.mockMailDeleteUserMailboxMailContact != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteUserMailboxMailContact mock enable") @@ -61,7 +62,7 @@ func (r *Mock) UnMockMailDeleteUserMailboxMailContact() { // DeleteUserMailboxMailContactReq ... type DeleteUserMailboxMailContactReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "用户邮箱地址 或 输入me代表当前调用接口用户" - MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id示例值: "123" + MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id, 获取方式见 [列出邮箱联系人](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/list)示例值: "123" } // DeleteUserMailboxMailContactResp ... diff --git a/api_mail_user_mailbox_mail_contact_list.go b/api_mail_user_mailbox_mail_contact_list.go index 0b90a735..f1fd8808 100644 --- a/api_mail_user_mailbox_mail_contact_list.go +++ b/api_mail_user_mailbox_mail_contact_list.go @@ -21,9 +21,12 @@ import ( "context" ) -// ListUserMailboxMailContact 列出邮箱联系人 +// ListUserMailboxMailContact 列出邮箱联系人列表 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/list +// 使用 tenant_access_token 时, 需要申请邮箱联系人资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/list +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-mail_contact/list func (r *MailService) ListUserMailboxMailContact(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error) { if r.cli.mock.mockMailListUserMailboxMailContact != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListUserMailboxMailContact mock enable") @@ -75,7 +78,7 @@ type ListUserMailboxMailContactRespItem struct { ID string `json:"id,omitempty"` // 联系人 id Name string `json:"name,omitempty"` // 联系人姓名 Company string `json:"company,omitempty"` // 联系人公司 - Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号地址字段 + Phone string `json:"phone,omitempty"` // 联系人手机号字段权限要求: 读取邮箱联系人手机号字段 MailAddress string `json:"mail_address,omitempty"` // 联系人邮箱字段权限要求: 读取邮箱联系人邮箱地址字段 Tag string `json:"tag,omitempty"` // 联系人标签 Remark string `json:"remark,omitempty"` // 联系人备注 diff --git a/api_mail_user_mailbox_mail_contact_update.go b/api_mail_user_mailbox_mail_contact_update.go index 6144f768..b38768ef 100644 --- a/api_mail_user_mailbox_mail_contact_update.go +++ b/api_mail_user_mailbox_mail_contact_update.go @@ -21,11 +21,12 @@ import ( "context" ) -// UpdateUserMailboxMailContact 修改邮箱联系人信息 +// UpdateUserMailboxMailContact 修改一个邮箱联系人的信息 // -// 使用 tenant_access_token 时, 需要申请相关数据权限。 +// 使用 tenant_access_token 时, 需要申请邮箱联系人资源的数据权限。 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-mail_contact/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/patch +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-mail_contact/patch func (r *MailService) UpdateUserMailboxMailContact(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error) { if r.cli.mock.mockMailUpdateUserMailboxMailContact != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateUserMailboxMailContact mock enable") @@ -61,14 +62,14 @@ func (r *Mock) UnMockMailUpdateUserMailboxMailContact() { // UpdateUserMailboxMailContactReq ... type UpdateUserMailboxMailContactReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id示例值: "123" + MailContactID string `path:"mail_contact_id" json:"-"` // 邮箱联系人 id, 获取方式见 [列出邮箱联系人](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-mail_contact/list)示例值: "123" Name string `json:"name,omitempty"` // 联系人姓名示例值: "张三" 长度范围: `1` ~ `64` 字符 Company *string `json:"company,omitempty"` // 联系人公司示例值: "张三科技有限公司" 最大长度: `64` 字符 Phone *string `json:"phone,omitempty"` // 联系人手机号示例值: "19912341234" 最大长度: `40` 字符 MailAddress *string `json:"mail_address,omitempty"` // 联系人邮箱示例值: "zhangsan@example.com" 最大长度: `319` 字符 Tag *string `json:"tag,omitempty"` // 联系人标签示例值: "朋友" 最大长度: `64` 字符 Remark *string `json:"remark,omitempty"` // 联系人备注示例值: "飞书发布会认识" 最大长度: `1000` 字符 - Position *string `json:"position,omitempty"` // 联系人职位示例值: "CFO" 最大长度: `64` 字符 + Position *string `json:"position,omitempty"` // 联系人职位示例值: "CEO" 最大长度: `64` 字符 } // UpdateUserMailboxMailContactResp ... diff --git a/api_mail_user_mailbox_message_get.go b/api_mail_user_mailbox_message_get.go index f2ff8e2a..81ab2932 100644 --- a/api_mail_user_mailbox_message_get.go +++ b/api_mail_user_mailbox_message_get.go @@ -21,10 +21,12 @@ import ( "context" ) -// GetMailUserMailboxMessage 获取邮件 +// GetMailUserMailboxMessage 获取邮件详情 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/get -// new doc: https://open.feishu.cn/document/server-api/mail-v1/user_mailbox-message/get +// 使用 tenant_access_token 时, 需要申请邮件数据资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/get +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-message/get func (r *MailService) GetMailUserMailboxMessage(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error) { if r.cli.mock.mockMailGetMailUserMailboxMessage != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#GetMailUserMailboxMessage mock enable") @@ -60,7 +62,7 @@ func (r *Mock) UnMockMailGetMailUserMailboxMessage() { // GetMailUserMailboxMessageReq ... type GetMailUserMailboxMessageReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - MessageID string `path:"message_id" json:"-"` // 用户邮件 id示例值: "TUlHc1NoWFhJMXgyUi9VZTNVL3h6UnlkRUdzPQ==" + MessageID string `path:"message_id" json:"-"` // 用户邮件 id, 获取方式见 [列出邮件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/list)示例值: "TUlHc1NoWFhJMXgyUi9VZTNVL3h6UnlkRUdzPQ==" } // GetMailUserMailboxMessageResp ... @@ -77,11 +79,12 @@ type GetMailUserMailboxMessageRespMessage struct { HeadFrom *GetMailUserMailboxMessageRespMessageHeadFrom `json:"head_from,omitempty"` // 发件人字段权限要求: 获取邮件内容中地址相关字段 BodyHtml string `json:"body_html,omitempty"` // 正文(base64url)字段权限要求: 获取邮件正文 InternalDate string `json:"internal_date,omitempty"` // 创建/收/发信时间(毫秒) - MessageState int64 `json:"message_state,omitempty"` // 邮件状态, 1(收信)2(发信)3(草稿) + MessageState int64 `json:"message_state,omitempty"` // 邮件状态, 1为收信, 2为发信, 3为草稿 SmtpMessageID string `json:"smtp_message_id,omitempty"` // RFC协议id MessageID string `json:"message_id,omitempty"` // 邮件id BodyPlainText string `json:"body_plain_text,omitempty"` // 正文纯文本(base64url)字段权限要求: 获取邮件正文 Attachments []*GetMailUserMailboxMessageRespMessageAttachment `json:"attachments,omitempty"` // 邮件附件列表字段权限要求: 获取邮件正文 + ThreadID string `json:"thread_id,omitempty"` // 会话id } // GetMailUserMailboxMessageRespMessageAttachment ... @@ -89,6 +92,8 @@ type GetMailUserMailboxMessageRespMessageAttachment struct { Filename string `json:"filename,omitempty"` // 附件文件名 ID string `json:"id,omitempty"` // 附件 id AttachmentType int64 `json:"attachment_type,omitempty"` // 附件类型可选值有: 普通附件超大附件 + IsInline bool `json:"is_inline,omitempty"` // 是否为内联图片, true 表示是内联图片 + Cid string `json:"cid,omitempty"` // 内容 ID, HTML 中通过 cid: 协议引用该图片 } // GetMailUserMailboxMessageRespMessageBcc ... diff --git a/api_mail_user_mailbox_message_list.go b/api_mail_user_mailbox_message_list.go index f4b28925..391a9b87 100644 --- a/api_mail_user_mailbox_message_list.go +++ b/api_mail_user_mailbox_message_list.go @@ -21,9 +21,12 @@ import ( "context" ) -// ListMailUserMailboxMessage 列出邮件列表 +// ListMailUserMailboxMessage 列出邮件 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/list +// 使用 tenant_access_token 时, 需要申请邮件数据资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/list +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-message/list func (r *MailService) ListMailUserMailboxMessage(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error) { if r.cli.mock.mockMailListMailUserMailboxMessage != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxMessage mock enable") @@ -61,7 +64,7 @@ type ListMailUserMailboxMessageReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 1 取值范围: `1` ~ `20` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: xxx - FolderID string `query:"folder_id" json:"-"` // 文件夹 id示例值: INBOX 或者用户文件夹 id + FolderID string `query:"folder_id" json:"-"` // 文件夹 id, 获取方式见 [列出文邮箱文件夹](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-folder/list)示例值: INBOX 或者用户文件夹 id OnlyUnread *bool `query:"only_unread" json:"-"` // 是否只查询未读邮件示例值: true } diff --git a/api_mail_user_mailbox_message_send.go b/api_mail_user_mailbox_message_send.go index 2ac31370..331e5bb9 100644 --- a/api_mail_user_mailbox_message_send.go +++ b/api_mail_user_mailbox_message_send.go @@ -23,7 +23,12 @@ import ( // CreateMailUserMailboxMessageSend 发送邮件 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-message/send +// 该接口基于单个用户加锁, 只能串行调用 +// 发送邮件使用 base64url 编码。与普通 base64 的区别是将「+/」替换为「-_」。 +// 对于 Golang 使用 base64.URLEncoding。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/send +// new doc: https://open.feishu.cn/document/server-docs/mail-v1/user_mailbox-message/send func (r *MailService) CreateMailUserMailboxMessageSend(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) { if r.cli.mock.mockMailCreateMailUserMailboxMessageSend != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxMessageSend mock enable") @@ -80,13 +85,13 @@ type CreateMailUserMailboxMessageSendReqAttachment struct { // CreateMailUserMailboxMessageSendReqBcc ... type CreateMailUserMailboxMessageSendReqBcc struct { - MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } // CreateMailUserMailboxMessageSendReqCc ... type CreateMailUserMailboxMessageSendReqCc struct { - MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } @@ -97,7 +102,7 @@ type CreateMailUserMailboxMessageSendReqHeadFrom struct { // CreateMailUserMailboxMessageSendReqTo ... type CreateMailUserMailboxMessageSendReqTo struct { - MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "mike@outlook.com" + MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } diff --git a/api_mail_user_mailbox_rule_create.go b/api_mail_user_mailbox_rule_create.go index 8c6bf985..39b1acd0 100644 --- a/api_mail_user_mailbox_rule_create.go +++ b/api_mail_user_mailbox_rule_create.go @@ -23,7 +23,10 @@ import ( // CreateMailUserMailboxRule 创建收信规则 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/create +// 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/create +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/create func (r *MailService) CreateMailUserMailboxRule(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) { if r.cli.mock.mockMailCreateMailUserMailboxRule != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxRule mock enable") @@ -73,7 +76,7 @@ type CreateMailUserMailboxRuleReqAction struct { // CreateMailUserMailboxRuleReqActionItem ... type CreateMailUserMailboxRuleReqActionItem struct { - Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` + Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标记为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` Input *string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id示例值: "283412371233" } @@ -86,7 +89,7 @@ type CreateMailUserMailboxRuleReqCondition struct { // CreateMailUserMailboxRuleReqConditionItem ... type CreateMailUserMailboxRuleReqConditionItem struct { Type int64 `json:"type,omitempty"` // 匹配条件左值示例值: 1可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 取值范围: `1` ~ `16` - Operator int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` + Operator *int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` Input *string `json:"input,omitempty"` // 匹配条件右值示例值: "hello@world.com" } @@ -112,7 +115,7 @@ type CreateMailUserMailboxRuleRespRuleAction struct { // CreateMailUserMailboxRuleRespRuleActionItem ... type CreateMailUserMailboxRuleRespRuleActionItem struct { - Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) + Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标记为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) Input string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id } diff --git a/api_mail_user_mailbox_rule_delete.go b/api_mail_user_mailbox_rule_delete.go index 204375b7..fd59391a 100644 --- a/api_mail_user_mailbox_rule_delete.go +++ b/api_mail_user_mailbox_rule_delete.go @@ -23,7 +23,10 @@ import ( // DeleteMailUserMailboxRule 删除收信规则 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/delete +// 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/delete +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/delete func (r *MailService) DeleteMailUserMailboxRule(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) { if r.cli.mock.mockMailDeleteMailUserMailboxRule != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#DeleteMailUserMailboxRule mock enable") @@ -59,7 +62,7 @@ func (r *Mock) UnMockMailDeleteMailUserMailboxRule() { // DeleteMailUserMailboxRuleReq ... type DeleteMailUserMailboxRuleReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - RuleID string `path:"rule_id" json:"-"` // 规则 id示例值: "123123123" + RuleID string `path:"rule_id" json:"-"` // 规则 id, 获取方式见 [列出收信规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/list)示例值: "123123123" } // DeleteMailUserMailboxRuleResp ... diff --git a/api_mail_user_mailbox_rule_list.go b/api_mail_user_mailbox_rule_list.go index e37a410d..fd45f72d 100644 --- a/api_mail_user_mailbox_rule_list.go +++ b/api_mail_user_mailbox_rule_list.go @@ -23,7 +23,10 @@ import ( // ListMailUserMailboxRule 列出收信规则 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/list +// 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/list +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/list func (r *MailService) ListMailUserMailboxRule(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) { if r.cli.mock.mockMailListMailUserMailboxRule != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ListMailUserMailboxRule mock enable") @@ -83,7 +86,7 @@ type ListMailUserMailboxRuleRespItemAction struct { // ListMailUserMailboxRuleRespItemActionItem ... type ListMailUserMailboxRuleRespItemActionItem struct { - Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) + Type int64 `json:"type,omitempty"` // 操作类型可选值有: 归档删除邮件标记为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) Input string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id } diff --git a/api_mail_user_mailbox_rule_reorder.go b/api_mail_user_mailbox_rule_reorder.go index 9e3720eb..8593f710 100644 --- a/api_mail_user_mailbox_rule_reorder.go +++ b/api_mail_user_mailbox_rule_reorder.go @@ -21,9 +21,13 @@ import ( "context" ) -// CreateMailUserMailboxRuleReorder 对收信规则重新排序 +// CreateMailUserMailboxRuleReorder 对收信规则进行排序 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/reorder +// 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 +// 当使用该接口时, 需要传递所有规则 id +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/reorder +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/reorder func (r *MailService) CreateMailUserMailboxRuleReorder(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) { if r.cli.mock.mockMailCreateMailUserMailboxRuleReorder != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxRuleReorder mock enable") @@ -59,7 +63,7 @@ func (r *Mock) UnMockMailCreateMailUserMailboxRuleReorder() { // CreateMailUserMailboxRuleReorderReq ... type CreateMailUserMailboxRuleReorderReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" - RuleIDs []string `json:"rule_ids,omitempty"` // 规则 id 列表示例值: ["11111111"] 最小长度: `1` + RuleIDs []string `json:"rule_ids,omitempty"` // 规则 id 列表, 获取方式见 [列出收信规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/list)示例值: ["11111111"] 最小长度: `1` } // CreateMailUserMailboxRuleReorderResp ... diff --git a/api_mail_user_mailbox_rule_update.go b/api_mail_user_mailbox_rule_update.go index 2aafdfb6..df96912f 100644 --- a/api_mail_user_mailbox_rule_update.go +++ b/api_mail_user_mailbox_rule_update.go @@ -23,7 +23,10 @@ import ( // UpdateMailUserMailboxRule 更新收信规则 // -// doc: https://open.feishu-boe.cn/document/uAjLw4CM/ukTMukTMukTM/mail-v1/user_mailbox-rule/update +// 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 +// +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/update +// new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/update func (r *MailService) UpdateMailUserMailboxRule(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) { if r.cli.mock.mockMailUpdateMailUserMailboxRule != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#UpdateMailUserMailboxRule mock enable") @@ -59,7 +62,7 @@ func (r *Mock) UnMockMailUpdateMailUserMailboxRule() { // UpdateMailUserMailboxRuleReq ... type UpdateMailUserMailboxRuleReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - RuleID string `path:"rule_id" json:"-"` // 规则 id示例值: "123123123" + RuleID string `path:"rule_id" json:"-"` // 规则 id, 获取方式见 [列出收信规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/list)示例值: "123123123" Condition *UpdateMailUserMailboxRuleReqCondition `json:"condition,omitempty"` // 匹配条件 Action *UpdateMailUserMailboxRuleReqAction `json:"action,omitempty"` // 匹配命中后的操作 IgnoreTheRestOfRules bool `json:"ignore_the_rest_of_rules,omitempty"` // 是否终点规则示例值: false @@ -74,7 +77,7 @@ type UpdateMailUserMailboxRuleReqAction struct { // UpdateMailUserMailboxRuleReqActionItem ... type UpdateMailUserMailboxRuleReqActionItem struct { - Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标为为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` + Type int64 `json:"type,omitempty"` // 操作类型示例值: 1可选值有: 归档删除邮件标记为已读移至垃圾邮件不移至垃圾邮件添加用户标签(暂不支持)添加旗标不弹出通知移至用户文件夹自动转发(暂不支持)分享到会话(暂不支持) 取值范围: `1` ~ `13` Input *string `json:"input,omitempty"` // 当 type 为移动到文件夹时, 该字段填文件夹的 id示例值: "283412371233" } @@ -87,7 +90,7 @@ type UpdateMailUserMailboxRuleReqCondition struct { // UpdateMailUserMailboxRuleReqConditionItem ... type UpdateMailUserMailboxRuleReqConditionItem struct { Type int64 `json:"type,omitempty"` // 匹配条件左值示例值: 1可选值有: 发件人地址收件人地址抄送地址收件人或抄送地址主题正文附件名字附件类型任意地址所有邮件是外部邮件是垃圾邮件不是垃圾邮件有附件 取值范围: `1` ~ `16` - Operator int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` + Operator *int64 `json:"operator,omitempty"` // 匹配条件操作符示例值: 1可选值有: 包含不包含开头是结尾是是不是包含自己为空 取值范围: `1` ~ `10` Input *string `json:"input,omitempty"` // 匹配条件右值示例值: "hello@world.com" } diff --git a/api_vc_meeting_default_building_batch_get.go b/api_vc_meeting_default_building_batch_get.go index 309348c5..bf58a2b1 100644 --- a/api_vc_meeting_default_building_batch_get.go +++ b/api_vc_meeting_default_building_batch_get.go @@ -24,6 +24,9 @@ import ( // GetVCMeetingDefaultBuildingBatchGet 该接口用于获取指定建筑物的详细信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/ukzNyUjL5cjM14SO3ITN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/query-building-details +// +// Deprecated func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGet mock enable") @@ -78,7 +81,8 @@ type GetVCMeetingDefaultBuildingBatchGetRespBuilding struct { // getVCMeetingDefaultBuildingBatchGetResp ... type getVCMeetingDefaultBuildingBatchGetResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *GetVCMeetingDefaultBuildingBatchGetResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultBuildingBatchGetResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_batch_get_id.go b/api_vc_meeting_default_building_batch_get_id.go index 5458d79b..6e120152 100644 --- a/api_vc_meeting_default_building_batch_get_id.go +++ b/api_vc_meeting_default_building_batch_get_id.go @@ -24,6 +24,9 @@ import ( // GetVCMeetingDefaultBuildingBatchGetID 该接口用于根据租户自定义建筑 ID 查询建筑 ID。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uQzMxYjL0MTM24CNzEjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-building-id +// +// Deprecated func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGetID mock enable") @@ -73,7 +76,8 @@ type GetVCMeetingDefaultBuildingBatchGetIDRespBuilding struct { // getVCMeetingDefaultBuildingBatchGetIDResp ... type getVCMeetingDefaultBuildingBatchGetIDResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *GetVCMeetingDefaultBuildingBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultBuildingBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_create.go b/api_vc_meeting_default_building_create.go index ff303011..d1acaa3b 100644 --- a/api_vc_meeting_default_building_create.go +++ b/api_vc_meeting_default_building_create.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultBuildingCreate 该接口对应管理后台的添加建筑, 添加楼层的功能, 可用于创建建筑物和建筑物的楼层信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uATNwYjLwUDM24CM1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-building +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultBuildingCreate(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingCreate mock enable") @@ -71,7 +74,8 @@ type CreateVCMeetingDefaultBuildingCreateResp struct { // createVCMeetingDefaultBuildingCreateResp ... type createVCMeetingDefaultBuildingCreateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingCreateResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingCreateResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_delete.go b/api_vc_meeting_default_building_delete.go index e7a228f4..a3478869 100644 --- a/api_vc_meeting_default_building_delete.go +++ b/api_vc_meeting_default_building_delete.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultBuildingDelete 该接口用于删除建筑物(办公大楼)。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzMxYjLzMTM24yMzEjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-building +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultBuildingDelete(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingDelete mock enable") @@ -66,7 +69,8 @@ type CreateVCMeetingDefaultBuildingDeleteResp struct { // createVCMeetingDefaultBuildingDeleteResp ... type createVCMeetingDefaultBuildingDeleteResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingDeleteResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingDeleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_list.go b/api_vc_meeting_default_building_list.go index a290a251..2c035d65 100644 --- a/api_vc_meeting_default_building_list.go +++ b/api_vc_meeting_default_building_list.go @@ -24,6 +24,9 @@ import ( // ListVCMeetingDefaultBuilding 该接口用于获取本企业下的建筑物(办公大楼)。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/ugzNyUjL4cjM14CO3ITN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-building-list +// +// Deprecated func (r *VCMeetingService) ListVCMeetingDefaultBuilding(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultBuilding mock enable") @@ -82,7 +85,8 @@ type ListVCMeetingDefaultBuildingRespBuilding struct { // listVCMeetingDefaultBuildingResp ... type listVCMeetingDefaultBuildingResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *ListVCMeetingDefaultBuildingResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultBuildingResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_update.go b/api_vc_meeting_default_building_update.go index 44737f1c..cb5ba627 100644 --- a/api_vc_meeting_default_building_update.go +++ b/api_vc_meeting_default_building_update.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultBuildingUpdate 该接口用于编辑建筑信息, 添加楼层, 删除楼层, 编辑楼层信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uETNwYjLxUDM24SM1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-building +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultBuildingUpdate(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingUpdate mock enable") @@ -71,7 +74,8 @@ type CreateVCMeetingDefaultBuildingUpdateResp struct { // createVCMeetingDefaultBuildingUpdateResp ... type createVCMeetingDefaultBuildingUpdateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingUpdateResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingUpdateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_country_list.go b/api_vc_meeting_default_country_list.go index 44711b6b..edb301aa 100644 --- a/api_vc_meeting_default_country_list.go +++ b/api_vc_meeting_default_country_list.go @@ -24,6 +24,9 @@ import ( // ListVCMeetingDefaultCountry 新建建筑时需要标明所处国家/地区, 该接口用于获得系统预先提供的可供选择的国家 /地区列表。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uQTNwYjL0UDM24CN1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-country/region-list +// +// Deprecated func (r *VCMeetingService) ListVCMeetingDefaultCountry(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultCountry mock enable") @@ -72,7 +75,8 @@ type ListVCMeetingDefaultCountryRespCountry struct { // listVCMeetingDefaultCountryResp ... type listVCMeetingDefaultCountryResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *ListVCMeetingDefaultCountryResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultCountryResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_district_list.go b/api_vc_meeting_default_district_list.go index 277f9e40..a3e8f507 100644 --- a/api_vc_meeting_default_district_list.go +++ b/api_vc_meeting_default_district_list.go @@ -24,6 +24,9 @@ import ( // ListVCMeetingDefaultDistrict 新建建筑时需要选择所处国家/地区, 该接口用于获得系统预先提供的可供选择的城市列表。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUTNwYjL1UDM24SN1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-city-list +// +// Deprecated func (r *VCMeetingService) ListVCMeetingDefaultDistrict(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultDistrict mock enable") @@ -73,7 +76,8 @@ type ListVCMeetingDefaultDistrictRespDistrict struct { // listVCMeetingDefaultDistrictResp ... type listVCMeetingDefaultDistrictResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *ListVCMeetingDefaultDistrictResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultDistrictResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_batch_get.go b/api_vc_meeting_default_room_batch_get.go index 9e4b7946..5e986882 100644 --- a/api_vc_meeting_default_room_batch_get.go +++ b/api_vc_meeting_default_room_batch_get.go @@ -24,6 +24,9 @@ import ( // GetVCMeetingDefaultRoomBatchGet 该接口用于获取指定会议室的详细信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uEDOyUjLxgjM14SM4ITN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/query-meeting-room-details +// +// Deprecated func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGet mock enable") @@ -81,7 +84,8 @@ type GetVCMeetingDefaultRoomBatchGetRespRoom struct { // getVCMeetingDefaultRoomBatchGetResp ... type getVCMeetingDefaultRoomBatchGetResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *GetVCMeetingDefaultRoomBatchGetResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultRoomBatchGetResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_batch_get_id.go b/api_vc_meeting_default_room_batch_get_id.go index 3162af71..b6ce29b4 100644 --- a/api_vc_meeting_default_room_batch_get_id.go +++ b/api_vc_meeting_default_room_batch_get_id.go @@ -24,6 +24,9 @@ import ( // GetVCMeetingDefaultRoomBatchGetID 该接口用于根据租户自定义会议室ID查询会议室ID。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uYzMxYjL2MTM24iNzEjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-meeting-room-id +// +// Deprecated func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGetID mock enable") @@ -73,7 +76,8 @@ type GetVCMeetingDefaultRoomBatchGetIDRespRoom struct { // getVCMeetingDefaultRoomBatchGetIDResp ... type getVCMeetingDefaultRoomBatchGetIDResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *GetVCMeetingDefaultRoomBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *GetVCMeetingDefaultRoomBatchGetIDResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_create.go b/api_vc_meeting_default_room_create.go index 3fdb5ea4..164585a7 100644 --- a/api_vc_meeting_default_room_create.go +++ b/api_vc_meeting_default_room_create.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultRoomCreate 该接口用于创建会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uITNwYjLyUDM24iM1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-meeting-room +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultRoomCreate(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomCreate mock enable") @@ -72,7 +75,8 @@ type CreateVCMeetingDefaultRoomCreateResp struct { // createVCMeetingDefaultRoomCreateResp ... type createVCMeetingDefaultRoomCreateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomCreateResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomCreateResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_delete.go b/api_vc_meeting_default_room_delete.go index da339b6a..4737cef5 100644 --- a/api_vc_meeting_default_room_delete.go +++ b/api_vc_meeting_default_room_delete.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultRoomDelete 该接口用于删除会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUzMxYjL1MTM24SNzEjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-meeting-room +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultRoomDelete(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomDelete mock enable") @@ -66,7 +69,8 @@ type CreateVCMeetingDefaultRoomDeleteResp struct { // createVCMeetingDefaultRoomDeleteResp ... type createVCMeetingDefaultRoomDeleteResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomDeleteResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomDeleteResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_list.go b/api_vc_meeting_default_room_list.go index 0512e985..fe573493 100644 --- a/api_vc_meeting_default_room_list.go +++ b/api_vc_meeting_default_room_list.go @@ -24,6 +24,9 @@ import ( // ListVCMeetingDefaultRoom 该接口用于获取指定建筑下的会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uADOyUjLwgjM14CM4ITN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-meeting-room-list +// +// Deprecated func (r *VCMeetingService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultRoom mock enable") @@ -86,7 +89,8 @@ type ListVCMeetingDefaultRoomRespRoom struct { // listVCMeetingDefaultRoomResp ... type listVCMeetingDefaultRoomResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *ListVCMeetingDefaultRoomResp `json:"data,omitempty"` // 返回业务信息 + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *ListVCMeetingDefaultRoomResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_update.go b/api_vc_meeting_default_room_update.go index 599109c5..e8f9a9cc 100644 --- a/api_vc_meeting_default_room_update.go +++ b/api_vc_meeting_default_room_update.go @@ -24,6 +24,9 @@ import ( // CreateVCMeetingDefaultRoomUpdate 该接口用于更新会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMTNwYjLzUDM24yM1AjN +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-meeting-room +// +// Deprecated func (r *VCMeetingService) CreateVCMeetingDefaultRoomUpdate(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomUpdate mock enable") @@ -69,7 +72,8 @@ type CreateVCMeetingDefaultRoomUpdateResp struct { // createVCMeetingDefaultRoomUpdateResp ... type createVCMeetingDefaultRoomUpdateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomUpdateResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomUpdateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_room_config_query.go b/api_vc_room_config_query.go index ac90ca0e..32524528 100644 --- a/api_vc_room_config_query.go +++ b/api_vc_room_config_query.go @@ -26,6 +26,9 @@ import ( // 根据查询范围传入对应的参数 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_config/query +// new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/room_config/query +// +// Deprecated func (r *VCService) QueryVCRoomConfig(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) { if r.cli.mock.mockVCQueryVCRoomConfig != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VC#QueryVCRoomConfig mock enable") @@ -59,44 +62,84 @@ func (r *Mock) UnMockVCQueryVCRoomConfig() { // QueryVCRoomConfigReq ... type QueryVCRoomConfigReq struct { - Scope int64 `query:"scope" json:"-"` // 查询节点范围, 示例值: 5, 可选值有: `1`: 租户, `2`: 国家/地区, `3`: 城市, `4`: 建筑, `5`: 楼层, `6`: 会议室 - CountryID *string `query:"country_id" json:"-"` // 国家/地区ID scope为2, 3时需要此参数, 示例值: "086" - DistrictID *string `query:"district_id" json:"-"` // 城市ID scope为3时需要此参数, 示例值: "001" - BuildingID *string `query:"building_id" json:"-"` // 建筑ID scope为4, 5时需要此参数, 示例值: "22" - FloorName *string `query:"floor_name" json:"-"` // 楼层 scope为5时需要此参数, 示例值: "4" - RoomID *string `query:"room_id" json:"-"` // 会议室ID scope为6时需要此参数, 示例值: "6383786266263" + Scope int64 `query:"scope" json:"-"` // 查询节点范围示例值: 5可选值有: 租户国家/地区城市建筑楼层会议室 + CountryID *string `query:"country_id" json:"-"` // 国家/地区ID scope为2, 3时需要此参数示例值: "086" + DistrictID *string `query:"district_id" json:"-"` // 城市ID scope为3时需要此参数示例值: "001" + BuildingID *string `query:"building_id" json:"-"` // 建筑ID scope为4, 5时需要此参数示例值: "22" + FloorName *string `query:"floor_name" json:"-"` // 楼层 scope为5时需要此参数示例值: "4" + RoomID *string `query:"room_id" json:"-"` // 会议室ID scope为6时需要此参数示例值: "6383786266263" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: "open_id"可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } // QueryVCRoomConfigResp ... type QueryVCRoomConfigResp struct { - RoomBackground string `json:"room_background,omitempty"` // 飞书会议室背景图 - DisplayBackground string `json:"display_background,omitempty"` // 飞书签到板背景图 - DigitalSignage *QueryVCRoomConfigRespDigitalSignage `json:"digital_signage,omitempty"` // 飞书会议室数字标牌 + RoomBackground string `json:"room_background,omitempty"` // 飞书会议室背景图 + DisplayBackground string `json:"display_background,omitempty"` // 飞书签到板背景图 + DigitalSignage *QueryVCRoomConfigRespDigitalSignage `json:"digital_signage,omitempty"` // 飞书会议室数字标牌 + RoomBoxDigitalSignage *QueryVCRoomConfigRespRoomBoxDigitalSignage `json:"room_box_digital_signage,omitempty"` // 飞书投屏盒子数字标牌 + RoomStatus *QueryVCRoomConfigRespRoomStatus `json:"room_status,omitempty"` // 会议室状态 } // QueryVCRoomConfigRespDigitalSignage ... type QueryVCRoomConfigRespDigitalSignage struct { Enable bool `json:"enable,omitempty"` // 是否开启数字标牌功能 Mute bool `json:"mute,omitempty"` // 是否静音播放 - StartDisplay int64 `json:"start_display,omitempty"` // 日程会议开始前n分钟结束播放 - StopDisplay int64 `json:"stop_display,omitempty"` // 会议结束后n分钟开始播放 + StartDisplay int64 `json:"start_display,omitempty"` // 在会议结束n分钟后开始播放, 取值1~720(仅对飞书会议室数字标牌生效) + StopDisplay int64 `json:"stop_display,omitempty"` // 在日程会议开始前n分钟停止播放, 取值1~720(仅对飞书会议室数字标牌生效) Materials []*QueryVCRoomConfigRespDigitalSignageMaterial `json:"materials,omitempty"` // 素材列表 } // QueryVCRoomConfigRespDigitalSignageMaterial ... type QueryVCRoomConfigRespDigitalSignageMaterial struct { - ID string `json:"id,omitempty"` // 素材ID + ID string `json:"id,omitempty"` // 素材ID, 当设置新素材时, 无需传递该字段 Name string `json:"name,omitempty"` // 素材名称 - MaterialType int64 `json:"material_type,omitempty"` // 素材类型, 可选值有: `1`: 图片, `2`: 视频, `3`: GIF + MaterialType int64 `json:"material_type,omitempty"` // 素材类型可选值有: 图片视频GIF URL string `json:"url,omitempty"` // 素材url - Duration int64 `json:"duration,omitempty"` // 播放时长(单位sec) + Duration int64 `json:"duration,omitempty"` // 播放时长(单位sec), 取值1~43200 Cover string `json:"cover,omitempty"` // 素材封面url Md5 string `json:"md5,omitempty"` // 素材文件md5 + Vid string `json:"vid,omitempty"` // 素材文件vid + Size string `json:"size,omitempty"` // 素材文件大小(单位byte) +} + +// QueryVCRoomConfigRespRoomBoxDigitalSignage ... +type QueryVCRoomConfigRespRoomBoxDigitalSignage struct { + Enable bool `json:"enable,omitempty"` // 是否开启数字标牌功能 + Mute bool `json:"mute,omitempty"` // 是否静音播放 + StartDisplay int64 `json:"start_display,omitempty"` // 在会议结束n分钟后开始播放, 取值1~720(仅对飞书会议室数字标牌生效) + StopDisplay int64 `json:"stop_display,omitempty"` // 在日程会议开始前n分钟停止播放, 取值1~720(仅对飞书会议室数字标牌生效) + Materials []*QueryVCRoomConfigRespRoomBoxDigitalSignageMaterial `json:"materials,omitempty"` // 素材列表 +} + +// QueryVCRoomConfigRespRoomBoxDigitalSignageMaterial ... +type QueryVCRoomConfigRespRoomBoxDigitalSignageMaterial struct { + ID string `json:"id,omitempty"` // 素材ID, 当设置新素材时, 无需传递该字段 + Name string `json:"name,omitempty"` // 素材名称 + MaterialType int64 `json:"material_type,omitempty"` // 素材类型可选值有: 图片视频GIF + URL string `json:"url,omitempty"` // 素材url + Duration int64 `json:"duration,omitempty"` // 播放时长(单位sec), 取值1~43200 + Cover string `json:"cover,omitempty"` // 素材封面url + Md5 string `json:"md5,omitempty"` // 素材文件md5 + Vid string `json:"vid,omitempty"` // 素材文件vid + Size string `json:"size,omitempty"` // 素材文件大小(单位byte) +} + +// QueryVCRoomConfigRespRoomStatus ... +type QueryVCRoomConfigRespRoomStatus struct { + Status bool `json:"status,omitempty"` // 是否启用会议室 + ScheduleStatus bool `json:"schedule_status,omitempty"` // 会议室未来状态为启用或禁用 + DisableStartTime string `json:"disable_start_time,omitempty"` // 禁用开始时间(unix时间, 单位sec) + DisableEndTime string `json:"disable_end_time,omitempty"` // 禁用结束时间(unix时间, 单位sec, 数值0表示永久禁用) + DisableReason string `json:"disable_reason,omitempty"` // 禁用原因 + ContactIDs []string `json:"contact_ids,omitempty"` // 联系人列表, id类型由user_id_type参数决定 + DisableNotice bool `json:"disable_notice,omitempty"` // 是否在禁用时发送通知给预定了该会议室的员工 + ResumeNotice bool `json:"resume_notice,omitempty"` // 是否在恢复启用时发送通知给联系人 } // queryVCRoomConfigResp ... type queryVCRoomConfigResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryVCRoomConfigResp `json:"data,omitempty"` + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryVCRoomConfigResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/mock.go b/mock.go index 0cffc5ae..8a3eda99 100644 --- a/mock.go +++ b/mock.go @@ -26,44 +26,44 @@ type Mock struct { mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) - mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) - mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) @@ -73,15 +73,15 @@ type Mock struct { mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) - mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) @@ -103,328 +103,328 @@ type Mock struct { mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) - mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) - mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) - mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyCreateAilySessionRunCancel func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) + mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) + mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) + mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) - mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) + mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) - mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) - mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) - mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) - mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) - mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) - mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) + mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) + mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) + mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) + mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) + mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) - mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) - mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) - mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) - mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) - mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) - mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) - mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) - mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) - mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) - mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) - mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) - mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) - mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) - mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) - mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) - mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) + mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) + mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) + mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) @@ -435,186 +435,265 @@ type Mock struct { mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) - mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) + mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) - mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) - mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) + mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) + mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) + mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) - mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) - mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) + mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) + mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) + mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) + mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) + mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) + mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) - mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) - mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) - mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) - mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) - mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) - mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) - mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) - mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) - mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) - mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) + mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) + mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) + mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) + mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) + mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) + mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) + mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) + mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) + mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) + mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) + mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) + mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) + mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) + mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) + mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) + mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) + mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) + mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) mockCoreHRBatchQueryCorehrCostAllocation func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) mockCoreHRCreateCorehrCostAllocationVersion func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) mockCoreHRRemoveCorehrCostAllocationVersion func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) mockCoreHRUpdateCorehrCostAllocationVersion func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) mockCoreHRQueryCorehrCostCenterRecentChange func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) - mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) - mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) mockCoreHRCreateCorehrCustomOrgActive func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) mockCoreHRCreateCorehrCustomOrg func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) mockCoreHRDeleteCorehrCustomOrg func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) + mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) mockCoreHRQueryCorehrCustomOrg func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) mockCoreHRQueryCorehrCustomOrgRecentChange func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) mockCoreHRUpdateCorehrCustomOrgRule func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) mockCoreHRBatchQueryCorehrDefaultCostCenter func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) mockCoreHRCreateCorehrDefaultCostCenterVersion func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) mockCoreHRRemoveCorehrDefaultCostCenterVersion func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) mockCoreHRUpdateCorehrDefaultCostCenterVersion func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) mockCoreHRDeleteCorehrDepartment func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) mockCoreHRQueryCorehrDepartmentOperationLogs func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) mockCoreHRQueryCorehrDepartmentRecentChange func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) mockCoreHRCreateCorehrDepartmentTree func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) - mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) mockCoreHRGetCorehrDraft func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) mockCoreHRCreateCorehrEmployee func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) - mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) - mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) - mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) mockCoreHRBatchQueryCorehrEmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) mockCoreHRCreateCorehrEmployeesAdditionalJob func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) mockCoreHRDeleteCorehrEmployeesAdditionalJob func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) @@ -623,166 +702,87 @@ type Mock struct { mockCoreHRDeleteCorehrEmployeesInternationalAssignment func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) mockCoreHRListCorehrEmployeesInternationalAssignment func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) mockCoreHRUpdateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) - mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) - mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) mockCoreHRSearchCorehrEnum func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) mockCoreHRBatchGetCorehrJob func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) mockCoreHRCreateCorehrJobChange func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) mockCoreHRCreateCorehrJobChangeRevoke func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) - mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) - mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) - mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) - mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) mockCoreHRQueryCorehrJobFamilyMultiTimeline func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) mockCoreHRQueryCorehrJobFamilyRecentChange func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) + mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) mockCoreHRDeleteCorehrJobGrade func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) + mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) mockCoreHRQueryCorehrJobGradeRecentChange func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) mockCoreHRQueryCorehrJobLevelRecentChange func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) - mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) - mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) - mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) mockCoreHRCreateCorehrLocationAddress func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) mockCoreHRDeleteCorehrLocationAddress func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) mockCoreHRUpdateCorehrLocationAddress func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) + mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) mockCoreHRQueryCorehrLocationMultiTimeline func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) mockCoreHRQueryCorehrLocationRecentChange func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) mockCoreHRCreateCorehrOffboardingEdit func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) mockCoreHRCreateCorehrOffboardingRevoke func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) mockCoreHRCreateCorehrOffboardingSubmitV2 func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) mockCoreHRCreateCorehrPathwayActive func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) mockCoreHRBatchGetCorehrPathway func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) mockCoreHRCreateCorehrPathway func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) mockCoreHRDeleteCorehrPathway func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) mockCoreHRUpdateCorehrPathway func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) mockCoreHRCreateCorehrPositionActive func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) mockCoreHRCreateCorehrPosition func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) mockCoreHRCreateCorehrPositionDelPosition func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) + mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) mockCoreHRQueryCorehrPosition func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) mockCoreHRQueryCorehrPositionRecentChange func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) mockCoreHRCreateCorehrPreHireComplete func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) - mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) - mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) mockCoreHRDeleteCorehrPreHire func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) + mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) mockCoreHRQueryCorehrPreHire func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) mockCoreHRCreateCorehrPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) mockCoreHRCreateCorehrPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) mockCoreHRCreateCorehrPreHireTransitTask func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) mockCoreHRCreateCorehrPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) - mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) - mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) mockCoreHRCreateCorehrProbationSubmit func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) mockCoreHRCreateCorehrProbationWithdraw func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) mockCoreHRUpdateCorehrProcessApprover func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) mockCoreHRUpdateCorehrProcessExtra func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) - mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) mockCoreHRGetCorehrProcessFormVariableData func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) mockCoreHRCreateCorehrProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) + mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) mockCoreHRUpdateCorehrProcessRevoke func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) mockCoreHRCreateCorehrProcessStart func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) - mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) mockCoreHRUpdateCorehrProcessWithdraw func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) mockCoreHRCreateCorehrReportDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) mockCoreHRCreateCorehrReportDetailRowBatchsave func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) mockCoreHRDownloadCorehrSignatureFile func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) mockCoreHRListCorehrSignatureFile func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) mockCoreHRListCorehrSignatureFileByBizID func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) mockCoreHRQueryCorehrSignatureFile func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) mockCoreHRCreateCorehrSignatureFileTerminate func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) mockCoreHRListCorehrSignatureNodeByFileID func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) - mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) mockCoreHRSearchCorehrSignatureTemplate func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) - mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) - mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) - mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) - mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) + mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) + mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) + mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) + mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) + mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) @@ -793,323 +793,357 @@ type Mock struct { mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) - mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) + mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) - mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) - mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) - mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) - mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) - mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) - mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) - mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) - mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) - mockHireGetHireAgencyAccount func(ctx context.Context, request *GetHireAgencyAccountReq, options ...MethodOptionFunc) (*GetHireAgencyAccountResp, *Response, error) - mockHireCreateHireAgencyOperateAgencyAccount func(ctx context.Context, request *CreateHireAgencyOperateAgencyAccountReq, options ...MethodOptionFunc) (*CreateHireAgencyOperateAgencyAccountResp, *Response, error) - mockHireCreateHireAgencyProtect func(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error) - mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) - mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) - mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) - mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) - mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) - mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) - mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) - mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) - mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) - mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) + mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) + mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) + mockHireGetHireAgencyAccount func(ctx context.Context, request *GetHireAgencyAccountReq, options ...MethodOptionFunc) (*GetHireAgencyAccountResp, *Response, error) + mockHireCreateHireAgencyOperateAgencyAccount func(ctx context.Context, request *CreateHireAgencyOperateAgencyAccountReq, options ...MethodOptionFunc) (*CreateHireAgencyOperateAgencyAccountResp, *Response, error) + mockHireCreateHireAgencyProtect func(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error) + mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) + mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) + mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) + mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) + mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) + mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) + mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) + mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) + mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) - mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) - mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) @@ -1117,87 +1151,53 @@ type Mock struct { mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) - mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) + mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) - mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) - mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) + mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) - mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) - mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) @@ -1213,172 +1213,172 @@ type Mock struct { mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) - mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) + mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) - mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) + mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) + mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) - mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) + mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) - mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) - mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) - mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) - mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) - mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) - mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) - mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) - mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) - mockMailGetMailUserMailboxMessageByCard func(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error) - mockMailDownloadMailUserMailboxMessageAttachmentURL func(ctx context.Context, request *DownloadMailUserMailboxMessageAttachmentURLReq, options ...MethodOptionFunc) (*DownloadMailUserMailboxMessageAttachmentURLResp, *Response, error) - mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) - mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) - mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) - mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) - mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) + mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) + mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) - mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) - mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) - mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) + mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) + mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) + mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) + mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) + mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) - mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) - mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) + mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) + mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) + mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) + mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) + mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) - mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) - mockMailCreateUserMailboxMailContact func(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error) + mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) + mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) + mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) + mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) + mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) + mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) + mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) mockMailCreateMailUserMailboxFolder func(ctx context.Context, request *CreateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxFolderResp, *Response, error) - mockMailCreateMailUserMailboxRule func(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) - mockMailDeleteUserMailboxMailContact func(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error) mockMailDeleteMailUserMailboxFolder func(ctx context.Context, request *DeleteMailUserMailboxFolderReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxFolderResp, *Response, error) - mockMailDeleteMailUserMailboxRule func(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) - mockMailListUserMailboxMailContact func(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error) - mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) mockMailListMailUserMailboxFolder func(ctx context.Context, request *ListMailUserMailboxFolderReq, options ...MethodOptionFunc) (*ListMailUserMailboxFolderResp, *Response, error) + mockMailUpdateMailUserMailboxFolder func(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error) + mockMailCreateUserMailboxMailContact func(ctx context.Context, request *CreateUserMailboxMailContactReq, options ...MethodOptionFunc) (*CreateUserMailboxMailContactResp, *Response, error) + mockMailDeleteUserMailboxMailContact func(ctx context.Context, request *DeleteUserMailboxMailContactReq, options ...MethodOptionFunc) (*DeleteUserMailboxMailContactResp, *Response, error) + mockMailListUserMailboxMailContact func(ctx context.Context, request *ListUserMailboxMailContactReq, options ...MethodOptionFunc) (*ListUserMailboxMailContactResp, *Response, error) + mockMailUpdateUserMailboxMailContact func(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error) + mockMailDownloadMailUserMailboxMessageAttachmentURL func(ctx context.Context, request *DownloadMailUserMailboxMessageAttachmentURLReq, options ...MethodOptionFunc) (*DownloadMailUserMailboxMessageAttachmentURLResp, *Response, error) mockMailGetMailUserMailboxMessage func(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error) + mockMailGetMailUserMailboxMessageByCard func(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error) mockMailListMailUserMailboxMessage func(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error) - mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailCreateMailUserMailboxMessageSend func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) + mockMailCreateMailUserMailboxRule func(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) + mockMailDeleteMailUserMailboxRule func(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) mockMailListMailUserMailboxRule func(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) - mockMailCreateMailUserMailboxMessageSend func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) - mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) - mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) - mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) - mockMailUpdateUserMailboxMailContact func(ctx context.Context, request *UpdateUserMailboxMailContactReq, options ...MethodOptionFunc) (*UpdateUserMailboxMailContactResp, *Response, error) - mockMailUpdateMailUserMailboxFolder func(ctx context.Context, request *UpdateMailUserMailboxFolderReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxFolderResp, *Response, error) mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) - mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) - mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) - mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) - mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) - mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) + mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) + mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) + mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) - mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) - mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) - mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) - mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) + mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) + mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) + mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) + mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) + mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) + mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) + mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) - mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) - mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) - mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) - mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) - mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) @@ -1391,9 +1391,13 @@ type Mock struct { mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) - mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) + mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) @@ -1406,40 +1410,37 @@ type Mock struct { mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) - mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) + mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) + mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) - mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) @@ -1447,76 +1448,75 @@ type Mock struct { mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) - mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) - mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) - mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) - mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) - mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) - mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) - mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) - mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) - mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) + mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) + mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) - mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) - mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) - mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) + mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) + mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) + mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) + mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) + mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) + mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) + mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) @@ -1534,9 +1534,9 @@ type Mock struct { mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) @@ -1547,76 +1547,76 @@ type Mock struct { mockTrustPartyGetTrustPartyCollaborationTenant func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) - mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) - mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) + mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) - mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) - mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) - mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) - mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) - mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) - mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) - mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) - mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) + mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) + mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) + mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) + mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) + mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) + mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) - mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) - mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } diff --git a/test/calendar_sample_test.go b/test/calendar_sample_test.go index a39504bf..faaea0b8 100644 --- a/test/calendar_sample_test.go +++ b/test/calendar_sample_test.go @@ -38,7 +38,7 @@ func Test_Calendar_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) + _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,66 +51,978 @@ func Test_Calendar_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarBatchGetCalendarMeetingRoomFreebusy(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomFreebusyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomFreebusyResp, *lark.Response, error) { + cli.Mock().MockCalendarCreateCalendarACL(func(ctx context.Context, request *lark.CreateCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarACLResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() + defer cli.Mock().UnMockCalendarCreateCalendarACL() - _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) + _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarBatchGetCalendarMeetingRoomSummary(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomSummaryReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomSummaryResp, *lark.Response, error) { + cli.Mock().MockCalendarDeleteCalendarACL(func(ctx context.Context, request *lark.DeleteCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarACLResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomSummary() + defer cli.Mock().UnMockCalendarDeleteCalendarACL() - _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) + _, _, err := moduleCli.DeleteCalendarACL(ctx, &lark.DeleteCalendarACLReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCalendarReplyCalendarMeetingRoomInstance(func(ctx context.Context, request *lark.ReplyCalendarMeetingRoomInstanceReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarMeetingRoomInstanceResp, *lark.Response, error) { + cli.Mock().MockCalendarGetCalendarACLList(func(ctx context.Context, request *lark.GetCalendarACLListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarACLListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCalendarReplyCalendarMeetingRoomInstance() + defer cli.Mock().UnMockCalendarGetCalendarACLList() - _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) + _, _, err := moduleCli.GetCalendarACLList(ctx, &lark.GetCalendarACLListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Calendar - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockCalendarSubscribeCalendarACL(func(ctx context.Context, request *lark.SubscribeCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarACLResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSubscribeCalendarACL() + + _, _, err := moduleCli.SubscribeCalendarACL(ctx, &lark.SubscribeCalendarACLReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) + cli.Mock().MockCalendarUnsubscribeCalendarACL(func(ctx context.Context, request *lark.UnsubscribeCalendarACLReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarACLResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUnsubscribeCalendarACL() + + _, _, err := moduleCli.UnsubscribeCalendarACL(ctx, &lark.UnsubscribeCalendarACLReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) + cli.Mock().MockCalendarGetPrimaryCalendar(func(ctx context.Context, request *lark.GetPrimaryCalendarReq, options ...lark.MethodOptionFunc) (*lark.GetPrimaryCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetPrimaryCalendar() + + _, _, err := moduleCli.GetPrimaryCalendar(ctx, &lark.GetPrimaryCalendarReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) + cli.Mock().MockCalendarCreateCalendar(func(ctx context.Context, request *lark.CreateCalendarReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendar() + + _, _, err := moduleCli.CreateCalendar(ctx, &lark.CreateCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendar(func(ctx context.Context, request *lark.DeleteCalendarReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendar() + + _, _, err := moduleCli.DeleteCalendar(ctx, &lark.DeleteCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendar(func(ctx context.Context, request *lark.GetCalendarReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendar() + + _, _, err := moduleCli.GetCalendar(ctx, &lark.GetCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarList(func(ctx context.Context, request *lark.GetCalendarListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarList() + + _, _, err := moduleCli.GetCalendarList(ctx, &lark.GetCalendarListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarUpdateCalendar(func(ctx context.Context, request *lark.UpdateCalendarReq, options ...lark.MethodOptionFunc) (*lark.UpdateCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUpdateCalendar() + + _, _, err := moduleCli.UpdateCalendar(ctx, &lark.UpdateCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarSearchCalendar(func(ctx context.Context, request *lark.SearchCalendarReq, options ...lark.MethodOptionFunc) (*lark.SearchCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSearchCalendar() + + _, _, err := moduleCli.SearchCalendar(ctx, &lark.SearchCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarSubscribeCalendar(func(ctx context.Context, request *lark.SubscribeCalendarReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSubscribeCalendar() + + _, _, err := moduleCli.SubscribeCalendar(ctx, &lark.SubscribeCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarUnsubscribeCalendar(func(ctx context.Context, request *lark.UnsubscribeCalendarReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUnsubscribeCalendar() + + _, _, err := moduleCli.UnsubscribeCalendar(ctx, &lark.UnsubscribeCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarSubscribeCalendarChangeEvent(func(ctx context.Context, request *lark.SubscribeCalendarChangeEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarChangeEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSubscribeCalendarChangeEvent() + + _, _, err := moduleCli.SubscribeCalendarChangeEvent(ctx, &lark.SubscribeCalendarChangeEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarUnsubscribeCalendarChangeEvent(func(ctx context.Context, request *lark.UnsubscribeCalendarChangeEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarChangeEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUnsubscribeCalendarChangeEvent() + + _, _, err := moduleCli.UnsubscribeCalendarChangeEvent(ctx, &lark.UnsubscribeCalendarChangeEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarEvent(func(ctx context.Context, request *lark.CreateCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarEvent() + + _, _, err := moduleCli.CreateCalendarEvent(ctx, &lark.CreateCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendarEvent(func(ctx context.Context, request *lark.DeleteCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendarEvent() + + _, _, err := moduleCli.DeleteCalendarEvent(ctx, &lark.DeleteCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEvent(func(ctx context.Context, request *lark.GetCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEvent() + + _, _, err := moduleCli.GetCalendarEvent(ctx, &lark.GetCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEventList(func(ctx context.Context, request *lark.GetCalendarEventListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEventList() + + _, _, err := moduleCli.GetCalendarEventList(ctx, &lark.GetCalendarEventListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarUpdateCalendarEvent(func(ctx context.Context, request *lark.UpdateCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.UpdateCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUpdateCalendarEvent() + + _, _, err := moduleCli.UpdateCalendarEvent(ctx, &lark.UpdateCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarSearchCalendarEvent(func(ctx context.Context, request *lark.SearchCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.SearchCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSearchCalendarEvent() + + _, _, err := moduleCli.SearchCalendarEvent(ctx, &lark.SearchCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarSubscribeCalendarEvent(func(ctx context.Context, request *lark.SubscribeCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarSubscribeCalendarEvent() + + _, _, err := moduleCli.SubscribeCalendarEvent(ctx, &lark.SubscribeCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarUnsubscribeCalendarEvent(func(ctx context.Context, request *lark.UnsubscribeCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarUnsubscribeCalendarEvent() + + _, _, err := moduleCli.UnsubscribeCalendarEvent(ctx, &lark.UnsubscribeCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarReplyCalendarEvent(func(ctx context.Context, request *lark.ReplyCalendarEventReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarReplyCalendarEvent() + + _, _, err := moduleCli.ReplyCalendarEvent(ctx, &lark.ReplyCalendarEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEventInstanceList(func(ctx context.Context, request *lark.GetCalendarEventInstanceListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventInstanceListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEventInstanceList() + + _, _, err := moduleCli.GetCalendarEventInstanceList(ctx, &lark.GetCalendarEventInstanceListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEventInstanceViewList(func(ctx context.Context, request *lark.GetCalendarEventInstanceViewListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventInstanceViewListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEventInstanceViewList() + + _, _, err := moduleCli.GetCalendarEventInstanceViewList(ctx, &lark.GetCalendarEventInstanceViewListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendarEventMeetingChat(func(ctx context.Context, request *lark.DeleteCalendarEventMeetingChatReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventMeetingChatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendarEventMeetingChat() + + _, _, err := moduleCli.DeleteCalendarEventMeetingChat(ctx, &lark.DeleteCalendarEventMeetingChatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarEventMeetingChat(func(ctx context.Context, request *lark.CreateCalendarEventMeetingChatReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventMeetingChatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarEventMeetingChat() + + _, _, err := moduleCli.CreateCalendarEventMeetingChat(ctx, &lark.CreateCalendarEventMeetingChatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarTimeoffEvent(func(ctx context.Context, request *lark.CreateCalendarTimeoffEventReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarTimeoffEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarTimeoffEvent() + + _, _, err := moduleCli.CreateCalendarTimeoffEvent(ctx, &lark.CreateCalendarTimeoffEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendarTimeoffEvent(func(ctx context.Context, request *lark.DeleteCalendarTimeoffEventReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarTimeoffEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendarTimeoffEvent() + + _, _, err := moduleCli.DeleteCalendarTimeoffEvent(ctx, &lark.DeleteCalendarTimeoffEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarBatchGetCalendarMeetingRoomSummary(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomSummaryReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomSummaryResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomSummary() + + _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarBatchGetCalendarMeetingRoomFreebusy(func(ctx context.Context, request *lark.BatchGetCalendarMeetingRoomFreebusyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCalendarMeetingRoomFreebusyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarBatchGetCalendarMeetingRoomFreebusy() + + _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarReplyCalendarMeetingRoomInstance(func(ctx context.Context, request *lark.ReplyCalendarMeetingRoomInstanceReq, options ...lark.MethodOptionFunc) (*lark.ReplyCalendarMeetingRoomInstanceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarReplyCalendarMeetingRoomInstance() + + _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarEventAttendee(func(ctx context.Context, request *lark.CreateCalendarEventAttendeeReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventAttendeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarEventAttendee() + + _, _, err := moduleCli.CreateCalendarEventAttendee(ctx, &lark.CreateCalendarEventAttendeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendarEventAttendee(func(ctx context.Context, request *lark.DeleteCalendarEventAttendeeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarEventAttendeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendarEventAttendee() + + _, _, err := moduleCli.DeleteCalendarEventAttendee(ctx, &lark.DeleteCalendarEventAttendeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEventAttendeeList(func(ctx context.Context, request *lark.GetCalendarEventAttendeeListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventAttendeeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEventAttendeeList() + + _, _, err := moduleCli.GetCalendarEventAttendeeList(ctx, &lark.GetCalendarEventAttendeeListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarEventAttendeeChatMemberList(func(ctx context.Context, request *lark.GetCalendarEventAttendeeChatMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarEventAttendeeChatMemberListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarEventAttendeeChatMemberList() + + _, _, err := moduleCli.GetCalendarEventAttendeeChatMemberList(ctx, &lark.GetCalendarEventAttendeeChatMemberListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarFreeBusyList(func(ctx context.Context, request *lark.GetCalendarFreeBusyListReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarFreeBusyListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarFreeBusyList() + + _, _, err := moduleCli.GetCalendarFreeBusyList(ctx, &lark.GetCalendarFreeBusyListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGenerateCaldavConf(func(ctx context.Context, request *lark.GenerateCaldavConfReq, options ...lark.MethodOptionFunc) (*lark.GenerateCaldavConfResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGenerateCaldavConf() + + _, _, err := moduleCli.GenerateCaldavConf(ctx, &lark.GenerateCaldavConfReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarExchangeBinding(func(ctx context.Context, request *lark.CreateCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarExchangeBindingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarExchangeBinding() + + _, _, err := moduleCli.CreateCalendarExchangeBinding(ctx, &lark.CreateCalendarExchangeBindingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarDeleteCalendarExchangeBinding(func(ctx context.Context, request *lark.DeleteCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.DeleteCalendarExchangeBindingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarDeleteCalendarExchangeBinding() + + _, _, err := moduleCli.DeleteCalendarExchangeBinding(ctx, &lark.DeleteCalendarExchangeBindingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarGetCalendarExchangeBinding(func(ctx context.Context, request *lark.GetCalendarExchangeBindingReq, options ...lark.MethodOptionFunc) (*lark.GetCalendarExchangeBindingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarGetCalendarExchangeBinding() + + _, _, err := moduleCli.GetCalendarExchangeBinding(ctx, &lark.GetCalendarExchangeBindingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarEventMeetingMinute(func(ctx context.Context, request *lark.CreateCalendarEventMeetingMinuteReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarEventMeetingMinuteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarEventMeetingMinute() + + _, _, err := moduleCli.CreateCalendarEventMeetingMinute(ctx, &lark.CreateCalendarEventMeetingMinuteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarMGetCalendar(func(ctx context.Context, request *lark.MGetCalendarReq, options ...lark.MethodOptionFunc) (*lark.MGetCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarMGetCalendar() + + _, _, err := moduleCli.MGetCalendar(ctx, &lark.MGetCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarCreateCalendarPrimarys(func(ctx context.Context, request *lark.CreateCalendarPrimarysReq, options ...lark.MethodOptionFunc) (*lark.CreateCalendarPrimarysResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarCreateCalendarPrimarys() + + _, _, err := moduleCli.CreateCalendarPrimarys(ctx, &lark.CreateCalendarPrimarysReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCalendarBatchQueryCalendarFreebusy(func(ctx context.Context, request *lark.BatchQueryCalendarFreebusyReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCalendarFreebusyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCalendarBatchQueryCalendarFreebusy() + + _, _, err := moduleCli.BatchQueryCalendarFreebusy(ctx, &lark.BatchQueryCalendarFreebusyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Calendar + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarACL(ctx, &lark.CreateCalendarACLReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarACL(ctx, &lark.DeleteCalendarACLReq{ + CalendarID: "x", + ACLID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarACLList(ctx, &lark.GetCalendarACLListReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeCalendarACL(ctx, &lark.SubscribeCalendarACLReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeCalendarACL(ctx, &lark.UnsubscribeCalendarACLReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetPrimaryCalendar(ctx, &lark.GetPrimaryCalendarReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendar(ctx, &lark.CreateCalendarReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendar(ctx, &lark.DeleteCalendarReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendar(ctx, &lark.GetCalendarReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarList(ctx, &lark.GetCalendarListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCalendar(ctx, &lark.UpdateCalendarReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCalendar(ctx, &lark.SearchCalendarReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeCalendar(ctx, &lark.SubscribeCalendarReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeCalendar(ctx, &lark.UnsubscribeCalendarReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeCalendarChangeEvent(ctx, &lark.SubscribeCalendarChangeEventReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeCalendarChangeEvent(ctx, &lark.UnsubscribeCalendarChangeEventReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarEvent(ctx, &lark.CreateCalendarEventReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarEvent(ctx, &lark.DeleteCalendarEventReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEvent(ctx, &lark.GetCalendarEventReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEventList(ctx, &lark.GetCalendarEventListReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCalendarEvent(ctx, &lark.UpdateCalendarEventReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCalendarEvent(ctx, &lark.SearchCalendarEventReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeCalendarEvent(ctx, &lark.SubscribeCalendarEventReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeCalendarEvent(ctx, &lark.UnsubscribeCalendarEventReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ReplyCalendarEvent(ctx, &lark.ReplyCalendarEventReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEventInstanceList(ctx, &lark.GetCalendarEventInstanceListReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEventInstanceViewList(ctx, &lark.GetCalendarEventInstanceViewListReq{ + CalendarID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarEventMeetingChat(ctx, &lark.DeleteCalendarEventMeetingChatReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarEventMeetingChat(ctx, &lark.CreateCalendarEventMeetingChatReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarTimeoffEvent(ctx, &lark.CreateCalendarTimeoffEventReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarTimeoffEvent(ctx, &lark.DeleteCalendarTimeoffEventReq{ + TimeoffEventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCalendarMeetingRoomSummary(ctx, &lark.BatchGetCalendarMeetingRoomSummaryReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCalendarMeetingRoomFreebusy(ctx, &lark.BatchGetCalendarMeetingRoomFreebusyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ReplyCalendarMeetingRoomInstance(ctx, &lark.ReplyCalendarMeetingRoomInstanceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarEventAttendee(ctx, &lark.CreateCalendarEventAttendeeReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarEventAttendee(ctx, &lark.DeleteCalendarEventAttendeeReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEventAttendeeList(ctx, &lark.GetCalendarEventAttendeeListReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarEventAttendeeChatMemberList(ctx, &lark.GetCalendarEventAttendeeChatMemberListReq{ + CalendarID: "x", + EventID: "x", + AttendeeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarFreeBusyList(ctx, &lark.GetCalendarFreeBusyListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GenerateCaldavConf(ctx, &lark.GenerateCaldavConfReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarExchangeBinding(ctx, &lark.CreateCalendarExchangeBindingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCalendarExchangeBinding(ctx, &lark.DeleteCalendarExchangeBindingReq{ + ExchangeBindingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCalendarExchangeBinding(ctx, &lark.GetCalendarExchangeBindingReq{ + ExchangeBindingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarEventMeetingMinute(ctx, &lark.CreateCalendarEventMeetingMinuteReq{ + CalendarID: "x", + EventID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MGetCalendar(ctx, &lark.MGetCalendarReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCalendarPrimarys(ctx, &lark.CreateCalendarPrimarysReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCalendarFreebusy(ctx, &lark.BatchQueryCalendarFreebusyReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/corehr_sample_test.go b/test/corehr_sample_test.go index 139d417b..fe59b195 100644 --- a/test/corehr_sample_test.go +++ b/test/corehr_sample_test.go @@ -38,7 +38,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,332 +51,5320 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompensationChangeReasonList(func(ctx context.Context, request *lark.GetCoreHRCompensationChangeReasonListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationChangeReasonListResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompensationChangeReasonList() + defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() - _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompensationIndicatorList(func(ctx context.Context, request *lark.GetCoreHRCompensationIndicatorListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationIndicatorListResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBank(func(ctx context.Context, request *lark.SearchCoreHRBankReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompensationIndicatorList() + defer cli.Mock().UnMockCoreHRSearchCoreHRBank() - _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) + _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompensationItemList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemListResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBankBranch(func(ctx context.Context, request *lark.SearchCoreHRBankBranchReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankBranchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemList() + defer cli.Mock().UnMockCoreHRSearchCoreHRBankBranch() - _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) + _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompensationItemCategoryList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemCategoryListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemCategoryListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCustomField(func(ctx context.Context, request *lark.GetCoreHRCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemCategoryList() + defer cli.Mock().UnMockCoreHRGetCoreHRCustomField() - _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) + _, _, err := moduleCli.GetCoreHRCustomField(ctx, &lark.GetCoreHRCustomFieldReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRCompensationPlanList(func(ctx context.Context, request *lark.GetCoreHRCompensationPlanListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationPlanListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCustomFieldList(func(ctx context.Context, request *lark.GetCoreHRCustomFieldListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRCompensationPlanList() + defer cli.Mock().UnMockCoreHRGetCoreHRCustomFieldList() - _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) + _, _, err := moduleCli.GetCoreHRCustomFieldList(ctx, &lark.GetCoreHRCustomFieldListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCoreHRCompensationArchive(func(ctx context.Context, request *lark.QueryCoreHRCompensationArchiveReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCompensationArchiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCustomFieldObjectApiNameList(func(ctx context.Context, request *lark.GetCoreHRCustomFieldObjectApiNameListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCustomFieldObjectApiNameListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCoreHRCompensationArchive() + defer cli.Mock().UnMockCoreHRGetCoreHRCustomFieldObjectApiNameList() - _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) + _, _, err := moduleCli.GetCoreHRCustomFieldObjectApiNameList(ctx, &lark.GetCoreHRCustomFieldObjectApiNameListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHRJobFamily(func(ctx context.Context, request *lark.BatchGetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobFamilyResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRCountryRegion(func(ctx context.Context, request *lark.SearchCoreHRCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCountryRegionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobFamily() + defer cli.Mock().UnMockCoreHRSearchCoreHRCountryRegion() - _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) + _, _, err := moduleCli.SearchCoreHRCountryRegion(ctx, &lark.SearchCoreHRCountryRegionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHrbpByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHrbpByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHrbpByEmployeeResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRCountryRegionSubdivision(func(ctx context.Context, request *lark.SearchCoreHRCountryRegionSubdivisionReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCountryRegionSubdivisionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHrbpByEmployee() + defer cli.Mock().UnMockCoreHRSearchCoreHRCountryRegionSubdivision() - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + _, _, err := moduleCli.SearchCoreHRCountryRegionSubdivision(ctx, &lark.SearchCoreHRCountryRegionSubdivisionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRCity(func(ctx context.Context, request *lark.SearchCoreHRCityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCityResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() + defer cli.Mock().UnMockCoreHRSearchCoreHRCity() - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + _, _, err := moduleCli.SearchCoreHRCity(ctx, &lark.SearchCoreHRCityReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRBank(func(ctx context.Context, request *lark.SearchCoreHRBankReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRDistrict(func(ctx context.Context, request *lark.SearchCoreHRDistrictReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRDistrictResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRBank() + defer cli.Mock().UnMockCoreHRSearchCoreHRDistrict() - _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) + _, _, err := moduleCli.SearchCoreHRDistrict(ctx, &lark.SearchCoreHRDistrictReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRBankBranch(func(ctx context.Context, request *lark.SearchCoreHRBankBranchReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBankBranchResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCountryRegion(func(ctx context.Context, request *lark.GetCoreHRCountryRegionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCountryRegionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRBankBranch() + defer cli.Mock().UnMockCoreHRGetCoreHRCountryRegion() - _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) + _, _, err := moduleCli.GetCoreHRCountryRegion(ctx, &lark.GetCoreHRCountryRegionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCoreHRNationality(func(ctx context.Context, request *lark.SearchCoreHRNationalityReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRNationalityResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRCountryRegionList(func(ctx context.Context, request *lark.GetCoreHRCountryRegionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCountryRegionListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCoreHRNationality() + defer cli.Mock().UnMockCoreHRGetCoreHRCountryRegionList() - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + _, _, err := moduleCli.GetCoreHRCountryRegionList(ctx, &lark.GetCoreHRCountryRegionListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRAuthorization(func(ctx context.Context, request *lark.GetCoreHRAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRSubdivision(func(ctx context.Context, request *lark.GetCoreHRSubdivisionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubdivisionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRAuthorization() + defer cli.Mock().UnMockCoreHRGetCoreHRSubdivision() - _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + _, _, err := moduleCli.GetCoreHRSubdivision(ctx, &lark.GetCoreHRSubdivisionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRMatchCoreHRCompensationStandard(func(ctx context.Context, request *lark.MatchCoreHRCompensationStandardReq, options ...lark.MethodOptionFunc) (*lark.MatchCoreHRCompensationStandardResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRSubdivisionList(func(ctx context.Context, request *lark.GetCoreHRSubdivisionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubdivisionListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRMatchCoreHRCompensationStandard() + defer cli.Mock().UnMockCoreHRGetCoreHRSubdivisionList() - _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + _, _, err := moduleCli.GetCoreHRSubdivisionList(ctx, &lark.GetCoreHRSubdivisionListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHRAuthorizationList(func(ctx context.Context, request *lark.GetCoreHRAuthorizationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRSubregion(func(ctx context.Context, request *lark.GetCoreHRSubregionReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubregionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHRAuthorizationList() + defer cli.Mock().UnMockCoreHRGetCoreHRSubregion() - _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + _, _, err := moduleCli.GetCoreHRSubregion(ctx, &lark.GetCoreHRSubregionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.BatchQueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRDepartmentTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRSubregionList(func(ctx context.Context, request *lark.GetCoreHRSubregionListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSubregionListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchQueryCoreHRDepartmentTimeline() + defer cli.Mock().UnMockCoreHRGetCoreHRSubregionList() - _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) + _, _, err := moduleCli.GetCoreHRSubregionList(ctx, &lark.GetCoreHRSubregionListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.QueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRDepartmentTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHREmployeeType(func(ctx context.Context, request *lark.CreateCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmployeeTypeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCoreHRDepartmentTimeline() + defer cli.Mock().UnMockCoreHRCreateCoreHREmployeeType() - _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) + _, _, err := moduleCli.CreateCoreHREmployeeType(ctx, &lark.CreateCoreHREmployeeTypeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.CoreHR - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockCoreHRDeleteCoreHREmployeeType(func(ctx context.Context, request *lark.DeleteCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmployeeTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHREmployeeType() + + _, _, err := moduleCli.DeleteCoreHREmployeeType(ctx, &lark.DeleteCoreHREmployeeTypeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) + cli.Mock().MockCoreHRUpdateCoreHREmployeeType(func(ctx context.Context, request *lark.UpdateCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmployeeTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHREmployeeType() + + _, _, err := moduleCli.UpdateCoreHREmployeeType(ctx, &lark.UpdateCoreHREmployeeTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) + cli.Mock().MockCoreHRGetCoreHREmployeeType(func(ctx context.Context, request *lark.GetCoreHREmployeeTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHREmployeeTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHREmployeeType() + + _, _, err := moduleCli.GetCoreHREmployeeType(ctx, &lark.GetCoreHREmployeeTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) + cli.Mock().MockCoreHRGetCoreHREmployeeTypeList(func(ctx context.Context, request *lark.GetCoreHREmployeeTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHREmployeeTypeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHREmployeeTypeList() + + _, _, err := moduleCli.GetCoreHREmployeeTypeList(ctx, &lark.GetCoreHREmployeeTypeListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) + cli.Mock().MockCoreHRCreateCoreHRNationalIDType(func(ctx context.Context, request *lark.CreateCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRNationalIDTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRNationalIDType() + + _, _, err := moduleCli.CreateCoreHRNationalIDType(ctx, &lark.CreateCoreHRNationalIDTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) + cli.Mock().MockCoreHRDeleteCoreHRNationalIDType(func(ctx context.Context, request *lark.DeleteCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRNationalIDTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRNationalIDType() + + _, _, err := moduleCli.DeleteCoreHRNationalIDType(ctx, &lark.DeleteCoreHRNationalIDTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) + cli.Mock().MockCoreHRUpdateCoreHRNationalIDType(func(ctx context.Context, request *lark.UpdateCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRNationalIDTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRNationalIDType() + + _, _, err := moduleCli.UpdateCoreHRNationalIDType(ctx, &lark.UpdateCoreHRNationalIDTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) + cli.Mock().MockCoreHRGetCoreHRNationalIDType(func(ctx context.Context, request *lark.GetCoreHRNationalIDTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRNationalIDTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRNationalIDType() + + _, _, err := moduleCli.GetCoreHRNationalIDType(ctx, &lark.GetCoreHRNationalIDTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + cli.Mock().MockCoreHRGetCoreHRNationalIDTypeList(func(ctx context.Context, request *lark.GetCoreHRNationalIDTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRNationalIDTypeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRNationalIDTypeList() + + _, _, err := moduleCli.GetCoreHRNationalIDTypeList(ctx, &lark.GetCoreHRNationalIDTypeListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + cli.Mock().MockCoreHRCreateCoreHRWorkingHoursType(func(ctx context.Context, request *lark.CreateCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRWorkingHoursTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRWorkingHoursType() + + _, _, err := moduleCli.CreateCoreHRWorkingHoursType(ctx, &lark.CreateCoreHRWorkingHoursTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) + cli.Mock().MockCoreHRDeleteCoreHRWorkingHoursType(func(ctx context.Context, request *lark.DeleteCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRWorkingHoursTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRWorkingHoursType() + + _, _, err := moduleCli.DeleteCoreHRWorkingHoursType(ctx, &lark.DeleteCoreHRWorkingHoursTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) + cli.Mock().MockCoreHRUpdateCoreHRWorkingHoursType(func(ctx context.Context, request *lark.UpdateCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRWorkingHoursTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRWorkingHoursType() + + _, _, err := moduleCli.UpdateCoreHRWorkingHoursType(ctx, &lark.UpdateCoreHRWorkingHoursTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + cli.Mock().MockCoreHRGetCoreHRWorkingHoursType(func(ctx context.Context, request *lark.GetCoreHRWorkingHoursTypeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRWorkingHoursTypeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRWorkingHoursType() + + _, _, err := moduleCli.GetCoreHRWorkingHoursType(ctx, &lark.GetCoreHRWorkingHoursTypeReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + cli.Mock().MockCoreHRGetCoreHRWorkingHoursTypeList(func(ctx context.Context, request *lark.GetCoreHRWorkingHoursTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRWorkingHoursTypeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRWorkingHoursTypeList() + + _, _, err := moduleCli.GetCoreHRWorkingHoursTypeList(ctx, &lark.GetCoreHRWorkingHoursTypeListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + cli.Mock().MockCoreHRSearchCoreHRCurrency(func(ctx context.Context, request *lark.SearchCoreHRCurrencyReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCurrencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRCurrency() + + _, _, err := moduleCli.SearchCoreHRCurrency(ctx, &lark.SearchCoreHRCurrencyReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + cli.Mock().MockCoreHRGetCoreHRCurrency(func(ctx context.Context, request *lark.GetCoreHRCurrencyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCurrencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCurrency() + + _, _, err := moduleCli.GetCoreHRCurrency(ctx, &lark.GetCoreHRCurrencyReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) + cli.Mock().MockCoreHRGetCoreHRCurrencyList(func(ctx context.Context, request *lark.GetCoreHRCurrencyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCurrencyListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCurrencyList() + + _, _, err := moduleCli.GetCoreHRCurrencyList(ctx, &lark.GetCoreHRCurrencyListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) + cli.Mock().MockCoreHRBatchGetCoreHREmployee(func(ctx context.Context, request *lark.BatchGetCoreHREmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHREmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHREmployee() + + _, _, err := moduleCli.BatchGetCoreHREmployee(ctx, &lark.BatchGetCoreHREmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHREmployee(func(ctx context.Context, request *lark.SearchCoreHREmployeeReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHREmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHREmployee() + + _, _, err := moduleCli.SearchCoreHREmployee(ctx, &lark.SearchCoreHREmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHREmployment(func(ctx context.Context, request *lark.CreateCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmploymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHREmployment() + + _, _, err := moduleCli.CreateCoreHREmployment(ctx, &lark.CreateCoreHREmploymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHREmployment(func(ctx context.Context, request *lark.DeleteCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmploymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHREmployment() + + _, _, err := moduleCli.DeleteCoreHREmployment(ctx, &lark.DeleteCoreHREmploymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHREmployment(func(ctx context.Context, request *lark.UpdateCoreHREmploymentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmploymentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHREmployment() + + _, _, err := moduleCli.UpdateCoreHREmployment(ctx, &lark.UpdateCoreHREmploymentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRPerson(func(ctx context.Context, request *lark.CreateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRPerson() + + _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRPerson(func(ctx context.Context, request *lark.UpdateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRPerson() + + _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRPerson(func(ctx context.Context, request *lark.DeleteCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRPerson() + + _, _, err := moduleCli.DeleteCoreHRPerson(ctx, &lark.DeleteCoreHRPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUploadCoreHRPersonFile(func(ctx context.Context, request *lark.UploadCoreHRPersonFileReq, options ...lark.MethodOptionFunc) (*lark.UploadCoreHRPersonFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUploadCoreHRPersonFile() + + _, _, err := moduleCli.UploadCoreHRPersonFile(ctx, &lark.UploadCoreHRPersonFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDownloadCoreHRPersonFile(func(ctx context.Context, request *lark.DownloadCoreHRPersonFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadCoreHRPersonFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDownloadCoreHRPersonFile() + + _, _, err := moduleCli.DownloadCoreHRPersonFile(ctx, &lark.DownloadCoreHRPersonFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRPerson(func(ctx context.Context, request *lark.GetCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRPerson() + + _, _, err := moduleCli.GetCoreHRPerson(ctx, &lark.GetCoreHRPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRJobData(func(ctx context.Context, request *lark.CreateCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRJobData() + + _, _, err := moduleCli.CreateCoreHRJobData(ctx, &lark.CreateCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRJobData(func(ctx context.Context, request *lark.DeleteCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRJobData() + + _, _, err := moduleCli.DeleteCoreHRJobData(ctx, &lark.DeleteCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRJobData(func(ctx context.Context, request *lark.UpdateCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRJobData() + + _, _, err := moduleCli.UpdateCoreHRJobData(ctx, &lark.UpdateCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobData(func(ctx context.Context, request *lark.GetCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobData() + + _, _, err := moduleCli.GetCoreHRJobData(ctx, &lark.GetCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCoreHRJobData(func(ctx context.Context, request *lark.QueryCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCoreHRJobData() + + _, _, err := moduleCli.QueryCoreHRJobData(ctx, &lark.QueryCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRJobData(func(ctx context.Context, request *lark.BatchGetCoreHRJobDataReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobData() + + _, _, err := moduleCli.BatchGetCoreHRJobData(ctx, &lark.BatchGetCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobDataList(func(ctx context.Context, request *lark.GetCoreHRJobDataListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobDataListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobDataList() + + _, _, err := moduleCli.GetCoreHRJobDataList(ctx, &lark.GetCoreHRJobDataListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRDepartmentParentList(func(ctx context.Context, request *lark.GetCoreHRDepartmentParentListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentParentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRDepartmentParentList() + + _, _, err := moduleCli.GetCoreHRDepartmentParentList(ctx, &lark.GetCoreHRDepartmentParentListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRDepartment(func(ctx context.Context, request *lark.SearchCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRDepartment() + + _, _, err := moduleCli.SearchCoreHRDepartment(ctx, &lark.SearchCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRDepartment(func(ctx context.Context, request *lark.CreateCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRDepartment() + + _, _, err := moduleCli.CreateCoreHRDepartment(ctx, &lark.CreateCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRDepartment(func(ctx context.Context, request *lark.DeleteCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRDepartment() + + _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRDepartment(func(ctx context.Context, request *lark.UpdateCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRDepartment() + + _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRDepartment(func(ctx context.Context, request *lark.GetCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRDepartment() + + _, _, err := moduleCli.GetCoreHRDepartment(ctx, &lark.GetCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRDepartment(func(ctx context.Context, request *lark.BatchGetCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRDepartment() + + _, _, err := moduleCli.BatchGetCoreHRDepartment(ctx, &lark.BatchGetCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRDepartmentList(func(ctx context.Context, request *lark.GetCoreHRDepartmentListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDepartmentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRDepartmentList() + + _, _, err := moduleCli.GetCoreHRDepartmentList(ctx, &lark.GetCoreHRDepartmentListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRLocation(func(ctx context.Context, request *lark.BatchGetCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRLocation() + + _, _, err := moduleCli.BatchGetCoreHRLocation(ctx, &lark.BatchGetCoreHRLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRLocation(func(ctx context.Context, request *lark.CreateCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRLocation() + + _, _, err := moduleCli.CreateCoreHRLocation(ctx, &lark.CreateCoreHRLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRLocation(func(ctx context.Context, request *lark.DeleteCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRLocation() + + _, _, err := moduleCli.DeleteCoreHRLocation(ctx, &lark.DeleteCoreHRLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRLocation(func(ctx context.Context, request *lark.GetCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRLocation() + + _, _, err := moduleCli.GetCoreHRLocation(ctx, &lark.GetCoreHRLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRLocationList(func(ctx context.Context, request *lark.GetCoreHRLocationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLocationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRLocationList() + + _, _, err := moduleCli.GetCoreHRLocationList(ctx, &lark.GetCoreHRLocationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompany(func(ctx context.Context, request *lark.GetCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompanyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompany() + + _, _, err := moduleCli.GetCoreHRCompany(ctx, &lark.GetCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompanyList(func(ctx context.Context, request *lark.GetCoreHRCompanyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompanyListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompanyList() + + _, _, err := moduleCli.GetCoreHRCompanyList(ctx, &lark.GetCoreHRCompanyListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRCompany(func(ctx context.Context, request *lark.BatchGetCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRCompanyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRCompany() + + _, _, err := moduleCli.BatchGetCoreHRCompany(ctx, &lark.BatchGetCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRCompany(func(ctx context.Context, request *lark.CreateCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCompanyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRCompany() + + _, _, err := moduleCli.CreateCoreHRCompany(ctx, &lark.CreateCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRCompany(func(ctx context.Context, request *lark.UpdateCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCompanyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRCompany() + + _, _, err := moduleCli.UpdateCoreHRCompany(ctx, &lark.UpdateCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRCompany(func(ctx context.Context, request *lark.DeleteCoreHRCompanyReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCompanyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRCompany() + + _, _, err := moduleCli.DeleteCoreHRCompany(ctx, &lark.DeleteCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRCostCenter(func(ctx context.Context, request *lark.CreateCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCostCenterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRCostCenter() + + _, _, err := moduleCli.CreateCoreHRCostCenter(ctx, &lark.CreateCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRActiveCoreHRCostCenter(func(ctx context.Context, request *lark.ActiveCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.ActiveCoreHRCostCenterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRActiveCoreHRCostCenter() + + _, _, err := moduleCli.ActiveCoreHRCostCenter(ctx, &lark.ActiveCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRCostCenter(func(ctx context.Context, request *lark.DeleteCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCostCenterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRCostCenter() + + _, _, err := moduleCli.DeleteCoreHRCostCenter(ctx, &lark.DeleteCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRCostCenter(func(ctx context.Context, request *lark.SearchCoreHRCostCenterReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRCostCenterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRCostCenter() + + _, _, err := moduleCli.SearchCoreHRCostCenter(ctx, &lark.SearchCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRCostCenterVersion(func(ctx context.Context, request *lark.CreateCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRCostCenterVersion() + + _, _, err := moduleCli.CreateCoreHRCostCenterVersion(ctx, &lark.CreateCoreHRCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRCostCenterVersion(func(ctx context.Context, request *lark.UpdateCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRCostCenterVersion() + + _, _, err := moduleCli.UpdateCoreHRCostCenterVersion(ctx, &lark.UpdateCoreHRCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRCostCenterVersion(func(ctx context.Context, request *lark.DeleteCoreHRCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRCostCenterVersion() + + _, _, err := moduleCli.DeleteCoreHRCostCenterVersion(ctx, &lark.DeleteCoreHRCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRJobLevel(func(ctx context.Context, request *lark.BatchGetCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobLevel() + + _, _, err := moduleCli.BatchGetCoreHRJobLevel(ctx, &lark.BatchGetCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRJobLevel(func(ctx context.Context, request *lark.CreateCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRJobLevel() + + _, _, err := moduleCli.CreateCoreHRJobLevel(ctx, &lark.CreateCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRJobLevel(func(ctx context.Context, request *lark.DeleteCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRJobLevel() + + _, _, err := moduleCli.DeleteCoreHRJobLevel(ctx, &lark.DeleteCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRJobLevel(func(ctx context.Context, request *lark.UpdateCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRJobLevel() + + _, _, err := moduleCli.UpdateCoreHRJobLevel(ctx, &lark.UpdateCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobLevel(func(ctx context.Context, request *lark.GetCoreHRJobLevelReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobLevel() + + _, _, err := moduleCli.GetCoreHRJobLevel(ctx, &lark.GetCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobLevelList(func(ctx context.Context, request *lark.GetCoreHRJobLevelListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobLevelListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobLevelList() + + _, _, err := moduleCli.GetCoreHRJobLevelList(ctx, &lark.GetCoreHRJobLevelListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHRJobFamily(func(ctx context.Context, request *lark.BatchGetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobFamilyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHRJobFamily() + + _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRJobFamily(func(ctx context.Context, request *lark.CreateCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobFamilyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRJobFamily() + + _, _, err := moduleCli.CreateCoreHRJobFamily(ctx, &lark.CreateCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRJobFamily(func(ctx context.Context, request *lark.DeleteCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobFamilyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRJobFamily() + + _, _, err := moduleCli.DeleteCoreHRJobFamily(ctx, &lark.DeleteCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRJobFamily(func(ctx context.Context, request *lark.UpdateCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobFamilyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRJobFamily() + + _, _, err := moduleCli.UpdateCoreHRJobFamily(ctx, &lark.UpdateCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobFamily(func(ctx context.Context, request *lark.GetCoreHRJobFamilyReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobFamilyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobFamily() + + _, _, err := moduleCli.GetCoreHRJobFamily(ctx, &lark.GetCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobFamilyList(func(ctx context.Context, request *lark.GetCoreHRJobFamilyListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobFamilyListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobFamilyList() + + _, _, err := moduleCli.GetCoreHRJobFamilyList(ctx, &lark.GetCoreHRJobFamilyListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRJob(func(ctx context.Context, request *lark.CreateCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRJob() + + _, _, err := moduleCli.CreateCoreHRJob(ctx, &lark.CreateCoreHRJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRJob(func(ctx context.Context, request *lark.DeleteCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRJob() + + _, _, err := moduleCli.DeleteCoreHRJob(ctx, &lark.DeleteCoreHRJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRJob(func(ctx context.Context, request *lark.UpdateCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRJob() + + _, _, err := moduleCli.UpdateCoreHRJob(ctx, &lark.UpdateCoreHRJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobV2(func(ctx context.Context, request *lark.GetCoreHRJobV2Req, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobV2() + + _, _, err := moduleCli.GetCoreHRJobV2(ctx, &lark.GetCoreHRJobV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobListV2(func(ctx context.Context, request *lark.GetCoreHRJobListV2Req, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobListV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobListV2() + + _, _, err := moduleCli.GetCoreHRJobListV2(ctx, &lark.GetCoreHRJobListV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJob(func(ctx context.Context, request *lark.GetCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJob() + + _, _, err := moduleCli.GetCoreHRJob(ctx, &lark.GetCoreHRJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRJobList(func(ctx context.Context, request *lark.GetCoreHRJobListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRJobListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRJobList() + + _, _, err := moduleCli.GetCoreHRJobList(ctx, &lark.GetCoreHRJobListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRPreHire(func(ctx context.Context, request *lark.CreateCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRPreHire() + + _, _, err := moduleCli.CreateCoreHRPreHire(ctx, &lark.CreateCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRPreHire(func(ctx context.Context, request *lark.DeleteCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRPreHire() + + _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRPreHire(func(ctx context.Context, request *lark.UpdateCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRPreHire() + + _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRPreHire(func(ctx context.Context, request *lark.GetCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRPreHire() + + _, _, err := moduleCli.GetCoreHRPreHire(ctx, &lark.GetCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRPreHireList(func(ctx context.Context, request *lark.GetCoreHRPreHireListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRPreHireListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRPreHireList() + + _, _, err := moduleCli.GetCoreHRPreHireList(ctx, &lark.GetCoreHRPreHireListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRContract(func(ctx context.Context, request *lark.SearchCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRContractResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRContract() + + _, _, err := moduleCli.SearchCoreHRContract(ctx, &lark.SearchCoreHRContractReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRContract(func(ctx context.Context, request *lark.CreateCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRContractResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRContract() + + _, _, err := moduleCli.CreateCoreHRContract(ctx, &lark.CreateCoreHRContractReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRContract(func(ctx context.Context, request *lark.DeleteCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRContractResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRContract() + + _, _, err := moduleCli.DeleteCoreHRContract(ctx, &lark.DeleteCoreHRContractReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRContract(func(ctx context.Context, request *lark.UpdateCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRContractResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRContract() + + _, _, err := moduleCli.UpdateCoreHRContract(ctx, &lark.UpdateCoreHRContractReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRContract(func(ctx context.Context, request *lark.GetCoreHRContractReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRContractResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRContract() + + _, _, err := moduleCli.GetCoreHRContract(ctx, &lark.GetCoreHRContractReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRContractList(func(ctx context.Context, request *lark.GetCoreHRContractListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRContractListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRContractList() + + _, _, err := moduleCli.GetCoreHRContractList(ctx, &lark.GetCoreHRContractListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRProbation(func(ctx context.Context, request *lark.SearchCoreHRProbationReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRProbationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRProbation() + + _, _, err := moduleCli.SearchCoreHRProbation(ctx, &lark.SearchCoreHRProbationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHREnableDisableCoreHRProbationAssessment(func(ctx context.Context, request *lark.EnableDisableCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.EnableDisableCoreHRProbationAssessmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHREnableDisableCoreHRProbationAssessment() + + _, _, err := moduleCli.EnableDisableCoreHRProbationAssessment(ctx, &lark.EnableDisableCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRProbationAssessment(func(ctx context.Context, request *lark.CreateCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRProbationAssessmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRProbationAssessment() + + _, _, err := moduleCli.CreateCoreHRProbationAssessment(ctx, &lark.CreateCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCoreHRProbationAssessment(func(ctx context.Context, request *lark.UpdateCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProbationAssessmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCoreHRProbationAssessment() + + _, _, err := moduleCli.UpdateCoreHRProbationAssessment(ctx, &lark.UpdateCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRProbationAssessment(func(ctx context.Context, request *lark.DeleteCoreHRProbationAssessmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRProbationAssessmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRProbationAssessment() + + _, _, err := moduleCli.DeleteCoreHRProbationAssessment(ctx, &lark.DeleteCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRTransferReasonList(func(ctx context.Context, request *lark.GetCoreHRTransferReasonListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRTransferReasonListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRTransferReasonList() + + _, _, err := moduleCli.GetCoreHRTransferReasonList(ctx, &lark.GetCoreHRTransferReasonListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRTransferTypeList(func(ctx context.Context, request *lark.GetCoreHRTransferTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRTransferTypeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRTransferTypeList() + + _, _, err := moduleCli.GetCoreHRTransferTypeList(ctx, &lark.GetCoreHRTransferTypeListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRJobChange(func(ctx context.Context, request *lark.CreateCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRJobChange() + + _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRJobChange(func(ctx context.Context, request *lark.SearchCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRJobChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRJobChange() + + _, _, err := moduleCli.SearchCoreHRJobChange(ctx, &lark.SearchCoreHRJobChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHROffboardingList(func(ctx context.Context, request *lark.GetCoreHROffboardingListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHROffboardingListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHROffboardingList() + + _, _, err := moduleCli.GetCoreHROffboardingList(ctx, &lark.GetCoreHROffboardingListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHROffboarding(func(ctx context.Context, request *lark.CreateCoreHROffboardingReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHROffboardingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHROffboarding() + + _, _, err := moduleCli.CreateCoreHROffboarding(ctx, &lark.CreateCoreHROffboardingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHROffboarding(func(ctx context.Context, request *lark.SearchCoreHROffboardingReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHROffboardingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHROffboarding() + + _, _, err := moduleCli.SearchCoreHROffboarding(ctx, &lark.SearchCoreHROffboardingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCoreHRLeaveGrantingRecord(func(ctx context.Context, request *lark.CreateCoreHRLeaveGrantingRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLeaveGrantingRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCoreHRLeaveGrantingRecord() + + _, _, err := moduleCli.CreateCoreHRLeaveGrantingRecord(ctx, &lark.CreateCoreHRLeaveGrantingRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCoreHRLeaveGrantingRecord(func(ctx context.Context, request *lark.DeleteCoreHRLeaveGrantingRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRLeaveGrantingRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCoreHRLeaveGrantingRecord() + + _, _, err := moduleCli.DeleteCoreHRLeaveGrantingRecord(ctx, &lark.DeleteCoreHRLeaveGrantingRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRLeaveTypeList(func(ctx context.Context, request *lark.GetCoreHRLeaveTypeListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveTypeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRLeaveTypeList() + + _, _, err := moduleCli.GetCoreHRLeaveTypeList(ctx, &lark.GetCoreHRLeaveTypeListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRLeaveBalanceList(func(ctx context.Context, request *lark.GetCoreHRLeaveBalanceListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveBalanceListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRLeaveBalanceList() + + _, _, err := moduleCli.GetCoreHRLeaveBalanceList(ctx, &lark.GetCoreHRLeaveBalanceListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRLeaveRequestHistoryList(func(ctx context.Context, request *lark.GetCoreHRLeaveRequestHistoryListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveRequestHistoryListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRLeaveRequestHistoryList() + + _, _, err := moduleCli.GetCoreHRLeaveRequestHistoryList(ctx, &lark.GetCoreHRLeaveRequestHistoryListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCoreHrbpByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHrbpByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHrbpByEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCoreHrbpByEmployee() + + _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHrbpByDepartment(func(ctx context.Context, request *lark.GetCoreHrbpByDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpByDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHrbpByDepartment() + + _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHrbpList(func(ctx context.Context, request *lark.GetCoreHrbpListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHrbpList() + + _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRSecurityGroupBp(func(ctx context.Context, request *lark.GetCoreHRSecurityGroupBpReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSecurityGroupBpResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRSecurityGroupBp() + + _, _, err := moduleCli.GetCoreHRSecurityGroupBp(ctx, &lark.GetCoreHRSecurityGroupBpReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRAssignedUser(func(ctx context.Context, request *lark.SearchCoreHRAssignedUserReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRAssignedUserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRAssignedUser() + + _, _, err := moduleCli.SearchCoreHRAssignedUser(ctx, &lark.SearchCoreHRAssignedUserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRAuthorization(func(ctx context.Context, request *lark.GetCoreHRAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorization() + + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRAuthorizationList(func(ctx context.Context, request *lark.GetCoreHRAuthorizationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorizationList() + + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRSecurityGroupList(func(ctx context.Context, request *lark.GetCoreHRSecurityGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRSecurityGroupListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRSecurityGroupList() + + _, _, err := moduleCli.GetCoreHRSecurityGroupList(ctx, &lark.GetCoreHRSecurityGroupListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRProcessList(func(ctx context.Context, request *lark.GetCoreHRProcessListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRProcessList() + + _, _, err := moduleCli.GetCoreHRProcessList(ctx, &lark.GetCoreHRProcessListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRProcess(func(ctx context.Context, request *lark.GetCoreHRProcessReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRProcess() + + _, _, err := moduleCli.GetCoreHRProcess(ctx, &lark.GetCoreHRProcessReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRProcessFormVariableData(func(ctx context.Context, request *lark.GetCoreHRProcessFormVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessFormVariableDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRProcessFormVariableData() + + _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRMatchCoreHRCompensationStandard(func(ctx context.Context, request *lark.MatchCoreHRCompensationStandardReq, options ...lark.MethodOptionFunc) (*lark.MatchCoreHRCompensationStandardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRMatchCoreHRCompensationStandard() + + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCoreHRCompensationArchive(func(ctx context.Context, request *lark.QueryCoreHRCompensationArchiveReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCompensationArchiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCoreHRCompensationArchive() + + _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompensationChangeReasonList(func(ctx context.Context, request *lark.GetCoreHRCompensationChangeReasonListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationChangeReasonListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationChangeReasonList() + + _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompensationIndicatorList(func(ctx context.Context, request *lark.GetCoreHRCompensationIndicatorListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationIndicatorListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationIndicatorList() + + _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompensationItemList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemList() + + _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompensationItemCategoryList(func(ctx context.Context, request *lark.GetCoreHRCompensationItemCategoryListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationItemCategoryListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationItemCategoryList() + + _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRCompensationPlanList(func(ctx context.Context, request *lark.GetCoreHRCompensationPlanListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRCompensationPlanListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRCompensationPlanList() + + _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCorehrApprovalGroups(func(ctx context.Context, request *lark.GetCorehrApprovalGroupsReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrApprovalGroupsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCorehrApprovalGroups() + + _, _, err := moduleCli.GetCorehrApprovalGroups(ctx, &lark.GetCorehrApprovalGroupsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs() + + _, _, err := moduleCli.QueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsJobChangeListByIDsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs() + + _, _, err := moduleCli.QueryCorehrApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs() + + _, _, err := moduleCli.QueryCorehrApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrApprover(func(ctx context.Context, request *lark.ListCorehrApproverReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrApproverResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrApprover() + + _, _, err := moduleCli.ListCorehrApprover(ctx, &lark.ListCorehrApproverReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCorehrBasicInfoLanguage(func(ctx context.Context, request *lark.SearchCorehrBasicInfoLanguageReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrBasicInfoLanguageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCorehrBasicInfoLanguage() + + _, _, err := moduleCli.SearchCorehrBasicInfoLanguage(ctx, &lark.SearchCorehrBasicInfoLanguageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCorehrBasicInfoTimeZone(func(ctx context.Context, request *lark.SearchCorehrBasicInfoTimeZoneReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrBasicInfoTimeZoneResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCorehrBasicInfoTimeZone() + + _, _, err := moduleCli.SearchCorehrBasicInfoTimeZone(ctx, &lark.SearchCorehrBasicInfoTimeZoneReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCompanyActive(func(ctx context.Context, request *lark.CreateCorehrCompanyActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCompanyActiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCompanyActive() + + _, _, err := moduleCli.CreateCorehrCompanyActive(ctx, &lark.CreateCorehrCompanyActiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrCompanyMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrCompanyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCompanyMultiTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrCompanyMultiTimeline() + + _, _, err := moduleCli.QueryCorehrCompanyMultiTimeline(ctx, &lark.QueryCorehrCompanyMultiTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrCompanyRecentChange(func(ctx context.Context, request *lark.QueryCorehrCompanyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCompanyRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrCompanyRecentChange() + + _, _, err := moduleCli.QueryCorehrCompanyRecentChange(ctx, &lark.QueryCorehrCompanyRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchQueryCorehrCostAllocation(func(ctx context.Context, request *lark.BatchQueryCorehrCostAllocationReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrCostAllocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchQueryCorehrCostAllocation() + + _, _, err := moduleCli.BatchQueryCorehrCostAllocation(ctx, &lark.BatchQueryCorehrCostAllocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCostAllocationVersion(func(ctx context.Context, request *lark.CreateCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCostAllocationVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCostAllocationVersion() + + _, _, err := moduleCli.CreateCorehrCostAllocationVersion(ctx, &lark.CreateCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRRemoveCorehrCostAllocationVersion(func(ctx context.Context, request *lark.RemoveCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrCostAllocationVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRRemoveCorehrCostAllocationVersion() + + _, _, err := moduleCli.RemoveCorehrCostAllocationVersion(ctx, &lark.RemoveCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrCostAllocationVersion(func(ctx context.Context, request *lark.UpdateCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCostAllocationVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrCostAllocationVersion() + + _, _, err := moduleCli.UpdateCorehrCostAllocationVersion(ctx, &lark.UpdateCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrCostCenterRecentChange(func(ctx context.Context, request *lark.QueryCorehrCostCenterRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCostCenterRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrCostCenterRecentChange() + + _, _, err := moduleCli.QueryCorehrCostCenterRecentChange(ctx, &lark.QueryCorehrCostCenterRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCustomOrgActive(func(ctx context.Context, request *lark.CreateCorehrCustomOrgActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCustomOrgActiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCustomOrgActive() + + _, _, err := moduleCli.CreateCorehrCustomOrgActive(ctx, &lark.CreateCorehrCustomOrgActiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCustomOrg(func(ctx context.Context, request *lark.CreateCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCustomOrgResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCustomOrg() + + _, _, err := moduleCli.CreateCorehrCustomOrg(ctx, &lark.CreateCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrCustomOrg(func(ctx context.Context, request *lark.DeleteCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrCustomOrgResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrCustomOrg() + + _, _, err := moduleCli.DeleteCorehrCustomOrg(ctx, &lark.DeleteCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrCustomOrg(func(ctx context.Context, request *lark.UpdateCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCustomOrgResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrCustomOrg() + + _, _, err := moduleCli.UpdateCorehrCustomOrg(ctx, &lark.UpdateCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrCustomOrg(func(ctx context.Context, request *lark.QueryCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCustomOrgResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrCustomOrg() + + _, _, err := moduleCli.QueryCorehrCustomOrg(ctx, &lark.QueryCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrCustomOrgRecentChange(func(ctx context.Context, request *lark.QueryCorehrCustomOrgRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCustomOrgRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrCustomOrgRecentChange() + + _, _, err := moduleCli.QueryCorehrCustomOrgRecentChange(ctx, &lark.QueryCorehrCustomOrgRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrCustomOrgRule(func(ctx context.Context, request *lark.UpdateCorehrCustomOrgRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCustomOrgRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrCustomOrgRule() + + _, _, err := moduleCli.UpdateCorehrCustomOrgRule(ctx, &lark.UpdateCorehrCustomOrgRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchQueryCorehrDefaultCostCenter(func(ctx context.Context, request *lark.BatchQueryCorehrDefaultCostCenterReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrDefaultCostCenterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchQueryCorehrDefaultCostCenter() + + _, _, err := moduleCli.BatchQueryCorehrDefaultCostCenter(ctx, &lark.BatchQueryCorehrDefaultCostCenterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.CreateCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrDefaultCostCenterVersion() + + _, _, err := moduleCli.CreateCorehrDefaultCostCenterVersion(ctx, &lark.CreateCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRRemoveCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.RemoveCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRRemoveCorehrDefaultCostCenterVersion() + + _, _, err := moduleCli.RemoveCorehrDefaultCostCenterVersion(ctx, &lark.RemoveCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.UpdateCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrDefaultCostCenterVersion() + + _, _, err := moduleCli.UpdateCorehrDefaultCostCenterVersion(ctx, &lark.UpdateCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrDepartment(func(ctx context.Context, request *lark.DeleteCorehrDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrDepartment() + + _, _, err := moduleCli.DeleteCorehrDepartment(ctx, &lark.DeleteCorehrDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrDepartment(func(ctx context.Context, request *lark.UpdateCorehrDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrDepartmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrDepartment() + + _, _, err := moduleCli.UpdateCorehrDepartment(ctx, &lark.UpdateCorehrDepartmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.BatchQueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRDepartmentTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRDepartmentTimeline() + + _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrDepartmentOperationLogs(func(ctx context.Context, request *lark.QueryCorehrDepartmentOperationLogsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrDepartmentOperationLogsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrDepartmentOperationLogs() + + _, _, err := moduleCli.QueryCorehrDepartmentOperationLogs(ctx, &lark.QueryCorehrDepartmentOperationLogsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrDepartmentRecentChange(func(ctx context.Context, request *lark.QueryCorehrDepartmentRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrDepartmentRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrDepartmentRecentChange() + + _, _, err := moduleCli.QueryCorehrDepartmentRecentChange(ctx, &lark.QueryCorehrDepartmentRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCoreHRDepartmentTimeline(func(ctx context.Context, request *lark.QueryCoreHRDepartmentTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRDepartmentTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCoreHRDepartmentTimeline() + + _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrDepartmentTree(func(ctx context.Context, request *lark.CreateCorehrDepartmentTreeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrDepartmentTreeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrDepartmentTree() + + _, _, err := moduleCli.CreateCorehrDepartmentTree(ctx, &lark.CreateCorehrDepartmentTreeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCorehrDraft(func(ctx context.Context, request *lark.GetCorehrDraftReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrDraftResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCorehrDraft() + + _, _, err := moduleCli.GetCorehrDraft(ctx, &lark.GetCorehrDraftReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrEmployee(func(ctx context.Context, request *lark.CreateCorehrEmployeeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrEmployee() + + _, _, err := moduleCli.CreateCorehrEmployee(ctx, &lark.CreateCorehrEmployeeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchQueryCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.BatchQueryCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob() + + _, _, err := moduleCli.BatchQueryCorehrEmployeesAdditionalJob(ctx, &lark.BatchQueryCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.CreateCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrEmployeesAdditionalJob() + + _, _, err := moduleCli.CreateCorehrEmployeesAdditionalJob(ctx, &lark.CreateCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.DeleteCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrEmployeesAdditionalJob() + + _, _, err := moduleCli.DeleteCorehrEmployeesAdditionalJob(ctx, &lark.DeleteCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.UpdateCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrEmployeesAdditionalJob() + + _, _, err := moduleCli.UpdateCorehrEmployeesAdditionalJob(ctx, &lark.UpdateCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.CreateCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrEmployeesInternationalAssignment() + + _, _, err := moduleCli.CreateCorehrEmployeesInternationalAssignment(ctx, &lark.CreateCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.DeleteCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment() + + _, _, err := moduleCli.DeleteCorehrEmployeesInternationalAssignment(ctx, &lark.DeleteCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.ListCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrEmployeesInternationalAssignment() + + _, _, err := moduleCli.ListCorehrEmployeesInternationalAssignment(ctx, &lark.ListCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.UpdateCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment() + + _, _, err := moduleCli.UpdateCorehrEmployeesInternationalAssignment(ctx, &lark.UpdateCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCorehrEnum(func(ctx context.Context, request *lark.SearchCorehrEnumReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrEnumResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCorehrEnum() + + _, _, err := moduleCli.SearchCorehrEnum(ctx, &lark.SearchCorehrEnumReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCorehrJob(func(ctx context.Context, request *lark.BatchGetCorehrJobReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCorehrJobResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCorehrJob() + + _, _, err := moduleCli.BatchGetCorehrJob(ctx, &lark.BatchGetCorehrJobReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrJobMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobMultiTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobMultiTimeline() + + _, _, err := moduleCli.QueryCorehrJobMultiTimeline(ctx, &lark.QueryCorehrJobMultiTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobRecentChange() + + _, _, err := moduleCli.QueryCorehrJobRecentChange(ctx, &lark.QueryCorehrJobRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrJobChange(func(ctx context.Context, request *lark.CreateCorehrJobChangeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrJobChange() + + _, _, err := moduleCli.CreateCorehrJobChange(ctx, &lark.CreateCorehrJobChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrJobChangeRevoke(func(ctx context.Context, request *lark.CreateCorehrJobChangeRevokeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobChangeRevokeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrJobChangeRevoke() + + _, _, err := moduleCli.CreateCorehrJobChangeRevoke(ctx, &lark.CreateCorehrJobChangeRevokeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobFamilyMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrJobFamilyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobFamilyMultiTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobFamilyMultiTimeline() + + _, _, err := moduleCli.QueryCorehrJobFamilyMultiTimeline(ctx, &lark.QueryCorehrJobFamilyMultiTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobFamilyRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobFamilyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobFamilyRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobFamilyRecentChange() + + _, _, err := moduleCli.QueryCorehrJobFamilyRecentChange(ctx, &lark.QueryCorehrJobFamilyRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrJobGrade(func(ctx context.Context, request *lark.CreateCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobGradeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrJobGrade() + + _, _, err := moduleCli.CreateCorehrJobGrade(ctx, &lark.CreateCorehrJobGradeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrJobGrade(func(ctx context.Context, request *lark.DeleteCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrJobGradeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrJobGrade() + + _, _, err := moduleCli.DeleteCorehrJobGrade(ctx, &lark.DeleteCorehrJobGradeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrJobGrade(func(ctx context.Context, request *lark.UpdateCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrJobGradeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrJobGrade() + + _, _, err := moduleCli.UpdateCorehrJobGrade(ctx, &lark.UpdateCorehrJobGradeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCoreHRJobGrade(func(ctx context.Context, request *lark.QueryCoreHRJobGradeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobGradeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCoreHRJobGrade() + + _, _, err := moduleCli.QueryCoreHRJobGrade(ctx, &lark.QueryCoreHRJobGradeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobGradeRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobGradeRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobGradeRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobGradeRecentChange() + + _, _, err := moduleCli.QueryCorehrJobGradeRecentChange(ctx, &lark.QueryCorehrJobGradeRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrJobLevelRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobLevelRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobLevelRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrJobLevelRecentChange() + + _, _, err := moduleCli.QueryCorehrJobLevelRecentChange(ctx, &lark.QueryCorehrJobLevelRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrLocationAddress(func(ctx context.Context, request *lark.CreateCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLocationAddressResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrLocationAddress() + + _, _, err := moduleCli.CreateCorehrLocationAddress(ctx, &lark.CreateCorehrLocationAddressReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrLocationAddress(func(ctx context.Context, request *lark.DeleteCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrLocationAddressResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrLocationAddress() + + _, _, err := moduleCli.DeleteCorehrLocationAddress(ctx, &lark.DeleteCorehrLocationAddressReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrLocationAddress(func(ctx context.Context, request *lark.UpdateCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrLocationAddressResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrLocationAddress() + + _, _, err := moduleCli.UpdateCorehrLocationAddress(ctx, &lark.UpdateCorehrLocationAddressReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrLocationActive(func(ctx context.Context, request *lark.CreateCorehrLocationActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLocationActiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrLocationActive() + + _, _, err := moduleCli.CreateCorehrLocationActive(ctx, &lark.CreateCorehrLocationActiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrLocation(func(ctx context.Context, request *lark.UpdateCorehrLocationReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrLocationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrLocation() + + _, _, err := moduleCli.UpdateCorehrLocation(ctx, &lark.UpdateCorehrLocationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrLocationMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrLocationMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrLocationMultiTimelineResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrLocationMultiTimeline() + + _, _, err := moduleCli.QueryCorehrLocationMultiTimeline(ctx, &lark.QueryCorehrLocationMultiTimelineReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrLocationRecentChange(func(ctx context.Context, request *lark.QueryCorehrLocationRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrLocationRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrLocationRecentChange() + + _, _, err := moduleCli.QueryCorehrLocationRecentChange(ctx, &lark.QueryCorehrLocationRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrOffboardingEdit(func(ctx context.Context, request *lark.CreateCorehrOffboardingEditReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingEditResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingEdit() + + _, _, err := moduleCli.CreateCorehrOffboardingEdit(ctx, &lark.CreateCorehrOffboardingEditReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrOffboardingRevoke(func(ctx context.Context, request *lark.CreateCorehrOffboardingRevokeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingRevokeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingRevoke() + + _, _, err := moduleCli.CreateCorehrOffboardingRevoke(ctx, &lark.CreateCorehrOffboardingRevokeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrOffboardingSubmitV2(func(ctx context.Context, request *lark.CreateCorehrOffboardingSubmitV2Req, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingSubmitV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingSubmitV2() + + _, _, err := moduleCli.CreateCorehrOffboardingSubmitV2(ctx, &lark.CreateCorehrOffboardingSubmitV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPathwayActive(func(ctx context.Context, request *lark.CreateCorehrPathwayActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPathwayActiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPathwayActive() + + _, _, err := moduleCli.CreateCorehrPathwayActive(ctx, &lark.CreateCorehrPathwayActiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchGetCorehrPathway(func(ctx context.Context, request *lark.BatchGetCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCorehrPathwayResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchGetCorehrPathway() + + _, _, err := moduleCli.BatchGetCorehrPathway(ctx, &lark.BatchGetCorehrPathwayReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPathway(func(ctx context.Context, request *lark.CreateCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPathwayResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPathway() + + _, _, err := moduleCli.CreateCorehrPathway(ctx, &lark.CreateCorehrPathwayReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrPathway(func(ctx context.Context, request *lark.DeleteCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrPathwayResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrPathway() + + _, _, err := moduleCli.DeleteCorehrPathway(ctx, &lark.DeleteCorehrPathwayReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrPathway(func(ctx context.Context, request *lark.UpdateCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPathwayResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrPathway() + + _, _, err := moduleCli.UpdateCorehrPathway(ctx, &lark.UpdateCorehrPathwayReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPositionActive(func(ctx context.Context, request *lark.CreateCorehrPositionActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionActiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPositionActive() + + _, _, err := moduleCli.CreateCorehrPositionActive(ctx, &lark.CreateCorehrPositionActiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPosition(func(ctx context.Context, request *lark.CreateCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPosition() + + _, _, err := moduleCli.CreateCorehrPosition(ctx, &lark.CreateCorehrPositionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPositionDelPosition(func(ctx context.Context, request *lark.CreateCorehrPositionDelPositionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionDelPositionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPositionDelPosition() + + _, _, err := moduleCli.CreateCorehrPositionDelPosition(ctx, &lark.CreateCorehrPositionDelPositionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrPosition(func(ctx context.Context, request *lark.UpdateCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPositionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrPosition() + + _, _, err := moduleCli.UpdateCorehrPosition(ctx, &lark.UpdateCorehrPositionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrPosition(func(ctx context.Context, request *lark.QueryCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPositionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrPosition() + + _, _, err := moduleCli.QueryCorehrPosition(ctx, &lark.QueryCorehrPositionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrPositionRecentChange(func(ctx context.Context, request *lark.QueryCorehrPositionRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPositionRecentChangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrPositionRecentChange() + + _, _, err := moduleCli.QueryCorehrPositionRecentChange(ctx, &lark.QueryCorehrPositionRecentChangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPreHireComplete(func(ctx context.Context, request *lark.CreateCorehrPreHireCompleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireCompleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPreHireComplete() + + _, _, err := moduleCli.CreateCorehrPreHireComplete(ctx, &lark.CreateCorehrPreHireCompleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDeleteCorehrPreHire(func(ctx context.Context, request *lark.DeleteCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDeleteCorehrPreHire() + + _, _, err := moduleCli.DeleteCorehrPreHire(ctx, &lark.DeleteCorehrPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrPreHire(func(ctx context.Context, request *lark.UpdateCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrPreHire() + + _, _, err := moduleCli.UpdateCorehrPreHire(ctx, &lark.UpdateCorehrPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrPreHire(func(ctx context.Context, request *lark.QueryCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrPreHire() + + _, _, err := moduleCli.QueryCorehrPreHire(ctx, &lark.QueryCorehrPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPreHireRestoreFlowInstance(func(ctx context.Context, request *lark.CreateCorehrPreHireRestoreFlowInstanceReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireRestoreFlowInstanceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance() + + _, _, err := moduleCli.CreateCorehrPreHireRestoreFlowInstance(ctx, &lark.CreateCorehrPreHireRestoreFlowInstanceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCoreHRPreHire(func(ctx context.Context, request *lark.SearchCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRPreHireResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCoreHRPreHire() + + _, _, err := moduleCli.SearchCoreHRPreHire(ctx, &lark.SearchCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPreHireTransformOnboardingTask(func(ctx context.Context, request *lark.CreateCorehrPreHireTransformOnboardingTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireTransformOnboardingTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask() + + _, _, err := moduleCli.CreateCorehrPreHireTransformOnboardingTask(ctx, &lark.CreateCorehrPreHireTransformOnboardingTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPreHireTransitTask(func(ctx context.Context, request *lark.CreateCorehrPreHireTransitTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireTransitTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPreHireTransitTask() + + _, _, err := moduleCli.CreateCorehrPreHireTransitTask(ctx, &lark.CreateCorehrPreHireTransitTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPreHireWithdrawOnboarding(func(ctx context.Context, request *lark.CreateCorehrPreHireWithdrawOnboardingReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireWithdrawOnboardingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding() + + _, _, err := moduleCli.CreateCorehrPreHireWithdrawOnboarding(ctx, &lark.CreateCorehrPreHireWithdrawOnboardingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrProbationSubmit(func(ctx context.Context, request *lark.CreateCorehrProbationSubmitReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProbationSubmitResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrProbationSubmit() + + _, _, err := moduleCli.CreateCorehrProbationSubmit(ctx, &lark.CreateCorehrProbationSubmitReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrProbationWithdraw(func(ctx context.Context, request *lark.CreateCorehrProbationWithdrawReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProbationWithdrawResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrProbationWithdraw() + + _, _, err := moduleCli.CreateCorehrProbationWithdraw(ctx, &lark.CreateCorehrProbationWithdrawReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrProcessApprover(func(ctx context.Context, request *lark.UpdateCorehrProcessApproverReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessApproverResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrProcessApprover() + + _, _, err := moduleCli.UpdateCorehrProcessApprover(ctx, &lark.UpdateCorehrProcessApproverReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrProcessExtra(func(ctx context.Context, request *lark.UpdateCorehrProcessExtraReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessExtraResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrProcessExtra() + + _, _, err := moduleCli.UpdateCorehrProcessExtra(ctx, &lark.UpdateCorehrProcessExtraReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCorehrProcessFormVariableData(func(ctx context.Context, request *lark.GetCorehrProcessFormVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrProcessFormVariableDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCorehrProcessFormVariableData() + + _, _, err := moduleCli.GetCorehrProcessFormVariableData(ctx, &lark.GetCorehrProcessFormVariableDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrProcessQueryFlowDataTemplate(func(ctx context.Context, request *lark.CreateCorehrProcessQueryFlowDataTemplateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProcessQueryFlowDataTemplateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate() + + _, _, err := moduleCli.CreateCorehrProcessQueryFlowDataTemplate(ctx, &lark.CreateCorehrProcessQueryFlowDataTemplateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrProcessTransfer(func(ctx context.Context, request *lark.UpdateCorehrProcessTransferReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessTransferResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrProcessTransfer() + + _, _, err := moduleCli.UpdateCorehrProcessTransfer(ctx, &lark.UpdateCorehrProcessTransferReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCorehrProcessFlowVariableData(func(ctx context.Context, request *lark.GetCorehrProcessFlowVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrProcessFlowVariableDataResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCorehrProcessFlowVariableData() + + _, _, err := moduleCli.GetCorehrProcessFlowVariableData(ctx, &lark.GetCorehrProcessFlowVariableDataReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrProcessRevoke(func(ctx context.Context, request *lark.UpdateCorehrProcessRevokeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessRevokeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrProcessRevoke() + + _, _, err := moduleCli.UpdateCorehrProcessRevoke(ctx, &lark.UpdateCorehrProcessRevokeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrProcessStart(func(ctx context.Context, request *lark.CreateCorehrProcessStartReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProcessStartResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrProcessStart() + + _, _, err := moduleCli.CreateCorehrProcessStart(ctx, &lark.CreateCorehrProcessStartReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrProcessWithdraw(func(ctx context.Context, request *lark.UpdateCorehrProcessWithdrawReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessWithdrawResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrProcessWithdraw() + + _, _, err := moduleCli.UpdateCorehrProcessWithdraw(ctx, &lark.UpdateCorehrProcessWithdrawReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrReportDetailRowBatchdelete(func(ctx context.Context, request *lark.CreateCorehrReportDetailRowBatchdeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrReportDetailRowBatchdeleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrReportDetailRowBatchdelete() + + _, _, err := moduleCli.CreateCorehrReportDetailRowBatchdelete(ctx, &lark.CreateCorehrReportDetailRowBatchdeleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrReportDetailRowBatchsave(func(ctx context.Context, request *lark.CreateCorehrReportDetailRowBatchsaveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrReportDetailRowBatchsaveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrReportDetailRowBatchsave() + + _, _, err := moduleCli.CreateCorehrReportDetailRowBatchsave(ctx, &lark.CreateCorehrReportDetailRowBatchsaveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRDownloadCorehrSignatureFile(func(ctx context.Context, request *lark.DownloadCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadCorehrSignatureFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRDownloadCorehrSignatureFile() + + _, _, err := moduleCli.DownloadCorehrSignatureFile(ctx, &lark.DownloadCorehrSignatureFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrSignatureFile(func(ctx context.Context, request *lark.ListCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrSignatureFile() + + _, _, err := moduleCli.ListCorehrSignatureFile(ctx, &lark.ListCorehrSignatureFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrSignatureFileByBizID(func(ctx context.Context, request *lark.ListCorehrSignatureFileByBizIDReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureFileByBizIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrSignatureFileByBizID() + + _, _, err := moduleCli.ListCorehrSignatureFileByBizID(ctx, &lark.ListCorehrSignatureFileByBizIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRQueryCorehrSignatureFile(func(ctx context.Context, request *lark.QueryCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrSignatureFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRQueryCorehrSignatureFile() + + _, _, err := moduleCli.QueryCorehrSignatureFile(ctx, &lark.QueryCorehrSignatureFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrSignatureFileTerminate(func(ctx context.Context, request *lark.CreateCorehrSignatureFileTerminateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrSignatureFileTerminateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrSignatureFileTerminate() + + _, _, err := moduleCli.CreateCorehrSignatureFileTerminate(ctx, &lark.CreateCorehrSignatureFileTerminateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrSignatureNodeByFileID(func(ctx context.Context, request *lark.ListCorehrSignatureNodeByFileIDReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureNodeByFileIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrSignatureNodeByFileID() + + _, _, err := moduleCli.ListCorehrSignatureNodeByFileID(ctx, &lark.ListCorehrSignatureNodeByFileIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRSearchCorehrSignatureTemplate(func(ctx context.Context, request *lark.SearchCorehrSignatureTemplateReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrSignatureTemplateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRSearchCorehrSignatureTemplate() + + _, _, err := moduleCli.SearchCorehrSignatureTemplate(ctx, &lark.SearchCorehrSignatureTemplateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(func(ctx context.Context, request *lark.ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureTemplateInfoWithThumbnailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail() + + _, _, err := moduleCli.ListCorehrSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCorehrSignatureTemplateInfoWithThumbnailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRListCorehrWorkforcePlan(func(ctx context.Context, request *lark.ListCorehrWorkforcePlanReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrWorkforcePlanResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRListCorehrWorkforcePlan() + + _, _, err := moduleCli.ListCorehrWorkforcePlan(ctx, &lark.ListCorehrWorkforcePlanReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchQueryCorehrWorkforcePlanDetail(func(ctx context.Context, request *lark.BatchQueryCorehrWorkforcePlanDetailReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrWorkforcePlanDetailResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail() + + _, _, err := moduleCli.BatchQueryCorehrWorkforcePlanDetail(ctx, &lark.BatchQueryCorehrWorkforcePlanDetailReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRBatchCorehrWorkforcePlanDetailV2(func(ctx context.Context, request *lark.BatchCorehrWorkforcePlanDetailV2Req, options ...lark.MethodOptionFunc) (*lark.BatchCorehrWorkforcePlanDetailV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRBatchCorehrWorkforcePlanDetailV2() + + _, _, err := moduleCli.BatchCorehrWorkforcePlanDetailV2(ctx, &lark.BatchCorehrWorkforcePlanDetailV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(func(ctx context.Context, request *lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete() + + _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(func(ctx context.Context, request *lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave() + + _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchsave(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRAddCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.AddCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.AddCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRAddCorehrAuthorizationRoleAssign() + + _, _, err := moduleCli.AddCorehrAuthorizationRoleAssign(ctx, &lark.AddCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRAuthorization(func(ctx context.Context, request *lark.GetCoreHRAuthorizationReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorization() + + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCoreHRAuthorizationList(func(ctx context.Context, request *lark.GetCoreHRAuthorizationListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRAuthorizationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCoreHRAuthorizationList() + + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRRemoveCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.RemoveCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRRemoveCorehrAuthorizationRoleAssign() + + _, _, err := moduleCli.RemoveCorehrAuthorizationRoleAssign(ctx, &lark.RemoveCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.UpdateCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrAuthorizationRoleAssign() + + _, _, err := moduleCli.UpdateCorehrAuthorizationRoleAssign(ctx, &lark.UpdateCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCommonDataIDConvert(func(ctx context.Context, request *lark.CreateCorehrCommonDataIDConvertReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCommonDataIDConvertResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCommonDataIDConvert() + + _, _, err := moduleCli.CreateCorehrCommonDataIDConvert(ctx, &lark.CreateCorehrCommonDataIDConvertReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRAddCorehrCommonDataMetaDataEnumOption(func(ctx context.Context, request *lark.AddCorehrCommonDataMetaDataEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.AddCorehrCommonDataMetaDataEnumOptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption() + + _, _, err := moduleCli.AddCorehrCommonDataMetaDataEnumOption(ctx, &lark.AddCorehrCommonDataMetaDataEnumOptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(func(ctx context.Context, request *lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCommonDataMetaDataEditEnumOptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption() + + _, _, err := moduleCli.CreateCorehrCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRMatchCoreHRCompensationStandard(func(ctx context.Context, request *lark.MatchCoreHRCompensationStandardReq, options ...lark.MethodOptionFunc) (*lark.MatchCoreHRCompensationStandardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRMatchCoreHRCompensationStandard() + + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRGetCorehrLeaveCalendarByScope(func(ctx context.Context, request *lark.GetCorehrLeaveCalendarByScopeReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrLeaveCalendarByScopeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRGetCorehrLeaveCalendarByScope() + + _, _, err := moduleCli.GetCorehrLeaveCalendarByScope(ctx, &lark.GetCorehrLeaveCalendarByScopeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrLeaveWorkCalendar(func(ctx context.Context, request *lark.CreateCorehrLeaveWorkCalendarReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLeaveWorkCalendarResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrLeaveWorkCalendar() + + _, _, err := moduleCli.CreateCorehrLeaveWorkCalendar(ctx, &lark.CreateCorehrLeaveWorkCalendarReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrLeaveWorkCalendarDate(func(ctx context.Context, request *lark.CreateCorehrLeaveWorkCalendarDateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLeaveWorkCalendarDateResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrLeaveWorkCalendarDate() + + _, _, err := moduleCli.CreateCorehrLeaveWorkCalendarDate(ctx, &lark.CreateCorehrLeaveWorkCalendarDateReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRCreateCorehrPerson(func(ctx context.Context, request *lark.CreateCorehrPersonReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRCreateCorehrPerson() + + _, _, err := moduleCli.CreateCorehrPerson(ctx, &lark.CreateCorehrPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockCoreHRUpdateCorehrPerson(func(ctx context.Context, request *lark.UpdateCorehrPersonReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPersonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockCoreHRUpdateCorehrPerson() + + _, _, err := moduleCli.UpdateCorehrPerson(ctx, &lark.UpdateCorehrPersonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.CoreHR + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRNationality(ctx, &lark.SearchCoreHRNationalityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRBank(ctx, &lark.SearchCoreHRBankReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRBankBranch(ctx, &lark.SearchCoreHRBankBranchReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCustomField(ctx, &lark.GetCoreHRCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCustomFieldList(ctx, &lark.GetCoreHRCustomFieldListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCustomFieldObjectApiNameList(ctx, &lark.GetCoreHRCustomFieldObjectApiNameListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRCountryRegion(ctx, &lark.SearchCoreHRCountryRegionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRCountryRegionSubdivision(ctx, &lark.SearchCoreHRCountryRegionSubdivisionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRCity(ctx, &lark.SearchCoreHRCityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRDistrict(ctx, &lark.SearchCoreHRDistrictReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCountryRegion(ctx, &lark.GetCoreHRCountryRegionReq{ + CountryRegionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCountryRegionList(ctx, &lark.GetCoreHRCountryRegionListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSubdivision(ctx, &lark.GetCoreHRSubdivisionReq{ + SubdivisionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSubdivisionList(ctx, &lark.GetCoreHRSubdivisionListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSubregion(ctx, &lark.GetCoreHRSubregionReq{ + SubregionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSubregionList(ctx, &lark.GetCoreHRSubregionListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHREmployeeType(ctx, &lark.CreateCoreHREmployeeTypeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHREmployeeType(ctx, &lark.DeleteCoreHREmployeeTypeReq{ + EmployeeTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHREmployeeType(ctx, &lark.UpdateCoreHREmployeeTypeReq{ + EmployeeTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHREmployeeType(ctx, &lark.GetCoreHREmployeeTypeReq{ + EmployeeTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHREmployeeTypeList(ctx, &lark.GetCoreHREmployeeTypeListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRNationalIDType(ctx, &lark.CreateCoreHRNationalIDTypeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRNationalIDType(ctx, &lark.DeleteCoreHRNationalIDTypeReq{ + NationalIDTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRNationalIDType(ctx, &lark.UpdateCoreHRNationalIDTypeReq{ + NationalIDTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRNationalIDType(ctx, &lark.GetCoreHRNationalIDTypeReq{ + NationalIDTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRNationalIDTypeList(ctx, &lark.GetCoreHRNationalIDTypeListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRWorkingHoursType(ctx, &lark.CreateCoreHRWorkingHoursTypeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRWorkingHoursType(ctx, &lark.DeleteCoreHRWorkingHoursTypeReq{ + WorkingHoursTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRWorkingHoursType(ctx, &lark.UpdateCoreHRWorkingHoursTypeReq{ + WorkingHoursTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRWorkingHoursType(ctx, &lark.GetCoreHRWorkingHoursTypeReq{ + WorkingHoursTypeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRWorkingHoursTypeList(ctx, &lark.GetCoreHRWorkingHoursTypeListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRCurrency(ctx, &lark.SearchCoreHRCurrencyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCurrency(ctx, &lark.GetCoreHRCurrencyReq{ + CurrencyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCurrencyList(ctx, &lark.GetCoreHRCurrencyListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHREmployee(ctx, &lark.BatchGetCoreHREmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHREmployee(ctx, &lark.SearchCoreHREmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHREmployment(ctx, &lark.CreateCoreHREmploymentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHREmployment(ctx, &lark.DeleteCoreHREmploymentReq{ + EmploymentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHREmployment(ctx, &lark.UpdateCoreHREmploymentReq{ + EmploymentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{ + PersonID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRPerson(ctx, &lark.DeleteCoreHRPersonReq{ + PersonID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadCoreHRPersonFile(ctx, &lark.UploadCoreHRPersonFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadCoreHRPersonFile(ctx, &lark.DownloadCoreHRPersonFileReq{ + ID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRPerson(ctx, &lark.GetCoreHRPersonReq{ + PersonID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRJobData(ctx, &lark.CreateCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRJobData(ctx, &lark.DeleteCoreHRJobDataReq{ + JobDataID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRJobData(ctx, &lark.UpdateCoreHRJobDataReq{ + JobDataID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobData(ctx, &lark.GetCoreHRJobDataReq{ + JobDataID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCoreHRJobData(ctx, &lark.QueryCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRJobData(ctx, &lark.BatchGetCoreHRJobDataReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobDataList(ctx, &lark.GetCoreHRJobDataListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRDepartmentParentList(ctx, &lark.GetCoreHRDepartmentParentListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRDepartment(ctx, &lark.SearchCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRDepartment(ctx, &lark.CreateCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRDepartment(ctx, &lark.GetCoreHRDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRDepartment(ctx, &lark.BatchGetCoreHRDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRDepartmentList(ctx, &lark.GetCoreHRDepartmentListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRLocation(ctx, &lark.BatchGetCoreHRLocationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRLocation(ctx, &lark.CreateCoreHRLocationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRLocation(ctx, &lark.DeleteCoreHRLocationReq{ + LocationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRLocation(ctx, &lark.GetCoreHRLocationReq{ + LocationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRLocationList(ctx, &lark.GetCoreHRLocationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompany(ctx, &lark.GetCoreHRCompanyReq{ + CompanyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompanyList(ctx, &lark.GetCoreHRCompanyListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRCompany(ctx, &lark.BatchGetCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRCompany(ctx, &lark.CreateCoreHRCompanyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRCompany(ctx, &lark.UpdateCoreHRCompanyReq{ + CompanyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRCompany(ctx, &lark.DeleteCoreHRCompanyReq{ + CompanyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRCostCenter(ctx, &lark.CreateCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ActiveCoreHRCostCenter(ctx, &lark.ActiveCoreHRCostCenterReq{ + CostCenterID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRCostCenter(ctx, &lark.DeleteCoreHRCostCenterReq{ + CostCenterID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRCostCenter(ctx, &lark.SearchCoreHRCostCenterReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRCostCenterVersion(ctx, &lark.CreateCoreHRCostCenterVersionReq{ + CostCenterID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRCostCenterVersion(ctx, &lark.UpdateCoreHRCostCenterVersionReq{ + CostCenterID: "x", + VersionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRCostCenterVersion(ctx, &lark.DeleteCoreHRCostCenterVersionReq{ + CostCenterID: "x", + VersionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRJobLevel(ctx, &lark.BatchGetCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRJobLevel(ctx, &lark.CreateCoreHRJobLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRJobLevel(ctx, &lark.DeleteCoreHRJobLevelReq{ + JobLevelID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRJobLevel(ctx, &lark.UpdateCoreHRJobLevelReq{ + JobLevelID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobLevel(ctx, &lark.GetCoreHRJobLevelReq{ + JobLevelID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobLevelList(ctx, &lark.GetCoreHRJobLevelListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHRJobFamily(ctx, &lark.BatchGetCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRJobFamily(ctx, &lark.CreateCoreHRJobFamilyReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRJobFamily(ctx, &lark.DeleteCoreHRJobFamilyReq{ + JobFamilyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRJobFamily(ctx, &lark.UpdateCoreHRJobFamilyReq{ + JobFamilyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobFamily(ctx, &lark.GetCoreHRJobFamilyReq{ + JobFamilyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobFamilyList(ctx, &lark.GetCoreHRJobFamilyListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRJob(ctx, &lark.CreateCoreHRJobReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRJob(ctx, &lark.DeleteCoreHRJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRJob(ctx, &lark.UpdateCoreHRJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobV2(ctx, &lark.GetCoreHRJobV2Req{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobListV2(ctx, &lark.GetCoreHRJobListV2Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJob(ctx, &lark.GetCoreHRJobReq{ + JobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRJobList(ctx, &lark.GetCoreHRJobListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRPreHire(ctx, &lark.CreateCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRPreHire(ctx, &lark.GetCoreHRPreHireReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRPreHireList(ctx, &lark.GetCoreHRPreHireListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRContract(ctx, &lark.SearchCoreHRContractReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRContract(ctx, &lark.CreateCoreHRContractReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRContract(ctx, &lark.DeleteCoreHRContractReq{ + ContractID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRContract(ctx, &lark.UpdateCoreHRContractReq{ + ContractID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRContract(ctx, &lark.GetCoreHRContractReq{ + ContractID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRContractList(ctx, &lark.GetCoreHRContractListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRProbation(ctx, &lark.SearchCoreHRProbationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.EnableDisableCoreHRProbationAssessment(ctx, &lark.EnableDisableCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRProbationAssessment(ctx, &lark.CreateCoreHRProbationAssessmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCoreHRProbationAssessment(ctx, &lark.UpdateCoreHRProbationAssessmentReq{ + AssessmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRProbationAssessment(ctx, &lark.DeleteCoreHRProbationAssessmentReq{ + AssessmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRTransferReasonList(ctx, &lark.GetCoreHRTransferReasonListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRTransferTypeList(ctx, &lark.GetCoreHRTransferTypeListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRJobChange(ctx, &lark.SearchCoreHRJobChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHROffboardingList(ctx, &lark.GetCoreHROffboardingListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHROffboarding(ctx, &lark.CreateCoreHROffboardingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHROffboarding(ctx, &lark.SearchCoreHROffboardingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCoreHRLeaveGrantingRecord(ctx, &lark.CreateCoreHRLeaveGrantingRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCoreHRLeaveGrantingRecord(ctx, &lark.DeleteCoreHRLeaveGrantingRecordReq{ + LeaveGrantingRecordID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRLeaveTypeList(ctx, &lark.GetCoreHRLeaveTypeListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRLeaveBalanceList(ctx, &lark.GetCoreHRLeaveBalanceListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRLeaveRequestHistoryList(ctx, &lark.GetCoreHRLeaveRequestHistoryListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSecurityGroupBp(ctx, &lark.GetCoreHRSecurityGroupBpReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRAssignedUser(ctx, &lark.SearchCoreHRAssignedUserReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRSecurityGroupList(ctx, &lark.GetCoreHRSecurityGroupListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRProcessList(ctx, &lark.GetCoreHRProcessListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRProcess(ctx, &lark.GetCoreHRProcessReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCoreHRCompensationArchive(ctx, &lark.QueryCoreHRCompensationArchiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompensationChangeReasonList(ctx, &lark.GetCoreHRCompensationChangeReasonListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompensationIndicatorList(ctx, &lark.GetCoreHRCompensationIndicatorListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompensationItemList(ctx, &lark.GetCoreHRCompensationItemListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompensationItemCategoryList(ctx, &lark.GetCoreHRCompensationItemCategoryListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRCompensationPlanList(ctx, &lark.GetCoreHRCompensationPlanListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCorehrApprovalGroups(ctx, &lark.GetCorehrApprovalGroupsReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrApprover(ctx, &lark.ListCorehrApproverReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCorehrBasicInfoLanguage(ctx, &lark.SearchCorehrBasicInfoLanguageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCorehrBasicInfoTimeZone(ctx, &lark.SearchCorehrBasicInfoTimeZoneReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCompanyActive(ctx, &lark.CreateCorehrCompanyActiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrCompanyMultiTimeline(ctx, &lark.QueryCorehrCompanyMultiTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrCompanyRecentChange(ctx, &lark.QueryCorehrCompanyRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCorehrCostAllocation(ctx, &lark.BatchQueryCorehrCostAllocationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCostAllocationVersion(ctx, &lark.CreateCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveCorehrCostAllocationVersion(ctx, &lark.RemoveCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrCostAllocationVersion(ctx, &lark.UpdateCorehrCostAllocationVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrCostCenterRecentChange(ctx, &lark.QueryCorehrCostCenterRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCustomOrgActive(ctx, &lark.CreateCorehrCustomOrgActiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCustomOrg(ctx, &lark.CreateCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrCustomOrg(ctx, &lark.DeleteCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrCustomOrg(ctx, &lark.UpdateCorehrCustomOrgReq{ + OrgID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrCustomOrg(ctx, &lark.QueryCorehrCustomOrgReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrCustomOrgRecentChange(ctx, &lark.QueryCorehrCustomOrgRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrCustomOrgRule(ctx, &lark.UpdateCorehrCustomOrgRuleReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCorehrDefaultCostCenter(ctx, &lark.BatchQueryCorehrDefaultCostCenterReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrDefaultCostCenterVersion(ctx, &lark.CreateCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveCorehrDefaultCostCenterVersion(ctx, &lark.RemoveCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrDefaultCostCenterVersion(ctx, &lark.UpdateCorehrDefaultCostCenterVersionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrDepartment(ctx, &lark.DeleteCorehrDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrDepartment(ctx, &lark.UpdateCorehrDepartmentReq{ + DepartmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCoreHRDepartmentTimeline(ctx, &lark.BatchQueryCoreHRDepartmentTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrDepartmentOperationLogs(ctx, &lark.QueryCorehrDepartmentOperationLogsReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrDepartmentRecentChange(ctx, &lark.QueryCorehrDepartmentRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCoreHRDepartmentTimeline(ctx, &lark.QueryCoreHRDepartmentTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrDepartmentTree(ctx, &lark.CreateCorehrDepartmentTreeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCorehrDraft(ctx, &lark.GetCorehrDraftReq{ + DraftID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrEmployee(ctx, &lark.CreateCorehrEmployeeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCorehrEmployeesAdditionalJob(ctx, &lark.BatchQueryCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrEmployeesAdditionalJob(ctx, &lark.CreateCorehrEmployeesAdditionalJobReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrEmployeesAdditionalJob(ctx, &lark.DeleteCorehrEmployeesAdditionalJobReq{ + AdditionalJobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrEmployeesAdditionalJob(ctx, &lark.UpdateCorehrEmployeesAdditionalJobReq{ + AdditionalJobID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrEmployeesInternationalAssignment(ctx, &lark.CreateCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrEmployeesInternationalAssignment(ctx, &lark.DeleteCorehrEmployeesInternationalAssignmentReq{ + InternationalAssignmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrEmployeesInternationalAssignment(ctx, &lark.ListCorehrEmployeesInternationalAssignmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrEmployeesInternationalAssignment(ctx, &lark.UpdateCorehrEmployeesInternationalAssignmentReq{ + InternationalAssignmentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCorehrEnum(ctx, &lark.SearchCorehrEnumReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCorehrJob(ctx, &lark.BatchGetCorehrJobReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobMultiTimeline(ctx, &lark.QueryCorehrJobMultiTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobRecentChange(ctx, &lark.QueryCorehrJobRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrJobChange(ctx, &lark.CreateCorehrJobChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrJobChangeRevoke(ctx, &lark.CreateCorehrJobChangeRevokeReq{ + JobChangeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobFamilyMultiTimeline(ctx, &lark.QueryCorehrJobFamilyMultiTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobFamilyRecentChange(ctx, &lark.QueryCorehrJobFamilyRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrJobGrade(ctx, &lark.CreateCorehrJobGradeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrJobGrade(ctx, &lark.DeleteCorehrJobGradeReq{ + JobGradeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrJobGrade(ctx, &lark.UpdateCorehrJobGradeReq{ + JobGradeID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCoreHRJobGrade(ctx, &lark.QueryCoreHRJobGradeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobGradeRecentChange(ctx, &lark.QueryCorehrJobGradeRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrJobLevelRecentChange(ctx, &lark.QueryCorehrJobLevelRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrLocationAddress(ctx, &lark.CreateCorehrLocationAddressReq{ + LocationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrLocationAddress(ctx, &lark.DeleteCorehrLocationAddressReq{ + LocationID: "x", + AddressID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrLocationAddress(ctx, &lark.UpdateCorehrLocationAddressReq{ + LocationID: "x", + AddressID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrLocationActive(ctx, &lark.CreateCorehrLocationActiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrLocation(ctx, &lark.UpdateCorehrLocationReq{ + LocationID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrLocationMultiTimeline(ctx, &lark.QueryCorehrLocationMultiTimelineReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrLocationRecentChange(ctx, &lark.QueryCorehrLocationRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrOffboardingEdit(ctx, &lark.CreateCorehrOffboardingEditReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrOffboardingRevoke(ctx, &lark.CreateCorehrOffboardingRevokeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrOffboardingSubmitV2(ctx, &lark.CreateCorehrOffboardingSubmitV2Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPathwayActive(ctx, &lark.CreateCorehrPathwayActiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetCorehrPathway(ctx, &lark.BatchGetCorehrPathwayReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPathway(ctx, &lark.CreateCorehrPathwayReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrPathway(ctx, &lark.DeleteCorehrPathwayReq{ + PathwayID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrPathway(ctx, &lark.UpdateCorehrPathwayReq{ + PathwayID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPositionActive(ctx, &lark.CreateCorehrPositionActiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPosition(ctx, &lark.CreateCorehrPositionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPositionDelPosition(ctx, &lark.CreateCorehrPositionDelPositionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrPosition(ctx, &lark.UpdateCorehrPositionReq{ + PositionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrPosition(ctx, &lark.QueryCorehrPositionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrPositionRecentChange(ctx, &lark.QueryCorehrPositionRecentChangeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPreHireComplete(ctx, &lark.CreateCorehrPreHireCompleteReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteCorehrPreHire(ctx, &lark.DeleteCorehrPreHireReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrPreHire(ctx, &lark.UpdateCorehrPreHireReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrPreHire(ctx, &lark.QueryCorehrPreHireReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPreHireRestoreFlowInstance(ctx, &lark.CreateCorehrPreHireRestoreFlowInstanceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCoreHRPreHire(ctx, &lark.SearchCoreHRPreHireReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPreHireTransformOnboardingTask(ctx, &lark.CreateCorehrPreHireTransformOnboardingTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPreHireTransitTask(ctx, &lark.CreateCorehrPreHireTransitTaskReq{ + PreHireID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPreHireWithdrawOnboarding(ctx, &lark.CreateCorehrPreHireWithdrawOnboardingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrProbationSubmit(ctx, &lark.CreateCorehrProbationSubmitReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrProbationWithdraw(ctx, &lark.CreateCorehrProbationWithdrawReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrProcessApprover(ctx, &lark.UpdateCorehrProcessApproverReq{ + ProcessID: "x", + ApproverID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrProcessExtra(ctx, &lark.UpdateCorehrProcessExtraReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCorehrProcessFormVariableData(ctx, &lark.GetCorehrProcessFormVariableDataReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrProcessQueryFlowDataTemplate(ctx, &lark.CreateCorehrProcessQueryFlowDataTemplateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrProcessTransfer(ctx, &lark.UpdateCorehrProcessTransferReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCorehrProcessFlowVariableData(ctx, &lark.GetCorehrProcessFlowVariableDataReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrProcessRevoke(ctx, &lark.UpdateCorehrProcessRevokeReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrProcessStart(ctx, &lark.CreateCorehrProcessStartReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrProcessWithdraw(ctx, &lark.UpdateCorehrProcessWithdrawReq{ + ProcessID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrReportDetailRowBatchdelete(ctx, &lark.CreateCorehrReportDetailRowBatchdeleteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrReportDetailRowBatchsave(ctx, &lark.CreateCorehrReportDetailRowBatchsaveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadCorehrSignatureFile(ctx, &lark.DownloadCorehrSignatureFileReq{ + SignatureFileID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrSignatureFile(ctx, &lark.ListCorehrSignatureFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrSignatureFileByBizID(ctx, &lark.ListCorehrSignatureFileByBizIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryCorehrSignatureFile(ctx, &lark.QueryCorehrSignatureFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrSignatureFileTerminate(ctx, &lark.CreateCorehrSignatureFileTerminateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrSignatureNodeByFileID(ctx, &lark.ListCorehrSignatureNodeByFileIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchCorehrSignatureTemplate(ctx, &lark.SearchCorehrSignatureTemplateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCorehrSignatureTemplateInfoWithThumbnailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListCorehrWorkforcePlan(ctx, &lark.ListCorehrWorkforcePlanReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchQueryCorehrWorkforcePlanDetail(ctx, &lark.BatchQueryCorehrWorkforcePlanDetailReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCorehrWorkforcePlanDetailV2(ctx, &lark.BatchCorehrWorkforcePlanDetailV2Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchsave(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddCorehrAuthorizationRoleAssign(ctx, &lark.AddCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRAuthorization(ctx, &lark.GetCoreHRAuthorizationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCoreHRAuthorizationList(ctx, &lark.GetCoreHRAuthorizationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveCorehrAuthorizationRoleAssign(ctx, &lark.RemoveCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrAuthorizationRoleAssign(ctx, &lark.UpdateCorehrAuthorizationRoleAssignReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCommonDataIDConvert(ctx, &lark.CreateCorehrCommonDataIDConvertReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddCorehrCommonDataMetaDataEnumOption(ctx, &lark.AddCorehrCommonDataMetaDataEnumOptionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MatchCoreHRCompensationStandard(ctx, &lark.MatchCoreHRCompensationStandardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetCorehrLeaveCalendarByScope(ctx, &lark.GetCorehrLeaveCalendarByScopeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrLeaveWorkCalendar(ctx, &lark.CreateCorehrLeaveWorkCalendarReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrLeaveWorkCalendarDate(ctx, &lark.CreateCorehrLeaveWorkCalendarDateReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCorehrPerson(ctx, &lark.CreateCorehrPersonReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateCorehrPerson(ctx, &lark.UpdateCorehrPersonReq{ + PersonID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/drive_sample_test.go b/test/drive_sample_test.go index d258f45a..f16fe0a5 100644 --- a/test/drive_sample_test.go +++ b/test/drive_sample_test.go @@ -38,7 +38,7 @@ func Test_Drive_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{}) + _, _, err := moduleCli.AddSheetDimensionRange(ctx, &lark.AddSheetDimensionRangeReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,49 +51,3617 @@ func Test_Drive_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockDriveGetWhiteboardNodeList(func(ctx context.Context, request *lark.GetWhiteboardNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWhiteboardNodeListResp, *lark.Response, error) { + cli.Mock().MockDriveAddSheetDimensionRange(func(ctx context.Context, request *lark.AddSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.AddSheetDimensionRangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockDriveGetWhiteboardNodeList() + defer cli.Mock().UnMockDriveAddSheetDimensionRange() - _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{}) + _, _, err := moduleCli.AddSheetDimensionRange(ctx, &lark.AddSheetDimensionRangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockDriveCreateSpreadsheet(func(ctx context.Context, request *lark.CreateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.CreateSpreadsheetResp, *lark.Response, error) { + cli.Mock().MockDriveAddWikiSpaceMember(func(ctx context.Context, request *lark.AddWikiSpaceMemberReq, options ...lark.MethodOptionFunc) (*lark.AddWikiSpaceMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockDriveCreateSpreadsheet() + defer cli.Mock().UnMockDriveAddWikiSpaceMember() - _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) + _, _, err := moduleCli.AddWikiSpaceMember(ctx, &lark.AddWikiSpaceMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockDriveAppendSheetValue(func(ctx context.Context, request *lark.AppendSheetValueReq, options ...lark.MethodOptionFunc) (*lark.AppendSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveAppendSheetValue() + + _, _, err := moduleCli.AppendSheetValue(ctx, &lark.AppendSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{ - WhiteboardID: "x", + cli.Mock().MockDriveBatchCreateDrivePermissionMember(func(ctx context.Context, request *lark.BatchCreateDrivePermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateDrivePermissionMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockDriveBatchCreateDrivePermissionMember() + + _, _, err := moduleCli.BatchCreateDrivePermissionMember(ctx, &lark.BatchCreateDrivePermissionMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) + cli.Mock().MockDriveBatchDeleteDocxBlock(func(ctx context.Context, request *lark.BatchDeleteDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteDocxBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchDeleteDocxBlock() + + _, _, err := moduleCli.BatchDeleteDocxBlock(ctx, &lark.BatchDeleteDocxBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchGetDriveComment(func(ctx context.Context, request *lark.BatchGetDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.BatchGetDriveCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchGetDriveComment() + + _, _, err := moduleCli.BatchGetDriveComment(ctx, &lark.BatchGetDriveCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchGetDriveMediaTmpDownloadURL(func(ctx context.Context, request *lark.BatchGetDriveMediaTmpDownloadURLReq, options ...lark.MethodOptionFunc) (*lark.BatchGetDriveMediaTmpDownloadURLResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchGetDriveMediaTmpDownloadURL() + + _, _, err := moduleCli.BatchGetDriveMediaTmpDownloadURL(ctx, &lark.BatchGetDriveMediaTmpDownloadURLReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchGetSheetValue(func(ctx context.Context, request *lark.BatchGetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.BatchGetSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchGetSheetValue() + + _, _, err := moduleCli.BatchGetSheetValue(ctx, &lark.BatchGetSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchSetSheetStyle(func(ctx context.Context, request *lark.BatchSetSheetStyleReq, options ...lark.MethodOptionFunc) (*lark.BatchSetSheetStyleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchSetSheetStyle() + + _, _, err := moduleCli.BatchSetSheetStyle(ctx, &lark.BatchSetSheetStyleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchSetSheetValue(func(ctx context.Context, request *lark.BatchSetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.BatchSetSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchSetSheetValue() + + _, _, err := moduleCli.BatchSetSheetValue(ctx, &lark.BatchSetSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchUpdateSheet(func(ctx context.Context, request *lark.BatchUpdateSheetReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateSheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchUpdateSheet() + + _, _, err := moduleCli.BatchUpdateSheet(ctx, &lark.BatchUpdateSheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCheckDriveMemberPermissionOld(func(ctx context.Context, request *lark.CheckDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.CheckDriveMemberPermissionOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCheckDriveMemberPermissionOld() + + _, _, err := moduleCli.CheckDriveMemberPermissionOld(ctx, &lark.CheckDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCheckDriveMemberPermission(func(ctx context.Context, request *lark.CheckDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.CheckDriveMemberPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCheckDriveMemberPermission() + + _, _, err := moduleCli.CheckDriveMemberPermission(ctx, &lark.CheckDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCopyDriveFile(func(ctx context.Context, request *lark.CopyDriveFileReq, options ...lark.MethodOptionFunc) (*lark.CopyDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCopyDriveFile() + + _, _, err := moduleCli.CopyDriveFile(ctx, &lark.CopyDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCopyWikiNode(func(ctx context.Context, request *lark.CopyWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.CopyWikiNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCopyWikiNode() + + _, _, err := moduleCli.CopyWikiNode(ctx, &lark.CopyWikiNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDocxBlock(func(ctx context.Context, request *lark.CreateDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDocxBlock() + + _, _, err := moduleCli.CreateDocxBlock(ctx, &lark.CreateDocxBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDocx(func(ctx context.Context, request *lark.CreateDocxReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDocx() + + _, _, err := moduleCli.CreateDocx(ctx, &lark.CreateDocxReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveComment(func(ctx context.Context, request *lark.CreateDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveComment() + + _, _, err := moduleCli.CreateDriveComment(ctx, &lark.CreateDriveCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveDoc(func(ctx context.Context, request *lark.CreateDriveDocReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveDocResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveDoc() + + _, _, err := moduleCli.CreateDriveDoc(ctx, &lark.CreateDriveDocReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveExportTask(func(ctx context.Context, request *lark.CreateDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveExportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveExportTask() + + _, _, err := moduleCli.CreateDriveExportTask(ctx, &lark.CreateDriveExportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveFileShortcut(func(ctx context.Context, request *lark.CreateDriveFileShortcutReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileShortcutResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveFileShortcut() + + _, _, err := moduleCli.CreateDriveFileShortcut(ctx, &lark.CreateDriveFileShortcutReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveFileSubscription(func(ctx context.Context, request *lark.CreateDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileSubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveFileSubscription() + + _, _, err := moduleCli.CreateDriveFileSubscription(ctx, &lark.CreateDriveFileSubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveFileVersion(func(ctx context.Context, request *lark.CreateDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveFileVersion() + + _, _, err := moduleCli.CreateDriveFileVersion(ctx, &lark.CreateDriveFileVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveFile(func(ctx context.Context, request *lark.CreateDriveFileReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveFile() + + _, _, err := moduleCli.CreateDriveFile(ctx, &lark.CreateDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveFolder(func(ctx context.Context, request *lark.CreateDriveFolderReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveFolder() + + _, _, err := moduleCli.CreateDriveFolder(ctx, &lark.CreateDriveFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveImportTask(func(ctx context.Context, request *lark.CreateDriveImportTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveImportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveImportTask() + + _, _, err := moduleCli.CreateDriveImportTask(ctx, &lark.CreateDriveImportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveMemberPermissionOld(func(ctx context.Context, request *lark.CreateDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveMemberPermissionOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveMemberPermissionOld() + + _, _, err := moduleCli.CreateDriveMemberPermissionOld(ctx, &lark.CreateDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDriveMemberPermission(func(ctx context.Context, request *lark.CreateDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.CreateDriveMemberPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDriveMemberPermission() + + _, _, err := moduleCli.CreateDriveMemberPermission(ctx, &lark.CreateDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDrivePermissionPublicPassword(func(ctx context.Context, request *lark.CreateDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.CreateDrivePermissionPublicPasswordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDrivePermissionPublicPassword() + + _, _, err := moduleCli.CreateDrivePermissionPublicPassword(ctx, &lark.CreateDrivePermissionPublicPasswordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetConditionFormat(func(ctx context.Context, request *lark.CreateSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetConditionFormatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetConditionFormat() + + _, _, err := moduleCli.CreateSheetConditionFormat(ctx, &lark.CreateSheetConditionFormatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetDataValidationDropdown(func(ctx context.Context, request *lark.CreateSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetDataValidationDropdownResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetDataValidationDropdown() + + _, _, err := moduleCli.CreateSheetDataValidationDropdown(ctx, &lark.CreateSheetDataValidationDropdownReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetFilterViewCondition(func(ctx context.Context, request *lark.CreateSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterViewConditionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetFilterViewCondition() + + _, _, err := moduleCli.CreateSheetFilterViewCondition(ctx, &lark.CreateSheetFilterViewConditionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetFilterView(func(ctx context.Context, request *lark.CreateSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetFilterView() + + _, _, err := moduleCli.CreateSheetFilterView(ctx, &lark.CreateSheetFilterViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetFilter(func(ctx context.Context, request *lark.CreateSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetFilter() + + _, _, err := moduleCli.CreateSheetFilter(ctx, &lark.CreateSheetFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetFloatImage(func(ctx context.Context, request *lark.CreateSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetFloatImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetFloatImage() + + _, _, err := moduleCli.CreateSheetFloatImage(ctx, &lark.CreateSheetFloatImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSheetProtectedDimension(func(ctx context.Context, request *lark.CreateSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.CreateSheetProtectedDimensionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSheetProtectedDimension() + + _, _, err := moduleCli.CreateSheetProtectedDimension(ctx, &lark.CreateSheetProtectedDimensionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateSpreadsheet(func(ctx context.Context, request *lark.CreateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.CreateSpreadsheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateSpreadsheet() + + _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateWikiNode(func(ctx context.Context, request *lark.CreateWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.CreateWikiNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateWikiNode() + + _, _, err := moduleCli.CreateWikiNode(ctx, &lark.CreateWikiNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateWikiSpace(func(ctx context.Context, request *lark.CreateWikiSpaceReq, options ...lark.MethodOptionFunc) (*lark.CreateWikiSpaceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateWikiSpace() + + _, _, err := moduleCli.CreateWikiSpace(ctx, &lark.CreateWikiSpaceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveComment(func(ctx context.Context, request *lark.DeleteDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveComment() + + _, _, err := moduleCli.DeleteDriveComment(ctx, &lark.DeleteDriveCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveFileVersion(func(ctx context.Context, request *lark.DeleteDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveFileVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveFileVersion() + + _, _, err := moduleCli.DeleteDriveFileVersion(ctx, &lark.DeleteDriveFileVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveFile(func(ctx context.Context, request *lark.DeleteDriveFileReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveFile() + + _, _, err := moduleCli.DeleteDriveFile(ctx, &lark.DeleteDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveMemberPermissionOld(func(ctx context.Context, request *lark.DeleteDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveMemberPermissionOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveMemberPermissionOld() + + _, _, err := moduleCli.DeleteDriveMemberPermissionOld(ctx, &lark.DeleteDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveMemberPermission(func(ctx context.Context, request *lark.DeleteDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveMemberPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveMemberPermission() + + _, _, err := moduleCli.DeleteDriveMemberPermission(ctx, &lark.DeleteDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDrivePermissionPublicPassword(func(ctx context.Context, request *lark.DeleteDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.DeleteDrivePermissionPublicPasswordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDrivePermissionPublicPassword() + + _, _, err := moduleCli.DeleteDrivePermissionPublicPassword(ctx, &lark.DeleteDrivePermissionPublicPasswordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteDriveSheetFile(func(ctx context.Context, request *lark.DeleteDriveSheetFileReq, options ...lark.MethodOptionFunc) (*lark.DeleteDriveSheetFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteDriveSheetFile() + + _, _, err := moduleCli.DeleteDriveSheetFile(ctx, &lark.DeleteDriveSheetFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetConditionFormat(func(ctx context.Context, request *lark.DeleteSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetConditionFormatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetConditionFormat() + + _, _, err := moduleCli.DeleteSheetConditionFormat(ctx, &lark.DeleteSheetConditionFormatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetDataValidationDropdown(func(ctx context.Context, request *lark.DeleteSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetDataValidationDropdownResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetDataValidationDropdown() + + _, _, err := moduleCli.DeleteSheetDataValidationDropdown(ctx, &lark.DeleteSheetDataValidationDropdownReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetDimensionRange(func(ctx context.Context, request *lark.DeleteSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetDimensionRangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetDimensionRange() + + _, _, err := moduleCli.DeleteSheetDimensionRange(ctx, &lark.DeleteSheetDimensionRangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetFilterViewCondition(func(ctx context.Context, request *lark.DeleteSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterViewConditionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetFilterViewCondition() + + _, _, err := moduleCli.DeleteSheetFilterViewCondition(ctx, &lark.DeleteSheetFilterViewConditionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetFilterView(func(ctx context.Context, request *lark.DeleteSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetFilterView() + + _, _, err := moduleCli.DeleteSheetFilterView(ctx, &lark.DeleteSheetFilterViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetFilter(func(ctx context.Context, request *lark.DeleteSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetFilter() + + _, _, err := moduleCli.DeleteSheetFilter(ctx, &lark.DeleteSheetFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetFloatImage(func(ctx context.Context, request *lark.DeleteSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetFloatImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetFloatImage() + + _, _, err := moduleCli.DeleteSheetFloatImage(ctx, &lark.DeleteSheetFloatImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteSheetProtectedDimension(func(ctx context.Context, request *lark.DeleteSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.DeleteSheetProtectedDimensionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteSheetProtectedDimension() + + _, _, err := moduleCli.DeleteSheetProtectedDimension(ctx, &lark.DeleteSheetProtectedDimensionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDeleteWikiSpaceMember(func(ctx context.Context, request *lark.DeleteWikiSpaceMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteWikiSpaceMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDeleteWikiSpaceMember() + + _, _, err := moduleCli.DeleteWikiSpaceMember(ctx, &lark.DeleteWikiSpaceMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDownloadDriveExportTask(func(ctx context.Context, request *lark.DownloadDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveExportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDownloadDriveExportTask() + + _, _, err := moduleCli.DownloadDriveExportTask(ctx, &lark.DownloadDriveExportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDownloadDriveFile(func(ctx context.Context, request *lark.DownloadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDownloadDriveFile() + + _, _, err := moduleCli.DownloadDriveFile(ctx, &lark.DownloadDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDownloadDriveMedia(func(ctx context.Context, request *lark.DownloadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.DownloadDriveMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDownloadDriveMedia() + + _, _, err := moduleCli.DownloadDriveMedia(ctx, &lark.DownloadDriveMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveFindSheet(func(ctx context.Context, request *lark.FindSheetReq, options ...lark.MethodOptionFunc) (*lark.FindSheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveFindSheet() + + _, _, err := moduleCli.FindSheet(ctx, &lark.FindSheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveFinishUploadDriveFile(func(ctx context.Context, request *lark.FinishUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.FinishUploadDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveFinishUploadDriveFile() + + _, _, err := moduleCli.FinishUploadDriveFile(ctx, &lark.FinishUploadDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveFinishUploadDriveMedia(func(ctx context.Context, request *lark.FinishUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.FinishUploadDriveMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveFinishUploadDriveMedia() + + _, _, err := moduleCli.FinishUploadDriveMedia(ctx, &lark.FinishUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxBlockListOfBlock(func(ctx context.Context, request *lark.GetDocxBlockListOfBlockReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockListOfBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxBlockListOfBlock() + + _, _, err := moduleCli.GetDocxBlockListOfBlock(ctx, &lark.GetDocxBlockListOfBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxBlockListOfDocument(func(ctx context.Context, request *lark.GetDocxBlockListOfDocumentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockListOfDocumentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxBlockListOfDocument() + + _, _, err := moduleCli.GetDocxBlockListOfDocument(ctx, &lark.GetDocxBlockListOfDocumentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxBlock(func(ctx context.Context, request *lark.GetDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.GetDocxBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxBlock() + + _, _, err := moduleCli.GetDocxBlock(ctx, &lark.GetDocxBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxDocumentRawContent(func(ctx context.Context, request *lark.GetDocxDocumentRawContentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxDocumentRawContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxDocumentRawContent() + + _, _, err := moduleCli.GetDocxDocumentRawContent(ctx, &lark.GetDocxDocumentRawContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxDocument(func(ctx context.Context, request *lark.GetDocxDocumentReq, options ...lark.MethodOptionFunc) (*lark.GetDocxDocumentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxDocument() + + _, _, err := moduleCli.GetDocxDocument(ctx, &lark.GetDocxDocumentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveCommentList(func(ctx context.Context, request *lark.GetDriveCommentListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveCommentList() + + _, _, err := moduleCli.GetDriveCommentList(ctx, &lark.GetDriveCommentListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveCommentReplyList(func(ctx context.Context, request *lark.GetDriveCommentReplyListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentReplyListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveCommentReplyList() + + _, _, err := moduleCli.GetDriveCommentReplyList(ctx, &lark.GetDriveCommentReplyListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveComment(func(ctx context.Context, request *lark.GetDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveComment() + + _, _, err := moduleCli.GetDriveComment(ctx, &lark.GetDriveCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveDocContent(func(ctx context.Context, request *lark.GetDriveDocContentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveDocContent() + + _, _, err := moduleCli.GetDriveDocContent(ctx, &lark.GetDriveDocContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveDocMeta(func(ctx context.Context, request *lark.GetDriveDocMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveDocMeta() + + _, _, err := moduleCli.GetDriveDocMeta(ctx, &lark.GetDriveDocMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveDocRawContent(func(ctx context.Context, request *lark.GetDriveDocRawContentReq, options ...lark.MethodOptionFunc) (*lark.GetDriveDocRawContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveDocRawContent() + + _, _, err := moduleCli.GetDriveDocRawContent(ctx, &lark.GetDriveDocRawContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveExportTask(func(ctx context.Context, request *lark.GetDriveExportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveExportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveExportTask() + + _, _, err := moduleCli.GetDriveExportTask(ctx, &lark.GetDriveExportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileList(func(ctx context.Context, request *lark.GetDriveFileListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileList() + + _, _, err := moduleCli.GetDriveFileList(ctx, &lark.GetDriveFileListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileMeta(func(ctx context.Context, request *lark.GetDriveFileMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileMeta() + + _, _, err := moduleCli.GetDriveFileMeta(ctx, &lark.GetDriveFileMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileStatistics(func(ctx context.Context, request *lark.GetDriveFileStatisticsReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileStatisticsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileStatistics() + + _, _, err := moduleCli.GetDriveFileStatistics(ctx, &lark.GetDriveFileStatisticsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileSubscription(func(ctx context.Context, request *lark.GetDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileSubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileSubscription() + + _, _, err := moduleCli.GetDriveFileSubscription(ctx, &lark.GetDriveFileSubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileTask(func(ctx context.Context, request *lark.GetDriveFileTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileTask() + + _, _, err := moduleCli.GetDriveFileTask(ctx, &lark.GetDriveFileTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileVersionList(func(ctx context.Context, request *lark.GetDriveFileVersionListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileVersionListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileVersionList() + + _, _, err := moduleCli.GetDriveFileVersionList(ctx, &lark.GetDriveFileVersionListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileVersion(func(ctx context.Context, request *lark.GetDriveFileVersionReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileVersionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileVersion() + + _, _, err := moduleCli.GetDriveFileVersion(ctx, &lark.GetDriveFileVersionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFileViewRecordList(func(ctx context.Context, request *lark.GetDriveFileViewRecordListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFileViewRecordListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFileViewRecordList() + + _, _, err := moduleCli.GetDriveFileViewRecordList(ctx, &lark.GetDriveFileViewRecordListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFolderChildren(func(ctx context.Context, request *lark.GetDriveFolderChildrenReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFolderChildrenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFolderChildren() + + _, _, err := moduleCli.GetDriveFolderChildren(ctx, &lark.GetDriveFolderChildrenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveFolderMeta(func(ctx context.Context, request *lark.GetDriveFolderMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveFolderMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveFolderMeta() + + _, _, err := moduleCli.GetDriveFolderMeta(ctx, &lark.GetDriveFolderMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveImportTask(func(ctx context.Context, request *lark.GetDriveImportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetDriveImportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveImportTask() + + _, _, err := moduleCli.GetDriveImportTask(ctx, &lark.GetDriveImportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveMemberPermissionListOld(func(ctx context.Context, request *lark.GetDriveMemberPermissionListOldReq, options ...lark.MethodOptionFunc) (*lark.GetDriveMemberPermissionListOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveMemberPermissionListOld() + + _, _, err := moduleCli.GetDriveMemberPermissionListOld(ctx, &lark.GetDriveMemberPermissionListOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveMemberPermissionList(func(ctx context.Context, request *lark.GetDriveMemberPermissionListReq, options ...lark.MethodOptionFunc) (*lark.GetDriveMemberPermissionListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveMemberPermissionList() + + _, _, err := moduleCli.GetDriveMemberPermissionList(ctx, &lark.GetDriveMemberPermissionListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDrivePublicPermissionOld(func(ctx context.Context, request *lark.GetDrivePublicPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDrivePublicPermissionOld() + + _, _, err := moduleCli.GetDrivePublicPermissionOld(ctx, &lark.GetDrivePublicPermissionOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDrivePublicPermissionV2(func(ctx context.Context, request *lark.GetDrivePublicPermissionV2Req, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDrivePublicPermissionV2() + + _, _, err := moduleCli.GetDrivePublicPermissionV2(ctx, &lark.GetDrivePublicPermissionV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDrivePublicPermission(func(ctx context.Context, request *lark.GetDrivePublicPermissionReq, options ...lark.MethodOptionFunc) (*lark.GetDrivePublicPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDrivePublicPermission() + + _, _, err := moduleCli.GetDrivePublicPermission(ctx, &lark.GetDrivePublicPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveRootFolderMeta(func(ctx context.Context, request *lark.GetDriveRootFolderMetaReq, options ...lark.MethodOptionFunc) (*lark.GetDriveRootFolderMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveRootFolderMeta() + + _, _, err := moduleCli.GetDriveRootFolderMeta(ctx, &lark.GetDriveRootFolderMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDriveSheetDefaultImportResult(func(ctx context.Context, request *lark.GetDriveSheetDefaultImportResultReq, options ...lark.MethodOptionFunc) (*lark.GetDriveSheetDefaultImportResultResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDriveSheetDefaultImportResult() + + _, _, err := moduleCli.GetDriveSheetDefaultImportResult(ctx, &lark.GetDriveSheetDefaultImportResultReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetConditionFormat(func(ctx context.Context, request *lark.GetSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.GetSheetConditionFormatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetConditionFormat() + + _, _, err := moduleCli.GetSheetConditionFormat(ctx, &lark.GetSheetConditionFormatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetDataValidationDropdown(func(ctx context.Context, request *lark.GetSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.GetSheetDataValidationDropdownResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetDataValidationDropdown() + + _, _, err := moduleCli.GetSheetDataValidationDropdown(ctx, &lark.GetSheetDataValidationDropdownReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetFilterViewCondition(func(ctx context.Context, request *lark.GetSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterViewConditionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetFilterViewCondition() + + _, _, err := moduleCli.GetSheetFilterViewCondition(ctx, &lark.GetSheetFilterViewConditionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetFilterView(func(ctx context.Context, request *lark.GetSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetFilterView() + + _, _, err := moduleCli.GetSheetFilterView(ctx, &lark.GetSheetFilterViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetFilter(func(ctx context.Context, request *lark.GetSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetFilter() + + _, _, err := moduleCli.GetSheetFilter(ctx, &lark.GetSheetFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetFloatImage(func(ctx context.Context, request *lark.GetSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.GetSheetFloatImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetFloatImage() + + _, _, err := moduleCli.GetSheetFloatImage(ctx, &lark.GetSheetFloatImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetList(func(ctx context.Context, request *lark.GetSheetListReq, options ...lark.MethodOptionFunc) (*lark.GetSheetListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetList() + + _, _, err := moduleCli.GetSheetList(ctx, &lark.GetSheetListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetMeta(func(ctx context.Context, request *lark.GetSheetMetaReq, options ...lark.MethodOptionFunc) (*lark.GetSheetMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetMeta() + + _, _, err := moduleCli.GetSheetMeta(ctx, &lark.GetSheetMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetProtectedDimension(func(ctx context.Context, request *lark.GetSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.GetSheetProtectedDimensionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetProtectedDimension() + + _, _, err := moduleCli.GetSheetProtectedDimension(ctx, &lark.GetSheetProtectedDimensionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheetValue(func(ctx context.Context, request *lark.GetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.GetSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheetValue() + + _, _, err := moduleCli.GetSheetValue(ctx, &lark.GetSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSheet(func(ctx context.Context, request *lark.GetSheetReq, options ...lark.MethodOptionFunc) (*lark.GetSheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSheet() + + _, _, err := moduleCli.GetSheet(ctx, &lark.GetSheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSpreadsheet(func(ctx context.Context, request *lark.GetSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.GetSpreadsheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSpreadsheet() + + _, _, err := moduleCli.GetSpreadsheet(ctx, &lark.GetSpreadsheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetSubscribeDriveFile(func(ctx context.Context, request *lark.GetSubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.GetSubscribeDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetSubscribeDriveFile() + + _, _, err := moduleCli.GetSubscribeDriveFile(ctx, &lark.GetSubscribeDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWikiNodeList(func(ctx context.Context, request *lark.GetWikiNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWikiNodeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWikiNodeList() + + _, _, err := moduleCli.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWikiNode(func(ctx context.Context, request *lark.GetWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.GetWikiNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWikiNode() + + _, _, err := moduleCli.GetWikiNode(ctx, &lark.GetWikiNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWikiSpaceList(func(ctx context.Context, request *lark.GetWikiSpaceListReq, options ...lark.MethodOptionFunc) (*lark.GetWikiSpaceListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWikiSpaceList() + + _, _, err := moduleCli.GetWikiSpaceList(ctx, &lark.GetWikiSpaceListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWikiSpace(func(ctx context.Context, request *lark.GetWikiSpaceReq, options ...lark.MethodOptionFunc) (*lark.GetWikiSpaceResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWikiSpace() + + _, _, err := moduleCli.GetWikiSpace(ctx, &lark.GetWikiSpaceReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWikiTask(func(ctx context.Context, request *lark.GetWikiTaskReq, options ...lark.MethodOptionFunc) (*lark.GetWikiTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWikiTask() + + _, _, err := moduleCli.GetWikiTask(ctx, &lark.GetWikiTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveImportSheet(func(ctx context.Context, request *lark.ImportSheetReq, options ...lark.MethodOptionFunc) (*lark.ImportSheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveImportSheet() + + _, _, err := moduleCli.ImportSheet(ctx, &lark.ImportSheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveInsertSheetDimensionRange(func(ctx context.Context, request *lark.InsertSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.InsertSheetDimensionRangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveInsertSheetDimensionRange() + + _, _, err := moduleCli.InsertSheetDimensionRange(ctx, &lark.InsertSheetDimensionRangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveListDriveFileLike(func(ctx context.Context, request *lark.ListDriveFileLikeReq, options ...lark.MethodOptionFunc) (*lark.ListDriveFileLikeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveListDriveFileLike() + + _, _, err := moduleCli.ListDriveFileLike(ctx, &lark.ListDriveFileLikeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveListWikiSpaceMember(func(ctx context.Context, request *lark.ListWikiSpaceMemberReq, options ...lark.MethodOptionFunc) (*lark.ListWikiSpaceMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveListWikiSpaceMember() + + _, _, err := moduleCli.ListWikiSpaceMember(ctx, &lark.ListWikiSpaceMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveMergeSheetCell(func(ctx context.Context, request *lark.MergeSheetCellReq, options ...lark.MethodOptionFunc) (*lark.MergeSheetCellResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveMergeSheetCell() + + _, _, err := moduleCli.MergeSheetCell(ctx, &lark.MergeSheetCellReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveMoveDocsToWiki(func(ctx context.Context, request *lark.MoveDocsToWikiReq, options ...lark.MethodOptionFunc) (*lark.MoveDocsToWikiResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveMoveDocsToWiki() + + _, _, err := moduleCli.MoveDocsToWiki(ctx, &lark.MoveDocsToWikiReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveMoveDriveFile(func(ctx context.Context, request *lark.MoveDriveFileReq, options ...lark.MethodOptionFunc) (*lark.MoveDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveMoveDriveFile() + + _, _, err := moduleCli.MoveDriveFile(ctx, &lark.MoveDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveMoveSheetDimension(func(ctx context.Context, request *lark.MoveSheetDimensionReq, options ...lark.MethodOptionFunc) (*lark.MoveSheetDimensionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveMoveSheetDimension() + + _, _, err := moduleCli.MoveSheetDimension(ctx, &lark.MoveSheetDimensionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveMoveWikiNode(func(ctx context.Context, request *lark.MoveWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.MoveWikiNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveMoveWikiNode() + + _, _, err := moduleCli.MoveWikiNode(ctx, &lark.MoveWikiNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDrivePartUploadDriveFile(func(ctx context.Context, request *lark.PartUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.PartUploadDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDrivePartUploadDriveFile() + + _, _, err := moduleCli.PartUploadDriveFile(ctx, &lark.PartUploadDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDrivePartUploadDriveMedia(func(ctx context.Context, request *lark.PartUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.PartUploadDriveMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDrivePartUploadDriveMedia() + + _, _, err := moduleCli.PartUploadDriveMedia(ctx, &lark.PartUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDrivePrepareUploadDriveFile(func(ctx context.Context, request *lark.PrepareUploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.PrepareUploadDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDrivePrepareUploadDriveFile() + + _, _, err := moduleCli.PrepareUploadDriveFile(ctx, &lark.PrepareUploadDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDrivePrepareUploadDriveMedia(func(ctx context.Context, request *lark.PrepareUploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.PrepareUploadDriveMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDrivePrepareUploadDriveMedia() + + _, _, err := moduleCli.PrepareUploadDriveMedia(ctx, &lark.PrepareUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDrivePrependSheetValue(func(ctx context.Context, request *lark.PrependSheetValueReq, options ...lark.MethodOptionFunc) (*lark.PrependSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDrivePrependSheetValue() + + _, _, err := moduleCli.PrependSheetValue(ctx, &lark.PrependSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveQuerySheetFilterViewCondition(func(ctx context.Context, request *lark.QuerySheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFilterViewConditionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveQuerySheetFilterViewCondition() + + _, _, err := moduleCli.QuerySheetFilterViewCondition(ctx, &lark.QuerySheetFilterViewConditionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveQuerySheetFilterView(func(ctx context.Context, request *lark.QuerySheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFilterViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveQuerySheetFilterView() + + _, _, err := moduleCli.QuerySheetFilterView(ctx, &lark.QuerySheetFilterViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveQuerySheetFloatImage(func(ctx context.Context, request *lark.QuerySheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.QuerySheetFloatImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveQuerySheetFloatImage() + + _, _, err := moduleCli.QuerySheetFloatImage(ctx, &lark.QuerySheetFloatImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveReplaceSheet(func(ctx context.Context, request *lark.ReplaceSheetReq, options ...lark.MethodOptionFunc) (*lark.ReplaceSheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveReplaceSheet() + + _, _, err := moduleCli.ReplaceSheet(ctx, &lark.ReplaceSheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSearchDriveFile(func(ctx context.Context, request *lark.SearchDriveFileReq, options ...lark.MethodOptionFunc) (*lark.SearchDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSearchDriveFile() + + _, _, err := moduleCli.SearchDriveFile(ctx, &lark.SearchDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSearchWikiNode(func(ctx context.Context, request *lark.SearchWikiNodeReq, options ...lark.MethodOptionFunc) (*lark.SearchWikiNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSearchWikiNode() + + _, _, err := moduleCli.SearchWikiNode(ctx, &lark.SearchWikiNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSetSheetStyle(func(ctx context.Context, request *lark.SetSheetStyleReq, options ...lark.MethodOptionFunc) (*lark.SetSheetStyleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSetSheetStyle() + + _, _, err := moduleCli.SetSheetStyle(ctx, &lark.SetSheetStyleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSetSheetValueImage(func(ctx context.Context, request *lark.SetSheetValueImageReq, options ...lark.MethodOptionFunc) (*lark.SetSheetValueImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSetSheetValueImage() + + _, _, err := moduleCli.SetSheetValueImage(ctx, &lark.SetSheetValueImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSetSheetValue(func(ctx context.Context, request *lark.SetSheetValueReq, options ...lark.MethodOptionFunc) (*lark.SetSheetValueResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSetSheetValue() + + _, _, err := moduleCli.SetSheetValue(ctx, &lark.SetSheetValueReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveSubscribeDriveFile(func(ctx context.Context, request *lark.SubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.SubscribeDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveSubscribeDriveFile() + + _, _, err := moduleCli.SubscribeDriveFile(ctx, &lark.SubscribeDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveTransferDriveMemberPermission(func(ctx context.Context, request *lark.TransferDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.TransferDriveMemberPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveTransferDriveMemberPermission() + + _, _, err := moduleCli.TransferDriveMemberPermission(ctx, &lark.TransferDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveTransferDriveOwnerPermission(func(ctx context.Context, request *lark.TransferDriveOwnerPermissionReq, options ...lark.MethodOptionFunc) (*lark.TransferDriveOwnerPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveTransferDriveOwnerPermission() + + _, _, err := moduleCli.TransferDriveOwnerPermission(ctx, &lark.TransferDriveOwnerPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUnmergeSheetCell(func(ctx context.Context, request *lark.UnmergeSheetCellReq, options ...lark.MethodOptionFunc) (*lark.UnmergeSheetCellResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUnmergeSheetCell() + + _, _, err := moduleCli.UnmergeSheetCell(ctx, &lark.UnmergeSheetCellReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUnsubscribeDriveFile(func(ctx context.Context, request *lark.UnsubscribeDriveFileReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUnsubscribeDriveFile() + + _, _, err := moduleCli.UnsubscribeDriveFile(ctx, &lark.UnsubscribeDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDocxBlock(func(ctx context.Context, request *lark.UpdateDocxBlockReq, options ...lark.MethodOptionFunc) (*lark.UpdateDocxBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDocxBlock() + + _, _, err := moduleCli.UpdateDocxBlock(ctx, &lark.UpdateDocxBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveCommentPatch(func(ctx context.Context, request *lark.UpdateDriveCommentPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveCommentPatchResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveCommentPatch() + + _, _, err := moduleCli.UpdateDriveCommentPatch(ctx, &lark.UpdateDriveCommentPatchReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveComment(func(ctx context.Context, request *lark.UpdateDriveCommentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveComment() + + _, _, err := moduleCli.UpdateDriveComment(ctx, &lark.UpdateDriveCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveDocContent(func(ctx context.Context, request *lark.UpdateDriveDocContentReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveDocContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveDocContent() + + _, _, err := moduleCli.UpdateDriveDocContent(ctx, &lark.UpdateDriveDocContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveFileSubscription(func(ctx context.Context, request *lark.UpdateDriveFileSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveFileSubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveFileSubscription() + + _, _, err := moduleCli.UpdateDriveFileSubscription(ctx, &lark.UpdateDriveFileSubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveMemberPermissionOld(func(ctx context.Context, request *lark.UpdateDriveMemberPermissionOldReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveMemberPermissionOldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveMemberPermissionOld() + + _, _, err := moduleCli.UpdateDriveMemberPermissionOld(ctx, &lark.UpdateDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDriveMemberPermission(func(ctx context.Context, request *lark.UpdateDriveMemberPermissionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDriveMemberPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDriveMemberPermission() + + _, _, err := moduleCli.UpdateDriveMemberPermission(ctx, &lark.UpdateDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDrivePermissionPublicPassword(func(ctx context.Context, request *lark.UpdateDrivePermissionPublicPasswordReq, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePermissionPublicPasswordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDrivePermissionPublicPassword() + + _, _, err := moduleCli.UpdateDrivePermissionPublicPassword(ctx, &lark.UpdateDrivePermissionPublicPasswordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDrivePublicPermissionV2(func(ctx context.Context, request *lark.UpdateDrivePublicPermissionV2Req, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePublicPermissionV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDrivePublicPermissionV2() + + _, _, err := moduleCli.UpdateDrivePublicPermissionV2(ctx, &lark.UpdateDrivePublicPermissionV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateDrivePublicPermission(func(ctx context.Context, request *lark.UpdateDrivePublicPermissionReq, options ...lark.MethodOptionFunc) (*lark.UpdateDrivePublicPermissionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateDrivePublicPermission() + + _, _, err := moduleCli.UpdateDrivePublicPermission(ctx, &lark.UpdateDrivePublicPermissionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetConditionFormat(func(ctx context.Context, request *lark.UpdateSheetConditionFormatReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetConditionFormatResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetConditionFormat() + + _, _, err := moduleCli.UpdateSheetConditionFormat(ctx, &lark.UpdateSheetConditionFormatReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetDataValidationDropdown(func(ctx context.Context, request *lark.UpdateSheetDataValidationDropdownReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetDataValidationDropdownResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetDataValidationDropdown() + + _, _, err := moduleCli.UpdateSheetDataValidationDropdown(ctx, &lark.UpdateSheetDataValidationDropdownReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetDimensionRange(func(ctx context.Context, request *lark.UpdateSheetDimensionRangeReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetDimensionRangeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetDimensionRange() + + _, _, err := moduleCli.UpdateSheetDimensionRange(ctx, &lark.UpdateSheetDimensionRangeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetFilterViewCondition(func(ctx context.Context, request *lark.UpdateSheetFilterViewConditionReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterViewConditionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetFilterViewCondition() + + _, _, err := moduleCli.UpdateSheetFilterViewCondition(ctx, &lark.UpdateSheetFilterViewConditionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetFilterView(func(ctx context.Context, request *lark.UpdateSheetFilterViewReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetFilterView() + + _, _, err := moduleCli.UpdateSheetFilterView(ctx, &lark.UpdateSheetFilterViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetFilter(func(ctx context.Context, request *lark.UpdateSheetFilterReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFilterResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetFilter() + + _, _, err := moduleCli.UpdateSheetFilter(ctx, &lark.UpdateSheetFilterReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetFloatImage(func(ctx context.Context, request *lark.UpdateSheetFloatImageReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetFloatImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetFloatImage() + + _, _, err := moduleCli.UpdateSheetFloatImage(ctx, &lark.UpdateSheetFloatImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetProperty(func(ctx context.Context, request *lark.UpdateSheetPropertyReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetPropertyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetProperty() + + _, _, err := moduleCli.UpdateSheetProperty(ctx, &lark.UpdateSheetPropertyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSheetProtectedDimension(func(ctx context.Context, request *lark.UpdateSheetProtectedDimensionReq, options ...lark.MethodOptionFunc) (*lark.UpdateSheetProtectedDimensionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSheetProtectedDimension() + + _, _, err := moduleCli.UpdateSheetProtectedDimension(ctx, &lark.UpdateSheetProtectedDimensionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateSpreadsheet(func(ctx context.Context, request *lark.UpdateSpreadsheetReq, options ...lark.MethodOptionFunc) (*lark.UpdateSpreadsheetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateSpreadsheet() + + _, _, err := moduleCli.UpdateSpreadsheet(ctx, &lark.UpdateSpreadsheetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateWikiNodeTitle(func(ctx context.Context, request *lark.UpdateWikiNodeTitleReq, options ...lark.MethodOptionFunc) (*lark.UpdateWikiNodeTitleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateWikiNodeTitle() + + _, _, err := moduleCli.UpdateWikiNodeTitle(ctx, &lark.UpdateWikiNodeTitleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateWikiSpaceSetting(func(ctx context.Context, request *lark.UpdateWikiSpaceSettingReq, options ...lark.MethodOptionFunc) (*lark.UpdateWikiSpaceSettingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateWikiSpaceSetting() + + _, _, err := moduleCli.UpdateWikiSpaceSetting(ctx, &lark.UpdateWikiSpaceSettingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUploadDriveFile(func(ctx context.Context, request *lark.UploadDriveFileReq, options ...lark.MethodOptionFunc) (*lark.UploadDriveFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUploadDriveFile() + + _, _, err := moduleCli.UploadDriveFile(ctx, &lark.UploadDriveFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUploadDriveMedia(func(ctx context.Context, request *lark.UploadDriveMediaReq, options ...lark.MethodOptionFunc) (*lark.UploadDriveMediaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUploadDriveMedia() + + _, _, err := moduleCli.UploadDriveMedia(ctx, &lark.UploadDriveMediaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetWhiteboardNodeList(func(ctx context.Context, request *lark.GetWhiteboardNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWhiteboardNodeListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetWhiteboardNodeList() + + _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchDeleteDocxChatAnnouncementBlockChildren(func(ctx context.Context, request *lark.BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteDocxChatAnnouncementBlockChildrenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchDeleteDocxChatAnnouncementBlockChildren() + + _, _, err := moduleCli.BatchDeleteDocxChatAnnouncementBlockChildren(ctx, &lark.BatchDeleteDocxChatAnnouncementBlockChildrenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDocxChatAnnouncementBlockChildren(func(ctx context.Context, request *lark.CreateDocxChatAnnouncementBlockChildrenReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxChatAnnouncementBlockChildrenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDocxChatAnnouncementBlockChildren() + + _, _, err := moduleCli.CreateDocxChatAnnouncementBlockChildren(ctx, &lark.CreateDocxChatAnnouncementBlockChildrenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxChatAnnouncementBlockChildren(func(ctx context.Context, request *lark.GetDocxChatAnnouncementBlockChildrenReq, options ...lark.MethodOptionFunc) (*lark.GetDocxChatAnnouncementBlockChildrenResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxChatAnnouncementBlockChildren() + + _, _, err := moduleCli.GetDocxChatAnnouncementBlockChildren(ctx, &lark.GetDocxChatAnnouncementBlockChildrenReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchUpdateDocxChatAnnouncementBlock(func(ctx context.Context, request *lark.BatchUpdateDocxChatAnnouncementBlockReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateDocxChatAnnouncementBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchUpdateDocxChatAnnouncementBlock() + + _, _, err := moduleCli.BatchUpdateDocxChatAnnouncementBlock(ctx, &lark.BatchUpdateDocxChatAnnouncementBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxChatAnnouncementBlock(func(ctx context.Context, request *lark.GetDocxChatAnnouncementBlockReq, options ...lark.MethodOptionFunc) (*lark.GetDocxChatAnnouncementBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxChatAnnouncementBlock() + + _, _, err := moduleCli.GetDocxChatAnnouncementBlock(ctx, &lark.GetDocxChatAnnouncementBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveListDocxChatAnnouncementBlock(func(ctx context.Context, request *lark.ListDocxChatAnnouncementBlockReq, options ...lark.MethodOptionFunc) (*lark.ListDocxChatAnnouncementBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveListDocxChatAnnouncementBlock() + + _, _, err := moduleCli.ListDocxChatAnnouncementBlock(ctx, &lark.ListDocxChatAnnouncementBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocxChatAnnouncement(func(ctx context.Context, request *lark.GetDocxChatAnnouncementReq, options ...lark.MethodOptionFunc) (*lark.GetDocxChatAnnouncementResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocxChatAnnouncement() + + _, _, err := moduleCli.GetDocxChatAnnouncement(ctx, &lark.GetDocxChatAnnouncementReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDocxDocumentBlockDescendant(func(ctx context.Context, request *lark.CreateDocxDocumentBlockDescendantReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxDocumentBlockDescendantResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDocxDocumentBlockDescendant() + + _, _, err := moduleCli.CreateDocxDocumentBlockDescendant(ctx, &lark.CreateDocxDocumentBlockDescendantReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveBatchUpdateDocxDocumentBlock(func(ctx context.Context, request *lark.BatchUpdateDocxDocumentBlockReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateDocxDocumentBlockResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveBatchUpdateDocxDocumentBlock() + + _, _, err := moduleCli.BatchUpdateDocxDocumentBlock(ctx, &lark.BatchUpdateDocxDocumentBlockReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateDocxDocumentConvert(func(ctx context.Context, request *lark.CreateDocxDocumentConvertReq, options ...lark.MethodOptionFunc) (*lark.CreateDocxDocumentConvertResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateDocxDocumentConvert() + + _, _, err := moduleCli.CreateDocxDocumentConvert(ctx, &lark.CreateDocxDocumentConvertReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Drive + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddSheetDimensionRange(ctx, &lark.AddSheetDimensionRangeReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddWikiSpaceMember(ctx, &lark.AddWikiSpaceMemberReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AppendSheetValue(ctx, &lark.AppendSheetValueReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateDrivePermissionMember(ctx, &lark.BatchCreateDrivePermissionMemberReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteDocxBlock(ctx, &lark.BatchDeleteDocxBlockReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetDriveComment(ctx, &lark.BatchGetDriveCommentReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetDriveMediaTmpDownloadURL(ctx, &lark.BatchGetDriveMediaTmpDownloadURLReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetSheetValue(ctx, &lark.BatchGetSheetValueReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchSetSheetStyle(ctx, &lark.BatchSetSheetStyleReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchSetSheetValue(ctx, &lark.BatchSetSheetValueReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateSheet(ctx, &lark.BatchUpdateSheetReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CheckDriveMemberPermissionOld(ctx, &lark.CheckDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CheckDriveMemberPermission(ctx, &lark.CheckDriveMemberPermissionReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CopyDriveFile(ctx, &lark.CopyDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CopyWikiNode(ctx, &lark.CopyWikiNodeReq{ + SpaceID: "x", + NodeToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDocxBlock(ctx, &lark.CreateDocxBlockReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDocx(ctx, &lark.CreateDocxReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveComment(ctx, &lark.CreateDriveCommentReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveDoc(ctx, &lark.CreateDriveDocReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveExportTask(ctx, &lark.CreateDriveExportTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveFileShortcut(ctx, &lark.CreateDriveFileShortcutReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveFileSubscription(ctx, &lark.CreateDriveFileSubscriptionReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveFileVersion(ctx, &lark.CreateDriveFileVersionReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveFile(ctx, &lark.CreateDriveFileReq{ + FolderToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveFolder(ctx, &lark.CreateDriveFolderReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveImportTask(ctx, &lark.CreateDriveImportTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveMemberPermissionOld(ctx, &lark.CreateDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDriveMemberPermission(ctx, &lark.CreateDriveMemberPermissionReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDrivePermissionPublicPassword(ctx, &lark.CreateDrivePermissionPublicPasswordReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetConditionFormat(ctx, &lark.CreateSheetConditionFormatReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetDataValidationDropdown(ctx, &lark.CreateSheetDataValidationDropdownReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetFilterViewCondition(ctx, &lark.CreateSheetFilterViewConditionReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetFilterView(ctx, &lark.CreateSheetFilterViewReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetFilter(ctx, &lark.CreateSheetFilterReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetFloatImage(ctx, &lark.CreateSheetFloatImageReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSheetProtectedDimension(ctx, &lark.CreateSheetProtectedDimensionReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateSpreadsheet(ctx, &lark.CreateSpreadsheetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateWikiNode(ctx, &lark.CreateWikiNodeReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateWikiSpace(ctx, &lark.CreateWikiSpaceReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveComment(ctx, &lark.DeleteDriveCommentReq{ + FileToken: "x", + CommentID: "x", + ReplyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveFileVersion(ctx, &lark.DeleteDriveFileVersionReq{ + FileToken: "x", + VersionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveFile(ctx, &lark.DeleteDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveMemberPermissionOld(ctx, &lark.DeleteDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveMemberPermission(ctx, &lark.DeleteDriveMemberPermissionReq{ + Token: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDrivePermissionPublicPassword(ctx, &lark.DeleteDrivePermissionPublicPasswordReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteDriveSheetFile(ctx, &lark.DeleteDriveSheetFileReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetConditionFormat(ctx, &lark.DeleteSheetConditionFormatReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetDataValidationDropdown(ctx, &lark.DeleteSheetDataValidationDropdownReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetDimensionRange(ctx, &lark.DeleteSheetDimensionRangeReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetFilterViewCondition(ctx, &lark.DeleteSheetFilterViewConditionReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + ConditionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetFilterView(ctx, &lark.DeleteSheetFilterViewReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetFilter(ctx, &lark.DeleteSheetFilterReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetFloatImage(ctx, &lark.DeleteSheetFloatImageReq{ + SpreadSheetToken: "x", + SheetID: "x", + FloatImageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteSheetProtectedDimension(ctx, &lark.DeleteSheetProtectedDimensionReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteWikiSpaceMember(ctx, &lark.DeleteWikiSpaceMemberReq{ + SpaceID: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadDriveExportTask(ctx, &lark.DownloadDriveExportTaskReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadDriveFile(ctx, &lark.DownloadDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadDriveMedia(ctx, &lark.DownloadDriveMediaReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.FindSheet(ctx, &lark.FindSheetReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.FinishUploadDriveFile(ctx, &lark.FinishUploadDriveFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.FinishUploadDriveMedia(ctx, &lark.FinishUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxBlockListOfBlock(ctx, &lark.GetDocxBlockListOfBlockReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxBlockListOfDocument(ctx, &lark.GetDocxBlockListOfDocumentReq{ + DocumentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxBlock(ctx, &lark.GetDocxBlockReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxDocumentRawContent(ctx, &lark.GetDocxDocumentRawContentReq{ + DocumentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxDocument(ctx, &lark.GetDocxDocumentReq{ + DocumentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveCommentList(ctx, &lark.GetDriveCommentListReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveCommentReplyList(ctx, &lark.GetDriveCommentReplyListReq{ + FileToken: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveComment(ctx, &lark.GetDriveCommentReq{ + FileToken: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveDocContent(ctx, &lark.GetDriveDocContentReq{ + DocToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveDocMeta(ctx, &lark.GetDriveDocMetaReq{ + DocToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveDocRawContent(ctx, &lark.GetDriveDocRawContentReq{ + DocToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveExportTask(ctx, &lark.GetDriveExportTaskReq{ + Ticket: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileList(ctx, &lark.GetDriveFileListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileMeta(ctx, &lark.GetDriveFileMetaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileStatistics(ctx, &lark.GetDriveFileStatisticsReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileSubscription(ctx, &lark.GetDriveFileSubscriptionReq{ + FileToken: "x", + SubscriptionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileTask(ctx, &lark.GetDriveFileTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileVersionList(ctx, &lark.GetDriveFileVersionListReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileVersion(ctx, &lark.GetDriveFileVersionReq{ + FileToken: "x", + VersionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFileViewRecordList(ctx, &lark.GetDriveFileViewRecordListReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFolderChildren(ctx, &lark.GetDriveFolderChildrenReq{ + FolderToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveFolderMeta(ctx, &lark.GetDriveFolderMetaReq{ + FolderToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveImportTask(ctx, &lark.GetDriveImportTaskReq{ + Ticket: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveMemberPermissionListOld(ctx, &lark.GetDriveMemberPermissionListOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveMemberPermissionList(ctx, &lark.GetDriveMemberPermissionListReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDrivePublicPermissionOld(ctx, &lark.GetDrivePublicPermissionOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDrivePublicPermissionV2(ctx, &lark.GetDrivePublicPermissionV2Req{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDrivePublicPermission(ctx, &lark.GetDrivePublicPermissionReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveRootFolderMeta(ctx, &lark.GetDriveRootFolderMetaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDriveSheetDefaultImportResult(ctx, &lark.GetDriveSheetDefaultImportResultReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetConditionFormat(ctx, &lark.GetSheetConditionFormatReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetDataValidationDropdown(ctx, &lark.GetSheetDataValidationDropdownReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetFilterViewCondition(ctx, &lark.GetSheetFilterViewConditionReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + ConditionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetFilterView(ctx, &lark.GetSheetFilterViewReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetFilter(ctx, &lark.GetSheetFilterReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetFloatImage(ctx, &lark.GetSheetFloatImageReq{ + SpreadSheetToken: "x", + SheetID: "x", + FloatImageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetList(ctx, &lark.GetSheetListReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetMeta(ctx, &lark.GetSheetMetaReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetProtectedDimension(ctx, &lark.GetSheetProtectedDimensionReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheetValue(ctx, &lark.GetSheetValueReq{ + SpreadSheetToken: "x", + Range: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSheet(ctx, &lark.GetSheetReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSpreadsheet(ctx, &lark.GetSpreadsheetReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetSubscribeDriveFile(ctx, &lark.GetSubscribeDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWikiNode(ctx, &lark.GetWikiNodeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWikiSpaceList(ctx, &lark.GetWikiSpaceListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWikiSpace(ctx, &lark.GetWikiSpaceReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWikiTask(ctx, &lark.GetWikiTaskReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ImportSheet(ctx, &lark.ImportSheetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.InsertSheetDimensionRange(ctx, &lark.InsertSheetDimensionRangeReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListDriveFileLike(ctx, &lark.ListDriveFileLikeReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListWikiSpaceMember(ctx, &lark.ListWikiSpaceMemberReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MergeSheetCell(ctx, &lark.MergeSheetCellReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MoveDocsToWiki(ctx, &lark.MoveDocsToWikiReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MoveDriveFile(ctx, &lark.MoveDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MoveSheetDimension(ctx, &lark.MoveSheetDimensionReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MoveWikiNode(ctx, &lark.MoveWikiNodeReq{ + SpaceID: "x", + NodeToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.PartUploadDriveFile(ctx, &lark.PartUploadDriveFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.PartUploadDriveMedia(ctx, &lark.PartUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.PrepareUploadDriveFile(ctx, &lark.PrepareUploadDriveFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.PrepareUploadDriveMedia(ctx, &lark.PrepareUploadDriveMediaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.PrependSheetValue(ctx, &lark.PrependSheetValueReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QuerySheetFilterViewCondition(ctx, &lark.QuerySheetFilterViewConditionReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QuerySheetFilterView(ctx, &lark.QuerySheetFilterViewReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QuerySheetFloatImage(ctx, &lark.QuerySheetFloatImageReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ReplaceSheet(ctx, &lark.ReplaceSheetReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchDriveFile(ctx, &lark.SearchDriveFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchWikiNode(ctx, &lark.SearchWikiNodeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetSheetStyle(ctx, &lark.SetSheetStyleReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetSheetValueImage(ctx, &lark.SetSheetValueImageReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetSheetValue(ctx, &lark.SetSheetValueReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeDriveFile(ctx, &lark.SubscribeDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.TransferDriveMemberPermission(ctx, &lark.TransferDriveMemberPermissionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.TransferDriveOwnerPermission(ctx, &lark.TransferDriveOwnerPermissionReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnmergeSheetCell(ctx, &lark.UnmergeSheetCellReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeDriveFile(ctx, &lark.UnsubscribeDriveFileReq{ + FileToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDocxBlock(ctx, &lark.UpdateDocxBlockReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveCommentPatch(ctx, &lark.UpdateDriveCommentPatchReq{ + FileToken: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveComment(ctx, &lark.UpdateDriveCommentReq{ + FileToken: "x", + CommentID: "x", + ReplyID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveDocContent(ctx, &lark.UpdateDriveDocContentReq{ + DocToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveFileSubscription(ctx, &lark.UpdateDriveFileSubscriptionReq{ + FileToken: "x", + SubscriptionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveMemberPermissionOld(ctx, &lark.UpdateDriveMemberPermissionOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDriveMemberPermission(ctx, &lark.UpdateDriveMemberPermissionReq{ + Token: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDrivePermissionPublicPassword(ctx, &lark.UpdateDrivePermissionPublicPasswordReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDrivePublicPermissionV2(ctx, &lark.UpdateDrivePublicPermissionV2Req{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateDrivePublicPermission(ctx, &lark.UpdateDrivePublicPermissionReq{ + Token: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetConditionFormat(ctx, &lark.UpdateSheetConditionFormatReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetDataValidationDropdown(ctx, &lark.UpdateSheetDataValidationDropdownReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetDimensionRange(ctx, &lark.UpdateSheetDimensionRangeReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetFilterViewCondition(ctx, &lark.UpdateSheetFilterViewConditionReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + ConditionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetFilterView(ctx, &lark.UpdateSheetFilterViewReq{ + SpreadSheetToken: "x", + SheetID: "x", + FilterViewID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetFilter(ctx, &lark.UpdateSheetFilterReq{ + SpreadSheetToken: "x", + SheetID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetFloatImage(ctx, &lark.UpdateSheetFloatImageReq{ + SpreadSheetToken: "x", + SheetID: "x", + FloatImageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetProperty(ctx, &lark.UpdateSheetPropertyReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSheetProtectedDimension(ctx, &lark.UpdateSheetProtectedDimensionReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateSpreadsheet(ctx, &lark.UpdateSpreadsheetReq{ + SpreadSheetToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateWikiNodeTitle(ctx, &lark.UpdateWikiNodeTitleReq{ + SpaceID: "x", + NodeToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateWikiSpaceSetting(ctx, &lark.UpdateWikiSpaceSettingReq{ + SpaceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadDriveFile(ctx, &lark.UploadDriveFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadDriveMedia(ctx, &lark.UploadDriveMediaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteDocxChatAnnouncementBlockChildren(ctx, &lark.BatchDeleteDocxChatAnnouncementBlockChildrenReq{ + ChatID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDocxChatAnnouncementBlockChildren(ctx, &lark.CreateDocxChatAnnouncementBlockChildrenReq{ + ChatID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxChatAnnouncementBlockChildren(ctx, &lark.GetDocxChatAnnouncementBlockChildrenReq{ + ChatID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateDocxChatAnnouncementBlock(ctx, &lark.BatchUpdateDocxChatAnnouncementBlockReq{ + ChatID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxChatAnnouncementBlock(ctx, &lark.GetDocxChatAnnouncementBlockReq{ + ChatID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListDocxChatAnnouncementBlock(ctx, &lark.ListDocxChatAnnouncementBlockReq{ + ChatID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocxChatAnnouncement(ctx, &lark.GetDocxChatAnnouncementReq{ + ChatID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDocxDocumentBlockDescendant(ctx, &lark.CreateDocxDocumentBlockDescendantReq{ + DocumentID: "x", + BlockID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateDocxDocumentBlock(ctx, &lark.BatchUpdateDocxDocumentBlockReq{ + DocumentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateDocxDocumentConvert(ctx, &lark.CreateDocxDocumentConvertReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/lingo_sample_test.go b/test/lingo_sample_test.go index 29a93759..91a42031 100644 --- a/test/lingo_sample_test.go +++ b/test/lingo_sample_test.go @@ -38,7 +38,7 @@ func Test_Lingo_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) + _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,12 +51,180 @@ func Test_Lingo_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockLingoBatchHighlightLingoEntity(func(ctx context.Context, request *lark.BatchHighlightLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.BatchHighlightLingoEntityResp, *lark.Response, error) { + cli.Mock().MockLingoCreateLingoDraft(func(ctx context.Context, request *lark.CreateLingoDraftReq, options ...lark.MethodOptionFunc) (*lark.CreateLingoDraftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockLingoBatchHighlightLingoEntity() + defer cli.Mock().UnMockLingoCreateLingoDraft() - _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) + _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoUpdateLingoDraft(func(ctx context.Context, request *lark.UpdateLingoDraftReq, options ...lark.MethodOptionFunc) (*lark.UpdateLingoDraftResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoUpdateLingoDraft() + + _, _, err := moduleCli.UpdateLingoDraft(ctx, &lark.UpdateLingoDraftReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoDeleteLingoEntity(func(ctx context.Context, request *lark.DeleteLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.DeleteLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoDeleteLingoEntity() + + _, _, err := moduleCli.DeleteLingoEntity(ctx, &lark.DeleteLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoCreateLingoEntity(func(ctx context.Context, request *lark.CreateLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.CreateLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoCreateLingoEntity() + + _, _, err := moduleCli.CreateLingoEntity(ctx, &lark.CreateLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoUpdateLingoEntity(func(ctx context.Context, request *lark.UpdateLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.UpdateLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoUpdateLingoEntity() + + _, _, err := moduleCli.UpdateLingoEntity(ctx, &lark.UpdateLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoGetLingoEntity(func(ctx context.Context, request *lark.GetLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.GetLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoGetLingoEntity() + + _, _, err := moduleCli.GetLingoEntity(ctx, &lark.GetLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoGetLingoEntityList(func(ctx context.Context, request *lark.GetLingoEntityListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoEntityListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoGetLingoEntityList() + + _, _, err := moduleCli.GetLingoEntityList(ctx, &lark.GetLingoEntityListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoMatchLingoEntity(func(ctx context.Context, request *lark.MatchLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.MatchLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoMatchLingoEntity() + + _, _, err := moduleCli.MatchLingoEntity(ctx, &lark.MatchLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoSearchLingoEntity(func(ctx context.Context, request *lark.SearchLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.SearchLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoSearchLingoEntity() + + _, _, err := moduleCli.SearchLingoEntity(ctx, &lark.SearchLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoHighlightLingoEntity(func(ctx context.Context, request *lark.HighlightLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.HighlightLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoHighlightLingoEntity() + + _, _, err := moduleCli.HighlightLingoEntity(ctx, &lark.HighlightLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoExtractLingoEntity(func(ctx context.Context, request *lark.ExtractLingoEntityReq, options ...lark.MethodOptionFunc) (*lark.ExtractLingoEntityResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoExtractLingoEntity() + + _, _, err := moduleCli.ExtractLingoEntity(ctx, &lark.ExtractLingoEntityReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoGetLingoClassificationList(func(ctx context.Context, request *lark.GetLingoClassificationListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoClassificationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoGetLingoClassificationList() + + _, _, err := moduleCli.GetLingoClassificationList(ctx, &lark.GetLingoClassificationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoGetLingoRepoList(func(ctx context.Context, request *lark.GetLingoRepoListReq, options ...lark.MethodOptionFunc) (*lark.GetLingoRepoListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoGetLingoRepoList() + + _, _, err := moduleCli.GetLingoRepoList(ctx, &lark.GetLingoRepoListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoUploadLingoFile(func(ctx context.Context, request *lark.UploadLingoFileReq, options ...lark.MethodOptionFunc) (*lark.UploadLingoFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoUploadLingoFile() + + _, _, err := moduleCli.UploadLingoFile(ctx, &lark.UploadLingoFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockLingoDownloadLingoFile(func(ctx context.Context, request *lark.DownloadLingoFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadLingoFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockLingoDownloadLingoFile() + + _, _, err := moduleCli.DownloadLingoFile(ctx, &lark.DownloadLingoFileReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -72,7 +240,115 @@ func Test_Lingo_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchHighlightLingoEntity(ctx, &lark.BatchHighlightLingoEntityReq{}) + _, _, err := moduleCli.CreateLingoDraft(ctx, &lark.CreateLingoDraftReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateLingoDraft(ctx, &lark.UpdateLingoDraftReq{ + DraftID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteLingoEntity(ctx, &lark.DeleteLingoEntityReq{ + EntityID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateLingoEntity(ctx, &lark.CreateLingoEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateLingoEntity(ctx, &lark.UpdateLingoEntityReq{ + EntityID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetLingoEntity(ctx, &lark.GetLingoEntityReq{ + EntityID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetLingoEntityList(ctx, &lark.GetLingoEntityListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MatchLingoEntity(ctx, &lark.MatchLingoEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchLingoEntity(ctx, &lark.SearchLingoEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.HighlightLingoEntity(ctx, &lark.HighlightLingoEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ExtractLingoEntity(ctx, &lark.ExtractLingoEntityReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetLingoClassificationList(ctx, &lark.GetLingoClassificationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetLingoRepoList(ctx, &lark.GetLingoRepoListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadLingoFile(ctx, &lark.UploadLingoFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadLingoFile(ctx, &lark.DownloadLingoFileReq{ + FileToken: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/mail_sample_test.go b/test/mail_sample_test.go index b861ec35..68b9e56a 100644 --- a/test/mail_sample_test.go +++ b/test/mail_sample_test.go @@ -38,7 +38,7 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{}) + _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,489 +51,1412 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockMailApplyMailRule(func(ctx context.Context, request *lark.ApplyMailRuleReq, options ...lark.MethodOptionFunc) (*lark.ApplyMailRuleResp, *lark.Response, error) { + cli.Mock().MockMailGetMailUser(func(ctx context.Context, request *lark.GetMailUserReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailApplyMailRule() + defer cli.Mock().UnMockMailGetMailUser() - _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{}) + _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateUserMailboxMailContact(func(ctx context.Context, request *lark.CreateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.CreateUserMailboxMailContactResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailGroup(func(ctx context.Context, request *lark.CreateMailGroupReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateUserMailboxMailContact() + defer cli.Mock().UnMockMailCreateMailGroup() - _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{}) + _, _, err := moduleCli.CreateMailGroup(ctx, &lark.CreateMailGroupReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxFolder(func(ctx context.Context, request *lark.CreateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxFolderResp, *lark.Response, error) { + cli.Mock().MockMailDeleteMailGroup(func(ctx context.Context, request *lark.DeleteMailGroupReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxFolder() + defer cli.Mock().UnMockMailDeleteMailGroup() - _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{}) + _, _, err := moduleCli.DeleteMailGroup(ctx, &lark.DeleteMailGroupReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxRule(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleResp, *lark.Response, error) { + cli.Mock().MockMailUpdateMailGroupPatch(func(ctx context.Context, request *lark.UpdateMailGroupPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailGroupPatchResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxRule() + defer cli.Mock().UnMockMailUpdateMailGroupPatch() - _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{}) + _, _, err := moduleCli.UpdateMailGroupPatch(ctx, &lark.UpdateMailGroupPatchReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteUserMailboxMailContact(func(ctx context.Context, request *lark.DeleteUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.DeleteUserMailboxMailContactResp, *lark.Response, error) { + cli.Mock().MockMailUpdateMailGroup(func(ctx context.Context, request *lark.UpdateMailGroupReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteUserMailboxMailContact() + defer cli.Mock().UnMockMailUpdateMailGroup() - _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{}) + _, _, err := moduleCli.UpdateMailGroup(ctx, &lark.UpdateMailGroupReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailUserMailboxFolder(func(ctx context.Context, request *lark.DeleteMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxFolderResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroup(func(ctx context.Context, request *lark.GetMailGroupReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteMailUserMailboxFolder() + defer cli.Mock().UnMockMailGetMailGroup() - _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{}) + _, _, err := moduleCli.GetMailGroup(ctx, &lark.GetMailGroupReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailDeleteMailUserMailboxRule(func(ctx context.Context, request *lark.DeleteMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxRuleResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupList(func(ctx context.Context, request *lark.GetMailGroupListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailDeleteMailUserMailboxRule() + defer cli.Mock().UnMockMailGetMailGroupList() - _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{}) + _, _, err := moduleCli.GetMailGroupList(ctx, &lark.GetMailGroupListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailListUserMailboxMailContact(func(ctx context.Context, request *lark.ListUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.ListUserMailboxMailContactResp, *lark.Response, error) { + cli.Mock().MockMailBatchCreateMailGroupManager(func(ctx context.Context, request *lark.BatchCreateMailGroupManagerReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupManagerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailListUserMailboxMailContact() + defer cli.Mock().UnMockMailBatchCreateMailGroupManager() - _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{}) + _, _, err := moduleCli.BatchCreateMailGroupManager(ctx, &lark.BatchCreateMailGroupManagerReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailUserMailboxEventSubscription(func(ctx context.Context, request *lark.GetMailUserMailboxEventSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxEventSubscriptionResp, *lark.Response, error) { + cli.Mock().MockMailBatchDeleteMailGroupManager(func(ctx context.Context, request *lark.BatchDeleteMailGroupManagerReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupManagerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailUserMailboxEventSubscription() + defer cli.Mock().UnMockMailBatchDeleteMailGroupManager() - _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{}) + _, _, err := moduleCli.BatchDeleteMailGroupManager(ctx, &lark.BatchDeleteMailGroupManagerReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailListMailUserMailboxFolder(func(ctx context.Context, request *lark.ListMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxFolderResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupManagerList(func(ctx context.Context, request *lark.GetMailGroupManagerListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupManagerListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailListMailUserMailboxFolder() + defer cli.Mock().UnMockMailGetMailGroupManagerList() - _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{}) + _, _, err := moduleCli.GetMailGroupManagerList(ctx, &lark.GetMailGroupManagerListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailUserMailboxMessage(func(ctx context.Context, request *lark.GetMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxMessageResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailGroupMember(func(ctx context.Context, request *lark.CreateMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailUserMailboxMessage() + defer cli.Mock().UnMockMailCreateMailGroupMember() - _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{}) + _, _, err := moduleCli.CreateMailGroupMember(ctx, &lark.CreateMailGroupMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailListMailUserMailboxMessage(func(ctx context.Context, request *lark.ListMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxMessageResp, *lark.Response, error) { + cli.Mock().MockMailDeleteMailGroupMember(func(ctx context.Context, request *lark.DeleteMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailListMailUserMailboxMessage() + defer cli.Mock().UnMockMailDeleteMailGroupMember() - _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{}) + _, _, err := moduleCli.DeleteMailGroupMember(ctx, &lark.DeleteMailGroupMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailGetMailMessageSubscription(func(ctx context.Context, request *lark.GetMailMessageSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetMailMessageSubscriptionResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupMember(func(ctx context.Context, request *lark.GetMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailGetMailMessageSubscription() + defer cli.Mock().UnMockMailGetMailGroupMember() - _, _, err := moduleCli.GetMailMessageSubscription(ctx, &lark.GetMailMessageSubscriptionReq{}) + _, _, err := moduleCli.GetMailGroupMember(ctx, &lark.GetMailGroupMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailListMailUserMailboxRule(func(ctx context.Context, request *lark.ListMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxRuleResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupMemberList(func(ctx context.Context, request *lark.GetMailGroupMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupMemberListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailListMailUserMailboxRule() + defer cli.Mock().UnMockMailGetMailGroupMemberList() - _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{}) + _, _, err := moduleCli.GetMailGroupMemberList(ctx, &lark.GetMailGroupMemberListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxRuleReorder(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReorderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleReorderResp, *lark.Response, error) { + cli.Mock().MockMailBatchCreateMailGroupMember(func(ctx context.Context, request *lark.BatchCreateMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxRuleReorder() + defer cli.Mock().UnMockMailBatchCreateMailGroupMember() - _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{}) + _, _, err := moduleCli.BatchCreateMailGroupMember(ctx, &lark.BatchCreateMailGroupMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxMessageSend(func(ctx context.Context, request *lark.CreateMailUserMailboxMessageSendReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxMessageSendResp, *lark.Response, error) { + cli.Mock().MockMailBatchDeleteMailGroupMember(func(ctx context.Context, request *lark.BatchDeleteMailGroupMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxMessageSend() + defer cli.Mock().UnMockMailBatchDeleteMailGroupMember() - _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{}) + _, _, err := moduleCli.BatchDeleteMailGroupMember(ctx, &lark.BatchDeleteMailGroupMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailSubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.SubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeMailUserMailboxEventResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailGroupPermissionMember(func(ctx context.Context, request *lark.CreateMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupPermissionMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailSubscribeMailUserMailboxEvent() + defer cli.Mock().UnMockMailCreateMailGroupPermissionMember() - _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{}) + _, _, err := moduleCli.CreateMailGroupPermissionMember(ctx, &lark.CreateMailGroupPermissionMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailSubscribeMailMessage(func(ctx context.Context, request *lark.SubscribeMailMessageReq, options ...lark.MethodOptionFunc) (*lark.SubscribeMailMessageResp, *lark.Response, error) { + cli.Mock().MockMailDeleteMailGroupPermissionMember(func(ctx context.Context, request *lark.DeleteMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupPermissionMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailSubscribeMailMessage() + defer cli.Mock().UnMockMailDeleteMailGroupPermissionMember() - _, _, err := moduleCli.SubscribeMailMessage(ctx, &lark.SubscribeMailMessageReq{}) + _, _, err := moduleCli.DeleteMailGroupPermissionMember(ctx, &lark.DeleteMailGroupPermissionMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUnsubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.UnsubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeMailUserMailboxEventResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupPermissionMember(func(ctx context.Context, request *lark.GetMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupPermissionMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUnsubscribeMailUserMailboxEvent() + defer cli.Mock().UnMockMailGetMailGroupPermissionMember() - _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{}) + _, _, err := moduleCli.GetMailGroupPermissionMember(ctx, &lark.GetMailGroupPermissionMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUnsubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.UnsubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeMailUserMailboxEventResp, *lark.Response, error) { + cli.Mock().MockMailGetMailGroupPermissionMemberList(func(ctx context.Context, request *lark.GetMailGroupPermissionMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupPermissionMemberListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUnsubscribeMailUserMailboxEvent() + defer cli.Mock().UnMockMailGetMailGroupPermissionMemberList() - _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{}) + _, _, err := moduleCli.GetMailGroupPermissionMemberList(ctx, &lark.GetMailGroupPermissionMemberListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdateUserMailboxMailContact(func(ctx context.Context, request *lark.UpdateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserMailboxMailContactResp, *lark.Response, error) { + cli.Mock().MockMailBatchCreateMailGroupPermissionMember(func(ctx context.Context, request *lark.BatchCreateMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreateMailGroupPermissionMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUpdateUserMailboxMailContact() + defer cli.Mock().UnMockMailBatchCreateMailGroupPermissionMember() - _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{}) + _, _, err := moduleCli.BatchCreateMailGroupPermissionMember(ctx, &lark.BatchCreateMailGroupPermissionMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdateMailUserMailboxFolder(func(ctx context.Context, request *lark.UpdateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxFolderResp, *lark.Response, error) { + cli.Mock().MockMailBatchDeleteMailGroupPermissionMember(func(ctx context.Context, request *lark.BatchDeleteMailGroupPermissionMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMailGroupPermissionMemberResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUpdateMailUserMailboxFolder() + defer cli.Mock().UnMockMailBatchDeleteMailGroupPermissionMember() - _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{}) + _, _, err := moduleCli.BatchDeleteMailGroupPermissionMember(ctx, &lark.BatchDeleteMailGroupPermissionMemberReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMailUpdateMailUserMailboxRule(func(ctx context.Context, request *lark.UpdateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxRuleResp, *lark.Response, error) { + cli.Mock().MockMailCreateMailGroupAlias(func(ctx context.Context, request *lark.CreateMailGroupAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailGroupAliasResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailUpdateMailUserMailboxRule() + defer cli.Mock().UnMockMailCreateMailGroupAlias() - _, _, err := moduleCli.UpdateMailUserMailboxRule(ctx, &lark.UpdateMailUserMailboxRuleReq{}) + _, _, err := moduleCli.CreateMailGroupAlias(ctx, &lark.CreateMailGroupAliasReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Mail - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockMailGetMailGroupAliasList(func(ctx context.Context, request *lark.GetMailGroupAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailGroupAliasListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailGetMailGroupAliasList() + + _, _, err := moduleCli.GetMailGroupAliasList(ctx, &lark.GetMailGroupAliasListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ApplyMailRule(ctx, &lark.ApplyMailRuleReq{ - UserMailboxID: "x", - RuleID: "x", + cli.Mock().MockMailDeleteMailGroupAlias(func(ctx context.Context, request *lark.DeleteMailGroupAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailGroupAliasResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeleteMailGroupAlias() + + _, _, err := moduleCli.DeleteMailGroupAlias(ctx, &lark.DeleteMailGroupAliasReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{ - UserMailboxID: "x", + cli.Mock().MockMailCreatePublicMailbox(func(ctx context.Context, request *lark.CreatePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.CreatePublicMailboxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailCreatePublicMailbox() + + _, _, err := moduleCli.CreatePublicMailbox(ctx, &lark.CreatePublicMailboxReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetPublicMailbox(func(ctx context.Context, request *lark.GetPublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailGetPublicMailbox() + + _, _, err := moduleCli.GetPublicMailbox(ctx, &lark.GetPublicMailboxReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetPublicMailboxList(func(ctx context.Context, request *lark.GetPublicMailboxListReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailGetPublicMailboxList() + + _, _, err := moduleCli.GetPublicMailboxList(ctx, &lark.GetPublicMailboxListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{ - UserMailboxID: "x", - MailContactID: "x", + cli.Mock().MockMailUpdatePublicMailboxPatch(func(ctx context.Context, request *lark.UpdatePublicMailboxPatchReq, options ...lark.MethodOptionFunc) (*lark.UpdatePublicMailboxPatchResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailUpdatePublicMailboxPatch() + + _, _, err := moduleCli.UpdatePublicMailboxPatch(ctx, &lark.UpdatePublicMailboxPatchReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{ - UserMailboxID: "x", - FolderID: "x", + cli.Mock().MockMailUpdatePublicMailbox(func(ctx context.Context, request *lark.UpdatePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.UpdatePublicMailboxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailUpdatePublicMailbox() + + _, _, err := moduleCli.UpdatePublicMailbox(ctx, &lark.UpdatePublicMailboxReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{ - UserMailboxID: "x", - RuleID: "x", + cli.Mock().MockMailDeletePublicMailbox(func(ctx context.Context, request *lark.DeletePublicMailboxReq, options ...lark.MethodOptionFunc) (*lark.DeletePublicMailboxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeletePublicMailbox() + + _, _, err := moduleCli.DeletePublicMailbox(ctx, &lark.DeletePublicMailboxReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{ - UserMailboxID: "x", + cli.Mock().MockMailCreatePublicMailboxMember(func(ctx context.Context, request *lark.CreatePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.CreatePublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailCreatePublicMailboxMember() + + _, _, err := moduleCli.CreatePublicMailboxMember(ctx, &lark.CreatePublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetPublicMailboxMember(func(ctx context.Context, request *lark.GetPublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailGetPublicMailboxMember() + + _, _, err := moduleCli.GetPublicMailboxMember(ctx, &lark.GetPublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetPublicMailboxMemberList(func(ctx context.Context, request *lark.GetPublicMailboxMemberListReq, options ...lark.MethodOptionFunc) (*lark.GetPublicMailboxMemberListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailGetPublicMailboxMemberList() + + _, _, err := moduleCli.GetPublicMailboxMemberList(ctx, &lark.GetPublicMailboxMemberListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{ - UserMailboxID: "x", - MessageID: "x", + cli.Mock().MockMailBatchCreatePublicMailboxMember(func(ctx context.Context, request *lark.BatchCreatePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchCreatePublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailBatchCreatePublicMailboxMember() + + _, _, err := moduleCli.BatchCreatePublicMailboxMember(ctx, &lark.BatchCreatePublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{ - UserMailboxID: "x", + cli.Mock().MockMailBatchDeletePublicMailboxMember(func(ctx context.Context, request *lark.BatchDeletePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.BatchDeletePublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailBatchDeletePublicMailboxMember() + + _, _, err := moduleCli.BatchDeletePublicMailboxMember(ctx, &lark.BatchDeletePublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetMailMessageSubscription(ctx, &lark.GetMailMessageSubscriptionReq{ - UserMailboxID: "x", + cli.Mock().MockMailDeletePublicMailboxMember(func(ctx context.Context, request *lark.DeletePublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.DeletePublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeletePublicMailboxMember() + + _, _, err := moduleCli.DeletePublicMailboxMember(ctx, &lark.DeletePublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{ - UserMailboxID: "x", + cli.Mock().MockMailClearPublicMailboxMember(func(ctx context.Context, request *lark.ClearPublicMailboxMemberReq, options ...lark.MethodOptionFunc) (*lark.ClearPublicMailboxMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailClearPublicMailboxMember() + + _, _, err := moduleCli.ClearPublicMailboxMember(ctx, &lark.ClearPublicMailboxMemberReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{ - UserMailboxID: "x", + cli.Mock().MockMailCreateMailPublicMailboxAlias(func(ctx context.Context, request *lark.CreateMailPublicMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailPublicMailboxAliasResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailCreateMailPublicMailboxAlias() + + _, _, err := moduleCli.CreateMailPublicMailboxAlias(ctx, &lark.CreateMailPublicMailboxAliasReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetMailPublicMailboxAliasList(func(ctx context.Context, request *lark.GetMailPublicMailboxAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailPublicMailboxAliasListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailGetMailPublicMailboxAliasList() + + _, _, err := moduleCli.GetMailPublicMailboxAliasList(ctx, &lark.GetMailPublicMailboxAliasListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{ - UserMailboxID: "x", + cli.Mock().MockMailDeleteMailPublicMailboxAlias(func(ctx context.Context, request *lark.DeleteMailPublicMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailPublicMailboxAliasResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeleteMailPublicMailboxAlias() + + _, _, err := moduleCli.DeleteMailPublicMailboxAlias(ctx, &lark.DeleteMailPublicMailboxAliasReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SubscribeMailMessage(ctx, &lark.SubscribeMailMessageReq{ - UserMailboxID: "x", + cli.Mock().MockMailCreateMailUserMailboxAlias(func(ctx context.Context, request *lark.CreateMailUserMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxAliasResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailCreateMailUserMailboxAlias() + + _, _, err := moduleCli.CreateMailUserMailboxAlias(ctx, &lark.CreateMailUserMailboxAliasReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{ - UserMailboxID: "x", + cli.Mock().MockMailDeleteMailUserMailboxAlias(func(ctx context.Context, request *lark.DeleteMailUserMailboxAliasReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxAliasResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeleteMailUserMailboxAlias() + + _, _, err := moduleCli.DeleteMailUserMailboxAlias(ctx, &lark.DeleteMailUserMailboxAliasReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{ - UserMailboxID: "x", + cli.Mock().MockMailGetMailUserMailboxAliasList(func(ctx context.Context, request *lark.GetMailUserMailboxAliasListReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxAliasListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailGetMailUserMailboxAliasList() + + _, _, err := moduleCli.GetMailUserMailboxAliasList(ctx, &lark.GetMailUserMailboxAliasListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailDeleteMailUserMailbox(func(ctx context.Context, request *lark.DeleteMailUserMailboxReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailDeleteMailUserMailbox() + + _, _, err := moduleCli.DeleteMailUserMailbox(ctx, &lark.DeleteMailUserMailboxReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{ - UserMailboxID: "x", - MailContactID: "x", + cli.Mock().MockMailRemoveMailPublicMailboxToRecycleBin(func(ctx context.Context, request *lark.RemoveMailPublicMailboxToRecycleBinReq, options ...lark.MethodOptionFunc) (*lark.RemoveMailPublicMailboxToRecycleBinResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockMailRemoveMailPublicMailboxToRecycleBin() + + _, _, err := moduleCli.RemoveMailPublicMailboxToRecycleBin(ctx, &lark.RemoveMailPublicMailboxToRecycleBinReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{ - UserMailboxID: "x", - FolderID: "x", + cli.Mock().MockMailSubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.SubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.SubscribeMailUserMailboxEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailSubscribeMailUserMailboxEvent() + + _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailGetMailUserMailboxEventSubscription(func(ctx context.Context, request *lark.GetMailUserMailboxEventSubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxEventSubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailGetMailUserMailboxEventSubscription() + + _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailUnsubscribeMailUserMailboxEvent(func(ctx context.Context, request *lark.UnsubscribeMailUserMailboxEventReq, options ...lark.MethodOptionFunc) (*lark.UnsubscribeMailUserMailboxEventResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailUnsubscribeMailUserMailboxEvent() + + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailCreateMailUserMailboxFolder(func(ctx context.Context, request *lark.CreateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailCreateMailUserMailboxFolder() + + _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailDeleteMailUserMailboxFolder(func(ctx context.Context, request *lark.DeleteMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailDeleteMailUserMailboxFolder() + + _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailListMailUserMailboxFolder(func(ctx context.Context, request *lark.ListMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailListMailUserMailboxFolder() + + _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailUpdateMailUserMailboxFolder(func(ctx context.Context, request *lark.UpdateMailUserMailboxFolderReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxFolderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailUpdateMailUserMailboxFolder() + + _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailCreateUserMailboxMailContact(func(ctx context.Context, request *lark.CreateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.CreateUserMailboxMailContactResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailCreateUserMailboxMailContact() + + _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailDeleteUserMailboxMailContact(func(ctx context.Context, request *lark.DeleteUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.DeleteUserMailboxMailContactResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailDeleteUserMailboxMailContact() + + _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailListUserMailboxMailContact(func(ctx context.Context, request *lark.ListUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.ListUserMailboxMailContactResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailListUserMailboxMailContact() + + _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailUpdateUserMailboxMailContact(func(ctx context.Context, request *lark.UpdateUserMailboxMailContactReq, options ...lark.MethodOptionFunc) (*lark.UpdateUserMailboxMailContactResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailUpdateUserMailboxMailContact() + + _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailDownloadMailUserMailboxMessageAttachmentURL(func(ctx context.Context, request *lark.DownloadMailUserMailboxMessageAttachmentURLReq, options ...lark.MethodOptionFunc) (*lark.DownloadMailUserMailboxMessageAttachmentURLResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailDownloadMailUserMailboxMessageAttachmentURL() + + _, _, err := moduleCli.DownloadMailUserMailboxMessageAttachmentURL(ctx, &lark.DownloadMailUserMailboxMessageAttachmentURLReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailGetMailUserMailboxMessage(func(ctx context.Context, request *lark.GetMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailGetMailUserMailboxMessage() + + _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailGetMailUserMailboxMessageByCard(func(ctx context.Context, request *lark.GetMailUserMailboxMessageByCardReq, options ...lark.MethodOptionFunc) (*lark.GetMailUserMailboxMessageByCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailGetMailUserMailboxMessageByCard() + + _, _, err := moduleCli.GetMailUserMailboxMessageByCard(ctx, &lark.GetMailUserMailboxMessageByCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailListMailUserMailboxMessage(func(ctx context.Context, request *lark.ListMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailListMailUserMailboxMessage() + + _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailCreateMailUserMailboxMessageSend(func(ctx context.Context, request *lark.CreateMailUserMailboxMessageSendReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxMessageSendResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailCreateMailUserMailboxMessageSend() + + _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailCreateMailUserMailboxRule(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailCreateMailUserMailboxRule() + + _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailDeleteMailUserMailboxRule(func(ctx context.Context, request *lark.DeleteMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.DeleteMailUserMailboxRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailDeleteMailUserMailboxRule() + + _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailListMailUserMailboxRule(func(ctx context.Context, request *lark.ListMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.ListMailUserMailboxRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailListMailUserMailboxRule() + + _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailCreateMailUserMailboxRuleReorder(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReorderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleReorderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailCreateMailUserMailboxRuleReorder() + + _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMailUpdateMailUserMailboxRule(func(ctx context.Context, request *lark.UpdateMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateMailUserMailboxRuleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMailUpdateMailUserMailboxRule() + + _, _, err := moduleCli.UpdateMailUserMailboxRule(ctx, &lark.UpdateMailUserMailboxRuleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Mail + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailUser(ctx, &lark.GetMailUserReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailGroup(ctx, &lark.CreateMailGroupReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailGroup(ctx, &lark.DeleteMailGroupReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMailGroupPatch(ctx, &lark.UpdateMailGroupPatchReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMailGroup(ctx, &lark.UpdateMailGroupReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroup(ctx, &lark.GetMailGroupReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupList(ctx, &lark.GetMailGroupListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateMailGroupManager(ctx, &lark.BatchCreateMailGroupManagerReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteMailGroupManager(ctx, &lark.BatchDeleteMailGroupManagerReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupManagerList(ctx, &lark.GetMailGroupManagerListReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailGroupMember(ctx, &lark.CreateMailGroupMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailGroupMember(ctx, &lark.DeleteMailGroupMemberReq{ + MailGroupID: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupMember(ctx, &lark.GetMailGroupMemberReq{ + MailGroupID: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupMemberList(ctx, &lark.GetMailGroupMemberListReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateMailGroupMember(ctx, &lark.BatchCreateMailGroupMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteMailGroupMember(ctx, &lark.BatchDeleteMailGroupMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailGroupPermissionMember(ctx, &lark.CreateMailGroupPermissionMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailGroupPermissionMember(ctx, &lark.DeleteMailGroupPermissionMemberReq{ + MailGroupID: "x", + PermissionMemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupPermissionMember(ctx, &lark.GetMailGroupPermissionMemberReq{ + MailGroupID: "x", + PermissionMemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupPermissionMemberList(ctx, &lark.GetMailGroupPermissionMemberListReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreateMailGroupPermissionMember(ctx, &lark.BatchCreateMailGroupPermissionMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteMailGroupPermissionMember(ctx, &lark.BatchDeleteMailGroupPermissionMemberReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailGroupAlias(ctx, &lark.CreateMailGroupAliasReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailGroupAliasList(ctx, &lark.GetMailGroupAliasListReq{ + MailGroupID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailGroupAlias(ctx, &lark.DeleteMailGroupAliasReq{ + MailGroupID: "x", + AliasID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePublicMailbox(ctx, &lark.CreatePublicMailboxReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetPublicMailbox(ctx, &lark.GetPublicMailboxReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetPublicMailboxList(ctx, &lark.GetPublicMailboxListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdatePublicMailboxPatch(ctx, &lark.UpdatePublicMailboxPatchReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdatePublicMailbox(ctx, &lark.UpdatePublicMailboxReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeletePublicMailbox(ctx, &lark.DeletePublicMailboxReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreatePublicMailboxMember(ctx, &lark.CreatePublicMailboxMemberReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetPublicMailboxMember(ctx, &lark.GetPublicMailboxMemberReq{ + PublicMailboxID: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetPublicMailboxMemberList(ctx, &lark.GetPublicMailboxMemberListReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchCreatePublicMailboxMember(ctx, &lark.BatchCreatePublicMailboxMemberReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeletePublicMailboxMember(ctx, &lark.BatchDeletePublicMailboxMemberReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeletePublicMailboxMember(ctx, &lark.DeletePublicMailboxMemberReq{ + PublicMailboxID: "x", + MemberID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ClearPublicMailboxMember(ctx, &lark.ClearPublicMailboxMemberReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailPublicMailboxAlias(ctx, &lark.CreateMailPublicMailboxAliasReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailPublicMailboxAliasList(ctx, &lark.GetMailPublicMailboxAliasListReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailPublicMailboxAlias(ctx, &lark.DeleteMailPublicMailboxAliasReq{ + PublicMailboxID: "x", + AliasID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailUserMailboxAlias(ctx, &lark.CreateMailUserMailboxAliasReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailUserMailboxAlias(ctx, &lark.DeleteMailUserMailboxAliasReq{ + UserMailboxID: "x", + AliasID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailUserMailboxAliasList(ctx, &lark.GetMailUserMailboxAliasListReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailUserMailbox(ctx, &lark.DeleteMailUserMailboxReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveMailPublicMailboxToRecycleBin(ctx, &lark.RemoveMailPublicMailboxToRecycleBinReq{ + PublicMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SubscribeMailUserMailboxEvent(ctx, &lark.SubscribeMailUserMailboxEventReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailUserMailboxEventSubscription(ctx, &lark.GetMailUserMailboxEventSubscriptionReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UnsubscribeMailUserMailboxEvent(ctx, &lark.UnsubscribeMailUserMailboxEventReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailUserMailboxFolder(ctx, &lark.CreateMailUserMailboxFolderReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailUserMailboxFolder(ctx, &lark.DeleteMailUserMailboxFolderReq{ + UserMailboxID: "x", + FolderID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListMailUserMailboxFolder(ctx, &lark.ListMailUserMailboxFolderReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMailUserMailboxFolder(ctx, &lark.UpdateMailUserMailboxFolderReq{ + UserMailboxID: "x", + FolderID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateUserMailboxMailContact(ctx, &lark.CreateUserMailboxMailContactReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteUserMailboxMailContact(ctx, &lark.DeleteUserMailboxMailContactReq{ + UserMailboxID: "x", + MailContactID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListUserMailboxMailContact(ctx, &lark.ListUserMailboxMailContactReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateUserMailboxMailContact(ctx, &lark.UpdateUserMailboxMailContactReq{ + UserMailboxID: "x", + MailContactID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadMailUserMailboxMessageAttachmentURL(ctx, &lark.DownloadMailUserMailboxMessageAttachmentURLReq{ + UserMailboxID: "x", + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailUserMailboxMessage(ctx, &lark.GetMailUserMailboxMessageReq{ + UserMailboxID: "x", + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMailUserMailboxMessageByCard(ctx, &lark.GetMailUserMailboxMessageByCardReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListMailUserMailboxMessage(ctx, &lark.ListMailUserMailboxMessageReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailUserMailboxRule(ctx, &lark.CreateMailUserMailboxRuleReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMailUserMailboxRule(ctx, &lark.DeleteMailUserMailboxRuleReq{ + UserMailboxID: "x", + RuleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListMailUserMailboxRule(ctx, &lark.ListMailUserMailboxRuleReq{ + UserMailboxID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{ + UserMailboxID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) diff --git a/test/message_sample_test.go b/test/message_sample_test.go index ac531992..6a1480ac 100644 --- a/test/message_sample_test.go +++ b/test/message_sample_test.go @@ -38,7 +38,7 @@ func Test_Message_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) + _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,162 +51,890 @@ func Test_Message_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockMessageCreateAppFeedCard(func(ctx context.Context, request *lark.CreateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.CreateAppFeedCardResp, *lark.Response, error) { + cli.Mock().MockMessageSendEphemeralMessage(func(ctx context.Context, request *lark.SendEphemeralMessageReq, options ...lark.MethodOptionFunc) (*lark.SendEphemeralMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageCreateAppFeedCard() + defer cli.Mock().UnMockMessageSendEphemeralMessage() - _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) + _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageCreateIMTagRelation(func(ctx context.Context, request *lark.CreateIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.CreateIMTagRelationResp, *lark.Response, error) { + cli.Mock().MockMessageSendUrgentAppMessage(func(ctx context.Context, request *lark.SendUrgentAppMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentAppMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageCreateIMTagRelation() + defer cli.Mock().UnMockMessageSendUrgentAppMessage() - _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) + _, _, err := moduleCli.SendUrgentAppMessage(ctx, &lark.SendUrgentAppMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteAppFeedCard(func(ctx context.Context, request *lark.DeleteAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.DeleteAppFeedCardResp, *lark.Response, error) { + cli.Mock().MockMessageSendUrgentSmsMessage(func(ctx context.Context, request *lark.SendUrgentSmsMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentSmsMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageDeleteAppFeedCard() + defer cli.Mock().UnMockMessageSendUrgentSmsMessage() - _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) + _, _, err := moduleCli.SendUrgentSmsMessage(ctx, &lark.SendUrgentSmsMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageListIMTagRelation(func(ctx context.Context, request *lark.ListIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.ListIMTagRelationResp, *lark.Response, error) { + cli.Mock().MockMessageSendUrgentPhoneMessage(func(ctx context.Context, request *lark.SendUrgentPhoneMessageReq, options ...lark.MethodOptionFunc) (*lark.SendUrgentPhoneMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageListIMTagRelation() + defer cli.Mock().UnMockMessageSendUrgentPhoneMessage() - _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) + _, _, err := moduleCli.SendUrgentPhoneMessage(ctx, &lark.SendUrgentPhoneMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageUpdateAppFeedCard(func(ctx context.Context, request *lark.UpdateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardResp, *lark.Response, error) { + cli.Mock().MockMessageSendRawMessageOld(func(ctx context.Context, request *lark.SendRawMessageOldReq, options ...lark.MethodOptionFunc) (*lark.SendRawMessageOldResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageUpdateAppFeedCard() + defer cli.Mock().UnMockMessageSendRawMessageOld() - _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) + _, _, err := moduleCli.SendRawMessageOld(ctx, &lark.SendRawMessageOldReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageDeleteIMTagRelation(func(ctx context.Context, request *lark.DeleteIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.DeleteIMTagRelationResp, *lark.Response, error) { + cli.Mock().MockMessageBatchSendOldRawMessage(func(ctx context.Context, request *lark.BatchSendOldRawMessageReq, options ...lark.MethodOptionFunc) (*lark.BatchSendOldRawMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageDeleteIMTagRelation() + defer cli.Mock().UnMockMessageBatchSendOldRawMessage() - _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) + _, _, err := moduleCli.BatchSendOldRawMessage(ctx, &lark.BatchSendOldRawMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageUpdateAppFeedCardButton(func(ctx context.Context, request *lark.UpdateAppFeedCardButtonReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardButtonResp, *lark.Response, error) { + cli.Mock().MockMessageSendRawMessage(func(ctx context.Context, request *lark.SendRawMessageReq, options ...lark.MethodOptionFunc) (*lark.SendRawMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageUpdateAppFeedCardButton() + defer cli.Mock().UnMockMessageSendRawMessage() - _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) + _, _, err := moduleCli.SendRawMessage(ctx, &lark.SendRawMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockMessageInstantReminderAppFeedCard(func(ctx context.Context, request *lark.InstantReminderAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.InstantReminderAppFeedCardResp, *lark.Response, error) { + cli.Mock().MockMessageReplyRawMessage(func(ctx context.Context, request *lark.ReplyRawMessageReq, options ...lark.MethodOptionFunc) (*lark.ReplyRawMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMessageInstantReminderAppFeedCard() + defer cli.Mock().UnMockMessageReplyRawMessage() - _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{}) + _, _, err := moduleCli.ReplyRawMessage(ctx, &lark.ReplyRawMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Message - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockMessageUpdateMessageEdit(func(ctx context.Context, request *lark.UpdateMessageEditReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageEditResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateMessageEdit() + + _, _, err := moduleCli.UpdateMessageEdit(ctx, &lark.UpdateMessageEditReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) + cli.Mock().MockMessageDeleteMessage(func(ctx context.Context, request *lark.DeleteMessageReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteMessage() + + _, _, err := moduleCli.DeleteMessage(ctx, &lark.DeleteMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) + cli.Mock().MockMessageForwardMessage(func(ctx context.Context, request *lark.ForwardMessageReq, options ...lark.MethodOptionFunc) (*lark.ForwardMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageForwardMessage() + + _, _, err := moduleCli.ForwardMessage(ctx, &lark.ForwardMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) + cli.Mock().MockMessageMergeForwardMessage(func(ctx context.Context, request *lark.MergeForwardMessageReq, options ...lark.MethodOptionFunc) (*lark.MergeForwardMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageMergeForwardMessage() + + _, _, err := moduleCli.MergeForwardMessage(ctx, &lark.MergeForwardMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) + cli.Mock().MockMessageForwardThreadMessage(func(ctx context.Context, request *lark.ForwardThreadMessageReq, options ...lark.MethodOptionFunc) (*lark.ForwardThreadMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageForwardThreadMessage() + + _, _, err := moduleCli.ForwardThreadMessage(ctx, &lark.ForwardThreadMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) + cli.Mock().MockMessageBatchDeleteMessage(func(ctx context.Context, request *lark.BatchDeleteMessageReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageBatchDeleteMessage() + + _, _, err := moduleCli.BatchDeleteMessage(ctx, &lark.BatchDeleteMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) + cli.Mock().MockMessageUpdateMessage(func(ctx context.Context, request *lark.UpdateMessageReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateMessage() + + _, _, err := moduleCli.UpdateMessage(ctx, &lark.UpdateMessageReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) + cli.Mock().MockMessageUpdateMessageDelay(func(ctx context.Context, request *lark.UpdateMessageDelayReq, options ...lark.MethodOptionFunc) (*lark.UpdateMessageDelayResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateMessageDelay() + + _, _, err := moduleCli.UpdateMessageDelay(ctx, &lark.UpdateMessageDelayReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{ - FeedCardID: "x", + cli.Mock().MockMessageGetMessageReadUserList(func(ctx context.Context, request *lark.GetMessageReadUserListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageReadUserListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageReadUserList() + + _, _, err := moduleCli.GetMessageReadUserList(ctx, &lark.GetMessageReadUserListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetBatchSentMessageReadUser(func(ctx context.Context, request *lark.GetBatchSentMessageReadUserReq, options ...lark.MethodOptionFunc) (*lark.GetBatchSentMessageReadUserResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetBatchSentMessageReadUser() + + _, _, err := moduleCli.GetBatchSentMessageReadUser(ctx, &lark.GetBatchSentMessageReadUserReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetBatchSentMessageProgress(func(ctx context.Context, request *lark.GetBatchSentMessageProgressReq, options ...lark.MethodOptionFunc) (*lark.GetBatchSentMessageProgressResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetBatchSentMessageProgress() + + _, _, err := moduleCli.GetBatchSentMessageProgress(ctx, &lark.GetBatchSentMessageProgressReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessageList(func(ctx context.Context, request *lark.GetMessageListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageList() + + _, _, err := moduleCli.GetMessageList(ctx, &lark.GetMessageListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessageFile(func(ctx context.Context, request *lark.GetMessageFileReq, options ...lark.MethodOptionFunc) (*lark.GetMessageFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageFile() + + _, _, err := moduleCli.GetMessageFile(ctx, &lark.GetMessageFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessage(func(ctx context.Context, request *lark.GetMessageReq, options ...lark.MethodOptionFunc) (*lark.GetMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessage() + + _, _, err := moduleCli.GetMessage(ctx, &lark.GetMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageDeleteEphemeralMessage(func(ctx context.Context, request *lark.DeleteEphemeralMessageReq, options ...lark.MethodOptionFunc) (*lark.DeleteEphemeralMessageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteEphemeralMessage() + + _, _, err := moduleCli.DeleteEphemeralMessage(ctx, &lark.DeleteEphemeralMessageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateMessageReaction(func(ctx context.Context, request *lark.CreateMessageReactionReq, options ...lark.MethodOptionFunc) (*lark.CreateMessageReactionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateMessageReaction() + + _, _, err := moduleCli.CreateMessageReaction(ctx, &lark.CreateMessageReactionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessageReactionList(func(ctx context.Context, request *lark.GetMessageReactionListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageReactionListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageReactionList() + + _, _, err := moduleCli.GetMessageReactionList(ctx, &lark.GetMessageReactionListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageDeleteMessageReaction(func(ctx context.Context, request *lark.DeleteMessageReactionReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessageReactionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteMessageReaction() + + _, _, err := moduleCli.DeleteMessageReaction(ctx, &lark.DeleteMessageReactionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateMessagePin(func(ctx context.Context, request *lark.CreateMessagePinReq, options ...lark.MethodOptionFunc) (*lark.CreateMessagePinResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateMessagePin() + + _, _, err := moduleCli.CreateMessagePin(ctx, &lark.CreateMessagePinReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageDeleteMessagePin(func(ctx context.Context, request *lark.DeleteMessagePinReq, options ...lark.MethodOptionFunc) (*lark.DeleteMessagePinResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteMessagePin() + + _, _, err := moduleCli.DeleteMessagePin(ctx, &lark.DeleteMessagePinReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessagePinList(func(ctx context.Context, request *lark.GetMessagePinListReq, options ...lark.MethodOptionFunc) (*lark.GetMessagePinListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessagePinList() + + _, _, err := moduleCli.GetMessagePinList(ctx, &lark.GetMessagePinListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessageSpecialFocusList(func(ctx context.Context, request *lark.GetMessageSpecialFocusListReq, options ...lark.MethodOptionFunc) (*lark.GetMessageSpecialFocusListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageSpecialFocusList() + + _, _, err := moduleCli.GetMessageSpecialFocusList(ctx, &lark.GetMessageSpecialFocusListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageGetMessageSpecialFocusUnread(func(ctx context.Context, request *lark.GetMessageSpecialFocusUnreadReq, options ...lark.MethodOptionFunc) (*lark.GetMessageSpecialFocusUnreadResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageGetMessageSpecialFocusUnread() + + _, _, err := moduleCli.GetMessageSpecialFocusUnread(ctx, &lark.GetMessageSpecialFocusUnreadReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageDeleteAppFeedCard(func(ctx context.Context, request *lark.DeleteAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.DeleteAppFeedCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteAppFeedCard() + + _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageUpdateAppFeedCard(func(ctx context.Context, request *lark.UpdateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateAppFeedCard() + + _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateAppFeedCard(func(ctx context.Context, request *lark.CreateAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.CreateAppFeedCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateAppFeedCard() + + _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateIMTagRelation(func(ctx context.Context, request *lark.CreateIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.CreateIMTagRelationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateIMTagRelation() + + _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageListIMTagRelation(func(ctx context.Context, request *lark.ListIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.ListIMTagRelationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageListIMTagRelation() + + _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageDeleteIMTagRelation(func(ctx context.Context, request *lark.DeleteIMTagRelationReq, options ...lark.MethodOptionFunc) (*lark.DeleteIMTagRelationResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageDeleteIMTagRelation() + + _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageUpdateAppFeedCardButton(func(ctx context.Context, request *lark.UpdateAppFeedCardButtonReq, options ...lark.MethodOptionFunc) (*lark.UpdateAppFeedCardButtonResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateAppFeedCardButton() + + _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageUpdateIMFeedCardBotTimeSentive(func(ctx context.Context, request *lark.UpdateIMFeedCardBotTimeSentiveReq, options ...lark.MethodOptionFunc) (*lark.UpdateIMFeedCardBotTimeSentiveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateIMFeedCardBotTimeSentive() + + _, _, err := moduleCli.UpdateIMFeedCardBotTimeSentive(ctx, &lark.UpdateIMFeedCardBotTimeSentiveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageInstantReminderAppFeedCard(func(ctx context.Context, request *lark.InstantReminderAppFeedCardReq, options ...lark.MethodOptionFunc) (*lark.InstantReminderAppFeedCardResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageInstantReminderAppFeedCard() + + _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateIMTag(func(ctx context.Context, request *lark.CreateIMTagReq, options ...lark.MethodOptionFunc) (*lark.CreateIMTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateIMTag() + + _, _, err := moduleCli.CreateIMTag(ctx, &lark.CreateIMTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageUpdateIMTag(func(ctx context.Context, request *lark.UpdateIMTagReq, options ...lark.MethodOptionFunc) (*lark.UpdateIMTagResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageUpdateIMTag() + + _, _, err := moduleCli.UpdateIMTag(ctx, &lark.UpdateIMTagReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageBatchUpdateURLPreview(func(ctx context.Context, request *lark.BatchUpdateURLPreviewReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateURLPreviewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageBatchUpdateURLPreview() + + _, _, err := moduleCli.BatchUpdateURLPreview(ctx, &lark.BatchUpdateURLPreviewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockMessageCreateIMMessagePushFollowUp(func(ctx context.Context, request *lark.CreateIMMessagePushFollowUpReq, options ...lark.MethodOptionFunc) (*lark.CreateIMMessagePushFollowUpResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockMessageCreateIMMessagePushFollowUp() + + _, _, err := moduleCli.CreateIMMessagePushFollowUp(ctx, &lark.CreateIMMessagePushFollowUpReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Message + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendEphemeralMessage(ctx, &lark.SendEphemeralMessageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendUrgentAppMessage(ctx, &lark.SendUrgentAppMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendUrgentSmsMessage(ctx, &lark.SendUrgentSmsMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendUrgentPhoneMessage(ctx, &lark.SendUrgentPhoneMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendRawMessageOld(ctx, &lark.SendRawMessageOldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchSendOldRawMessage(ctx, &lark.BatchSendOldRawMessageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SendRawMessage(ctx, &lark.SendRawMessageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ReplyRawMessage(ctx, &lark.ReplyRawMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMessageEdit(ctx, &lark.UpdateMessageEditReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMessage(ctx, &lark.DeleteMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ForwardMessage(ctx, &lark.ForwardMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.MergeForwardMessage(ctx, &lark.MergeForwardMessageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ForwardThreadMessage(ctx, &lark.ForwardThreadMessageReq{ + ThreadID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteMessage(ctx, &lark.BatchDeleteMessageReq{ + BatchMessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMessage(ctx, &lark.UpdateMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateMessageDelay(ctx, &lark.UpdateMessageDelayReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageReadUserList(ctx, &lark.GetMessageReadUserListReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetBatchSentMessageReadUser(ctx, &lark.GetBatchSentMessageReadUserReq{ + BatchMessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetBatchSentMessageProgress(ctx, &lark.GetBatchSentMessageProgressReq{ + BatchMessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageList(ctx, &lark.GetMessageListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageFile(ctx, &lark.GetMessageFileReq{ + MessageID: "x", + FileKey: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessage(ctx, &lark.GetMessageReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteEphemeralMessage(ctx, &lark.DeleteEphemeralMessageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMessageReaction(ctx, &lark.CreateMessageReactionReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageReactionList(ctx, &lark.GetMessageReactionListReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMessageReaction(ctx, &lark.DeleteMessageReactionReq{ + MessageID: "x", + ReactionID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateMessagePin(ctx, &lark.CreateMessagePinReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteMessagePin(ctx, &lark.DeleteMessagePinReq{ + MessageID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessagePinList(ctx, &lark.GetMessagePinListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageSpecialFocusList(ctx, &lark.GetMessageSpecialFocusListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetMessageSpecialFocusUnread(ctx, &lark.GetMessageSpecialFocusUnreadReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteAppFeedCard(ctx, &lark.DeleteAppFeedCardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAppFeedCard(ctx, &lark.UpdateAppFeedCardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateAppFeedCard(ctx, &lark.CreateAppFeedCardReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateIMTagRelation(ctx, &lark.CreateIMTagRelationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListIMTagRelation(ctx, &lark.ListIMTagRelationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteIMTagRelation(ctx, &lark.DeleteIMTagRelationReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateAppFeedCardButton(ctx, &lark.UpdateAppFeedCardButtonReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateIMFeedCardBotTimeSentive(ctx, &lark.UpdateIMFeedCardBotTimeSentiveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.InstantReminderAppFeedCard(ctx, &lark.InstantReminderAppFeedCardReq{ + FeedCardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateIMTag(ctx, &lark.CreateIMTagReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateIMTag(ctx, &lark.UpdateIMTagReq{ + TagID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateURLPreview(ctx, &lark.BatchUpdateURLPreviewReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateIMMessagePushFollowUp(ctx, &lark.CreateIMMessagePushFollowUpReq{ + MessageID: "x", }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) diff --git a/test/okr_sample_test.go b/test/okr_sample_test.go index 5bb30a56..a8e76fe8 100644 --- a/test/okr_sample_test.go +++ b/test/okr_sample_test.go @@ -38,7 +38,7 @@ func Test_OKR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetOKRReview(ctx, &lark.GetOKRReviewReq{}) + _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -49,6 +49,210 @@ func Test_OKR_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() moduleCli := cli.OKR + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRCreateOKRPeriod(func(ctx context.Context, request *lark.CreateOKRPeriodReq, options ...lark.MethodOptionFunc) (*lark.CreateOKRPeriodResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRCreateOKRPeriod() + + _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRUpdateOKRPeriod(func(ctx context.Context, request *lark.UpdateOKRPeriodReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRPeriodResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRUpdateOKRPeriod() + + _, _, err := moduleCli.UpdateOKRPeriod(ctx, &lark.UpdateOKRPeriodReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRPeriodList(func(ctx context.Context, request *lark.GetOKRPeriodListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRPeriodListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRPeriodList() + + _, _, err := moduleCli.GetOKRPeriodList(ctx, &lark.GetOKRPeriodListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRPeriodRuleList(func(ctx context.Context, request *lark.GetOKRPeriodRuleListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRPeriodRuleListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRPeriodRuleList() + + _, _, err := moduleCli.GetOKRPeriodRuleList(ctx, &lark.GetOKRPeriodRuleListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRBatchGetOKR(func(ctx context.Context, request *lark.BatchGetOKRReq, options ...lark.MethodOptionFunc) (*lark.BatchGetOKRResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRBatchGetOKR() + + _, _, err := moduleCli.BatchGetOKR(ctx, &lark.BatchGetOKRReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetUserOKRList(func(ctx context.Context, request *lark.GetUserOKRListReq, options ...lark.MethodOptionFunc) (*lark.GetUserOKRListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetUserOKRList() + + _, _, err := moduleCli.GetUserOKRList(ctx, &lark.GetUserOKRListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRDeleteOKRProgressRecord(func(ctx context.Context, request *lark.DeleteOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.DeleteOKRProgressRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRDeleteOKRProgressRecord() + + _, _, err := moduleCli.DeleteOKRProgressRecord(ctx, &lark.DeleteOKRProgressRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRUpdateOKRProgressRecord(func(ctx context.Context, request *lark.UpdateOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRProgressRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRUpdateOKRProgressRecord() + + _, _, err := moduleCli.UpdateOKRProgressRecord(ctx, &lark.UpdateOKRProgressRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRProgressRecord(func(ctx context.Context, request *lark.GetOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.GetOKRProgressRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRProgressRecord() + + _, _, err := moduleCli.GetOKRProgressRecord(ctx, &lark.GetOKRProgressRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRCreateOKRProgressRecord(func(ctx context.Context, request *lark.CreateOKRProgressRecordReq, options ...lark.MethodOptionFunc) (*lark.CreateOKRProgressRecordResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRCreateOKRProgressRecord() + + _, _, err := moduleCli.CreateOKRProgressRecord(ctx, &lark.CreateOKRProgressRecordReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRUploadOKRImage(func(ctx context.Context, request *lark.UploadOKRImageReq, options ...lark.MethodOptionFunc) (*lark.UploadOKRImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRUploadOKRImage() + + _, _, err := moduleCli.UploadOKRImage(ctx, &lark.UploadOKRImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRMetricSourceList(func(ctx context.Context, request *lark.GetOKRMetricSourceListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRMetricSourceList() + + _, _, err := moduleCli.GetOKRMetricSourceList(ctx, &lark.GetOKRMetricSourceListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRMetricSourceTableList(func(ctx context.Context, request *lark.GetOKRMetricSourceTableListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRMetricSourceTableList() + + _, _, err := moduleCli.GetOKRMetricSourceTableList(ctx, &lark.GetOKRMetricSourceTableListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRBatchUpdateOKRMetricSourceTableItem(func(ctx context.Context, request *lark.BatchUpdateOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateOKRMetricSourceTableItemResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRBatchUpdateOKRMetricSourceTableItem() + + _, _, err := moduleCli.BatchUpdateOKRMetricSourceTableItem(ctx, &lark.BatchUpdateOKRMetricSourceTableItemReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRUpdateOKRMetricSourceTableItem(func(ctx context.Context, request *lark.UpdateOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.UpdateOKRMetricSourceTableItemResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRUpdateOKRMetricSourceTableItem() + + _, _, err := moduleCli.UpdateOKRMetricSourceTableItem(ctx, &lark.UpdateOKRMetricSourceTableItemReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRMetricSourceTableItem(func(ctx context.Context, request *lark.GetOKRMetricSourceTableItemReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableItemResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRMetricSourceTableItem() + + _, _, err := moduleCli.GetOKRMetricSourceTableItem(ctx, &lark.GetOKRMetricSourceTableItemReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockOKRGetOKRMetricSourceTableItemList(func(ctx context.Context, request *lark.GetOKRMetricSourceTableItemListReq, options ...lark.MethodOptionFunc) (*lark.GetOKRMetricSourceTableItemListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockOKRGetOKRMetricSourceTableItemList() + + _, _, err := moduleCli.GetOKRMetricSourceTableItemList(ctx, &lark.GetOKRMetricSourceTableItemListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + t.Run("", func(t *testing.T) { cli.Mock().MockOKRGetOKRReview(func(ctx context.Context, request *lark.GetOKRReviewReq, options ...lark.MethodOptionFunc) (*lark.GetOKRReviewResp, *lark.Response, error) { @@ -70,6 +274,151 @@ func Test_OKR_Sample_Failed(t *testing.T) { return nil, fmt.Errorf("mock-http-failed") }) + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateOKRPeriod(ctx, &lark.CreateOKRPeriodReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateOKRPeriod(ctx, &lark.UpdateOKRPeriodReq{ + PeriodID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRPeriodList(ctx, &lark.GetOKRPeriodListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRPeriodRuleList(ctx, &lark.GetOKRPeriodRuleListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetOKR(ctx, &lark.BatchGetOKRReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetUserOKRList(ctx, &lark.GetUserOKRListReq{ + UserID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteOKRProgressRecord(ctx, &lark.DeleteOKRProgressRecordReq{ + ProgressID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateOKRProgressRecord(ctx, &lark.UpdateOKRProgressRecordReq{ + ProgressID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRProgressRecord(ctx, &lark.GetOKRProgressRecordReq{ + ProgressID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateOKRProgressRecord(ctx, &lark.CreateOKRProgressRecordReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadOKRImage(ctx, &lark.UploadOKRImageReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRMetricSourceList(ctx, &lark.GetOKRMetricSourceListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRMetricSourceTableList(ctx, &lark.GetOKRMetricSourceTableListReq{ + MetricSourceID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchUpdateOKRMetricSourceTableItem(ctx, &lark.BatchUpdateOKRMetricSourceTableItemReq{ + MetricSourceID: "x", + MetricTableID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateOKRMetricSourceTableItem(ctx, &lark.UpdateOKRMetricSourceTableItemReq{ + MetricSourceID: "x", + MetricTableID: "x", + MetricItemID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRMetricSourceTableItem(ctx, &lark.GetOKRMetricSourceTableItemReq{ + MetricSourceID: "x", + MetricTableID: "x", + MetricItemID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetOKRMetricSourceTableItemList(ctx, &lark.GetOKRMetricSourceTableItemListReq{ + MetricSourceID: "x", + MetricTableID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + t.Run("", func(t *testing.T) { _, _, err := moduleCli.GetOKRReview(ctx, &lark.GetOKRReviewReq{}) diff --git a/test/report_sample_test.go b/test/report_sample_test.go index 8c74dd1d..560621d9 100644 --- a/test/report_sample_test.go +++ b/test/report_sample_test.go @@ -38,7 +38,7 @@ func Test_Report_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryReportRule(ctx, &lark.QueryReportRuleReq{}) + _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -49,6 +49,18 @@ func Test_Report_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() moduleCli := cli.Report + t.Run("", func(t *testing.T) { + + cli.Mock().MockReportRemoveReportView(func(ctx context.Context, request *lark.RemoveReportViewReq, options ...lark.MethodOptionFunc) (*lark.RemoveReportViewResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockReportRemoveReportView() + + _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + t.Run("", func(t *testing.T) { cli.Mock().MockReportQueryReportRule(func(ctx context.Context, request *lark.QueryReportRuleReq, options ...lark.MethodOptionFunc) (*lark.QueryReportRuleResp, *lark.Response, error) { @@ -63,12 +75,12 @@ func Test_Report_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockReportRemoveReportView(func(ctx context.Context, request *lark.RemoveReportViewReq, options ...lark.MethodOptionFunc) (*lark.RemoveReportViewResp, *lark.Response, error) { + cli.Mock().MockReportQueryReportTask(func(ctx context.Context, request *lark.QueryReportTaskReq, options ...lark.MethodOptionFunc) (*lark.QueryReportTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockReportRemoveReportView() + defer cli.Mock().UnMockReportQueryReportTask() - _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{}) + _, _, err := moduleCli.QueryReportTask(ctx, &lark.QueryReportTaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -82,6 +94,15 @@ func Test_Report_Sample_Failed(t *testing.T) { return nil, fmt.Errorf("mock-http-failed") }) + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{ + RuleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + t.Run("", func(t *testing.T) { _, _, err := moduleCli.QueryReportRule(ctx, &lark.QueryReportRuleReq{}) @@ -91,9 +112,7 @@ func Test_Report_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveReportView(ctx, &lark.RemoveReportViewReq{ - RuleID: "x", - }) + _, _, err := moduleCli.QueryReportTask(ctx, &lark.QueryReportTaskReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/task_sample_test.go b/test/task_sample_test.go index 3ae89829..c11621e6 100644 --- a/test/task_sample_test.go +++ b/test/task_sample_test.go @@ -38,7 +38,7 @@ func Test_Task_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{}) + _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,301 +51,1442 @@ func Test_Task_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockTaskAddTaskDependency(func(ctx context.Context, request *lark.AddTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.AddTaskDependencyResp, *lark.Response, error) { + cli.Mock().MockTaskCreateTaskFollower(func(ctx context.Context, request *lark.CreateTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskFollowerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskAddTaskDependency() + defer cli.Mock().UnMockTaskCreateTaskFollower() - _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{}) + _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskAddTaskMember(func(ctx context.Context, request *lark.AddTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskMemberResp, *lark.Response, error) { + cli.Mock().MockTaskDeleteTaskFollower(func(ctx context.Context, request *lark.DeleteTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskFollowerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskAddTaskMember() + defer cli.Mock().UnMockTaskDeleteTaskFollower() - _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{}) + _, _, err := moduleCli.DeleteTaskFollower(ctx, &lark.DeleteTaskFollowerReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskAddTaskReminder(func(ctx context.Context, request *lark.AddTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.AddTaskReminderResp, *lark.Response, error) { + cli.Mock().MockTaskBatchDeleteTaskFollower(func(ctx context.Context, request *lark.BatchDeleteTaskFollowerReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskFollowerResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskAddTaskReminder() + defer cli.Mock().UnMockTaskBatchDeleteTaskFollower() - _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{}) + _, _, err := moduleCli.BatchDeleteTaskFollower(ctx, &lark.BatchDeleteTaskFollowerReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskAddTaskTasklist(func(ctx context.Context, request *lark.AddTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskFollowerList(func(ctx context.Context, request *lark.GetTaskFollowerListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskFollowerListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskAddTaskTasklist() + defer cli.Mock().UnMockTaskGetTaskFollowerList() - _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{}) + _, _, err := moduleCli.GetTaskFollowerList(ctx, &lark.GetTaskFollowerListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskAddTaskTasklistMember(func(ctx context.Context, request *lark.AddTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistMemberResp, *lark.Response, error) { + cli.Mock().MockTaskCreateTaskCollaborator(func(ctx context.Context, request *lark.CreateTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCollaboratorResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskAddTaskTasklistMember() + defer cli.Mock().UnMockTaskCreateTaskCollaborator() - _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{}) + _, _, err := moduleCli.CreateTaskCollaborator(ctx, &lark.CreateTaskCollaboratorReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskCreateTaskSubtask(func(ctx context.Context, request *lark.CreateTaskSubtaskReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskSubtaskResp, *lark.Response, error) { + cli.Mock().MockTaskDeleteTaskCollaborator(func(ctx context.Context, request *lark.DeleteTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskCollaboratorResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskCreateTaskSubtask() + defer cli.Mock().UnMockTaskDeleteTaskCollaborator() - _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{}) + _, _, err := moduleCli.DeleteTaskCollaborator(ctx, &lark.DeleteTaskCollaboratorReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskTaskListOfSection(func(ctx context.Context, request *lark.GetTaskTaskListOfSectionReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfSectionResp, *lark.Response, error) { + cli.Mock().MockTaskBatchDeleteTaskCollaborator(func(ctx context.Context, request *lark.BatchDeleteTaskCollaboratorReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteTaskCollaboratorResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskTaskListOfSection() + defer cli.Mock().UnMockTaskBatchDeleteTaskCollaborator() - _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{}) + _, _, err := moduleCli.BatchDeleteTaskCollaborator(ctx, &lark.BatchDeleteTaskCollaboratorReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskTaskListOfTasklist(func(ctx context.Context, request *lark.GetTaskTaskListOfTasklistReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfTasklistResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskCollaboratorList(func(ctx context.Context, request *lark.GetTaskCollaboratorListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCollaboratorListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskTaskListOfTasklist() + defer cli.Mock().UnMockTaskGetTaskCollaboratorList() - _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{}) + _, _, err := moduleCli.GetTaskCollaboratorList(ctx, &lark.GetTaskCollaboratorListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskGetTaskSubtaskList(func(ctx context.Context, request *lark.GetTaskSubtaskListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskSubtaskListResp, *lark.Response, error) { + cli.Mock().MockTaskCreateTaskReminder(func(ctx context.Context, request *lark.CreateTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskReminderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskGetTaskSubtaskList() + defer cli.Mock().UnMockTaskCreateTaskReminder() - _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{}) + _, _, err := moduleCli.CreateTaskReminder(ctx, &lark.CreateTaskReminderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskRemoveTaskDependency(func(ctx context.Context, request *lark.RemoveTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskDependencyResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskReminderList(func(ctx context.Context, request *lark.GetTaskReminderListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskReminderListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskRemoveTaskDependency() + defer cli.Mock().UnMockTaskGetTaskReminderList() - _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{}) + _, _, err := moduleCli.GetTaskReminderList(ctx, &lark.GetTaskReminderListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskRemoveTaskMember(func(ctx context.Context, request *lark.RemoveTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskMemberResp, *lark.Response, error) { + cli.Mock().MockTaskDeleteTaskReminder(func(ctx context.Context, request *lark.DeleteTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskReminderResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskRemoveTaskMember() + defer cli.Mock().UnMockTaskDeleteTaskReminder() - _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{}) + _, _, err := moduleCli.DeleteTaskReminder(ctx, &lark.DeleteTaskReminderReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskRemoveTaskReminder(func(ctx context.Context, request *lark.RemoveTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskReminderResp, *lark.Response, error) { + cli.Mock().MockTaskCreateTask(func(ctx context.Context, request *lark.CreateTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskRemoveTaskReminder() + defer cli.Mock().UnMockTaskCreateTask() - _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{}) + _, _, err := moduleCli.CreateTask(ctx, &lark.CreateTaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskRemoveTaskTasklist(func(ctx context.Context, request *lark.RemoveTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistResp, *lark.Response, error) { + cli.Mock().MockTaskGetTask(func(ctx context.Context, request *lark.GetTaskReq, options ...lark.MethodOptionFunc) (*lark.GetTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskRemoveTaskTasklist() + defer cli.Mock().UnMockTaskGetTask() - _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{}) + _, _, err := moduleCli.GetTask(ctx, &lark.GetTaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskRemoveTaskTasklistMember(func(ctx context.Context, request *lark.RemoveTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistMemberResp, *lark.Response, error) { + cli.Mock().MockTaskGetTaskList(func(ctx context.Context, request *lark.GetTaskListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskRemoveTaskTasklistMember() + defer cli.Mock().UnMockTaskGetTaskList() - _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{}) + _, _, err := moduleCli.GetTaskList(ctx, &lark.GetTaskListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Task - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockTaskDeleteTask(func(ctx context.Context, request *lark.DeleteTaskReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskDeleteTask() + + _, _, err := moduleCli.DeleteTask(ctx, &lark.DeleteTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{ - TaskGuid: "x", + cli.Mock().MockTaskUpdateTask(func(ctx context.Context, request *lark.UpdateTaskReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskUpdateTask() + + _, _, err := moduleCli.UpdateTask(ctx, &lark.UpdateTaskReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{ - TaskGuid: "x", + cli.Mock().MockTaskCompleteTask(func(ctx context.Context, request *lark.CompleteTaskReq, options ...lark.MethodOptionFunc) (*lark.CompleteTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskCompleteTask() + + _, _, err := moduleCli.CompleteTask(ctx, &lark.CompleteTaskReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{ - TaskGuid: "x", + cli.Mock().MockTaskUncompleteTask(func(ctx context.Context, request *lark.UncompleteTaskReq, options ...lark.MethodOptionFunc) (*lark.UncompleteTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskUncompleteTask() + + _, _, err := moduleCli.UncompleteTask(ctx, &lark.UncompleteTaskReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{ - TaskGuid: "x", + cli.Mock().MockTaskCreateTaskComment(func(ctx context.Context, request *lark.CreateTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskCreateTaskComment() + + _, _, err := moduleCli.CreateTaskComment(ctx, &lark.CreateTaskCommentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{ - TasklistGuid: "x", + cli.Mock().MockTaskGetTaskComment(func(ctx context.Context, request *lark.GetTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskGetTaskComment() + + _, _, err := moduleCli.GetTaskComment(ctx, &lark.GetTaskCommentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{ - TaskGuid: "x", + cli.Mock().MockTaskDeleteTaskComment(func(ctx context.Context, request *lark.DeleteTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskDeleteTaskComment() + + _, _, err := moduleCli.DeleteTaskComment(ctx, &lark.DeleteTaskCommentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{ - SectionGuid: "x", + cli.Mock().MockTaskUpdateTaskComment(func(ctx context.Context, request *lark.UpdateTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskUpdateTaskComment() + + _, _, err := moduleCli.UpdateTaskComment(ctx, &lark.UpdateTaskCommentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{ - TasklistGuid: "x", + cli.Mock().MockTaskDeleteTaskAttachment(func(ctx context.Context, request *lark.DeleteTaskAttachmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskDeleteTaskAttachment() + + _, _, err := moduleCli.DeleteTaskAttachment(ctx, &lark.DeleteTaskAttachmentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{ - TaskGuid: "x", + cli.Mock().MockTaskGetTaskAttachment(func(ctx context.Context, request *lark.GetTaskAttachmentReq, options ...lark.MethodOptionFunc) (*lark.GetTaskAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskGetTaskAttachment() + + _, _, err := moduleCli.GetTaskAttachment(ctx, &lark.GetTaskAttachmentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{ - TaskGuid: "x", + cli.Mock().MockTaskGetTaskAttachmentList(func(ctx context.Context, request *lark.GetTaskAttachmentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskAttachmentListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskGetTaskAttachmentList() + + _, _, err := moduleCli.GetTaskAttachmentList(ctx, &lark.GetTaskAttachmentListReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{ - TaskGuid: "x", + cli.Mock().MockTaskUploadTaskAttachment(func(ctx context.Context, request *lark.UploadTaskAttachmentReq, options ...lark.MethodOptionFunc) (*lark.UploadTaskAttachmentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskUploadTaskAttachment() + + _, _, err := moduleCli.UploadTaskAttachment(ctx, &lark.UploadTaskAttachmentReq{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{ - TaskGuid: "x", + cli.Mock().MockTaskCreateTaskCommentV2(func(ctx context.Context, request *lark.CreateTaskCommentV2Req, options ...lark.MethodOptionFunc) (*lark.CreateTaskCommentV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskCreateTaskCommentV2() + + _, _, err := moduleCli.CreateTaskCommentV2(ctx, &lark.CreateTaskCommentV2Req{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{ - TaskGuid: "x", + cli.Mock().MockTaskDeleteTaskCommentV2(func(ctx context.Context, request *lark.DeleteTaskCommentV2Req, options ...lark.MethodOptionFunc) (*lark.DeleteTaskCommentV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") }) + defer cli.Mock().UnMockTaskDeleteTaskCommentV2() + + _, _, err := moduleCli.DeleteTaskCommentV2(ctx, &lark.DeleteTaskCommentV2Req{}) as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{ + cli.Mock().MockTaskGetTaskCommentV2(func(ctx context.Context, request *lark.GetTaskCommentV2Req, options ...lark.MethodOptionFunc) (*lark.GetTaskCommentV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskCommentV2() + + _, _, err := moduleCli.GetTaskCommentV2(ctx, &lark.GetTaskCommentV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskListTaskComment(func(ctx context.Context, request *lark.ListTaskCommentReq, options ...lark.MethodOptionFunc) (*lark.ListTaskCommentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskListTaskComment() + + _, _, err := moduleCli.ListTaskComment(ctx, &lark.ListTaskCommentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskCommentV2(func(ctx context.Context, request *lark.UpdateTaskCommentV2Req, options ...lark.MethodOptionFunc) (*lark.UpdateTaskCommentV2Resp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskCommentV2() + + _, _, err := moduleCli.UpdateTaskCommentV2(ctx, &lark.UpdateTaskCommentV2Req{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskCustomFieldOption(func(ctx context.Context, request *lark.CreateTaskCustomFieldOptionReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCustomFieldOptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskCustomFieldOption() + + _, _, err := moduleCli.CreateTaskCustomFieldOption(ctx, &lark.CreateTaskCustomFieldOptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskCustomFieldOption(func(ctx context.Context, request *lark.UpdateTaskCustomFieldOptionReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskCustomFieldOptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskCustomFieldOption() + + _, _, err := moduleCli.UpdateTaskCustomFieldOption(ctx, &lark.UpdateTaskCustomFieldOptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskCustomField(func(ctx context.Context, request *lark.AddTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.AddTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskCustomField() + + _, _, err := moduleCli.AddTaskCustomField(ctx, &lark.AddTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskCustomField(func(ctx context.Context, request *lark.CreateTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskCustomField() + + _, _, err := moduleCli.CreateTaskCustomField(ctx, &lark.CreateTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskCustomField(func(ctx context.Context, request *lark.GetTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.GetTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskCustomField() + + _, _, err := moduleCli.GetTaskCustomField(ctx, &lark.GetTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskListTaskCustomField(func(ctx context.Context, request *lark.ListTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.ListTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskListTaskCustomField() + + _, _, err := moduleCli.ListTaskCustomField(ctx, &lark.ListTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskCustomField(func(ctx context.Context, request *lark.UpdateTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskCustomField() + + _, _, err := moduleCli.UpdateTaskCustomField(ctx, &lark.UpdateTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskCustomField(func(ctx context.Context, request *lark.RemoveTaskCustomFieldReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskCustomFieldResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskCustomField() + + _, _, err := moduleCli.RemoveTaskCustomField(ctx, &lark.RemoveTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskSection(func(ctx context.Context, request *lark.CreateTaskSectionReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskSectionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskSection() + + _, _, err := moduleCli.CreateTaskSection(ctx, &lark.CreateTaskSectionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskDeleteTaskSection(func(ctx context.Context, request *lark.DeleteTaskSectionReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskSectionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskDeleteTaskSection() + + _, _, err := moduleCli.DeleteTaskSection(ctx, &lark.DeleteTaskSectionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskSection(func(ctx context.Context, request *lark.GetTaskSectionReq, options ...lark.MethodOptionFunc) (*lark.GetTaskSectionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskSection() + + _, _, err := moduleCli.GetTaskSection(ctx, &lark.GetTaskSectionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskSectionList(func(ctx context.Context, request *lark.GetTaskSectionListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskSectionListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskSectionList() + + _, _, err := moduleCli.GetTaskSectionList(ctx, &lark.GetTaskSectionListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskSection(func(ctx context.Context, request *lark.UpdateTaskSectionReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskSectionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskSection() + + _, _, err := moduleCli.UpdateTaskSection(ctx, &lark.UpdateTaskSectionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTaskListOfSection(func(ctx context.Context, request *lark.GetTaskTaskListOfSectionReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfSectionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTaskListOfSection() + + _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskSubtask(func(ctx context.Context, request *lark.CreateTaskSubtaskReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskSubtaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskSubtask() + + _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskSubtaskList(func(ctx context.Context, request *lark.GetTaskSubtaskListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskSubtaskListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskSubtaskList() + + _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskDependency(func(ctx context.Context, request *lark.AddTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.AddTaskDependencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskDependency() + + _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskMember(func(ctx context.Context, request *lark.AddTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskMember() + + _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskReminder(func(ctx context.Context, request *lark.AddTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.AddTaskReminderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskReminder() + + _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskTasklist(func(ctx context.Context, request *lark.AddTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskTasklist() + + _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskDependency(func(ctx context.Context, request *lark.RemoveTaskDependencyReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskDependencyResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskDependency() + + _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskMember(func(ctx context.Context, request *lark.RemoveTaskMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskMember() + + _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskReminder(func(ctx context.Context, request *lark.RemoveTaskReminderReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskReminderResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskReminder() + + _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskTasklist(func(ctx context.Context, request *lark.RemoveTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskTasklist() + + _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTasklists(func(ctx context.Context, request *lark.GetTaskTasklistsReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTasklistsResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTasklists() + + _, _, err := moduleCli.GetTaskTasklists(ctx, &lark.GetTaskTasklistsReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskTasklistActivitySubscription(func(ctx context.Context, request *lark.CreateTaskTasklistActivitySubscriptionReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskTasklistActivitySubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskTasklistActivitySubscription() + + _, _, err := moduleCli.CreateTaskTasklistActivitySubscription(ctx, &lark.CreateTaskTasklistActivitySubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskDeleteTaskTasklistActivitySubscription(func(ctx context.Context, request *lark.DeleteTaskTasklistActivitySubscriptionReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskTasklistActivitySubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskDeleteTaskTasklistActivitySubscription() + + _, _, err := moduleCli.DeleteTaskTasklistActivitySubscription(ctx, &lark.DeleteTaskTasklistActivitySubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTasklistActivitySubscription(func(ctx context.Context, request *lark.GetTaskTasklistActivitySubscriptionReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTasklistActivitySubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTasklistActivitySubscription() + + _, _, err := moduleCli.GetTaskTasklistActivitySubscription(ctx, &lark.GetTaskTasklistActivitySubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTasklistActivitySubscriptionList(func(ctx context.Context, request *lark.GetTaskTasklistActivitySubscriptionListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTasklistActivitySubscriptionListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTasklistActivitySubscriptionList() + + _, _, err := moduleCli.GetTaskTasklistActivitySubscriptionList(ctx, &lark.GetTaskTasklistActivitySubscriptionListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskTasklistActivitySubscription(func(ctx context.Context, request *lark.UpdateTaskTasklistActivitySubscriptionReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskTasklistActivitySubscriptionResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskTasklistActivitySubscription() + + _, _, err := moduleCli.UpdateTaskTasklistActivitySubscription(ctx, &lark.UpdateTaskTasklistActivitySubscriptionReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskAddTaskTasklistMember(func(ctx context.Context, request *lark.AddTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.AddTaskTasklistMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskAddTaskTasklistMember() + + _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskCreateTaskTasklist(func(ctx context.Context, request *lark.CreateTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.CreateTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskCreateTaskTasklist() + + _, _, err := moduleCli.CreateTaskTasklist(ctx, &lark.CreateTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskDeleteTaskTasklist(func(ctx context.Context, request *lark.DeleteTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.DeleteTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskDeleteTaskTasklist() + + _, _, err := moduleCli.DeleteTaskTasklist(ctx, &lark.DeleteTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTasklist(func(ctx context.Context, request *lark.GetTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTasklist() + + _, _, err := moduleCli.GetTaskTasklist(ctx, &lark.GetTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTasklistList(func(ctx context.Context, request *lark.GetTaskTasklistListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTasklistListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTasklistList() + + _, _, err := moduleCli.GetTaskTasklistList(ctx, &lark.GetTaskTasklistListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskUpdateTaskTasklist(func(ctx context.Context, request *lark.UpdateTaskTasklistReq, options ...lark.MethodOptionFunc) (*lark.UpdateTaskTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskUpdateTaskTasklist() + + _, _, err := moduleCli.UpdateTaskTasklist(ctx, &lark.UpdateTaskTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskRemoveTaskTasklistMember(func(ctx context.Context, request *lark.RemoveTaskTasklistMemberReq, options ...lark.MethodOptionFunc) (*lark.RemoveTaskTasklistMemberResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskRemoveTaskTasklistMember() + + _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockTaskGetTaskTaskListOfTasklist(func(ctx context.Context, request *lark.GetTaskTaskListOfTasklistReq, options ...lark.MethodOptionFunc) (*lark.GetTaskTaskListOfTasklistResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockTaskGetTaskTaskListOfTasklist() + + _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.Task + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskFollower(ctx, &lark.CreateTaskFollowerReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskFollower(ctx, &lark.DeleteTaskFollowerReq{ + TaskID: "x", + FollowerID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteTaskFollower(ctx, &lark.BatchDeleteTaskFollowerReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskFollowerList(ctx, &lark.GetTaskFollowerListReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskCollaborator(ctx, &lark.CreateTaskCollaboratorReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskCollaborator(ctx, &lark.DeleteTaskCollaboratorReq{ + TaskID: "x", + CollaboratorID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchDeleteTaskCollaborator(ctx, &lark.BatchDeleteTaskCollaboratorReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskCollaboratorList(ctx, &lark.GetTaskCollaboratorListReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskReminder(ctx, &lark.CreateTaskReminderReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskReminderList(ctx, &lark.GetTaskReminderListReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskReminder(ctx, &lark.DeleteTaskReminderReq{ + TaskID: "x", + ReminderID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTask(ctx, &lark.CreateTaskReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTask(ctx, &lark.GetTaskReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskList(ctx, &lark.GetTaskListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTask(ctx, &lark.DeleteTaskReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTask(ctx, &lark.UpdateTaskReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CompleteTask(ctx, &lark.CompleteTaskReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UncompleteTask(ctx, &lark.UncompleteTaskReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskComment(ctx, &lark.CreateTaskCommentReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskComment(ctx, &lark.GetTaskCommentReq{ + TaskID: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskComment(ctx, &lark.DeleteTaskCommentReq{ + TaskID: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskComment(ctx, &lark.UpdateTaskCommentReq{ + TaskID: "x", + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskAttachment(ctx, &lark.DeleteTaskAttachmentReq{ + AttachmentGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskAttachment(ctx, &lark.GetTaskAttachmentReq{ + AttachmentGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskAttachmentList(ctx, &lark.GetTaskAttachmentListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UploadTaskAttachment(ctx, &lark.UploadTaskAttachmentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskCommentV2(ctx, &lark.CreateTaskCommentV2Req{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskCommentV2(ctx, &lark.DeleteTaskCommentV2Req{ + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskCommentV2(ctx, &lark.GetTaskCommentV2Req{ + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListTaskComment(ctx, &lark.ListTaskCommentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskCommentV2(ctx, &lark.UpdateTaskCommentV2Req{ + CommentID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskCustomFieldOption(ctx, &lark.CreateTaskCustomFieldOptionReq{ + CustomFieldGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskCustomFieldOption(ctx, &lark.UpdateTaskCustomFieldOptionReq{ + CustomFieldGuid: "x", + OptionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskCustomField(ctx, &lark.AddTaskCustomFieldReq{ + CustomFieldGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskCustomField(ctx, &lark.CreateTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskCustomField(ctx, &lark.GetTaskCustomFieldReq{ + CustomFieldGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListTaskCustomField(ctx, &lark.ListTaskCustomFieldReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskCustomField(ctx, &lark.UpdateTaskCustomFieldReq{ + CustomFieldGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskCustomField(ctx, &lark.RemoveTaskCustomFieldReq{ + CustomFieldGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskSection(ctx, &lark.CreateTaskSectionReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskSection(ctx, &lark.DeleteTaskSectionReq{ + SectionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskSection(ctx, &lark.GetTaskSectionReq{ + SectionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskSectionList(ctx, &lark.GetTaskSectionListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskSection(ctx, &lark.UpdateTaskSectionReq{ + SectionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTaskListOfSection(ctx, &lark.GetTaskTaskListOfSectionReq{ + SectionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskSubtask(ctx, &lark.CreateTaskSubtaskReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskSubtaskList(ctx, &lark.GetTaskSubtaskListReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskDependency(ctx, &lark.AddTaskDependencyReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskMember(ctx, &lark.AddTaskMemberReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskReminder(ctx, &lark.AddTaskReminderReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskTasklist(ctx, &lark.AddTaskTasklistReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskDependency(ctx, &lark.RemoveTaskDependencyReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskMember(ctx, &lark.RemoveTaskMemberReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskReminder(ctx, &lark.RemoveTaskReminderReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskTasklist(ctx, &lark.RemoveTaskTasklistReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTasklists(ctx, &lark.GetTaskTasklistsReq{ + TaskGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskTasklistActivitySubscription(ctx, &lark.CreateTaskTasklistActivitySubscriptionReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskTasklistActivitySubscription(ctx, &lark.DeleteTaskTasklistActivitySubscriptionReq{ + TasklistGuid: "x", + ActivitySubscriptionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTasklistActivitySubscription(ctx, &lark.GetTaskTasklistActivitySubscriptionReq{ + TasklistGuid: "x", + ActivitySubscriptionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTasklistActivitySubscriptionList(ctx, &lark.GetTaskTasklistActivitySubscriptionListReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskTasklistActivitySubscription(ctx, &lark.UpdateTaskTasklistActivitySubscriptionReq{ + TasklistGuid: "x", + ActivitySubscriptionGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.AddTaskTasklistMember(ctx, &lark.AddTaskTasklistMemberReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateTaskTasklist(ctx, &lark.CreateTaskTasklistReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteTaskTasklist(ctx, &lark.DeleteTaskTasklistReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTasklist(ctx, &lark.GetTaskTasklistReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTasklistList(ctx, &lark.GetTaskTasklistListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateTaskTasklist(ctx, &lark.UpdateTaskTasklistReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.RemoveTaskTasklistMember(ctx, &lark.RemoveTaskTasklistMemberReq{ + TasklistGuid: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetTaskTaskListOfTasklist(ctx, &lark.GetTaskTaskListOfTasklistReq{ TasklistGuid: "x", }) as.NotNil(err) diff --git a/test/taskv1_sample_test.go b/test/taskv1_sample_test.go index a2cadf6e..4aec06c3 100644 --- a/test/taskv1_sample_test.go +++ b/test/taskv1_sample_test.go @@ -38,7 +38,7 @@ func Test_TaskV1_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,36 +51,36 @@ func Test_TaskV1_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1CreateTaskV1(func(ctx context.Context, request *lark.CreateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1Resp, *lark.Response, error) { + cli.Mock().MockTaskV1GetTaskV1CommentList(func(ctx context.Context, request *lark.GetTaskV1CommentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CommentListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskV1CreateTaskV1() + defer cli.Mock().UnMockTaskV1GetTaskV1CommentList() - _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1DeleteTaskV1(func(ctx context.Context, request *lark.DeleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1Resp, *lark.Response, error) { + cli.Mock().MockTaskV1CreateTaskV1(func(ctx context.Context, request *lark.CreateTaskV1Req, options ...lark.MethodOptionFunc) (*lark.CreateTaskV1Resp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskV1DeleteTaskV1() + defer cli.Mock().UnMockTaskV1CreateTaskV1() - _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{}) + _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockTaskV1GetTaskV1CommentList(func(ctx context.Context, request *lark.GetTaskV1CommentListReq, options ...lark.MethodOptionFunc) (*lark.GetTaskV1CommentListResp, *lark.Response, error) { + cli.Mock().MockTaskV1DeleteTaskV1(func(ctx context.Context, request *lark.DeleteTaskV1Req, options ...lark.MethodOptionFunc) (*lark.DeleteTaskV1Resp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockTaskV1GetTaskV1CommentList() + defer cli.Mock().UnMockTaskV1DeleteTaskV1() - _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{}) + _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -132,23 +132,23 @@ func Test_TaskV1_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) + _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{ + TaskID: "x", + }) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{ - TaskID: "x", - }) + _, _, err := moduleCli.CreateTaskV1(ctx, &lark.CreateTaskV1Req{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetTaskV1CommentList(ctx, &lark.GetTaskV1CommentListReq{ + _, _, err := moduleCli.DeleteTaskV1(ctx, &lark.DeleteTaskV1Req{ TaskID: "x", }) as.NotNil(err) diff --git a/test/vc_sample_test.go b/test/vc_sample_test.go index 1c2924d1..8119993c 100644 --- a/test/vc_sample_test.go +++ b/test/vc_sample_test.go @@ -38,7 +38,7 @@ func Test_VC_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) + _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,28 +51,1125 @@ func Test_VC_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockVCQueryVCRoomConfig(func(ctx context.Context, request *lark.QueryVCRoomConfigReq, options ...lark.MethodOptionFunc) (*lark.QueryVCRoomConfigResp, *lark.Response, error) { + cli.Mock().MockVCApplyVCReserve(func(ctx context.Context, request *lark.ApplyVCReserveReq, options ...lark.MethodOptionFunc) (*lark.ApplyVCReserveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCQueryVCRoomConfig() + defer cli.Mock().UnMockVCApplyVCReserve() - _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) + _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) - }) + t.Run("", func(t *testing.T) { - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") + cli.Mock().MockVCUpdateVCReserve(func(ctx context.Context, request *lark.UpdateVCReserveReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCReserve() + + _, _, err := moduleCli.UpdateVCReserve(ctx, &lark.UpdateVCReserveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) + cli.Mock().MockVCDeleteVCReserve(func(ctx context.Context, request *lark.DeleteVCReserveReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCReserveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDeleteVCReserve() + + _, _, err := moduleCli.DeleteVCReserve(ctx, &lark.DeleteVCReserveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserve(func(ctx context.Context, request *lark.GetVCReserveReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserve() + + _, _, err := moduleCli.GetVCReserve(ctx, &lark.GetVCReserveReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserveActiveMeeting(func(ctx context.Context, request *lark.GetVCReserveActiveMeetingReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveActiveMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserveActiveMeeting() + + _, _, err := moduleCli.GetVCReserveActiveMeeting(ctx, &lark.GetVCReserveActiveMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeeting(func(ctx context.Context, request *lark.GetVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeeting() + + _, _, err := moduleCli.GetVCMeeting(ctx, &lark.GetVCMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCListVCMeetingByNo(func(ctx context.Context, request *lark.ListVCMeetingByNoReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingByNoResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCListVCMeetingByNo() + + _, _, err := moduleCli.ListVCMeetingByNo(ctx, &lark.ListVCMeetingByNoReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCInviteVCMeeting(func(ctx context.Context, request *lark.InviteVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.InviteVCMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCInviteVCMeeting() + + _, _, err := moduleCli.InviteVCMeeting(ctx, &lark.InviteVCMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCKickoutVCMeeting(func(ctx context.Context, request *lark.KickoutVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.KickoutVCMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCKickoutVCMeeting() + + _, _, err := moduleCli.KickoutVCMeeting(ctx, &lark.KickoutVCMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCHostMeeting(func(ctx context.Context, request *lark.SetVCHostMeetingReq, options ...lark.MethodOptionFunc) (*lark.SetVCHostMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCHostMeeting() + + _, _, err := moduleCli.SetVCHostMeeting(ctx, &lark.SetVCHostMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCEndVCMeeting(func(ctx context.Context, request *lark.EndVCMeetingReq, options ...lark.MethodOptionFunc) (*lark.EndVCMeetingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCEndVCMeeting() + + _, _, err := moduleCli.EndVCMeeting(ctx, &lark.EndVCMeetingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCStartVCMeetingRecording(func(ctx context.Context, request *lark.StartVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.StartVCMeetingRecordingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCStartVCMeetingRecording() + + _, _, err := moduleCli.StartVCMeetingRecording(ctx, &lark.StartVCMeetingRecordingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCStopVCMeetingRecording(func(ctx context.Context, request *lark.StopVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.StopVCMeetingRecordingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCStopVCMeetingRecording() + + _, _, err := moduleCli.StopVCMeetingRecording(ctx, &lark.StopVCMeetingRecordingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingRecording(func(ctx context.Context, request *lark.GetVCMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingRecordingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingRecording() + + _, _, err := moduleCli.GetVCMeetingRecording(ctx, &lark.GetVCMeetingRecordingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCPermissionMeetingRecording(func(ctx context.Context, request *lark.SetVCPermissionMeetingRecordingReq, options ...lark.MethodOptionFunc) (*lark.SetVCPermissionMeetingRecordingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCPermissionMeetingRecording() + + _, _, err := moduleCli.SetVCPermissionMeetingRecording(ctx, &lark.SetVCPermissionMeetingRecordingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCDailyReport(func(ctx context.Context, request *lark.GetVCDailyReportReq, options ...lark.MethodOptionFunc) (*lark.GetVCDailyReportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCDailyReport() + + _, _, err := moduleCli.GetVCDailyReport(ctx, &lark.GetVCDailyReportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCTopUserReport(func(ctx context.Context, request *lark.GetVCTopUserReportReq, options ...lark.MethodOptionFunc) (*lark.GetVCTopUserReportResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCTopUserReport() + + _, _, err := moduleCli.GetVCTopUserReport(ctx, &lark.GetVCTopUserReportReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCRoomList(func(ctx context.Context, request *lark.GetVCRoomListReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCRoomList() + + _, _, err := moduleCli.GetVCRoomList(ctx, &lark.GetVCRoomListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCRoom(func(ctx context.Context, request *lark.GetVCRoomReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCRoom() + + _, _, err := moduleCli.GetVCRoom(ctx, &lark.GetVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCBatchGetVCRoom(func(ctx context.Context, request *lark.BatchGetVCRoomReq, options ...lark.MethodOptionFunc) (*lark.BatchGetVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCBatchGetVCRoom() + + _, _, err := moduleCli.BatchGetVCRoom(ctx, &lark.BatchGetVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCCreateVCRoom(func(ctx context.Context, request *lark.CreateVCRoomReq, options ...lark.MethodOptionFunc) (*lark.CreateVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCCreateVCRoom() + + _, _, err := moduleCli.CreateVCRoom(ctx, &lark.CreateVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCRoom(func(ctx context.Context, request *lark.UpdateVCRoomReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCRoom() + + _, _, err := moduleCli.UpdateVCRoom(ctx, &lark.UpdateVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCDeleteVCRoom(func(ctx context.Context, request *lark.DeleteVCRoomReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDeleteVCRoom() + + _, _, err := moduleCli.DeleteVCRoom(ctx, &lark.DeleteVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSearchVCRoom(func(ctx context.Context, request *lark.SearchVCRoomReq, options ...lark.MethodOptionFunc) (*lark.SearchVCRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSearchVCRoom() + + _, _, err := moduleCli.SearchVCRoom(ctx, &lark.SearchVCRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCRoomLevelList(func(ctx context.Context, request *lark.GetVCRoomLevelListReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomLevelListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCRoomLevelList() + + _, _, err := moduleCli.GetVCRoomLevelList(ctx, &lark.GetVCRoomLevelListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCRoomLevel(func(ctx context.Context, request *lark.GetVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.GetVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCRoomLevel() + + _, _, err := moduleCli.GetVCRoomLevel(ctx, &lark.GetVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCBatchGetVCRoomLevel(func(ctx context.Context, request *lark.BatchGetVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.BatchGetVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCBatchGetVCRoomLevel() + + _, _, err := moduleCli.BatchGetVCRoomLevel(ctx, &lark.BatchGetVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCCreateVCRoomLevel(func(ctx context.Context, request *lark.CreateVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.CreateVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCCreateVCRoomLevel() + + _, _, err := moduleCli.CreateVCRoomLevel(ctx, &lark.CreateVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCRoomLevel(func(ctx context.Context, request *lark.UpdateVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCRoomLevel() + + _, _, err := moduleCli.UpdateVCRoomLevel(ctx, &lark.UpdateVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCDeleteVCRoomLevel(func(ctx context.Context, request *lark.DeleteVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDeleteVCRoomLevel() + + _, _, err := moduleCli.DeleteVCRoomLevel(ctx, &lark.DeleteVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSearchVCRoomLevel(func(ctx context.Context, request *lark.SearchVCRoomLevelReq, options ...lark.MethodOptionFunc) (*lark.SearchVCRoomLevelResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSearchVCRoomLevel() + + _, _, err := moduleCli.SearchVCRoomLevel(ctx, &lark.SearchVCRoomLevelReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCScopeConfig(func(ctx context.Context, request *lark.SetVCScopeConfigReq, options ...lark.MethodOptionFunc) (*lark.SetVCScopeConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCScopeConfig() + + _, _, err := moduleCli.SetVCScopeConfig(ctx, &lark.SetVCScopeConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCScopeConfig(func(ctx context.Context, request *lark.GetVCScopeConfigReq, options ...lark.MethodOptionFunc) (*lark.GetVCScopeConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCScopeConfig() + + _, _, err := moduleCli.GetVCScopeConfig(ctx, &lark.GetVCScopeConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserveConfig(func(ctx context.Context, request *lark.GetVCReserveConfigReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserveConfig() + + _, _, err := moduleCli.GetVCReserveConfig(ctx, &lark.GetVCReserveConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCReserveConfig(func(ctx context.Context, request *lark.UpdateVCReserveConfigReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCReserveConfig() + + _, _, err := moduleCli.UpdateVCReserveConfig(ctx, &lark.UpdateVCReserveConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserveConfigForm(func(ctx context.Context, request *lark.GetVCReserveConfigFormReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigFormResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserveConfigForm() + + _, _, err := moduleCli.GetVCReserveConfigForm(ctx, &lark.GetVCReserveConfigFormReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCReserveConfigForm(func(ctx context.Context, request *lark.UpdateVCReserveConfigFormReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigFormResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCReserveConfigForm() + + _, _, err := moduleCli.UpdateVCReserveConfigForm(ctx, &lark.UpdateVCReserveConfigFormReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserveConfigAdmin(func(ctx context.Context, request *lark.GetVCReserveConfigAdminReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigAdminResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserveConfigAdmin() + + _, _, err := moduleCli.GetVCReserveConfigAdmin(ctx, &lark.GetVCReserveConfigAdminReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCReserveConfigAdmin(func(ctx context.Context, request *lark.UpdateVCReserveConfigAdminReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigAdminResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCReserveConfigAdmin() + + _, _, err := moduleCli.UpdateVCReserveConfigAdmin(ctx, &lark.UpdateVCReserveConfigAdminReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCReserveConfigDisableInform(func(ctx context.Context, request *lark.GetVCReserveConfigDisableInformReq, options ...lark.MethodOptionFunc) (*lark.GetVCReserveConfigDisableInformResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCReserveConfigDisableInform() + + _, _, err := moduleCli.GetVCReserveConfigDisableInform(ctx, &lark.GetVCReserveConfigDisableInformReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCReserveConfigDisableInform(func(ctx context.Context, request *lark.UpdateVCReserveConfigDisableInformReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCReserveConfigDisableInformResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCReserveConfigDisableInform() + + _, _, err := moduleCli.UpdateVCReserveConfigDisableInform(ctx, &lark.UpdateVCReserveConfigDisableInformReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCExportVCMeetingList(func(ctx context.Context, request *lark.ExportVCMeetingListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCMeetingListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCExportVCMeetingList() + + _, _, err := moduleCli.ExportVCMeetingList(ctx, &lark.ExportVCMeetingListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCExportVCParticipantList(func(ctx context.Context, request *lark.ExportVCParticipantListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCParticipantListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCExportVCParticipantList() + + _, _, err := moduleCli.ExportVCParticipantList(ctx, &lark.ExportVCParticipantListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCExportVCParticipantQualityList(func(ctx context.Context, request *lark.ExportVCParticipantQualityListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCParticipantQualityListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCExportVCParticipantQualityList() + + _, _, err := moduleCli.ExportVCParticipantQualityList(ctx, &lark.ExportVCParticipantQualityListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCExportVCResourceReservationList(func(ctx context.Context, request *lark.ExportVCResourceReservationListReq, options ...lark.MethodOptionFunc) (*lark.ExportVCResourceReservationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCExportVCResourceReservationList() + + _, _, err := moduleCli.ExportVCResourceReservationList(ctx, &lark.ExportVCResourceReservationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCExportTask(func(ctx context.Context, request *lark.GetVCExportTaskReq, options ...lark.MethodOptionFunc) (*lark.GetVCExportTaskResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCExportTask() + + _, _, err := moduleCli.GetVCExportTask(ctx, &lark.GetVCExportTaskReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCDownloadVCExportFile(func(ctx context.Context, request *lark.DownloadVCExportFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadVCExportFileResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDownloadVCExportFile() + + _, _, err := moduleCli.DownloadVCExportFile(ctx, &lark.DownloadVCExportFileReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCAlertList(func(ctx context.Context, request *lark.GetVCAlertListReq, options ...lark.MethodOptionFunc) (*lark.GetVCAlertListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCAlertList() + + _, _, err := moduleCli.GetVCAlertList(ctx, &lark.GetVCAlertListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingList(func(ctx context.Context, request *lark.GetVCMeetingListReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingList() + + _, _, err := moduleCli.GetVCMeetingList(ctx, &lark.GetVCMeetingListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCParticipantList(func(ctx context.Context, request *lark.GetVCParticipantListReq, options ...lark.MethodOptionFunc) (*lark.GetVCParticipantListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCParticipantList() + + _, _, err := moduleCli.GetVCParticipantList(ctx, &lark.GetVCParticipantListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCParticipantQualityList(func(ctx context.Context, request *lark.GetVCParticipantQualityListReq, options ...lark.MethodOptionFunc) (*lark.GetVCParticipantQualityListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCParticipantQualityList() + + _, _, err := moduleCli.GetVCParticipantQualityList(ctx, &lark.GetVCParticipantQualityListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCResourceReservationList(func(ctx context.Context, request *lark.GetVCResourceReservationListReq, options ...lark.MethodOptionFunc) (*lark.GetVCResourceReservationListResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCResourceReservationList() + + _, _, err := moduleCli.GetVCResourceReservationList(ctx, &lark.GetVCResourceReservationListReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCQueryVCRoomConfig(func(ctx context.Context, request *lark.QueryVCRoomConfigReq, options ...lark.MethodOptionFunc) (*lark.QueryVCRoomConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCQueryVCRoomConfig() + + _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCRoomConfig(func(ctx context.Context, request *lark.SetVCRoomConfigReq, options ...lark.MethodOptionFunc) (*lark.SetVCRoomConfigResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCRoomConfig() + + _, _, err := moduleCli.SetVCRoomConfig(ctx, &lark.SetVCRoomConfigReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCRoomConfigCheckboardAccessCode(func(ctx context.Context, request *lark.SetVCRoomConfigCheckboardAccessCodeReq, options ...lark.MethodOptionFunc) (*lark.SetVCRoomConfigCheckboardAccessCodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCRoomConfigCheckboardAccessCode() + + _, _, err := moduleCli.SetVCRoomConfigCheckboardAccessCode(ctx, &lark.SetVCRoomConfigCheckboardAccessCodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCSetVCRoomConfigRoomAccessCode(func(ctx context.Context, request *lark.SetVCRoomConfigRoomAccessCodeReq, options ...lark.MethodOptionFunc) (*lark.SetVCRoomConfigRoomAccessCodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCSetVCRoomConfigRoomAccessCode() + + _, _, err := moduleCli.SetVCRoomConfigRoomAccessCode(ctx, &lark.SetVCRoomConfigRoomAccessCodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + }) + + t.Run("response is failed (mock http)", func(t *testing.T) { + cli := AppAllPermission.Ins() + moduleCli := cli.VC + cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { + return nil, fmt.Errorf("mock-http-failed") + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ApplyVCReserve(ctx, &lark.ApplyVCReserveReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCReserve(ctx, &lark.UpdateVCReserveReq{ + ReserveID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteVCReserve(ctx, &lark.DeleteVCReserveReq{ + ReserveID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserve(ctx, &lark.GetVCReserveReq{ + ReserveID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserveActiveMeeting(ctx, &lark.GetVCReserveActiveMeetingReq{ + ReserveID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeeting(ctx, &lark.GetVCMeetingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingByNo(ctx, &lark.ListVCMeetingByNoReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.InviteVCMeeting(ctx, &lark.InviteVCMeetingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.KickoutVCMeeting(ctx, &lark.KickoutVCMeetingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCHostMeeting(ctx, &lark.SetVCHostMeetingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.EndVCMeeting(ctx, &lark.EndVCMeetingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.StartVCMeetingRecording(ctx, &lark.StartVCMeetingRecordingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.StopVCMeetingRecording(ctx, &lark.StopVCMeetingRecordingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingRecording(ctx, &lark.GetVCMeetingRecordingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCPermissionMeetingRecording(ctx, &lark.SetVCPermissionMeetingRecordingReq{ + MeetingID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCDailyReport(ctx, &lark.GetVCDailyReportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCTopUserReport(ctx, &lark.GetVCTopUserReportReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCRoomList(ctx, &lark.GetVCRoomListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCRoom(ctx, &lark.GetVCRoomReq{ + RoomID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetVCRoom(ctx, &lark.BatchGetVCRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCRoom(ctx, &lark.CreateVCRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCRoom(ctx, &lark.UpdateVCRoomReq{ + RoomID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteVCRoom(ctx, &lark.DeleteVCRoomReq{ + RoomID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchVCRoom(ctx, &lark.SearchVCRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCRoomLevelList(ctx, &lark.GetVCRoomLevelListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCRoomLevel(ctx, &lark.GetVCRoomLevelReq{ + RoomLevelID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.BatchGetVCRoomLevel(ctx, &lark.BatchGetVCRoomLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCRoomLevel(ctx, &lark.CreateVCRoomLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCRoomLevel(ctx, &lark.UpdateVCRoomLevelReq{ + RoomLevelID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteVCRoomLevel(ctx, &lark.DeleteVCRoomLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SearchVCRoomLevel(ctx, &lark.SearchVCRoomLevelReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCScopeConfig(ctx, &lark.SetVCScopeConfigReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCScopeConfig(ctx, &lark.GetVCScopeConfigReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserveConfig(ctx, &lark.GetVCReserveConfigReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCReserveConfig(ctx, &lark.UpdateVCReserveConfigReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserveConfigForm(ctx, &lark.GetVCReserveConfigFormReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCReserveConfigForm(ctx, &lark.UpdateVCReserveConfigFormReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserveConfigAdmin(ctx, &lark.GetVCReserveConfigAdminReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCReserveConfigAdmin(ctx, &lark.UpdateVCReserveConfigAdminReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCReserveConfigDisableInform(ctx, &lark.GetVCReserveConfigDisableInformReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCReserveConfigDisableInform(ctx, &lark.UpdateVCReserveConfigDisableInformReq{ + ReserveConfigID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ExportVCMeetingList(ctx, &lark.ExportVCMeetingListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ExportVCParticipantList(ctx, &lark.ExportVCParticipantListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ExportVCParticipantQualityList(ctx, &lark.ExportVCParticipantQualityListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ExportVCResourceReservationList(ctx, &lark.ExportVCResourceReservationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCExportTask(ctx, &lark.GetVCExportTaskReq{ + TaskID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadVCExportFile(ctx, &lark.DownloadVCExportFileReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCAlertList(ctx, &lark.GetVCAlertListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingList(ctx, &lark.GetVCMeetingListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCParticipantList(ctx, &lark.GetVCParticipantListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCParticipantQualityList(ctx, &lark.GetVCParticipantQualityListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCResourceReservationList(ctx, &lark.GetVCResourceReservationListReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.QueryVCRoomConfig(ctx, &lark.QueryVCRoomConfigReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCRoomConfig(ctx, &lark.SetVCRoomConfigReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCRoomConfigCheckboardAccessCode(ctx, &lark.SetVCRoomConfigCheckboardAccessCodeReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.SetVCRoomConfigRoomAccessCode(ctx, &lark.SetVCRoomConfigRoomAccessCodeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/vcmeeting_sample_test.go b/test/vcmeeting_sample_test.go index ec915224..5c9d6b8d 100644 --- a/test/vcmeeting_sample_test.go +++ b/test/vcmeeting_sample_test.go @@ -38,7 +38,7 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) as.NotNil(err) as.Equal(err.Error(), "failed") }) @@ -51,24 +51,24 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetResp, *lark.Response, error) { + cli.Mock().MockVCMeetingListVCMeetingDefaultRoom(func(ctx context.Context, request *lark.ListVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultRoomResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultRoom() - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetIDResp, *lark.Response, error) { + cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingCreateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -87,36 +87,36 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetIDResp, *lark.Response, error) { + cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingUpdateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingCreateResp, *lark.Response, error) { + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomCreateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomCreateResp, *lark.Response, error) { + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomUpdateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() - _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -135,84 +135,84 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomDeleteResp, *lark.Response, error) { + cli.Mock().MockVCMeetingListVCMeetingDefaultCountry(func(ctx context.Context, request *lark.ListVCMeetingDefaultCountryReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultCountryResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultCountry() - _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingListVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.ListVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultBuildingResp, *lark.Response, error) { + cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultBuilding() + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() - _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingListVCMeetingDefaultCountry(func(ctx context.Context, request *lark.ListVCMeetingDefaultCountryReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultCountryResp, *lark.Response, error) { + cli.Mock().MockVCMeetingListVCMeetingDefaultDistrict(func(ctx context.Context, request *lark.ListVCMeetingDefaultDistrictReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultDistrictResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultCountry() + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultDistrict() - _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingListVCMeetingDefaultDistrict(func(ctx context.Context, request *lark.ListVCMeetingDefaultDistrictReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultDistrictResp, *lark.Response, error) { + cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomDeleteResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultDistrict() + defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() - _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingListVCMeetingDefaultRoom(func(ctx context.Context, request *lark.ListVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultRoomResp, *lark.Response, error) { + cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultRoom() + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() - _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingUpdateResp, *lark.Response, error) { + cli.Mock().MockVCMeetingListVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.ListVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultBuildingResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() + defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultBuilding() - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomUpdateResp, *lark.Response, error) { + cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() + defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() - _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -228,14 +228,14 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -249,21 +249,21 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -277,49 +277,49 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) From 6ba97eec4b43f053782f64900731943452bef8ab Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 17:18:25 +0800 Subject: [PATCH 04/15] fix(api): keep empty ACS request struct in single-line form --- api_acs_device_list.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api_acs_device_list.go b/api_acs_device_list.go index 07643cd4..f693d2c0 100644 --- a/api_acs_device_list.go +++ b/api_acs_device_list.go @@ -57,8 +57,7 @@ func (r *Mock) UnMockACSGetACSDeviceList() { } // GetACSDeviceListReq ... -type GetACSDeviceListReq struct { -} +type GetACSDeviceListReq struct{} // GetACSDeviceListResp ... type GetACSDeviceListResp struct { From dc8a9cb5bb1c1060d8393421320c86291bd80780 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 17:31:46 +0800 Subject: [PATCH 05/15] chore(generate): regenerate app_link apis --- app_link_native_app.go | 12 - app_link_open_bot.go | 12 - app_link_open_calender.go | 12 - app_link_open_calender_account.go | 12 - app_link_open_calender_event_create.go | 12 - app_link_open_calender_view.go | 12 - app_link_open_chat.go | 12 - app_link_open_docs.go | 12 - app_link_open_lark.go | 12 - app_link_open_mini_program.go | 12 - app_link_open_sso_login.go | 12 - app_link_open_web_app.go | 12 - app_link_open_web_url.go | 12 - app_link_open_workbench.go | 12 - app_link_scan.go | 12 - app_link_task.go | 12 - app_link_task_create.go | 12 - app_link_task_detail.go | 12 - app_link_task_tab.go | 12 - mock.go | 1928 ++++++++++++------------ 20 files changed, 964 insertions(+), 1192 deletions(-) diff --git a/app_link_native_app.go b/app_link_native_app.go index d3a78bbf..1e75c93a 100644 --- a/app_link_native_app.go +++ b/app_link_native_app.go @@ -37,15 +37,3 @@ func (r *AppLinkService) OpenNativeApp(req *OpenNativeAppReq) string { type OpenNativeAppReq struct { AppID string `json:"appId,omitempty"` // 原生应用 appId(可从「开发者后台-凭证与基础信息」获取) } - -// OpenNativeAppResp ... -type OpenNativeAppResp struct { -} - -// openNativeAppResp ... -type openNativeAppResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenNativeAppResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_bot.go b/app_link_open_bot.go index 40ec54cf..237677df 100644 --- a/app_link_open_bot.go +++ b/app_link_open_bot.go @@ -36,15 +36,3 @@ func (r *AppLinkService) OpenBot(req *OpenBotReq) string { type OpenBotReq struct { AppID string `json:"appId,omitempty"` // 机器人的appId } - -// OpenBotResp ... -type OpenBotResp struct { -} - -// openBotResp ... -type openBotResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenBotResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_calender.go b/app_link_open_calender.go index 952fdc45..f2ff3915 100644 --- a/app_link_open_calender.go +++ b/app_link_open_calender.go @@ -34,15 +34,3 @@ func (r *AppLinkService) OpenCalender(req *OpenCalenderReq) string { // OpenCalenderReq ... type OpenCalenderReq struct { } - -// OpenCalenderResp ... -type OpenCalenderResp struct { -} - -// openCalenderResp ... -type openCalenderResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenCalenderResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_calender_account.go b/app_link_open_calender_account.go index 402d8c24..d2a4b075 100644 --- a/app_link_open_calender_account.go +++ b/app_link_open_calender_account.go @@ -34,15 +34,3 @@ func (r *AppLinkService) OpenCalenderAccount(req *OpenCalenderAccountReq) string // OpenCalenderAccountReq ... type OpenCalenderAccountReq struct { } - -// OpenCalenderAccountResp ... -type OpenCalenderAccountResp struct { -} - -// openCalenderAccountResp ... -type openCalenderAccountResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenCalenderAccountResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_calender_event_create.go b/app_link_open_calender_event_create.go index 17c50a87..12a5d0d2 100644 --- a/app_link_open_calender_event_create.go +++ b/app_link_open_calender_event_create.go @@ -37,15 +37,3 @@ type OpenCalenderEventCreateReq struct { EndTime *string `json:"endTime,omitempty"` // 结束日期, {unixTime}格式 Summary *string `json:"summary,omitempty"` // 日程主题, 中文可使用encodeURIComponent方法生成 } - -// OpenCalenderEventCreateResp ... -type OpenCalenderEventCreateResp struct { -} - -// openCalenderEventCreateResp ... -type openCalenderEventCreateResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenCalenderEventCreateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_calender_view.go b/app_link_open_calender_view.go index 166c65b4..4279cb41 100644 --- a/app_link_open_calender_view.go +++ b/app_link_open_calender_view.go @@ -36,15 +36,3 @@ type OpenCalenderViewReq struct { Type *string `json:"type,omitempty"` // 视图类型, 枚举值包括: `day`: 日视图 `three_day`: 三日视图, 仅移动端支持 `week`: 周视图, 仅PC端支持 `month`: 月视图 `meeting`: 会议室视图, 仅PC端支持 `list`: 列表视图, 仅移动端支持 Date *string `json:"date,omitempty"` // 日期, {unixTime}格式 } - -// OpenCalenderViewResp ... -type OpenCalenderViewResp struct { -} - -// openCalenderViewResp ... -type openCalenderViewResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenCalenderViewResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_chat.go b/app_link_open_chat.go index 71cf17ed..3c63bf23 100644 --- a/app_link_open_chat.go +++ b/app_link_open_chat.go @@ -36,15 +36,3 @@ type OpenChatReq struct { OpenID *string `json:"openId,omitempty"` // 用户 openId, 获取方式可以参考文档: [如何获取自己的 Open ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid) OpenChatID *string `json:"openChatId,omitempty"` // 会话ID, 包括单聊会话和群聊会话。是以 'oc' 开头的字段, 获取方式可参考文档 [群ID说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)示例值: oc_41e7bdf4877cfc316136f4ccf6c32613 } - -// OpenChatResp ... -type OpenChatResp struct { -} - -// openChatResp ... -type openChatResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenChatResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_docs.go b/app_link_open_docs.go index 991fec94..967fb2fb 100644 --- a/app_link_open_docs.go +++ b/app_link_open_docs.go @@ -35,15 +35,3 @@ func (r *AppLinkService) OpenDocs(req *OpenDocsReq) string { type OpenDocsReq struct { URL string `json:"url,omitempty"` // 要打开的云文档URL } - -// OpenDocsResp ... -type OpenDocsResp struct { -} - -// openDocsResp ... -type openDocsResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenDocsResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_lark.go b/app_link_open_lark.go index 670e4718..328e6f19 100644 --- a/app_link_open_lark.go +++ b/app_link_open_lark.go @@ -34,15 +34,3 @@ func (r *AppLinkService) OpenLark(req *OpenLarkReq) string { // OpenLarkReq ... type OpenLarkReq struct { } - -// OpenLarkResp ... -type OpenLarkResp struct { -} - -// openLarkResp ... -type openLarkResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenLarkResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_mini_program.go b/app_link_open_mini_program.go index ae108fb2..a5d7ac15 100644 --- a/app_link_open_mini_program.go +++ b/app_link_open_mini_program.go @@ -44,15 +44,3 @@ type OpenMiniProgramReq struct { PathPc *string `json:"path_pc,omitempty"` // 同 path 参数, PC 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 MinLkVer *string `json:"min_lk_ver,omitempty"` // 指定 AppLink 协议能够兼容的最小飞书版本, 使用三位版本号 x.y.z。如果当前飞书版本号小于min_lk_ver, 打开该 AppLink 会显示为兼容页面 } - -// OpenMiniProgramResp ... -type OpenMiniProgramResp struct { -} - -// openMiniProgramResp ... -type openMiniProgramResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenMiniProgramResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_sso_login.go b/app_link_open_sso_login.go index 32fb3dd6..fa226726 100644 --- a/app_link_open_sso_login.go +++ b/app_link_open_sso_login.go @@ -36,15 +36,3 @@ type OpenSSOLoginReq struct { SSODomain string `json:"sso_domain,omitempty"` // 租户的域名, 填写的是租户在admin后台配置的租户域名信息。当在admin后台改动租户的域名时, 需要同步修改applink该参数值 TenantName string `json:"tenant_name,omitempty"` // 租户名, 用于在切换租户时, 客户端展示即将登录到的租户名称, 一般填写公司名即可 } - -// OpenSSOLoginResp ... -type OpenSSOLoginResp struct { -} - -// openSSOLoginResp ... -type openSSOLoginResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenSSOLoginResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_web_app.go b/app_link_open_web_app.go index 29b590fc..4477cfc5 100644 --- a/app_link_open_web_app.go +++ b/app_link_open_web_app.go @@ -46,15 +46,3 @@ type OpenWebAppReq struct { LkTargetURL *string `json:"lk_target_url,omitempty"` // 指定要打开网页应用的某个页面完整url 注意: 1. 从 7.27版本开始, 始终会打开该参数配置的页面;7.27 以前版本, 此url参数中的domain如果和网页应用在开发者后台配置的url的scheme和domain不一致, 打开的将会是网页应用开发者后台配置的url 2.此url参数必须进行encode处理, 如果url携带query参数, 并且query参数中也包含 url 或 中文 等非ASCII码字符, 必须先对query参数中的非ASCII码字符进行encode后, 作为参数的值, 然后对url整体进行encode。具体用法详见示例3 3. 该参数从 5.12版本 开始支持, 低版本无法解析此参数, 如果在低版本使用, 将打开开发者后台配置的网页应用首页 4. 该参数和path 系列参数互斥, 同时传递时lk_target_url 优先级更高 Reload *string `json:"reload,omitempty"` // 如果网页应用当前所处的页面路径和 applink 要打开的页面路径相同时: true: 重新加载页面 false: 保留原页面状态 默认值: false 5.20版本开始支持, 仅PC端支持 } - -// OpenWebAppResp ... -type OpenWebAppResp struct { -} - -// openWebAppResp ... -type openWebAppResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenWebAppResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_web_url.go b/app_link_open_web_url.go index 246f79e7..efeb4357 100644 --- a/app_link_open_web_url.go +++ b/app_link_open_web_url.go @@ -43,15 +43,3 @@ type OpenWebURLReq struct { MinWidth *string `json:"min_width,omitempty"` // 最小宽度(仅当`mode`为`sidebar-semi`或`window`时生效), 飞书7.9版本开始支持 最小值: 350 最大值: 飞书窗口的宽度 默认值: 350 MaxWidth *string `json:"max_width,omitempty"` // 最大宽度(仅当`mode`为`sidebar-semi`或`window`时生效), 飞书7.9版本开始支持 最小值: 350 最大值: 飞书窗口的宽度 默认值: 350 } - -// OpenWebURLResp ... -type OpenWebURLResp struct { -} - -// openWebURLResp ... -type openWebURLResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenWebURLResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_open_workbench.go b/app_link_open_workbench.go index be2f2bf4..d903ac56 100644 --- a/app_link_open_workbench.go +++ b/app_link_open_workbench.go @@ -39,15 +39,3 @@ type OpenWorkbenchReq struct { PathIos *string `json:"path_ios,omitempty"` // 访问 iOS 端网页工作台某个具体页面。iOS 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 PathPc *string `json:"path_pc,omitempty"` // 访问 PC 端网页工作台某个具体页面。PC 端会优先使用该参数, 如果该参数不存在, 则会使用 path 参数 } - -// OpenWorkbenchResp ... -type OpenWorkbenchResp struct { -} - -// openWorkbenchResp ... -type openWorkbenchResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenWorkbenchResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_scan.go b/app_link_scan.go index 749bd354..8d9b6c2e 100644 --- a/app_link_scan.go +++ b/app_link_scan.go @@ -34,15 +34,3 @@ func (r *AppLinkService) OpenScan(req *OpenScanReq) string { // OpenScanReq ... type OpenScanReq struct { } - -// OpenScanResp ... -type OpenScanResp struct { -} - -// openScanResp ... -type openScanResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenScanResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_task.go b/app_link_task.go index f1762079..6e2d36a6 100644 --- a/app_link_task.go +++ b/app_link_task.go @@ -36,15 +36,3 @@ func (r *AppLinkService) OpenTask(req *OpenTaskReq) string { // OpenTaskReq ... type OpenTaskReq struct { } - -// OpenTaskResp ... -type OpenTaskResp struct { -} - -// openTaskResp ... -type openTaskResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenTaskResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_task_create.go b/app_link_task_create.go index 7f3e577e..8ff7b32f 100644 --- a/app_link_task_create.go +++ b/app_link_task_create.go @@ -36,15 +36,3 @@ func (r *AppLinkService) OpenTaskCreate(req *OpenTaskCreateReq) string { // OpenTaskCreateReq ... type OpenTaskCreateReq struct { } - -// OpenTaskCreateResp ... -type OpenTaskCreateResp struct { -} - -// openTaskCreateResp ... -type openTaskCreateResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenTaskCreateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_task_detail.go b/app_link_task_detail.go index 49a487c6..e33f7e98 100644 --- a/app_link_task_detail.go +++ b/app_link_task_detail.go @@ -38,15 +38,3 @@ type OpenTaskDetailReq struct { Guid string `json:"guid,omitempty"` // 全局唯一的 taskId(global unique ID), 通过[飞书任务的 OpenAPI](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/task-v2/task/get) 获取 Mode *string `json:"mode,omitempty"` // 打开模式, 未填写时默认在 IM 场景打开详情页面。枚举值包括: `app`: 在任务 tab 中打开详情页面。 } - -// OpenTaskDetailResp ... -type OpenTaskDetailResp struct { -} - -// openTaskDetailResp ... -type openTaskDetailResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenTaskDetailResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/app_link_task_tab.go b/app_link_task_tab.go index b3662a64..53c2bd9d 100644 --- a/app_link_task_tab.go +++ b/app_link_task_tab.go @@ -37,15 +37,3 @@ func (r *AppLinkService) OpenTaskTab(req *OpenTaskTabReq) string { type OpenTaskTabReq struct { Tab string `json:"tab,omitempty"` // String类型, 枚举值包括: `all` 进行中; `assign_to_me` 由我处理; `assign_from_me` 我分配的; `followed` 我关注的; `completed` 已完成 } - -// OpenTaskTabResp ... -type OpenTaskTabResp struct { -} - -// openTaskTabResp ... -type openTaskTabResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *OpenTaskTabResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/mock.go b/mock.go index 8a3eda99..edf351b6 100644 --- a/mock.go +++ b/mock.go @@ -26,44 +26,44 @@ type Mock struct { mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) - mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) + mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) + mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) @@ -73,15 +73,15 @@ type Mock struct { mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) + mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) @@ -103,328 +103,328 @@ type Mock struct { mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) - mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) + mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) + mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) + mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) + mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyCreateAilySessionRunCancel func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) - mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) - mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) - mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) - mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) + mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) - mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) - mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) - mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) - mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) - mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) + mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) + mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) + mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) + mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) - mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) - mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) - mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) - mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) + mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) - mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) - mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) - mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) - mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) - mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) + mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) - mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) - mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) + mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) + mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) - mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) - mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) - mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) + mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) - mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) - mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) + mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) + mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) @@ -435,354 +435,354 @@ type Mock struct { mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) - mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) + mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) - mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) - mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) - mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) + mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) + mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) - mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) - mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) - mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) - mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) + mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) + mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) + mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockCoreHRGetCoreHRApprovalGroups func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCoreHRApprover func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRAddCoreHRAuthorizationRoleAssign func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRRemoveCoreHRAuthorizationRoleAssign func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCoreHRAuthorizationRoleAssign func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoLanguage func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoTimeZone func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) + mockCoreHRGetCoreHrpByDepartment func(ctx context.Context, request *GetCoreHrpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrpByDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHrpByEmployee func(ctx context.Context, request *BatchGetCoreHrpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrpByEmployeeResp, *Response, error) + mockCoreHRGetCoreHrpList func(ctx context.Context, request *GetCoreHrpListReq, options ...MethodOptionFunc) (*GetCoreHrpListResp, *Response, error) mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) - mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataIDConvert func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCoreHRCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRCreateCoreHRCompanyActive func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) + mockCoreHRQueryCoreHRCompanyMultiTimeline func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRCompanyRecentChange func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) + mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) + mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) + mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRBatchQueryCoreHRCostAllocation func(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error) + mockCoreHRCreateCoreHRCostAllocationVersion func(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRRemoveCoreHRCostAllocationVersion func(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostAllocationVersion func(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRQueryCoreHRCostCenterRecentChange func(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) - mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) + mockCoreHRCreateCoreHRCustomOrgActive func(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error) + mockCoreHRCreateCoreHRCustomOrg func(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error) + mockCoreHRDeleteCoreHRCustomOrg func(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error) + mockCoreHRQueryCoreHRCustomOrg func(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error) + mockCoreHRQueryCoreHRCustomOrgRecentChange func(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRCustomOrg func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) + mockCoreHRUpdateCoreHRCustomOrgRule func(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error) + mockCoreHRBatchQueryCoreHRDefaultCostCenter func(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRRemoveCoreHRDefaultCostCenterVersion func(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentOperationLogs func(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentRecentChange func(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRCreateCoreHRDepartmentTree func(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) + mockCoreHRGetCoreHRDraft func(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error) + mockCoreHRCreateCoreHREmployee func(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error) mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRBatchQueryCoreHREmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCoreHREmployeesAdditionalJob func(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRDeleteCoreHREmployeesAdditionalJob func(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRUpdateCoreHREmployeesAdditionalJob func(ctx context.Context, request *UpdateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *CreateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRDeleteCoreHREmployeesInternationalAssignment func(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRListCoreHREmployeesInternationalAssignment func(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRUpdateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error) mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRSearchCoreHREnum func(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error) + mockCoreHRBatchGetCoreHRJob func(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJobChangeRevoke func(ctx context.Context, request *CreateCoreHRJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeRevokeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) - mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) + mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) - mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRQueryCoreHRJobFamilyMultiTimeline func(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRJobFamilyRecentChange func(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) + mockCoreHRCreateCoreHRJobGrade func(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error) + mockCoreHRDeleteCoreHRJobGrade func(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGradeRecentChange func(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobGrade func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRQueryCoreHRJobLevelRecentChange func(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) + mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRQueryCoreHRJobMultiTimeline func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRJobRecentChange func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRLeaveCalendarByScope func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendar func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendarDate func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) + mockCoreHRCreateCoreHRLocationActive func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) + mockCoreHRCreateCoreHRLocationAddress func(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error) + mockCoreHRDeleteCoreHRLocationAddress func(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error) + mockCoreHRUpdateCoreHRLocationAddress func(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRQueryCoreHRLocationMultiTimeline func(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRLocationRecentChange func(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRLocation func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHROffboardingEdit func(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCoreHROffboardingRevoke func(ctx context.Context, request *CreateCoreHROffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingRevokeResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHROffboardingSubmitV2 func(ctx context.Context, request *CreateCoreHROffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCoreHROffboardingSubmitV2Resp, *Response, error) + mockCoreHRCreateCoreHRPathwayActive func(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error) + mockCoreHRBatchGetCoreHRPathway func(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error) + mockCoreHRCreateCoreHRPathway func(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error) + mockCoreHRDeleteCoreHRPathway func(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error) + mockCoreHRUpdateCoreHRPathway func(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRPositionActive func(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error) + mockCoreHRCreateCoreHRPosition func(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error) + mockCoreHRCreateCoreHRPositionDelPosition func(ctx context.Context, request *CreateCoreHRPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionDelPositionResp, *Response, error) + mockCoreHRQueryCoreHRPosition func(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error) + mockCoreHRQueryCoreHRPositionRecentChange func(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRPosition func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) + mockCoreHRCreateCoreHRPreHireComplete func(ctx context.Context, request *CreateCoreHRPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireCompleteResp, *Response, error) mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) - mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) - mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRQueryCoreHRPreHire func(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCoreHRPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireRestoreFlowInstanceResp, *Response, error) + mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCoreHRPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransformOnboardingTaskResp, *Response, error) + mockCoreHRCreateCoreHRPreHireTransitTask func(ctx context.Context, request *CreateCoreHRPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransitTaskResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCoreHRPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireWithdrawOnboardingResp, *Response, error) mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) - mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) - mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) - mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) + mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) + mockCoreHRCreateCoreHRProbationSubmit func(ctx context.Context, request *CreateCoreHRProbationSubmitReq, options ...MethodOptionFunc) (*CreateCoreHRProbationSubmitResp, *Response, error) + mockCoreHRCreateCoreHRProbationWithdraw func(ctx context.Context, request *CreateCoreHRProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCoreHRProbationWithdrawResp, *Response, error) + mockCoreHRUpdateCoreHRProcessApprover func(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error) + mockCoreHRUpdateCoreHRProcessExtra func(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error) + mockCoreHRGetCoreHRProcessFlowVariableData func(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRCreateCoreHRProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCoreHRProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCoreHRProcessQueryFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCoreHRProcessRevoke func(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error) + mockCoreHRCreateCoreHRProcessStart func(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error) + mockCoreHRUpdateCoreHRProcessTransfer func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) + mockCoreHRUpdateCoreHRProcessWithdraw func(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error) + mockCoreHRCreateCoreHRReportDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCoreHRReportDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchsaveResp, *Response, error) mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) - mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) - mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) - mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) - mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) - mockCoreHRBatchQueryCorehrCostAllocation func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) - mockCoreHRCreateCorehrCostAllocationVersion func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRRemoveCorehrCostAllocationVersion func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRUpdateCorehrCostAllocationVersion func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRQueryCorehrCostCenterRecentChange func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrCustomOrgActive func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) - mockCoreHRCreateCorehrCustomOrg func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) - mockCoreHRDeleteCorehrCustomOrg func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) - mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) - mockCoreHRQueryCorehrCustomOrg func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) - mockCoreHRQueryCorehrCustomOrgRecentChange func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrCustomOrgRule func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) - mockCoreHRBatchQueryCorehrDefaultCostCenter func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) - mockCoreHRCreateCorehrDefaultCostCenterVersion func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRRemoveCorehrDefaultCostCenterVersion func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCorehrDefaultCostCenterVersion func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCorehrDepartment func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) - mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRQueryCorehrDepartmentOperationLogs func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) - mockCoreHRQueryCorehrDepartmentRecentChange func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRCreateCorehrDepartmentTree func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) - mockCoreHRGetCorehrDraft func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) - mockCoreHRCreateCorehrEmployee func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) - mockCoreHRBatchQueryCorehrEmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCorehrEmployeesAdditionalJob func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRDeleteCorehrEmployeesAdditionalJob func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRUpdateCorehrEmployeesAdditionalJob func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRDeleteCorehrEmployeesInternationalAssignment func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRListCorehrEmployeesInternationalAssignment func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRUpdateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRSearchCorehrEnum func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) - mockCoreHRBatchGetCorehrJob func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) - mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrJobChange func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) - mockCoreHRCreateCorehrJobChangeRevoke func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) - mockCoreHRQueryCorehrJobFamilyMultiTimeline func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrJobFamilyRecentChange func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) - mockCoreHRDeleteCorehrJobGrade func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) - mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) - mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) - mockCoreHRQueryCorehrJobGradeRecentChange func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) - mockCoreHRQueryCorehrJobLevelRecentChange func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrLocationAddress func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) - mockCoreHRDeleteCorehrLocationAddress func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) - mockCoreHRUpdateCorehrLocationAddress func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) - mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) - mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) - mockCoreHRQueryCorehrLocationMultiTimeline func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrLocationRecentChange func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrOffboardingEdit func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) - mockCoreHRCreateCorehrOffboardingRevoke func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) - mockCoreHRCreateCorehrOffboardingSubmitV2 func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) - mockCoreHRCreateCorehrPathwayActive func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) - mockCoreHRBatchGetCorehrPathway func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) - mockCoreHRCreateCorehrPathway func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) - mockCoreHRDeleteCorehrPathway func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) - mockCoreHRUpdateCorehrPathway func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) - mockCoreHRCreateCorehrPositionActive func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) - mockCoreHRCreateCorehrPosition func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) - mockCoreHRCreateCorehrPositionDelPosition func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) - mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) - mockCoreHRQueryCorehrPosition func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) - mockCoreHRQueryCorehrPositionRecentChange func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrPreHireComplete func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) - mockCoreHRDeleteCorehrPreHire func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) - mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) - mockCoreHRQueryCorehrPreHire func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) - mockCoreHRCreateCorehrPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) - mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCorehrPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) - mockCoreHRCreateCorehrPreHireTransitTask func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) - mockCoreHRCreateCorehrPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) - mockCoreHRCreateCorehrProbationSubmit func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) - mockCoreHRCreateCorehrProbationWithdraw func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) - mockCoreHRUpdateCorehrProcessApprover func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) - mockCoreHRUpdateCorehrProcessExtra func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) - mockCoreHRGetCorehrProcessFormVariableData func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) - mockCoreHRCreateCorehrProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) - mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) - mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) - mockCoreHRUpdateCorehrProcessRevoke func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) - mockCoreHRCreateCorehrProcessStart func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) - mockCoreHRUpdateCorehrProcessWithdraw func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) - mockCoreHRCreateCorehrReportDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCorehrReportDetailRowBatchsave func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) - mockCoreHRDownloadCorehrSignatureFile func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) - mockCoreHRListCorehrSignatureFile func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) - mockCoreHRListCorehrSignatureFileByBizID func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) - mockCoreHRQueryCorehrSignatureFile func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) - mockCoreHRCreateCorehrSignatureFileTerminate func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) - mockCoreHRListCorehrSignatureNodeByFileID func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) - mockCoreHRSearchCorehrSignatureTemplate func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) - mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) - mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) - mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) - mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) - mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) - mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) - mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) - mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) - mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) - mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) + mockCoreHRDownloadCoreHRSignatureFile func(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error) + mockCoreHRListCoreHRSignatureFile func(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error) + mockCoreHRListCoreHRSignatureFileByBizID func(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error) + mockCoreHRQueryCoreHRSignatureFile func(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error) + mockCoreHRCreateCoreHRSignatureFileTerminate func(ctx context.Context, request *CreateCoreHRSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCoreHRSignatureFileTerminateResp, *Response, error) + mockCoreHRListCoreHRSignatureNodeByFileID func(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error) + mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) + mockCoreHRSearchCoreHRSignatureTemplate func(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) + mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) + mockCoreHRBatchQueryCoreHRWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) + mockCoreHRBatchCoreHRWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCoreHRWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRListCoreHRWorkforcePlan func(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) @@ -793,321 +793,247 @@ type Mock struct { mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) - mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) + mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) - mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) + mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) + mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) - mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) + mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) - mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) - mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) - mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) - mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) - mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) - mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) - mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) - mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) - mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) @@ -1117,33 +1043,73 @@ type Mock struct { mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) + mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) + mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) - mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) - mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) + mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) @@ -1151,53 +1117,87 @@ type Mock struct { mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) - mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) - mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) + mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) - mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) + mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) - mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) - mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) - mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) + mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) + mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) - mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) - mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) - mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) @@ -1213,82 +1213,82 @@ type Mock struct { mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) - mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) + mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) + mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) - mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) - mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) - mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) - mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) + mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) - mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) - mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) - mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) - mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) + mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) + mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) + mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) + mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) - mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) - mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) - mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) - mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) + mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) + mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) - mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) @@ -1311,75 +1311,75 @@ type Mock struct { mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) + mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) + mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) + mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) + mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) - mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) - mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) + mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) - mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) + mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) + mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) - mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) - mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) - mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) - mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) - mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) - mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) - mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) - mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) - mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) + mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) mockPayrollListPayrollAcctItem func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) @@ -1391,13 +1391,9 @@ type Mock struct { mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) - mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) + mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) @@ -1410,37 +1406,40 @@ type Mock struct { mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) + mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) - mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) + mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) - mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) - mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) @@ -1448,97 +1447,98 @@ type Mock struct { mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) - mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) - mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) + mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) - mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) - mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) + mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) + mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) + mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) + mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) + mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) + mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) + mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) - mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) + mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) - mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) - mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) - mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) - mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) - mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) - mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) - mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) - mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) + mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) - mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) - mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) - mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) - mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) - mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) - mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) + mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) - mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) + mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) + mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) + mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) + mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) + mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) + mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) @@ -1547,76 +1547,76 @@ type Mock struct { mockTrustPartyGetTrustPartyCollaborationTenant func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) - mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) - mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) + mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) - mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) - mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) - mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) + mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) - mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) + mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) - mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) + mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } From c3624d5cbf41d663986e431821924bd2d4d00272 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 17:35:55 +0800 Subject: [PATCH 06/15] fix(ci): restore stable mock ordering for Corehr types --- mock.go | 1920 +++++++++++++++++++++++++++---------------------------- 1 file changed, 960 insertions(+), 960 deletions(-) diff --git a/mock.go b/mock.go index edf351b6..8a3eda99 100644 --- a/mock.go +++ b/mock.go @@ -26,44 +26,44 @@ type Mock struct { mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) - mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) - mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) @@ -73,15 +73,15 @@ type Mock struct { mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) - mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) @@ -103,328 +103,328 @@ type Mock struct { mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) - mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) - mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) - mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyCreateAilySessionRunCancel func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) + mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) + mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) + mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) - mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) + mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) - mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) - mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) - mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) - mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) - mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) - mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) + mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) + mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) + mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) + mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) + mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) - mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) - mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) - mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) - mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) - mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) - mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) - mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) - mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) - mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) - mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) + mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) - mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) - mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) + mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) - mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) - mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) - mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) @@ -435,354 +435,354 @@ type Mock struct { mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) - mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) + mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) - mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) - mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) + mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) + mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) + mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) - mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockCoreHRGetCoreHRApprovalGroups func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockCoreHRListCoreHRApprover func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRAddCoreHRAuthorizationRoleAssign func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) - mockCoreHRRemoveCoreHRAuthorizationRoleAssign func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRUpdateCoreHRAuthorizationRoleAssign func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) - mockCoreHRSearchCoreHRBasicInfoLanguage func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) - mockCoreHRSearchCoreHRBasicInfoTimeZone func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) - mockCoreHRGetCoreHrpByDepartment func(ctx context.Context, request *GetCoreHrpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrpByDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHrpByEmployee func(ctx context.Context, request *BatchGetCoreHrpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrpByEmployeeResp, *Response, error) - mockCoreHRGetCoreHrpList func(ctx context.Context, request *GetCoreHrpListReq, options ...MethodOptionFunc) (*GetCoreHrpListResp, *Response, error) - mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) - mockCoreHRCreateCoreHRCommonDataIDConvert func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) - mockCoreHRAddCoreHRCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) - mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) - mockCoreHRCreateCoreHRCompanyActive func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRQueryCoreHRCompanyMultiTimeline func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRCompanyRecentChange func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) - mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) - mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) - mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) - mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) - mockCoreHRBatchQueryCoreHRCostAllocation func(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error) - mockCoreHRCreateCoreHRCostAllocationVersion func(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error) - mockCoreHRRemoveCoreHRCostAllocationVersion func(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostAllocationVersion func(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) - mockCoreHRQueryCoreHRCostCenterRecentChange func(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) - mockCoreHRCreateCoreHRCustomOrgActive func(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error) - mockCoreHRCreateCoreHRCustomOrg func(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error) - mockCoreHRDeleteCoreHRCustomOrg func(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error) - mockCoreHRQueryCoreHRCustomOrg func(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error) - mockCoreHRQueryCoreHRCustomOrgRecentChange func(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRCustomOrg func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) - mockCoreHRUpdateCoreHRCustomOrgRule func(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error) - mockCoreHRBatchQueryCoreHRDefaultCostCenter func(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error) - mockCoreHRRemoveCoreHRDefaultCostCenterVersion func(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentOperationLogs func(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentRecentChange func(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRCreateCoreHRDepartmentTree func(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) + mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) - mockCoreHRGetCoreHRDraft func(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error) - mockCoreHRCreateCoreHREmployee func(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error) - mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) - mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRBatchQueryCoreHREmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCoreHREmployeesAdditionalJob func(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error) - mockCoreHRDeleteCoreHREmployeesAdditionalJob func(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error) - mockCoreHRUpdateCoreHREmployeesAdditionalJob func(ctx context.Context, request *UpdateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *CreateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRDeleteCoreHREmployeesInternationalAssignment func(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRListCoreHREmployeesInternationalAssignment func(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRUpdateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) + mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) - mockCoreHRSearchCoreHREnum func(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error) - mockCoreHRBatchGetCoreHRJob func(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJobChangeRevoke func(ctx context.Context, request *CreateCoreHRJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeRevokeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) + mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) - mockCoreHRQueryCoreHRJobFamilyMultiTimeline func(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRJobFamilyRecentChange func(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) - mockCoreHRCreateCoreHRJobGrade func(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error) - mockCoreHRDeleteCoreHRJobGrade func(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error) - mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) - mockCoreHRQueryCoreHRJobGradeRecentChange func(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobGrade func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) - mockCoreHRQueryCoreHRJobLevelRecentChange func(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) - mockCoreHRQueryCoreHRJobMultiTimeline func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRJobRecentChange func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRLeaveCalendarByScope func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRCreateCoreHRLeaveWorkCalendar func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) - mockCoreHRCreateCoreHRLeaveWorkCalendarDate func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) - mockCoreHRCreateCoreHRLocationActive func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) - mockCoreHRCreateCoreHRLocationAddress func(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error) - mockCoreHRDeleteCoreHRLocationAddress func(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error) - mockCoreHRUpdateCoreHRLocationAddress func(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) - mockCoreHRQueryCoreHRLocationMultiTimeline func(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRLocationRecentChange func(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRLocation func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHROffboardingEdit func(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) - mockCoreHRCreateCoreHROffboardingRevoke func(ctx context.Context, request *CreateCoreHROffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingRevokeResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHROffboardingSubmitV2 func(ctx context.Context, request *CreateCoreHROffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCoreHROffboardingSubmitV2Resp, *Response, error) - mockCoreHRCreateCoreHRPathwayActive func(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error) - mockCoreHRBatchGetCoreHRPathway func(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error) - mockCoreHRCreateCoreHRPathway func(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error) - mockCoreHRDeleteCoreHRPathway func(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error) - mockCoreHRUpdateCoreHRPathway func(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRCreateCoreHRPositionActive func(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error) - mockCoreHRCreateCoreHRPosition func(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error) - mockCoreHRCreateCoreHRPositionDelPosition func(ctx context.Context, request *CreateCoreHRPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionDelPositionResp, *Response, error) - mockCoreHRQueryCoreHRPosition func(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error) - mockCoreHRQueryCoreHRPositionRecentChange func(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRPosition func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) - mockCoreHRCreateCoreHRPreHireComplete func(ctx context.Context, request *CreateCoreHRPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireCompleteResp, *Response, error) + mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) - mockCoreHRQueryCoreHRPreHire func(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCoreHRPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireRestoreFlowInstanceResp, *Response, error) - mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCoreHRPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransformOnboardingTaskResp, *Response, error) - mockCoreHRCreateCoreHRPreHireTransitTask func(ctx context.Context, request *CreateCoreHRPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransitTaskResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCoreHRPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireWithdrawOnboardingResp, *Response, error) - mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) + mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) + mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) - mockCoreHRCreateCoreHRProbationSubmit func(ctx context.Context, request *CreateCoreHRProbationSubmitReq, options ...MethodOptionFunc) (*CreateCoreHRProbationSubmitResp, *Response, error) - mockCoreHRCreateCoreHRProbationWithdraw func(ctx context.Context, request *CreateCoreHRProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCoreHRProbationWithdrawResp, *Response, error) - mockCoreHRUpdateCoreHRProcessApprover func(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error) - mockCoreHRUpdateCoreHRProcessExtra func(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error) - mockCoreHRGetCoreHRProcessFlowVariableData func(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) - mockCoreHRCreateCoreHRProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCoreHRProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCoreHRProcessQueryFlowDataTemplateResp, *Response, error) - mockCoreHRUpdateCoreHRProcessRevoke func(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error) - mockCoreHRCreateCoreHRProcessStart func(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error) - mockCoreHRUpdateCoreHRProcessTransfer func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) - mockCoreHRUpdateCoreHRProcessWithdraw func(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error) - mockCoreHRCreateCoreHRReportDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCoreHRReportDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchsaveResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) - mockCoreHRDownloadCoreHRSignatureFile func(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error) - mockCoreHRListCoreHRSignatureFile func(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error) - mockCoreHRListCoreHRSignatureFileByBizID func(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error) - mockCoreHRQueryCoreHRSignatureFile func(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error) - mockCoreHRCreateCoreHRSignatureFileTerminate func(ctx context.Context, request *CreateCoreHRSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCoreHRSignatureFileTerminateResp, *Response, error) - mockCoreHRListCoreHRSignatureNodeByFileID func(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error) - mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) - mockCoreHRSearchCoreHRSignatureTemplate func(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRBatchQueryCoreHRWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) - mockCoreHRBatchCoreHRWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCoreHRWorkforcePlanDetailV2Resp, *Response, error) - mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchsaveResp, *Response, error) - mockCoreHRListCoreHRWorkforcePlan func(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) + mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) + mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) + mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) + mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) + mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) + mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) + mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) + mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) + mockCoreHRBatchQueryCorehrCostAllocation func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) + mockCoreHRCreateCorehrCostAllocationVersion func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRRemoveCorehrCostAllocationVersion func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRUpdateCorehrCostAllocationVersion func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) + mockCoreHRQueryCorehrCostCenterRecentChange func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrCustomOrgActive func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) + mockCoreHRCreateCorehrCustomOrg func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) + mockCoreHRDeleteCorehrCustomOrg func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) + mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) + mockCoreHRQueryCorehrCustomOrg func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) + mockCoreHRQueryCorehrCustomOrgRecentChange func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) + mockCoreHRUpdateCorehrCustomOrgRule func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) + mockCoreHRBatchQueryCorehrDefaultCostCenter func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) + mockCoreHRCreateCorehrDefaultCostCenterVersion func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRRemoveCorehrDefaultCostCenterVersion func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCorehrDefaultCostCenterVersion func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCorehrDepartment func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) + mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRQueryCorehrDepartmentOperationLogs func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) + mockCoreHRQueryCorehrDepartmentRecentChange func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRCreateCorehrDepartmentTree func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) + mockCoreHRGetCorehrDraft func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) + mockCoreHRCreateCorehrEmployee func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) + mockCoreHRBatchQueryCorehrEmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCorehrEmployeesAdditionalJob func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRDeleteCorehrEmployeesAdditionalJob func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRUpdateCorehrEmployeesAdditionalJob func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRDeleteCorehrEmployeesInternationalAssignment func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRListCorehrEmployeesInternationalAssignment func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRUpdateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRSearchCorehrEnum func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) + mockCoreHRBatchGetCorehrJob func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) + mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrJobChange func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) + mockCoreHRCreateCorehrJobChangeRevoke func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) + mockCoreHRQueryCorehrJobFamilyMultiTimeline func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrJobFamilyRecentChange func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) + mockCoreHRDeleteCorehrJobGrade func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) + mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCorehrJobGradeRecentChange func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) + mockCoreHRQueryCorehrJobLevelRecentChange func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrLocationAddress func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) + mockCoreHRDeleteCorehrLocationAddress func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) + mockCoreHRUpdateCorehrLocationAddress func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) + mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) + mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) + mockCoreHRQueryCorehrLocationMultiTimeline func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) + mockCoreHRQueryCorehrLocationRecentChange func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrOffboardingEdit func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) + mockCoreHRCreateCorehrOffboardingRevoke func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) + mockCoreHRCreateCorehrOffboardingSubmitV2 func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) + mockCoreHRCreateCorehrPathwayActive func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) + mockCoreHRBatchGetCorehrPathway func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) + mockCoreHRCreateCorehrPathway func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) + mockCoreHRDeleteCorehrPathway func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) + mockCoreHRUpdateCorehrPathway func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) + mockCoreHRCreateCorehrPositionActive func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) + mockCoreHRCreateCorehrPosition func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) + mockCoreHRCreateCorehrPositionDelPosition func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) + mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) + mockCoreHRQueryCorehrPosition func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) + mockCoreHRQueryCorehrPositionRecentChange func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) + mockCoreHRCreateCorehrPreHireComplete func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) + mockCoreHRDeleteCorehrPreHire func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) + mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) + mockCoreHRQueryCorehrPreHire func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) + mockCoreHRCreateCorehrPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) + mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCorehrPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) + mockCoreHRCreateCorehrPreHireTransitTask func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) + mockCoreHRCreateCorehrPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) + mockCoreHRCreateCorehrProbationSubmit func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) + mockCoreHRCreateCorehrProbationWithdraw func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) + mockCoreHRUpdateCorehrProcessApprover func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) + mockCoreHRUpdateCorehrProcessExtra func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) + mockCoreHRGetCorehrProcessFormVariableData func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) + mockCoreHRCreateCorehrProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) + mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) + mockCoreHRUpdateCorehrProcessRevoke func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) + mockCoreHRCreateCorehrProcessStart func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) + mockCoreHRUpdateCorehrProcessWithdraw func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) + mockCoreHRCreateCorehrReportDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCorehrReportDetailRowBatchsave func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) + mockCoreHRDownloadCorehrSignatureFile func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) + mockCoreHRListCorehrSignatureFile func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) + mockCoreHRListCorehrSignatureFileByBizID func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) + mockCoreHRQueryCorehrSignatureFile func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) + mockCoreHRCreateCorehrSignatureFileTerminate func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) + mockCoreHRListCorehrSignatureNodeByFileID func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) + mockCoreHRSearchCorehrSignatureTemplate func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) + mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) + mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) + mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) + mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) + mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) + mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) + mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) @@ -793,247 +793,321 @@ type Mock struct { mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) - mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) + mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) - mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) - mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) - mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) - mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) + mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) - mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) + mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) + mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) + mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) + mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) + mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) + mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) @@ -1043,73 +1117,33 @@ type Mock struct { mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) - mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) - mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) - mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) - mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) - mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) - mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) - mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) - mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) - mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) @@ -1117,87 +1151,53 @@ type Mock struct { mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) - mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) + mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) - mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) - mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) + mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) - mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) - mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) @@ -1213,82 +1213,82 @@ type Mock struct { mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) - mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) + mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) - mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) - mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) - mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) - mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) + mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) + mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) - mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) - mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) + mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) - mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) - mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) - mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) - mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) - mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) - mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) - mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) + mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) + mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) + mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) + mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) @@ -1311,75 +1311,75 @@ type Mock struct { mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) - mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) - mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) - mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) - mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) - mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) - mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) - mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) - mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) + mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) + mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) + mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) - mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) - mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) + mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) + mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) + mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) + mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) + mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) + mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) - mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) - mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) - mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) + mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) + mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) mockPayrollListPayrollAcctItem func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) @@ -1391,9 +1391,13 @@ type Mock struct { mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) - mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) + mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) @@ -1406,40 +1410,37 @@ type Mock struct { mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) + mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) - mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) @@ -1447,98 +1448,97 @@ type Mock struct { mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) - mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) - mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) + mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) - mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) - mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) - mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) - mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) - mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) - mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) - mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) - mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) + mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) - mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) + mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) + mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) + mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) + mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) + mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) + mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) + mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) + mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) - mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) - mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) - mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) + mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) + mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) + mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) + mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) + mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) + mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) - mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) - mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) - mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) - mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) - mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) + mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) - mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) @@ -1547,76 +1547,76 @@ type Mock struct { mockTrustPartyGetTrustPartyCollaborationTenant func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) - mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) - mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) + mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) + mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) + mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) + mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) + mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) + mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) - mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) - mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) - mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) - mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) - mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) - mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) + mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) - mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) - mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } From f6017e01a6e523a47b2172906d74ce83a7a28d62 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 17:47:46 +0800 Subject: [PATCH 07/15] chore(generate): drop unused response structs from event callback apis --- api_event_callback_module.go | 642 +++++++++--------- api_event_callback_v1_add_bot.go | 12 - api_event_callback_v1_add_user_to_chat.go | 12 - api_event_callback_v1_app_open.go | 12 - api_event_callback_v1_app_status_change.go | 12 - api_event_callback_v1_app_ticket.go | 12 - api_event_callback_v1_app_uninstalled.go | 12 - api_event_callback_v1_approval_cc.go | 12 - api_event_callback_v1_approval_instance.go | 12 - api_event_callback_v1_approval_task.go | 12 - api_event_callback_v1_chat_disband.go | 12 - api_event_callback_v1_leave_approvalV2.go | 12 - ...event_callback_v1_leave_approval_revert.go | 12 - api_event_callback_v1_order_paid.go | 12 - api_event_callback_v1_out_approval.go | 12 - api_event_callback_v1_p2p_chat_create.go | 12 - api_event_callback_v1_receive_message.go | 12 - api_event_callback_v1_remedy_approval.go | 12 - api_event_callback_v1_remove_bot.go | 12 - ...event_callback_v1_remove_user_from_chat.go | 12 - ...t_callback_v1_revoke_add_user_from_chat.go | 12 - api_event_callback_v1_shift_approval.go | 12 - ..._third_party_meeting_room_event_created.go | 12 - ..._third_party_meeting_room_event_deleted.go | 12 - ..._third_party_meeting_room_event_updated.go | 12 - api_event_callback_v1_trip_approval.go | 11 - api_event_callback_v1_work_approval.go | 12 - ...allback_v2_acs_access_record_created_v1.go | 12 - api_event_callback_v2_acs_user_updated_v1.go | 12 - ...cation_application_app_version_audit_v6.go | 12 - ...pplication_app_version_publish_apply_v6.go | 12 - ...plication_app_version_publish_revoke_v6.go | 12 - ...k_v2_application_application_created_v6.go | 12 - ...ication_application_feedback_created_v6.go | 12 - ...ication_application_feedback_updated_v6.go | 12 - ...ication_application_visibility_added_v6.go | 12 - ...ent_callback_v2_application_bot_menu_v6.go | 12 - ...allback_v2_approval_approval_updated_v4.go | 12 - ...back_v2_attendance_user_flow_created_v1.go | 12 - ...back_v2_attendance_user_task_updated_v1.go | 12 - ...ack_v2_calendar_calendar_acl_created_v4.go | 12 - ...ack_v2_calendar_calendar_acl_deleted_v4.go | 12 - ...allback_v2_calendar_calendar_changed_v4.go | 12 - ...k_v2_calendar_calendar_event_changed_v4.go | 12 - ...v2_contact_custom_attr_event_updated_v3.go | 12 - ...llback_v2_contact_department_created_v3.go | 12 - ...llback_v2_contact_department_deleted_v3.go | 12 - ...llback_v2_contact_department_updated_v3.go | 12 - ...2_contact_employee_type_enum_actived_v3.go | 12 - ...2_contact_employee_type_enum_created_v3.go | 12 - ...ntact_employee_type_enum_deactivated_v3.go | 12 - ...2_contact_employee_type_enum_deleted_v3.go | 12 - ...2_contact_employee_type_enum_updated_v3.go | 12 - ...nt_callback_v2_contact_scope_updated_v3.go | 12 - ...ent_callback_v2_contact_user_created_v3.go | 12 - ...ent_callback_v2_contact_user_deleted_v3.go | 12 - ...ent_callback_v2_contact_user_updated_v3.go | 12 - ..._callback_v2_corehr_contract_created_v1.go | 26 +- ..._callback_v2_corehr_contract_deleted_v1.go | 26 +- ..._callback_v2_corehr_contract_updated_v1.go | 26 +- ...allback_v2_corehr_department_created_v1.go | 26 +- ...allback_v2_corehr_department_deleted_v1.go | 26 +- ...allback_v2_corehr_department_updated_v1.go | 26 +- ...lback_v2_corehr_employment_converted_v1.go | 26 +- ...allback_v2_corehr_employment_created_v1.go | 32 +- ...allback_v2_corehr_employment_deleted_v1.go | 32 +- ...llback_v2_corehr_employment_resigned_v1.go | 26 +- ...allback_v2_corehr_employment_updated_v1.go | 32 +- ...allback_v2_corehr_job_change_updated_v1.go | 32 +- ...event_callback_v2_corehr_job_created_v1.go | 26 +- ..._callback_v2_corehr_job_data_changed_v1.go | 32 +- ...callback_v2_corehr_job_data_employed_v1.go | 32 +- ...event_callback_v2_corehr_job_deleted_v1.go | 26 +- ...event_callback_v2_corehr_job_updated_v1.go | 26 +- ...llback_v2_corehr_offboarding_updated_v1.go | 32 +- ...orehr_org_role_authorization_updated_v1.go | 32 +- ...nt_callback_v2_corehr_person_created_v1.go | 26 +- ...nt_callback_v2_corehr_person_deleted_v1.go | 26 +- ...nt_callback_v2_corehr_person_updated_v1.go | 26 +- ..._callback_v2_corehr_pre_hire_updated_v1.go | 26 +- ...callback_v2_corehr_probation_updated_v2.go | 26 +- ...k_v2_corehr_process_approver_updated_v2.go | 26 +- ...allback_v2_corehr_process_cc_updated_v2.go | 26 +- ...lback_v2_corehr_process_node_updated_v2.go | 26 +- ...t_callback_v2_corehr_process_updated_v2.go | 26 +- ..._v2_drive_file_bitable_field_changed_v1.go | 11 - ...v2_drive_file_bitable_record_changed_v1.go | 11 - ...back_v2_drive_file_created_in_folder_v1.go | 11 - ...event_callback_v2_drive_file_deleted_v1.go | 11 - api_event_callback_v2_drive_file_edit_v1.go | 11 - ...2_drive_file_permission_member_added_v1.go | 11 - ...drive_file_permission_member_removed_v1.go | 11 - api_event_callback_v2_drive_file_read_v1.go | 11 - ...callback_v2_drive_file_title_updated_v1.go | 11 - ...event_callback_v2_drive_file_trashed_v1.go | 11 - ...learning_course_registration_created_v2.go | 12 - ...learning_course_registration_deleted_v2.go | 12 - ...learning_course_registration_updated_v2.go | 12 - ...ack_v2_helpdesk_notification_approve_v1.go | 12 - ..._callback_v2_helpdesk_ticket_created_v1.go | 12 - ...k_v2_helpdesk_ticket_message_created_v1.go | 12 - ..._callback_v2_helpdesk_ticket_updated_v1.go | 12 - ...callback_v2_hire_application_deleted_v1.go | 12 - ...ck_v2_hire_application_stage_changed_v1.go | 12 - ...callback_v2_hire_eco_account_created_v1.go | 12 - ...2_hire_eco_background_check_canceled_v1.go | 12 - ...v2_hire_eco_background_check_created_v1.go | 12 - ...nt_callback_v2_hire_eco_exam_created_v1.go | 12 - ...t_task_for_internship_offer_imported_v1.go | 12 - ...ack_v2_hire_ehr_import_task_imported_v1.go | 12 - ...allback_v2_hire_offer_status_changed_v1.go | 12 - ..._hire_referral_account_assets_update_v1.go | 12 - api_event_callback_v2_im_chat_disbanded_v1.go | 12 - ...callback_v2_im_chat_member_bot_added_v1.go | 12 - ...llback_v2_im_chat_member_bot_deleted_v1.go | 12 - ...allback_v2_im_chat_member_user_added_v1.go | 12 - ...lback_v2_im_chat_member_user_deleted_v1.go | 12 - ...ack_v2_im_chat_member_user_withdrawn_v1.go | 12 - api_event_callback_v2_im_chat_updated_v1.go | 12 - ...lback_v2_im_message_reaction_created_v1.go | 12 - ...lback_v2_im_message_reaction_deleted_v1.go | 12 - api_event_callback_v2_im_message_read_v1.go | 12 - ...vent_callback_v2_im_message_recalled_v1.go | 12 - ...event_callback_v2_im_message_receive_v1.go | 12 - ...v2_meeting_room_meeting_room_created_v1.go | 12 - ...v2_meeting_room_meeting_room_deleted_v1.go | 12 - ...ing_room_meeting_room_status_changed_v1.go | 12 - ...v2_meeting_room_meeting_room_updated_v1.go | 12 - ...allback_v2_task_task_comment_updated_v1.go | 12 - ..._callback_v2_task_task_update_tenant_v1.go | 12 - api_event_callback_v2_task_task_updated_v1.go | 12 - api_event_callback_v2_url_preview_get.go | 12 - ...back_v2_vc_meeting_all_meeting_ended_v1.go | 12 - ...ck_v2_vc_meeting_all_meeting_started_v1.go | 12 - ..._callback_v2_vc_meeting_join_meeting_v1.go | 12 - ...callback_v2_vc_meeting_leave_meeting_v1.go | 12 - ...callback_v2_vc_meeting_meeting_ended_v1.go | 12 - ...llback_v2_vc_meeting_meeting_started_v1.go | 12 - ...llback_v2_vc_meeting_recording_ended_v1.go | 12 - ...llback_v2_vc_meeting_recording_ready_v1.go | 12 - ...back_v2_vc_meeting_recording_started_v1.go | 12 - ...t_callback_v2_vc_meeting_share_ended_v1.go | 12 - ...callback_v2_vc_meeting_share_started_v1.go | 12 - ...allback_v2_vc_reserve_config_updated_v1.go | 12 - api_event_callback_v2_vc_room_created_v1.go | 12 - api_event_callback_v2_vc_room_deleted_v1.go | 12 - ...nt_callback_v2_vc_room_level_created_v1.go | 12 - ...nt_callback_v2_vc_room_level_deleted_v1.go | 12 - ...nt_callback_v2_vc_room_level_updated_v1.go | 12 - api_event_callback_v2_vc_room_updated_v1.go | 12 - 150 files changed, 540 insertions(+), 2319 deletions(-) diff --git a/api_event_callback_module.go b/api_event_callback_module.go index 09be2b58..3d5a882e 100644 --- a/api_event_callback_module.go +++ b/api_event_callback_module.go @@ -33,13 +33,13 @@ const ( EventTypeV2URLPreviewGet EventType = "url.preview.get" EventTypeV2HireApplicationStageChangedV1 EventType = "hire.application.stage_changed_v1" EventTypeV2HireApplicationDeletedV1 EventType = "hire.application.deleted_v1" - EventTypeV2CorehrJobCreatedV1 EventType = "corehr.job.created_v1" - EventTypeV2CorehrJobUpdatedV1 EventType = "corehr.job.updated_v1" - EventTypeV2CorehrJobDeletedV1 EventType = "corehr.job.deleted_v1" - EventTypeV2CorehrProcessUpdatedV2 EventType = "corehr.process.updated_v2" - EventTypeV2CorehrProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" - EventTypeV2CorehrProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" - EventTypeV2CorehrProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" + EventTypeV2CoreHRJobCreatedV1 EventType = "corehr.job.created_v1" + EventTypeV2CoreHRJobUpdatedV1 EventType = "corehr.job.updated_v1" + EventTypeV2CoreHRJobDeletedV1 EventType = "corehr.job.deleted_v1" + EventTypeV2CoreHRProcessUpdatedV2 EventType = "corehr.process.updated_v2" + EventTypeV2CoreHRProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" + EventTypeV2CoreHRProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" + EventTypeV2CoreHRProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" EventTypeV2ContactCustomAttrEventUpdatedV3 EventType = "contact.custom_attr_event.updated_v3" EventTypeV2ApplicationApplicationCreatedV6 EventType = "application.application.created_v6" EventTypeV1AppOpen EventType = "app_open" @@ -54,9 +54,7 @@ const ( EventTypeV1OutApproval EventType = "out_approval" EventTypeV1RemedyApproval EventType = "approval.instance.remedy_group_update_v4" EventTypeV1ShiftApproval EventType = "shift_approval" - EventTypeV1TripApproval EventType = "trip_approval" EventTypeV1WorkApproval EventType = "work_approval" - EventTypeV1LeaveApprovalRevert EventType = "leave_approval_revert" EventTypeV1LeaveApprovalV2 EventType = "leave_approval" EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" @@ -148,34 +146,34 @@ const ( EventTypeV2VCReserveConfigUpdatedV1 EventType = "vc.reserve_config.updated_v1" EventTypeV2ApplicationBotMenuV6 EventType = "application.bot.menu_v6" EventTypeV2HireOfferStatusChangedV1 EventType = "hire.offer.status_changed_v1" - EventTypeV2CorehrEmploymentCreatedV1 EventType = "corehr.employment.created_v1" - EventTypeV2CorehrEmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" - EventTypeV2CorehrEmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" - EventTypeV2CorehrPersonCreatedV1 EventType = "corehr.person.created_v1" - EventTypeV2CorehrPersonUpdatedV1 EventType = "corehr.person.updated_v1" - EventTypeV2CorehrPersonDeletedV1 EventType = "corehr.person.deleted_v1" - EventTypeV2CorehrDepartmentCreatedV1 EventType = "corehr.department.created_v1" - EventTypeV2CorehrDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" - EventTypeV2CorehrDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" - EventTypeV2CorehrJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" - EventTypeV2CorehrContractCreatedV1 EventType = "corehr.contract.created_v1" - EventTypeV2CorehrEmploymentConvertedV1 EventType = "corehr.employment.converted_v1" - EventTypeV2CorehrJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" - EventTypeV2CorehrJobDataChangedV1 EventType = "corehr.job_data.changed_v1" - EventTypeV2CorehrOffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" - EventTypeV2CorehrEmploymentResignedV1 EventType = "corehr.employment.resigned_v1" - EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" + EventTypeV2CoreHREmploymentCreatedV1 EventType = "corehr.employment.created_v1" + EventTypeV2CoreHREmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" + EventTypeV2CoreHREmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" + EventTypeV2CoreHRPersonCreatedV1 EventType = "corehr.person.created_v1" + EventTypeV2CoreHRPersonUpdatedV1 EventType = "corehr.person.updated_v1" + EventTypeV2CoreHRPersonDeletedV1 EventType = "corehr.person.deleted_v1" + EventTypeV2CoreHRDepartmentCreatedV1 EventType = "corehr.department.created_v1" + EventTypeV2CoreHRDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" + EventTypeV2CoreHRDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" + EventTypeV2CoreHRJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" + EventTypeV2CoreHRContractCreatedV1 EventType = "corehr.contract.created_v1" + EventTypeV2CoreHREmploymentConvertedV1 EventType = "corehr.employment.converted_v1" + EventTypeV2CoreHRJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" + EventTypeV2CoreHRJobDataChangedV1 EventType = "corehr.job_data.changed_v1" + EventTypeV2CoreHROffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" + EventTypeV2CoreHREmploymentResignedV1 EventType = "corehr.employment.resigned_v1" + EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1 EventType = "hire.ehr_import_task_for_internship_offer.imported_v1" EventTypeV2HireEHRImportTaskImportedV1 EventType = "hire.ehr_import_task.imported_v1" - EventTypeV2CorehrProbationUpdatedV2 EventType = "corehr.probation.updated_v2" - EventTypeV2CorehrPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" + EventTypeV2CoreHRProbationUpdatedV2 EventType = "corehr.probation.updated_v2" + EventTypeV2CoreHRPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" EventTypeV2HireEcoAccountCreatedV1 EventType = "hire.eco_account.created_v1" EventTypeV2HireEcoBackgroundCheckCreatedV1 EventType = "hire.eco_background_check.created_v1" EventTypeV2HireEcoBackgroundCheckCanceledV1 EventType = "hire.eco_background_check.canceled_v1" EventTypeV2HireEcoExamCreatedV1 EventType = "hire.eco_exam.created_v1" EventTypeV2HireReferralAccountAssetsUpdateV1 EventType = "hire.referral_account.assets_update_v1" - EventTypeV2CorehrContractDeletedV1 EventType = "corehr.contract.deleted_v1" - EventTypeV2CorehrContractUpdatedV1 EventType = "corehr.contract.updated_v1" + EventTypeV2CoreHRContractDeletedV1 EventType = "corehr.contract.deleted_v1" + EventTypeV2CoreHRContractUpdatedV1 EventType = "corehr.contract.updated_v1" ) type eventHandler struct { @@ -237,37 +235,37 @@ type eventHandler struct { eventV2ContactUserCreatedV3Handler EventV2ContactUserCreatedV3Handler eventV2ContactUserDeletedV3Handler EventV2ContactUserDeletedV3Handler eventV2ContactUserUpdatedV3Handler EventV2ContactUserUpdatedV3Handler - eventV2CorehrContractCreatedV1Handler EventV2CorehrContractCreatedV1Handler - eventV2CorehrContractDeletedV1Handler EventV2CorehrContractDeletedV1Handler - eventV2CorehrContractUpdatedV1Handler EventV2CorehrContractUpdatedV1Handler - eventV2CorehrDepartmentCreatedV1Handler EventV2CorehrDepartmentCreatedV1Handler - eventV2CorehrDepartmentDeletedV1Handler EventV2CorehrDepartmentDeletedV1Handler - eventV2CorehrDepartmentUpdatedV1Handler EventV2CorehrDepartmentUpdatedV1Handler - eventV2CorehrEmploymentConvertedV1Handler EventV2CorehrEmploymentConvertedV1Handler - eventV2CorehrEmploymentCreatedV1Handler EventV2CorehrEmploymentCreatedV1Handler - eventV2CorehrEmploymentDeletedV1Handler EventV2CorehrEmploymentDeletedV1Handler - eventV2CorehrEmploymentResignedV1Handler EventV2CorehrEmploymentResignedV1Handler - eventV2CorehrEmploymentUpdatedV1Handler EventV2CorehrEmploymentUpdatedV1Handler - eventV2CorehrJobChangeUpdatedV1Handler EventV2CorehrJobChangeUpdatedV1Handler - eventV2CorehrJobCreatedV1Handler EventV2CorehrJobCreatedV1Handler - eventV2CorehrJobDataChangedV1Handler EventV2CorehrJobDataChangedV1Handler - eventV2CorehrJobDataEmployedV1Handler EventV2CorehrJobDataEmployedV1Handler - eventV2CorehrJobDeletedV1Handler EventV2CorehrJobDeletedV1Handler - eventV2CorehrJobUpdatedV1Handler EventV2CorehrJobUpdatedV1Handler + eventV2CoreHRContractCreatedV1Handler EventV2CoreHRContractCreatedV1Handler + eventV2CoreHRContractDeletedV1Handler EventV2CoreHRContractDeletedV1Handler + eventV2CoreHRContractUpdatedV1Handler EventV2CoreHRContractUpdatedV1Handler + eventV2CoreHRDepartmentCreatedV1Handler EventV2CoreHRDepartmentCreatedV1Handler + eventV2CoreHRDepartmentDeletedV1Handler EventV2CoreHRDepartmentDeletedV1Handler + eventV2CoreHRDepartmentUpdatedV1Handler EventV2CoreHRDepartmentUpdatedV1Handler + eventV2CoreHREmploymentConvertedV1Handler EventV2CoreHREmploymentConvertedV1Handler + eventV2CoreHREmploymentCreatedV1Handler EventV2CoreHREmploymentCreatedV1Handler + eventV2CoreHREmploymentDeletedV1Handler EventV2CoreHREmploymentDeletedV1Handler + eventV2CoreHREmploymentResignedV1Handler EventV2CoreHREmploymentResignedV1Handler + eventV2CoreHREmploymentUpdatedV1Handler EventV2CoreHREmploymentUpdatedV1Handler + eventV2CoreHRJobChangeUpdatedV1Handler EventV2CoreHRJobChangeUpdatedV1Handler + eventV2CoreHRJobCreatedV1Handler EventV2CoreHRJobCreatedV1Handler + eventV2CoreHRJobDataChangedV1Handler EventV2CoreHRJobDataChangedV1Handler + eventV2CoreHRJobDataEmployedV1Handler EventV2CoreHRJobDataEmployedV1Handler + eventV2CoreHRJobDeletedV1Handler EventV2CoreHRJobDeletedV1Handler + eventV2CoreHRJobUpdatedV1Handler EventV2CoreHRJobUpdatedV1Handler + eventV2CoreHROffboardingUpdatedV1Handler EventV2CoreHROffboardingUpdatedV1Handler + eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler EventV2CoreHROrgRoleAuthorizationUpdatedV1Handler + eventV2CoreHRPersonCreatedV1Handler EventV2CoreHRPersonCreatedV1Handler + eventV2CoreHRPersonDeletedV1Handler EventV2CoreHRPersonDeletedV1Handler + eventV2CoreHRPersonUpdatedV1Handler EventV2CoreHRPersonUpdatedV1Handler + eventV2CoreHRPreHireUpdatedV1Handler EventV2CoreHRPreHireUpdatedV1Handler + eventV2CoreHRProbationUpdatedV2Handler EventV2CoreHRProbationUpdatedV2Handler + eventV2CoreHRProcessApproverUpdatedV2Handler EventV2CoreHRProcessApproverUpdatedV2Handler + eventV2CoreHRProcessCcUpdatedV2Handler EventV2CoreHRProcessCcUpdatedV2Handler + eventV2CoreHRProcessNodeUpdatedV2Handler EventV2CoreHRProcessNodeUpdatedV2Handler + eventV2CoreHRProcessUpdatedV2Handler EventV2CoreHRProcessUpdatedV2Handler eventV2CorehrOffboardingChecklistUpdatedV2Handler EventV2CorehrOffboardingChecklistUpdatedV2Handler eventV2CorehrOffboardingStatusUpdatedV2Handler EventV2CorehrOffboardingStatusUpdatedV2Handler - eventV2CorehrOffboardingUpdatedV1Handler EventV2CorehrOffboardingUpdatedV1Handler eventV2CorehrOffboardingUpdatedV2Handler EventV2CorehrOffboardingUpdatedV2Handler - eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler EventV2CorehrOrgRoleAuthorizationUpdatedV1Handler - eventV2CorehrPersonCreatedV1Handler EventV2CorehrPersonCreatedV1Handler - eventV2CorehrPersonDeletedV1Handler EventV2CorehrPersonDeletedV1Handler - eventV2CorehrPersonUpdatedV1Handler EventV2CorehrPersonUpdatedV1Handler - eventV2CorehrPreHireUpdatedV1Handler EventV2CorehrPreHireUpdatedV1Handler - eventV2CorehrProbationUpdatedV2Handler EventV2CorehrProbationUpdatedV2Handler - eventV2CorehrProcessApproverUpdatedV2Handler EventV2CorehrProcessApproverUpdatedV2Handler - eventV2CorehrProcessCcUpdatedV2Handler EventV2CorehrProcessCcUpdatedV2Handler - eventV2CorehrProcessNodeUpdatedV2Handler EventV2CorehrProcessNodeUpdatedV2Handler - eventV2CorehrProcessUpdatedV2Handler EventV2CorehrProcessUpdatedV2Handler eventV2DriveFileBitableFieldChangedV1Handler EventV2DriveFileBitableFieldChangedV1Handler eventV2DriveFileBitableRecordChangedV1Handler EventV2DriveFileBitableRecordChangedV1Handler eventV2DriveFileCreatedInFolderV1Handler EventV2DriveFileCreatedInFolderV1Handler @@ -395,37 +393,37 @@ func (r *eventHandler) clone() *eventHandler { eventV2ContactUserCreatedV3Handler: r.eventV2ContactUserCreatedV3Handler, eventV2ContactUserDeletedV3Handler: r.eventV2ContactUserDeletedV3Handler, eventV2ContactUserUpdatedV3Handler: r.eventV2ContactUserUpdatedV3Handler, - eventV2CorehrContractCreatedV1Handler: r.eventV2CorehrContractCreatedV1Handler, - eventV2CorehrContractDeletedV1Handler: r.eventV2CorehrContractDeletedV1Handler, - eventV2CorehrContractUpdatedV1Handler: r.eventV2CorehrContractUpdatedV1Handler, - eventV2CorehrDepartmentCreatedV1Handler: r.eventV2CorehrDepartmentCreatedV1Handler, - eventV2CorehrDepartmentDeletedV1Handler: r.eventV2CorehrDepartmentDeletedV1Handler, - eventV2CorehrDepartmentUpdatedV1Handler: r.eventV2CorehrDepartmentUpdatedV1Handler, - eventV2CorehrEmploymentConvertedV1Handler: r.eventV2CorehrEmploymentConvertedV1Handler, - eventV2CorehrEmploymentCreatedV1Handler: r.eventV2CorehrEmploymentCreatedV1Handler, - eventV2CorehrEmploymentDeletedV1Handler: r.eventV2CorehrEmploymentDeletedV1Handler, - eventV2CorehrEmploymentResignedV1Handler: r.eventV2CorehrEmploymentResignedV1Handler, - eventV2CorehrEmploymentUpdatedV1Handler: r.eventV2CorehrEmploymentUpdatedV1Handler, - eventV2CorehrJobChangeUpdatedV1Handler: r.eventV2CorehrJobChangeUpdatedV1Handler, - eventV2CorehrJobCreatedV1Handler: r.eventV2CorehrJobCreatedV1Handler, - eventV2CorehrJobDataChangedV1Handler: r.eventV2CorehrJobDataChangedV1Handler, - eventV2CorehrJobDataEmployedV1Handler: r.eventV2CorehrJobDataEmployedV1Handler, - eventV2CorehrJobDeletedV1Handler: r.eventV2CorehrJobDeletedV1Handler, - eventV2CorehrJobUpdatedV1Handler: r.eventV2CorehrJobUpdatedV1Handler, + eventV2CoreHRContractCreatedV1Handler: r.eventV2CoreHRContractCreatedV1Handler, + eventV2CoreHRContractDeletedV1Handler: r.eventV2CoreHRContractDeletedV1Handler, + eventV2CoreHRContractUpdatedV1Handler: r.eventV2CoreHRContractUpdatedV1Handler, + eventV2CoreHRDepartmentCreatedV1Handler: r.eventV2CoreHRDepartmentCreatedV1Handler, + eventV2CoreHRDepartmentDeletedV1Handler: r.eventV2CoreHRDepartmentDeletedV1Handler, + eventV2CoreHRDepartmentUpdatedV1Handler: r.eventV2CoreHRDepartmentUpdatedV1Handler, + eventV2CoreHREmploymentConvertedV1Handler: r.eventV2CoreHREmploymentConvertedV1Handler, + eventV2CoreHREmploymentCreatedV1Handler: r.eventV2CoreHREmploymentCreatedV1Handler, + eventV2CoreHREmploymentDeletedV1Handler: r.eventV2CoreHREmploymentDeletedV1Handler, + eventV2CoreHREmploymentResignedV1Handler: r.eventV2CoreHREmploymentResignedV1Handler, + eventV2CoreHREmploymentUpdatedV1Handler: r.eventV2CoreHREmploymentUpdatedV1Handler, + eventV2CoreHRJobChangeUpdatedV1Handler: r.eventV2CoreHRJobChangeUpdatedV1Handler, + eventV2CoreHRJobCreatedV1Handler: r.eventV2CoreHRJobCreatedV1Handler, + eventV2CoreHRJobDataChangedV1Handler: r.eventV2CoreHRJobDataChangedV1Handler, + eventV2CoreHRJobDataEmployedV1Handler: r.eventV2CoreHRJobDataEmployedV1Handler, + eventV2CoreHRJobDeletedV1Handler: r.eventV2CoreHRJobDeletedV1Handler, + eventV2CoreHRJobUpdatedV1Handler: r.eventV2CoreHRJobUpdatedV1Handler, + eventV2CoreHROffboardingUpdatedV1Handler: r.eventV2CoreHROffboardingUpdatedV1Handler, + eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler: r.eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler, + eventV2CoreHRPersonCreatedV1Handler: r.eventV2CoreHRPersonCreatedV1Handler, + eventV2CoreHRPersonDeletedV1Handler: r.eventV2CoreHRPersonDeletedV1Handler, + eventV2CoreHRPersonUpdatedV1Handler: r.eventV2CoreHRPersonUpdatedV1Handler, + eventV2CoreHRPreHireUpdatedV1Handler: r.eventV2CoreHRPreHireUpdatedV1Handler, + eventV2CoreHRProbationUpdatedV2Handler: r.eventV2CoreHRProbationUpdatedV2Handler, + eventV2CoreHRProcessApproverUpdatedV2Handler: r.eventV2CoreHRProcessApproverUpdatedV2Handler, + eventV2CoreHRProcessCcUpdatedV2Handler: r.eventV2CoreHRProcessCcUpdatedV2Handler, + eventV2CoreHRProcessNodeUpdatedV2Handler: r.eventV2CoreHRProcessNodeUpdatedV2Handler, + eventV2CoreHRProcessUpdatedV2Handler: r.eventV2CoreHRProcessUpdatedV2Handler, eventV2CorehrOffboardingChecklistUpdatedV2Handler: r.eventV2CorehrOffboardingChecklistUpdatedV2Handler, eventV2CorehrOffboardingStatusUpdatedV2Handler: r.eventV2CorehrOffboardingStatusUpdatedV2Handler, - eventV2CorehrOffboardingUpdatedV1Handler: r.eventV2CorehrOffboardingUpdatedV1Handler, eventV2CorehrOffboardingUpdatedV2Handler: r.eventV2CorehrOffboardingUpdatedV2Handler, - eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler: r.eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler, - eventV2CorehrPersonCreatedV1Handler: r.eventV2CorehrPersonCreatedV1Handler, - eventV2CorehrPersonDeletedV1Handler: r.eventV2CorehrPersonDeletedV1Handler, - eventV2CorehrPersonUpdatedV1Handler: r.eventV2CorehrPersonUpdatedV1Handler, - eventV2CorehrPreHireUpdatedV1Handler: r.eventV2CorehrPreHireUpdatedV1Handler, - eventV2CorehrProbationUpdatedV2Handler: r.eventV2CorehrProbationUpdatedV2Handler, - eventV2CorehrProcessApproverUpdatedV2Handler: r.eventV2CorehrProcessApproverUpdatedV2Handler, - eventV2CorehrProcessCcUpdatedV2Handler: r.eventV2CorehrProcessCcUpdatedV2Handler, - eventV2CorehrProcessNodeUpdatedV2Handler: r.eventV2CorehrProcessNodeUpdatedV2Handler, - eventV2CorehrProcessUpdatedV2Handler: r.eventV2CorehrProcessUpdatedV2Handler, eventV2DriveFileBitableFieldChangedV1Handler: r.eventV2DriveFileBitableFieldChangedV1Handler, eventV2DriveFileBitableRecordChangedV1Handler: r.eventV2DriveFileBitableRecordChangedV1Handler, eventV2DriveFileCreatedInFolderV1Handler: r.eventV2DriveFileCreatedInFolderV1Handler, @@ -552,37 +550,37 @@ type eventBody struct { eventV2ContactUserCreatedV3 *EventV2ContactUserCreatedV3 eventV2ContactUserDeletedV3 *EventV2ContactUserDeletedV3 eventV2ContactUserUpdatedV3 *EventV2ContactUserUpdatedV3 - eventV2CorehrContractCreatedV1 *EventV2CorehrContractCreatedV1 - eventV2CorehrContractDeletedV1 *EventV2CorehrContractDeletedV1 - eventV2CorehrContractUpdatedV1 *EventV2CorehrContractUpdatedV1 - eventV2CorehrDepartmentCreatedV1 *EventV2CorehrDepartmentCreatedV1 - eventV2CorehrDepartmentDeletedV1 *EventV2CorehrDepartmentDeletedV1 - eventV2CorehrDepartmentUpdatedV1 *EventV2CorehrDepartmentUpdatedV1 - eventV2CorehrEmploymentConvertedV1 *EventV2CorehrEmploymentConvertedV1 - eventV2CorehrEmploymentCreatedV1 *EventV2CorehrEmploymentCreatedV1 - eventV2CorehrEmploymentDeletedV1 *EventV2CorehrEmploymentDeletedV1 - eventV2CorehrEmploymentResignedV1 *EventV2CorehrEmploymentResignedV1 - eventV2CorehrEmploymentUpdatedV1 *EventV2CorehrEmploymentUpdatedV1 - eventV2CorehrJobChangeUpdatedV1 *EventV2CorehrJobChangeUpdatedV1 - eventV2CorehrJobCreatedV1 *EventV2CorehrJobCreatedV1 - eventV2CorehrJobDataChangedV1 *EventV2CorehrJobDataChangedV1 - eventV2CorehrJobDataEmployedV1 *EventV2CorehrJobDataEmployedV1 - eventV2CorehrJobDeletedV1 *EventV2CorehrJobDeletedV1 - eventV2CorehrJobUpdatedV1 *EventV2CorehrJobUpdatedV1 + eventV2CoreHRContractCreatedV1 *EventV2CoreHRContractCreatedV1 + eventV2CoreHRContractDeletedV1 *EventV2CoreHRContractDeletedV1 + eventV2CoreHRContractUpdatedV1 *EventV2CoreHRContractUpdatedV1 + eventV2CoreHRDepartmentCreatedV1 *EventV2CoreHRDepartmentCreatedV1 + eventV2CoreHRDepartmentDeletedV1 *EventV2CoreHRDepartmentDeletedV1 + eventV2CoreHRDepartmentUpdatedV1 *EventV2CoreHRDepartmentUpdatedV1 + eventV2CoreHREmploymentConvertedV1 *EventV2CoreHREmploymentConvertedV1 + eventV2CoreHREmploymentCreatedV1 *EventV2CoreHREmploymentCreatedV1 + eventV2CoreHREmploymentDeletedV1 *EventV2CoreHREmploymentDeletedV1 + eventV2CoreHREmploymentResignedV1 *EventV2CoreHREmploymentResignedV1 + eventV2CoreHREmploymentUpdatedV1 *EventV2CoreHREmploymentUpdatedV1 + eventV2CoreHRJobChangeUpdatedV1 *EventV2CoreHRJobChangeUpdatedV1 + eventV2CoreHRJobCreatedV1 *EventV2CoreHRJobCreatedV1 + eventV2CoreHRJobDataChangedV1 *EventV2CoreHRJobDataChangedV1 + eventV2CoreHRJobDataEmployedV1 *EventV2CoreHRJobDataEmployedV1 + eventV2CoreHRJobDeletedV1 *EventV2CoreHRJobDeletedV1 + eventV2CoreHRJobUpdatedV1 *EventV2CoreHRJobUpdatedV1 + eventV2CoreHROffboardingUpdatedV1 *EventV2CoreHROffboardingUpdatedV1 + eventV2CoreHROrgRoleAuthorizationUpdatedV1 *EventV2CoreHROrgRoleAuthorizationUpdatedV1 + eventV2CoreHRPersonCreatedV1 *EventV2CoreHRPersonCreatedV1 + eventV2CoreHRPersonDeletedV1 *EventV2CoreHRPersonDeletedV1 + eventV2CoreHRPersonUpdatedV1 *EventV2CoreHRPersonUpdatedV1 + eventV2CoreHRPreHireUpdatedV1 *EventV2CoreHRPreHireUpdatedV1 + eventV2CoreHRProbationUpdatedV2 *EventV2CoreHRProbationUpdatedV2 + eventV2CoreHRProcessApproverUpdatedV2 *EventV2CoreHRProcessApproverUpdatedV2 + eventV2CoreHRProcessCcUpdatedV2 *EventV2CoreHRProcessCcUpdatedV2 + eventV2CoreHRProcessNodeUpdatedV2 *EventV2CoreHRProcessNodeUpdatedV2 + eventV2CoreHRProcessUpdatedV2 *EventV2CoreHRProcessUpdatedV2 eventV2CorehrOffboardingChecklistUpdatedV2 *EventV2CorehrOffboardingChecklistUpdatedV2 eventV2CorehrOffboardingStatusUpdatedV2 *EventV2CorehrOffboardingStatusUpdatedV2 - eventV2CorehrOffboardingUpdatedV1 *EventV2CorehrOffboardingUpdatedV1 eventV2CorehrOffboardingUpdatedV2 *EventV2CorehrOffboardingUpdatedV2 - eventV2CorehrOrgRoleAuthorizationUpdatedV1 *EventV2CorehrOrgRoleAuthorizationUpdatedV1 - eventV2CorehrPersonCreatedV1 *EventV2CorehrPersonCreatedV1 - eventV2CorehrPersonDeletedV1 *EventV2CorehrPersonDeletedV1 - eventV2CorehrPersonUpdatedV1 *EventV2CorehrPersonUpdatedV1 - eventV2CorehrPreHireUpdatedV1 *EventV2CorehrPreHireUpdatedV1 - eventV2CorehrProbationUpdatedV2 *EventV2CorehrProbationUpdatedV2 - eventV2CorehrProcessApproverUpdatedV2 *EventV2CorehrProcessApproverUpdatedV2 - eventV2CorehrProcessCcUpdatedV2 *EventV2CorehrProcessCcUpdatedV2 - eventV2CorehrProcessNodeUpdatedV2 *EventV2CorehrProcessNodeUpdatedV2 - eventV2CorehrProcessUpdatedV2 *EventV2CorehrProcessUpdatedV2 eventV2DriveFileBitableFieldChangedV1 *EventV2DriveFileBitableFieldChangedV1 eventV2DriveFileBitableRecordChangedV1 *EventV2DriveFileBitableRecordChangedV1 eventV2DriveFileCreatedInFolderV1 *EventV2DriveFileCreatedInFolderV1 @@ -692,48 +690,48 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { return err } req.eventV2HireApplicationDeletedV1 = event - case EventTypeV2CorehrJobCreatedV1: - event := new(EventV2CorehrJobCreatedV1) + case EventTypeV2CoreHRJobCreatedV1: + event := new(EventV2CoreHRJobCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobCreatedV1 = event - case EventTypeV2CorehrJobUpdatedV1: - event := new(EventV2CorehrJobUpdatedV1) + req.eventV2CoreHRJobCreatedV1 = event + case EventTypeV2CoreHRJobUpdatedV1: + event := new(EventV2CoreHRJobUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobUpdatedV1 = event - case EventTypeV2CorehrJobDeletedV1: - event := new(EventV2CorehrJobDeletedV1) + req.eventV2CoreHRJobUpdatedV1 = event + case EventTypeV2CoreHRJobDeletedV1: + event := new(EventV2CoreHRJobDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobDeletedV1 = event - case EventTypeV2CorehrProcessUpdatedV2: - event := new(EventV2CorehrProcessUpdatedV2) + req.eventV2CoreHRJobDeletedV1 = event + case EventTypeV2CoreHRProcessUpdatedV2: + event := new(EventV2CoreHRProcessUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrProcessUpdatedV2 = event - case EventTypeV2CorehrProcessNodeUpdatedV2: - event := new(EventV2CorehrProcessNodeUpdatedV2) + req.eventV2CoreHRProcessUpdatedV2 = event + case EventTypeV2CoreHRProcessNodeUpdatedV2: + event := new(EventV2CoreHRProcessNodeUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrProcessNodeUpdatedV2 = event - case EventTypeV2CorehrProcessApproverUpdatedV2: - event := new(EventV2CorehrProcessApproverUpdatedV2) + req.eventV2CoreHRProcessNodeUpdatedV2 = event + case EventTypeV2CoreHRProcessApproverUpdatedV2: + event := new(EventV2CoreHRProcessApproverUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrProcessApproverUpdatedV2 = event - case EventTypeV2CorehrProcessCcUpdatedV2: - event := new(EventV2CorehrProcessCcUpdatedV2) + req.eventV2CoreHRProcessApproverUpdatedV2 = event + case EventTypeV2CoreHRProcessCcUpdatedV2: + event := new(EventV2CoreHRProcessCcUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrProcessCcUpdatedV2 = event + req.eventV2CoreHRProcessCcUpdatedV2 = event case EventTypeV2ContactCustomAttrEventUpdatedV3: event := new(EventV2ContactCustomAttrEventUpdatedV3) if err := req.unmarshalEvent(event); err != nil { @@ -1231,108 +1229,108 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { return err } req.eventV2HireOfferStatusChangedV1 = event - case EventTypeV2CorehrEmploymentCreatedV1: - event := new(EventV2CorehrEmploymentCreatedV1) + case EventTypeV2CoreHREmploymentCreatedV1: + event := new(EventV2CoreHREmploymentCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrEmploymentCreatedV1 = event - case EventTypeV2CorehrEmploymentUpdatedV1: - event := new(EventV2CorehrEmploymentUpdatedV1) + req.eventV2CoreHREmploymentCreatedV1 = event + case EventTypeV2CoreHREmploymentUpdatedV1: + event := new(EventV2CoreHREmploymentUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrEmploymentUpdatedV1 = event - case EventTypeV2CorehrEmploymentDeletedV1: - event := new(EventV2CorehrEmploymentDeletedV1) + req.eventV2CoreHREmploymentUpdatedV1 = event + case EventTypeV2CoreHREmploymentDeletedV1: + event := new(EventV2CoreHREmploymentDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrEmploymentDeletedV1 = event - case EventTypeV2CorehrPersonCreatedV1: - event := new(EventV2CorehrPersonCreatedV1) + req.eventV2CoreHREmploymentDeletedV1 = event + case EventTypeV2CoreHRPersonCreatedV1: + event := new(EventV2CoreHRPersonCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrPersonCreatedV1 = event - case EventTypeV2CorehrPersonUpdatedV1: - event := new(EventV2CorehrPersonUpdatedV1) + req.eventV2CoreHRPersonCreatedV1 = event + case EventTypeV2CoreHRPersonUpdatedV1: + event := new(EventV2CoreHRPersonUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrPersonUpdatedV1 = event - case EventTypeV2CorehrPersonDeletedV1: - event := new(EventV2CorehrPersonDeletedV1) + req.eventV2CoreHRPersonUpdatedV1 = event + case EventTypeV2CoreHRPersonDeletedV1: + event := new(EventV2CoreHRPersonDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrPersonDeletedV1 = event - case EventTypeV2CorehrDepartmentCreatedV1: - event := new(EventV2CorehrDepartmentCreatedV1) + req.eventV2CoreHRPersonDeletedV1 = event + case EventTypeV2CoreHRDepartmentCreatedV1: + event := new(EventV2CoreHRDepartmentCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrDepartmentCreatedV1 = event - case EventTypeV2CorehrDepartmentUpdatedV1: - event := new(EventV2CorehrDepartmentUpdatedV1) + req.eventV2CoreHRDepartmentCreatedV1 = event + case EventTypeV2CoreHRDepartmentUpdatedV1: + event := new(EventV2CoreHRDepartmentUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrDepartmentUpdatedV1 = event - case EventTypeV2CorehrDepartmentDeletedV1: - event := new(EventV2CorehrDepartmentDeletedV1) + req.eventV2CoreHRDepartmentUpdatedV1 = event + case EventTypeV2CoreHRDepartmentDeletedV1: + event := new(EventV2CoreHRDepartmentDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrDepartmentDeletedV1 = event - case EventTypeV2CorehrJobDataEmployedV1: - event := new(EventV2CorehrJobDataEmployedV1) + req.eventV2CoreHRDepartmentDeletedV1 = event + case EventTypeV2CoreHRJobDataEmployedV1: + event := new(EventV2CoreHRJobDataEmployedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobDataEmployedV1 = event - case EventTypeV2CorehrContractCreatedV1: - event := new(EventV2CorehrContractCreatedV1) + req.eventV2CoreHRJobDataEmployedV1 = event + case EventTypeV2CoreHRContractCreatedV1: + event := new(EventV2CoreHRContractCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrContractCreatedV1 = event - case EventTypeV2CorehrEmploymentConvertedV1: - event := new(EventV2CorehrEmploymentConvertedV1) + req.eventV2CoreHRContractCreatedV1 = event + case EventTypeV2CoreHREmploymentConvertedV1: + event := new(EventV2CoreHREmploymentConvertedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrEmploymentConvertedV1 = event - case EventTypeV2CorehrJobChangeUpdatedV1: - event := new(EventV2CorehrJobChangeUpdatedV1) + req.eventV2CoreHREmploymentConvertedV1 = event + case EventTypeV2CoreHRJobChangeUpdatedV1: + event := new(EventV2CoreHRJobChangeUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobChangeUpdatedV1 = event - case EventTypeV2CorehrJobDataChangedV1: - event := new(EventV2CorehrJobDataChangedV1) + req.eventV2CoreHRJobChangeUpdatedV1 = event + case EventTypeV2CoreHRJobDataChangedV1: + event := new(EventV2CoreHRJobDataChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrJobDataChangedV1 = event - case EventTypeV2CorehrOffboardingUpdatedV1: - event := new(EventV2CorehrOffboardingUpdatedV1) + req.eventV2CoreHRJobDataChangedV1 = event + case EventTypeV2CoreHROffboardingUpdatedV1: + event := new(EventV2CoreHROffboardingUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrOffboardingUpdatedV1 = event - case EventTypeV2CorehrEmploymentResignedV1: - event := new(EventV2CorehrEmploymentResignedV1) + req.eventV2CoreHROffboardingUpdatedV1 = event + case EventTypeV2CoreHREmploymentResignedV1: + event := new(EventV2CoreHREmploymentResignedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrEmploymentResignedV1 = event - case EventTypeV2CorehrOrgRoleAuthorizationUpdatedV1: - event := new(EventV2CorehrOrgRoleAuthorizationUpdatedV1) + req.eventV2CoreHREmploymentResignedV1 = event + case EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1: + event := new(EventV2CoreHROrgRoleAuthorizationUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrOrgRoleAuthorizationUpdatedV1 = event + req.eventV2CoreHROrgRoleAuthorizationUpdatedV1 = event case EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1: event := new(EventV2HireEHRImportTaskForInternshipOfferImportedV1) if err := req.unmarshalEvent(event); err != nil { @@ -1345,18 +1343,18 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { return err } req.eventV2HireEHRImportTaskImportedV1 = event - case EventTypeV2CorehrProbationUpdatedV2: - event := new(EventV2CorehrProbationUpdatedV2) + case EventTypeV2CoreHRProbationUpdatedV2: + event := new(EventV2CoreHRProbationUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrProbationUpdatedV2 = event - case EventTypeV2CorehrPreHireUpdatedV1: - event := new(EventV2CorehrPreHireUpdatedV1) + req.eventV2CoreHRProbationUpdatedV2 = event + case EventTypeV2CoreHRPreHireUpdatedV1: + event := new(EventV2CoreHRPreHireUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrPreHireUpdatedV1 = event + req.eventV2CoreHRPreHireUpdatedV1 = event case EventTypeV2HireEcoAccountCreatedV1: event := new(EventV2HireEcoAccountCreatedV1) if err := req.unmarshalEvent(event); err != nil { @@ -1387,18 +1385,18 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { return err } req.eventV2HireReferralAccountAssetsUpdateV1 = event - case EventTypeV2CorehrContractDeletedV1: - event := new(EventV2CorehrContractDeletedV1) + case EventTypeV2CoreHRContractDeletedV1: + event := new(EventV2CoreHRContractDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrContractDeletedV1 = event - case EventTypeV2CorehrContractUpdatedV1: - event := new(EventV2CorehrContractUpdatedV1) + req.eventV2CoreHRContractDeletedV1 = event + case EventTypeV2CoreHRContractUpdatedV1: + event := new(EventV2CoreHRContractUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CorehrContractUpdatedV1 = event + req.eventV2CoreHRContractUpdatedV1 = event } @@ -2096,282 +2094,282 @@ func (r *EventCallbackService) handlerEvent(ctx context.Context, req *eventReq) } } return true, s, err - case req.eventV2CorehrContractCreatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrContractCreatedV1Handler != nil { + case req.eventV2CoreHRContractCreatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRContractCreatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrContractCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractCreatedV1) + go r.cli.eventHandler.eventV2CoreHRContractCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractCreatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrContractCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractCreatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRContractCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractCreatedV1) } } return true, s, err - case req.eventV2CorehrContractDeletedV1 != nil: - if r.cli.eventHandler.eventV2CorehrContractDeletedV1Handler != nil { + case req.eventV2CoreHRContractDeletedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRContractDeletedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrContractDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractDeletedV1) + go r.cli.eventHandler.eventV2CoreHRContractDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractDeletedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrContractDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractDeletedV1) + s, err = r.cli.eventHandler.eventV2CoreHRContractDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractDeletedV1) } } return true, s, err - case req.eventV2CorehrContractUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrContractUpdatedV1Handler != nil { + case req.eventV2CoreHRContractUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRContractUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrContractUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRContractUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrContractUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrContractUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRContractUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRContractUpdatedV1) } } return true, s, err - case req.eventV2CorehrDepartmentCreatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrDepartmentCreatedV1Handler != nil { + case req.eventV2CoreHRDepartmentCreatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRDepartmentCreatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrDepartmentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentCreatedV1) + go r.cli.eventHandler.eventV2CoreHRDepartmentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentCreatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrDepartmentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentCreatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRDepartmentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentCreatedV1) } } return true, s, err - case req.eventV2CorehrDepartmentDeletedV1 != nil: - if r.cli.eventHandler.eventV2CorehrDepartmentDeletedV1Handler != nil { + case req.eventV2CoreHRDepartmentDeletedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRDepartmentDeletedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrDepartmentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentDeletedV1) + go r.cli.eventHandler.eventV2CoreHRDepartmentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentDeletedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrDepartmentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentDeletedV1) + s, err = r.cli.eventHandler.eventV2CoreHRDepartmentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentDeletedV1) } } return true, s, err - case req.eventV2CorehrDepartmentUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrDepartmentUpdatedV1Handler != nil { + case req.eventV2CoreHRDepartmentUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRDepartmentUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrDepartmentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRDepartmentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrDepartmentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrDepartmentUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRDepartmentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRDepartmentUpdatedV1) } } return true, s, err - case req.eventV2CorehrEmploymentConvertedV1 != nil: - if r.cli.eventHandler.eventV2CorehrEmploymentConvertedV1Handler != nil { + case req.eventV2CoreHREmploymentConvertedV1 != nil: + if r.cli.eventHandler.eventV2CoreHREmploymentConvertedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrEmploymentConvertedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentConvertedV1) + go r.cli.eventHandler.eventV2CoreHREmploymentConvertedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentConvertedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrEmploymentConvertedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentConvertedV1) + s, err = r.cli.eventHandler.eventV2CoreHREmploymentConvertedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentConvertedV1) } } return true, s, err - case req.eventV2CorehrEmploymentCreatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrEmploymentCreatedV1Handler != nil { + case req.eventV2CoreHREmploymentCreatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHREmploymentCreatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrEmploymentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentCreatedV1) + go r.cli.eventHandler.eventV2CoreHREmploymentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentCreatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrEmploymentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentCreatedV1) + s, err = r.cli.eventHandler.eventV2CoreHREmploymentCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentCreatedV1) } } return true, s, err - case req.eventV2CorehrEmploymentDeletedV1 != nil: - if r.cli.eventHandler.eventV2CorehrEmploymentDeletedV1Handler != nil { + case req.eventV2CoreHREmploymentDeletedV1 != nil: + if r.cli.eventHandler.eventV2CoreHREmploymentDeletedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrEmploymentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentDeletedV1) + go r.cli.eventHandler.eventV2CoreHREmploymentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentDeletedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrEmploymentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentDeletedV1) + s, err = r.cli.eventHandler.eventV2CoreHREmploymentDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentDeletedV1) } } return true, s, err - case req.eventV2CorehrEmploymentResignedV1 != nil: - if r.cli.eventHandler.eventV2CorehrEmploymentResignedV1Handler != nil { + case req.eventV2CoreHREmploymentResignedV1 != nil: + if r.cli.eventHandler.eventV2CoreHREmploymentResignedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrEmploymentResignedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentResignedV1) + go r.cli.eventHandler.eventV2CoreHREmploymentResignedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentResignedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrEmploymentResignedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentResignedV1) + s, err = r.cli.eventHandler.eventV2CoreHREmploymentResignedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentResignedV1) } } return true, s, err - case req.eventV2CorehrEmploymentUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrEmploymentUpdatedV1Handler != nil { + case req.eventV2CoreHREmploymentUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHREmploymentUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrEmploymentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentUpdatedV1) + go r.cli.eventHandler.eventV2CoreHREmploymentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrEmploymentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrEmploymentUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHREmploymentUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHREmploymentUpdatedV1) } } return true, s, err - case req.eventV2CorehrJobChangeUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobChangeUpdatedV1Handler != nil { + case req.eventV2CoreHRJobChangeUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobChangeUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobChangeUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobChangeUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRJobChangeUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobChangeUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobChangeUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobChangeUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobChangeUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobChangeUpdatedV1) } } return true, s, err - case req.eventV2CorehrJobCreatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobCreatedV1Handler != nil { + case req.eventV2CoreHRJobCreatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobCreatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobCreatedV1) + go r.cli.eventHandler.eventV2CoreHRJobCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobCreatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobCreatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobCreatedV1) } } return true, s, err - case req.eventV2CorehrJobDataChangedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobDataChangedV1Handler != nil { + case req.eventV2CoreHRJobDataChangedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobDataChangedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobDataChangedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDataChangedV1) + go r.cli.eventHandler.eventV2CoreHRJobDataChangedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDataChangedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobDataChangedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDataChangedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobDataChangedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDataChangedV1) } } return true, s, err - case req.eventV2CorehrJobDataEmployedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobDataEmployedV1Handler != nil { + case req.eventV2CoreHRJobDataEmployedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobDataEmployedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobDataEmployedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDataEmployedV1) + go r.cli.eventHandler.eventV2CoreHRJobDataEmployedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDataEmployedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobDataEmployedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDataEmployedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobDataEmployedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDataEmployedV1) } } return true, s, err - case req.eventV2CorehrJobDeletedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobDeletedV1Handler != nil { + case req.eventV2CoreHRJobDeletedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobDeletedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDeletedV1) + go r.cli.eventHandler.eventV2CoreHRJobDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDeletedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobDeletedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobDeletedV1) } } return true, s, err - case req.eventV2CorehrJobUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrJobUpdatedV1Handler != nil { + case req.eventV2CoreHRJobUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRJobUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrJobUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRJobUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrJobUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrJobUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRJobUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRJobUpdatedV1) } } return true, s, err - case req.eventV2CorehrOffboardingChecklistUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler != nil { + case req.eventV2CoreHROffboardingUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHROffboardingUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingChecklistUpdatedV2) + go r.cli.eventHandler.eventV2CoreHROffboardingUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHROffboardingUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingChecklistUpdatedV2) + s, err = r.cli.eventHandler.eventV2CoreHROffboardingUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHROffboardingUpdatedV1) } } return true, s, err - case req.eventV2CorehrOffboardingStatusUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler != nil { + case req.eventV2CoreHROrgRoleAuthorizationUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingStatusUpdatedV2) + go r.cli.eventHandler.eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHROrgRoleAuthorizationUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingStatusUpdatedV2) + s, err = r.cli.eventHandler.eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHROrgRoleAuthorizationUpdatedV1) } } return true, s, err - case req.eventV2CorehrOffboardingUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV1Handler != nil { + case req.eventV2CoreHRPersonCreatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRPersonCreatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRPersonCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonCreatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRPersonCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonCreatedV1) } } return true, s, err - case req.eventV2CorehrOffboardingUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler != nil { + case req.eventV2CoreHRPersonDeletedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRPersonDeletedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV2) + go r.cli.eventHandler.eventV2CoreHRPersonDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonDeletedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV2) + s, err = r.cli.eventHandler.eventV2CoreHRPersonDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonDeletedV1) } } return true, s, err - case req.eventV2CorehrOrgRoleAuthorizationUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler != nil { + case req.eventV2CoreHRPersonUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRPersonUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOrgRoleAuthorizationUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRPersonUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOrgRoleAuthorizationUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRPersonUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPersonUpdatedV1) } } return true, s, err - case req.eventV2CorehrPersonCreatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrPersonCreatedV1Handler != nil { + case req.eventV2CoreHRPreHireUpdatedV1 != nil: + if r.cli.eventHandler.eventV2CoreHRPreHireUpdatedV1Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrPersonCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonCreatedV1) + go r.cli.eventHandler.eventV2CoreHRPreHireUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPreHireUpdatedV1) } else { - s, err = r.cli.eventHandler.eventV2CorehrPersonCreatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonCreatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRPreHireUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRPreHireUpdatedV1) } } return true, s, err - case req.eventV2CorehrPersonDeletedV1 != nil: - if r.cli.eventHandler.eventV2CorehrPersonDeletedV1Handler != nil { + case req.eventV2CoreHRProbationUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CoreHRProbationUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrPersonDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonDeletedV1) + go r.cli.eventHandler.eventV2CoreHRProbationUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProbationUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrPersonDeletedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonDeletedV1) + s, err = r.cli.eventHandler.eventV2CoreHRProbationUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProbationUpdatedV2) } } return true, s, err - case req.eventV2CorehrPersonUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrPersonUpdatedV1Handler != nil { + case req.eventV2CoreHRProcessApproverUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CoreHRProcessApproverUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrPersonUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRProcessApproverUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessApproverUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrPersonUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPersonUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRProcessApproverUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessApproverUpdatedV2) } } return true, s, err - case req.eventV2CorehrPreHireUpdatedV1 != nil: - if r.cli.eventHandler.eventV2CorehrPreHireUpdatedV1Handler != nil { + case req.eventV2CoreHRProcessCcUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CoreHRProcessCcUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrPreHireUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPreHireUpdatedV1) + go r.cli.eventHandler.eventV2CoreHRProcessCcUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessCcUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrPreHireUpdatedV1Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrPreHireUpdatedV1) + s, err = r.cli.eventHandler.eventV2CoreHRProcessCcUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessCcUpdatedV2) } } return true, s, err - case req.eventV2CorehrProbationUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrProbationUpdatedV2Handler != nil { + case req.eventV2CoreHRProcessNodeUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CoreHRProcessNodeUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrProbationUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProbationUpdatedV2) + go r.cli.eventHandler.eventV2CoreHRProcessNodeUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessNodeUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrProbationUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProbationUpdatedV2) + s, err = r.cli.eventHandler.eventV2CoreHRProcessNodeUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessNodeUpdatedV2) } } return true, s, err - case req.eventV2CorehrProcessApproverUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrProcessApproverUpdatedV2Handler != nil { + case req.eventV2CoreHRProcessUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CoreHRProcessUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrProcessApproverUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessApproverUpdatedV2) + go r.cli.eventHandler.eventV2CoreHRProcessUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrProcessApproverUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessApproverUpdatedV2) + s, err = r.cli.eventHandler.eventV2CoreHRProcessUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CoreHRProcessUpdatedV2) } } return true, s, err - case req.eventV2CorehrProcessCcUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrProcessCcUpdatedV2Handler != nil { + case req.eventV2CorehrOffboardingChecklistUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrProcessCcUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessCcUpdatedV2) + go r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingChecklistUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrProcessCcUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessCcUpdatedV2) + s, err = r.cli.eventHandler.eventV2CorehrOffboardingChecklistUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingChecklistUpdatedV2) } } return true, s, err - case req.eventV2CorehrProcessNodeUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrProcessNodeUpdatedV2Handler != nil { + case req.eventV2CorehrOffboardingStatusUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrProcessNodeUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessNodeUpdatedV2) + go r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingStatusUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrProcessNodeUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessNodeUpdatedV2) + s, err = r.cli.eventHandler.eventV2CorehrOffboardingStatusUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingStatusUpdatedV2) } } return true, s, err - case req.eventV2CorehrProcessUpdatedV2 != nil: - if r.cli.eventHandler.eventV2CorehrProcessUpdatedV2Handler != nil { + case req.eventV2CorehrOffboardingUpdatedV2 != nil: + if r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler != nil { if r.cli.noBlocking { - go r.cli.eventHandler.eventV2CorehrProcessUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessUpdatedV2) + go r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV2) } else { - s, err = r.cli.eventHandler.eventV2CorehrProcessUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrProcessUpdatedV2) + s, err = r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV2Handler(ctx, r.cli, req.Schema, req.Header, req.eventV2CorehrOffboardingUpdatedV2) } } return true, s, err diff --git a/api_event_callback_v1_add_bot.go b/api_event_callback_v1_add_bot.go index af265b6c..e67e0b25 100644 --- a/api_event_callback_v1_add_bot.go +++ b/api_event_callback_v1_add_bot.go @@ -56,15 +56,3 @@ type EventV1AddBotEventChatI18nNames struct { EnUs string `json:"en_us,omitempty"` // 如: 英文标题 ZhCn string `json:"zh_cn,omitempty"` // 如: 中文标题 } - -// EventV1AddBotResp ... -type EventV1AddBotResp struct { -} - -// eventV1AddBotResp ... -type eventV1AddBotResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AddBotResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_add_user_to_chat.go b/api_event_callback_v1_add_user_to_chat.go index 348594f4..d70e127e 100644 --- a/api_event_callback_v1_add_user_to_chat.go +++ b/api_event_callback_v1_add_user_to_chat.go @@ -63,15 +63,3 @@ type EventV1AddUserToChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } - -// EventV1AddUserToChatResp ... -type EventV1AddUserToChatResp struct { -} - -// eventV1AddUserToChatResp ... -type eventV1AddUserToChatResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AddUserToChatResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_app_open.go b/api_event_callback_v1_app_open.go index 285ffd7d..abaf909b 100644 --- a/api_event_callback_v1_app_open.go +++ b/api_event_callback_v1_app_open.go @@ -68,15 +68,3 @@ type EventV1AppOpenEventInstaller struct { type EventV1AppOpenEventInstallerEmployee struct { OpenID string `json:"open_id,omitempty"` // 用户对此应用的唯一标识, 同一用户对不同应用的open_id不同. 如: xxx } - -// EventV1AppOpenResp ... -type EventV1AppOpenResp struct { -} - -// eventV1AppOpenResp ... -type eventV1AppOpenResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AppOpenResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_app_status_change.go b/api_event_callback_v1_app_status_change.go index 74a43af2..b38e2e5c 100644 --- a/api_event_callback_v1_app_status_change.go +++ b/api_event_callback_v1_app_status_change.go @@ -51,15 +51,3 @@ type EventV1AppStatusChangeEventOperator struct { UserID string `json:"user_id,omitempty"` // 仅自建应用才会返回. 如: yyy UnionID string `json:"union_id,omitempty"` // 用户在ISV下的唯一标识. 如: zzz } - -// EventV1AppStatusChangeResp ... -type EventV1AppStatusChangeResp struct { -} - -// eventV1AppStatusChangeResp ... -type eventV1AppStatusChangeResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AppStatusChangeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_app_ticket.go b/api_event_callback_v1_app_ticket.go index 9ddf626a..b9086bf2 100644 --- a/api_event_callback_v1_app_ticket.go +++ b/api_event_callback_v1_app_ticket.go @@ -44,15 +44,3 @@ type EventV1AppTicket struct { AppTicket string `json:"app_ticket,omitempty"` // 如: xxx Type string `json:"type,omitempty"` // 如: app_ticket } - -// EventV1AppTicketResp ... -type EventV1AppTicketResp struct { -} - -// eventV1AppTicketResp ... -type eventV1AppTicketResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AppTicketResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_app_uninstalled.go b/api_event_callback_v1_app_uninstalled.go index 0742d14b..00475eb4 100644 --- a/api_event_callback_v1_app_uninstalled.go +++ b/api_event_callback_v1_app_uninstalled.go @@ -41,15 +41,3 @@ type EventV1AppUninstalled struct { TenantKey string `json:"tenant_key,omitempty"` // 卸载应用的企业ID. 如: xxx Type string `json:"type,omitempty"` // 事件类型. 如: app_uninstalled } - -// EventV1AppUninstalledResp ... -type EventV1AppUninstalledResp struct { -} - -// eventV1AppUninstalledResp ... -type eventV1AppUninstalledResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1AppUninstalledResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_approval_cc.go b/api_event_callback_v1_approval_cc.go index 3cdd053a..b527a3cd 100644 --- a/api_event_callback_v1_approval_cc.go +++ b/api_event_callback_v1_approval_cc.go @@ -51,15 +51,3 @@ type EventV1ApprovalCc struct { Operate string `json:"operate,omitempty"` // 操作类型。可能值有: CREATE: 创建抄送- READ: 抄送人已读 From string `json:"from,omitempty"` // 执行抄送操作的用户 user_id, 可能为空。你可以调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 通过 user_id 获取用户信息。 } - -// EventV1ApprovalCcResp ... -type EventV1ApprovalCcResp struct { -} - -// eventV1ApprovalCcResp ... -type eventV1ApprovalCcResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ApprovalCcResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_approval_instance.go b/api_event_callback_v1_approval_instance.go index 1682dafa..0b57fcb7 100644 --- a/api_event_callback_v1_approval_instance.go +++ b/api_event_callback_v1_approval_instance.go @@ -56,15 +56,3 @@ type EventV1ApprovalInstance struct { InstanceOperateTime string `json:"instance_operate_time,omitempty"` // 事件发生事件, 毫秒级时间戳。 UUID string `json:"uuid,omitempty"` // 如果[创建审批实例](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/instance/create)时传入了 uuid, 则此处返回该实例的 uuid。 } - -// EventV1ApprovalInstanceResp ... -type EventV1ApprovalInstanceResp struct { -} - -// eventV1ApprovalInstanceResp ... -type eventV1ApprovalInstanceResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ApprovalInstanceResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_approval_task.go b/api_event_callback_v1_approval_task.go index 833eda44..1cf80a40 100644 --- a/api_event_callback_v1_approval_task.go +++ b/api_event_callback_v1_approval_task.go @@ -65,15 +65,3 @@ type EventV1ApprovalTask struct { DefKey string `json:"def_key,omitempty"` // 系统生成的审批节点唯一 ID。 Extra string `json:"extra,omitempty"` // 扩展数据。目前仅任务被退回时才有此字段, 其中: rollback_node_ids: 退回的节点列表- rollback_custom_node_ids: 用户自定义配置的节点列表 } - -// EventV1ApprovalTaskResp ... -type EventV1ApprovalTaskResp struct { -} - -// eventV1ApprovalTaskResp ... -type eventV1ApprovalTaskResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ApprovalTaskResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_chat_disband.go b/api_event_callback_v1_chat_disband.go index bf584800..aba49e87 100644 --- a/api_event_callback_v1_chat_disband.go +++ b/api_event_callback_v1_chat_disband.go @@ -49,15 +49,3 @@ type EventV1ChatDisbandEventOperator struct { OpenID string `json:"open_id,omitempty"` // 如: ou_18eac85d35a26f989317ad4f02e8bbbb UserID string `json:"user_id,omitempty"` // 如: ca51d83b } - -// EventV1ChatDisbandResp ... -type EventV1ChatDisbandResp struct { -} - -// eventV1ChatDisbandResp ... -type eventV1ChatDisbandResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ChatDisbandResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_leave_approvalV2.go b/api_event_callback_v1_leave_approvalV2.go index 1afb86c5..23d1898c 100644 --- a/api_event_callback_v1_leave_approvalV2.go +++ b/api_event_callback_v1_leave_approvalV2.go @@ -49,15 +49,3 @@ type EventV1LeaveApprovalV2 struct { TenantKey string `json:"tenant_key,omitempty"` // 租户 Key, 是企业的唯一标识。 Type string `json:"type,omitempty"` // 事件类型。固定值 `leave_approval_revert` } - -// EventV1LeaveApprovalV2Resp ... -type EventV1LeaveApprovalV2Resp struct { -} - -// eventV1LeaveApprovalV2Resp ... -type eventV1LeaveApprovalV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1LeaveApprovalV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_leave_approval_revert.go b/api_event_callback_v1_leave_approval_revert.go index d9b0c4f0..84214c51 100644 --- a/api_event_callback_v1_leave_approval_revert.go +++ b/api_event_callback_v1_leave_approval_revert.go @@ -49,15 +49,3 @@ type EventV1LeaveApprovalRevert struct { TenantKey string `json:"tenant_key,omitempty"` // 租户 Key, 是企业的唯一标识。 Type string `json:"type,omitempty"` // 事件类型。固定值 `leave_approval_revert` } - -// EventV1LeaveApprovalRevertResp ... -type EventV1LeaveApprovalRevertResp struct { -} - -// eventV1LeaveApprovalRevertResp ... -type eventV1LeaveApprovalRevertResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1LeaveApprovalRevertResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_order_paid.go b/api_event_callback_v1_order_paid.go index 464a6eb8..2c7e205f 100644 --- a/api_event_callback_v1_order_paid.go +++ b/api_event_callback_v1_order_paid.go @@ -51,15 +51,3 @@ type EventV1OrderPaid struct { OrderPayPrice int64 `json:"order_pay_price,omitempty"` // 订单支付价格 单位分, . 如: 10000 TenantKey string `json:"tenant_key,omitempty"` // 购买应用的企业标示. 如: 2f98c01bc23f6847 } - -// EventV1OrderPaidResp ... -type EventV1OrderPaidResp struct { -} - -// eventV1OrderPaidResp ... -type eventV1OrderPaidResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1OrderPaidResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_out_approval.go b/api_event_callback_v1_out_approval.go index b25c5510..e4600c2b 100644 --- a/api_event_callback_v1_out_approval.go +++ b/api_event_callback_v1_out_approval.go @@ -60,15 +60,3 @@ type EventV1OutApproval struct { Type string `json:"type,omitempty"` // 事件类型。固定值 `out_approval` UserID string `json:"user_id,omitempty"` // 审批发起人的 user_id。你可以调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 通过 user_id 获取用户信息。 } - -// EventV1OutApprovalResp ... -type EventV1OutApprovalResp struct { -} - -// eventV1OutApprovalResp ... -type eventV1OutApprovalResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1OutApprovalResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_p2p_chat_create.go b/api_event_callback_v1_p2p_chat_create.go index ecbcd260..ea4a320e 100644 --- a/api_event_callback_v1_p2p_chat_create.go +++ b/api_event_callback_v1_p2p_chat_create.go @@ -38,15 +38,3 @@ type EventV1P2PChatCreateHandler func(ctx context.Context, cli *Lark, schema str // EventV1P2PChatCreate ... type EventV1P2PChatCreate struct { } - -// EventV1P2PChatCreateResp ... -type EventV1P2PChatCreateResp struct { -} - -// eventV1P2PChatCreateResp ... -type eventV1P2PChatCreateResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1P2PChatCreateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_receive_message.go b/api_event_callback_v1_receive_message.go index d53b6e37..c60b9880 100644 --- a/api_event_callback_v1_receive_message.go +++ b/api_event_callback_v1_receive_message.go @@ -58,15 +58,3 @@ type EventV1ReceiveMessage struct { ImageKey string `json:"image_key,omitempty"` // 图片内容 FileKey string `json:"file_key,omitempty"` // 文件内容 } - -// EventV1ReceiveMessageResp ... -type EventV1ReceiveMessageResp struct { -} - -// eventV1ReceiveMessageResp ... -type eventV1ReceiveMessageResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ReceiveMessageResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_remedy_approval.go b/api_event_callback_v1_remedy_approval.go index 7c23e9d4..f1ea0d95 100644 --- a/api_event_callback_v1_remedy_approval.go +++ b/api_event_callback_v1_remedy_approval.go @@ -52,15 +52,3 @@ type EventV1RemedyApprovalObject struct { Status string `json:"status,omitempty"` // 审批实例状态。审批实例通过时取值为 `APPROVED` Type string `json:"type,omitempty"` // 固定取值 `remedy_approval_v2` } - -// EventV1RemedyApprovalResp ... -type EventV1RemedyApprovalResp struct { -} - -// eventV1RemedyApprovalResp ... -type eventV1RemedyApprovalResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1RemedyApprovalResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_remove_bot.go b/api_event_callback_v1_remove_bot.go index ba4de655..cf614883 100644 --- a/api_event_callback_v1_remove_bot.go +++ b/api_event_callback_v1_remove_bot.go @@ -56,15 +56,3 @@ type EventV1RemoveBotEventChatI18nNames struct { EnUs string `json:"en_us,omitempty"` // 如: 英文标题 ZhCn string `json:"zh_cn,omitempty"` // 如: 中文标题 } - -// EventV1RemoveBotResp ... -type EventV1RemoveBotResp struct { -} - -// eventV1RemoveBotResp ... -type eventV1RemoveBotResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1RemoveBotResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_remove_user_from_chat.go b/api_event_callback_v1_remove_user_from_chat.go index cb3b9306..5f67391d 100644 --- a/api_event_callback_v1_remove_user_from_chat.go +++ b/api_event_callback_v1_remove_user_from_chat.go @@ -63,15 +63,3 @@ type EventV1RemoveUserFromChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } - -// EventV1RemoveUserFromChatResp ... -type EventV1RemoveUserFromChatResp struct { -} - -// eventV1RemoveUserFromChatResp ... -type eventV1RemoveUserFromChatResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1RemoveUserFromChatResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_revoke_add_user_from_chat.go b/api_event_callback_v1_revoke_add_user_from_chat.go index f65bf965..08c4509c 100644 --- a/api_event_callback_v1_revoke_add_user_from_chat.go +++ b/api_event_callback_v1_revoke_add_user_from_chat.go @@ -63,15 +63,3 @@ type EventV1RevokeAddUserFromChatEventUser struct { OpenID string `json:"open_id,omitempty"` // 如: ou_706adeb944ab1473b9fb3e7da2a40b68 UserID string `json:"user_id,omitempty"` // 如: 51g97a4g } - -// EventV1RevokeAddUserFromChatResp ... -type EventV1RevokeAddUserFromChatResp struct { -} - -// eventV1RevokeAddUserFromChatResp ... -type eventV1RevokeAddUserFromChatResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1RevokeAddUserFromChatResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_shift_approval.go b/api_event_callback_v1_shift_approval.go index c2da20cf..d2fa183e 100644 --- a/api_event_callback_v1_shift_approval.go +++ b/api_event_callback_v1_shift_approval.go @@ -51,15 +51,3 @@ type EventV1ShiftApproval struct { ReturnTime string `json:"return_time,omitempty"` // 还班时间。示例格式 `2018-12-01 12:00:00` ShiftReason string `json:"shift_reason,omitempty"` // 换班事由。 } - -// EventV1ShiftApprovalResp ... -type EventV1ShiftApprovalResp struct { -} - -// eventV1ShiftApprovalResp ... -type eventV1ShiftApprovalResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ShiftApprovalResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_third_party_meeting_room_event_created.go b/api_event_callback_v1_third_party_meeting_room_event_created.go index e3552742..61e3fac9 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_created.go +++ b/api_event_callback_v1_third_party_meeting_room_event_created.go @@ -66,19 +66,7 @@ type EventV1ThirdPartyMeetingRoomEventCreatedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } -// EventV1ThirdPartyMeetingRoomEventCreatedResp ... -type EventV1ThirdPartyMeetingRoomEventCreatedResp struct { -} - // EventV1ThirdPartyMeetingRoomEventCreatedStart ... type EventV1ThirdPartyMeetingRoomEventCreatedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } - -// eventV1ThirdPartyMeetingRoomEventCreatedResp ... -type eventV1ThirdPartyMeetingRoomEventCreatedResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ThirdPartyMeetingRoomEventCreatedResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_third_party_meeting_room_event_deleted.go b/api_event_callback_v1_third_party_meeting_room_event_deleted.go index 942d1545..b528d729 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_deleted.go +++ b/api_event_callback_v1_third_party_meeting_room_event_deleted.go @@ -66,19 +66,7 @@ type EventV1ThirdPartyMeetingRoomEventDeletedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } -// EventV1ThirdPartyMeetingRoomEventDeletedResp ... -type EventV1ThirdPartyMeetingRoomEventDeletedResp struct { -} - // EventV1ThirdPartyMeetingRoomEventDeletedStart ... type EventV1ThirdPartyMeetingRoomEventDeletedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } - -// eventV1ThirdPartyMeetingRoomEventDeletedResp ... -type eventV1ThirdPartyMeetingRoomEventDeletedResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ThirdPartyMeetingRoomEventDeletedResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_third_party_meeting_room_event_updated.go b/api_event_callback_v1_third_party_meeting_room_event_updated.go index 96b79635..82c1a231 100644 --- a/api_event_callback_v1_third_party_meeting_room_event_updated.go +++ b/api_event_callback_v1_third_party_meeting_room_event_updated.go @@ -66,19 +66,7 @@ type EventV1ThirdPartyMeetingRoomEventUpdatedOrganizer struct { UnionID string `json:"union_id,omitempty"` // 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。 } -// EventV1ThirdPartyMeetingRoomEventUpdatedResp ... -type EventV1ThirdPartyMeetingRoomEventUpdatedResp struct { -} - // EventV1ThirdPartyMeetingRoomEventUpdatedStart ... type EventV1ThirdPartyMeetingRoomEventUpdatedStart struct { TimeStamp string `json:"time_stamp,omitempty"` // 日程开始时间戳 } - -// eventV1ThirdPartyMeetingRoomEventUpdatedResp ... -type eventV1ThirdPartyMeetingRoomEventUpdatedResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1ThirdPartyMeetingRoomEventUpdatedResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v1_trip_approval.go b/api_event_callback_v1_trip_approval.go index 0c0e71e0..f66971a4 100644 --- a/api_event_callback_v1_trip_approval.go +++ b/api_event_callback_v1_trip_approval.go @@ -95,14 +95,3 @@ type EventV1TripApprovalEventEventObjectTripPeerID struct { OpenID string `json:"open_id,omitempty"` UnionID string `json:"union_id,omitempty"` } - -// EventV1TripApprovalResp ... -type EventV1TripApprovalResp struct { -} - -// eventV1TripApprovalResp ... -type eventV1TripApprovalResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1TripApprovalResp `json:"data,omitempty"` -} diff --git a/api_event_callback_v1_work_approval.go b/api_event_callback_v1_work_approval.go index ad4b8511..759296a6 100644 --- a/api_event_callback_v1_work_approval.go +++ b/api_event_callback_v1_work_approval.go @@ -62,10 +62,6 @@ type EventV1WorkApproval struct { WorkType string `json:"work_type,omitempty"` // 加班类型。 } -// EventV1WorkApprovalResp ... -type EventV1WorkApprovalResp struct { -} - // EventV1WorkApprovalTimeRange ... type EventV1WorkApprovalTimeRange struct { WorkStartTime string `json:"work_start_time,omitempty"` // 加班开始时间。示例格式: 2018-12-01 12:00:00 @@ -79,11 +75,3 @@ type EventV1WorkApprovalWorkDetail struct { RuleAssociated int64 `json:"rule_associated,omitempty"` // 加班类型。可能值有: 0: 无(未关联加班规则)- 1: 调休假- 2: 加班费- 3: 无(已关联加班规则) Interval int64 `json:"interval,omitempty"` // 每日加班时长。单位: 秒 } - -// eventV1WorkApprovalResp ... -type eventV1WorkApprovalResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV1WorkApprovalResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_acs_access_record_created_v1.go b/api_event_callback_v2_acs_access_record_created_v1.go index 991b0a39..53c61525 100644 --- a/api_event_callback_v2_acs_access_record_created_v1.go +++ b/api_event_callback_v2_acs_access_record_created_v1.go @@ -42,21 +42,9 @@ type EventV2ACSAccessRecordCreatedV1 struct { AccessTime string `json:"access_time,omitempty"` // 识别时间 (单位: 秒) } -// EventV2ACSAccessRecordCreatedV1Resp ... -type EventV2ACSAccessRecordCreatedV1Resp struct { -} - // EventV2ACSAccessRecordCreatedV1UserID ... type EventV2ACSAccessRecordCreatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2ACSAccessRecordCreatedV1Resp ... -type eventV2ACSAccessRecordCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ACSAccessRecordCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_acs_user_updated_v1.go b/api_event_callback_v2_acs_user_updated_v1.go index 10e03166..305279d0 100644 --- a/api_event_callback_v2_acs_user_updated_v1.go +++ b/api_event_callback_v2_acs_user_updated_v1.go @@ -39,21 +39,9 @@ type EventV2ACSUserUpdatedV1 struct { FaceUploaded bool `json:"face_uploaded,omitempty"` // 是否上传人脸图片 } -// EventV2ACSUserUpdatedV1Resp ... -type EventV2ACSUserUpdatedV1Resp struct { -} - // EventV2ACSUserUpdatedV1UserID ... type EventV2ACSUserUpdatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2ACSUserUpdatedV1Resp ... -type eventV2ACSUserUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ACSUserUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_app_version_audit_v6.go b/api_event_callback_v2_application_application_app_version_audit_v6.go index 8466b3e1..5f85128c 100644 --- a/api_event_callback_v2_application_application_app_version_audit_v6.go +++ b/api_event_callback_v2_application_application_app_version_audit_v6.go @@ -56,15 +56,3 @@ type EventV2ApplicationApplicationAppVersionAuditV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ApplicationApplicationAppVersionAuditV6Resp ... -type EventV2ApplicationApplicationAppVersionAuditV6Resp struct { -} - -// eventV2ApplicationApplicationAppVersionAuditV6Resp ... -type eventV2ApplicationApplicationAppVersionAuditV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationAppVersionAuditV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_app_version_publish_apply_v6.go b/api_event_callback_v2_application_application_app_version_publish_apply_v6.go index d154152b..6ce721fe 100644 --- a/api_event_callback_v2_application_application_app_version_publish_apply_v6.go +++ b/api_event_callback_v2_application_application_app_version_publish_apply_v6.go @@ -232,10 +232,6 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2ApplicationApplicationAppVersionPublishApplyV6Resp ... -type EventV2ApplicationApplicationAppVersionPublishApplyV6Resp struct { -} - // EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersion ... type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersion struct { AppID string `json:"app_id,omitempty"` // 应用 id @@ -420,11 +416,3 @@ type EventV2ApplicationApplicationAppVersionPublishApplyV6UnderAuditVersionScope Level int64 `json:"level,omitempty"` // 权限等级描述可选值有: 普通权限高级权限超敏感权限未知等级 TokenTypes []string `json:"token_types,omitempty"` // 返回用户身份类型user、应用身份类型tenant。如果两种类型都支持, 则同时返回两个。可选值有: 应用身份类型用户身份类型 长度范围: `0` ~ `200` } - -// eventV2ApplicationApplicationAppVersionPublishApplyV6Resp ... -type eventV2ApplicationApplicationAppVersionPublishApplyV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationAppVersionPublishApplyV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go b/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go index fda2d15f..e96cbc95 100644 --- a/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go +++ b/api_event_callback_v2_application_application_app_version_publish_revoke_v6.go @@ -53,15 +53,3 @@ type EventV2ApplicationApplicationAppVersionPublishRevokeV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp ... -type EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp struct { -} - -// eventV2ApplicationApplicationAppVersionPublishRevokeV6Resp ... -type eventV2ApplicationApplicationAppVersionPublishRevokeV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationAppVersionPublishRevokeV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_created_v6.go b/api_event_callback_v2_application_application_created_v6.go index 31903283..2923c12e 100644 --- a/api_event_callback_v2_application_application_created_v6.go +++ b/api_event_callback_v2_application_application_created_v6.go @@ -53,15 +53,3 @@ type EventV2ApplicationApplicationCreatedV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ApplicationApplicationCreatedV6Resp ... -type EventV2ApplicationApplicationCreatedV6Resp struct { -} - -// eventV2ApplicationApplicationCreatedV6Resp ... -type eventV2ApplicationApplicationCreatedV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationCreatedV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_feedback_created_v6.go b/api_event_callback_v2_application_application_feedback_created_v6.go index 62aac5a9..58ab4ad4 100644 --- a/api_event_callback_v2_application_application_feedback_created_v6.go +++ b/api_event_callback_v2_application_application_feedback_created_v6.go @@ -49,21 +49,9 @@ type EventV2ApplicationApplicationFeedbackCreatedV6 struct { FeedbackPath string `json:"feedback_path,omitempty"` // 反馈页面路径 } -// EventV2ApplicationApplicationFeedbackCreatedV6Resp ... -type EventV2ApplicationApplicationFeedbackCreatedV6Resp struct { -} - // EventV2ApplicationApplicationFeedbackCreatedV6UserID ... type EventV2ApplicationApplicationFeedbackCreatedV6UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2ApplicationApplicationFeedbackCreatedV6Resp ... -type eventV2ApplicationApplicationFeedbackCreatedV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationFeedbackCreatedV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_feedback_updated_v6.go b/api_event_callback_v2_application_application_feedback_updated_v6.go index 7a88c6bb..555a9d9a 100644 --- a/api_event_callback_v2_application_application_feedback_updated_v6.go +++ b/api_event_callback_v2_application_application_feedback_updated_v6.go @@ -47,15 +47,3 @@ type EventV2ApplicationApplicationFeedbackUpdatedV6OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ApplicationApplicationFeedbackUpdatedV6Resp ... -type EventV2ApplicationApplicationFeedbackUpdatedV6Resp struct { -} - -// eventV2ApplicationApplicationFeedbackUpdatedV6Resp ... -type eventV2ApplicationApplicationFeedbackUpdatedV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationFeedbackUpdatedV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_application_visibility_added_v6.go b/api_event_callback_v2_application_application_visibility_added_v6.go index 3f62b5bb..5d15a0fb 100644 --- a/api_event_callback_v2_application_application_visibility_added_v6.go +++ b/api_event_callback_v2_application_application_visibility_added_v6.go @@ -43,20 +43,8 @@ type EventV2ApplicationApplicationVisibilityAddedV6 struct { UserID *EventV2ApplicationApplicationVisibilityAddedV6UserID `json:"user_id,omitempty"` // 用户 ID } -// EventV2ApplicationApplicationVisibilityAddedV6Resp ... -type EventV2ApplicationApplicationVisibilityAddedV6Resp struct { -} - // EventV2ApplicationApplicationVisibilityAddedV6UserID ... type EventV2ApplicationApplicationVisibilityAddedV6UserID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open_id, 了解不同用户 ID 类型参考[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) UnionID string `json:"union_id,omitempty"` // 用户的 union_id, 了解不同用户 ID 类型参考[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) } - -// eventV2ApplicationApplicationVisibilityAddedV6Resp ... -type eventV2ApplicationApplicationVisibilityAddedV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationApplicationVisibilityAddedV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_application_bot_menu_v6.go b/api_event_callback_v2_application_bot_menu_v6.go index 3ecde8b2..f85f094b 100644 --- a/api_event_callback_v2_application_bot_menu_v6.go +++ b/api_event_callback_v2_application_bot_menu_v6.go @@ -51,15 +51,3 @@ type EventV2ApplicationBotMenuV6OperatorOperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ApplicationBotMenuV6Resp ... -type EventV2ApplicationBotMenuV6Resp struct { -} - -// eventV2ApplicationBotMenuV6Resp ... -type eventV2ApplicationBotMenuV6Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApplicationBotMenuV6Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_approval_approval_updated_v4.go b/api_event_callback_v2_approval_approval_updated_v4.go index 0810d56f..704c1462 100644 --- a/api_event_callback_v2_approval_approval_updated_v4.go +++ b/api_event_callback_v2_approval_approval_updated_v4.go @@ -52,15 +52,3 @@ type EventV2ApprovalApprovalUpdatedV4Object struct { VersionID string `json:"version_id,omitempty"` // 审批定义的版本号 WidgetGroupType int64 `json:"widget_group_type,omitempty"` // 控件组类型, 返回 0 表示未使用 } - -// EventV2ApprovalApprovalUpdatedV4Resp ... -type EventV2ApprovalApprovalUpdatedV4Resp struct { -} - -// eventV2ApprovalApprovalUpdatedV4Resp ... -type eventV2ApprovalApprovalUpdatedV4Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ApprovalApprovalUpdatedV4Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_attendance_user_flow_created_v1.go b/api_event_callback_v2_attendance_user_flow_created_v1.go index 93fc58ea..c9be1801 100644 --- a/api_event_callback_v2_attendance_user_flow_created_v1.go +++ b/api_event_callback_v2_attendance_user_flow_created_v1.go @@ -68,15 +68,3 @@ type EventV2AttendanceUserFlowCreatedV1Handler func(ctx context.Context, cli *La // EventV2AttendanceUserFlowCreatedV1 ... type EventV2AttendanceUserFlowCreatedV1 struct { } - -// EventV2AttendanceUserFlowCreatedV1Resp ... -type EventV2AttendanceUserFlowCreatedV1Resp struct { -} - -// eventV2AttendanceUserFlowCreatedV1Resp ... -type eventV2AttendanceUserFlowCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2AttendanceUserFlowCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_attendance_user_task_updated_v1.go b/api_event_callback_v2_attendance_user_task_updated_v1.go index 26078169..779041a6 100644 --- a/api_event_callback_v2_attendance_user_task_updated_v1.go +++ b/api_event_callback_v2_attendance_user_task_updated_v1.go @@ -65,15 +65,3 @@ type EventV2AttendanceUserTaskUpdatedV1Handler func(ctx context.Context, cli *La // EventV2AttendanceUserTaskUpdatedV1 ... type EventV2AttendanceUserTaskUpdatedV1 struct { } - -// EventV2AttendanceUserTaskUpdatedV1Resp ... -type EventV2AttendanceUserTaskUpdatedV1Resp struct { -} - -// eventV2AttendanceUserTaskUpdatedV1Resp ... -type eventV2AttendanceUserTaskUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2AttendanceUserTaskUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_calendar_calendar_acl_created_v4.go b/api_event_callback_v2_calendar_calendar_acl_created_v4.go index e284de66..a6706141 100644 --- a/api_event_callback_v2_calendar_calendar_acl_created_v4.go +++ b/api_event_callback_v2_calendar_calendar_acl_created_v4.go @@ -42,10 +42,6 @@ type EventV2CalendarCalendarACLCreatedV4 struct { UserIDList []*EventV2CalendarCalendarACLCreatedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。 } -// EventV2CalendarCalendarACLCreatedV4Resp ... -type EventV2CalendarCalendarACLCreatedV4Resp struct { -} - // EventV2CalendarCalendarACLCreatedV4Scope ... type EventV2CalendarCalendarACLCreatedV4Scope struct { Type string `json:"type,omitempty"` // 权限生效范围的类型。可选值有: 用户 @@ -65,11 +61,3 @@ type EventV2CalendarCalendarACLCreatedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } - -// eventV2CalendarCalendarACLCreatedV4Resp ... -type eventV2CalendarCalendarACLCreatedV4Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CalendarCalendarACLCreatedV4Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go b/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go index b3ca0d8f..78e9b7e9 100644 --- a/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go +++ b/api_event_callback_v2_calendar_calendar_acl_deleted_v4.go @@ -42,10 +42,6 @@ type EventV2CalendarCalendarACLDeletedV4 struct { UserIDList []*EventV2CalendarCalendarACLDeletedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。 } -// EventV2CalendarCalendarACLDeletedV4Resp ... -type EventV2CalendarCalendarACLDeletedV4Resp struct { -} - // EventV2CalendarCalendarACLDeletedV4Scope ... type EventV2CalendarCalendarACLDeletedV4Scope struct { Type string `json:"type,omitempty"` // 权限生效范围的类型。可选值有: 用户 @@ -65,11 +61,3 @@ type EventV2CalendarCalendarACLDeletedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } - -// eventV2CalendarCalendarACLDeletedV4Resp ... -type eventV2CalendarCalendarACLDeletedV4Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CalendarCalendarACLDeletedV4Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_calendar_calendar_changed_v4.go b/api_event_callback_v2_calendar_calendar_changed_v4.go index dc62be41..69192fdc 100644 --- a/api_event_callback_v2_calendar_calendar_changed_v4.go +++ b/api_event_callback_v2_calendar_calendar_changed_v4.go @@ -40,21 +40,9 @@ type EventV2CalendarCalendarChangedV4 struct { UserIDList []*EventV2CalendarCalendarChangedV4UserID `json:"user_id_list,omitempty"` // 需要推送事件的用户列表。关于用户不同 ID 的介绍, 参见[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction) } -// EventV2CalendarCalendarChangedV4Resp ... -type EventV2CalendarCalendarChangedV4Resp struct { -} - // EventV2CalendarCalendarChangedV4UserID ... type EventV2CalendarCalendarChangedV4UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union_id。 UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } - -// eventV2CalendarCalendarChangedV4Resp ... -type eventV2CalendarCalendarChangedV4Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CalendarCalendarChangedV4Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_calendar_calendar_event_changed_v4.go b/api_event_callback_v2_calendar_calendar_event_changed_v4.go index e8ada6f4..6ff0c89b 100644 --- a/api_event_callback_v2_calendar_calendar_event_changed_v4.go +++ b/api_event_callback_v2_calendar_calendar_event_changed_v4.go @@ -47,10 +47,6 @@ type EventV2CalendarCalendarEventChangedV4 struct { RsvpInfos []*EventV2CalendarCalendarEventChangedV4RsvpInfo `json:"rsvp_infos,omitempty"` // RSVP 变更详情, 即日程参与人的回复状态。注意: 该参数仅包含用户类型参与人的变更详情。- 该参数在灰度测试阶段, 如需使用请咨询你的商务对接人或[技术支持](https://applink.feishu.cn/TLJpeNdW)。 } -// EventV2CalendarCalendarEventChangedV4Resp ... -type EventV2CalendarCalendarEventChangedV4Resp struct { -} - // EventV2CalendarCalendarEventChangedV4RsvpInfo ... type EventV2CalendarCalendarEventChangedV4RsvpInfo struct { FromUserID *EventV2CalendarCalendarEventChangedV4RsvpInfoFromUserID `json:"from_user_id,omitempty"` // 用户类型参与人的用户 ID。 @@ -70,11 +66,3 @@ type EventV2CalendarCalendarEventChangedV4UserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user_id。 OpenID string `json:"open_id,omitempty"` // 用户的 open_id。 } - -// eventV2CalendarCalendarEventChangedV4Resp ... -type eventV2CalendarCalendarEventChangedV4Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CalendarCalendarEventChangedV4Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_custom_attr_event_updated_v3.go b/api_event_callback_v2_contact_custom_attr_event_updated_v3.go index 96ebd0f0..047f7b45 100644 --- a/api_event_callback_v2_contact_custom_attr_event_updated_v3.go +++ b/api_event_callback_v2_contact_custom_attr_event_updated_v3.go @@ -52,15 +52,3 @@ type EventV2ContactCustomAttrEventUpdatedV3OldObject struct { ContactFieldKey []string `json:"contact_field_key,omitempty"` // 通讯录字段键值 AllowOpenQuery bool `json:"allow_open_query,omitempty"` // 开关是否打开 } - -// EventV2ContactCustomAttrEventUpdatedV3Resp ... -type EventV2ContactCustomAttrEventUpdatedV3Resp struct { -} - -// eventV2ContactCustomAttrEventUpdatedV3Resp ... -type eventV2ContactCustomAttrEventUpdatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactCustomAttrEventUpdatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_department_created_v3.go b/api_event_callback_v2_contact_department_created_v3.go index 3df129a7..6a260eb5 100644 --- a/api_event_callback_v2_contact_department_created_v3.go +++ b/api_event_callback_v2_contact_department_created_v3.go @@ -72,15 +72,3 @@ type EventV2ContactDepartmentCreatedV3ObjectLeader struct { type EventV2ContactDepartmentCreatedV3ObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } - -// EventV2ContactDepartmentCreatedV3Resp ... -type EventV2ContactDepartmentCreatedV3Resp struct { -} - -// eventV2ContactDepartmentCreatedV3Resp ... -type eventV2ContactDepartmentCreatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactDepartmentCreatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_department_deleted_v3.go b/api_event_callback_v2_contact_department_deleted_v3.go index 5a6f9fc2..96af1995 100644 --- a/api_event_callback_v2_contact_department_deleted_v3.go +++ b/api_event_callback_v2_contact_department_deleted_v3.go @@ -84,15 +84,3 @@ type EventV2ContactDepartmentDeletedV3OldObject struct { type EventV2ContactDepartmentDeletedV3OldObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } - -// EventV2ContactDepartmentDeletedV3Resp ... -type EventV2ContactDepartmentDeletedV3Resp struct { -} - -// eventV2ContactDepartmentDeletedV3Resp ... -type eventV2ContactDepartmentDeletedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactDepartmentDeletedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_department_updated_v3.go b/api_event_callback_v2_contact_department_updated_v3.go index 54c11181..bc4fa5a1 100644 --- a/api_event_callback_v2_contact_department_updated_v3.go +++ b/api_event_callback_v2_contact_department_updated_v3.go @@ -108,15 +108,3 @@ type EventV2ContactDepartmentUpdatedV3OldObjectLeader struct { type EventV2ContactDepartmentUpdatedV3OldObjectStatus struct { IsDeleted bool `json:"is_deleted,omitempty"` // 是否被删除。可能值: true: 是- false: 否 } - -// EventV2ContactDepartmentUpdatedV3Resp ... -type EventV2ContactDepartmentUpdatedV3Resp struct { -} - -// eventV2ContactDepartmentUpdatedV3Resp ... -type eventV2ContactDepartmentUpdatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactDepartmentUpdatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_employee_type_enum_actived_v3.go b/api_event_callback_v2_contact_employee_type_enum_actived_v3.go index 951d7b90..932b5a9c 100644 --- a/api_event_callback_v2_contact_employee_type_enum_actived_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_actived_v3.go @@ -72,15 +72,3 @@ type EventV2ContactEmployeeTypeEnumActivedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } - -// EventV2ContactEmployeeTypeEnumActivedV3Resp ... -type EventV2ContactEmployeeTypeEnumActivedV3Resp struct { -} - -// eventV2ContactEmployeeTypeEnumActivedV3Resp ... -type eventV2ContactEmployeeTypeEnumActivedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactEmployeeTypeEnumActivedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_employee_type_enum_created_v3.go b/api_event_callback_v2_contact_employee_type_enum_created_v3.go index 0182c779..424f3479 100644 --- a/api_event_callback_v2_contact_employee_type_enum_created_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_created_v3.go @@ -55,15 +55,3 @@ type EventV2ContactEmployeeTypeEnumCreatedV3NewEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } - -// EventV2ContactEmployeeTypeEnumCreatedV3Resp ... -type EventV2ContactEmployeeTypeEnumCreatedV3Resp struct { -} - -// eventV2ContactEmployeeTypeEnumCreatedV3Resp ... -type eventV2ContactEmployeeTypeEnumCreatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactEmployeeTypeEnumCreatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go b/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go index 5369d0a2..1ccd4455 100644 --- a/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_deactivated_v3.go @@ -72,15 +72,3 @@ type EventV2ContactEmployeeTypeEnumDeactivatedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } - -// EventV2ContactEmployeeTypeEnumDeactivatedV3Resp ... -type EventV2ContactEmployeeTypeEnumDeactivatedV3Resp struct { -} - -// eventV2ContactEmployeeTypeEnumDeactivatedV3Resp ... -type eventV2ContactEmployeeTypeEnumDeactivatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactEmployeeTypeEnumDeactivatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go b/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go index 9c988c9b..1429e99b 100644 --- a/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_deleted_v3.go @@ -55,15 +55,3 @@ type EventV2ContactEmployeeTypeEnumDeletedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } - -// EventV2ContactEmployeeTypeEnumDeletedV3Resp ... -type EventV2ContactEmployeeTypeEnumDeletedV3Resp struct { -} - -// eventV2ContactEmployeeTypeEnumDeletedV3Resp ... -type eventV2ContactEmployeeTypeEnumDeletedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactEmployeeTypeEnumDeletedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_employee_type_enum_updated_v3.go b/api_event_callback_v2_contact_employee_type_enum_updated_v3.go index a7c2c04d..462d64db 100644 --- a/api_event_callback_v2_contact_employee_type_enum_updated_v3.go +++ b/api_event_callback_v2_contact_employee_type_enum_updated_v3.go @@ -72,15 +72,3 @@ type EventV2ContactEmployeeTypeEnumUpdatedV3OldEnumI18nContent struct { Locale string `json:"locale,omitempty"` // 语言版本。例如: zh_cn: 中文- en_us: 英文- ja_jp: 日文 Value string `json:"value,omitempty"` // 语言版本对应的内容。 } - -// EventV2ContactEmployeeTypeEnumUpdatedV3Resp ... -type EventV2ContactEmployeeTypeEnumUpdatedV3Resp struct { -} - -// eventV2ContactEmployeeTypeEnumUpdatedV3Resp ... -type eventV2ContactEmployeeTypeEnumUpdatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactEmployeeTypeEnumUpdatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_scope_updated_v3.go b/api_event_callback_v2_contact_scope_updated_v3.go index 70e335bf..494c01a3 100644 --- a/api_event_callback_v2_contact_scope_updated_v3.go +++ b/api_event_callback_v2_contact_scope_updated_v3.go @@ -402,15 +402,3 @@ type EventV2ContactScopeUpdatedV3RemovedUserStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } - -// EventV2ContactScopeUpdatedV3Resp ... -type EventV2ContactScopeUpdatedV3Resp struct { -} - -// eventV2ContactScopeUpdatedV3Resp ... -type eventV2ContactScopeUpdatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactScopeUpdatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_user_created_v3.go b/api_event_callback_v2_contact_user_created_v3.go index 080d373d..42b13595 100644 --- a/api_event_callback_v2_contact_user_created_v3.go +++ b/api_event_callback_v2_contact_user_created_v3.go @@ -121,15 +121,3 @@ type EventV2ContactUserCreatedV3ObjectStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } - -// EventV2ContactUserCreatedV3Resp ... -type EventV2ContactUserCreatedV3Resp struct { -} - -// eventV2ContactUserCreatedV3Resp ... -type eventV2ContactUserCreatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactUserCreatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_user_deleted_v3.go b/api_event_callback_v2_contact_user_deleted_v3.go index 7054aa1c..eca065f3 100644 --- a/api_event_callback_v2_contact_user_deleted_v3.go +++ b/api_event_callback_v2_contact_user_deleted_v3.go @@ -128,15 +128,3 @@ type EventV2ContactUserDeletedV3OldObject struct { DepartmentIDs []string `json:"department_ids,omitempty"` // 用户所属部门的 ID 列表。部门 ID 类型为open_department_id, 了解部门 ID 可参见[部门 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)。字段权限要求(满足任一): 以应用身份读取通讯录获取用户组织架构信息以应用身份访问通讯录读取通讯录 OpenID string `json:"open_id,omitempty"` // 用户的 open_id, 应用内用户的唯一标识。不同用户 ID 的说明参见 [用户相关的 ID 概念](https://open.feishu.cn/document/home/user-identity-introduction/introduction)。 } - -// EventV2ContactUserDeletedV3Resp ... -type EventV2ContactUserDeletedV3Resp struct { -} - -// eventV2ContactUserDeletedV3Resp ... -type eventV2ContactUserDeletedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactUserDeletedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_contact_user_updated_v3.go b/api_event_callback_v2_contact_user_updated_v3.go index c1c8beda..062eceeb 100644 --- a/api_event_callback_v2_contact_user_updated_v3.go +++ b/api_event_callback_v2_contact_user_updated_v3.go @@ -203,15 +203,3 @@ type EventV2ContactUserUpdatedV3OldObjectStatus struct { IsExited bool `json:"is_exited,omitempty"` // 是否为主动退出状态。主动退出一段时间后用户状态会自动转为已离职。可能值有: true: 是- false: 否 IsUnjoin bool `json:"is_unjoin,omitempty"` // 是否为未加入状态, 需要用户自主确认才能加入企业或团队。可能值有: true: 是- false: 否 } - -// EventV2ContactUserUpdatedV3Resp ... -type EventV2ContactUserUpdatedV3Resp struct { -} - -// eventV2ContactUserUpdatedV3Resp ... -type eventV2ContactUserUpdatedV3Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ContactUserUpdatedV3Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_contract_created_v1.go b/api_event_callback_v2_corehr_contract_created_v1.go index 66643936..547af35d 100644 --- a/api_event_callback_v2_corehr_contract_created_v1.go +++ b/api_event_callback_v2_corehr_contract_created_v1.go @@ -21,30 +21,18 @@ import ( "context" ) -// EventV2CorehrContractCreatedV1 通过开放平台创建合同或飞书人事系统中员工新签一份合同时, 会触发合同创建事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=created) +// EventV2CoreHRContractCreatedV1 通过开放平台创建合同或飞书人事系统中员工新签一份合同时, 会触发合同创建事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=created) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/events/created // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/contract/created -func (r *EventCallbackService) HandlerEventV2CorehrContractCreatedV1(f EventV2CorehrContractCreatedV1Handler) { - r.cli.eventHandler.eventV2CorehrContractCreatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRContractCreatedV1(f EventV2CoreHRContractCreatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRContractCreatedV1Handler = f } -// EventV2CorehrContractCreatedV1Handler event EventV2CorehrContractCreatedV1 handler -type EventV2CorehrContractCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrContractCreatedV1) (string, error) +// EventV2CoreHRContractCreatedV1Handler event EventV2CoreHRContractCreatedV1 handler +type EventV2CoreHRContractCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRContractCreatedV1) (string, error) -// EventV2CorehrContractCreatedV1 ... -type EventV2CorehrContractCreatedV1 struct { +// EventV2CoreHRContractCreatedV1 ... +type EventV2CoreHRContractCreatedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 该合同详细信息可通过[【合同信息查询接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/get)获取 } - -// EventV2CorehrContractCreatedV1Resp ... -type EventV2CorehrContractCreatedV1Resp struct { -} - -// eventV2CorehrContractCreatedV1Resp ... -type eventV2CorehrContractCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrContractCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_contract_deleted_v1.go b/api_event_callback_v2_corehr_contract_deleted_v1.go index 4d98769e..16c49525 100644 --- a/api_event_callback_v2_corehr_contract_deleted_v1.go +++ b/api_event_callback_v2_corehr_contract_deleted_v1.go @@ -21,30 +21,18 @@ import ( "context" ) -// EventV2CorehrContractDeletedV1 通过开放平台删除合同时, 会触发该事件。注意: 删除后, 无法通过搜索接口查询到合同信息。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=deleted) +// EventV2CoreHRContractDeletedV1 通过开放平台删除合同时, 会触发该事件。注意: 删除后, 无法通过搜索接口查询到合同信息。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=deleted) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/events/deleted // new doc: https://open.feishu.cn/document/corehr-v1/contract/contract-events/deleted -func (r *EventCallbackService) HandlerEventV2CorehrContractDeletedV1(f EventV2CorehrContractDeletedV1Handler) { - r.cli.eventHandler.eventV2CorehrContractDeletedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRContractDeletedV1(f EventV2CoreHRContractDeletedV1Handler) { + r.cli.eventHandler.eventV2CoreHRContractDeletedV1Handler = f } -// EventV2CorehrContractDeletedV1Handler event EventV2CorehrContractDeletedV1 handler -type EventV2CorehrContractDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrContractDeletedV1) (string, error) +// EventV2CoreHRContractDeletedV1Handler event EventV2CoreHRContractDeletedV1 handler +type EventV2CoreHRContractDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRContractDeletedV1) (string, error) -// EventV2CorehrContractDeletedV1 ... -type EventV2CorehrContractDeletedV1 struct { +// EventV2CoreHRContractDeletedV1 ... +type EventV2CoreHRContractDeletedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 删除后无法通过接口查询到数据 } - -// EventV2CorehrContractDeletedV1Resp ... -type EventV2CorehrContractDeletedV1Resp struct { -} - -// eventV2CorehrContractDeletedV1Resp ... -type eventV2CorehrContractDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrContractDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_contract_updated_v1.go b/api_event_callback_v2_corehr_contract_updated_v1.go index 9c653752..b7a82629 100644 --- a/api_event_callback_v2_corehr_contract_updated_v1.go +++ b/api_event_callback_v2_corehr_contract_updated_v1.go @@ -21,30 +21,18 @@ import ( "context" ) -// EventV2CorehrContractUpdatedV1 通过开放平台更新合同或者在飞书人事系统进行变更和续约等业务操作时, 会触发本事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=updated) +// EventV2CoreHRContractUpdatedV1 通过开放平台更新合同或者在飞书人事系统进行变更和续约等业务操作时, 会触发本事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=contract&event=updated) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/contract/contract-events/updated -func (r *EventCallbackService) HandlerEventV2CorehrContractUpdatedV1(f EventV2CorehrContractUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrContractUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRContractUpdatedV1(f EventV2CoreHRContractUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRContractUpdatedV1Handler = f } -// EventV2CorehrContractUpdatedV1Handler event EventV2CorehrContractUpdatedV1 handler -type EventV2CorehrContractUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrContractUpdatedV1) (string, error) +// EventV2CoreHRContractUpdatedV1Handler event EventV2CoreHRContractUpdatedV1 handler +type EventV2CoreHRContractUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRContractUpdatedV1) (string, error) -// EventV2CorehrContractUpdatedV1 ... -type EventV2CorehrContractUpdatedV1 struct { +// EventV2CoreHRContractUpdatedV1 ... +type EventV2CoreHRContractUpdatedV1 struct { ContractID string `json:"contract_id,omitempty"` // 合同ID, 该合同详细信息可通过[【合同信息查询接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/get)获取 } - -// EventV2CorehrContractUpdatedV1Resp ... -type EventV2CorehrContractUpdatedV1Resp struct { -} - -// eventV2CorehrContractUpdatedV1Resp ... -type eventV2CorehrContractUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrContractUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_department_created_v1.go b/api_event_callback_v2_corehr_department_created_v1.go index 498db0bf..829b824b 100644 --- a/api_event_callback_v2_corehr_department_created_v1.go +++ b/api_event_callback_v2_corehr_department_created_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrDepartmentCreatedV1 飞书人事中「部门被创建」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=created) +// EventV2CoreHRDepartmentCreatedV1 飞书人事中「部门被创建」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=created) // // - 使用场景: 此事件为无序事件(创建有上下级关系的部门创建之后, 上下级部门事件可能乱序), 若对事件顺序无依赖则可以使用V1版本事件, 否则请使用[【创建部门事件V2】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/events/created) // - [【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)[【获取父部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/parents) 等接口数据查询存在一定延迟, 不建议收到事件后立即查询以上接口。 @@ -31,26 +31,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/created -func (r *EventCallbackService) HandlerEventV2CorehrDepartmentCreatedV1(f EventV2CorehrDepartmentCreatedV1Handler) { - r.cli.eventHandler.eventV2CorehrDepartmentCreatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRDepartmentCreatedV1(f EventV2CoreHRDepartmentCreatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRDepartmentCreatedV1Handler = f } -// EventV2CorehrDepartmentCreatedV1Handler event EventV2CorehrDepartmentCreatedV1 handler -type EventV2CorehrDepartmentCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrDepartmentCreatedV1) (string, error) +// EventV2CoreHRDepartmentCreatedV1Handler event EventV2CoreHRDepartmentCreatedV1 handler +type EventV2CoreHRDepartmentCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRDepartmentCreatedV1) (string, error) -// EventV2CorehrDepartmentCreatedV1 ... -type EventV2CorehrDepartmentCreatedV1 struct { +// EventV2CoreHRDepartmentCreatedV1 ... +type EventV2CoreHRDepartmentCreatedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 新建部门的 ID } - -// EventV2CorehrDepartmentCreatedV1Resp ... -type EventV2CorehrDepartmentCreatedV1Resp struct { -} - -// eventV2CorehrDepartmentCreatedV1Resp ... -type eventV2CorehrDepartmentCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrDepartmentCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_department_deleted_v1.go b/api_event_callback_v2_corehr_department_deleted_v1.go index ba66e598..a0ff9147 100644 --- a/api_event_callback_v2_corehr_department_deleted_v1.go +++ b/api_event_callback_v2_corehr_department_deleted_v1.go @@ -21,33 +21,21 @@ import ( "context" ) -// EventV2CorehrDepartmentDeletedV1 飞书人事中「部门被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=deleted) +// EventV2CoreHRDepartmentDeletedV1 飞书人事中「部门被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=deleted) // // 收到删除事件后, 相关查询接口无法查询到被删除对象的数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/deleted // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/deleted -func (r *EventCallbackService) HandlerEventV2CorehrDepartmentDeletedV1(f EventV2CorehrDepartmentDeletedV1Handler) { - r.cli.eventHandler.eventV2CorehrDepartmentDeletedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRDepartmentDeletedV1(f EventV2CoreHRDepartmentDeletedV1Handler) { + r.cli.eventHandler.eventV2CoreHRDepartmentDeletedV1Handler = f } -// EventV2CorehrDepartmentDeletedV1Handler event EventV2CorehrDepartmentDeletedV1 handler -type EventV2CorehrDepartmentDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrDepartmentDeletedV1) (string, error) +// EventV2CoreHRDepartmentDeletedV1Handler event EventV2CoreHRDepartmentDeletedV1 handler +type EventV2CoreHRDepartmentDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRDepartmentDeletedV1) (string, error) -// EventV2CorehrDepartmentDeletedV1 ... -type EventV2CorehrDepartmentDeletedV1 struct { +// EventV2CoreHRDepartmentDeletedV1 ... +type EventV2CoreHRDepartmentDeletedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 被删除部门的 ID Code string `json:"code,omitempty"` // 部门编码 } - -// EventV2CorehrDepartmentDeletedV1Resp ... -type EventV2CorehrDepartmentDeletedV1Resp struct { -} - -// eventV2CorehrDepartmentDeletedV1Resp ... -type eventV2CorehrDepartmentDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrDepartmentDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_department_updated_v1.go b/api_event_callback_v2_corehr_department_updated_v1.go index e1d1fb23..4aa8c0e2 100644 --- a/api_event_callback_v2_corehr_department_updated_v1.go +++ b/api_event_callback_v2_corehr_department_updated_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrDepartmentUpdatedV1 飞书人事中「部门信息被更新」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=updated) +// EventV2CoreHRDepartmentUpdatedV1 飞书人事中「部门信息被更新」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=department&event=updated) // // - 使用场景: 此事件为无序事件(创建有上下级关系的部门创建之后, 上下级部门事件可能乱序), 若对事件顺序无依赖则可以使用V1版本事件, 否则请使用[【更新部门事件V2】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/events/updated) // - [【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)[【获取父部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/parents) 等接口数据查询存在一定延迟, 不建议收到事件后立即查询以上接口。 @@ -33,27 +33,15 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/updated -func (r *EventCallbackService) HandlerEventV2CorehrDepartmentUpdatedV1(f EventV2CorehrDepartmentUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrDepartmentUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRDepartmentUpdatedV1(f EventV2CoreHRDepartmentUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRDepartmentUpdatedV1Handler = f } -// EventV2CorehrDepartmentUpdatedV1Handler event EventV2CorehrDepartmentUpdatedV1 handler -type EventV2CorehrDepartmentUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrDepartmentUpdatedV1) (string, error) +// EventV2CoreHRDepartmentUpdatedV1Handler event EventV2CoreHRDepartmentUpdatedV1 handler +type EventV2CoreHRDepartmentUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRDepartmentUpdatedV1) (string, error) -// EventV2CorehrDepartmentUpdatedV1 ... -type EventV2CorehrDepartmentUpdatedV1 struct { +// EventV2CoreHRDepartmentUpdatedV1 ... +type EventV2CoreHRDepartmentUpdatedV1 struct { DepartmentID string `json:"department_id,omitempty"` // 被更新部门的 ID FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段 } - -// EventV2CorehrDepartmentUpdatedV1Resp ... -type EventV2CorehrDepartmentUpdatedV1Resp struct { -} - -// eventV2CorehrDepartmentUpdatedV1Resp ... -type eventV2CorehrDepartmentUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrDepartmentUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_employment_converted_v1.go b/api_event_callback_v2_corehr_employment_converted_v1.go index 8dd0d5d2..cc4c787f 100644 --- a/api_event_callback_v2_corehr_employment_converted_v1.go +++ b/api_event_callback_v2_corehr_employment_converted_v1.go @@ -21,30 +21,18 @@ import ( "context" ) -// EventV2CorehrEmploymentConvertedV1 当员工转正生效时触发该事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=converted) +// EventV2CoreHREmploymentConvertedV1 当员工转正生效时触发该事件{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=converted) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/events/converted // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/probation/converted -func (r *EventCallbackService) HandlerEventV2CorehrEmploymentConvertedV1(f EventV2CorehrEmploymentConvertedV1Handler) { - r.cli.eventHandler.eventV2CorehrEmploymentConvertedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHREmploymentConvertedV1(f EventV2CoreHREmploymentConvertedV1Handler) { + r.cli.eventHandler.eventV2CoreHREmploymentConvertedV1Handler = f } -// EventV2CorehrEmploymentConvertedV1Handler event EventV2CorehrEmploymentConvertedV1 handler -type EventV2CorehrEmploymentConvertedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrEmploymentConvertedV1) (string, error) +// EventV2CoreHREmploymentConvertedV1Handler event EventV2CoreHREmploymentConvertedV1 handler +type EventV2CoreHREmploymentConvertedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHREmploymentConvertedV1) (string, error) -// EventV2CorehrEmploymentConvertedV1 ... -type EventV2CorehrEmploymentConvertedV1 struct { +// EventV2CoreHREmploymentConvertedV1 ... +type EventV2CoreHREmploymentConvertedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 雇佣ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 } - -// EventV2CorehrEmploymentConvertedV1Resp ... -type EventV2CorehrEmploymentConvertedV1Resp struct { -} - -// eventV2CorehrEmploymentConvertedV1Resp ... -type eventV2CorehrEmploymentConvertedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrEmploymentConvertedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_employment_created_v1.go b/api_event_callback_v2_corehr_employment_created_v1.go index 6a37fabb..0c805749 100644 --- a/api_event_callback_v2_corehr_employment_created_v1.go +++ b/api_event_callback_v2_corehr_employment_created_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrEmploymentCreatedV1 员工雇佣信息被创建时发送该事件, 场景举例: +// EventV2CoreHREmploymentCreatedV1 员工雇佣信息被创建时发送该事件, 场景举例: // // - 调用[【创建雇佣信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/create)、[【添加人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/create)接口 // - 人事系统【添加人员】、【导入人员】功能{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=created) @@ -30,34 +30,22 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/events/created // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/created -func (r *EventCallbackService) HandlerEventV2CorehrEmploymentCreatedV1(f EventV2CorehrEmploymentCreatedV1Handler) { - r.cli.eventHandler.eventV2CorehrEmploymentCreatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHREmploymentCreatedV1(f EventV2CoreHREmploymentCreatedV1Handler) { + r.cli.eventHandler.eventV2CoreHREmploymentCreatedV1Handler = f } -// EventV2CorehrEmploymentCreatedV1Handler event EventV2CorehrEmploymentCreatedV1 handler -type EventV2CorehrEmploymentCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrEmploymentCreatedV1) (string, error) +// EventV2CoreHREmploymentCreatedV1Handler event EventV2CoreHREmploymentCreatedV1 handler +type EventV2CoreHREmploymentCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHREmploymentCreatedV1) (string, error) -// EventV2CorehrEmploymentCreatedV1 ... -type EventV2CorehrEmploymentCreatedV1 struct { +// EventV2CoreHREmploymentCreatedV1 ... +type EventV2CoreHREmploymentCreatedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 被创建的雇佣信息的 ID - TargetUserID *EventV2CorehrEmploymentCreatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID + TargetUserID *EventV2CoreHREmploymentCreatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID } -// EventV2CorehrEmploymentCreatedV1Resp ... -type EventV2CorehrEmploymentCreatedV1Resp struct { -} - -// EventV2CorehrEmploymentCreatedV1TargetUserID ... -type EventV2CorehrEmploymentCreatedV1TargetUserID struct { +// EventV2CoreHREmploymentCreatedV1TargetUserID ... +type EventV2CoreHREmploymentCreatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrEmploymentCreatedV1Resp ... -type eventV2CorehrEmploymentCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrEmploymentCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_employment_deleted_v1.go b/api_event_callback_v2_corehr_employment_deleted_v1.go index a33ab224..6a5424d1 100644 --- a/api_event_callback_v2_corehr_employment_deleted_v1.go +++ b/api_event_callback_v2_corehr_employment_deleted_v1.go @@ -21,38 +21,26 @@ import ( "context" ) -// EventV2CorehrEmploymentDeletedV1 员工在飞书人事的「雇佣信息被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=deleted) +// EventV2CoreHREmploymentDeletedV1 员工在飞书人事的「雇佣信息被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=deleted) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/events/deleted // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/deleted -func (r *EventCallbackService) HandlerEventV2CorehrEmploymentDeletedV1(f EventV2CorehrEmploymentDeletedV1Handler) { - r.cli.eventHandler.eventV2CorehrEmploymentDeletedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHREmploymentDeletedV1(f EventV2CoreHREmploymentDeletedV1Handler) { + r.cli.eventHandler.eventV2CoreHREmploymentDeletedV1Handler = f } -// EventV2CorehrEmploymentDeletedV1Handler event EventV2CorehrEmploymentDeletedV1 handler -type EventV2CorehrEmploymentDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrEmploymentDeletedV1) (string, error) +// EventV2CoreHREmploymentDeletedV1Handler event EventV2CoreHREmploymentDeletedV1 handler +type EventV2CoreHREmploymentDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHREmploymentDeletedV1) (string, error) -// EventV2CorehrEmploymentDeletedV1 ... -type EventV2CorehrEmploymentDeletedV1 struct { +// EventV2CoreHREmploymentDeletedV1 ... +type EventV2CoreHREmploymentDeletedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 被删除的雇佣信息的 ID - TargetUserID *EventV2CorehrEmploymentDeletedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID + TargetUserID *EventV2CoreHREmploymentDeletedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID } -// EventV2CorehrEmploymentDeletedV1Resp ... -type EventV2CorehrEmploymentDeletedV1Resp struct { -} - -// EventV2CorehrEmploymentDeletedV1TargetUserID ... -type EventV2CorehrEmploymentDeletedV1TargetUserID struct { +// EventV2CoreHREmploymentDeletedV1TargetUserID ... +type EventV2CoreHREmploymentDeletedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrEmploymentDeletedV1Resp ... -type eventV2CorehrEmploymentDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrEmploymentDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_employment_resigned_v1.go b/api_event_callback_v2_corehr_employment_resigned_v1.go index 955c4737..aadbb715 100644 --- a/api_event_callback_v2_corehr_employment_resigned_v1.go +++ b/api_event_callback_v2_corehr_employment_resigned_v1.go @@ -21,33 +21,21 @@ import ( "context" ) -// EventV2CorehrEmploymentResignedV1 员工完成离职, 即离职日期的次日凌晨时, 员工雇佣状态更改为“离职”后触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=resigned) +// EventV2CoreHREmploymentResignedV1 员工完成离职, 即离职日期的次日凌晨时, 员工雇佣状态更改为“离职”后触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=employment&event=resigned) // // 注意: 监听到该消息不一定能立刻通过[搜索离职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/search)搜索到对应的离职信息, 这中间存在数据延时。推荐监听[离职申请状态变更(新) // ](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/status_updated) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/events/resigned // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/offboarding/resigned -func (r *EventCallbackService) HandlerEventV2CorehrEmploymentResignedV1(f EventV2CorehrEmploymentResignedV1Handler) { - r.cli.eventHandler.eventV2CorehrEmploymentResignedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHREmploymentResignedV1(f EventV2CoreHREmploymentResignedV1Handler) { + r.cli.eventHandler.eventV2CoreHREmploymentResignedV1Handler = f } -// EventV2CorehrEmploymentResignedV1Handler event EventV2CorehrEmploymentResignedV1 handler -type EventV2CorehrEmploymentResignedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrEmploymentResignedV1) (string, error) +// EventV2CoreHREmploymentResignedV1Handler event EventV2CoreHREmploymentResignedV1 handler +type EventV2CoreHREmploymentResignedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHREmploymentResignedV1) (string, error) -// EventV2CorehrEmploymentResignedV1 ... -type EventV2CorehrEmploymentResignedV1 struct { +// EventV2CoreHREmploymentResignedV1 ... +type EventV2CoreHREmploymentResignedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 离职员工雇佣ID, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取员工信息。 } - -// EventV2CorehrEmploymentResignedV1Resp ... -type EventV2CorehrEmploymentResignedV1Resp struct { -} - -// eventV2CorehrEmploymentResignedV1Resp ... -type eventV2CorehrEmploymentResignedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrEmploymentResignedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_employment_updated_v1.go b/api_event_callback_v2_corehr_employment_updated_v1.go index 672a2877..0027306d 100644 --- a/api_event_callback_v2_corehr_employment_updated_v1.go +++ b/api_event_callback_v2_corehr_employment_updated_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrEmploymentUpdatedV1 员工雇佣信息变更时发送该事件, 场景举例: +// EventV2CoreHREmploymentUpdatedV1 员工雇佣信息变更时发送该事件, 场景举例: // // - 调用[【更新雇佣信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/patch)接口 // - 人事系统【编辑工作信息】、【导入编辑人员】功能 @@ -31,35 +31,23 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/updated -func (r *EventCallbackService) HandlerEventV2CorehrEmploymentUpdatedV1(f EventV2CorehrEmploymentUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrEmploymentUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHREmploymentUpdatedV1(f EventV2CoreHREmploymentUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHREmploymentUpdatedV1Handler = f } -// EventV2CorehrEmploymentUpdatedV1Handler event EventV2CorehrEmploymentUpdatedV1 handler -type EventV2CorehrEmploymentUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrEmploymentUpdatedV1) (string, error) +// EventV2CoreHREmploymentUpdatedV1Handler event EventV2CoreHREmploymentUpdatedV1 handler +type EventV2CoreHREmploymentUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHREmploymentUpdatedV1) (string, error) -// EventV2CorehrEmploymentUpdatedV1 ... -type EventV2CorehrEmploymentUpdatedV1 struct { +// EventV2CoreHREmploymentUpdatedV1 ... +type EventV2CoreHREmploymentUpdatedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 被更新的雇佣信息 ID - TargetUserID *EventV2CorehrEmploymentUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID + TargetUserID *EventV2CoreHREmploymentUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段 } -// EventV2CorehrEmploymentUpdatedV1Resp ... -type EventV2CorehrEmploymentUpdatedV1Resp struct { -} - -// EventV2CorehrEmploymentUpdatedV1TargetUserID ... -type EventV2CorehrEmploymentUpdatedV1TargetUserID struct { +// EventV2CoreHREmploymentUpdatedV1TargetUserID ... +type EventV2CoreHREmploymentUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrEmploymentUpdatedV1Resp ... -type eventV2CorehrEmploymentUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrEmploymentUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_change_updated_v1.go b/api_event_callback_v2_corehr_job_change_updated_v1.go index d6f6f87e..25d6b37d 100644 --- a/api_event_callback_v2_corehr_job_change_updated_v1.go +++ b/api_event_callback_v2_corehr_job_change_updated_v1.go @@ -21,23 +21,23 @@ import ( "context" ) -// EventV2CorehrJobChangeUpdatedV1 在异动审批状态变更、异动生效时都会触发该事件, 审批结果产生的场景包括撤销、审批通过、审批拒绝。本事件没有数据范围鉴权。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job_change&event=updated) +// EventV2CoreHRJobChangeUpdatedV1 在异动审批状态变更、异动生效时都会触发该事件, 审批结果产生的场景包括撤销、审批通过、审批拒绝。本事件没有数据范围鉴权。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job_change&event=updated) // // 本事件不再推荐使用, 请使用新版本[异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/job_change/updated -func (r *EventCallbackService) HandlerEventV2CorehrJobChangeUpdatedV1(f EventV2CorehrJobChangeUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobChangeUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobChangeUpdatedV1(f EventV2CoreHRJobChangeUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobChangeUpdatedV1Handler = f } -// EventV2CorehrJobChangeUpdatedV1Handler event EventV2CorehrJobChangeUpdatedV1 handler -type EventV2CorehrJobChangeUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobChangeUpdatedV1) (string, error) +// EventV2CoreHRJobChangeUpdatedV1Handler event EventV2CoreHRJobChangeUpdatedV1 handler +type EventV2CoreHRJobChangeUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobChangeUpdatedV1) (string, error) -// EventV2CorehrJobChangeUpdatedV1 ... -type EventV2CorehrJobChangeUpdatedV1 struct { +// EventV2CoreHRJobChangeUpdatedV1 ... +type EventV2CoreHRJobChangeUpdatedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - TargetUserID *EventV2CorehrJobChangeUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID, 飞书相关ID, 可通过[【通讯录接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview)接口获取 + TargetUserID *EventV2CoreHRJobChangeUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID, 飞书相关ID, 可通过[【通讯录接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview)接口获取 JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id, 可通过接口[搜索异动信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search)获取详细信息 TransferMode int64 `json:"transfer_mode,omitempty"` // 异动属性/方式可选值有: 直接异动: 无需审批的异动, 操作后异动状态为「无需审批」发起异动: 需要走异动流程 TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取 @@ -48,21 +48,9 @@ type EventV2CorehrJobChangeUpdatedV1 struct { TransferKey string `json:"transfer_key,omitempty"` // 异动记录标识符 } -// EventV2CorehrJobChangeUpdatedV1Resp ... -type EventV2CorehrJobChangeUpdatedV1Resp struct { -} - -// EventV2CorehrJobChangeUpdatedV1TargetUserID ... -type EventV2CorehrJobChangeUpdatedV1TargetUserID struct { +// EventV2CoreHRJobChangeUpdatedV1TargetUserID ... +type EventV2CoreHRJobChangeUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrJobChangeUpdatedV1Resp ... -type eventV2CorehrJobChangeUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobChangeUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_created_v1.go b/api_event_callback_v2_corehr_job_created_v1.go index 0001dbf6..9ad72324 100644 --- a/api_event_callback_v2_corehr_job_created_v1.go +++ b/api_event_callback_v2_corehr_job_created_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrJobCreatedV1 飞书人事中「职务被创建」时将触发此事件。注意: 触发时间为职务实际生效时间, 如在 2022-01-01 创建职务, 职务生效时间设置为 2022-05-01, 事件将在 2022-05-01 进行推送。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=created) +// EventV2CoreHRJobCreatedV1 飞书人事中「职务被创建」时将触发此事件。注意: 触发时间为职务实际生效时间, 如在 2022-01-01 创建职务, 职务生效时间设置为 2022-05-01, 事件将在 2022-05-01 进行推送。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=created) // // -- 该接口只会推送当前生效职务的变更事件。 // - 未来生效的版本数据, 会在生效日期当天凌晨推送事件。例如: 今天为1月1日, 新建职务1月10日生效, 则1月10日凌晨发送该对象创建事件。 @@ -29,26 +29,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/events/created // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/events/created -func (r *EventCallbackService) HandlerEventV2CorehrJobCreatedV1(f EventV2CorehrJobCreatedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobCreatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobCreatedV1(f EventV2CoreHRJobCreatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobCreatedV1Handler = f } -// EventV2CorehrJobCreatedV1Handler event EventV2CorehrJobCreatedV1 handler -type EventV2CorehrJobCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobCreatedV1) (string, error) +// EventV2CoreHRJobCreatedV1Handler event EventV2CoreHRJobCreatedV1 handler +type EventV2CoreHRJobCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobCreatedV1) (string, error) -// EventV2CorehrJobCreatedV1 ... -type EventV2CorehrJobCreatedV1 struct { +// EventV2CoreHRJobCreatedV1 ... +type EventV2CoreHRJobCreatedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息 } - -// EventV2CorehrJobCreatedV1Resp ... -type EventV2CorehrJobCreatedV1Resp struct { -} - -// eventV2CorehrJobCreatedV1Resp ... -type eventV2CorehrJobCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_data_changed_v1.go b/api_event_callback_v2_corehr_job_data_changed_v1.go index 576b2a01..ecf68d6c 100644 --- a/api_event_callback_v2_corehr_job_data_changed_v1.go +++ b/api_event_callback_v2_corehr_job_data_changed_v1.go @@ -21,42 +21,30 @@ import ( "context" ) -// EventV2CorehrJobDataChangedV1 员工在飞书人事异动生效后(到达异动生效时间)将触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job_data&event=changed) +// EventV2CoreHRJobDataChangedV1 员工在飞书人事异动生效后(到达异动生效时间)将触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job_data&event=changed) // // 异动在生效日期0点生效, 由于每日员工字段变更计算量较大, 到达异动生效时间时, 不会立刻发出此事件, 最晚6个小时后发出此事件。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/events/changed // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/job_change/changed -func (r *EventCallbackService) HandlerEventV2CorehrJobDataChangedV1(f EventV2CorehrJobDataChangedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobDataChangedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobDataChangedV1(f EventV2CoreHRJobDataChangedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobDataChangedV1Handler = f } -// EventV2CorehrJobDataChangedV1Handler event EventV2CorehrJobDataChangedV1 handler -type EventV2CorehrJobDataChangedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobDataChangedV1) (string, error) +// EventV2CoreHRJobDataChangedV1Handler event EventV2CoreHRJobDataChangedV1 handler +type EventV2CoreHRJobDataChangedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobDataChangedV1) (string, error) -// EventV2CorehrJobDataChangedV1 ... -type EventV2CorehrJobDataChangedV1 struct { +// EventV2CoreHRJobDataChangedV1 ... +type EventV2CoreHRJobDataChangedV1 struct { JobDataID string `json:"job_data_id,omitempty"` // 任职信息 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 EmploymentID string `json:"employment_id,omitempty"` // 雇佣信息 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - TargetUserID *EventV2CorehrJobDataChangedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID, 飞书相关ID, 可通过[【通讯录接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview)接口获取 + TargetUserID *EventV2CoreHRJobDataChangedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID, 飞书相关ID, 可通过[【通讯录接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview)接口获取 JobChangeID string `json:"job_change_id,omitempty"` // 员工异动 ID, 可通过[【搜索异动信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search)接口获取 } -// EventV2CorehrJobDataChangedV1Resp ... -type EventV2CorehrJobDataChangedV1Resp struct { -} - -// EventV2CorehrJobDataChangedV1TargetUserID ... -type EventV2CorehrJobDataChangedV1TargetUserID struct { +// EventV2CoreHRJobDataChangedV1TargetUserID ... +type EventV2CoreHRJobDataChangedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrJobDataChangedV1Resp ... -type eventV2CorehrJobDataChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobDataChangedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_data_employed_v1.go b/api_event_callback_v2_corehr_job_data_employed_v1.go index b85db0a9..56190e6a 100644 --- a/api_event_callback_v2_corehr_job_data_employed_v1.go +++ b/api_event_callback_v2_corehr_job_data_employed_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrJobDataEmployedV1 以下业务场景会触发此事件: +// EventV2CoreHRJobDataEmployedV1 以下业务场景会触发此事件: // // - 开放平台[操作员工完成入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/complete)接口 // - 开放平台[添加人员](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/create)接口 @@ -30,35 +30,23 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/events/employed // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/pre_hire/employed -func (r *EventCallbackService) HandlerEventV2CorehrJobDataEmployedV1(f EventV2CorehrJobDataEmployedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobDataEmployedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobDataEmployedV1(f EventV2CoreHRJobDataEmployedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobDataEmployedV1Handler = f } -// EventV2CorehrJobDataEmployedV1Handler event EventV2CorehrJobDataEmployedV1 handler -type EventV2CorehrJobDataEmployedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobDataEmployedV1) (string, error) +// EventV2CoreHRJobDataEmployedV1Handler event EventV2CoreHRJobDataEmployedV1 handler +type EventV2CoreHRJobDataEmployedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobDataEmployedV1) (string, error) -// EventV2CorehrJobDataEmployedV1 ... -type EventV2CorehrJobDataEmployedV1 struct { +// EventV2CoreHRJobDataEmployedV1 ... +type EventV2CoreHRJobDataEmployedV1 struct { JobDataID string `json:"job_data_id,omitempty"` // 任职记录 ID, 详细信息可通过[【获取任职记录】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/get)接口查询 EmploymentID string `json:"employment_id,omitempty"` // 雇佣记录 ID, 详细信息可通过[【查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询 - TargetUserID *EventV2CorehrJobDataEmployedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID(备注: 入职后开通飞书账号成功, 会生成飞书通讯录相关ID, 但由于开通过程是异步, 本事件不保证一定返回, 如未返回, 说明飞书账号开通失败, 业务需兼容处理) + TargetUserID *EventV2CoreHRJobDataEmployedV1TargetUserID `json:"target_user_id,omitempty"` // 用户 ID(备注: 入职后开通飞书账号成功, 会生成飞书通讯录相关ID, 但由于开通过程是异步, 本事件不保证一定返回, 如未返回, 说明飞书账号开通失败, 业务需兼容处理) } -// EventV2CorehrJobDataEmployedV1Resp ... -type EventV2CorehrJobDataEmployedV1Resp struct { -} - -// EventV2CorehrJobDataEmployedV1TargetUserID ... -type EventV2CorehrJobDataEmployedV1TargetUserID struct { +// EventV2CoreHRJobDataEmployedV1TargetUserID ... +type EventV2CoreHRJobDataEmployedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrJobDataEmployedV1Resp ... -type eventV2CorehrJobDataEmployedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobDataEmployedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_deleted_v1.go b/api_event_callback_v2_corehr_job_deleted_v1.go index f4a23cbb..b750e241 100644 --- a/api_event_callback_v2_corehr_job_deleted_v1.go +++ b/api_event_callback_v2_corehr_job_deleted_v1.go @@ -21,32 +21,20 @@ import ( "context" ) -// EventV2CorehrJobDeletedV1 飞书人事中「职务被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=deleted) +// EventV2CoreHRJobDeletedV1 飞书人事中「职务被删除」时将触发此事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=deleted) // // 职务删除后, 无法通过查询接口查询信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/events/deleted // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/events/deleted -func (r *EventCallbackService) HandlerEventV2CorehrJobDeletedV1(f EventV2CorehrJobDeletedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobDeletedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobDeletedV1(f EventV2CoreHRJobDeletedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobDeletedV1Handler = f } -// EventV2CorehrJobDeletedV1Handler event EventV2CorehrJobDeletedV1 handler -type EventV2CorehrJobDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobDeletedV1) (string, error) +// EventV2CoreHRJobDeletedV1Handler event EventV2CoreHRJobDeletedV1 handler +type EventV2CoreHRJobDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobDeletedV1) (string, error) -// EventV2CorehrJobDeletedV1 ... -type EventV2CorehrJobDeletedV1 struct { +// EventV2CoreHRJobDeletedV1 ... +type EventV2CoreHRJobDeletedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID } - -// EventV2CorehrJobDeletedV1Resp ... -type EventV2CorehrJobDeletedV1Resp struct { -} - -// eventV2CorehrJobDeletedV1Resp ... -type eventV2CorehrJobDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_job_updated_v1.go b/api_event_callback_v2_corehr_job_updated_v1.go index b9526bcb..18222a73 100644 --- a/api_event_callback_v2_corehr_job_updated_v1.go +++ b/api_event_callback_v2_corehr_job_updated_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrJobUpdatedV1 飞书人事中「职务信息被更新」时将触发此事件。注意: 触发时间为职务实际生效时间, 如在 2022-01-01 更新职务, 职务生效时间设置为 2022-05-01, 事件将在 2022-05-01 进行推送。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=updated) +// EventV2CoreHRJobUpdatedV1 飞书人事中「职务信息被更新」时将触发此事件。注意: 触发时间为职务实际生效时间, 如在 2022-01-01 更新职务, 职务生效时间设置为 2022-05-01, 事件将在 2022-05-01 进行推送。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=job&event=updated) // // - 该接口只会推送当前生效对象的变更事件。 // - 未来生效的版本数据, 会在生效日期当天凌晨推送事件。例如: 今天为1月1日, 修改对象名称并填写1月10日生效, 则1月10日凌晨发送该对象变更事件。 @@ -30,26 +30,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/events/updated -func (r *EventCallbackService) HandlerEventV2CorehrJobUpdatedV1(f EventV2CorehrJobUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrJobUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRJobUpdatedV1(f EventV2CoreHRJobUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRJobUpdatedV1Handler = f } -// EventV2CorehrJobUpdatedV1Handler event EventV2CorehrJobUpdatedV1 handler -type EventV2CorehrJobUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrJobUpdatedV1) (string, error) +// EventV2CoreHRJobUpdatedV1Handler event EventV2CoreHRJobUpdatedV1 handler +type EventV2CoreHRJobUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRJobUpdatedV1) (string, error) -// EventV2CorehrJobUpdatedV1 ... -type EventV2CorehrJobUpdatedV1 struct { +// EventV2CoreHRJobUpdatedV1 ... +type EventV2CoreHRJobUpdatedV1 struct { JobID string `json:"job_id,omitempty"` // 职务 ID, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息 } - -// EventV2CorehrJobUpdatedV1Resp ... -type EventV2CorehrJobUpdatedV1Resp struct { -} - -// eventV2CorehrJobUpdatedV1Resp ... -type eventV2CorehrJobUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrJobUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_offboarding_updated_v1.go b/api_event_callback_v2_corehr_offboarding_updated_v1.go index f2129767..5c6be74c 100644 --- a/api_event_callback_v2_corehr_offboarding_updated_v1.go +++ b/api_event_callback_v2_corehr_offboarding_updated_v1.go @@ -21,44 +21,32 @@ import ( "context" ) -// EventV2CorehrOffboardingUpdatedV1 在发起离职审批、产生审批结果、离职生效、离职状态回退等离职申请状态变更时触发该事件推送对应消息。审批结果产生的场景包括撤销、通过、拒绝审批。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=offboarding&event=updated) +// EventV2CoreHROffboardingUpdatedV1 在发起离职审批、产生审批结果、离职生效、离职状态回退等离职申请状态变更时触发该事件推送对应消息。审批结果产生的场景包括撤销、通过、拒绝审批。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=offboarding&event=updated) // // 注意: 该事件缺少数据范围控制和直接离职消息, 不推荐使用该事件。优先使用[离职申请状态变更(新)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/status_updated) // 你需要在应用中配置事件订阅, 这样才可以在事件触发时接收到事件数据。了解事件订阅可参见[事件订阅概述](https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM)。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/offboarding/updated -func (r *EventCallbackService) HandlerEventV2CorehrOffboardingUpdatedV1(f EventV2CorehrOffboardingUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrOffboardingUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHROffboardingUpdatedV1(f EventV2CoreHROffboardingUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHROffboardingUpdatedV1Handler = f } -// EventV2CorehrOffboardingUpdatedV1Handler event EventV2CorehrOffboardingUpdatedV1 handler -type EventV2CorehrOffboardingUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrOffboardingUpdatedV1) (string, error) +// EventV2CoreHROffboardingUpdatedV1Handler event EventV2CoreHROffboardingUpdatedV1 handler +type EventV2CoreHROffboardingUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHROffboardingUpdatedV1) (string, error) -// EventV2CorehrOffboardingUpdatedV1 ... -type EventV2CorehrOffboardingUpdatedV1 struct { +// EventV2CoreHROffboardingUpdatedV1 ... +type EventV2CoreHROffboardingUpdatedV1 struct { EmploymentID string `json:"employment_id,omitempty"` // 离职员工雇佣ID, 可通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取员工信息。 - TargetUserID *EventV2CorehrOffboardingUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 离职员工的用户 ID + TargetUserID *EventV2CoreHROffboardingUpdatedV1TargetUserID `json:"target_user_id,omitempty"` // 离职员工的用户 ID OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录ID, 每条离职记录的唯一标识。 ProcessID string `json:"process_id,omitempty"` // 离职申请流程的实例 ID, 可用于[查询流程相关信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list), 例如: 作为[获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)的process_id查询流程详情。 Status int64 `json:"status,omitempty"` // 离职状态可选值有: 离职发起/审批中已撤销已拒绝审批通过已生效(生效日期后自动生效) } -// EventV2CorehrOffboardingUpdatedV1Resp ... -type EventV2CorehrOffboardingUpdatedV1Resp struct { -} - -// EventV2CorehrOffboardingUpdatedV1TargetUserID ... -type EventV2CorehrOffboardingUpdatedV1TargetUserID struct { +// EventV2CoreHROffboardingUpdatedV1TargetUserID ... +type EventV2CoreHROffboardingUpdatedV1TargetUserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2CorehrOffboardingUpdatedV1Resp ... -type eventV2CorehrOffboardingUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrOffboardingUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go b/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go index e655dd4c..4ddc6f79 100644 --- a/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go +++ b/api_event_callback_v2_corehr_org_role_authorization_updated_v1.go @@ -21,38 +21,26 @@ import ( "context" ) -// EventV2CorehrOrgRoleAuthorizationUpdatedV1 当组织上的角色授权发生变更时, 触发该事件。例如在部门上修改了角色, 并在 2030-01-01 年生效, 则事件将在 2030-01-01 触发。注意: 当前事件只返回在飞书人事中组织角色的变化, 下游组织的影响, 可以通过 「获取组织类角色授权列表」获取。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=org_role_authorization&event=updated) +// EventV2CoreHROrgRoleAuthorizationUpdatedV1 当组织上的角色授权发生变更时, 触发该事件。例如在部门上修改了角色, 并在 2030-01-01 年生效, 则事件将在 2030-01-01 触发。注意: 当前事件只返回在飞书人事中组织角色的变化, 下游组织的影响, 可以通过 「获取组织类角色授权列表」获取。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=org_role_authorization&event=updated) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/org_role_authorization/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/authorization/updated -func (r *EventCallbackService) HandlerEventV2CorehrOrgRoleAuthorizationUpdatedV1(f EventV2CorehrOrgRoleAuthorizationUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrOrgRoleAuthorizationUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHROrgRoleAuthorizationUpdatedV1(f EventV2CoreHROrgRoleAuthorizationUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHROrgRoleAuthorizationUpdatedV1Handler = f } -// EventV2CorehrOrgRoleAuthorizationUpdatedV1Handler event EventV2CorehrOrgRoleAuthorizationUpdatedV1 handler -type EventV2CorehrOrgRoleAuthorizationUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrOrgRoleAuthorizationUpdatedV1) (string, error) +// EventV2CoreHROrgRoleAuthorizationUpdatedV1Handler event EventV2CoreHROrgRoleAuthorizationUpdatedV1 handler +type EventV2CoreHROrgRoleAuthorizationUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHROrgRoleAuthorizationUpdatedV1) (string, error) -// EventV2CorehrOrgRoleAuthorizationUpdatedV1 ... -type EventV2CorehrOrgRoleAuthorizationUpdatedV1 struct { +// EventV2CoreHROrgRoleAuthorizationUpdatedV1 ... +type EventV2CoreHROrgRoleAuthorizationUpdatedV1 struct { RoleID string `json:"role_id,omitempty"` // 角色id - ManagementScopeList []*EventV2CorehrOrgRoleAuthorizationUpdatedV1ManagementScope `json:"management_scope_list,omitempty"` // 管理范围信息 + ManagementScopeList []*EventV2CoreHROrgRoleAuthorizationUpdatedV1ManagementScope `json:"management_scope_list,omitempty"` // 管理范围信息 EmploymentIDList []string `json:"employment_id_list,omitempty"` // 员工雇佣信息ID list } -// EventV2CorehrOrgRoleAuthorizationUpdatedV1ManagementScope ... -type EventV2CorehrOrgRoleAuthorizationUpdatedV1ManagementScope struct { +// EventV2CoreHROrgRoleAuthorizationUpdatedV1ManagementScope ... +type EventV2CoreHROrgRoleAuthorizationUpdatedV1ManagementScope struct { ManagementDimension string `json:"management_dimension,omitempty"` // 管理维度可选值有: department: 部门- work_location: 工作地点- company: 公司- social_security_location: 社保城市 ObjID string `json:"obj_id,omitempty"` // 被授权部门/工作地点/公司/社保城市 ID } - -// EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp ... -type EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp struct { -} - -// eventV2CorehrOrgRoleAuthorizationUpdatedV1Resp ... -type eventV2CorehrOrgRoleAuthorizationUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrOrgRoleAuthorizationUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_person_created_v1.go b/api_event_callback_v2_corehr_person_created_v1.go index 877f1905..85c44835 100644 --- a/api_event_callback_v2_corehr_person_created_v1.go +++ b/api_event_callback_v2_corehr_person_created_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrPersonCreatedV1 目前以下场景会触发该事件: +// EventV2CoreHRPersonCreatedV1 目前以下场景会触发该事件: // // - 调用[【创建个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create)、[【添加人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/create)接口 // - 人事系统【添加人员】、【导入人员】功能{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=person&event=created) @@ -30,26 +30,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/events/created // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/created -func (r *EventCallbackService) HandlerEventV2CorehrPersonCreatedV1(f EventV2CorehrPersonCreatedV1Handler) { - r.cli.eventHandler.eventV2CorehrPersonCreatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRPersonCreatedV1(f EventV2CoreHRPersonCreatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRPersonCreatedV1Handler = f } -// EventV2CorehrPersonCreatedV1Handler event EventV2CorehrPersonCreatedV1 handler -type EventV2CorehrPersonCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrPersonCreatedV1) (string, error) +// EventV2CoreHRPersonCreatedV1Handler event EventV2CoreHRPersonCreatedV1 handler +type EventV2CoreHRPersonCreatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRPersonCreatedV1) (string, error) -// EventV2CorehrPersonCreatedV1 ... -type EventV2CorehrPersonCreatedV1 struct { +// EventV2CoreHRPersonCreatedV1 ... +type EventV2CoreHRPersonCreatedV1 struct { PersonID string `json:"person_id,omitempty"` // 人员ID } - -// EventV2CorehrPersonCreatedV1Resp ... -type EventV2CorehrPersonCreatedV1Resp struct { -} - -// eventV2CorehrPersonCreatedV1Resp ... -type eventV2CorehrPersonCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrPersonCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_person_deleted_v1.go b/api_event_callback_v2_corehr_person_deleted_v1.go index a110e882..17ec3729 100644 --- a/api_event_callback_v2_corehr_person_deleted_v1.go +++ b/api_event_callback_v2_corehr_person_deleted_v1.go @@ -21,30 +21,18 @@ import ( "context" ) -// EventV2CorehrPersonDeletedV1 个人信息删除{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=person&event=deleted) +// EventV2CoreHRPersonDeletedV1 个人信息删除{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v1&resource=person&event=deleted) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/events/deleted // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/deleted -func (r *EventCallbackService) HandlerEventV2CorehrPersonDeletedV1(f EventV2CorehrPersonDeletedV1Handler) { - r.cli.eventHandler.eventV2CorehrPersonDeletedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRPersonDeletedV1(f EventV2CoreHRPersonDeletedV1Handler) { + r.cli.eventHandler.eventV2CoreHRPersonDeletedV1Handler = f } -// EventV2CorehrPersonDeletedV1Handler event EventV2CorehrPersonDeletedV1 handler -type EventV2CorehrPersonDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrPersonDeletedV1) (string, error) +// EventV2CoreHRPersonDeletedV1Handler event EventV2CoreHRPersonDeletedV1 handler +type EventV2CoreHRPersonDeletedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRPersonDeletedV1) (string, error) -// EventV2CorehrPersonDeletedV1 ... -type EventV2CorehrPersonDeletedV1 struct { +// EventV2CoreHRPersonDeletedV1 ... +type EventV2CoreHRPersonDeletedV1 struct { PersonID string `json:"person_id,omitempty"` // 人员ID } - -// EventV2CorehrPersonDeletedV1Resp ... -type EventV2CorehrPersonDeletedV1Resp struct { -} - -// eventV2CorehrPersonDeletedV1Resp ... -type eventV2CorehrPersonDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrPersonDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_person_updated_v1.go b/api_event_callback_v2_corehr_person_updated_v1.go index 01d1cff1..f5a34e0e 100644 --- a/api_event_callback_v2_corehr_person_updated_v1.go +++ b/api_event_callback_v2_corehr_person_updated_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrPersonUpdatedV1 员工个人信息发生变更时发送该事件, 场景举例: +// EventV2CoreHRPersonUpdatedV1 员工个人信息发生变更时发送该事件, 场景举例: // // - 调用[【更新个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch)接口 // - 人事系统【编辑个人信息】、【导入编辑人员】功能 @@ -32,27 +32,15 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/events/updated // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/updated -func (r *EventCallbackService) HandlerEventV2CorehrPersonUpdatedV1(f EventV2CorehrPersonUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrPersonUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRPersonUpdatedV1(f EventV2CoreHRPersonUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRPersonUpdatedV1Handler = f } -// EventV2CorehrPersonUpdatedV1Handler event EventV2CorehrPersonUpdatedV1 handler -type EventV2CorehrPersonUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrPersonUpdatedV1) (string, error) +// EventV2CoreHRPersonUpdatedV1Handler event EventV2CoreHRPersonUpdatedV1 handler +type EventV2CoreHRPersonUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRPersonUpdatedV1) (string, error) -// EventV2CorehrPersonUpdatedV1 ... -type EventV2CorehrPersonUpdatedV1 struct { +// EventV2CoreHRPersonUpdatedV1 ... +type EventV2CoreHRPersonUpdatedV1 struct { PersonID string `json:"person_id,omitempty"` // 被更新个人信息的 ID FieldChanges []string `json:"field_changes,omitempty"` // 发生变更的字段, 若部分字段变更无需接受事件消息, 可根据该字段进行事件消息过滤 } - -// EventV2CorehrPersonUpdatedV1Resp ... -type EventV2CorehrPersonUpdatedV1Resp struct { -} - -// eventV2CorehrPersonUpdatedV1Resp ... -type eventV2CorehrPersonUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrPersonUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_pre_hire_updated_v1.go b/api_event_callback_v2_corehr_pre_hire_updated_v1.go index aec6e438..a0369e97 100644 --- a/api_event_callback_v2_corehr_pre_hire_updated_v1.go +++ b/api_event_callback_v2_corehr_pre_hire_updated_v1.go @@ -21,7 +21,7 @@ import ( "context" ) -// EventV2CorehrPreHireUpdatedV1 待入职人员任职信息更新后, 触发此事件, 包括两种场景: +// EventV2CoreHRPreHireUpdatedV1 待入职人员任职信息更新后, 触发此事件, 包括两种场景: // // - 通过开放平台接口创建待入职、更新待入职 // - 在飞书人事-入职系统, HR 补充任职信息 @@ -31,27 +31,15 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/pre_hire/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/pre-hire-events/updated -func (r *EventCallbackService) HandlerEventV2CorehrPreHireUpdatedV1(f EventV2CorehrPreHireUpdatedV1Handler) { - r.cli.eventHandler.eventV2CorehrPreHireUpdatedV1Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRPreHireUpdatedV1(f EventV2CoreHRPreHireUpdatedV1Handler) { + r.cli.eventHandler.eventV2CoreHRPreHireUpdatedV1Handler = f } -// EventV2CorehrPreHireUpdatedV1Handler event EventV2CorehrPreHireUpdatedV1 handler -type EventV2CorehrPreHireUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrPreHireUpdatedV1) (string, error) +// EventV2CoreHRPreHireUpdatedV1Handler event EventV2CoreHRPreHireUpdatedV1 handler +type EventV2CoreHRPreHireUpdatedV1Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRPreHireUpdatedV1) (string, error) -// EventV2CorehrPreHireUpdatedV1 ... -type EventV2CorehrPreHireUpdatedV1 struct { +// EventV2CoreHRPreHireUpdatedV1 ... +type EventV2CoreHRPreHireUpdatedV1 struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 ID, 可通过[【搜索待入职人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取更详细信息 FieldChanges []string `json:"field_changes,omitempty"` // 变更的字段。由于历史原因, 部分字段(例如个人信息)变更会发送为‘wk_updated_at’字段, 不会显示真实变更字段, 需要通过[【搜索待入职人员】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取更详细信息。 } - -// EventV2CorehrPreHireUpdatedV1Resp ... -type EventV2CorehrPreHireUpdatedV1Resp struct { -} - -// eventV2CorehrPreHireUpdatedV1Resp ... -type eventV2CorehrPreHireUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrPreHireUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_probation_updated_v2.go b/api_event_callback_v2_corehr_probation_updated_v2.go index a5031666..ebcba5b7 100644 --- a/api_event_callback_v2_corehr_probation_updated_v2.go +++ b/api_event_callback_v2_corehr_probation_updated_v2.go @@ -21,32 +21,20 @@ import ( "context" ) -// EventV2CorehrProbationUpdatedV2 当试用期记录状态发生变更时, 触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=probation&event=updated) +// EventV2CoreHRProbationUpdatedV2 当试用期记录状态发生变更时, 触发该事件。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=probation&event=updated) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/probation/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/probation/probation-events/updated -func (r *EventCallbackService) HandlerEventV2CorehrProbationUpdatedV2(f EventV2CorehrProbationUpdatedV2Handler) { - r.cli.eventHandler.eventV2CorehrProbationUpdatedV2Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRProbationUpdatedV2(f EventV2CoreHRProbationUpdatedV2Handler) { + r.cli.eventHandler.eventV2CoreHRProbationUpdatedV2Handler = f } -// EventV2CorehrProbationUpdatedV2Handler event EventV2CorehrProbationUpdatedV2 handler -type EventV2CorehrProbationUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrProbationUpdatedV2) (string, error) +// EventV2CoreHRProbationUpdatedV2Handler event EventV2CoreHRProbationUpdatedV2 handler +type EventV2CoreHRProbationUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRProbationUpdatedV2) (string, error) -// EventV2CorehrProbationUpdatedV2 ... -type EventV2CorehrProbationUpdatedV2 struct { +// EventV2CoreHRProbationUpdatedV2 ... +type EventV2CoreHRProbationUpdatedV2 struct { EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 ProbationStatus string `json:"probation_status,omitempty"` // 试用期状态可选值有: 审批中已拒绝待发起转正审批通过已转正已离职 ActualProbationEndDate string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期, 格式: "YYYY-MM-DD" } - -// EventV2CorehrProbationUpdatedV2Resp ... -type EventV2CorehrProbationUpdatedV2Resp struct { -} - -// eventV2CorehrProbationUpdatedV2Resp ... -type eventV2CorehrProbationUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrProbationUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_process_approver_updated_v2.go b/api_event_callback_v2_corehr_process_approver_updated_v2.go index c748cbd1..c0fd553f 100644 --- a/api_event_callback_v2_corehr_process_approver_updated_v2.go +++ b/api_event_callback_v2_corehr_process_approver_updated_v2.go @@ -21,21 +21,21 @@ import ( "context" ) -// EventV2CorehrProcessApproverUpdatedV2 单个审批任务的状态变化会触发该事件。例如, 审批任务从待办变为已完成。审批任务(approver_id 是唯一标识), 比如一个多人会签节点, 会分别生成多人的审批任务(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.approver&event=updated) +// EventV2CoreHRProcessApproverUpdatedV2 单个审批任务的状态变化会触发该事件。例如, 审批任务从待办变为已完成。审批任务(approver_id 是唯一标识), 比如一个多人会签节点, 会分别生成多人的审批任务(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.approver&event=updated) // // 你需要在应用内配置事件订阅, 并订阅该事件, 这样才可以在事件触发时接收到事件数据。了解事件订阅可参见[事件概述](https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM)。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-approver/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/events/updated-2 -func (r *EventCallbackService) HandlerEventV2CorehrProcessApproverUpdatedV2(f EventV2CorehrProcessApproverUpdatedV2Handler) { - r.cli.eventHandler.eventV2CorehrProcessApproverUpdatedV2Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRProcessApproverUpdatedV2(f EventV2CoreHRProcessApproverUpdatedV2Handler) { + r.cli.eventHandler.eventV2CoreHRProcessApproverUpdatedV2Handler = f } -// EventV2CorehrProcessApproverUpdatedV2Handler event EventV2CorehrProcessApproverUpdatedV2 handler -type EventV2CorehrProcessApproverUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrProcessApproverUpdatedV2) (string, error) +// EventV2CoreHRProcessApproverUpdatedV2Handler event EventV2CoreHRProcessApproverUpdatedV2 handler +type EventV2CoreHRProcessApproverUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRProcessApproverUpdatedV2) (string, error) -// EventV2CorehrProcessApproverUpdatedV2 ... -type EventV2CorehrProcessApproverUpdatedV2 struct { +// EventV2CoreHRProcessApproverUpdatedV2 ... +type EventV2CoreHRProcessApproverUpdatedV2 struct { ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 ApproverID string `json:"approver_id,omitempty"` // 单据ID Type int64 `json:"type,omitempty"` // 单据类型可选值有: 审批单表单 @@ -46,15 +46,3 @@ type EventV2CorehrProcessApproverUpdatedV2 struct { NodeID string `json:"node_id,omitempty"` // 节点id(已废弃, 请使用node_id_str字段) NodeIDStr string `json:"node_id_str,omitempty"` // 节点id } - -// EventV2CorehrProcessApproverUpdatedV2Resp ... -type EventV2CorehrProcessApproverUpdatedV2Resp struct { -} - -// eventV2CorehrProcessApproverUpdatedV2Resp ... -type eventV2CorehrProcessApproverUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrProcessApproverUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_process_cc_updated_v2.go b/api_event_callback_v2_corehr_process_cc_updated_v2.go index eb9455b1..1f141d61 100644 --- a/api_event_callback_v2_corehr_process_cc_updated_v2.go +++ b/api_event_callback_v2_corehr_process_cc_updated_v2.go @@ -21,35 +21,23 @@ import ( "context" ) -// EventV2CorehrProcessCcUpdatedV2 流程中生成抄送单据后会触发该事件。抄送节点会生成抄送单据任务。如果一个节点有多个人抄送人, 则会生成多个抄送单据(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.cc&event=updated) +// EventV2CoreHRProcessCcUpdatedV2 流程中生成抄送单据后会触发该事件。抄送节点会生成抄送单据任务。如果一个节点有多个人抄送人, 则会生成多个抄送单据(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.cc&event=updated) // // 你需要在应用内配置事件订阅, 并订阅该事件, 这样才可以在事件触发时接收到事件数据。了解事件订阅可参见[事件概述](https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM)。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-cc/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/events/updated-3 -func (r *EventCallbackService) HandlerEventV2CorehrProcessCcUpdatedV2(f EventV2CorehrProcessCcUpdatedV2Handler) { - r.cli.eventHandler.eventV2CorehrProcessCcUpdatedV2Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRProcessCcUpdatedV2(f EventV2CoreHRProcessCcUpdatedV2Handler) { + r.cli.eventHandler.eventV2CoreHRProcessCcUpdatedV2Handler = f } -// EventV2CorehrProcessCcUpdatedV2Handler event EventV2CorehrProcessCcUpdatedV2 handler -type EventV2CorehrProcessCcUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrProcessCcUpdatedV2) (string, error) +// EventV2CoreHRProcessCcUpdatedV2Handler event EventV2CoreHRProcessCcUpdatedV2 handler +type EventV2CoreHRProcessCcUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRProcessCcUpdatedV2) (string, error) -// EventV2CorehrProcessCcUpdatedV2 ... -type EventV2CorehrProcessCcUpdatedV2 struct { +// EventV2CoreHRProcessCcUpdatedV2 ... +type EventV2CoreHRProcessCcUpdatedV2 struct { ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 ApproverID string `json:"approver_id,omitempty"` // 抄送单据ID Status int64 `json:"status,omitempty"` // 单据状态可选值有: 抄送到达 BizType string `json:"biz_type,omitempty"` // 业务类型, 详情请查看[接入指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/access-guide) 长度范围: `1` ~ `200` 字符 } - -// EventV2CorehrProcessCcUpdatedV2Resp ... -type EventV2CorehrProcessCcUpdatedV2Resp struct { -} - -// eventV2CorehrProcessCcUpdatedV2Resp ... -type eventV2CorehrProcessCcUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrProcessCcUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_process_node_updated_v2.go b/api_event_callback_v2_corehr_process_node_updated_v2.go index 0278ebb3..3dce570c 100644 --- a/api_event_callback_v2_corehr_process_node_updated_v2.go +++ b/api_event_callback_v2_corehr_process_node_updated_v2.go @@ -21,21 +21,21 @@ import ( "context" ) -// EventV2CorehrProcessNodeUpdatedV2 流程中节点状态发生变化会触发该事件。配置的节点为节点定义(node_definition_id 是唯一标识)。在流程实例中, 每个流程实例生成的节点实例会不同(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.node&event=updated) +// EventV2CoreHRProcessNodeUpdatedV2 流程中节点状态发生变化会触发该事件。配置的节点为节点定义(node_definition_id 是唯一标识)。在流程实例中, 每个流程实例生成的节点实例会不同(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process.node&event=updated) // // 你需要在应用内配置事件订阅, 并订阅该事件, 这样才可以在事件触发时接收到事件数据。了解事件订阅可参见[事件概述](https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM)。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-node/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/events/updated-4 -func (r *EventCallbackService) HandlerEventV2CorehrProcessNodeUpdatedV2(f EventV2CorehrProcessNodeUpdatedV2Handler) { - r.cli.eventHandler.eventV2CorehrProcessNodeUpdatedV2Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRProcessNodeUpdatedV2(f EventV2CoreHRProcessNodeUpdatedV2Handler) { + r.cli.eventHandler.eventV2CoreHRProcessNodeUpdatedV2Handler = f } -// EventV2CorehrProcessNodeUpdatedV2Handler event EventV2CorehrProcessNodeUpdatedV2 handler -type EventV2CorehrProcessNodeUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrProcessNodeUpdatedV2) (string, error) +// EventV2CoreHRProcessNodeUpdatedV2Handler event EventV2CoreHRProcessNodeUpdatedV2 handler +type EventV2CoreHRProcessNodeUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRProcessNodeUpdatedV2) (string, error) -// EventV2CorehrProcessNodeUpdatedV2 ... -type EventV2CorehrProcessNodeUpdatedV2 struct { +// EventV2CoreHRProcessNodeUpdatedV2 ... +type EventV2CoreHRProcessNodeUpdatedV2 struct { FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义 id NodeDefinitionID string `json:"node_definition_id,omitempty"` // 节点定义 id ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 @@ -44,15 +44,3 @@ type EventV2CorehrProcessNodeUpdatedV2 struct { NodeStatus int64 `json:"node_status,omitempty"` // 节点状态可选值有: 进行中已拒绝已通过已撤回已回退已跳过已干预 BizType string `json:"biz_type,omitempty"` // 业务类型, 详情请查看[接入指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/access-guide) 长度范围: `1` ~ `200` 字符 } - -// EventV2CorehrProcessNodeUpdatedV2Resp ... -type EventV2CorehrProcessNodeUpdatedV2Resp struct { -} - -// eventV2CorehrProcessNodeUpdatedV2Resp ... -type eventV2CorehrProcessNodeUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrProcessNodeUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_corehr_process_updated_v2.go b/api_event_callback_v2_corehr_process_updated_v2.go index a1c44e7c..c43d7f76 100644 --- a/api_event_callback_v2_corehr_process_updated_v2.go +++ b/api_event_callback_v2_corehr_process_updated_v2.go @@ -21,37 +21,25 @@ import ( "context" ) -// EventV2CorehrProcessUpdatedV2 流程实例是指用户发起的具体流程(process_id是其唯一标识), 流程实例在以下时机会触发信息变更事件: 流程中有审批人操作、流程数据更新、流程状态变化等。 +// EventV2CoreHRProcessUpdatedV2 流程实例是指用户发起的具体流程(process_id是其唯一标识), 流程实例在以下时机会触发信息变更事件: 流程中有审批人操作、流程数据更新、流程状态变化等。 // // 注意事项: 若节点中有多个人时, 可能会同时触发多个事件。例如流程运行到该节点, 同时为多个人都生成了待办任务, 就会导致触发多次事件(此功能不受数据权限范围控制)。{使用示例}(url=/api/tools/api_explore/api_explore_config?project=corehr&version=v2&resource=process&event=updated) // 休假类型流程的“撤销”的实例状态, 以及是否属于“更正流程”需要去休假的[批量查询员工请假记录](https://open.larkoffice.com/document/server-docs/corehr-v1/leave/leave_request_history?appId=cli_a7b01a4272581013) 接口查询 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/events/updated // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/events/updated -func (r *EventCallbackService) HandlerEventV2CorehrProcessUpdatedV2(f EventV2CorehrProcessUpdatedV2Handler) { - r.cli.eventHandler.eventV2CorehrProcessUpdatedV2Handler = f +func (r *EventCallbackService) HandlerEventV2CoreHRProcessUpdatedV2(f EventV2CoreHRProcessUpdatedV2Handler) { + r.cli.eventHandler.eventV2CoreHRProcessUpdatedV2Handler = f } -// EventV2CorehrProcessUpdatedV2Handler event EventV2CorehrProcessUpdatedV2 handler -type EventV2CorehrProcessUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CorehrProcessUpdatedV2) (string, error) +// EventV2CoreHRProcessUpdatedV2Handler event EventV2CoreHRProcessUpdatedV2 handler +type EventV2CoreHRProcessUpdatedV2Handler func(ctx context.Context, cli *Lark, schema string, header *EventHeaderV2, event *EventV2CoreHRProcessUpdatedV2) (string, error) -// EventV2CorehrProcessUpdatedV2 ... -type EventV2CorehrProcessUpdatedV2 struct { +// EventV2CoreHRProcessUpdatedV2 ... +type EventV2CoreHRProcessUpdatedV2 struct { ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 Status int64 `json:"status,omitempty"` // 变更后状态可选值有: 发起/进行中完成拒绝撤回撤销撤销中 BizType string `json:"biz_type,omitempty"` // 业务类型, 详情请查看[接入指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/access-guide) 长度范围: `1` ~ `200` 字符 FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义id。流程定义是流程的模板, 由流程定义可以创建流程实例。示例值: "people_7023711013443944467_7382148112896872236" Properties int64 `json:"properties,omitempty"` // 流程属性可选值有: 普通流程撤销流程更正流程 } - -// EventV2CorehrProcessUpdatedV2Resp ... -type EventV2CorehrProcessUpdatedV2Resp struct { -} - -// eventV2CorehrProcessUpdatedV2Resp ... -type eventV2CorehrProcessUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2CorehrProcessUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_bitable_field_changed_v1.go b/api_event_callback_v2_drive_file_bitable_field_changed_v1.go index 50d73152..e83fa2af 100644 --- a/api_event_callback_v2_drive_file_bitable_field_changed_v1.go +++ b/api_event_callback_v2_drive_file_bitable_field_changed_v1.go @@ -153,20 +153,9 @@ type EventV2DriveFileBitableFieldChangedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2DriveFileBitableFieldChangedV1Resp ... -type EventV2DriveFileBitableFieldChangedV1Resp struct { -} - // EventV2DriveFileBitableFieldChangedV1SubscriberID ... type EventV2DriveFileBitableFieldChangedV1SubscriberID struct { UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID UserID string `json:"user_id,omitempty"` // 订阅者的 User ID OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID } - -// eventV2DriveFileBitableFieldChangedV1Resp ... -type eventV2DriveFileBitableFieldChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileBitableFieldChangedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_bitable_record_changed_v1.go b/api_event_callback_v2_drive_file_bitable_record_changed_v1.go index e4a516bd..762101c6 100644 --- a/api_event_callback_v2_drive_file_bitable_record_changed_v1.go +++ b/api_event_callback_v2_drive_file_bitable_record_changed_v1.go @@ -121,20 +121,9 @@ type EventV2DriveFileBitableRecordChangedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2DriveFileBitableRecordChangedV1Resp ... -type EventV2DriveFileBitableRecordChangedV1Resp struct { -} - // EventV2DriveFileBitableRecordChangedV1SubscriberID ... type EventV2DriveFileBitableRecordChangedV1SubscriberID struct { UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID UserID string `json:"user_id,omitempty"` // 订阅者的 User ID OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID } - -// eventV2DriveFileBitableRecordChangedV1Resp ... -type eventV2DriveFileBitableRecordChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileBitableRecordChangedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_created_in_folder_v1.go b/api_event_callback_v2_drive_file_created_in_folder_v1.go index b98dd8e1..4107cf74 100644 --- a/api_event_callback_v2_drive_file_created_in_folder_v1.go +++ b/api_event_callback_v2_drive_file_created_in_folder_v1.go @@ -51,20 +51,9 @@ type EventV2DriveFileCreatedInFolderV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2DriveFileCreatedInFolderV1Resp ... -type EventV2DriveFileCreatedInFolderV1Resp struct { -} - // EventV2DriveFileCreatedInFolderV1SubscriberID ... type EventV2DriveFileCreatedInFolderV1SubscriberID struct { UnionID string `json:"union_id,omitempty"` // 订阅者的 Union ID UserID string `json:"user_id,omitempty"` // 订阅者的 User ID OpenID string `json:"open_id,omitempty"` // 订阅者的 Open ID } - -// eventV2DriveFileCreatedInFolderV1Resp ... -type eventV2DriveFileCreatedInFolderV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileCreatedInFolderV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_deleted_v1.go b/api_event_callback_v2_drive_file_deleted_v1.go index 86336457..8e7040bb 100644 --- a/api_event_callback_v2_drive_file_deleted_v1.go +++ b/api_event_callback_v2_drive_file_deleted_v1.go @@ -49,14 +49,3 @@ type EventV2DriveFileDeletedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// EventV2DriveFileDeletedV1Resp ... -type EventV2DriveFileDeletedV1Resp struct { -} - -// eventV2DriveFileDeletedV1Resp ... -type eventV2DriveFileDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileDeletedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_edit_v1.go b/api_event_callback_v2_drive_file_edit_v1.go index b3b12e82..0d5c077e 100644 --- a/api_event_callback_v2_drive_file_edit_v1.go +++ b/api_event_callback_v2_drive_file_edit_v1.go @@ -51,20 +51,9 @@ type EventV2DriveFileEditV1OperatorIDList struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } -// EventV2DriveFileEditV1Resp ... -type EventV2DriveFileEditV1Resp struct { -} - // EventV2DriveFileEditV1SubscriberIDList ... type EventV2DriveFileEditV1SubscriberIDList struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// eventV2DriveFileEditV1Resp ... -type eventV2DriveFileEditV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileEditV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_permission_member_added_v1.go b/api_event_callback_v2_drive_file_permission_member_added_v1.go index 5edd2447..d98f25fd 100644 --- a/api_event_callback_v2_drive_file_permission_member_added_v1.go +++ b/api_event_callback_v2_drive_file_permission_member_added_v1.go @@ -52,20 +52,9 @@ type EventV2DriveFilePermissionMemberAddedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } -// EventV2DriveFilePermissionMemberAddedV1Resp ... -type EventV2DriveFilePermissionMemberAddedV1Resp struct { -} - // EventV2DriveFilePermissionMemberAddedV1User ... type EventV2DriveFilePermissionMemberAddedV1User struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// eventV2DriveFilePermissionMemberAddedV1Resp ... -type eventV2DriveFilePermissionMemberAddedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFilePermissionMemberAddedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_permission_member_removed_v1.go b/api_event_callback_v2_drive_file_permission_member_removed_v1.go index 245479cb..5b6daa50 100644 --- a/api_event_callback_v2_drive_file_permission_member_removed_v1.go +++ b/api_event_callback_v2_drive_file_permission_member_removed_v1.go @@ -52,20 +52,9 @@ type EventV2DriveFilePermissionMemberRemovedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } -// EventV2DriveFilePermissionMemberRemovedV1Resp ... -type EventV2DriveFilePermissionMemberRemovedV1Resp struct { -} - // EventV2DriveFilePermissionMemberRemovedV1User ... type EventV2DriveFilePermissionMemberRemovedV1User struct { UnionID string `json:"union_id,omitempty"` // 用户的 Union ID UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// eventV2DriveFilePermissionMemberRemovedV1Resp ... -type eventV2DriveFilePermissionMemberRemovedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFilePermissionMemberRemovedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_read_v1.go b/api_event_callback_v2_drive_file_read_v1.go index a0f4b13d..bb09dd0e 100644 --- a/api_event_callback_v2_drive_file_read_v1.go +++ b/api_event_callback_v2_drive_file_read_v1.go @@ -49,14 +49,3 @@ type EventV2DriveFileReadV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// EventV2DriveFileReadV1Resp ... -type EventV2DriveFileReadV1Resp struct { -} - -// eventV2DriveFileReadV1Resp ... -type eventV2DriveFileReadV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileReadV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_title_updated_v1.go b/api_event_callback_v2_drive_file_title_updated_v1.go index db47a9c1..7de922ff 100644 --- a/api_event_callback_v2_drive_file_title_updated_v1.go +++ b/api_event_callback_v2_drive_file_title_updated_v1.go @@ -49,14 +49,3 @@ type EventV2DriveFileTitleUpdatedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// EventV2DriveFileTitleUpdatedV1Resp ... -type EventV2DriveFileTitleUpdatedV1Resp struct { -} - -// eventV2DriveFileTitleUpdatedV1Resp ... -type eventV2DriveFileTitleUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileTitleUpdatedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_drive_file_trashed_v1.go b/api_event_callback_v2_drive_file_trashed_v1.go index ad5d8fd6..c93baaf8 100644 --- a/api_event_callback_v2_drive_file_trashed_v1.go +++ b/api_event_callback_v2_drive_file_trashed_v1.go @@ -49,14 +49,3 @@ type EventV2DriveFileTrashedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 User ID 字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 Open ID } - -// EventV2DriveFileTrashedV1Resp ... -type EventV2DriveFileTrashedV1Resp struct { -} - -// eventV2DriveFileTrashedV1Resp ... -type eventV2DriveFileTrashedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2DriveFileTrashedV1Resp `json:"data,omitempty"` -} diff --git a/api_event_callback_v2_elearning_course_registration_created_v2.go b/api_event_callback_v2_elearning_course_registration_created_v2.go index ecd3e529..90cf192b 100644 --- a/api_event_callback_v2_elearning_course_registration_created_v2.go +++ b/api_event_callback_v2_elearning_course_registration_created_v2.go @@ -60,15 +60,3 @@ type EventV2ElearningCourseRegistrationCreatedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ElearningCourseRegistrationCreatedV2Resp ... -type EventV2ElearningCourseRegistrationCreatedV2Resp struct { -} - -// eventV2ElearningCourseRegistrationCreatedV2Resp ... -type eventV2ElearningCourseRegistrationCreatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ElearningCourseRegistrationCreatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_elearning_course_registration_deleted_v2.go b/api_event_callback_v2_elearning_course_registration_deleted_v2.go index e82f74bb..0361c564 100644 --- a/api_event_callback_v2_elearning_course_registration_deleted_v2.go +++ b/api_event_callback_v2_elearning_course_registration_deleted_v2.go @@ -51,15 +51,3 @@ type EventV2ElearningCourseRegistrationDeletedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ElearningCourseRegistrationDeletedV2Resp ... -type EventV2ElearningCourseRegistrationDeletedV2Resp struct { -} - -// eventV2ElearningCourseRegistrationDeletedV2Resp ... -type eventV2ElearningCourseRegistrationDeletedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ElearningCourseRegistrationDeletedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_elearning_course_registration_updated_v2.go b/api_event_callback_v2_elearning_course_registration_updated_v2.go index 2bc6d8e8..838a4474 100644 --- a/api_event_callback_v2_elearning_course_registration_updated_v2.go +++ b/api_event_callback_v2_elearning_course_registration_updated_v2.go @@ -60,15 +60,3 @@ type EventV2ElearningCourseRegistrationUpdatedV2LearnerUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2ElearningCourseRegistrationUpdatedV2Resp ... -type EventV2ElearningCourseRegistrationUpdatedV2Resp struct { -} - -// eventV2ElearningCourseRegistrationUpdatedV2Resp ... -type eventV2ElearningCourseRegistrationUpdatedV2Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2ElearningCourseRegistrationUpdatedV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_helpdesk_notification_approve_v1.go b/api_event_callback_v2_helpdesk_notification_approve_v1.go index ea50b385..1a7bbe29 100644 --- a/api_event_callback_v2_helpdesk_notification_approve_v1.go +++ b/api_event_callback_v2_helpdesk_notification_approve_v1.go @@ -38,15 +38,3 @@ type EventV2HelpdeskNotificationApproveV1 struct { HelpdeskID string `json:"helpdesk_id,omitempty"` // 服务台唯一ID ApproveStatus string `json:"approve_status,omitempty"` // REJECTED(审核不通过)APPROVED(审核通过)CANCELED(取消审核)DELETED(删除审核) } - -// EventV2HelpdeskNotificationApproveV1Resp ... -type EventV2HelpdeskNotificationApproveV1Resp struct { -} - -// eventV2HelpdeskNotificationApproveV1Resp ... -type eventV2HelpdeskNotificationApproveV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HelpdeskNotificationApproveV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_helpdesk_ticket_created_v1.go b/api_event_callback_v2_helpdesk_ticket_created_v1.go index d7c744ff..95d1cc72 100644 --- a/api_event_callback_v2_helpdesk_ticket_created_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_created_v1.go @@ -74,15 +74,3 @@ type EventV2HelpdeskTicketCreatedV1GuestID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2HelpdeskTicketCreatedV1Resp ... -type EventV2HelpdeskTicketCreatedV1Resp struct { -} - -// eventV2HelpdeskTicketCreatedV1Resp ... -type eventV2HelpdeskTicketCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HelpdeskTicketCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_helpdesk_ticket_message_created_v1.go b/api_event_callback_v2_helpdesk_ticket_message_created_v1.go index 70d6912c..60ce73f4 100644 --- a/api_event_callback_v2_helpdesk_ticket_message_created_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_message_created_v1.go @@ -55,10 +55,6 @@ type EventV2HelpdeskTicketMessageCreatedV1Content struct { ImageKey string `json:"image_key,omitempty"` // 图片ID } -// EventV2HelpdeskTicketMessageCreatedV1Resp ... -type EventV2HelpdeskTicketMessageCreatedV1Resp struct { -} - // EventV2HelpdeskTicketMessageCreatedV1SenderID ... type EventV2HelpdeskTicketMessageCreatedV1SenderID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id @@ -123,11 +119,3 @@ type EventV2HelpdeskTicketMessageCreatedV1TicketDissatisfactionReason struct { EnUs string `json:"en_us,omitempty"` // 英文描述 JaJp string `json:"ja_jp,omitempty"` // 日文描述 } - -// eventV2HelpdeskTicketMessageCreatedV1Resp ... -type eventV2HelpdeskTicketMessageCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HelpdeskTicketMessageCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_helpdesk_ticket_updated_v1.go b/api_event_callback_v2_helpdesk_ticket_updated_v1.go index fe245fe4..05c38c4a 100644 --- a/api_event_callback_v2_helpdesk_ticket_updated_v1.go +++ b/api_event_callback_v2_helpdesk_ticket_updated_v1.go @@ -87,15 +87,3 @@ type EventV2HelpdeskTicketUpdatedV1OldObject struct { Status int64 `json:"status,omitempty"` // ticket status UpdatedAt int64 `json:"updated_at,omitempty"` // ticket update time } - -// EventV2HelpdeskTicketUpdatedV1Resp ... -type EventV2HelpdeskTicketUpdatedV1Resp struct { -} - -// eventV2HelpdeskTicketUpdatedV1Resp ... -type eventV2HelpdeskTicketUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HelpdeskTicketUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_application_deleted_v1.go b/api_event_callback_v2_hire_application_deleted_v1.go index 901193ce..93641da6 100644 --- a/api_event_callback_v2_hire_application_deleted_v1.go +++ b/api_event_callback_v2_hire_application_deleted_v1.go @@ -40,15 +40,3 @@ type EventV2HireApplicationDeletedV1Handler func(ctx context.Context, cli *Lark, type EventV2HireApplicationDeletedV1 struct { ApplicationIDs []string `json:"application_ids,omitempty"` // 投递 ID 列表 } - -// EventV2HireApplicationDeletedV1Resp ... -type EventV2HireApplicationDeletedV1Resp struct { -} - -// eventV2HireApplicationDeletedV1Resp ... -type eventV2HireApplicationDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireApplicationDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_application_stage_changed_v1.go b/api_event_callback_v2_hire_application_stage_changed_v1.go index 236505e4..c4e51084 100644 --- a/api_event_callback_v2_hire_application_stage_changed_v1.go +++ b/api_event_callback_v2_hire_application_stage_changed_v1.go @@ -39,15 +39,3 @@ type EventV2HireApplicationStageChangedV1 struct { TargetStageID string `json:"target_stage_id,omitempty"` // 投递阶段转移后的阶段 ID, 详情请参考[获取招聘流程信息](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/job_process/list) UpdateTime int64 `json:"update_time,omitempty"` // 投递阶段变更时间戳(单位: 毫秒) } - -// EventV2HireApplicationStageChangedV1Resp ... -type EventV2HireApplicationStageChangedV1Resp struct { -} - -// eventV2HireApplicationStageChangedV1Resp ... -type eventV2HireApplicationStageChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireApplicationStageChangedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_eco_account_created_v1.go b/api_event_callback_v2_hire_eco_account_created_v1.go index 2fffae91..e0893efc 100644 --- a/api_event_callback_v2_hire_eco_account_created_v1.go +++ b/api_event_callback_v2_hire_eco_account_created_v1.go @@ -46,15 +46,3 @@ type EventV2HireEcoAccountCreatedV1CustomField struct { Key string `json:"key,omitempty"` // 自定义字段的标识。通过[创建账号自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_account_custom_field/create)接口推送到招聘系统内 Value string `json:"value,omitempty"` // 客户填写的自定义字段的值 } - -// EventV2HireEcoAccountCreatedV1Resp ... -type EventV2HireEcoAccountCreatedV1Resp struct { -} - -// eventV2HireEcoAccountCreatedV1Resp ... -type eventV2HireEcoAccountCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEcoAccountCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_eco_background_check_canceled_v1.go b/api_event_callback_v2_hire_eco_background_check_canceled_v1.go index 0e232804..bf8e1465 100644 --- a/api_event_callback_v2_hire_eco_background_check_canceled_v1.go +++ b/api_event_callback_v2_hire_eco_background_check_canceled_v1.go @@ -37,15 +37,3 @@ type EventV2HireEcoBackgroundCheckCanceledV1 struct { BackgroundCheckID string `json:"background_check_id,omitempty"` // 背调 ID, 招聘系统内唯一, 可通过[创建背调](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check/events/created)事件获取 TerminationReason string `json:"termination_reason,omitempty"` // 终止原因 } - -// EventV2HireEcoBackgroundCheckCanceledV1Resp ... -type EventV2HireEcoBackgroundCheckCanceledV1Resp struct { -} - -// eventV2HireEcoBackgroundCheckCanceledV1Resp ... -type eventV2HireEcoBackgroundCheckCanceledV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEcoBackgroundCheckCanceledV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_eco_background_check_created_v1.go b/api_event_callback_v2_hire_eco_background_check_created_v1.go index f3c1bd6f..fa8c1de3 100644 --- a/api_event_callback_v2_hire_eco_background_check_created_v1.go +++ b/api_event_callback_v2_hire_eco_background_check_created_v1.go @@ -77,15 +77,3 @@ type EventV2HireEcoBackgroundCheckCreatedV1CustomField struct { Key string `json:"key,omitempty"` // 自定义字段标识, 由[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create)接口传入 Value string `json:"value,omitempty"` // 自定义字段值, 用户在发起背调时填入, 详情可参考[创建背调自定义字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/eco_background_check_custom_field/create)传入的自定义字段类型 } - -// EventV2HireEcoBackgroundCheckCreatedV1Resp ... -type EventV2HireEcoBackgroundCheckCreatedV1Resp struct { -} - -// eventV2HireEcoBackgroundCheckCreatedV1Resp ... -type eventV2HireEcoBackgroundCheckCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEcoBackgroundCheckCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_eco_exam_created_v1.go b/api_event_callback_v2_hire_eco_exam_created_v1.go index 76b0a234..75b2a5ae 100644 --- a/api_event_callback_v2_hire_eco_exam_created_v1.go +++ b/api_event_callback_v2_hire_eco_exam_created_v1.go @@ -52,15 +52,3 @@ type EventV2HireEcoExamCreatedV1CandidateInfoMobile struct { Code string `json:"code,omitempty"` // 电话国家区号, 遵循国际统一标准, 可参考 [国际长途电话区号表](https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E9%95%BF%E9%80%94%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E8%A1%A8/12803495) Number string `json:"number,omitempty"` // 手机号码 } - -// EventV2HireEcoExamCreatedV1Resp ... -type EventV2HireEcoExamCreatedV1Resp struct { -} - -// eventV2HireEcoExamCreatedV1Resp ... -type eventV2HireEcoExamCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEcoExamCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go b/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go index 32421a51..b69566a7 100644 --- a/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go +++ b/api_event_callback_v2_hire_ehr_import_task_for_internship_offer_imported_v1.go @@ -59,15 +59,3 @@ type EventV2HireEHRImportTaskForInternshipOfferImportedV1OperatorUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp ... -type EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp struct { -} - -// eventV2HireEHRImportTaskForInternshipOfferImportedV1Resp ... -type eventV2HireEHRImportTaskForInternshipOfferImportedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEHRImportTaskForInternshipOfferImportedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_ehr_import_task_imported_v1.go b/api_event_callback_v2_hire_ehr_import_task_imported_v1.go index eb888922..31847a55 100644 --- a/api_event_callback_v2_hire_ehr_import_task_imported_v1.go +++ b/api_event_callback_v2_hire_ehr_import_task_imported_v1.go @@ -57,15 +57,3 @@ type EventV2HireEHRImportTaskImportedV1OperatorUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2HireEHRImportTaskImportedV1Resp ... -type EventV2HireEHRImportTaskImportedV1Resp struct { -} - -// eventV2HireEHRImportTaskImportedV1Resp ... -type eventV2HireEHRImportTaskImportedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireEHRImportTaskImportedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_offer_status_changed_v1.go b/api_event_callback_v2_hire_offer_status_changed_v1.go index 7f6d8a02..80993a87 100644 --- a/api_event_callback_v2_hire_offer_status_changed_v1.go +++ b/api_event_callback_v2_hire_offer_status_changed_v1.go @@ -39,15 +39,3 @@ type EventV2HireOfferStatusChangedV1Handler func(ctx context.Context, cli *Lark, type EventV2HireOfferStatusChangedV1 struct { OfferID string `json:"offer_id,omitempty"` // 发生状态变更的 OfferID, 可通过[获取 Offer 详情](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer/get)接口获取 Offer 详情 } - -// EventV2HireOfferStatusChangedV1Resp ... -type EventV2HireOfferStatusChangedV1Resp struct { -} - -// eventV2HireOfferStatusChangedV1Resp ... -type eventV2HireOfferStatusChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireOfferStatusChangedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_hire_referral_account_assets_update_v1.go b/api_event_callback_v2_hire_referral_account_assets_update_v1.go index 1281aa9a..da5789a9 100644 --- a/api_event_callback_v2_hire_referral_account_assets_update_v1.go +++ b/api_event_callback_v2_hire_referral_account_assets_update_v1.go @@ -59,15 +59,3 @@ type EventV2HireReferralAccountAssetsUpdateV1AssetsConfirmedBonusCashBonu struct CurrencyType string `json:"currency_type,omitempty"` // 币种, 详情可查看: [枚举常量介绍](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/enum)中「币种(currency)枚举定义」 Amount float64 `json:"amount,omitempty"` // 数额, 保留到小数点后两位 } - -// EventV2HireReferralAccountAssetsUpdateV1Resp ... -type EventV2HireReferralAccountAssetsUpdateV1Resp struct { -} - -// eventV2HireReferralAccountAssetsUpdateV1Resp ... -type eventV2HireReferralAccountAssetsUpdateV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2HireReferralAccountAssetsUpdateV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_disbanded_v1.go b/api_event_callback_v2_im_chat_disbanded_v1.go index 6357c62a..63302df3 100644 --- a/api_event_callback_v2_im_chat_disbanded_v1.go +++ b/api_event_callback_v2_im_chat_disbanded_v1.go @@ -62,15 +62,3 @@ type EventV2IMChatDisbandedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2IMChatDisbandedV1Resp ... -type EventV2IMChatDisbandedV1Resp struct { -} - -// eventV2IMChatDisbandedV1Resp ... -type eventV2IMChatDisbandedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatDisbandedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_member_bot_added_v1.go b/api_event_callback_v2_im_chat_member_bot_added_v1.go index b1f2c681..65ea0619 100644 --- a/api_event_callback_v2_im_chat_member_bot_added_v1.go +++ b/api_event_callback_v2_im_chat_member_bot_added_v1.go @@ -62,15 +62,3 @@ type EventV2IMChatMemberBotAddedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2IMChatMemberBotAddedV1Resp ... -type EventV2IMChatMemberBotAddedV1Resp struct { -} - -// eventV2IMChatMemberBotAddedV1Resp ... -type eventV2IMChatMemberBotAddedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatMemberBotAddedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_member_bot_deleted_v1.go b/api_event_callback_v2_im_chat_member_bot_deleted_v1.go index 84f895fa..aa2a47ea 100644 --- a/api_event_callback_v2_im_chat_member_bot_deleted_v1.go +++ b/api_event_callback_v2_im_chat_member_bot_deleted_v1.go @@ -59,15 +59,3 @@ type EventV2IMChatMemberBotDeletedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2IMChatMemberBotDeletedV1Resp ... -type EventV2IMChatMemberBotDeletedV1Resp struct { -} - -// eventV2IMChatMemberBotDeletedV1Resp ... -type eventV2IMChatMemberBotDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatMemberBotDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_member_user_added_v1.go b/api_event_callback_v2_im_chat_member_user_added_v1.go index 81bbe1db..d41e921e 100644 --- a/api_event_callback_v2_im_chat_member_user_added_v1.go +++ b/api_event_callback_v2_im_chat_member_user_added_v1.go @@ -61,10 +61,6 @@ type EventV2IMChatMemberUserAddedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2IMChatMemberUserAddedV1Resp ... -type EventV2IMChatMemberUserAddedV1Resp struct { -} - // EventV2IMChatMemberUserAddedV1User ... type EventV2IMChatMemberUserAddedV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -78,11 +74,3 @@ type EventV2IMChatMemberUserAddedV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMChatMemberUserAddedV1Resp ... -type eventV2IMChatMemberUserAddedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatMemberUserAddedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_member_user_deleted_v1.go b/api_event_callback_v2_im_chat_member_user_deleted_v1.go index 487c38e1..efc69547 100644 --- a/api_event_callback_v2_im_chat_member_user_deleted_v1.go +++ b/api_event_callback_v2_im_chat_member_user_deleted_v1.go @@ -61,10 +61,6 @@ type EventV2IMChatMemberUserDeletedV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2IMChatMemberUserDeletedV1Resp ... -type EventV2IMChatMemberUserDeletedV1Resp struct { -} - // EventV2IMChatMemberUserDeletedV1User ... type EventV2IMChatMemberUserDeletedV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -78,11 +74,3 @@ type EventV2IMChatMemberUserDeletedV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMChatMemberUserDeletedV1Resp ... -type eventV2IMChatMemberUserDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatMemberUserDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go b/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go index bd55acb1..418644b8 100644 --- a/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go +++ b/api_event_callback_v2_im_chat_member_user_withdrawn_v1.go @@ -62,10 +62,6 @@ type EventV2IMChatMemberUserWithdrawnV1OperatorID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2IMChatMemberUserWithdrawnV1Resp ... -type EventV2IMChatMemberUserWithdrawnV1Resp struct { -} - // EventV2IMChatMemberUserWithdrawnV1User ... type EventV2IMChatMemberUserWithdrawnV1User struct { Name string `json:"name,omitempty"` // 用户名字 @@ -79,11 +75,3 @@ type EventV2IMChatMemberUserWithdrawnV1UserUserID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMChatMemberUserWithdrawnV1Resp ... -type eventV2IMChatMemberUserWithdrawnV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatMemberUserWithdrawnV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_chat_updated_v1.go b/api_event_callback_v2_im_chat_updated_v1.go index fcc56e7a..7915a47b 100644 --- a/api_event_callback_v2_im_chat_updated_v1.go +++ b/api_event_callback_v2_im_chat_updated_v1.go @@ -172,15 +172,3 @@ type EventV2IMChatUpdatedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2IMChatUpdatedV1Resp ... -type EventV2IMChatUpdatedV1Resp struct { -} - -// eventV2IMChatUpdatedV1Resp ... -type eventV2IMChatUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMChatUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_message_reaction_created_v1.go b/api_event_callback_v2_im_message_reaction_created_v1.go index cadfcaf4..6cb9b941 100644 --- a/api_event_callback_v2_im_message_reaction_created_v1.go +++ b/api_event_callback_v2_im_message_reaction_created_v1.go @@ -55,21 +55,9 @@ type EventV2IMMessageReactionCreatedV1ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` // emoji 类型。emoji_type 值对应的表情可参见[表情文案说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。 } -// EventV2IMMessageReactionCreatedV1Resp ... -type EventV2IMMessageReactionCreatedV1Resp struct { -} - // EventV2IMMessageReactionCreatedV1UserID ... type EventV2IMMessageReactionCreatedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMMessageReactionCreatedV1Resp ... -type eventV2IMMessageReactionCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMMessageReactionCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_message_reaction_deleted_v1.go b/api_event_callback_v2_im_message_reaction_deleted_v1.go index 5433e7c0..00a0b0f7 100644 --- a/api_event_callback_v2_im_message_reaction_deleted_v1.go +++ b/api_event_callback_v2_im_message_reaction_deleted_v1.go @@ -55,21 +55,9 @@ type EventV2IMMessageReactionDeletedV1ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` // emoji 类型。emoji_type 值对应的表情可参见[表情文案说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。 } -// EventV2IMMessageReactionDeletedV1Resp ... -type EventV2IMMessageReactionDeletedV1Resp struct { -} - // EventV2IMMessageReactionDeletedV1UserID ... type EventV2IMMessageReactionDeletedV1UserID struct { UnionID string `json:"union_id,omitempty"` // 用户的 union id UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMMessageReactionDeletedV1Resp ... -type eventV2IMMessageReactionDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMMessageReactionDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_message_read_v1.go b/api_event_callback_v2_im_message_read_v1.go index 1e3a27d0..4abc27a9 100644 --- a/api_event_callback_v2_im_message_read_v1.go +++ b/api_event_callback_v2_im_message_read_v1.go @@ -55,15 +55,3 @@ type EventV2IMMessageReadV1ReaderReaderID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2IMMessageReadV1Resp ... -type EventV2IMMessageReadV1Resp struct { -} - -// eventV2IMMessageReadV1Resp ... -type eventV2IMMessageReadV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMMessageReadV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_message_recalled_v1.go b/api_event_callback_v2_im_message_recalled_v1.go index 6c59417d..b6b032f4 100644 --- a/api_event_callback_v2_im_message_recalled_v1.go +++ b/api_event_callback_v2_im_message_recalled_v1.go @@ -45,15 +45,3 @@ type EventV2IMMessageRecalledV1 struct { RecallTime string `json:"recall_time,omitempty"` // 撤回的时间, 毫秒级时间戳。 RecallType string `json:"recall_type,omitempty"` // 撤回类型可选值有: 消息发送者撤回群主撤回群管理员撤回企业管理员撤回 } - -// EventV2IMMessageRecalledV1Resp ... -type EventV2IMMessageRecalledV1Resp struct { -} - -// eventV2IMMessageRecalledV1Resp ... -type eventV2IMMessageRecalledV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMMessageRecalledV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_im_message_receive_v1.go b/api_event_callback_v2_im_message_receive_v1.go index 94ccaaf9..e9e5e9bd 100644 --- a/api_event_callback_v2_im_message_receive_v1.go +++ b/api_event_callback_v2_im_message_receive_v1.go @@ -82,10 +82,6 @@ type EventV2IMMessageReceiveV1MessageMentionID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2IMMessageReceiveV1Resp ... -type EventV2IMMessageReceiveV1Resp struct { -} - // EventV2IMMessageReceiveV1Sender ... type EventV2IMMessageReceiveV1Sender struct { SenderID *EventV2IMMessageReceiveV1SenderSenderID `json:"sender_id,omitempty"` // 用户 ID。调用[获取单个用户信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/get)接口, 可通过 ID 获取用户信息。 @@ -99,11 +95,3 @@ type EventV2IMMessageReceiveV1SenderSenderID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2IMMessageReceiveV1Resp ... -type eventV2IMMessageReceiveV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2IMMessageReceiveV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_meeting_room_meeting_room_created_v1.go b/api_event_callback_v2_meeting_room_meeting_room_created_v1.go index c8bae99a..006113b9 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_created_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_created_v1.go @@ -39,15 +39,3 @@ type EventV2MeetingRoomMeetingRoomCreatedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称 RoomID string `json:"room_id,omitempty"` // 会议室 ID } - -// EventV2MeetingRoomMeetingRoomCreatedV1Resp ... -type EventV2MeetingRoomMeetingRoomCreatedV1Resp struct { -} - -// eventV2MeetingRoomMeetingRoomCreatedV1Resp ... -type eventV2MeetingRoomMeetingRoomCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2MeetingRoomMeetingRoomCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go b/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go index c9c962f7..3389ea93 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_deleted_v1.go @@ -39,15 +39,3 @@ type EventV2MeetingRoomMeetingRoomDeletedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称 RoomID string `json:"room_id,omitempty"` // 会议室 ID } - -// EventV2MeetingRoomMeetingRoomDeletedV1Resp ... -type EventV2MeetingRoomMeetingRoomDeletedV1Resp struct { -} - -// eventV2MeetingRoomMeetingRoomDeletedV1Resp ... -type eventV2MeetingRoomMeetingRoomDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2MeetingRoomMeetingRoomDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go b/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go index a79a3034..a64fee66 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_status_changed_v1.go @@ -40,15 +40,3 @@ type EventV2MeetingRoomMeetingRoomStatusChangedV1 struct { RoomName string `json:"room_name,omitempty"` // 会议室名称。 RoomID string `json:"room_id,omitempty"` // 会议室 ID。 } - -// EventV2MeetingRoomMeetingRoomStatusChangedV1Resp ... -type EventV2MeetingRoomMeetingRoomStatusChangedV1Resp struct { -} - -// eventV2MeetingRoomMeetingRoomStatusChangedV1Resp ... -type eventV2MeetingRoomMeetingRoomStatusChangedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2MeetingRoomMeetingRoomStatusChangedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go b/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go index 22898d01..4fe54984 100644 --- a/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go +++ b/api_event_callback_v2_meeting_room_meeting_room_updated_v1.go @@ -39,15 +39,3 @@ type EventV2MeetingRoomMeetingRoomUpdatedV1 struct { RoomName string `json:"room_name,omitempty"` // Meeting room name RoomID string `json:"room_id,omitempty"` // Meeting room ID } - -// EventV2MeetingRoomMeetingRoomUpdatedV1Resp ... -type EventV2MeetingRoomMeetingRoomUpdatedV1Resp struct { -} - -// eventV2MeetingRoomMeetingRoomUpdatedV1Resp ... -type eventV2MeetingRoomMeetingRoomUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2MeetingRoomMeetingRoomUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_task_task_comment_updated_v1.go b/api_event_callback_v2_task_task_comment_updated_v1.go index 39f308e0..45a2e740 100644 --- a/api_event_callback_v2_task_task_comment_updated_v1.go +++ b/api_event_callback_v2_task_task_comment_updated_v1.go @@ -43,15 +43,3 @@ type EventV2TaskTaskCommentUpdatedV1 struct { ParentID string `json:"parent_id,omitempty"` // 任务评论父ID ObjType int64 `json:"obj_type,omitempty"` // 通知类型(1: 创建评论, 2: 回复评论, 3: 更新评论, 4: 删除评论) } - -// EventV2TaskTaskCommentUpdatedV1Resp ... -type EventV2TaskTaskCommentUpdatedV1Resp struct { -} - -// eventV2TaskTaskCommentUpdatedV1Resp ... -type eventV2TaskTaskCommentUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2TaskTaskCommentUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_task_task_update_tenant_v1.go b/api_event_callback_v2_task_task_update_tenant_v1.go index 94b7cf6e..8aa5bdc0 100644 --- a/api_event_callback_v2_task_task_update_tenant_v1.go +++ b/api_event_callback_v2_task_task_update_tenant_v1.go @@ -40,10 +40,6 @@ type EventV2TaskTaskUpdateTenantV1 struct { EventType string `json:"event_type,omitempty"` // 事件类型, 可选值: "create", "delete", "update" } -// EventV2TaskTaskUpdateTenantV1Resp ... -type EventV2TaskTaskUpdateTenantV1Resp struct { -} - // EventV2TaskTaskUpdateTenantV1UserIDList ... type EventV2TaskTaskUpdateTenantV1UserIDList struct { UserIDList []*EventV2TaskTaskUpdateTenantV1UserIDListUserID `json:"user_id_list,omitempty"` // 用户 ID 列表 @@ -55,11 +51,3 @@ type EventV2TaskTaskUpdateTenantV1UserIDListUserID struct { UserID string `json:"user_id,omitempty"` // 忽略此字段 OpenID string `json:"open_id,omitempty"` // 用户的 open_id } - -// eventV2TaskTaskUpdateTenantV1Resp ... -type eventV2TaskTaskUpdateTenantV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2TaskTaskUpdateTenantV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_task_task_updated_v1.go b/api_event_callback_v2_task_task_updated_v1.go index f9e3e34a..d2f1a60b 100644 --- a/api_event_callback_v2_task_task_updated_v1.go +++ b/api_event_callback_v2_task_task_updated_v1.go @@ -42,15 +42,3 @@ type EventV2TaskTaskUpdatedV1 struct { TaskID string `json:"task_id,omitempty"` // 任务ID ObjType int64 `json:"obj_type,omitempty"` // 通知类型(1: 任务详情发生变化, 2: 任务协作者发生变化, 3: 任务关注者发生变化, 4: 任务提醒时间发生变化, 5: 任务完成, 6: 任务取消完成, 7: 任务删除) } - -// EventV2TaskTaskUpdatedV1Resp ... -type EventV2TaskTaskUpdatedV1Resp struct { -} - -// eventV2TaskTaskUpdatedV1Resp ... -type eventV2TaskTaskUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2TaskTaskUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_url_preview_get.go b/api_event_callback_v2_url_preview_get.go index 856319c1..3120e2aa 100644 --- a/api_event_callback_v2_url_preview_get.go +++ b/api_event_callback_v2_url_preview_get.go @@ -201,15 +201,3 @@ type EventV2URLPreviewGetHandler func(ctx context.Context, cli *Lark, schema str // EventV2URLPreviewGet ... type EventV2URLPreviewGet struct { } - -// EventV2URLPreviewGetResp ... -type EventV2URLPreviewGetResp struct { -} - -// eventV2URLPreviewGetResp ... -type eventV2URLPreviewGetResp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2URLPreviewGetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go b/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go index cda47b30..937a83ea 100644 --- a/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_all_meeting_ended_v1.go @@ -92,15 +92,3 @@ type EventV2VCMeetingAllMeetingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingAllMeetingEndedV1Resp ... -type EventV2VCMeetingAllMeetingEndedV1Resp struct { -} - -// eventV2VCMeetingAllMeetingEndedV1Resp ... -type eventV2VCMeetingAllMeetingEndedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingAllMeetingEndedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go b/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go index 60996cd2..85bb732b 100644 --- a/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go +++ b/api_event_callback_v2_vc_meeting_all_meeting_started_v1.go @@ -116,15 +116,3 @@ type EventV2VCMeetingAllMeetingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingAllMeetingStartedV1Resp ... -type EventV2VCMeetingAllMeetingStartedV1Resp struct { -} - -// eventV2VCMeetingAllMeetingStartedV1Resp ... -type eventV2VCMeetingAllMeetingStartedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingAllMeetingStartedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_join_meeting_v1.go b/api_event_callback_v2_vc_meeting_join_meeting_v1.go index 87baa55b..91fe4e61 100644 --- a/api_event_callback_v2_vc_meeting_join_meeting_v1.go +++ b/api_event_callback_v2_vc_meeting_join_meeting_v1.go @@ -90,15 +90,3 @@ type EventV2VCMeetingJoinMeetingV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingJoinMeetingV1Resp ... -type EventV2VCMeetingJoinMeetingV1Resp struct { -} - -// eventV2VCMeetingJoinMeetingV1Resp ... -type eventV2VCMeetingJoinMeetingV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingJoinMeetingV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_leave_meeting_v1.go b/api_event_callback_v2_vc_meeting_leave_meeting_v1.go index 8e9a84f0..9b924c33 100644 --- a/api_event_callback_v2_vc_meeting_leave_meeting_v1.go +++ b/api_event_callback_v2_vc_meeting_leave_meeting_v1.go @@ -91,15 +91,3 @@ type EventV2VCMeetingLeaveMeetingV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingLeaveMeetingV1Resp ... -type EventV2VCMeetingLeaveMeetingV1Resp struct { -} - -// eventV2VCMeetingLeaveMeetingV1Resp ... -type eventV2VCMeetingLeaveMeetingV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingLeaveMeetingV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_meeting_ended_v1.go b/api_event_callback_v2_vc_meeting_meeting_ended_v1.go index 48e35a7c..8ec79065 100644 --- a/api_event_callback_v2_vc_meeting_meeting_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_meeting_ended_v1.go @@ -92,15 +92,3 @@ type EventV2VCMeetingMeetingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingMeetingEndedV1Resp ... -type EventV2VCMeetingMeetingEndedV1Resp struct { -} - -// eventV2VCMeetingMeetingEndedV1Resp ... -type eventV2VCMeetingMeetingEndedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingMeetingEndedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_meeting_started_v1.go b/api_event_callback_v2_vc_meeting_meeting_started_v1.go index 73e30ac2..2394da2b 100644 --- a/api_event_callback_v2_vc_meeting_meeting_started_v1.go +++ b/api_event_callback_v2_vc_meeting_meeting_started_v1.go @@ -92,15 +92,3 @@ type EventV2VCMeetingMeetingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingMeetingStartedV1Resp ... -type EventV2VCMeetingMeetingStartedV1Resp struct { -} - -// eventV2VCMeetingMeetingStartedV1Resp ... -type eventV2VCMeetingMeetingStartedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingMeetingStartedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_recording_ended_v1.go b/api_event_callback_v2_vc_meeting_recording_ended_v1.go index 8c50be88..2ac49447 100644 --- a/api_event_callback_v2_vc_meeting_recording_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_ended_v1.go @@ -90,15 +90,3 @@ type EventV2VCMeetingRecordingEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingRecordingEndedV1Resp ... -type EventV2VCMeetingRecordingEndedV1Resp struct { -} - -// eventV2VCMeetingRecordingEndedV1Resp ... -type eventV2VCMeetingRecordingEndedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingRecordingEndedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_recording_ready_v1.go b/api_event_callback_v2_vc_meeting_recording_ready_v1.go index b2db4f43..a4a48c4c 100644 --- a/api_event_callback_v2_vc_meeting_recording_ready_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_ready_v1.go @@ -60,15 +60,3 @@ type EventV2VCMeetingRecordingReadyV1MeetingOwnerID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingRecordingReadyV1Resp ... -type EventV2VCMeetingRecordingReadyV1Resp struct { -} - -// eventV2VCMeetingRecordingReadyV1Resp ... -type eventV2VCMeetingRecordingReadyV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingRecordingReadyV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_recording_started_v1.go b/api_event_callback_v2_vc_meeting_recording_started_v1.go index bba4aa46..03b31db6 100644 --- a/api_event_callback_v2_vc_meeting_recording_started_v1.go +++ b/api_event_callback_v2_vc_meeting_recording_started_v1.go @@ -90,15 +90,3 @@ type EventV2VCMeetingRecordingStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingRecordingStartedV1Resp ... -type EventV2VCMeetingRecordingStartedV1Resp struct { -} - -// eventV2VCMeetingRecordingStartedV1Resp ... -type eventV2VCMeetingRecordingStartedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingRecordingStartedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_share_ended_v1.go b/api_event_callback_v2_vc_meeting_share_ended_v1.go index 6462d120..8847228b 100644 --- a/api_event_callback_v2_vc_meeting_share_ended_v1.go +++ b/api_event_callback_v2_vc_meeting_share_ended_v1.go @@ -90,15 +90,3 @@ type EventV2VCMeetingShareEndedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingShareEndedV1Resp ... -type EventV2VCMeetingShareEndedV1Resp struct { -} - -// eventV2VCMeetingShareEndedV1Resp ... -type eventV2VCMeetingShareEndedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingShareEndedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_meeting_share_started_v1.go b/api_event_callback_v2_vc_meeting_share_started_v1.go index c425bef6..41e175f5 100644 --- a/api_event_callback_v2_vc_meeting_share_started_v1.go +++ b/api_event_callback_v2_vc_meeting_share_started_v1.go @@ -90,15 +90,3 @@ type EventV2VCMeetingShareStartedV1OperatorID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id字段权限要求: 获取用户 user ID OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// EventV2VCMeetingShareStartedV1Resp ... -type EventV2VCMeetingShareStartedV1Resp struct { -} - -// eventV2VCMeetingShareStartedV1Resp ... -type eventV2VCMeetingShareStartedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCMeetingShareStartedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_reserve_config_updated_v1.go b/api_event_callback_v2_vc_reserve_config_updated_v1.go index 3c17b944..33f70817 100644 --- a/api_event_callback_v2_vc_reserve_config_updated_v1.go +++ b/api_event_callback_v2_vc_reserve_config_updated_v1.go @@ -85,10 +85,6 @@ type EventV2VCReserveConfigUpdatedV1ReserveScopeConfigAllowUserUserID struct { OpenID string `json:"open_id,omitempty"` // 用户的 open id } -// EventV2VCReserveConfigUpdatedV1Resp ... -type EventV2VCReserveConfigUpdatedV1Resp struct { -} - // EventV2VCReserveConfigUpdatedV1TimeConfig ... type EventV2VCReserveConfigUpdatedV1TimeConfig struct { TimeSwitch int64 `json:"time_switch,omitempty"` // 预定时间开关: 0 代表关闭, 1 代表开启 取值范围: `0` ~ `1` @@ -98,11 +94,3 @@ type EventV2VCReserveConfigUpdatedV1TimeConfig struct { EndTime string `json:"end_time,omitempty"` // 每日可预定时间范围结束时间(单位: 秒, 取值范围[0, 86400]) 说明: 1. 不填写时, 默认更新为 86400, 此时填写的 start_time 不得大于等于 86370 。 2. 当 start_time 与 end_time 均填写时, end_time 至少要超过 start_time 30。 3. 如果填写的值不是 60 的倍数, 则自动会更新为离其最近的 60 整数倍的值。 MaxDuration int64 `json:"max_duration,omitempty"` // 单次会议室可预定时长上限(单位: 小时, 取值范围[1, 99]) 说明: 不填写时默认更新为 2 } - -// eventV2VCReserveConfigUpdatedV1Resp ... -type eventV2VCReserveConfigUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCReserveConfigUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_created_v1.go b/api_event_callback_v2_vc_room_created_v1.go index 0a65ea22..5e54cbfb 100644 --- a/api_event_callback_v2_vc_room_created_v1.go +++ b/api_event_callback_v2_vc_room_created_v1.go @@ -37,10 +37,6 @@ type EventV2VCRoomCreatedV1 struct { Room *EventV2VCRoomCreatedV1Room `json:"room,omitempty"` // 会议室信息 } -// EventV2VCRoomCreatedV1Resp ... -type EventV2VCRoomCreatedV1Resp struct { -} - // EventV2VCRoomCreatedV1Room ... type EventV2VCRoomCreatedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID @@ -78,11 +74,3 @@ type EventV2VCRoomCreatedV1RoomRoomStatusContactID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2VCRoomCreatedV1Resp ... -type eventV2VCRoomCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_deleted_v1.go b/api_event_callback_v2_vc_room_deleted_v1.go index b2e92bfa..8b749ac4 100644 --- a/api_event_callback_v2_vc_room_deleted_v1.go +++ b/api_event_callback_v2_vc_room_deleted_v1.go @@ -37,19 +37,7 @@ type EventV2VCRoomDeletedV1 struct { Room *EventV2VCRoomDeletedV1Room `json:"room,omitempty"` // 会议室信息 } -// EventV2VCRoomDeletedV1Resp ... -type EventV2VCRoomDeletedV1Resp struct { -} - // EventV2VCRoomDeletedV1Room ... type EventV2VCRoomDeletedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID } - -// eventV2VCRoomDeletedV1Resp ... -type eventV2VCRoomDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_level_created_v1.go b/api_event_callback_v2_vc_room_level_created_v1.go index 00fda349..2ddb1191 100644 --- a/api_event_callback_v2_vc_room_level_created_v1.go +++ b/api_event_callback_v2_vc_room_level_created_v1.go @@ -37,10 +37,6 @@ type EventV2VCRoomLevelCreatedV1 struct { RoomLevel *EventV2VCRoomLevelCreatedV1RoomLevel `json:"room_level,omitempty"` // 层级信息 } -// EventV2VCRoomLevelCreatedV1Resp ... -type EventV2VCRoomLevelCreatedV1Resp struct { -} - // EventV2VCRoomLevelCreatedV1RoomLevel ... type EventV2VCRoomLevelCreatedV1RoomLevel struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID @@ -50,11 +46,3 @@ type EventV2VCRoomLevelCreatedV1RoomLevel struct { HasChild bool `json:"has_child,omitempty"` // 是否有子层级 CustomGroupID string `json:"custom_group_id,omitempty"` // 自定义层级ID } - -// eventV2VCRoomLevelCreatedV1Resp ... -type eventV2VCRoomLevelCreatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomLevelCreatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_level_deleted_v1.go b/api_event_callback_v2_vc_room_level_deleted_v1.go index 9eeeccea..ac49edae 100644 --- a/api_event_callback_v2_vc_room_level_deleted_v1.go +++ b/api_event_callback_v2_vc_room_level_deleted_v1.go @@ -37,15 +37,3 @@ type EventV2VCRoomLevelDeletedV1 struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID 长度范围: `1` ~ `100` 字符 DeleteChild bool `json:"delete_child,omitempty"` // 是否删除所有子层级 } - -// EventV2VCRoomLevelDeletedV1Resp ... -type EventV2VCRoomLevelDeletedV1Resp struct { -} - -// eventV2VCRoomLevelDeletedV1Resp ... -type eventV2VCRoomLevelDeletedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomLevelDeletedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_level_updated_v1.go b/api_event_callback_v2_vc_room_level_updated_v1.go index 5a417c00..4bc48e5f 100644 --- a/api_event_callback_v2_vc_room_level_updated_v1.go +++ b/api_event_callback_v2_vc_room_level_updated_v1.go @@ -37,10 +37,6 @@ type EventV2VCRoomLevelUpdatedV1 struct { RoomLevel *EventV2VCRoomLevelUpdatedV1RoomLevel `json:"room_level,omitempty"` // 层级信息 } -// EventV2VCRoomLevelUpdatedV1Resp ... -type EventV2VCRoomLevelUpdatedV1Resp struct { -} - // EventV2VCRoomLevelUpdatedV1RoomLevel ... type EventV2VCRoomLevelUpdatedV1RoomLevel struct { RoomLevelID string `json:"room_level_id,omitempty"` // 层级ID @@ -50,11 +46,3 @@ type EventV2VCRoomLevelUpdatedV1RoomLevel struct { HasChild bool `json:"has_child,omitempty"` // 是否有子层级 CustomGroupID string `json:"custom_group_id,omitempty"` // 自定义层级ID } - -// eventV2VCRoomLevelUpdatedV1Resp ... -type eventV2VCRoomLevelUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomLevelUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} diff --git a/api_event_callback_v2_vc_room_updated_v1.go b/api_event_callback_v2_vc_room_updated_v1.go index ab7c605a..f0aca3f7 100644 --- a/api_event_callback_v2_vc_room_updated_v1.go +++ b/api_event_callback_v2_vc_room_updated_v1.go @@ -37,10 +37,6 @@ type EventV2VCRoomUpdatedV1 struct { Room *EventV2VCRoomUpdatedV1Room `json:"room,omitempty"` // 会议室详情 } -// EventV2VCRoomUpdatedV1Resp ... -type EventV2VCRoomUpdatedV1Resp struct { -} - // EventV2VCRoomUpdatedV1Room ... type EventV2VCRoomUpdatedV1Room struct { RoomID string `json:"room_id,omitempty"` // 会议室ID @@ -78,11 +74,3 @@ type EventV2VCRoomUpdatedV1RoomRoomStatusContactID struct { UserID string `json:"user_id,omitempty"` // 用户的 user id OpenID string `json:"open_id,omitempty"` // 用户的 open id } - -// eventV2VCRoomUpdatedV1Resp ... -type eventV2VCRoomUpdatedV1Resp struct { - Code int64 `json:"code,omitempty"` - Msg string `json:"msg,omitempty"` - Data *EventV2VCRoomUpdatedV1Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` -} From 0396b1fa1b81d6e463c1c68c841dd3dd85996a5d Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:23:56 +0800 Subject: [PATCH 08/15] fix(ci): add missing event callback constants --- api_event_callback_module.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api_event_callback_module.go b/api_event_callback_module.go index 3d5a882e..ba6402b5 100644 --- a/api_event_callback_module.go +++ b/api_event_callback_module.go @@ -56,6 +56,8 @@ const ( EventTypeV1ShiftApproval EventType = "shift_approval" EventTypeV1WorkApproval EventType = "work_approval" EventTypeV1LeaveApprovalV2 EventType = "leave_approval" + EventTypeV1LeaveApprovalRevert EventType = "leave_approval_revert" + EventTypeV1TripApproval EventType = "APPROVED" EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" EventTypeV2DriveFileBitableRecordChangedV1 EventType = "drive.file.bitable_record_changed_v1" From 39e202851598ce80969bc66ad1dcba5ca2720f01 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:34:36 +0800 Subject: [PATCH 09/15] fix(scope): route ccmdocs/docs to drive and vcmeeting/meetingroom to vc --- api_ccm_docs_default_docs_api_meta.go | 4 ++-- api_docs_content_get.go | 4 ++-- api_meeting_room_customization.go | 4 ++-- api_vc_meeting_default_building_batch_get.go | 4 ++-- api_vc_meeting_default_building_batch_get_id.go | 4 ++-- api_vc_meeting_default_building_create.go | 4 ++-- api_vc_meeting_default_building_delete.go | 4 ++-- api_vc_meeting_default_building_list.go | 4 ++-- api_vc_meeting_default_building_update.go | 4 ++-- api_vc_meeting_default_country_list.go | 4 ++-- api_vc_meeting_default_district_list.go | 4 ++-- api_vc_meeting_default_room_batch_get.go | 4 ++-- api_vc_meeting_default_room_batch_get_id.go | 4 ++-- api_vc_meeting_default_room_create.go | 4 ++-- api_vc_meeting_default_room_delete.go | 4 ++-- api_vc_meeting_default_room_list.go | 4 ++-- api_vc_meeting_default_room_update.go | 4 ++-- impl.go | 16 ++++++++-------- 18 files changed, 42 insertions(+), 42 deletions(-) diff --git a/api_ccm_docs_default_docs_api_meta.go b/api_ccm_docs_default_docs_api_meta.go index e7ec3643..d3608521 100644 --- a/api_ccm_docs_default_docs_api_meta.go +++ b/api_ccm_docs_default_docs_api_meta.go @@ -29,14 +29,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/docs/drive/file/obtain-metadata // // Deprecated -func (r *CcmDocsService) CreateCcmDocsDefaultDocsApiMeta(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) { +func (r *DriveService) CreateCcmDocsDefaultDocsApiMeta(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) { if r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CcmDocs#CreateCcmDocsDefaultDocsApiMeta mock enable") return r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta(ctx, request, options...) } req := &RawRequestReq{ - Scope: "CcmDocs", + Scope: "Drive", API: "CreateCcmDocsDefaultDocsApiMeta", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/suite/docs-api/meta", diff --git a/api_docs_content_get.go b/api_docs_content_get.go index 384dc3db..e8c2e350 100644 --- a/api_docs_content_get.go +++ b/api_docs_content_get.go @@ -25,14 +25,14 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/docs-v1/content/get // new doc: https://open.feishu.cn/document/docs/docs-v1/get -func (r *DocsService) GetDocsContent(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) { +func (r *DriveService) GetDocsContent(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) { if r.cli.mock.mockDocsGetDocsContent != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Docs#GetDocsContent mock enable") return r.cli.mock.mockDocsGetDocsContent(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Docs", + Scope: "Drive", API: "GetDocsContent", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/docs/v1/content", diff --git a/api_meeting_room_customization.go b/api_meeting_room_customization.go index 22d494cf..d7a9d972 100644 --- a/api_meeting_room_customization.go +++ b/api_meeting_room_customization.go @@ -24,14 +24,14 @@ import ( // GetMeetingRoomCustomization 该接口用于获取会议室个性化配置。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uIjM5UjLyITO14iMykTN/query-meeting-room-customization-setting -func (r *MeetingRoomService) GetMeetingRoomCustomization(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) { +func (r *VCService) GetMeetingRoomCustomization(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) { if r.cli.mock.mockMeetingRoomGetMeetingRoomCustomization != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] MeetingRoom#GetMeetingRoomCustomization mock enable") return r.cli.mock.mockMeetingRoomGetMeetingRoomCustomization(ctx, request, options...) } req := &RawRequestReq{ - Scope: "MeetingRoom", + Scope: "VC", API: "GetMeetingRoomCustomization", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/customization", diff --git a/api_vc_meeting_default_building_batch_get.go b/api_vc_meeting_default_building_batch_get.go index bf58a2b1..a52ffd97 100644 --- a/api_vc_meeting_default_building_batch_get.go +++ b/api_vc_meeting_default_building_batch_get.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/query-building-details // // Deprecated -func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) { +func (r *VCService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGet mock enable") return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "GetVCMeetingDefaultBuildingBatchGet", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/batch_get", diff --git a/api_vc_meeting_default_building_batch_get_id.go b/api_vc_meeting_default_building_batch_get_id.go index 6e120152..94c5bd8a 100644 --- a/api_vc_meeting_default_building_batch_get_id.go +++ b/api_vc_meeting_default_building_batch_get_id.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-building-id // // Deprecated -func (r *VCMeetingService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) { +func (r *VCService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGetID mock enable") return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "GetVCMeetingDefaultBuildingBatchGetID", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/batch_get_id", diff --git a/api_vc_meeting_default_building_create.go b/api_vc_meeting_default_building_create.go index d1acaa3b..59c0a5b8 100644 --- a/api_vc_meeting_default_building_create.go +++ b/api_vc_meeting_default_building_create.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-building // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultBuildingCreate(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultBuildingCreate(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingCreate mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultBuildingCreate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/create", diff --git a/api_vc_meeting_default_building_delete.go b/api_vc_meeting_default_building_delete.go index a3478869..f87a24a0 100644 --- a/api_vc_meeting_default_building_delete.go +++ b/api_vc_meeting_default_building_delete.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-building // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultBuildingDelete(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultBuildingDelete(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingDelete mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultBuildingDelete", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/delete", diff --git a/api_vc_meeting_default_building_list.go b/api_vc_meeting_default_building_list.go index 2c035d65..4048e5cd 100644 --- a/api_vc_meeting_default_building_list.go +++ b/api_vc_meeting_default_building_list.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-building-list // // Deprecated -func (r *VCMeetingService) ListVCMeetingDefaultBuilding(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) { +func (r *VCService) ListVCMeetingDefaultBuilding(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultBuilding mock enable") return r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "ListVCMeetingDefaultBuilding", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/list", diff --git a/api_vc_meeting_default_building_update.go b/api_vc_meeting_default_building_update.go index cb5ba627..85def24e 100644 --- a/api_vc_meeting_default_building_update.go +++ b/api_vc_meeting_default_building_update.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-building // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultBuildingUpdate(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultBuildingUpdate(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingUpdate mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultBuildingUpdate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/update", diff --git a/api_vc_meeting_default_country_list.go b/api_vc_meeting_default_country_list.go index edb301aa..488ae960 100644 --- a/api_vc_meeting_default_country_list.go +++ b/api_vc_meeting_default_country_list.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-country/region-list // // Deprecated -func (r *VCMeetingService) ListVCMeetingDefaultCountry(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) { +func (r *VCService) ListVCMeetingDefaultCountry(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultCountry mock enable") return r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "ListVCMeetingDefaultCountry", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/country/list", diff --git a/api_vc_meeting_default_district_list.go b/api_vc_meeting_default_district_list.go index a3e8f507..6f6d0c1a 100644 --- a/api_vc_meeting_default_district_list.go +++ b/api_vc_meeting_default_district_list.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-city-list // // Deprecated -func (r *VCMeetingService) ListVCMeetingDefaultDistrict(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) { +func (r *VCService) ListVCMeetingDefaultDistrict(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultDistrict mock enable") return r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "ListVCMeetingDefaultDistrict", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/district/list", diff --git a/api_vc_meeting_default_room_batch_get.go b/api_vc_meeting_default_room_batch_get.go index 5e986882..4ea141cd 100644 --- a/api_vc_meeting_default_room_batch_get.go +++ b/api_vc_meeting_default_room_batch_get.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/query-meeting-room-details // // Deprecated -func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) { +func (r *VCService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGet mock enable") return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "GetVCMeetingDefaultRoomBatchGet", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/batch_get", diff --git a/api_vc_meeting_default_room_batch_get_id.go b/api_vc_meeting_default_room_batch_get_id.go index b6ce29b4..c6a9b04d 100644 --- a/api_vc_meeting_default_room_batch_get_id.go +++ b/api_vc_meeting_default_room_batch_get_id.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-meeting-room-id // // Deprecated -func (r *VCMeetingService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) { +func (r *VCService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) { if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGetID mock enable") return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "GetVCMeetingDefaultRoomBatchGetID", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/batch_get_id", diff --git a/api_vc_meeting_default_room_create.go b/api_vc_meeting_default_room_create.go index 164585a7..18654b35 100644 --- a/api_vc_meeting_default_room_create.go +++ b/api_vc_meeting_default_room_create.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-meeting-room // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultRoomCreate(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultRoomCreate(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomCreate mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultRoomCreate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/create", diff --git a/api_vc_meeting_default_room_delete.go b/api_vc_meeting_default_room_delete.go index 4737cef5..26e5ec82 100644 --- a/api_vc_meeting_default_room_delete.go +++ b/api_vc_meeting_default_room_delete.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-meeting-room // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultRoomDelete(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultRoomDelete(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomDelete mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultRoomDelete", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/delete", diff --git a/api_vc_meeting_default_room_list.go b/api_vc_meeting_default_room_list.go index fe573493..dad87d37 100644 --- a/api_vc_meeting_default_room_list.go +++ b/api_vc_meeting_default_room_list.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/obtain-meeting-room-list // // Deprecated -func (r *VCMeetingService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) { +func (r *VCService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) { if r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultRoom mock enable") return r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "ListVCMeetingDefaultRoom", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/list", diff --git a/api_vc_meeting_default_room_update.go b/api_vc_meeting_default_room_update.go index e8f9a9cc..d18a56be 100644 --- a/api_vc_meeting_default_room_update.go +++ b/api_vc_meeting_default_room_update.go @@ -27,14 +27,14 @@ import ( // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-meeting-room // // Deprecated -func (r *VCMeetingService) CreateVCMeetingDefaultRoomUpdate(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) { +func (r *VCService) CreateVCMeetingDefaultRoomUpdate(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) { if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomUpdate mock enable") return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate(ctx, request, options...) } req := &RawRequestReq{ - Scope: "VCMeeting", + Scope: "VC", API: "CreateVCMeetingDefaultRoomUpdate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/update", diff --git a/impl.go b/impl.go index 13d3552b..befedd3d 100644 --- a/impl.go +++ b/impl.go @@ -70,13 +70,13 @@ type Lark struct { Bot *BotService Calendar *CalendarService Cardkit *CardkitService - CcmDocs *CcmDocsService + CcmDocs *DriveService Chat *ChatService Compensation *CompensationService Contact *ContactService CoreHR *CoreHRService Directory *DirectoryService - Docs *DocsService + Docs *DriveService Drive *DriveService EHR *EHRService Event *EventService @@ -89,7 +89,7 @@ type Lark struct { Lingo *LingoService MDM *MDMService Mail *MailService - MeetingRoom *MeetingRoomService + MeetingRoom *VCService Message *MessageService Mina *MinaService Minutes *MinutesService @@ -107,7 +107,7 @@ type Lark struct { Tenant *TenantService TrustParty *TrustPartyService VC *VCService - VCMeeting *VCMeetingService + VCMeeting *VCService Verification *VerificationService } @@ -144,14 +144,14 @@ func (r *Lark) init() { r.Bot = &BotService{cli: r} r.Calendar = &CalendarService{cli: r} r.Cardkit = &CardkitService{cli: r} - r.CcmDocs = &CcmDocsService{cli: r} r.Chat = &ChatService{cli: r} r.Compensation = &CompensationService{cli: r} r.Contact = &ContactService{cli: r} r.CoreHR = &CoreHRService{cli: r} r.Directory = &DirectoryService{cli: r} - r.Docs = &DocsService{cli: r} r.Drive = &DriveService{cli: r} + r.CcmDocs = r.Drive + r.Docs = r.Drive r.EHR = &EHRService{cli: r} r.Event = &EventService{cli: r} r.EventCallback = &EventCallbackService{cli: r} @@ -163,7 +163,6 @@ func (r *Lark) init() { r.Lingo = &LingoService{cli: r} r.MDM = &MDMService{cli: r} r.Mail = &MailService{cli: r} - r.MeetingRoom = &MeetingRoomService{cli: r} r.Message = &MessageService{cli: r} r.Mina = &MinaService{cli: r} r.Minutes = &MinutesService{cli: r} @@ -181,7 +180,8 @@ func (r *Lark) init() { r.Tenant = &TenantService{cli: r} r.TrustParty = &TrustPartyService{cli: r} r.VC = &VCService{cli: r} - r.VCMeeting = &VCMeetingService{cli: r} + r.MeetingRoom = r.VC + r.VCMeeting = r.VC r.Verification = &VerificationService{cli: r} } From 51c702f81da887c25b26bdd2d496f706780a3ffc Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:37:47 +0800 Subject: [PATCH 10/15] refactor(impl): drop ccmdocs/docs/meetingroom/vcmeeting alias fields --- impl.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/impl.go b/impl.go index befedd3d..524272b1 100644 --- a/impl.go +++ b/impl.go @@ -70,13 +70,11 @@ type Lark struct { Bot *BotService Calendar *CalendarService Cardkit *CardkitService - CcmDocs *DriveService Chat *ChatService Compensation *CompensationService Contact *ContactService CoreHR *CoreHRService Directory *DirectoryService - Docs *DriveService Drive *DriveService EHR *EHRService Event *EventService @@ -89,7 +87,6 @@ type Lark struct { Lingo *LingoService MDM *MDMService Mail *MailService - MeetingRoom *VCService Message *MessageService Mina *MinaService Minutes *MinutesService @@ -107,7 +104,6 @@ type Lark struct { Tenant *TenantService TrustParty *TrustPartyService VC *VCService - VCMeeting *VCService Verification *VerificationService } @@ -150,8 +146,6 @@ func (r *Lark) init() { r.CoreHR = &CoreHRService{cli: r} r.Directory = &DirectoryService{cli: r} r.Drive = &DriveService{cli: r} - r.CcmDocs = r.Drive - r.Docs = r.Drive r.EHR = &EHRService{cli: r} r.Event = &EventService{cli: r} r.EventCallback = &EventCallbackService{cli: r} @@ -180,8 +174,6 @@ func (r *Lark) init() { r.Tenant = &TenantService{cli: r} r.TrustParty = &TrustPartyService{cli: r} r.VC = &VCService{cli: r} - r.MeetingRoom = r.VC - r.VCMeeting = r.VC r.Verification = &VerificationService{cli: r} } From e6b46314d0ae29939a661bc631adf1e3e201e2fe Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:40:19 +0800 Subject: [PATCH 11/15] fix(scope): route board apis through drive service --- api_board_whiteboard_download_as_image.go | 6 +++--- api_board_whiteboard_node_create.go | 6 +++--- api_board_whiteboard_node_create_plantuml.go | 6 +++--- api_board_whiteboard_theme.go | 6 +++--- api_board_whiteboard_update_theme.go | 6 +++--- impl.go | 3 --- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/api_board_whiteboard_download_as_image.go b/api_board_whiteboard_download_as_image.go index 0cabcaf1..8c6babef 100644 --- a/api_board_whiteboard_download_as_image.go +++ b/api_board_whiteboard_download_as_image.go @@ -26,14 +26,14 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/download_as_image // new doc: https://open.feishu.cn/document/docs/board-v1/whiteboard/download_as_image -func (r *BoardService) DownloadBoardWhiteboardAsImage(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) { +func (r *DriveService) DownloadBoardWhiteboardAsImage(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) { if r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Board#DownloadBoardWhiteboardAsImage mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#DownloadBoardWhiteboardAsImage mock enable") return r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Board", + Scope: "Drive", API: "DownloadBoardWhiteboardAsImage", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/download_as_image", diff --git a/api_board_whiteboard_node_create.go b/api_board_whiteboard_node_create.go index 0c5e846a..50924cb6 100644 --- a/api_board_whiteboard_node_create.go +++ b/api_board_whiteboard_node_create.go @@ -24,14 +24,14 @@ import ( // CreateBoardWhiteboardNode 创建画板节点, 支持批量创建、创建含父子关系的节点等。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create -func (r *BoardService) CreateBoardWhiteboardNode(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) { +func (r *DriveService) CreateBoardWhiteboardNode(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) { if r.cli.mock.mockBoardCreateBoardWhiteboardNode != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Board#CreateBoardWhiteboardNode mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBoardWhiteboardNode mock enable") return r.cli.mock.mockBoardCreateBoardWhiteboardNode(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Board", + Scope: "Drive", API: "CreateBoardWhiteboardNode", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/nodes", diff --git a/api_board_whiteboard_node_create_plantuml.go b/api_board_whiteboard_node_create_plantuml.go index 56acad60..47e5839d 100644 --- a/api_board_whiteboard_node_create_plantuml.go +++ b/api_board_whiteboard_node_create_plantuml.go @@ -24,14 +24,14 @@ import ( // CreateBoardWhiteboardNodePlantuml 用户可以将PlantUml/Mermaid图表导入画板进行协同编辑 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create_plantuml -func (r *BoardService) CreateBoardWhiteboardNodePlantuml(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) { +func (r *DriveService) CreateBoardWhiteboardNodePlantuml(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) { if r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Board#CreateBoardWhiteboardNodePlantuml mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBoardWhiteboardNodePlantuml mock enable") return r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Board", + Scope: "Drive", API: "CreateBoardWhiteboardNodePlantuml", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/nodes/plantuml", diff --git a/api_board_whiteboard_theme.go b/api_board_whiteboard_theme.go index a35780f8..91642f0b 100644 --- a/api_board_whiteboard_theme.go +++ b/api_board_whiteboard_theme.go @@ -24,14 +24,14 @@ import ( // GetBoardWhiteboardTheme 获取画板主题, 不同主题下有不同的默认配色, 具体主题介绍可以参考[主题简介](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/theme-introduction) 。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/theme -func (r *BoardService) GetBoardWhiteboardTheme(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) { +func (r *DriveService) GetBoardWhiteboardTheme(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) { if r.cli.mock.mockBoardGetBoardWhiteboardTheme != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Board#GetBoardWhiteboardTheme mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetBoardWhiteboardTheme mock enable") return r.cli.mock.mockBoardGetBoardWhiteboardTheme(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Board", + Scope: "Drive", API: "GetBoardWhiteboardTheme", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/theme", diff --git a/api_board_whiteboard_update_theme.go b/api_board_whiteboard_update_theme.go index f7f45172..ea78affb 100644 --- a/api_board_whiteboard_update_theme.go +++ b/api_board_whiteboard_update_theme.go @@ -24,14 +24,14 @@ import ( // UpdateBoardWhiteboardTheme 更新画板主题, 具体主题介绍可以参考[主题简介](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/theme-introduction) 。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/update_theme -func (r *BoardService) UpdateBoardWhiteboardTheme(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) { +func (r *DriveService) UpdateBoardWhiteboardTheme(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) { if r.cli.mock.mockBoardUpdateBoardWhiteboardTheme != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Board#UpdateBoardWhiteboardTheme mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateBoardWhiteboardTheme mock enable") return r.cli.mock.mockBoardUpdateBoardWhiteboardTheme(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Board", + Scope: "Drive", API: "UpdateBoardWhiteboardTheme", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/board/v1/whiteboards/:whiteboard_id/update_theme", diff --git a/impl.go b/impl.go index 524272b1..c4d7bbda 100644 --- a/impl.go +++ b/impl.go @@ -66,7 +66,6 @@ type Lark struct { Baike *BaikeService Base *BaseService Bitable *BitableService - Board *BoardService Bot *BotService Calendar *CalendarService Cardkit *CardkitService @@ -136,7 +135,6 @@ func (r *Lark) init() { r.Baike = &BaikeService{cli: r} r.Base = &BaseService{cli: r} r.Bitable = &BitableService{cli: r} - r.Board = &BoardService{cli: r} r.Bot = &BotService{cli: r} r.Calendar = &CalendarService{cli: r} r.Cardkit = &CardkitService{cli: r} @@ -224,7 +222,6 @@ type AuthenService struct{ cli *Lark } type BaikeService struct{ cli *Lark } type BaseService struct{ cli *Lark } type BitableService struct{ cli *Lark } -type BoardService struct{ cli *Lark } type BotService struct{ cli *Lark } type CalendarService struct{ cli *Lark } type CardkitService struct{ cli *Lark } From b628fb08e3f549b28fb6c4a06a4a43c6e6a2df17 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:43:44 +0800 Subject: [PATCH 12/15] fix(scope): route base apis through drive service --- api_base_app_role_create.go | 6 +++--- api_base_app_role_list.go | 6 +++--- api_base_app_role_update.go | 6 +++--- impl.go | 3 --- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/api_base_app_role_create.go b/api_base_app_role_create.go index 4a984113..01113c99 100644 --- a/api_base_app_role_create.go +++ b/api_base_app_role_create.go @@ -29,14 +29,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/create // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/create-2 -func (r *BaseService) CreateBaseAppRole(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) { +func (r *DriveService) CreateBaseAppRole(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) { if r.cli.mock.mockBaseCreateBaseAppRole != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Base#CreateBaseAppRole mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBaseAppRole mock enable") return r.cli.mock.mockBaseCreateBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Base", + Scope: "Drive", API: "CreateBaseAppRole", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles", diff --git a/api_base_app_role_list.go b/api_base_app_role_list.go index 87279a57..65d85f76 100644 --- a/api_base_app_role_list.go +++ b/api_base_app_role_list.go @@ -29,14 +29,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/list // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/list-2 -func (r *BaseService) ListBaseAppRole(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) { +func (r *DriveService) ListBaseAppRole(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) { if r.cli.mock.mockBaseListBaseAppRole != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Base#ListBaseAppRole mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#ListBaseAppRole mock enable") return r.cli.mock.mockBaseListBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Base", + Scope: "Drive", API: "ListBaseAppRole", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles", diff --git a/api_base_app_role_update.go b/api_base_app_role_update.go index aefa078c..298f0ba6 100644 --- a/api_base_app_role_update.go +++ b/api_base_app_role_update.go @@ -30,14 +30,14 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/update // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/update-2 -func (r *BaseService) UpdateBaseAppRole(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) { +func (r *DriveService) UpdateBaseAppRole(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) { if r.cli.mock.mockBaseUpdateBaseAppRole != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Base#UpdateBaseAppRole mock enable") + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateBaseAppRole mock enable") return r.cli.mock.mockBaseUpdateBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ - Scope: "Base", + Scope: "Drive", API: "UpdateBaseAppRole", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/base/v2/apps/:app_token/roles/:role_id", diff --git a/impl.go b/impl.go index c4d7bbda..719fc1a2 100644 --- a/impl.go +++ b/impl.go @@ -64,7 +64,6 @@ type Lark struct { Auth *AuthService Authen *AuthenService Baike *BaikeService - Base *BaseService Bitable *BitableService Bot *BotService Calendar *CalendarService @@ -133,7 +132,6 @@ func (r *Lark) init() { r.Auth = &AuthService{cli: r} r.Authen = &AuthenService{cli: r} r.Baike = &BaikeService{cli: r} - r.Base = &BaseService{cli: r} r.Bitable = &BitableService{cli: r} r.Bot = &BotService{cli: r} r.Calendar = &CalendarService{cli: r} @@ -220,7 +218,6 @@ type AttendanceService struct{ cli *Lark } type AuthService struct{ cli *Lark } type AuthenService struct{ cli *Lark } type BaikeService struct{ cli *Lark } -type BaseService struct{ cli *Lark } type BitableService struct{ cli *Lark } type BotService struct{ cli *Lark } type CalendarService struct{ cli *Lark } From d94c5fba784a21291c2875a124e950e816fe371b Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:46:02 +0800 Subject: [PATCH 13/15] fix(ci): update scope sample tests to drive/vc clients --- test/base_sample_test.go | 6 +++--- test/board_sample_test.go | 6 +++--- test/ccmdocs_sample_test.go | 6 +++--- test/docs_sample_test.go | 6 +++--- test/meetingroom_sample_test.go | 6 +++--- test/vcmeeting_sample_test.go | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test/base_sample_test.go b/test/base_sample_test.go index a6dafef7..cec61b8e 100644 --- a/test/base_sample_test.go +++ b/test/base_sample_test.go @@ -34,7 +34,7 @@ func Test_Base_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Base + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_Base_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Base + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -89,7 +89,7 @@ func Test_Base_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Base + moduleCli := cli.Drive cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) diff --git a/test/board_sample_test.go b/test/board_sample_test.go index eed1c813..d7e804f7 100644 --- a/test/board_sample_test.go +++ b/test/board_sample_test.go @@ -34,7 +34,7 @@ func Test_Board_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Board + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_Board_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Board + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -113,7 +113,7 @@ func Test_Board_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Board + moduleCli := cli.Drive cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) diff --git a/test/ccmdocs_sample_test.go b/test/ccmdocs_sample_test.go index 486c619a..16da6dbb 100644 --- a/test/ccmdocs_sample_test.go +++ b/test/ccmdocs_sample_test.go @@ -34,7 +34,7 @@ func Test_CcmDocs_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.CcmDocs + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_CcmDocs_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.CcmDocs + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -65,7 +65,7 @@ func Test_CcmDocs_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.CcmDocs + moduleCli := cli.Drive cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) diff --git a/test/docs_sample_test.go b/test/docs_sample_test.go index b0f9f962..fdb43584 100644 --- a/test/docs_sample_test.go +++ b/test/docs_sample_test.go @@ -34,7 +34,7 @@ func Test_Docs_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Docs + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_Docs_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Docs + moduleCli := cli.Drive t.Run("", func(t *testing.T) { @@ -65,7 +65,7 @@ func Test_Docs_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.Docs + moduleCli := cli.Drive cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) diff --git a/test/meetingroom_sample_test.go b/test/meetingroom_sample_test.go index 46bdfd7a..aa280a5c 100644 --- a/test/meetingroom_sample_test.go +++ b/test/meetingroom_sample_test.go @@ -34,7 +34,7 @@ func Test_MeetingRoom_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.MeetingRoom + moduleCli := cli.VC t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_MeetingRoom_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.MeetingRoom + moduleCli := cli.VC t.Run("", func(t *testing.T) { @@ -65,7 +65,7 @@ func Test_MeetingRoom_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.MeetingRoom + moduleCli := cli.VC cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) diff --git a/test/vcmeeting_sample_test.go b/test/vcmeeting_sample_test.go index 5c9d6b8d..2ab1d65d 100644 --- a/test/vcmeeting_sample_test.go +++ b/test/vcmeeting_sample_test.go @@ -34,7 +34,7 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { cli := AppAllPermission.Ins() cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.VCMeeting + moduleCli := cli.VC t.Run("", func(t *testing.T) { @@ -47,7 +47,7 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("request mock failed", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.VCMeeting + moduleCli := cli.VC t.Run("", func(t *testing.T) { @@ -221,7 +221,7 @@ func Test_VCMeeting_Sample_Failed(t *testing.T) { t.Run("response is failed (mock http)", func(t *testing.T) { cli := AppAllPermission.Ins() - moduleCli := cli.VCMeeting + moduleCli := cli.VC cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { return nil, fmt.Errorf("mock-http-failed") }) From 64a03257ebd5a18fa4188f4abcd705baf38c0f85 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 18:57:04 +0800 Subject: [PATCH 14/15] chore(sdk): regenerate cancel APIs with Cancel* naming --- README.md | 4 +- README_CN.md | 4 +- api_aily_aily_session_run_cancel.go | 74 +- api_apaas_approval_instance_cancel.go | 46 +- impl.go | 4 - mock.go | 1974 ++++++++++++------------- test/aily_sample_test.go | 8 +- test/apaas_sample_test.go | 8 +- 8 files changed, 1059 insertions(+), 1063 deletions(-) diff --git a/README.md b/README.md index 85a81e2a..57889ff2 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ API Count: 1622, Event Count: 153 - BatchCreateAPaaSApplicationRoleMemberAuthorization - BatchRemoveAPaaSApplicationRoleMemberAuthorization - GetAPaaSApplicationRoleMember - - CreateAPaaSApprovalInstanceCancel + - CancelAPaaSApprovalInstance - AddAPaaSApprovalTaskAssignee - AgreeAPaaSApprovalTask - RejectAPaaSApprovalTask @@ -152,7 +152,7 @@ API Count: 1622, Event Count: 153 - CreateAilySessionAilyMessage - GetAilySessionAilyMessage - ListAilySessionAilyMessage - - CreateAilySessionRunCancel + - CancelAilySessionRun - CreateAilySessionRun - GetAilySessionRun - ListAilySessionRun diff --git a/README_CN.md b/README_CN.md index cbfefe56..3de25bd9 100644 --- a/README_CN.md +++ b/README_CN.md @@ -110,7 +110,7 @@ API 总数: 1622, 事件总数: 153 - BatchCreateAPaaSApplicationRoleMemberAuthorization - BatchRemoveAPaaSApplicationRoleMemberAuthorization - GetAPaaSApplicationRoleMember - - CreateAPaaSApprovalInstanceCancel + - CancelAPaaSApprovalInstance - AddAPaaSApprovalTaskAssignee - AgreeAPaaSApprovalTask - RejectAPaaSApprovalTask @@ -152,7 +152,7 @@ API 总数: 1622, 事件总数: 153 - CreateAilySessionAilyMessage - GetAilySessionAilyMessage - ListAilySessionAilyMessage - - CreateAilySessionRunCancel + - CancelAilySessionRun - CreateAilySessionRun - GetAilySessionRun - ListAilySessionRun diff --git a/api_aily_aily_session_run_cancel.go b/api_aily_aily_session_run_cancel.go index 1db8445b..cbd9ba8b 100644 --- a/api_aily_aily_session_run_cancel.go +++ b/api_aily_aily_session_run_cancel.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateAilySessionRunCancel 该 API 用于中止某个飞书 Aily 的一次运行。 +// CancelAilySessionRun 该 API 用于中止某个飞书 Aily 的一次运行。 // // 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。 // ## 实体概念说明 @@ -31,15 +31,15 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-run/cancel // new doc: https://open.feishu.cn/document/aily-v1/aily_session-run/cancel -func (r *AilyService) CreateAilySessionRunCancel(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) { - if r.cli.mock.mockAilyCreateAilySessionRunCancel != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySessionRunCancel mock enable") - return r.cli.mock.mockAilyCreateAilySessionRunCancel(ctx, request, options...) +func (r *AilyService) CancelAilySessionRun(ctx context.Context, request *CancelAilySessionRunReq, options ...MethodOptionFunc) (*CancelAilySessionRunResp, *Response, error) { + if r.cli.mock.mockAilyCancelAilySessionRun != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CancelAilySessionRun mock enable") + return r.cli.mock.mockAilyCancelAilySessionRun(ctx, request, options...) } req := &RawRequestReq{ Scope: "Aily", - API: "CreateAilySessionRunCancel", + API: "CancelAilySessionRun", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/runs/:run_id/cancel", Body: request, @@ -47,56 +47,56 @@ func (r *AilyService) CreateAilySessionRunCancel(ctx context.Context, request *C NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(createAilySessionRunCancelResp) + resp := new(cancelAilySessionRunResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAilyCreateAilySessionRunCancel mock AilyCreateAilySessionRunCancel method -func (r *Mock) MockAilyCreateAilySessionRunCancel(f func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error)) { - r.mockAilyCreateAilySessionRunCancel = f +// MockAilyCancelAilySessionRun mock AilyCancelAilySessionRun method +func (r *Mock) MockAilyCancelAilySessionRun(f func(ctx context.Context, request *CancelAilySessionRunReq, options ...MethodOptionFunc) (*CancelAilySessionRunResp, *Response, error)) { + r.mockAilyCancelAilySessionRun = f } -// UnMockAilyCreateAilySessionRunCancel un-mock AilyCreateAilySessionRunCancel method -func (r *Mock) UnMockAilyCreateAilySessionRunCancel() { - r.mockAilyCreateAilySessionRunCancel = nil +// UnMockAilyCancelAilySessionRun un-mock AilyCancelAilySessionRun method +func (r *Mock) UnMockAilyCancelAilySessionRun() { + r.mockAilyCancelAilySessionRun = nil } -// CreateAilySessionRunCancelReq ... -type CreateAilySessionRunCancelReq struct { +// CancelAilySessionRunReq ... +type CancelAilySessionRunReq struct { AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}` RunID string `path:"run_id" json:"-"` // 运行的唯一 ID示例值: "run_4dfrxvctjqzzj" 长度范围: `5` ~ `32` 字符 } -// CreateAilySessionRunCancelResp ... -type CreateAilySessionRunCancelResp struct { - Run *CreateAilySessionRunCancelRespRun `json:"run,omitempty"` // 运行信息 +// CancelAilySessionRunResp ... +type CancelAilySessionRunResp struct { + Run *CancelAilySessionRunRespRun `json:"run,omitempty"` // 运行信息 } -// CreateAilySessionRunCancelRespRun ... -type CreateAilySessionRunCancelRespRun struct { - ID string `json:"id,omitempty"` // 运行 ID - CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 - AppID string `json:"app_id,omitempty"` // 应用 ID - SessionID string `json:"session_id,omitempty"` // 会话 ID - Status string `json:"status,omitempty"` // 运行状态;详见 [Run 状态机说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc#part-LGZrdJTUFo5c8XxSpYXcm3oknEd)> 如中止已在终态(如 `COMPLETED`)的 `Run`, 不会改变 `Run` 的状态 - StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 - EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 - Error *CreateAilySessionRunCancelRespRunError `json:"error,omitempty"` // 失败时的错误信息 - Metadata string `json:"metadata,omitempty"` // 其他透传信息 +// CancelAilySessionRunRespRun ... +type CancelAilySessionRunRespRun struct { + ID string `json:"id,omitempty"` // 运行 ID + CreatedAt string `json:"created_at,omitempty"` // 运行的创建时间, 毫秒时间戳 + AppID string `json:"app_id,omitempty"` // 应用 ID + SessionID string `json:"session_id,omitempty"` // 会话 ID + Status string `json:"status,omitempty"` // 运行状态;详见 [Run 状态机说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc#part-LGZrdJTUFo5c8XxSpYXcm3oknEd)> 如中止已在终态(如 `COMPLETED`)的 `Run`, 不会改变 `Run` 的状态 + StartedAt string `json:"started_at,omitempty"` // 开始时间, 毫秒时间戳 + EndedAt string `json:"ended_at,omitempty"` // 结束时间, 毫秒时间戳 + Error *CancelAilySessionRunRespRunError `json:"error,omitempty"` // 失败时的错误信息 + Metadata string `json:"metadata,omitempty"` // 其他透传信息 } -// CreateAilySessionRunCancelRespRunError ... -type CreateAilySessionRunCancelRespRunError struct { +// CancelAilySessionRunRespRunError ... +type CancelAilySessionRunRespRunError struct { Code string `json:"code,omitempty"` // 错误码 Message string `json:"message,omitempty"` // 错误信息 } -// createAilySessionRunCancelResp ... -type createAilySessionRunCancelResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAilySessionRunCancelResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// cancelAilySessionRunResp ... +type cancelAilySessionRunResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CancelAilySessionRunResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_approval_instance_cancel.go b/api_apaas_approval_instance_cancel.go index 3cc5849b..a14e3887 100644 --- a/api_apaas_approval_instance_cancel.go +++ b/api_apaas_approval_instance_cancel.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateAPaaSApprovalInstanceCancel 撤销一个人工任务(包括审批任务, 填写任务) +// CancelAPaaSApprovalInstance 撤销一个人工任务(包括审批任务, 填写任务) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/approval_instance/cancel // new doc: https://open.feishu.cn/document/apaas-v1/flow/user-task/cancel -func (r *APaaSService) CreateAPaaSApprovalInstanceCancel(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error) { - if r.cli.mock.mockAPaaSCreateAPaaSApprovalInstanceCancel != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApprovalInstanceCancel mock enable") - return r.cli.mock.mockAPaaSCreateAPaaSApprovalInstanceCancel(ctx, request, options...) +func (r *APaaSService) CancelAPaaSApprovalInstance(ctx context.Context, request *CancelAPaaSApprovalInstanceReq, options ...MethodOptionFunc) (*CancelAPaaSApprovalInstanceResp, *Response, error) { + if r.cli.mock.mockAPaaSCancelAPaaSApprovalInstance != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CancelAPaaSApprovalInstance mock enable") + return r.cli.mock.mockAPaaSCancelAPaaSApprovalInstance(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "CreateAPaaSApprovalInstanceCancel", + API: "CancelAPaaSApprovalInstance", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/approval_instances/:approval_instance_id/cancel", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createAPaaSApprovalInstanceCancelResp) + resp := new(cancelAPaaSApprovalInstanceResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSCreateAPaaSApprovalInstanceCancel mock APaaSCreateAPaaSApprovalInstanceCancel method -func (r *Mock) MockAPaaSCreateAPaaSApprovalInstanceCancel(f func(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error)) { - r.mockAPaaSCreateAPaaSApprovalInstanceCancel = f +// MockAPaaSCancelAPaaSApprovalInstance mock APaaSCancelAPaaSApprovalInstance method +func (r *Mock) MockAPaaSCancelAPaaSApprovalInstance(f func(ctx context.Context, request *CancelAPaaSApprovalInstanceReq, options ...MethodOptionFunc) (*CancelAPaaSApprovalInstanceResp, *Response, error)) { + r.mockAPaaSCancelAPaaSApprovalInstance = f } -// UnMockAPaaSCreateAPaaSApprovalInstanceCancel un-mock APaaSCreateAPaaSApprovalInstanceCancel method -func (r *Mock) UnMockAPaaSCreateAPaaSApprovalInstanceCancel() { - r.mockAPaaSCreateAPaaSApprovalInstanceCancel = nil +// UnMockAPaaSCancelAPaaSApprovalInstance un-mock APaaSCancelAPaaSApprovalInstance method +func (r *Mock) UnMockAPaaSCancelAPaaSApprovalInstance() { + r.mockAPaaSCancelAPaaSApprovalInstance = nil } -// CreateAPaaSApprovalInstanceCancelReq ... -type CreateAPaaSApprovalInstanceCancelReq struct { +// CancelAPaaSApprovalInstanceReq ... +type CancelAPaaSApprovalInstanceReq struct { ApprovalInstanceID string `path:"approval_instance_id" json:"-"` // 审批实例, 可以通过[查询人工任务](/uAjLw4CM/ukTMukTMukTM/apaas-v1/user_task/query)获取示例值: "1788173550023689" UserID string `json:"user_id,omitempty"` // 操作用户的kunlunUserID, 可通过Apaas用户管理页面获取示例值: "1234" Opinion string `json:"opinion,omitempty"` // 撤销原因示例值: "撤销了" } -// CreateAPaaSApprovalInstanceCancelResp ... -type CreateAPaaSApprovalInstanceCancelResp struct { +// CancelAPaaSApprovalInstanceResp ... +type CancelAPaaSApprovalInstanceResp struct { } -// createAPaaSApprovalInstanceCancelResp ... -type createAPaaSApprovalInstanceCancelResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAPaaSApprovalInstanceCancelResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// cancelAPaaSApprovalInstanceResp ... +type cancelAPaaSApprovalInstanceResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CancelAPaaSApprovalInstanceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/impl.go b/impl.go index 719fc1a2..95e030cc 100644 --- a/impl.go +++ b/impl.go @@ -222,13 +222,11 @@ type BitableService struct{ cli *Lark } type BotService struct{ cli *Lark } type CalendarService struct{ cli *Lark } type CardkitService struct{ cli *Lark } -type CcmDocsService struct{ cli *Lark } type ChatService struct{ cli *Lark } type CompensationService struct{ cli *Lark } type ContactService struct{ cli *Lark } type CoreHRService struct{ cli *Lark } type DirectoryService struct{ cli *Lark } -type DocsService struct{ cli *Lark } type DriveService struct{ cli *Lark } type EHRService struct{ cli *Lark } type EventService struct{ cli *Lark } @@ -241,7 +239,6 @@ type JssdkService struct{ cli *Lark } type LingoService struct{ cli *Lark } type MDMService struct{ cli *Lark } type MailService struct{ cli *Lark } -type MeetingRoomService struct{ cli *Lark } type MessageService struct{ cli *Lark } type MinaService struct{ cli *Lark } type MinutesService struct{ cli *Lark } @@ -259,5 +256,4 @@ type TaskV1Service struct{ cli *Lark } type TenantService struct{ cli *Lark } type TrustPartyService struct{ cli *Lark } type VCService struct{ cli *Lark } -type VCMeetingService struct{ cli *Lark } type VerificationService struct{ cli *Lark } diff --git a/mock.go b/mock.go index 8a3eda99..9d870a1e 100644 --- a/mock.go +++ b/mock.go @@ -26,45 +26,46 @@ type Mock struct { mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) - mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) + mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) + mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) - mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAPaaSGetAPaaSApplicationRoleMember func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) + mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs func(ctx context.Context, request *ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogDataChangeLogsResp, *Response, error) @@ -72,23 +73,22 @@ type Mock struct { mockAPaaSGetAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *GetAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*GetAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) - mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) + mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) + mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) + mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) - mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) - mockAPaaSGetAPaaSApplicationRoleMember func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) - mockAPaaSCreateAPaaSApprovalInstanceCancel func(ctx context.Context, request *CreateAPaaSApprovalInstanceCancelReq, options ...MethodOptionFunc) (*CreateAPaaSApprovalInstanceCancelResp, *Response, error) + mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) mockAPaaSAddAPaaSApprovalTaskAssignee func(ctx context.Context, request *AddAPaaSApprovalTaskAssigneeReq, options ...MethodOptionFunc) (*AddAPaaSApprovalTaskAssigneeResp, *Response, error) mockAPaaSAgreeAPaaSApprovalTask func(ctx context.Context, request *AgreeAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*AgreeAPaaSApprovalTaskResp, *Response, error) mockAPaaSRejectAPaaSApprovalTask func(ctx context.Context, request *RejectAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*RejectAPaaSApprovalTaskResp, *Response, error) @@ -103,328 +103,319 @@ type Mock struct { mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) - mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) + mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) + mockAPaaSCancelAPaaSApprovalInstance func(ctx context.Context, request *CancelAPaaSApprovalInstanceReq, options ...MethodOptionFunc) (*CancelAPaaSApprovalInstanceResp, *Response, error) mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) - mockAilyCreateAilySessionRunCancel func(ctx context.Context, request *CreateAilySessionRunCancelReq, options ...MethodOptionFunc) (*CreateAilySessionRunCancelResp, *Response, error) - mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) - mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) - mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) + mockAilyCancelAilySessionRun func(ctx context.Context, request *CancelAilySessionRunReq, options ...MethodOptionFunc) (*CancelAilySessionRunResp, *Response, error) + mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) + mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) + mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) - mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) + mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) - mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) - mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) - mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) - mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) - mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) + mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) + mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) + mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) + mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) - mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) - mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) - mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) - mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) + mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) - mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) - mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) - mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) - mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) + mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) - mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) - mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) - mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) - mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) - mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) - mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) - mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) - mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) - mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) - mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) + mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) + mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) - mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) - mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) - mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) + mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) - mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) - mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) - mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) + mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) + mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) @@ -435,354 +426,354 @@ type Mock struct { mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) - mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) + mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) - mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) - mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) - mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) + mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) + mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) - mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) + mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockCoreHRGetCoreHRApprovalGroups func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCoreHRApprover func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRAddCoreHRAuthorizationRoleAssign func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRRemoveCoreHRAuthorizationRoleAssign func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCoreHRAuthorizationRoleAssign func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoLanguage func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoTimeZone func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) + mockCoreHRGetCoreHrpByDepartment func(ctx context.Context, request *GetCoreHrpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrpByDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHrpByEmployee func(ctx context.Context, request *BatchGetCoreHrpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrpByEmployeeResp, *Response, error) + mockCoreHRGetCoreHrpList func(ctx context.Context, request *GetCoreHrpListReq, options ...MethodOptionFunc) (*GetCoreHrpListResp, *Response, error) + mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataIDConvert func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCoreHRCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRCreateCoreHRCompanyActive func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) + mockCoreHRQueryCoreHRCompanyMultiTimeline func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRCompanyRecentChange func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) + mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) + mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) + mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) + mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRBatchQueryCoreHRCostAllocation func(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error) + mockCoreHRCreateCoreHRCostAllocationVersion func(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRRemoveCoreHRCostAllocationVersion func(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostAllocationVersion func(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRQueryCoreHRCostCenterRecentChange func(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) - mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) + mockCoreHRCreateCoreHRCustomOrgActive func(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error) + mockCoreHRCreateCoreHRCustomOrg func(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error) + mockCoreHRDeleteCoreHRCustomOrg func(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error) + mockCoreHRQueryCoreHRCustomOrg func(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error) + mockCoreHRQueryCoreHRCustomOrgRecentChange func(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRCustomOrg func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) + mockCoreHRUpdateCoreHRCustomOrgRule func(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error) + mockCoreHRBatchQueryCoreHRDefaultCostCenter func(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRRemoveCoreHRDefaultCostCenterVersion func(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentOperationLogs func(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentRecentChange func(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) + mockCoreHRCreateCoreHRDepartmentTree func(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) - mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRGetCoreHRDraft func(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error) + mockCoreHRCreateCoreHREmployee func(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error) + mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) + mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) - mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) - mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRBatchQueryCoreHREmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCoreHREmployeesAdditionalJob func(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRDeleteCoreHREmployeesAdditionalJob func(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRUpdateCoreHREmployeesAdditionalJob func(ctx context.Context, request *UpdateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesAdditionalJobResp, *Response, error) + mockCoreHRCreateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *CreateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRDeleteCoreHREmployeesInternationalAssignment func(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRListCoreHREmployeesInternationalAssignment func(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error) + mockCoreHRUpdateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error) mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRSearchCoreHREnum func(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error) + mockCoreHRBatchGetCoreHRJob func(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJobChangeRevoke func(ctx context.Context, request *CreateCoreHRJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeRevokeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) - mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) + mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) - mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRQueryCoreHRJobFamilyMultiTimeline func(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRJobFamilyRecentChange func(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) + mockCoreHRCreateCoreHRJobGrade func(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error) + mockCoreHRDeleteCoreHRJobGrade func(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) + mockCoreHRQueryCoreHRJobGradeRecentChange func(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobGrade func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRQueryCoreHRJobLevelRecentChange func(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) + mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRQueryCoreHRJobMultiTimeline func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRJobRecentChange func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRLeaveCalendarByScope func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendar func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendarDate func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) + mockCoreHRCreateCoreHRLocationActive func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) + mockCoreHRCreateCoreHRLocationAddress func(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error) + mockCoreHRDeleteCoreHRLocationAddress func(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error) + mockCoreHRUpdateCoreHRLocationAddress func(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRQueryCoreHRLocationMultiTimeline func(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRLocationRecentChange func(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRLocation func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHROffboardingEdit func(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCoreHROffboardingRevoke func(ctx context.Context, request *CreateCoreHROffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingRevokeResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHROffboardingSubmitV2 func(ctx context.Context, request *CreateCoreHROffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCoreHROffboardingSubmitV2Resp, *Response, error) + mockCoreHRCreateCoreHRPathwayActive func(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error) + mockCoreHRBatchGetCoreHRPathway func(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error) + mockCoreHRCreateCoreHRPathway func(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error) + mockCoreHRDeleteCoreHRPathway func(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error) + mockCoreHRUpdateCoreHRPathway func(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRPositionActive func(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error) + mockCoreHRCreateCoreHRPosition func(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error) + mockCoreHRCreateCoreHRPositionDelPosition func(ctx context.Context, request *CreateCoreHRPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionDelPositionResp, *Response, error) + mockCoreHRQueryCoreHRPosition func(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error) + mockCoreHRQueryCoreHRPositionRecentChange func(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error) + mockCoreHRUpdateCoreHRPosition func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) + mockCoreHRCreateCoreHRPreHireComplete func(ctx context.Context, request *CreateCoreHRPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireCompleteResp, *Response, error) mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) - mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) - mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRQueryCoreHRPreHire func(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCoreHRPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireRestoreFlowInstanceResp, *Response, error) + mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCoreHRPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransformOnboardingTaskResp, *Response, error) + mockCoreHRCreateCoreHRPreHireTransitTask func(ctx context.Context, request *CreateCoreHRPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransitTaskResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRCreateCoreHRPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCoreHRPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireWithdrawOnboardingResp, *Response, error) mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) - mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRBatchGetCoreHrbpByEmployee func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) - mockCoreHRGetCoreHrbpByDepartment func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) - mockCoreHRGetCoreHrbpList func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) + mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) + mockCoreHRCreateCoreHRProbationSubmit func(ctx context.Context, request *CreateCoreHRProbationSubmitReq, options ...MethodOptionFunc) (*CreateCoreHRProbationSubmitResp, *Response, error) + mockCoreHRCreateCoreHRProbationWithdraw func(ctx context.Context, request *CreateCoreHRProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCoreHRProbationWithdrawResp, *Response, error) + mockCoreHRUpdateCoreHRProcessApprover func(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error) + mockCoreHRUpdateCoreHRProcessExtra func(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error) + mockCoreHRGetCoreHRProcessFlowVariableData func(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRCreateCoreHRProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCoreHRProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCoreHRProcessQueryFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCoreHRProcessRevoke func(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error) + mockCoreHRCreateCoreHRProcessStart func(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error) + mockCoreHRUpdateCoreHRProcessTransfer func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) + mockCoreHRUpdateCoreHRProcessWithdraw func(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error) + mockCoreHRCreateCoreHRReportDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCoreHRReportDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchsaveResp, *Response, error) mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) - mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) - mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) - mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRGetCorehrApprovalGroups func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockCoreHRListCorehrApprover func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoLanguage func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) - mockCoreHRSearchCorehrBasicInfoTimeZone func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) - mockCoreHRCreateCorehrCompanyActive func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) - mockCoreHRQueryCorehrCompanyMultiTimeline func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrCompanyRecentChange func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) - mockCoreHRBatchQueryCorehrCostAllocation func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) - mockCoreHRCreateCorehrCostAllocationVersion func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRRemoveCorehrCostAllocationVersion func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRUpdateCorehrCostAllocationVersion func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) - mockCoreHRQueryCorehrCostCenterRecentChange func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrCustomOrgActive func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) - mockCoreHRCreateCorehrCustomOrg func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) - mockCoreHRDeleteCorehrCustomOrg func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) - mockCoreHRUpdateCorehrCustomOrg func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) - mockCoreHRQueryCorehrCustomOrg func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) - mockCoreHRQueryCorehrCustomOrgRecentChange func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) - mockCoreHRUpdateCorehrCustomOrgRule func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) - mockCoreHRBatchQueryCorehrDefaultCostCenter func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) - mockCoreHRCreateCorehrDefaultCostCenterVersion func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRRemoveCorehrDefaultCostCenterVersion func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCorehrDefaultCostCenterVersion func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCorehrDepartment func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) - mockCoreHRUpdateCorehrDepartment func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRQueryCorehrDepartmentOperationLogs func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) - mockCoreHRQueryCorehrDepartmentRecentChange func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) - mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) - mockCoreHRCreateCorehrDepartmentTree func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) - mockCoreHRGetCorehrDraft func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) - mockCoreHRCreateCorehrEmployee func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) - mockCoreHRBatchQueryCorehrEmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCorehrEmployeesAdditionalJob func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRDeleteCorehrEmployeesAdditionalJob func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRUpdateCorehrEmployeesAdditionalJob func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) - mockCoreHRCreateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRDeleteCorehrEmployeesInternationalAssignment func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRListCorehrEmployeesInternationalAssignment func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRUpdateCorehrEmployeesInternationalAssignment func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRSearchCorehrEnum func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) - mockCoreHRBatchGetCorehrJob func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) - mockCoreHRQueryCorehrJobMultiTimeline func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrJobRecentChange func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrJobChange func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) - mockCoreHRCreateCorehrJobChangeRevoke func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) - mockCoreHRQueryCorehrJobFamilyMultiTimeline func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrJobFamilyRecentChange func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrJobGrade func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) - mockCoreHRDeleteCorehrJobGrade func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) - mockCoreHRUpdateCorehrJobGrade func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) - mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) - mockCoreHRQueryCorehrJobGradeRecentChange func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) - mockCoreHRQueryCorehrJobLevelRecentChange func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrLocationAddress func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) - mockCoreHRDeleteCorehrLocationAddress func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) - mockCoreHRUpdateCorehrLocationAddress func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) - mockCoreHRCreateCorehrLocationActive func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) - mockCoreHRUpdateCorehrLocation func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) - mockCoreHRQueryCorehrLocationMultiTimeline func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) - mockCoreHRQueryCorehrLocationRecentChange func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrOffboardingEdit func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) - mockCoreHRCreateCorehrOffboardingRevoke func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) - mockCoreHRCreateCorehrOffboardingSubmitV2 func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) - mockCoreHRCreateCorehrPathwayActive func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) - mockCoreHRBatchGetCorehrPathway func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) - mockCoreHRCreateCorehrPathway func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) - mockCoreHRDeleteCorehrPathway func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) - mockCoreHRUpdateCorehrPathway func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) - mockCoreHRCreateCorehrPositionActive func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) - mockCoreHRCreateCorehrPosition func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) - mockCoreHRCreateCorehrPositionDelPosition func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) - mockCoreHRUpdateCorehrPosition func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) - mockCoreHRQueryCorehrPosition func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) - mockCoreHRQueryCorehrPositionRecentChange func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) - mockCoreHRCreateCorehrPreHireComplete func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) - mockCoreHRDeleteCorehrPreHire func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) - mockCoreHRUpdateCorehrPreHire func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) - mockCoreHRQueryCorehrPreHire func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) - mockCoreHRCreateCorehrPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) - mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCorehrPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) - mockCoreHRCreateCorehrPreHireTransitTask func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) - mockCoreHRCreateCorehrPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) - mockCoreHRCreateCorehrProbationSubmit func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) - mockCoreHRCreateCorehrProbationWithdraw func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) - mockCoreHRUpdateCorehrProcessApprover func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) - mockCoreHRUpdateCorehrProcessExtra func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) - mockCoreHRGetCorehrProcessFormVariableData func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) - mockCoreHRCreateCorehrProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) - mockCoreHRUpdateCorehrProcessTransfer func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) - mockCoreHRGetCorehrProcessFlowVariableData func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) - mockCoreHRUpdateCorehrProcessRevoke func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) - mockCoreHRCreateCorehrProcessStart func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) - mockCoreHRUpdateCorehrProcessWithdraw func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) - mockCoreHRCreateCorehrReportDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCorehrReportDetailRowBatchsave func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) - mockCoreHRDownloadCorehrSignatureFile func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) - mockCoreHRListCorehrSignatureFile func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) - mockCoreHRListCorehrSignatureFileByBizID func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) - mockCoreHRQueryCorehrSignatureFile func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) - mockCoreHRCreateCorehrSignatureFileTerminate func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) - mockCoreHRListCorehrSignatureNodeByFileID func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) - mockCoreHRSearchCorehrSignatureTemplate func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) - mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) - mockCoreHRListCorehrWorkforcePlan func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) - mockCoreHRBatchQueryCorehrWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) - mockCoreHRBatchCorehrWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) - mockCoreHRAddCorehrAuthorizationRoleAssign func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRRemoveCorehrAuthorizationRoleAssign func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRUpdateCorehrAuthorizationRoleAssign func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) - mockCoreHRCreateCorehrCommonDataIDConvert func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) - mockCoreHRAddCorehrCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) - mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) - mockCoreHRGetCorehrLeaveCalendarByScope func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendar func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) - mockCoreHRCreateCorehrLeaveWorkCalendarDate func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) - mockCoreHRCreateCorehrPerson func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) - mockCoreHRUpdateCorehrPerson func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) + mockCoreHRDownloadCoreHRSignatureFile func(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error) + mockCoreHRListCoreHRSignatureFile func(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error) + mockCoreHRListCoreHRSignatureFileByBizID func(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error) + mockCoreHRQueryCoreHRSignatureFile func(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error) + mockCoreHRCreateCoreHRSignatureFileTerminate func(ctx context.Context, request *CreateCoreHRSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCoreHRSignatureFileTerminateResp, *Response, error) + mockCoreHRListCoreHRSignatureNodeByFileID func(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error) + mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) + mockCoreHRSearchCoreHRSignatureTemplate func(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) + mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) + mockCoreHRBatchQueryCoreHRWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) + mockCoreHRBatchCoreHRWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCoreHRWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchdeleteResp, *Response, error) + mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRListCoreHRWorkforcePlan func(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) @@ -793,321 +784,256 @@ type Mock struct { mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) - mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) + mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) - mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) - mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) + mockDriveCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) + mockDriveListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) + mockDriveUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) + mockDriveDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockDriveCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) + mockDriveCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockDriveGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) + mockDriveUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) + mockDriveCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) + mockDriveGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) + mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) + mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) - mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) + mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) - mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) - mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) - mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) - mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) - mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) - mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) - mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) - mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) - mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) - mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) - mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) + mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) + mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) + mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) @@ -1117,33 +1043,73 @@ type Mock struct { mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) + mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) + mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) - mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) - mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) + mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) @@ -1151,53 +1117,87 @@ type Mock struct { mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) - mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) - mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) + mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) - mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) + mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) - mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) - mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) - mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) + mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) + mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) - mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) - mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) - mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) @@ -1213,82 +1213,82 @@ type Mock struct { mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) - mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) + mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) + mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) - mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) - mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) - mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) - mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) + mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) - mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) - mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) - mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) - mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) + mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) + mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) + mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) + mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) - mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) - mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) - mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) - mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) - mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) + mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) + mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) + mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) - mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) @@ -1310,76 +1310,75 @@ type Mock struct { mockMailListMailUserMailboxRule func(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) - mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) + mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) + mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) + mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) + mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) - mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) - mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) + mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) - mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) + mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) + mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) + mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) - mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) - mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) - mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) - mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) - mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) - mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) - mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) - mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) - mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) + mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) mockPayrollListPayrollAcctItem func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) @@ -1391,13 +1390,9 @@ type Mock struct { mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) - mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) + mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) @@ -1410,37 +1405,40 @@ type Mock struct { mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) + mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) - mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) + mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) - mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) - mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) @@ -1448,97 +1446,98 @@ type Mock struct { mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) - mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) - mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) + mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) - mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) - mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) + mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) + mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) + mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) + mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) + mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) + mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) + mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) - mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) + mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) - mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) - mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) - mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) - mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) - mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) - mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) - mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) - mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) + mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) - mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) - mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) - mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) - mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) - mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) - mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) + mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) - mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) + mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) + mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) + mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) + mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) + mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) + mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) @@ -1547,76 +1546,77 @@ type Mock struct { mockTrustPartyGetTrustPartyCollaborationTenant func(ctx context.Context, request *GetTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) + mockVCGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) + mockVCCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) + mockVCCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) + mockVCListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) + mockVCListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) + mockVCGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) + mockVCGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) + mockVCCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) + mockVCListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) - mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) - mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) + mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) - mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) - mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) - mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) + mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) - mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) - mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) - mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) - mockVCMeetingCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) - mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) - mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } diff --git a/test/aily_sample_test.go b/test/aily_sample_test.go index fdc4fed9..2b8544ad 100644 --- a/test/aily_sample_test.go +++ b/test/aily_sample_test.go @@ -87,12 +87,12 @@ func Test_Aily_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAilyCreateAilySessionRunCancel(func(ctx context.Context, request *lark.CreateAilySessionRunCancelReq, options ...lark.MethodOptionFunc) (*lark.CreateAilySessionRunCancelResp, *lark.Response, error) { + cli.Mock().MockAilyCancelAilySessionRun(func(ctx context.Context, request *lark.CancelAilySessionRunReq, options ...lark.MethodOptionFunc) (*lark.CancelAilySessionRunResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAilyCreateAilySessionRunCancel() + defer cli.Mock().UnMockAilyCancelAilySessionRun() - _, _, err := moduleCli.CreateAilySessionRunCancel(ctx, &lark.CreateAilySessionRunCancelReq{}) + _, _, err := moduleCli.CancelAilySessionRun(ctx, &lark.CancelAilySessionRunReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -340,7 +340,7 @@ func Test_Aily_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAilySessionRunCancel(ctx, &lark.CreateAilySessionRunCancelReq{ + _, _, err := moduleCli.CancelAilySessionRun(ctx, &lark.CancelAilySessionRunReq{ AilySessionID: "x", RunID: "x", }) diff --git a/test/apaas_sample_test.go b/test/apaas_sample_test.go index 58670cd2..47788598 100644 --- a/test/apaas_sample_test.go +++ b/test/apaas_sample_test.go @@ -339,12 +339,12 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSCreateAPaaSApprovalInstanceCancel(func(ctx context.Context, request *lark.CreateAPaaSApprovalInstanceCancelReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApprovalInstanceCancelResp, *lark.Response, error) { + cli.Mock().MockAPaaSCancelAPaaSApprovalInstance(func(ctx context.Context, request *lark.CancelAPaaSApprovalInstanceReq, options ...lark.MethodOptionFunc) (*lark.CancelAPaaSApprovalInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSCreateAPaaSApprovalInstanceCancel() + defer cli.Mock().UnMockAPaaSCancelAPaaSApprovalInstance() - _, _, err := moduleCli.CreateAPaaSApprovalInstanceCancel(ctx, &lark.CreateAPaaSApprovalInstanceCancelReq{}) + _, _, err := moduleCli.CancelAPaaSApprovalInstance(ctx, &lark.CancelAPaaSApprovalInstanceReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -869,7 +869,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAPaaSApprovalInstanceCancel(ctx, &lark.CreateAPaaSApprovalInstanceCancelReq{ + _, _, err := moduleCli.CancelAPaaSApprovalInstance(ctx, &lark.CancelAPaaSApprovalInstanceReq{ ApprovalInstanceID: "x", }) as.NotNil(err) From 5bc88999b62cbdbc3f0798dc6abd8d7da44a9d19 Mon Sep 17 00:00:00 2001 From: chyroc Date: Sun, 1 Mar 2026 19:54:31 +0800 Subject: [PATCH 15/15] chore(generate): regenerate sdk for normalized api naming --- README.md | 392 ++-- README_CN.md | 392 ++-- api_acs_device_list.go | 3 +- api_aily_app_skill_start.go | 70 +- api_apaas_application_flow_execute.go | 46 +- api_apaas_application_function_invoke.go | 46 +- api_apaas_application_object_oql_query.go | 46 +- api_apaas_workspace_enum_get.go | 60 +- api_apaas_workspace_table_get.go | 56 +- ...as_workspace_table_records_batch_update.go | 46 +- api_apaas_workspace_table_records_delete.go | 46 +- api_apaas_workspace_table_records_get.go | 46 +- api_apaas_workspace_table_records_post.go | 46 +- api_apaas_workspace_view_views_get.go | 46 +- api_attendance_archive_rule_del_report.go | 46 +- api_attendance_user_flow_batch_del.go | 46 +- api_base_app_role_create.go | 16 +- api_base_app_role_list.go | 16 +- api_base_app_role_update.go | 16 +- api_board_whiteboard_download_as_image.go | 16 +- api_board_whiteboard_node_create.go | 16 +- api_board_whiteboard_node_create_plantuml.go | 16 +- api_board_whiteboard_theme.go | 16 +- api_board_whiteboard_update_theme.go | 16 +- api_ccm_docs_default_docs_api_meta.go | 18 +- api_corehr_approval_groups_get.go | 46 +- ...ups_query_department_change_list_by_ids.go | 232 +- ...val_groups_query_job_change_list_by_ids.go | 76 +- ...roups_query_position_change_list_by_ids.go | 118 +- api_corehr_approver_list.go | 46 +- api_corehr_authorization_add_role_assign.go | 40 +- ...corehr_authorization_remove_role_assign.go | 40 +- ...corehr_authorization_update_role_assign.go | 40 +- api_corehr_basic_info_language_search.go | 52 +- api_corehr_basic_info_time_zone_search.go | 52 +- api_corehr_bp_by_department_get.go | 52 +- api_corehr_bp_by_employee_get_batch.go | 58 +- api_corehr_bp_list.go | 56 +- api_corehr_common_data_id_convert.go | 46 +- ...r_common_data_meta_data_add_enum_option.go | 64 +- ..._common_data_meta_data_edit_enum_option.go | 64 +- api_corehr_company_active.go | 40 +- api_corehr_company_query_multi_timeline.go | 212 +- api_corehr_company_query_recent_change.go | 40 +- api_corehr_cost_allocation_batch_query.go | 64 +- api_corehr_cost_allocation_create_version.go | 52 +- api_corehr_cost_allocation_remove_version.go | 46 +- api_corehr_cost_allocation_update_version.go | 52 +- api_corehr_cost_center_query_recent_change.go | 40 +- api_corehr_custom_org_active.go | 40 +- api_corehr_custom_org_create.go | 76 +- api_corehr_custom_org_delete_org.go | 40 +- api_corehr_custom_org_query.go | 88 +- api_corehr_custom_org_query_recent_change.go | 40 +- api_corehr_custom_org_update.go | 64 +- api_corehr_custom_org_update_rule.go | 52 +- api_corehr_default_cost_center_batch_query.go | 64 +- ...rehr_default_cost_center_create_version.go | 46 +- ...rehr_default_cost_center_remove_version.go | 46 +- ...rehr_default_cost_center_update_version.go | 46 +- api_corehr_department_delete.go | 13 +- api_corehr_department_delete_v2.go | 46 +- api_corehr_department_query_operation_logs.go | 52 +- api_corehr_department_query_recent_change.go | 40 +- ...=> api_corehr_department_query_timeline.go | 0 api_corehr_department_tree.go | 46 +- api_corehr_department_update.go | 141 +- api_corehr_department_update_v2.go | 106 +- api_corehr_draft_get.go | 46 +- api_corehr_employee_create.go | 424 ++-- ...hr_employees_additional_job_batch_query.go | 82 +- api_corehr_employees_additional_job_create.go | 82 +- api_corehr_employees_additional_job_delete.go | 40 +- api_corehr_employees_additional_job_update.go | 82 +- ...ployees_international_assignment_create.go | 106 +- ...ployees_international_assignment_delete.go | 40 +- ...employees_international_assignment_list.go | 100 +- ...ployees_international_assignment_update.go | 106 +- api_corehr_enum_search.go | 64 +- api_corehr_job_batch_get.go | 70 +- api_corehr_job_change_create.go | 305 ++- api_corehr_job_change_create_v2.go | 392 ++-- api_corehr_job_change_revoke.go | 46 +- api_corehr_job_family_query_multi_timeline.go | 64 +- api_corehr_job_family_query_recent_change.go | 40 +- api_corehr_job_grade_create.go | 52 +- api_corehr_job_grade_delete.go | 40 +- api_corehr_job_grade_query_recent_change.go | 40 +- api_corehr_job_grade_update.go | 52 +- api_corehr_job_level_query_recent_change.go | 40 +- api_corehr_job_query_multi_timeline.go | 70 +- api_corehr_job_query_recent_change.go | 40 +- api_corehr_leave_calendar_by_scope.go | 40 +- api_corehr_leave_work_calendar.go | 64 +- api_corehr_leave_work_calendar_date.go | 46 +- api_corehr_location_active.go | 40 +- api_corehr_location_address_create.go | 46 +- api_corehr_location_address_delete.go | 40 +- api_corehr_location_address_update.go | 46 +- api_corehr_location_query_multi_timeline.go | 106 +- api_corehr_location_query_recent_change.go | 40 +- api_corehr_location_update.go | 64 +- api_corehr_offboarding_edit.go | 52 +- api_corehr_offboarding_revoke.go | 46 +- api_corehr_offboarding_submit_v2.go | 74 +- api_corehr_pathway_active.go | 40 +- api_corehr_pathway_batch_get.go | 58 +- api_corehr_pathway_create.go | 52 +- api_corehr_pathway_delete.go | 40 +- api_corehr_pathway_update.go | 52 +- api_corehr_person_create.go | 1365 +++++------- api_corehr_person_create_v1.go | 1974 ++++++++-------- api_corehr_person_update.go | 1370 +++++------- api_corehr_person_update_v1.go | 1978 ++++++++--------- api_corehr_position_active.go | 40 +- api_corehr_position_create.go | 58 +- api_corehr_position_del.go | 46 +- api_corehr_position_query.go | 70 +- api_corehr_position_query_recent_change.go | 40 +- api_corehr_position_update.go | 58 +- api_corehr_pre_hire_complete.go | 46 +- api_corehr_pre_hire_delete.go | 12 +- api_corehr_pre_hire_delete_v2.go | 46 +- api_corehr_pre_hire_query.go | 1342 +++++------ api_corehr_pre_hire_restore_flow_instance.go | 46 +- ...rehr_pre_hire_transform_onboarding_task.go | 46 +- api_corehr_pre_hire_transit_task.go | 46 +- api_corehr_pre_hire_update.go | 541 ++++- api_corehr_pre_hire_update_v2.go | 550 ++--- api_corehr_pre_hire_withdraw_onboarding.go | 46 +- api_corehr_probation_submit.go | 216 +- api_corehr_probation_withdraw.go | 46 +- api_corehr_process_approver_update.go | 100 +- api_corehr_process_extra_update.go | 40 +- api_corehr_process_flow_variable_data.go | 118 +- api_corehr_process_form_variable_data_get.go | 310 +-- ...orehr_process_form_variable_data_get_v2.go | 174 +- ...process_query_flow_data_template_create.go | 164 +- api_corehr_process_revoke_update.go | 40 +- api_corehr_process_start_create.go | 112 +- api_corehr_process_transfer_update.go | 40 +- api_corehr_process_withdraw_update.go | 40 +- api_corehr_report_detail_row_batchdelete.go | 70 +- api_corehr_report_detail_row_batchsave.go | 76 +- api_corehr_signature_file_download.go | 44 +- api_corehr_signature_file_list.go | 64 +- api_corehr_signature_file_list_by_biz_id.go | 64 +- api_corehr_signature_file_query.go | 64 +- api_corehr_signature_file_terminate.go | 60 +- api_corehr_signature_node_list_by_file_id.go | 58 +- ...ature_template_info_with_thumbnail_list.go | 128 +- api_corehr_signature_template_search.go | 362 +-- ...orehr_workforce_plan_detail_batch_query.go | 136 +- api_corehr_workforce_plan_detail_batch_v2.go | 128 +- ...r_workforce_plan_detail_row_batchdelete.go | 68 +- ...ehr_workforce_plan_detail_row_batchsave.go | 74 +- api_corehr_workforce_plan_list.go | 52 +- api_docs_content_get.go | 18 +- api_event_callback_module.go | 1111 +++++---- api_hire_application_cancel_onboard.go | 46 +- api_hire_talent_combined_create.go | 362 +-- api_hire_talent_combined_update.go | 362 +-- api_mail_user_mailbox_message_send.go | 88 +- api_mail_user_mailbox_rule_reorder.go | 46 +- api_passport_session_logout.go | 46 +- api_search_doc_wiki_search.go | 132 +- api_vc_meeting_default_building_batch_get.go | 18 +- ...c_meeting_default_building_batch_get_id.go | 18 +- api_vc_meeting_default_building_create.go | 46 +- api_vc_meeting_default_building_delete.go | 46 +- api_vc_meeting_default_building_list.go | 18 +- api_vc_meeting_default_building_update.go | 46 +- api_vc_meeting_default_country_list.go | 18 +- api_vc_meeting_default_district_list.go | 18 +- api_vc_meeting_default_room_batch_get.go | 18 +- api_vc_meeting_default_room_batch_get_id.go | 18 +- api_vc_meeting_default_room_create.go | 46 +- api_vc_meeting_default_room_delete.go | 46 +- api_vc_meeting_default_room_list.go | 18 +- api_vc_meeting_default_room_update.go | 46 +- mock.go | 1918 ++++++++-------- test/aily_sample_test.go | 8 +- test/apaas_sample_test.go | 80 +- test/attendance_sample_test.go | 16 +- test/base_sample_test.go | 126 -- test/board_sample_test.go | 167 -- test/ccmdocs_sample_test.go | 81 - test/corehr_sample_test.go | 984 ++++---- test/docs_sample_test.go | 81 - test/drive_sample_test.go | 207 ++ test/hire_sample_test.go | 24 +- test/mail_sample_test.go | 16 +- test/meetingroom_sample_test.go | 81 - test/passport_sample_test.go | 8 +- test/search_sample_test.go | 8 +- test/vc_sample_test.go | 266 +++ test/vcmeeting_sample_test.go | 328 --- 197 files changed, 13284 insertions(+), 13936 deletions(-) rename api_corehr_department_timeline_query.go => api_corehr_department_query_timeline.go (100%) delete mode 100644 test/base_sample_test.go delete mode 100644 test/board_sample_test.go delete mode 100644 test/ccmdocs_sample_test.go delete mode 100644 test/docs_sample_test.go delete mode 100644 test/meetingroom_sample_test.go delete mode 100644 test/vcmeeting_sample_test.go diff --git a/README.md b/README.md index 57889ff2..6c2973d8 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## Support APIs -API Count: 1622, Event Count: 153 +API Count: 1630, Event Count: 153
@@ -93,8 +93,8 @@ API Count: 1622, Event Count: 153 - GetAPaaSApplicationAuditLog - GetAPaaSApplicationEnvironmentVariable - QueryAPaaSApplicationEnvironmentVariable - - CreateAPaaSApplicationFlowExecute - - CreateAPaaSApplicationFunctionInvoke + - ExecuteAPaaSApplicationFlow + - InvokeAPaaSApplicationFunction - BatchCreateAPaaSApplicationObjectRecord - BatchDeleteAPaaSApplicationObjectRecord - BatchQueryAPaaSApplicationObjectRecord @@ -103,7 +103,7 @@ API Count: 1622, Event Count: 153 - DeleteAPaaSApplicationObjectRecord - UpdateAPaaSApplicationObjectRecord - QueryAPaaSApplicationObjectRecord - - CreateAPaaSApplicationObjectOqlQuery + - QueryAPaaSApplicationObjectOql - SearchAPaaSApplicationObject - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization @@ -123,16 +123,16 @@ API Count: 1622, Event Count: 153 - QueryAPaaSUserTask - CreateAPaaSUserTaskRollback - CreateAPaaSUserTaskRollbackPoints - - GetAPaaSWorkspaceEnumGet + - GetAPaaSWorkspaceEnum - ListAPaaSWorkspaceEnum - ListAPaaSWorkspaceTable - - UpdateAPaaSWorkspaceTableRecordsBatchUpdate - - DeleteAPaaSWorkspaceTableRecordsDelete - - GetAPaaSWorkspaceTableRecordsGet + - BatchUpdateAPaaSWorkspaceTableRecords + - DeleteAPaaSWorkspaceTableRecords + - GetAPaaSWorkspaceTableRecords - UpdateAPaaSWorkspaceTableRecordsPatch - - CreateAPaaSWorkspaceTableRecordsPost - - GetAPaaSWorkspaceTableGet - - GetAPaaSWorkspaceViewViewsGet + - CreateAPaaSWorkspaceTableRecords + - GetAPaaSWorkspaceTable + - GetAPaaSWorkspaceViews - CreateAPaaSWorkspaceSqlCommands - Admin - AdminResetPassword @@ -169,7 +169,7 @@ API Count: 1622, Event Count: 153 - CreateAilyAppKnowledgeAsk - GetAilyAppSkill - ListAilyAppSkill - - CreateAilyAppSkillStart + - StartAilyAppSkill - AppLink - OpenNativeApp - OpenLark @@ -300,13 +300,13 @@ API Count: 1622, Event Count: 153 - UpdateAttendanceUserSetting - DownloadAttendanceFile - UploadAttendanceFile - - CreateAttendanceArchiveRuleDelReport + - DeleteAttendanceArchiveRuleReport - ListAttendanceArchiveRule - UploadAttendanceArchiveRuleReport - CreateAttendanceArchiveRuleUserStatsFieldsQuery - ListAttendanceGroupUser - BatchCreateAttendanceUserDailyShiftTemp - - BatchAttendanceUserFlowDel + - BatchDeleteAttendanceUserFlow - Auth - ResendAppTicket - GetAccessToken @@ -334,10 +334,6 @@ API Count: 1622, Event Count: 153 - GetBaikeClassificationList - UploadBaikeImage - DownloadBaikeImage -- Base - - CreateBaseAppRole - - ListBaseAppRole - - UpdateBaseAppRole - Bitable - CopyBitableDashboard - GetBitableDashboardList @@ -386,12 +382,6 @@ API Count: 1622, Event Count: 153 - BatchGetBitableAppTableRecord - ListBitableAppWorkflow - UpdateBitableAppWorkflow -- Board - - CreateBoardWhiteboardNode - - CreateBoardWhiteboardNodePlantuml - - DownloadBoardWhiteboardAsImage - - GetBoardWhiteboardTheme - - UpdateBoardWhiteboardTheme - Bot - GetBotInfo - AddBotToChat @@ -454,8 +444,6 @@ API Count: 1622, Event Count: 153 - CreateCardkitCardIDConvert - UpdateCardkitCardSettings - UpdateCardkitCard -- CcmDocs - - CreateCcmDocsDefaultDocsApiMeta - Chat - CreateChat - GetChat @@ -707,9 +695,9 @@ API Count: 1622, Event Count: 153 - GetCoreHRLeaveTypeList - GetCoreHRLeaveBalanceList - GetCoreHRLeaveRequestHistoryList - - BatchGetCoreHrbpByEmployee - - GetCoreHrbpByDepartment - - GetCoreHrbpList + - BatchGetCoreHRByEmployee + - GetCoreHRByDepartment + - GetCoreHRList - GetCoreHRSecurityGroupBp - SearchCoreHRAssignedUser - GetCoreHRAuthorization @@ -725,133 +713,141 @@ API Count: 1622, Event Count: 153 - GetCoreHRCompensationItemList - GetCoreHRCompensationItemCategoryList - GetCoreHRCompensationPlanList - - GetCorehrApprovalGroups - - QueryCorehrApprovalGroupsDepartmentChangeListByIDs - - QueryCorehrApprovalGroupsJobChangeListByIDs - - QueryCorehrApprovalGroupsPositionChangeListByIDs - - ListCorehrApprover - - SearchCorehrBasicInfoLanguage - - SearchCorehrBasicInfoTimeZone - - CreateCorehrCompanyActive - - QueryCorehrCompanyMultiTimeline - - QueryCorehrCompanyRecentChange - - BatchQueryCorehrCostAllocation - - CreateCorehrCostAllocationVersion - - RemoveCorehrCostAllocationVersion - - UpdateCorehrCostAllocationVersion - - QueryCorehrCostCenterRecentChange - - CreateCorehrCustomOrgActive - - CreateCorehrCustomOrg - - DeleteCorehrCustomOrg - - UpdateCorehrCustomOrg - - QueryCorehrCustomOrg - - QueryCorehrCustomOrgRecentChange - - UpdateCorehrCustomOrgRule - - BatchQueryCorehrDefaultCostCenter - - CreateCorehrDefaultCostCenterVersion - - RemoveCorehrDefaultCostCenterVersion - - UpdateCorehrDefaultCostCenterVersion - - DeleteCorehrDepartment - - UpdateCorehrDepartment + - GetCoreHRApprovalGroups + - QueryCoreHRApprovalGroupsDepartmentChangeListByIDs + - QueryCoreHRApprovalGroupsJobChangeListByIDs + - QueryCoreHRApprovalGroupsPositionChangeListByIDs + - ListCoreHRApprover + - SearchCoreHRBasicInfoLanguage + - SearchCoreHRBasicInfoTimeZone + - CreateCoreHRCompanyActive + - QueryCoreHRCompanyMultiTimeline + - QueryCoreHRCompanyRecentChange + - BatchQueryCoreHRCostAllocation + - CreateCoreHRCostAllocationVersion + - RemoveCoreHRCostAllocationVersion + - UpdateCoreHRCostAllocationVersion + - QueryCoreHRCostCenterRecentChange + - CreateCoreHRCustomOrgActive + - CreateCoreHRCustomOrg + - DeleteCoreHRCustomOrg + - UpdateCoreHRCustomOrg + - QueryCoreHRCustomOrg + - QueryCoreHRCustomOrgRecentChange + - UpdateCoreHRCustomOrgRule + - BatchQueryCoreHRDefaultCostCenter + - CreateCoreHRDefaultCostCenterVersion + - RemoveCoreHRDefaultCostCenterVersion + - UpdateCoreHRDefaultCostCenterVersion + - DeleteCoreHRDepartment + - UpdateCoreHRDepartment - BatchQueryCoreHRDepartmentTimeline - - QueryCorehrDepartmentOperationLogs - - QueryCorehrDepartmentRecentChange + - QueryCoreHRDepartmentOperationLogs + - QueryCoreHRDepartmentRecentChange - QueryCoreHRDepartmentTimeline - - CreateCorehrDepartmentTree - - GetCorehrDraft - - CreateCorehrEmployee - - BatchQueryCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesAdditionalJob - - DeleteCorehrEmployeesAdditionalJob - - UpdateCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesInternationalAssignment - - DeleteCorehrEmployeesInternationalAssignment - - ListCorehrEmployeesInternationalAssignment - - UpdateCorehrEmployeesInternationalAssignment - - SearchCorehrEnum - - BatchGetCorehrJob - - QueryCorehrJobMultiTimeline - - QueryCorehrJobRecentChange - - CreateCorehrJobChange - - CreateCorehrJobChangeRevoke - - QueryCorehrJobFamilyMultiTimeline - - QueryCorehrJobFamilyRecentChange - - CreateCorehrJobGrade - - DeleteCorehrJobGrade - - UpdateCorehrJobGrade + - CreateCoreHRDepartmentTree + - GetCoreHRDraft + - CreateCoreHREmployee + - BatchQueryCoreHREmployeesAdditionalJob + - CreateCoreHREmployeesAdditionalJob + - DeleteCoreHREmployeesAdditionalJob + - UpdateCoreHREmployeesAdditionalJob + - CreateCoreHREmployeesInternationalAssignment + - DeleteCoreHREmployeesInternationalAssignment + - ListCoreHREmployeesInternationalAssignment + - UpdateCoreHREmployeesInternationalAssignment + - SearchCoreHREnum + - BatchGetCoreHRJob + - QueryCoreHRJobMultiTimeline + - QueryCoreHRJobRecentChange + - CreateCoreHRJobChange + - RevokeCoreHRJobChange + - QueryCoreHRJobFamilyMultiTimeline + - QueryCoreHRJobFamilyRecentChange + - CreateCoreHRJobGrade + - DeleteCoreHRJobGrade + - UpdateCoreHRJobGrade - QueryCoreHRJobGrade - - QueryCorehrJobGradeRecentChange - - QueryCorehrJobLevelRecentChange - - CreateCorehrLocationAddress - - DeleteCorehrLocationAddress - - UpdateCorehrLocationAddress - - CreateCorehrLocationActive - - UpdateCorehrLocation - - QueryCorehrLocationMultiTimeline - - QueryCorehrLocationRecentChange - - CreateCorehrOffboardingEdit - - CreateCorehrOffboardingRevoke - - CreateCorehrOffboardingSubmitV2 - - CreateCorehrPathwayActive - - BatchGetCorehrPathway - - CreateCorehrPathway - - DeleteCorehrPathway - - UpdateCorehrPathway - - CreateCorehrPositionActive - - CreateCorehrPosition - - CreateCorehrPositionDelPosition - - UpdateCorehrPosition - - QueryCorehrPosition - - QueryCorehrPositionRecentChange - - CreateCorehrPreHireComplete - - DeleteCorehrPreHire - - UpdateCorehrPreHire - - QueryCorehrPreHire - - CreateCorehrPreHireRestoreFlowInstance + - QueryCoreHRJobGradeRecentChange + - QueryCoreHRJobLevelRecentChange + - CreateCoreHRLocationAddress + - DeleteCoreHRLocationAddress + - UpdateCoreHRLocationAddress + - CreateCoreHRLocationActive + - UpdateCoreHRLocation + - QueryCoreHRLocationMultiTimeline + - QueryCoreHRLocationRecentChange + - CreateCoreHROffboardingEdit + - RevokeCoreHROffboarding + - SubmitCoreHROffboardingV2 + - CreateCoreHRPathwayActive + - BatchGetCoreHRPathway + - CreateCoreHRPathway + - DeleteCoreHRPathway + - UpdateCoreHRPathway + - CreateCoreHRPositionActive + - CreateCoreHRPosition + - DeleteCoreHRPosition + - UpdateCoreHRPosition + - QueryCoreHRPosition + - QueryCoreHRPositionRecentChange + - CompleteCoreHRPreHire + - DeleteCoreHRPreHire + - UpdateCoreHRPreHire + - QueryCoreHRPreHire + - RestoreCoreHRPreHireFlowInstance - SearchCoreHRPreHire - - CreateCorehrPreHireTransformOnboardingTask - - CreateCorehrPreHireTransitTask - - CreateCorehrPreHireWithdrawOnboarding - - CreateCorehrProbationSubmit - - CreateCorehrProbationWithdraw - - UpdateCorehrProcessApprover - - UpdateCorehrProcessExtra - - GetCorehrProcessFormVariableData - - CreateCorehrProcessQueryFlowDataTemplate - - UpdateCorehrProcessTransfer - - GetCorehrProcessFlowVariableData - - UpdateCorehrProcessRevoke - - CreateCorehrProcessStart - - UpdateCorehrProcessWithdraw - - CreateCorehrReportDetailRowBatchdelete - - CreateCorehrReportDetailRowBatchsave - - DownloadCorehrSignatureFile - - ListCorehrSignatureFile - - ListCorehrSignatureFileByBizID - - QueryCorehrSignatureFile - - CreateCorehrSignatureFileTerminate - - ListCorehrSignatureNodeByFileID - - SearchCorehrSignatureTemplate - - ListCorehrSignatureTemplateInfoWithThumbnail - - ListCorehrWorkforcePlan - - BatchQueryCorehrWorkforcePlanDetail - - BatchCorehrWorkforcePlanDetailV2 - - CreateCorehrWorkforcePlanDetailRowBatchdelete - - CreateCorehrWorkforcePlanDetailRowBatchsave - - AddCorehrAuthorizationRoleAssign + - TransformCoreHRPreHireOnboardingTask + - TransitCoreHRPreHireTask + - WithdrawCoreHRPreHireOnboarding + - SubmitCoreHRProbation + - WithdrawCoreHRProbation + - UpdateCoreHRProcessApprover + - UpdateCoreHRProcessExtra + - GetCoreHRProcessFormVariableData + - QueryCoreHRProcessFlowDataTemplate + - UpdateCoreHRProcessTransfer + - GetCoreHRProcessFlowVariableData + - UpdateCoreHRProcessRevoke + - CreateCoreHRProcessStart + - UpdateCoreHRProcessWithdraw + - BatchDeleteCoreHRReportDetailRow + - BatchSaveCoreHRReportDetailRow + - DownloadCoreHRSignatureFile + - ListCoreHRSignatureFile + - ListCoreHRSignatureFileByBizID + - QueryCoreHRSignatureFile + - TerminateCoreHRSignatureFile + - ListCoreHRSignatureNodeByFileID + - SearchCoreHRSignatureTemplate + - ListCoreHRSignatureTemplateInfoWithThumbnail + - ListCoreHRWorkforcePlan + - BatchQueryCoreHRWorkforcePlanDetail + - BatchQueryCoreHRWorkforcePlanDetailV2 + - BatchDeleteCoreHRWorkforcePlanDetailRow + - BatchSaveCoreHRWorkforcePlanDetailRow + - AddCoreHRAuthorizationRoleAssign - GetCoreHRAuthorization - GetCoreHRAuthorizationList - - RemoveCorehrAuthorizationRoleAssign - - UpdateCorehrAuthorizationRoleAssign - - CreateCorehrCommonDataIDConvert - - AddCorehrCommonDataMetaDataEnumOption - - CreateCorehrCommonDataMetaDataEditEnumOption + - RemoveCoreHRAuthorizationRoleAssign + - UpdateCoreHRAuthorizationRoleAssign + - CreateCoreHRCommonDataIDConvert + - AddCoreHRCommonDataMetaDataEnumOption + - CreateCoreHRCommonDataMetaDataEditEnumOption - MatchCoreHRCompensationStandard - - GetCorehrLeaveCalendarByScope - - CreateCorehrLeaveWorkCalendar - - CreateCorehrLeaveWorkCalendarDate - - CreateCorehrPerson - - UpdateCorehrPerson + - GetCoreHRLeaveCalendarByScope + - CreateCoreHRLeaveWorkCalendar + - CreateCoreHRLeaveWorkCalendarDate + - CreateCoreHRPerson + - UpdateCoreHRPerson + - CreateCoreHRJobChangeV2 + - CreateCoreHRPersonV1 + - DeleteCoreHRDepartmentV2 + - DeleteCoreHRPreHireV2 + - GetCoreHRProcessFormVariableDataV2 + - UpdateCoreHRDepartmentV2 + - UpdateCoreHRPersonV1 + - UpdateCoreHRPreHireV2 - Directory - CreateDirectoryCollaborationRule - DeleteDirectoryCollaborationRule @@ -874,8 +870,6 @@ API Count: 1622, Event Count: 153 - CreateDirectoryEmployeeResurrect - SearchDirectoryEmployee - UpdateDirectoryEmployeeToBeResigned -- Docs - - GetDocsContent - Drive - AddSheetDimensionRange - AddWikiSpaceMember @@ -1038,7 +1032,17 @@ API Count: 1622, Event Count: 153 - UpdateWikiSpaceSetting - UploadDriveFile - UploadDriveMedia + - CreateBaseAppRole + - ListBaseAppRole + - UpdateBaseAppRole + - CreateCcmDocsDefaultDocsApiMeta + - CreateBoardWhiteboardNode + - CreateBoardWhiteboardNodePlantuml - GetWhiteboardNodeList + - DownloadBoardWhiteboardAsImage + - GetBoardWhiteboardTheme + - UpdateBoardWhiteboardTheme + - GetDocsContent - BatchDeleteDocxChatAnnouncementBlockChildren - CreateDocxChatAnnouncementBlockChildren - GetDocxChatAnnouncementBlockChildren @@ -1061,13 +1065,13 @@ API Count: 1622, Event Count: 153 - EventV2URLPreviewGet - EventV2HireApplicationStageChangedV1 - EventV2HireApplicationDeletedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrProcessUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessApproverUpdatedV2 - - EventV2CorehrProcessCcUpdatedV2 + - EventV2CoreHRJobCreatedV1 + - EventV2CoreHRJobUpdatedV1 + - EventV2CoreHRJobDeletedV1 + - EventV2CoreHRProcessUpdatedV2 + - EventV2CoreHRProcessNodeUpdatedV2 + - EventV2CoreHRProcessApproverUpdatedV2 + - EventV2CoreHRProcessCcUpdatedV2 - EventV2ContactCustomAttrEventUpdatedV3 - EventV2ApplicationApplicationCreatedV6 - EventV1AppOpen @@ -1175,34 +1179,34 @@ API Count: 1622, Event Count: 153 - EventV2VCReserveConfigUpdatedV1 - EventV2ApplicationBotMenuV6 - EventV2HireOfferStatusChangedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2CoreHREmploymentCreatedV1 + - EventV2CoreHREmploymentUpdatedV1 + - EventV2CoreHREmploymentDeletedV1 + - EventV2CoreHRPersonCreatedV1 + - EventV2CoreHRPersonUpdatedV1 + - EventV2CoreHRPersonDeletedV1 + - EventV2CoreHRDepartmentCreatedV1 + - EventV2CoreHRDepartmentUpdatedV1 + - EventV2CoreHRDepartmentDeletedV1 + - EventV2CoreHRJobDataEmployedV1 + - EventV2CoreHRContractCreatedV1 + - EventV2CoreHREmploymentConvertedV1 + - EventV2CoreHRJobChangeUpdatedV1 + - EventV2CoreHRJobDataChangedV1 + - EventV2CoreHROffboardingUpdatedV1 + - EventV2CoreHREmploymentResignedV1 + - EventV2CoreHROrgRoleAuthorizationUpdatedV1 - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - EventV2HireEHRImportTaskImportedV1 - - EventV2CorehrProbationUpdatedV2 - - EventV2CorehrPreHireUpdatedV1 + - EventV2CoreHRProbationUpdatedV2 + - EventV2CoreHRPreHireUpdatedV1 - EventV2HireEcoAccountCreatedV1 - EventV2HireEcoBackgroundCheckCreatedV1 - EventV2HireEcoBackgroundCheckCanceledV1 - EventV2HireEcoExamCreatedV1 - EventV2HireReferralAccountAssetsUpdateV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 + - EventV2CoreHRContractDeletedV1 + - EventV2CoreHRContractUpdatedV1 - EventV1TripApproval - EventV2CardActionTrigger - EventV2CorehrOffboardingChecklistUpdatedV2 @@ -1347,7 +1351,7 @@ API Count: 1622, Event Count: 153 - CreateHireAgencyProtect - CreateHireAgencyProtectSearch - QueryHireAgency - - CreateHireApplicationCancelOnboard + - CancelHireApplicationOnboard - GetHireApplicationDetail - CreateHireApplicationRecover - TransferHireApplicationStage @@ -1414,8 +1418,8 @@ API Count: 1622, Event Count: 153 - ListHireSubject - CreateHireTalentExternalInfo - UpdateHireTalentExternalInfo - - CreateHireTalentCombinedCreate - - CreateHireTalentCombinedUpdate + - CreateHireTalentCombined + - UpdateHireTalentCombined - GetHireTalentList - CreateHireTalentOnboardStatus - RemoveHireTalentToFolder @@ -1538,17 +1542,15 @@ API Count: 1622, Event Count: 153 - GetMailUserMailboxMessage - GetMailUserMailboxMessageByCard - ListMailUserMailboxMessage - - CreateMailUserMailboxMessageSend + - SendMailUserMailboxMessage - CreateMailUserMailboxRule - DeleteMailUserMailboxRule - ListMailUserMailboxRule - - CreateMailUserMailboxRuleReorder + - ReorderMailUserMailboxRule - UpdateMailUserMailboxRule - ApplyMailRule - GetMailMessageSubscription - SubscribeMailMessage -- MeetingRoom - - GetMeetingRoomCustomization - Message - SendEphemeralMessage - SendUrgentAppMessage @@ -1627,7 +1629,7 @@ API Count: 1622, Event Count: 153 - GetOKRReview - Passport - GetPassportSession - - CreatePassportSessionLogout + - LogoutPassportSession - Payroll - ListPayrollAcctItem - ListPayrollCostAllocationDetail @@ -1690,7 +1692,7 @@ API Count: 1622, Event Count: 153 - DeleteSearchSchema - GetSearchSchema - CreateSearchSchema - - SearchSearchDocWiki + - SearchDocWiki - SecurityAndCompliance - ListSecurityAndComplianceOpenapiLogData - UpdateSecurityAndComplianceDeviceApplyRecord @@ -1860,21 +1862,21 @@ API Count: 1622, Event Count: 153 - SetVCRoomConfig - SetVCRoomConfigCheckboardAccessCode - SetVCRoomConfigRoomAccessCode -- VCMeeting - ListVCMeetingDefaultRoom - - CreateVCMeetingDefaultBuildingCreate + - CreateVCMeetingDefaultBuilding - GetVCMeetingDefaultRoomBatchGet - - CreateVCMeetingDefaultBuildingUpdate - - CreateVCMeetingDefaultRoomCreate - - CreateVCMeetingDefaultRoomUpdate - - CreateVCMeetingDefaultBuildingDelete + - UpdateVCMeetingDefaultBuilding + - CreateVCMeetingDefaultRoom + - UpdateVCMeetingDefaultRoom + - DeleteVCMeetingDefaultBuilding - ListVCMeetingDefaultCountry - GetVCMeetingDefaultBuildingBatchGetID - ListVCMeetingDefaultDistrict - - CreateVCMeetingDefaultRoomDelete + - DeleteVCMeetingDefaultRoom - GetVCMeetingDefaultRoomBatchGetID - ListVCMeetingDefaultBuilding - GetVCMeetingDefaultBuildingBatchGet + - GetMeetingRoomCustomization - Verification - GetVerification diff --git a/README_CN.md b/README_CN.md index 3de25bd9..e9b7b49e 100644 --- a/README_CN.md +++ b/README_CN.md @@ -38,7 +38,7 @@ https://godoc.org/github.com/chyroc/lark ## 支持的接口 -API 总数: 1622, 事件总数: 153 +API 总数: 1630, 事件总数: 153
@@ -93,8 +93,8 @@ API 总数: 1622, 事件总数: 153 - GetAPaaSApplicationAuditLog - GetAPaaSApplicationEnvironmentVariable - QueryAPaaSApplicationEnvironmentVariable - - CreateAPaaSApplicationFlowExecute - - CreateAPaaSApplicationFunctionInvoke + - ExecuteAPaaSApplicationFlow + - InvokeAPaaSApplicationFunction - BatchCreateAPaaSApplicationObjectRecord - BatchDeleteAPaaSApplicationObjectRecord - BatchQueryAPaaSApplicationObjectRecord @@ -103,7 +103,7 @@ API 总数: 1622, 事件总数: 153 - DeleteAPaaSApplicationObjectRecord - UpdateAPaaSApplicationObjectRecord - QueryAPaaSApplicationObjectRecord - - CreateAPaaSApplicationObjectOqlQuery + - QueryAPaaSApplicationObjectOql - SearchAPaaSApplicationObject - BatchCreateAPaaSApplicationRecordPermissionMemberAuthorization - BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization @@ -123,16 +123,16 @@ API 总数: 1622, 事件总数: 153 - QueryAPaaSUserTask - CreateAPaaSUserTaskRollback - CreateAPaaSUserTaskRollbackPoints - - GetAPaaSWorkspaceEnumGet + - GetAPaaSWorkspaceEnum - ListAPaaSWorkspaceEnum - ListAPaaSWorkspaceTable - - UpdateAPaaSWorkspaceTableRecordsBatchUpdate - - DeleteAPaaSWorkspaceTableRecordsDelete - - GetAPaaSWorkspaceTableRecordsGet + - BatchUpdateAPaaSWorkspaceTableRecords + - DeleteAPaaSWorkspaceTableRecords + - GetAPaaSWorkspaceTableRecords - UpdateAPaaSWorkspaceTableRecordsPatch - - CreateAPaaSWorkspaceTableRecordsPost - - GetAPaaSWorkspaceTableGet - - GetAPaaSWorkspaceViewViewsGet + - CreateAPaaSWorkspaceTableRecords + - GetAPaaSWorkspaceTable + - GetAPaaSWorkspaceViews - CreateAPaaSWorkspaceSqlCommands - Admin - AdminResetPassword @@ -169,7 +169,7 @@ API 总数: 1622, 事件总数: 153 - CreateAilyAppKnowledgeAsk - GetAilyAppSkill - ListAilyAppSkill - - CreateAilyAppSkillStart + - StartAilyAppSkill - AppLink - OpenNativeApp - OpenLark @@ -300,13 +300,13 @@ API 总数: 1622, 事件总数: 153 - UpdateAttendanceUserSetting - DownloadAttendanceFile - UploadAttendanceFile - - CreateAttendanceArchiveRuleDelReport + - DeleteAttendanceArchiveRuleReport - ListAttendanceArchiveRule - UploadAttendanceArchiveRuleReport - CreateAttendanceArchiveRuleUserStatsFieldsQuery - ListAttendanceGroupUser - BatchCreateAttendanceUserDailyShiftTemp - - BatchAttendanceUserFlowDel + - BatchDeleteAttendanceUserFlow - Auth - ResendAppTicket - GetAccessToken @@ -334,10 +334,6 @@ API 总数: 1622, 事件总数: 153 - GetBaikeClassificationList - UploadBaikeImage - DownloadBaikeImage -- Base - - CreateBaseAppRole - - ListBaseAppRole - - UpdateBaseAppRole - Bitable - CopyBitableDashboard - GetBitableDashboardList @@ -386,12 +382,6 @@ API 总数: 1622, 事件总数: 153 - BatchGetBitableAppTableRecord - ListBitableAppWorkflow - UpdateBitableAppWorkflow -- Board - - CreateBoardWhiteboardNode - - CreateBoardWhiteboardNodePlantuml - - DownloadBoardWhiteboardAsImage - - GetBoardWhiteboardTheme - - UpdateBoardWhiteboardTheme - Bot - GetBotInfo - AddBotToChat @@ -454,8 +444,6 @@ API 总数: 1622, 事件总数: 153 - CreateCardkitCardIDConvert - UpdateCardkitCardSettings - UpdateCardkitCard -- CcmDocs - - CreateCcmDocsDefaultDocsApiMeta - Chat - CreateChat - GetChat @@ -707,9 +695,9 @@ API 总数: 1622, 事件总数: 153 - GetCoreHRLeaveTypeList - GetCoreHRLeaveBalanceList - GetCoreHRLeaveRequestHistoryList - - BatchGetCoreHrbpByEmployee - - GetCoreHrbpByDepartment - - GetCoreHrbpList + - BatchGetCoreHRByEmployee + - GetCoreHRByDepartment + - GetCoreHRList - GetCoreHRSecurityGroupBp - SearchCoreHRAssignedUser - GetCoreHRAuthorization @@ -725,133 +713,141 @@ API 总数: 1622, 事件总数: 153 - GetCoreHRCompensationItemList - GetCoreHRCompensationItemCategoryList - GetCoreHRCompensationPlanList - - GetCorehrApprovalGroups - - QueryCorehrApprovalGroupsDepartmentChangeListByIDs - - QueryCorehrApprovalGroupsJobChangeListByIDs - - QueryCorehrApprovalGroupsPositionChangeListByIDs - - ListCorehrApprover - - SearchCorehrBasicInfoLanguage - - SearchCorehrBasicInfoTimeZone - - CreateCorehrCompanyActive - - QueryCorehrCompanyMultiTimeline - - QueryCorehrCompanyRecentChange - - BatchQueryCorehrCostAllocation - - CreateCorehrCostAllocationVersion - - RemoveCorehrCostAllocationVersion - - UpdateCorehrCostAllocationVersion - - QueryCorehrCostCenterRecentChange - - CreateCorehrCustomOrgActive - - CreateCorehrCustomOrg - - DeleteCorehrCustomOrg - - UpdateCorehrCustomOrg - - QueryCorehrCustomOrg - - QueryCorehrCustomOrgRecentChange - - UpdateCorehrCustomOrgRule - - BatchQueryCorehrDefaultCostCenter - - CreateCorehrDefaultCostCenterVersion - - RemoveCorehrDefaultCostCenterVersion - - UpdateCorehrDefaultCostCenterVersion - - DeleteCorehrDepartment - - UpdateCorehrDepartment + - GetCoreHRApprovalGroups + - QueryCoreHRApprovalGroupsDepartmentChangeListByIDs + - QueryCoreHRApprovalGroupsJobChangeListByIDs + - QueryCoreHRApprovalGroupsPositionChangeListByIDs + - ListCoreHRApprover + - SearchCoreHRBasicInfoLanguage + - SearchCoreHRBasicInfoTimeZone + - CreateCoreHRCompanyActive + - QueryCoreHRCompanyMultiTimeline + - QueryCoreHRCompanyRecentChange + - BatchQueryCoreHRCostAllocation + - CreateCoreHRCostAllocationVersion + - RemoveCoreHRCostAllocationVersion + - UpdateCoreHRCostAllocationVersion + - QueryCoreHRCostCenterRecentChange + - CreateCoreHRCustomOrgActive + - CreateCoreHRCustomOrg + - DeleteCoreHRCustomOrg + - UpdateCoreHRCustomOrg + - QueryCoreHRCustomOrg + - QueryCoreHRCustomOrgRecentChange + - UpdateCoreHRCustomOrgRule + - BatchQueryCoreHRDefaultCostCenter + - CreateCoreHRDefaultCostCenterVersion + - RemoveCoreHRDefaultCostCenterVersion + - UpdateCoreHRDefaultCostCenterVersion + - DeleteCoreHRDepartment + - UpdateCoreHRDepartment - BatchQueryCoreHRDepartmentTimeline - - QueryCorehrDepartmentOperationLogs - - QueryCorehrDepartmentRecentChange + - QueryCoreHRDepartmentOperationLogs + - QueryCoreHRDepartmentRecentChange - QueryCoreHRDepartmentTimeline - - CreateCorehrDepartmentTree - - GetCorehrDraft - - CreateCorehrEmployee - - BatchQueryCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesAdditionalJob - - DeleteCorehrEmployeesAdditionalJob - - UpdateCorehrEmployeesAdditionalJob - - CreateCorehrEmployeesInternationalAssignment - - DeleteCorehrEmployeesInternationalAssignment - - ListCorehrEmployeesInternationalAssignment - - UpdateCorehrEmployeesInternationalAssignment - - SearchCorehrEnum - - BatchGetCorehrJob - - QueryCorehrJobMultiTimeline - - QueryCorehrJobRecentChange - - CreateCorehrJobChange - - CreateCorehrJobChangeRevoke - - QueryCorehrJobFamilyMultiTimeline - - QueryCorehrJobFamilyRecentChange - - CreateCorehrJobGrade - - DeleteCorehrJobGrade - - UpdateCorehrJobGrade + - CreateCoreHRDepartmentTree + - GetCoreHRDraft + - CreateCoreHREmployee + - BatchQueryCoreHREmployeesAdditionalJob + - CreateCoreHREmployeesAdditionalJob + - DeleteCoreHREmployeesAdditionalJob + - UpdateCoreHREmployeesAdditionalJob + - CreateCoreHREmployeesInternationalAssignment + - DeleteCoreHREmployeesInternationalAssignment + - ListCoreHREmployeesInternationalAssignment + - UpdateCoreHREmployeesInternationalAssignment + - SearchCoreHREnum + - BatchGetCoreHRJob + - QueryCoreHRJobMultiTimeline + - QueryCoreHRJobRecentChange + - CreateCoreHRJobChange + - RevokeCoreHRJobChange + - QueryCoreHRJobFamilyMultiTimeline + - QueryCoreHRJobFamilyRecentChange + - CreateCoreHRJobGrade + - DeleteCoreHRJobGrade + - UpdateCoreHRJobGrade - QueryCoreHRJobGrade - - QueryCorehrJobGradeRecentChange - - QueryCorehrJobLevelRecentChange - - CreateCorehrLocationAddress - - DeleteCorehrLocationAddress - - UpdateCorehrLocationAddress - - CreateCorehrLocationActive - - UpdateCorehrLocation - - QueryCorehrLocationMultiTimeline - - QueryCorehrLocationRecentChange - - CreateCorehrOffboardingEdit - - CreateCorehrOffboardingRevoke - - CreateCorehrOffboardingSubmitV2 - - CreateCorehrPathwayActive - - BatchGetCorehrPathway - - CreateCorehrPathway - - DeleteCorehrPathway - - UpdateCorehrPathway - - CreateCorehrPositionActive - - CreateCorehrPosition - - CreateCorehrPositionDelPosition - - UpdateCorehrPosition - - QueryCorehrPosition - - QueryCorehrPositionRecentChange - - CreateCorehrPreHireComplete - - DeleteCorehrPreHire - - UpdateCorehrPreHire - - QueryCorehrPreHire - - CreateCorehrPreHireRestoreFlowInstance + - QueryCoreHRJobGradeRecentChange + - QueryCoreHRJobLevelRecentChange + - CreateCoreHRLocationAddress + - DeleteCoreHRLocationAddress + - UpdateCoreHRLocationAddress + - CreateCoreHRLocationActive + - UpdateCoreHRLocation + - QueryCoreHRLocationMultiTimeline + - QueryCoreHRLocationRecentChange + - CreateCoreHROffboardingEdit + - RevokeCoreHROffboarding + - SubmitCoreHROffboardingV2 + - CreateCoreHRPathwayActive + - BatchGetCoreHRPathway + - CreateCoreHRPathway + - DeleteCoreHRPathway + - UpdateCoreHRPathway + - CreateCoreHRPositionActive + - CreateCoreHRPosition + - DeleteCoreHRPosition + - UpdateCoreHRPosition + - QueryCoreHRPosition + - QueryCoreHRPositionRecentChange + - CompleteCoreHRPreHire + - DeleteCoreHRPreHire + - UpdateCoreHRPreHire + - QueryCoreHRPreHire + - RestoreCoreHRPreHireFlowInstance - SearchCoreHRPreHire - - CreateCorehrPreHireTransformOnboardingTask - - CreateCorehrPreHireTransitTask - - CreateCorehrPreHireWithdrawOnboarding - - CreateCorehrProbationSubmit - - CreateCorehrProbationWithdraw - - UpdateCorehrProcessApprover - - UpdateCorehrProcessExtra - - GetCorehrProcessFormVariableData - - CreateCorehrProcessQueryFlowDataTemplate - - UpdateCorehrProcessTransfer - - GetCorehrProcessFlowVariableData - - UpdateCorehrProcessRevoke - - CreateCorehrProcessStart - - UpdateCorehrProcessWithdraw - - CreateCorehrReportDetailRowBatchdelete - - CreateCorehrReportDetailRowBatchsave - - DownloadCorehrSignatureFile - - ListCorehrSignatureFile - - ListCorehrSignatureFileByBizID - - QueryCorehrSignatureFile - - CreateCorehrSignatureFileTerminate - - ListCorehrSignatureNodeByFileID - - SearchCorehrSignatureTemplate - - ListCorehrSignatureTemplateInfoWithThumbnail - - ListCorehrWorkforcePlan - - BatchQueryCorehrWorkforcePlanDetail - - BatchCorehrWorkforcePlanDetailV2 - - CreateCorehrWorkforcePlanDetailRowBatchdelete - - CreateCorehrWorkforcePlanDetailRowBatchsave - - AddCorehrAuthorizationRoleAssign + - TransformCoreHRPreHireOnboardingTask + - TransitCoreHRPreHireTask + - WithdrawCoreHRPreHireOnboarding + - SubmitCoreHRProbation + - WithdrawCoreHRProbation + - UpdateCoreHRProcessApprover + - UpdateCoreHRProcessExtra + - GetCoreHRProcessFormVariableData + - QueryCoreHRProcessFlowDataTemplate + - UpdateCoreHRProcessTransfer + - GetCoreHRProcessFlowVariableData + - UpdateCoreHRProcessRevoke + - CreateCoreHRProcessStart + - UpdateCoreHRProcessWithdraw + - BatchDeleteCoreHRReportDetailRow + - BatchSaveCoreHRReportDetailRow + - DownloadCoreHRSignatureFile + - ListCoreHRSignatureFile + - ListCoreHRSignatureFileByBizID + - QueryCoreHRSignatureFile + - TerminateCoreHRSignatureFile + - ListCoreHRSignatureNodeByFileID + - SearchCoreHRSignatureTemplate + - ListCoreHRSignatureTemplateInfoWithThumbnail + - ListCoreHRWorkforcePlan + - BatchQueryCoreHRWorkforcePlanDetail + - BatchQueryCoreHRWorkforcePlanDetailV2 + - BatchDeleteCoreHRWorkforcePlanDetailRow + - BatchSaveCoreHRWorkforcePlanDetailRow + - AddCoreHRAuthorizationRoleAssign - GetCoreHRAuthorization - GetCoreHRAuthorizationList - - RemoveCorehrAuthorizationRoleAssign - - UpdateCorehrAuthorizationRoleAssign - - CreateCorehrCommonDataIDConvert - - AddCorehrCommonDataMetaDataEnumOption - - CreateCorehrCommonDataMetaDataEditEnumOption + - RemoveCoreHRAuthorizationRoleAssign + - UpdateCoreHRAuthorizationRoleAssign + - CreateCoreHRCommonDataIDConvert + - AddCoreHRCommonDataMetaDataEnumOption + - CreateCoreHRCommonDataMetaDataEditEnumOption - MatchCoreHRCompensationStandard - - GetCorehrLeaveCalendarByScope - - CreateCorehrLeaveWorkCalendar - - CreateCorehrLeaveWorkCalendarDate - - CreateCorehrPerson - - UpdateCorehrPerson + - GetCoreHRLeaveCalendarByScope + - CreateCoreHRLeaveWorkCalendar + - CreateCoreHRLeaveWorkCalendarDate + - CreateCoreHRPerson + - UpdateCoreHRPerson + - CreateCoreHRJobChangeV2 + - CreateCoreHRPersonV1 + - DeleteCoreHRDepartmentV2 + - DeleteCoreHRPreHireV2 + - GetCoreHRProcessFormVariableDataV2 + - UpdateCoreHRDepartmentV2 + - UpdateCoreHRPersonV1 + - UpdateCoreHRPreHireV2 - Directory - CreateDirectoryCollaborationRule - DeleteDirectoryCollaborationRule @@ -874,8 +870,6 @@ API 总数: 1622, 事件总数: 153 - CreateDirectoryEmployeeResurrect - SearchDirectoryEmployee - UpdateDirectoryEmployeeToBeResigned -- Docs - - GetDocsContent - Drive - AddSheetDimensionRange - AddWikiSpaceMember @@ -1038,7 +1032,17 @@ API 总数: 1622, 事件总数: 153 - UpdateWikiSpaceSetting - UploadDriveFile - UploadDriveMedia + - CreateBaseAppRole + - ListBaseAppRole + - UpdateBaseAppRole + - CreateCcmDocsDefaultDocsApiMeta + - CreateBoardWhiteboardNode + - CreateBoardWhiteboardNodePlantuml - GetWhiteboardNodeList + - DownloadBoardWhiteboardAsImage + - GetBoardWhiteboardTheme + - UpdateBoardWhiteboardTheme + - GetDocsContent - BatchDeleteDocxChatAnnouncementBlockChildren - CreateDocxChatAnnouncementBlockChildren - GetDocxChatAnnouncementBlockChildren @@ -1061,13 +1065,13 @@ API 总数: 1622, 事件总数: 153 - EventV2URLPreviewGet - EventV2HireApplicationStageChangedV1 - EventV2HireApplicationDeletedV1 - - EventV2CorehrJobCreatedV1 - - EventV2CorehrJobUpdatedV1 - - EventV2CorehrJobDeletedV1 - - EventV2CorehrProcessUpdatedV2 - - EventV2CorehrProcessNodeUpdatedV2 - - EventV2CorehrProcessApproverUpdatedV2 - - EventV2CorehrProcessCcUpdatedV2 + - EventV2CoreHRJobCreatedV1 + - EventV2CoreHRJobUpdatedV1 + - EventV2CoreHRJobDeletedV1 + - EventV2CoreHRProcessUpdatedV2 + - EventV2CoreHRProcessNodeUpdatedV2 + - EventV2CoreHRProcessApproverUpdatedV2 + - EventV2CoreHRProcessCcUpdatedV2 - EventV2ContactCustomAttrEventUpdatedV3 - EventV2ApplicationApplicationCreatedV6 - EventV1AppOpen @@ -1175,34 +1179,34 @@ API 总数: 1622, 事件总数: 153 - EventV2VCReserveConfigUpdatedV1 - EventV2ApplicationBotMenuV6 - EventV2HireOfferStatusChangedV1 - - EventV2CorehrEmploymentCreatedV1 - - EventV2CorehrEmploymentUpdatedV1 - - EventV2CorehrEmploymentDeletedV1 - - EventV2CorehrPersonCreatedV1 - - EventV2CorehrPersonUpdatedV1 - - EventV2CorehrPersonDeletedV1 - - EventV2CorehrDepartmentCreatedV1 - - EventV2CorehrDepartmentUpdatedV1 - - EventV2CorehrDepartmentDeletedV1 - - EventV2CorehrJobDataEmployedV1 - - EventV2CorehrContractCreatedV1 - - EventV2CorehrEmploymentConvertedV1 - - EventV2CorehrJobChangeUpdatedV1 - - EventV2CorehrJobDataChangedV1 - - EventV2CorehrOffboardingUpdatedV1 - - EventV2CorehrEmploymentResignedV1 - - EventV2CorehrOrgRoleAuthorizationUpdatedV1 + - EventV2CoreHREmploymentCreatedV1 + - EventV2CoreHREmploymentUpdatedV1 + - EventV2CoreHREmploymentDeletedV1 + - EventV2CoreHRPersonCreatedV1 + - EventV2CoreHRPersonUpdatedV1 + - EventV2CoreHRPersonDeletedV1 + - EventV2CoreHRDepartmentCreatedV1 + - EventV2CoreHRDepartmentUpdatedV1 + - EventV2CoreHRDepartmentDeletedV1 + - EventV2CoreHRJobDataEmployedV1 + - EventV2CoreHRContractCreatedV1 + - EventV2CoreHREmploymentConvertedV1 + - EventV2CoreHRJobChangeUpdatedV1 + - EventV2CoreHRJobDataChangedV1 + - EventV2CoreHROffboardingUpdatedV1 + - EventV2CoreHREmploymentResignedV1 + - EventV2CoreHROrgRoleAuthorizationUpdatedV1 - EventV2HireEHRImportTaskForInternshipOfferImportedV1 - EventV2HireEHRImportTaskImportedV1 - - EventV2CorehrProbationUpdatedV2 - - EventV2CorehrPreHireUpdatedV1 + - EventV2CoreHRProbationUpdatedV2 + - EventV2CoreHRPreHireUpdatedV1 - EventV2HireEcoAccountCreatedV1 - EventV2HireEcoBackgroundCheckCreatedV1 - EventV2HireEcoBackgroundCheckCanceledV1 - EventV2HireEcoExamCreatedV1 - EventV2HireReferralAccountAssetsUpdateV1 - - EventV2CorehrContractDeletedV1 - - EventV2CorehrContractUpdatedV1 + - EventV2CoreHRContractDeletedV1 + - EventV2CoreHRContractUpdatedV1 - EventV1TripApproval - EventV2CardActionTrigger - EventV2CorehrOffboardingChecklistUpdatedV2 @@ -1347,7 +1351,7 @@ API 总数: 1622, 事件总数: 153 - CreateHireAgencyProtect - CreateHireAgencyProtectSearch - QueryHireAgency - - CreateHireApplicationCancelOnboard + - CancelHireApplicationOnboard - GetHireApplicationDetail - CreateHireApplicationRecover - TransferHireApplicationStage @@ -1414,8 +1418,8 @@ API 总数: 1622, 事件总数: 153 - ListHireSubject - CreateHireTalentExternalInfo - UpdateHireTalentExternalInfo - - CreateHireTalentCombinedCreate - - CreateHireTalentCombinedUpdate + - CreateHireTalentCombined + - UpdateHireTalentCombined - GetHireTalentList - CreateHireTalentOnboardStatus - RemoveHireTalentToFolder @@ -1538,17 +1542,15 @@ API 总数: 1622, 事件总数: 153 - GetMailUserMailboxMessage - GetMailUserMailboxMessageByCard - ListMailUserMailboxMessage - - CreateMailUserMailboxMessageSend + - SendMailUserMailboxMessage - CreateMailUserMailboxRule - DeleteMailUserMailboxRule - ListMailUserMailboxRule - - CreateMailUserMailboxRuleReorder + - ReorderMailUserMailboxRule - UpdateMailUserMailboxRule - ApplyMailRule - GetMailMessageSubscription - SubscribeMailMessage -- MeetingRoom - - GetMeetingRoomCustomization - Message - SendEphemeralMessage - SendUrgentAppMessage @@ -1627,7 +1629,7 @@ API 总数: 1622, 事件总数: 153 - GetOKRReview - Passport - GetPassportSession - - CreatePassportSessionLogout + - LogoutPassportSession - Payroll - ListPayrollAcctItem - ListPayrollCostAllocationDetail @@ -1690,7 +1692,7 @@ API 总数: 1622, 事件总数: 153 - DeleteSearchSchema - GetSearchSchema - CreateSearchSchema - - SearchSearchDocWiki + - SearchDocWiki - SecurityAndCompliance - ListSecurityAndComplianceOpenapiLogData - UpdateSecurityAndComplianceDeviceApplyRecord @@ -1860,21 +1862,21 @@ API 总数: 1622, 事件总数: 153 - SetVCRoomConfig - SetVCRoomConfigCheckboardAccessCode - SetVCRoomConfigRoomAccessCode -- VCMeeting - ListVCMeetingDefaultRoom - - CreateVCMeetingDefaultBuildingCreate + - CreateVCMeetingDefaultBuilding - GetVCMeetingDefaultRoomBatchGet - - CreateVCMeetingDefaultBuildingUpdate - - CreateVCMeetingDefaultRoomCreate - - CreateVCMeetingDefaultRoomUpdate - - CreateVCMeetingDefaultBuildingDelete + - UpdateVCMeetingDefaultBuilding + - CreateVCMeetingDefaultRoom + - UpdateVCMeetingDefaultRoom + - DeleteVCMeetingDefaultBuilding - ListVCMeetingDefaultCountry - GetVCMeetingDefaultBuildingBatchGetID - ListVCMeetingDefaultDistrict - - CreateVCMeetingDefaultRoomDelete + - DeleteVCMeetingDefaultRoom - GetVCMeetingDefaultRoomBatchGetID - ListVCMeetingDefaultBuilding - GetVCMeetingDefaultBuildingBatchGet + - GetMeetingRoomCustomization - Verification - GetVerification diff --git a/api_acs_device_list.go b/api_acs_device_list.go index f693d2c0..07643cd4 100644 --- a/api_acs_device_list.go +++ b/api_acs_device_list.go @@ -57,7 +57,8 @@ func (r *Mock) UnMockACSGetACSDeviceList() { } // GetACSDeviceListReq ... -type GetACSDeviceListReq struct{} +type GetACSDeviceListReq struct { +} // GetACSDeviceListResp ... type GetACSDeviceListResp struct { diff --git a/api_aily_app_skill_start.go b/api_aily_app_skill_start.go index 1e7046a5..9b55a37d 100644 --- a/api_aily_app_skill_start.go +++ b/api_aily_app_skill_start.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateAilyAppSkillStart 该 API 用于调用某个 Aily 应用的特定技能, 支持指定技能入参;并同步返回技能执行的结果。 +// StartAilyAppSkill 该 API 用于调用某个 Aily 应用的特定技能, 支持指定技能入参;并同步返回技能执行的结果。 // // 更多信息及示例代码, 可参考 [Aily 技能 OpenAPI 接口说明](https://bytedance.larkoffice.com/wiki/ZkKnwxogliNj3ik9ppEc0cFUnAd)。 // > 技能 API 能显著简化业务系统的集成工作(单轮 API 调用)。技能 API 提供更贴合系统间服务调用的参数传递模式(JSON 入参 / 出参), 且无需通过文本消息对话的方式调用 AI 能力。 @@ -31,15 +31,15 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/app-skill/start // new doc: https://open.feishu.cn/document/aily-v1/app-skill/start -func (r *AilyService) CreateAilyAppSkillStart(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) { - if r.cli.mock.mockAilyCreateAilyAppSkillStart != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilyAppSkillStart mock enable") - return r.cli.mock.mockAilyCreateAilyAppSkillStart(ctx, request, options...) +func (r *AilyService) StartAilyAppSkill(ctx context.Context, request *StartAilyAppSkillReq, options ...MethodOptionFunc) (*StartAilyAppSkillResp, *Response, error) { + if r.cli.mock.mockAilyStartAilyAppSkill != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#StartAilyAppSkill mock enable") + return r.cli.mock.mockAilyStartAilyAppSkill(ctx, request, options...) } req := &RawRequestReq{ Scope: "Aily", - API: "CreateAilyAppSkillStart", + API: "StartAilyAppSkill", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/aily/v1/apps/:app_id/skills/:skill_id/start", Body: request, @@ -47,53 +47,53 @@ func (r *AilyService) CreateAilyAppSkillStart(ctx context.Context, request *Crea NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(createAilyAppSkillStartResp) + resp := new(startAilyAppSkillResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAilyCreateAilyAppSkillStart mock AilyCreateAilyAppSkillStart method -func (r *Mock) MockAilyCreateAilyAppSkillStart(f func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error)) { - r.mockAilyCreateAilyAppSkillStart = f +// MockAilyStartAilyAppSkill mock AilyStartAilyAppSkill method +func (r *Mock) MockAilyStartAilyAppSkill(f func(ctx context.Context, request *StartAilyAppSkillReq, options ...MethodOptionFunc) (*StartAilyAppSkillResp, *Response, error)) { + r.mockAilyStartAilyAppSkill = f } -// UnMockAilyCreateAilyAppSkillStart un-mock AilyCreateAilyAppSkillStart method -func (r *Mock) UnMockAilyCreateAilyAppSkillStart() { - r.mockAilyCreateAilyAppSkillStart = nil +// UnMockAilyStartAilyAppSkill un-mock AilyStartAilyAppSkill method +func (r *Mock) UnMockAilyStartAilyAppSkill() { + r.mockAilyStartAilyAppSkill = nil } -// CreateAilyAppSkillStartReq ... -type CreateAilyAppSkillStartReq struct { - XAilyBizUserID *string `header:"X-Aily-BizUserID" json:"-"` // 标识创建会话的唯一用户 ID> 建议使用唯一内部 ID 或其他可标识用户唯一身份的字段(如飞书账号的 `user_id`), 可用于分析来自 API 的具体用户示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `255` 字符 - AppID string `path:"app_id" json:"-"` // Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_e7004f87f1__c" 长度范围: `0` ~ `64` 字符 - SkillID string `path:"skill_id" json:"-"` // 技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)示例值: "skill_6cc6166178ca" 长度范围: `0` ~ `32` 字符 - GlobalVariable *CreateAilyAppSkillStartReqGlobalVariable `json:"global_variable,omitempty"` // 技能的全局变量 - Input *string `json:"input,omitempty"` // 技能的自定义变量示例值: "{\"custom_string\":\"my string\", \"custom_integer\":22}" 长度范围: `0` ~ `40960` 字符 +// StartAilyAppSkillReq ... +type StartAilyAppSkillReq struct { + XAilyBizUserID *string `header:"X-Aily-BizUserID" json:"-"` // 标识创建会话的唯一用户 ID> 建议使用唯一内部 ID 或其他可标识用户唯一身份的字段(如飞书账号的 `user_id`), 可用于分析来自 API 的具体用户示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `255` 字符 + AppID string `path:"app_id" json:"-"` // Aily 应用 ID(`spring_xxx__c`), 可以在 Aily 应用开发页面的浏览器地址里获取示例值: "spring_e7004f87f1__c" 长度范围: `0` ~ `64` 字符 + SkillID string `path:"skill_id" json:"-"` // 技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)示例值: "skill_6cc6166178ca" 长度范围: `0` ~ `32` 字符 + GlobalVariable *StartAilyAppSkillReqGlobalVariable `json:"global_variable,omitempty"` // 技能的全局变量 + Input *string `json:"input,omitempty"` // 技能的自定义变量示例值: "{\"custom_string\":\"my string\", \"custom_integer\":22}" 长度范围: `0` ~ `40960` 字符 } -// CreateAilyAppSkillStartReqGlobalVariable ... -type CreateAilyAppSkillStartReqGlobalVariable struct { - Query *string `json:"query,omitempty"` // 触发技能的消息文本;即用户在飞书机器人等渠道对话输入的内容示例值: "你好" 长度范围: `0` ~ `40960` 字符 - Files []string `json:"files,omitempty"` // 触发技能的文件信息(如 OCR 节点等所需消费的图片文件)> 如技能不需要文件, `files` 参数传空即可示例值: ["file_4d9nu1ev3a2rq"] 长度范围: `0` ~ `32` - Channel *CreateAilyAppSkillStartReqGlobalVariableChannel `json:"channel,omitempty"` // 渠道信息 +// StartAilyAppSkillReqGlobalVariable ... +type StartAilyAppSkillReqGlobalVariable struct { + Query *string `json:"query,omitempty"` // 触发技能的消息文本;即用户在飞书机器人等渠道对话输入的内容示例值: "你好" 长度范围: `0` ~ `40960` 字符 + Files []string `json:"files,omitempty"` // 触发技能的文件信息(如 OCR 节点等所需消费的图片文件)> 如技能不需要文件, `files` 参数传空即可示例值: ["file_4d9nu1ev3a2rq"] 长度范围: `0` ~ `32` + Channel *StartAilyAppSkillReqGlobalVariableChannel `json:"channel,omitempty"` // 渠道信息 } -// CreateAilyAppSkillStartReqGlobalVariableChannel ... -type CreateAilyAppSkillStartReqGlobalVariableChannel struct { +// StartAilyAppSkillReqGlobalVariableChannel ... +type StartAilyAppSkillReqGlobalVariableChannel struct { Variables *string `json:"variables,omitempty"` // 自定义传入的变量;可在 Workflow 技能全局变量中消费示例值: "{"custom_key": "custom_value"}" 长度范围: `0` ~ `255` 字符 } -// CreateAilyAppSkillStartResp ... -type CreateAilyAppSkillStartResp struct { +// StartAilyAppSkillResp ... +type StartAilyAppSkillResp struct { Output string `json:"output,omitempty"` // 技能的输出 Status string `json:"status,omitempty"` // 技能的执行状态 } -// createAilyAppSkillStartResp ... -type createAilyAppSkillStartResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAilyAppSkillStartResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// startAilyAppSkillResp ... +type startAilyAppSkillResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *StartAilyAppSkillResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_application_flow_execute.go b/api_apaas_application_flow_execute.go index 8bf78a3c..81625443 100644 --- a/api_apaas_application_flow_execute.go +++ b/api_apaas_application_flow_execute.go @@ -21,43 +21,43 @@ import ( "context" ) -// CreateAPaaSApplicationFlowExecute 执行相应流程 +// ExecuteAPaaSApplicationFlow 执行相应流程 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-flow/execute // new doc: https://open.feishu.cn/document/apaas-v1/flow/application-flow/execute -func (r *APaaSService) CreateAPaaSApplicationFlowExecute(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) { - if r.cli.mock.mockAPaaSCreateAPaaSApplicationFlowExecute != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationFlowExecute mock enable") - return r.cli.mock.mockAPaaSCreateAPaaSApplicationFlowExecute(ctx, request, options...) +func (r *APaaSService) ExecuteAPaaSApplicationFlow(ctx context.Context, request *ExecuteAPaaSApplicationFlowReq, options ...MethodOptionFunc) (*ExecuteAPaaSApplicationFlowResp, *Response, error) { + if r.cli.mock.mockAPaaSExecuteAPaaSApplicationFlow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#ExecuteAPaaSApplicationFlow mock enable") + return r.cli.mock.mockAPaaSExecuteAPaaSApplicationFlow(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "CreateAPaaSApplicationFlowExecute", + API: "ExecuteAPaaSApplicationFlow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/flows/:flow_id/execute", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createAPaaSApplicationFlowExecuteResp) + resp := new(executeAPaaSApplicationFlowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSCreateAPaaSApplicationFlowExecute mock APaaSCreateAPaaSApplicationFlowExecute method -func (r *Mock) MockAPaaSCreateAPaaSApplicationFlowExecute(f func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error)) { - r.mockAPaaSCreateAPaaSApplicationFlowExecute = f +// MockAPaaSExecuteAPaaSApplicationFlow mock APaaSExecuteAPaaSApplicationFlow method +func (r *Mock) MockAPaaSExecuteAPaaSApplicationFlow(f func(ctx context.Context, request *ExecuteAPaaSApplicationFlowReq, options ...MethodOptionFunc) (*ExecuteAPaaSApplicationFlowResp, *Response, error)) { + r.mockAPaaSExecuteAPaaSApplicationFlow = f } -// UnMockAPaaSCreateAPaaSApplicationFlowExecute un-mock APaaSCreateAPaaSApplicationFlowExecute method -func (r *Mock) UnMockAPaaSCreateAPaaSApplicationFlowExecute() { - r.mockAPaaSCreateAPaaSApplicationFlowExecute = nil +// UnMockAPaaSExecuteAPaaSApplicationFlow un-mock APaaSExecuteAPaaSApplicationFlow method +func (r *Mock) UnMockAPaaSExecuteAPaaSApplicationFlow() { + r.mockAPaaSExecuteAPaaSApplicationFlow = nil } -// CreateAPaaSApplicationFlowExecuteReq ... -type CreateAPaaSApplicationFlowExecuteReq struct { +// ExecuteAPaaSApplicationFlowReq ... +type ExecuteAPaaSApplicationFlowReq struct { Namespace string `path:"namespace" json:"-"` // 应用命名空间(低代码平台->我的应用->应用管理->可查看到)示例值: "package_7344545d87__c" FlowID string `path:"flow_id" json:"-"` // 流程API名称(低代码平台->我的应用->开发->流程->展开为表格->可查看到)示例值: "deleteObject_99c656599f" IsAsync *bool `json:"is_async,omitempty"` // 是否异步执行(不传默认false)示例值: true @@ -67,8 +67,8 @@ type CreateAPaaSApplicationFlowExecuteReq struct { Operator string `json:"operator,omitempty"` // 操作人(_id和email至少填一个, 低代码平台用户的 id和email, 需要从低代码平台获取, json字符串)示例值: "`{\"_id\": 1111, \"email\": \"apaas@bytedance.com\"}`" } -// CreateAPaaSApplicationFlowExecuteResp ... -type CreateAPaaSApplicationFlowExecuteResp struct { +// ExecuteAPaaSApplicationFlowResp ... +type ExecuteAPaaSApplicationFlowResp struct { Status string `json:"status,omitempty"` // 状态 OutParams string `json:"out_params,omitempty"` // 输出参数 ExecutionID string `json:"execution_id,omitempty"` // 执行id @@ -76,10 +76,10 @@ type CreateAPaaSApplicationFlowExecuteResp struct { Code string `json:"code,omitempty"` // code } -// createAPaaSApplicationFlowExecuteResp ... -type createAPaaSApplicationFlowExecuteResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAPaaSApplicationFlowExecuteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// executeAPaaSApplicationFlowResp ... +type executeAPaaSApplicationFlowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ExecuteAPaaSApplicationFlowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_application_function_invoke.go b/api_apaas_application_function_invoke.go index d0d93558..c2d491f2 100644 --- a/api_apaas_application_function_invoke.go +++ b/api_apaas_application_function_invoke.go @@ -21,57 +21,57 @@ import ( "context" ) -// CreateAPaaSApplicationFunctionInvoke 执行基于飞书应用引擎开发的应用的自定义函数 +// InvokeAPaaSApplicationFunction 执行基于飞书应用引擎开发的应用的自定义函数 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-function/invoke // new doc: https://open.feishu.cn/document/apaas-v1/application-function/invoke -func (r *APaaSService) CreateAPaaSApplicationFunctionInvoke(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) { - if r.cli.mock.mockAPaaSCreateAPaaSApplicationFunctionInvoke != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationFunctionInvoke mock enable") - return r.cli.mock.mockAPaaSCreateAPaaSApplicationFunctionInvoke(ctx, request, options...) +func (r *APaaSService) InvokeAPaaSApplicationFunction(ctx context.Context, request *InvokeAPaaSApplicationFunctionReq, options ...MethodOptionFunc) (*InvokeAPaaSApplicationFunctionResp, *Response, error) { + if r.cli.mock.mockAPaaSInvokeAPaaSApplicationFunction != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#InvokeAPaaSApplicationFunction mock enable") + return r.cli.mock.mockAPaaSInvokeAPaaSApplicationFunction(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "CreateAPaaSApplicationFunctionInvoke", + API: "InvokeAPaaSApplicationFunction", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/functions/:function_api_name/invoke", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createAPaaSApplicationFunctionInvokeResp) + resp := new(invokeAPaaSApplicationFunctionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSCreateAPaaSApplicationFunctionInvoke mock APaaSCreateAPaaSApplicationFunctionInvoke method -func (r *Mock) MockAPaaSCreateAPaaSApplicationFunctionInvoke(f func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error)) { - r.mockAPaaSCreateAPaaSApplicationFunctionInvoke = f +// MockAPaaSInvokeAPaaSApplicationFunction mock APaaSInvokeAPaaSApplicationFunction method +func (r *Mock) MockAPaaSInvokeAPaaSApplicationFunction(f func(ctx context.Context, request *InvokeAPaaSApplicationFunctionReq, options ...MethodOptionFunc) (*InvokeAPaaSApplicationFunctionResp, *Response, error)) { + r.mockAPaaSInvokeAPaaSApplicationFunction = f } -// UnMockAPaaSCreateAPaaSApplicationFunctionInvoke un-mock APaaSCreateAPaaSApplicationFunctionInvoke method -func (r *Mock) UnMockAPaaSCreateAPaaSApplicationFunctionInvoke() { - r.mockAPaaSCreateAPaaSApplicationFunctionInvoke = nil +// UnMockAPaaSInvokeAPaaSApplicationFunction un-mock APaaSInvokeAPaaSApplicationFunction method +func (r *Mock) UnMockAPaaSInvokeAPaaSApplicationFunction() { + r.mockAPaaSInvokeAPaaSApplicationFunction = nil } -// CreateAPaaSApplicationFunctionInvokeReq ... -type CreateAPaaSApplicationFunctionInvokeReq struct { +// InvokeAPaaSApplicationFunctionReq ... +type InvokeAPaaSApplicationFunctionReq struct { Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" FunctionApiName string `path:"function_api_name" json:"-"` // 函数 API 名称示例值: "printParam" Params *string `json:"params,omitempty"` // 函数输入参数(JSON 序列化后的字符串)示例值: "{\"key1\":\"value1\", \"key2\":\"value2\", \"key3\":1718313981794}" } -// CreateAPaaSApplicationFunctionInvokeResp ... -type CreateAPaaSApplicationFunctionInvokeResp struct { +// InvokeAPaaSApplicationFunctionResp ... +type InvokeAPaaSApplicationFunctionResp struct { Result string `json:"result,omitempty"` // 函数执行的返回结果(JSON 序列化后的字符串) } -// createAPaaSApplicationFunctionInvokeResp ... -type createAPaaSApplicationFunctionInvokeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAPaaSApplicationFunctionInvokeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// invokeAPaaSApplicationFunctionResp ... +type invokeAPaaSApplicationFunctionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *InvokeAPaaSApplicationFunctionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_application_object_oql_query.go b/api_apaas_application_object_oql_query.go index 50448fcb..09aef454 100644 --- a/api_apaas_application_object_oql_query.go +++ b/api_apaas_application_object_oql_query.go @@ -21,59 +21,59 @@ import ( "context" ) -// CreateAPaaSApplicationObjectOqlQuery 在应用内执行 OQL 语句 +// QueryAPaaSApplicationObjectOql 在应用内执行 OQL 语句 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/application-object/oql_query // new doc: https://open.feishu.cn/document/apaas-v1/application-object-record/oql_query -func (r *APaaSService) CreateAPaaSApplicationObjectOqlQuery(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) { - if r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectOqlQuery != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSApplicationObjectOqlQuery mock enable") - return r.cli.mock.mockAPaaSCreateAPaaSApplicationObjectOqlQuery(ctx, request, options...) +func (r *APaaSService) QueryAPaaSApplicationObjectOql(ctx context.Context, request *QueryAPaaSApplicationObjectOqlReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectOqlResp, *Response, error) { + if r.cli.mock.mockAPaaSQueryAPaaSApplicationObjectOql != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#QueryAPaaSApplicationObjectOql mock enable") + return r.cli.mock.mockAPaaSQueryAPaaSApplicationObjectOql(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "CreateAPaaSApplicationObjectOqlQuery", + API: "QueryAPaaSApplicationObjectOql", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/applications/:namespace/objects/oql_query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createAPaaSApplicationObjectOqlQueryResp) + resp := new(queryAPaaSApplicationObjectOqlResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSCreateAPaaSApplicationObjectOqlQuery mock APaaSCreateAPaaSApplicationObjectOqlQuery method -func (r *Mock) MockAPaaSCreateAPaaSApplicationObjectOqlQuery(f func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error)) { - r.mockAPaaSCreateAPaaSApplicationObjectOqlQuery = f +// MockAPaaSQueryAPaaSApplicationObjectOql mock APaaSQueryAPaaSApplicationObjectOql method +func (r *Mock) MockAPaaSQueryAPaaSApplicationObjectOql(f func(ctx context.Context, request *QueryAPaaSApplicationObjectOqlReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectOqlResp, *Response, error)) { + r.mockAPaaSQueryAPaaSApplicationObjectOql = f } -// UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery un-mock APaaSCreateAPaaSApplicationObjectOqlQuery method -func (r *Mock) UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery() { - r.mockAPaaSCreateAPaaSApplicationObjectOqlQuery = nil +// UnMockAPaaSQueryAPaaSApplicationObjectOql un-mock APaaSQueryAPaaSApplicationObjectOql method +func (r *Mock) UnMockAPaaSQueryAPaaSApplicationObjectOql() { + r.mockAPaaSQueryAPaaSApplicationObjectOql = nil } -// CreateAPaaSApplicationObjectOqlQueryReq ... -type CreateAPaaSApplicationObjectOqlQueryReq struct { +// QueryAPaaSApplicationObjectOqlReq ... +type QueryAPaaSApplicationObjectOqlReq struct { Namespace string `path:"namespace" json:"-"` // 应用命名空间示例值: "package_test__c" 长度范围: `0` ~ `256` 字符 Query string `json:"query,omitempty"` // 待执行的 OQL 语句示例值: "SELECT _id, _name FROM _user WHERE _type = $1 AND _accountStatus = $user_status LIMIT 10" Args *string `json:"args,omitempty"` // 用于指定 OQL 语句中匿名参数的具体值示例值: "[\"_employee\"]" NamedArgs *string `json:"named_args,omitempty"` // 用于指定 OQL 语句中具名参数的具体值示例值: "{\"user_status\" : \"_used\"}" } -// CreateAPaaSApplicationObjectOqlQueryResp ... -type CreateAPaaSApplicationObjectOqlQueryResp struct { +// QueryAPaaSApplicationObjectOqlResp ... +type QueryAPaaSApplicationObjectOqlResp struct { Columns []string `json:"columns,omitempty"` // 每一列的标题 Rows string `json:"rows,omitempty"` // 每一行的值, 以「key-value」的形式返回 } -// createAPaaSApplicationObjectOqlQueryResp ... -type createAPaaSApplicationObjectOqlQueryResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAPaaSApplicationObjectOqlQueryResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// queryAPaaSApplicationObjectOqlResp ... +type queryAPaaSApplicationObjectOqlResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryAPaaSApplicationObjectOqlResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_enum_get.go b/api_apaas_workspace_enum_get.go index e2112e07..4aa88ffe 100644 --- a/api_apaas_workspace_enum_get.go +++ b/api_apaas_workspace_enum_get.go @@ -21,66 +21,66 @@ import ( "context" ) -// GetAPaaSWorkspaceEnumGet 获取自定义枚举详细信息 +// GetAPaaSWorkspaceEnum 获取自定义枚举详细信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-enum/enum_get -func (r *APaaSService) GetAPaaSWorkspaceEnumGet(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) { - if r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnumGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceEnumGet mock enable") - return r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnumGet(ctx, request, options...) +func (r *APaaSService) GetAPaaSWorkspaceEnum(ctx context.Context, request *GetAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnum != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceEnum mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceEnum(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "GetAPaaSWorkspaceEnumGet", + API: "GetAPaaSWorkspaceEnum", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/enums/:enum_name", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(getAPaaSWorkspaceEnumGetResp) + resp := new(getAPaaSWorkspaceEnumResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSGetAPaaSWorkspaceEnumGet mock APaaSGetAPaaSWorkspaceEnumGet method -func (r *Mock) MockAPaaSGetAPaaSWorkspaceEnumGet(f func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error)) { - r.mockAPaaSGetAPaaSWorkspaceEnumGet = f +// MockAPaaSGetAPaaSWorkspaceEnum mock APaaSGetAPaaSWorkspaceEnum method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceEnum(f func(ctx context.Context, request *GetAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceEnum = f } -// UnMockAPaaSGetAPaaSWorkspaceEnumGet un-mock APaaSGetAPaaSWorkspaceEnumGet method -func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceEnumGet() { - r.mockAPaaSGetAPaaSWorkspaceEnumGet = nil +// UnMockAPaaSGetAPaaSWorkspaceEnum un-mock APaaSGetAPaaSWorkspaceEnum method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceEnum() { + r.mockAPaaSGetAPaaSWorkspaceEnum = nil } -// GetAPaaSWorkspaceEnumGetReq ... -type GetAPaaSWorkspaceEnumGetReq struct { +// GetAPaaSWorkspaceEnumReq ... +type GetAPaaSWorkspaceEnumReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" EnumName string `path:"enum_name" json:"-"` // 枚举名称示例值: "enum_demo_1" } -// GetAPaaSWorkspaceEnumGetResp ... -type GetAPaaSWorkspaceEnumGetResp struct { - Name string `json:"name,omitempty"` // 枚举名称 - Description string `json:"description,omitempty"` // 枚举描述 - Options []string `json:"options,omitempty"` // 枚举值列表 - CreatedAt string `json:"created_at,omitempty"` // 创建时间, 毫秒时间戳 - CreatedBy *GetAPaaSWorkspaceEnumGetRespCreatedBy `json:"created_by,omitempty"` // 创建人 +// GetAPaaSWorkspaceEnumResp ... +type GetAPaaSWorkspaceEnumResp struct { + Name string `json:"name,omitempty"` // 枚举名称 + Description string `json:"description,omitempty"` // 枚举描述 + Options []string `json:"options,omitempty"` // 枚举值列表 + CreatedAt string `json:"created_at,omitempty"` // 创建时间, 毫秒时间戳 + CreatedBy *GetAPaaSWorkspaceEnumRespCreatedBy `json:"created_by,omitempty"` // 创建人 } -// GetAPaaSWorkspaceEnumGetRespCreatedBy ... -type GetAPaaSWorkspaceEnumGetRespCreatedBy struct { +// GetAPaaSWorkspaceEnumRespCreatedBy ... +type GetAPaaSWorkspaceEnumRespCreatedBy struct { ID string `json:"id,omitempty"` // 用户 id, 如 1693861178143800 Name string `json:"name,omitempty"` // 用户姓名, 如王小小 Avatar string `json:"avatar,omitempty"` // 用户头像 URL } -// getAPaaSWorkspaceEnumGetResp ... -type getAPaaSWorkspaceEnumGetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetAPaaSWorkspaceEnumGetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getAPaaSWorkspaceEnumResp ... +type getAPaaSWorkspaceEnumResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceEnumResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_table_get.go b/api_apaas_workspace_table_get.go index cfef0514..01346fba 100644 --- a/api_apaas_workspace_table_get.go +++ b/api_apaas_workspace_table_get.go @@ -21,55 +21,55 @@ import ( "context" ) -// GetAPaaSWorkspaceTableGet 获取数据表详细信息 +// GetAPaaSWorkspaceTable 获取数据表详细信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/table_get -func (r *APaaSService) GetAPaaSWorkspaceTableGet(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) { - if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTableGet mock enable") - return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableGet(ctx, request, options...) +func (r *APaaSService) GetAPaaSWorkspaceTable(ctx context.Context, request *GetAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTable != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTable mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTable(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "GetAPaaSWorkspaceTableGet", + API: "GetAPaaSWorkspaceTable", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(getAPaaSWorkspaceTableGetResp) + resp := new(getAPaaSWorkspaceTableResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSGetAPaaSWorkspaceTableGet mock APaaSGetAPaaSWorkspaceTableGet method -func (r *Mock) MockAPaaSGetAPaaSWorkspaceTableGet(f func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error)) { - r.mockAPaaSGetAPaaSWorkspaceTableGet = f +// MockAPaaSGetAPaaSWorkspaceTable mock APaaSGetAPaaSWorkspaceTable method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceTable(f func(ctx context.Context, request *GetAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceTable = f } -// UnMockAPaaSGetAPaaSWorkspaceTableGet un-mock APaaSGetAPaaSWorkspaceTableGet method -func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTableGet() { - r.mockAPaaSGetAPaaSWorkspaceTableGet = nil +// UnMockAPaaSGetAPaaSWorkspaceTable un-mock APaaSGetAPaaSWorkspaceTable method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTable() { + r.mockAPaaSGetAPaaSWorkspaceTable = nil } -// GetAPaaSWorkspaceTableGetReq ... -type GetAPaaSWorkspaceTableGetReq struct { +// GetAPaaSWorkspaceTableReq ... +type GetAPaaSWorkspaceTableReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" TableName string `path:"table_name" json:"-"` // 数据表表名示例值: "table_name_1" } -// GetAPaaSWorkspaceTableGetResp ... -type GetAPaaSWorkspaceTableGetResp struct { - Name string `json:"name,omitempty"` // 数据表名, 如 student - Description string `json:"description,omitempty"` // 数据表描述 - Columns []*GetAPaaSWorkspaceTableGetRespColumn `json:"columns,omitempty"` // 数据表列 +// GetAPaaSWorkspaceTableResp ... +type GetAPaaSWorkspaceTableResp struct { + Name string `json:"name,omitempty"` // 数据表名, 如 student + Description string `json:"description,omitempty"` // 数据表描述 + Columns []*GetAPaaSWorkspaceTableRespColumn `json:"columns,omitempty"` // 数据表列 } -// GetAPaaSWorkspaceTableGetRespColumn ... -type GetAPaaSWorkspaceTableGetRespColumn struct { +// GetAPaaSWorkspaceTableRespColumn ... +type GetAPaaSWorkspaceTableRespColumn struct { Name string `json:"name,omitempty"` // 列名 Description string `json:"description,omitempty"` // 列描述 DataType string `json:"data_type,omitempty"` // 数据库数据类型 @@ -81,10 +81,10 @@ type GetAPaaSWorkspaceTableGetRespColumn struct { DefaultValue string `json:"default_value,omitempty"` // 默认值 } -// getAPaaSWorkspaceTableGetResp ... -type getAPaaSWorkspaceTableGetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetAPaaSWorkspaceTableGetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getAPaaSWorkspaceTableResp ... +type getAPaaSWorkspaceTableResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceTableResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_table_records_batch_update.go b/api_apaas_workspace_table_records_batch_update.go index 8de0fb93..a9469b94 100644 --- a/api_apaas_workspace_table_records_batch_update.go +++ b/api_apaas_workspace_table_records_batch_update.go @@ -21,56 +21,56 @@ import ( "context" ) -// UpdateAPaaSWorkspaceTableRecordsBatchUpdate 批量更新数据表中的记录 +// BatchUpdateAPaaSWorkspaceTableRecords 批量更新数据表中的记录 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_batch_update -func (r *APaaSService) UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) { - if r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#UpdateAPaaSWorkspaceTableRecordsBatchUpdate mock enable") - return r.cli.mock.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, request, options...) +func (r *APaaSService) BatchUpdateAPaaSWorkspaceTableRecords(ctx context.Context, request *BatchUpdateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSWorkspaceTableRecordsResp, *Response, error) { + if r.cli.mock.mockAPaaSBatchUpdateAPaaSWorkspaceTableRecords != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#BatchUpdateAPaaSWorkspaceTableRecords mock enable") + return r.cli.mock.mockAPaaSBatchUpdateAPaaSWorkspaceTableRecords(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "UpdateAPaaSWorkspaceTableRecordsBatchUpdate", + API: "BatchUpdateAPaaSWorkspaceTableRecords", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records_batch_update", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(updateAPaaSWorkspaceTableRecordsBatchUpdateResp) + resp := new(batchUpdateAPaaSWorkspaceTableRecordsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate mock APaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate method -func (r *Mock) MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(f func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error)) { - r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate = f +// MockAPaaSBatchUpdateAPaaSWorkspaceTableRecords mock APaaSBatchUpdateAPaaSWorkspaceTableRecords method +func (r *Mock) MockAPaaSBatchUpdateAPaaSWorkspaceTableRecords(f func(ctx context.Context, request *BatchUpdateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSWorkspaceTableRecordsResp, *Response, error)) { + r.mockAPaaSBatchUpdateAPaaSWorkspaceTableRecords = f } -// UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate un-mock APaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate method -func (r *Mock) UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate() { - r.mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate = nil +// UnMockAPaaSBatchUpdateAPaaSWorkspaceTableRecords un-mock APaaSBatchUpdateAPaaSWorkspaceTableRecords method +func (r *Mock) UnMockAPaaSBatchUpdateAPaaSWorkspaceTableRecords() { + r.mockAPaaSBatchUpdateAPaaSWorkspaceTableRecords = nil } -// UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq ... -type UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq struct { +// BatchUpdateAPaaSWorkspaceTableRecordsReq ... +type BatchUpdateAPaaSWorkspaceTableRecordsReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" Records []string `json:"records,omitempty"` // 要更新的数据记录列表, 单次支持最多 500条, 每行 record 都必须包含主键 _id, 且不同行要更新的字段需保持一致示例值: "[{\"_id\":\"657fade8-394d-4d86-aa35-0129e3bd7614\", \"age\":10}]" } -// UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp ... -type UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp struct { +// BatchUpdateAPaaSWorkspaceTableRecordsResp ... +type BatchUpdateAPaaSWorkspaceTableRecordsResp struct { RecordIDs []string `json:"record_ids,omitempty"` // 更新的记录唯一ID列表 } -// updateAPaaSWorkspaceTableRecordsBatchUpdateResp ... -type updateAPaaSWorkspaceTableRecordsBatchUpdateResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchUpdateAPaaSWorkspaceTableRecordsResp ... +type batchUpdateAPaaSWorkspaceTableRecordsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchUpdateAPaaSWorkspaceTableRecordsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_table_records_delete.go b/api_apaas_workspace_table_records_delete.go index f3a4e159..91365691 100644 --- a/api_apaas_workspace_table_records_delete.go +++ b/api_apaas_workspace_table_records_delete.go @@ -21,55 +21,55 @@ import ( "context" ) -// DeleteAPaaSWorkspaceTableRecordsDelete 删除数据表中的记录 +// DeleteAPaaSWorkspaceTableRecords 删除数据表中的记录 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_delete -func (r *APaaSService) DeleteAPaaSWorkspaceTableRecordsDelete(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) { - if r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#DeleteAPaaSWorkspaceTableRecordsDelete mock enable") - return r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(ctx, request, options...) +func (r *APaaSService) DeleteAPaaSWorkspaceTableRecords(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsResp, *Response, error) { + if r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecords != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#DeleteAPaaSWorkspaceTableRecords mock enable") + return r.cli.mock.mockAPaaSDeleteAPaaSWorkspaceTableRecords(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "DeleteAPaaSWorkspaceTableRecordsDelete", + API: "DeleteAPaaSWorkspaceTableRecords", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(deleteAPaaSWorkspaceTableRecordsDeleteResp) + resp := new(deleteAPaaSWorkspaceTableRecordsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete mock APaaSDeleteAPaaSWorkspaceTableRecordsDelete method -func (r *Mock) MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(f func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error)) { - r.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete = f +// MockAPaaSDeleteAPaaSWorkspaceTableRecords mock APaaSDeleteAPaaSWorkspaceTableRecords method +func (r *Mock) MockAPaaSDeleteAPaaSWorkspaceTableRecords(f func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsResp, *Response, error)) { + r.mockAPaaSDeleteAPaaSWorkspaceTableRecords = f } -// UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete un-mock APaaSDeleteAPaaSWorkspaceTableRecordsDelete method -func (r *Mock) UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete() { - r.mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete = nil +// UnMockAPaaSDeleteAPaaSWorkspaceTableRecords un-mock APaaSDeleteAPaaSWorkspaceTableRecords method +func (r *Mock) UnMockAPaaSDeleteAPaaSWorkspaceTableRecords() { + r.mockAPaaSDeleteAPaaSWorkspaceTableRecords = nil } -// DeleteAPaaSWorkspaceTableRecordsDeleteReq ... -type DeleteAPaaSWorkspaceTableRecordsDeleteReq struct { +// DeleteAPaaSWorkspaceTableRecordsReq ... +type DeleteAPaaSWorkspaceTableRecordsReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" Filter string `query:"filter" json:"-"` // 筛选条件, 尊许 PostgREST 语法, 详情可查看 `https://docs.postgrest.org/en/v13/references/api/tables_views.html#horizontal-filtering`此处用法和查询数据记录一致。- 示例: 查找 student 表中 age 大于 10 的学生列表: age=gt.10, URLEncode 后拼在 filter 中。示例值: age%3Dgt.10 } -// DeleteAPaaSWorkspaceTableRecordsDeleteResp ... -type DeleteAPaaSWorkspaceTableRecordsDeleteResp struct { +// DeleteAPaaSWorkspaceTableRecordsResp ... +type DeleteAPaaSWorkspaceTableRecordsResp struct { } -// deleteAPaaSWorkspaceTableRecordsDeleteResp ... -type deleteAPaaSWorkspaceTableRecordsDeleteResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteAPaaSWorkspaceTableRecordsDeleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteAPaaSWorkspaceTableRecordsResp ... +type deleteAPaaSWorkspaceTableRecordsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAPaaSWorkspaceTableRecordsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_table_records_get.go b/api_apaas_workspace_table_records_get.go index 921e4830..5a16465e 100644 --- a/api_apaas_workspace_table_records_get.go +++ b/api_apaas_workspace_table_records_get.go @@ -21,42 +21,42 @@ import ( "context" ) -// GetAPaaSWorkspaceTableRecordsGet 查询数据表数据记录 +// GetAPaaSWorkspaceTableRecords 查询数据表数据记录 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_get -func (r *APaaSService) GetAPaaSWorkspaceTableRecordsGet(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) { - if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecordsGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTableRecordsGet mock enable") - return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecordsGet(ctx, request, options...) +func (r *APaaSService) GetAPaaSWorkspaceTableRecords(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecords != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceTableRecords mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceTableRecords(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "GetAPaaSWorkspaceTableRecordsGet", + API: "GetAPaaSWorkspaceTableRecords", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(getAPaaSWorkspaceTableRecordsGetResp) + resp := new(getAPaaSWorkspaceTableRecordsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSGetAPaaSWorkspaceTableRecordsGet mock APaaSGetAPaaSWorkspaceTableRecordsGet method -func (r *Mock) MockAPaaSGetAPaaSWorkspaceTableRecordsGet(f func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error)) { - r.mockAPaaSGetAPaaSWorkspaceTableRecordsGet = f +// MockAPaaSGetAPaaSWorkspaceTableRecords mock APaaSGetAPaaSWorkspaceTableRecords method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceTableRecords(f func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceTableRecords = f } -// UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet un-mock APaaSGetAPaaSWorkspaceTableRecordsGet method -func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet() { - r.mockAPaaSGetAPaaSWorkspaceTableRecordsGet = nil +// UnMockAPaaSGetAPaaSWorkspaceTableRecords un-mock APaaSGetAPaaSWorkspaceTableRecords method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceTableRecords() { + r.mockAPaaSGetAPaaSWorkspaceTableRecords = nil } -// GetAPaaSWorkspaceTableRecordsGetReq ... -type GetAPaaSWorkspaceTableRecordsGetReq struct { +// GetAPaaSWorkspaceTableRecordsReq ... +type GetAPaaSWorkspaceTableRecordsReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数。默认10, 最大500示例值: 10默认值: `10` @@ -66,18 +66,18 @@ type GetAPaaSWorkspaceTableRecordsGetReq struct { Order *string `query:"order" json:"-"` // 排序条件, 如果没指定 asc/desc, 默认为 asc, null 值可排在最前或最后。尊许 PostgREST 语法, 详情可查看`https://docs.postgrest.org/en/v13/references/api/tables_views.html#ordering`示例值: age.desc, score.asc } -// GetAPaaSWorkspaceTableRecordsGetResp ... -type GetAPaaSWorkspaceTableRecordsGetResp struct { +// GetAPaaSWorkspaceTableRecordsResp ... +type GetAPaaSWorkspaceTableRecordsResp struct { HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token Total int64 `json:"total,omitempty"` // 符合条件的记录总数 Items []string `json:"items,omitempty"` // 数据记录列表, 格式为数组序列化后的 JSONString } -// getAPaaSWorkspaceTableRecordsGetResp ... -type getAPaaSWorkspaceTableRecordsGetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetAPaaSWorkspaceTableRecordsGetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getAPaaSWorkspaceTableRecordsResp ... +type getAPaaSWorkspaceTableRecordsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceTableRecordsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_table_records_post.go b/api_apaas_workspace_table_records_post.go index b5de95c2..4d80e514 100644 --- a/api_apaas_workspace_table_records_post.go +++ b/api_apaas_workspace_table_records_post.go @@ -21,42 +21,42 @@ import ( "context" ) -// CreateAPaaSWorkspaceTableRecordsPost 向数据表中添加或更新记录 +// CreateAPaaSWorkspaceTableRecords 向数据表中添加或更新记录 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-table/records_post -func (r *APaaSService) CreateAPaaSWorkspaceTableRecordsPost(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) { - if r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSWorkspaceTableRecordsPost mock enable") - return r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost(ctx, request, options...) +func (r *APaaSService) CreateAPaaSWorkspaceTableRecords(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsResp, *Response, error) { + if r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecords != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#CreateAPaaSWorkspaceTableRecords mock enable") + return r.cli.mock.mockAPaaSCreateAPaaSWorkspaceTableRecords(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "CreateAPaaSWorkspaceTableRecordsPost", + API: "CreateAPaaSWorkspaceTableRecords", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/tables/:table_name/records", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(createAPaaSWorkspaceTableRecordsPostResp) + resp := new(createAPaaSWorkspaceTableRecordsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSCreateAPaaSWorkspaceTableRecordsPost mock APaaSCreateAPaaSWorkspaceTableRecordsPost method -func (r *Mock) MockAPaaSCreateAPaaSWorkspaceTableRecordsPost(f func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error)) { - r.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost = f +// MockAPaaSCreateAPaaSWorkspaceTableRecords mock APaaSCreateAPaaSWorkspaceTableRecords method +func (r *Mock) MockAPaaSCreateAPaaSWorkspaceTableRecords(f func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsResp, *Response, error)) { + r.mockAPaaSCreateAPaaSWorkspaceTableRecords = f } -// UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost un-mock APaaSCreateAPaaSWorkspaceTableRecordsPost method -func (r *Mock) UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost() { - r.mockAPaaSCreateAPaaSWorkspaceTableRecordsPost = nil +// UnMockAPaaSCreateAPaaSWorkspaceTableRecords un-mock APaaSCreateAPaaSWorkspaceTableRecords method +func (r *Mock) UnMockAPaaSCreateAPaaSWorkspaceTableRecords() { + r.mockAPaaSCreateAPaaSWorkspaceTableRecords = nil } -// CreateAPaaSWorkspaceTableRecordsPostReq ... -type CreateAPaaSWorkspaceTableRecordsPostReq struct { +// CreateAPaaSWorkspaceTableRecordsReq ... +type CreateAPaaSWorkspaceTableRecordsReq struct { Prefer *string `header:"Prefer" json:"-"` // 为空时表示 INSERT, resolution=merge-duplicates表示 UPSERT, 详细参考 https://docs.postgrest.org/en/v13/references/api/tables_views.html#upsert示例值: "resolution=merge-duplicates" WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" TableName string `path:"table_name" json:"-"` // 数据表表名, 可以从数据平台获取对应的数据表名。示例值: "table_name_1" @@ -65,15 +65,15 @@ type CreateAPaaSWorkspaceTableRecordsPostReq struct { Records []string `json:"records,omitempty"` // 要插入的数据记录列表, 单次支持最多 500 条示例值: "[{\"name\":\"王一一\", \"gender\":\"male\", \"age\":10}, {\"name\":\"王二二\", \"gender\":\"female\", \"age\":10}]" } -// CreateAPaaSWorkspaceTableRecordsPostResp ... -type CreateAPaaSWorkspaceTableRecordsPostResp struct { +// CreateAPaaSWorkspaceTableRecordsResp ... +type CreateAPaaSWorkspaceTableRecordsResp struct { RecordIDs []string `json:"record_ids,omitempty"` // 按照记录顺序创建或更新的记录 ID 列表 } -// createAPaaSWorkspaceTableRecordsPostResp ... -type createAPaaSWorkspaceTableRecordsPostResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAPaaSWorkspaceTableRecordsPostResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// createAPaaSWorkspaceTableRecordsResp ... +type createAPaaSWorkspaceTableRecordsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateAPaaSWorkspaceTableRecordsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_apaas_workspace_view_views_get.go b/api_apaas_workspace_view_views_get.go index 79287596..46edbd99 100644 --- a/api_apaas_workspace_view_views_get.go +++ b/api_apaas_workspace_view_views_get.go @@ -21,42 +21,42 @@ import ( "context" ) -// GetAPaaSWorkspaceViewViewsGet 查询视图数据记录 +// GetAPaaSWorkspaceViews 查询视图数据记录 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/apaas-v1/workspace-view/views_get -func (r *APaaSService) GetAPaaSWorkspaceViewViewsGet(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) { - if r.cli.mock.mockAPaaSGetAPaaSWorkspaceViewViewsGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceViewViewsGet mock enable") - return r.cli.mock.mockAPaaSGetAPaaSWorkspaceViewViewsGet(ctx, request, options...) +func (r *APaaSService) GetAPaaSWorkspaceViews(ctx context.Context, request *GetAPaaSWorkspaceViewsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewsResp, *Response, error) { + if r.cli.mock.mockAPaaSGetAPaaSWorkspaceViews != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] APaaS#GetAPaaSWorkspaceViews mock enable") + return r.cli.mock.mockAPaaSGetAPaaSWorkspaceViews(ctx, request, options...) } req := &RawRequestReq{ Scope: "APaaS", - API: "GetAPaaSWorkspaceViewViewsGet", + API: "GetAPaaSWorkspaceViews", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/apaas/v1/workspaces/:workspace_id/views/:view_name/records", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(getAPaaSWorkspaceViewViewsGetResp) + resp := new(getAPaaSWorkspaceViewsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAPaaSGetAPaaSWorkspaceViewViewsGet mock APaaSGetAPaaSWorkspaceViewViewsGet method -func (r *Mock) MockAPaaSGetAPaaSWorkspaceViewViewsGet(f func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error)) { - r.mockAPaaSGetAPaaSWorkspaceViewViewsGet = f +// MockAPaaSGetAPaaSWorkspaceViews mock APaaSGetAPaaSWorkspaceViews method +func (r *Mock) MockAPaaSGetAPaaSWorkspaceViews(f func(ctx context.Context, request *GetAPaaSWorkspaceViewsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewsResp, *Response, error)) { + r.mockAPaaSGetAPaaSWorkspaceViews = f } -// UnMockAPaaSGetAPaaSWorkspaceViewViewsGet un-mock APaaSGetAPaaSWorkspaceViewViewsGet method -func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceViewViewsGet() { - r.mockAPaaSGetAPaaSWorkspaceViewViewsGet = nil +// UnMockAPaaSGetAPaaSWorkspaceViews un-mock APaaSGetAPaaSWorkspaceViews method +func (r *Mock) UnMockAPaaSGetAPaaSWorkspaceViews() { + r.mockAPaaSGetAPaaSWorkspaceViews = nil } -// GetAPaaSWorkspaceViewViewsGetReq ... -type GetAPaaSWorkspaceViewViewsGetReq struct { +// GetAPaaSWorkspaceViewsReq ... +type GetAPaaSWorkspaceViewsReq struct { WorkspaceID string `path:"workspace_id" json:"-"` // 工作空间id, 可以从数据平台的 URL 中获取, 如 `https://apaas.feishu.cn/suda/workspace/workspace_aadimx5uzpsls/table-manage/main?tableId=table_1846786627963081&tab=objectManage` 中的 workspace_aadimx5uzpsls 就是 workspace_id示例值: "workspace_aadimx5uzpsls" ViewName string `path:"view_name" json:"-"` // 视图名称, 可以从数据平台获取对应的视图名称。示例值: "view_name_1" PageSize *int64 `query:"page_size" json:"-"` // 分页大小, 用于限制一次请求所返回的数据条目数。默认10, 最大500示例值: 10默认值: `10` @@ -66,18 +66,18 @@ type GetAPaaSWorkspaceViewViewsGetReq struct { Order *string `query:"order" json:"-"` // 排序条件, 如果没指定 asc/desc, 默认为 asc, null 值可排在最前或最后。尊许 PostgREST 语法, 详情可查看`https://docs.postgrest.org/en/v13/references/api/tables_views.html#ordering`示例值: age.desc, score.asc } -// GetAPaaSWorkspaceViewViewsGetResp ... -type GetAPaaSWorkspaceViewViewsGetResp struct { +// GetAPaaSWorkspaceViewsResp ... +type GetAPaaSWorkspaceViewsResp struct { HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token Total int64 `json:"total,omitempty"` // 符合条件的记录总数 Items []string `json:"items,omitempty"` // 数据记录列表, 格式为数组序列化后的 JSONString } -// getAPaaSWorkspaceViewViewsGetResp ... -type getAPaaSWorkspaceViewViewsGetResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetAPaaSWorkspaceViewViewsGetResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getAPaaSWorkspaceViewsResp ... +type getAPaaSWorkspaceViewsResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetAPaaSWorkspaceViewsResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_attendance_archive_rule_del_report.go b/api_attendance_archive_rule_del_report.go index b0748518..015fabc1 100644 --- a/api_attendance_archive_rule_del_report.go +++ b/api_attendance_archive_rule_del_report.go @@ -21,21 +21,21 @@ import ( "context" ) -// CreateAttendanceArchiveRuleDelReport 按月份、用户和归档规则ID直接删除归档报表行数据 +// DeleteAttendanceArchiveRuleReport 按月份、用户和归档规则ID直接删除归档报表行数据 // // 页面无对应功能, 页面是通过导入并全量覆盖完成数据删除的 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/archive_rule/del_report // new doc: https://open.feishu.cn/document/attendance-v1/archive_rule/del_report -func (r *AttendanceService) CreateAttendanceArchiveRuleDelReport(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) { - if r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleDelReport != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#CreateAttendanceArchiveRuleDelReport mock enable") - return r.cli.mock.mockAttendanceCreateAttendanceArchiveRuleDelReport(ctx, request, options...) +func (r *AttendanceService) DeleteAttendanceArchiveRuleReport(ctx context.Context, request *DeleteAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*DeleteAttendanceArchiveRuleReportResp, *Response, error) { + if r.cli.mock.mockAttendanceDeleteAttendanceArchiveRuleReport != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#DeleteAttendanceArchiveRuleReport mock enable") + return r.cli.mock.mockAttendanceDeleteAttendanceArchiveRuleReport(ctx, request, options...) } req := &RawRequestReq{ Scope: "Attendance", - API: "CreateAttendanceArchiveRuleDelReport", + API: "DeleteAttendanceArchiveRuleReport", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/attendance/v1/archive_rule/del_report", Body: request, @@ -43,24 +43,24 @@ func (r *AttendanceService) CreateAttendanceArchiveRuleDelReport(ctx context.Con NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(createAttendanceArchiveRuleDelReportResp) + resp := new(deleteAttendanceArchiveRuleReportResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAttendanceCreateAttendanceArchiveRuleDelReport mock AttendanceCreateAttendanceArchiveRuleDelReport method -func (r *Mock) MockAttendanceCreateAttendanceArchiveRuleDelReport(f func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error)) { - r.mockAttendanceCreateAttendanceArchiveRuleDelReport = f +// MockAttendanceDeleteAttendanceArchiveRuleReport mock AttendanceDeleteAttendanceArchiveRuleReport method +func (r *Mock) MockAttendanceDeleteAttendanceArchiveRuleReport(f func(ctx context.Context, request *DeleteAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*DeleteAttendanceArchiveRuleReportResp, *Response, error)) { + r.mockAttendanceDeleteAttendanceArchiveRuleReport = f } -// UnMockAttendanceCreateAttendanceArchiveRuleDelReport un-mock AttendanceCreateAttendanceArchiveRuleDelReport method -func (r *Mock) UnMockAttendanceCreateAttendanceArchiveRuleDelReport() { - r.mockAttendanceCreateAttendanceArchiveRuleDelReport = nil +// UnMockAttendanceDeleteAttendanceArchiveRuleReport un-mock AttendanceDeleteAttendanceArchiveRuleReport method +func (r *Mock) UnMockAttendanceDeleteAttendanceArchiveRuleReport() { + r.mockAttendanceDeleteAttendanceArchiveRuleReport = nil } -// CreateAttendanceArchiveRuleDelReportReq ... -type CreateAttendanceArchiveRuleDelReportReq struct { +// DeleteAttendanceArchiveRuleReportReq ... +type DeleteAttendanceArchiveRuleReportReq struct { EmployeeType EmployeeType `query:"employee_type" json:"-"` // 请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限, 可使用[通过手机号或邮箱获取用户 ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/batch_get_id)* `employee_id `: 员工 employee ID, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`: 员工工号, 即[飞书管理后台](https://example.feishu.cn/admin/contacts/departmentanduser) > 组织架构 > 成员与部门 > 成员详情中的工号示例值: employee_id Month string `json:"month,omitempty"` // 月份, 格式yyyyMM示例值: "202409" OperatorID string `json:"operator_id,omitempty"` // 操作者ID, 对应employee_type示例值: "a111xd" @@ -68,14 +68,14 @@ type CreateAttendanceArchiveRuleDelReportReq struct { UserIDs []string `json:"user_ids,omitempty"` // 用户id, 对应employee_type示例值: ["xx1uad"] } -// CreateAttendanceArchiveRuleDelReportResp ... -type CreateAttendanceArchiveRuleDelReportResp struct { +// DeleteAttendanceArchiveRuleReportResp ... +type DeleteAttendanceArchiveRuleReportResp struct { } -// createAttendanceArchiveRuleDelReportResp ... -type createAttendanceArchiveRuleDelReportResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateAttendanceArchiveRuleDelReportResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteAttendanceArchiveRuleReportResp ... +type deleteAttendanceArchiveRuleReportResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteAttendanceArchiveRuleReportResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_attendance_user_flow_batch_del.go b/api_attendance_user_flow_batch_del.go index 4ff9ff92..7333ad82 100644 --- a/api_attendance_user_flow_batch_del.go +++ b/api_attendance_user_flow_batch_del.go @@ -21,58 +21,58 @@ import ( "context" ) -// BatchAttendanceUserFlowDel 删除员工从开放平台导入的打卡记录。删除后会重新计算打卡记录对应考勤任务结果。 +// BatchDeleteAttendanceUserFlow 删除员工从开放平台导入的打卡记录。删除后会重新计算打卡记录对应考勤任务结果。 // // 当返回结果fail_record_ids不为空时, msg字段返回对应失败原因, 格式为: {"xx id": "xx reason"} // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/batch_del // new doc: https://open.feishu.cn/document/attendance-v1/user_task/batch_del -func (r *AttendanceService) BatchAttendanceUserFlowDel(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) { - if r.cli.mock.mockAttendanceBatchAttendanceUserFlowDel != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#BatchAttendanceUserFlowDel mock enable") - return r.cli.mock.mockAttendanceBatchAttendanceUserFlowDel(ctx, request, options...) +func (r *AttendanceService) BatchDeleteAttendanceUserFlow(ctx context.Context, request *BatchDeleteAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchDeleteAttendanceUserFlowResp, *Response, error) { + if r.cli.mock.mockAttendanceBatchDeleteAttendanceUserFlow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Attendance#BatchDeleteAttendanceUserFlow mock enable") + return r.cli.mock.mockAttendanceBatchDeleteAttendanceUserFlow(ctx, request, options...) } req := &RawRequestReq{ Scope: "Attendance", - API: "BatchAttendanceUserFlowDel", + API: "BatchDeleteAttendanceUserFlow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/attendance/v1/user_flows/batch_del", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchAttendanceUserFlowDelResp) + resp := new(batchDeleteAttendanceUserFlowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockAttendanceBatchAttendanceUserFlowDel mock AttendanceBatchAttendanceUserFlowDel method -func (r *Mock) MockAttendanceBatchAttendanceUserFlowDel(f func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error)) { - r.mockAttendanceBatchAttendanceUserFlowDel = f +// MockAttendanceBatchDeleteAttendanceUserFlow mock AttendanceBatchDeleteAttendanceUserFlow method +func (r *Mock) MockAttendanceBatchDeleteAttendanceUserFlow(f func(ctx context.Context, request *BatchDeleteAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchDeleteAttendanceUserFlowResp, *Response, error)) { + r.mockAttendanceBatchDeleteAttendanceUserFlow = f } -// UnMockAttendanceBatchAttendanceUserFlowDel un-mock AttendanceBatchAttendanceUserFlowDel method -func (r *Mock) UnMockAttendanceBatchAttendanceUserFlowDel() { - r.mockAttendanceBatchAttendanceUserFlowDel = nil +// UnMockAttendanceBatchDeleteAttendanceUserFlow un-mock AttendanceBatchDeleteAttendanceUserFlow method +func (r *Mock) UnMockAttendanceBatchDeleteAttendanceUserFlow() { + r.mockAttendanceBatchDeleteAttendanceUserFlow = nil } -// BatchAttendanceUserFlowDelReq ... -type BatchAttendanceUserFlowDelReq struct { +// BatchDeleteAttendanceUserFlowReq ... +type BatchDeleteAttendanceUserFlowReq struct { RecordIDs []string `json:"record_ids,omitempty"` // 打卡流水记录 ID, 获取方式: 1)[批量查询打卡流水记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/query) 2)[获取打卡结果](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_task/query) 3)[导入打卡流水记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/user_flow/batch_create)示例值: ["6709359313699356941"] 长度范围: `1` ~ `10` } -// BatchAttendanceUserFlowDelResp ... -type BatchAttendanceUserFlowDelResp struct { +// BatchDeleteAttendanceUserFlowResp ... +type BatchDeleteAttendanceUserFlowResp struct { SuccessRecordIDs []string `json:"success_record_ids,omitempty"` // 删除成功的流水记录ID列表 FailRecordIDs []string `json:"fail_record_ids,omitempty"` // 删除失败的流水记录ID列表 } -// batchAttendanceUserFlowDelResp ... -type batchAttendanceUserFlowDelResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchAttendanceUserFlowDelResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchDeleteAttendanceUserFlowResp ... +type batchDeleteAttendanceUserFlowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchDeleteAttendanceUserFlowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_base_app_role_create.go b/api_base_app_role_create.go index 01113c99..6db07891 100644 --- a/api_base_app_role_create.go +++ b/api_base_app_role_create.go @@ -30,9 +30,9 @@ import ( // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/create // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/create-2 func (r *DriveService) CreateBaseAppRole(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) { - if r.cli.mock.mockBaseCreateBaseAppRole != nil { + if r.cli.mock.mockDriveCreateBaseAppRole != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBaseAppRole mock enable") - return r.cli.mock.mockBaseCreateBaseAppRole(ctx, request, options...) + return r.cli.mock.mockDriveCreateBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ @@ -51,14 +51,14 @@ func (r *DriveService) CreateBaseAppRole(ctx context.Context, request *CreateBas return resp.Data, response, err } -// MockBaseCreateBaseAppRole mock BaseCreateBaseAppRole method -func (r *Mock) MockBaseCreateBaseAppRole(f func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error)) { - r.mockBaseCreateBaseAppRole = f +// MockDriveCreateBaseAppRole mock DriveCreateBaseAppRole method +func (r *Mock) MockDriveCreateBaseAppRole(f func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error)) { + r.mockDriveCreateBaseAppRole = f } -// UnMockBaseCreateBaseAppRole un-mock BaseCreateBaseAppRole method -func (r *Mock) UnMockBaseCreateBaseAppRole() { - r.mockBaseCreateBaseAppRole = nil +// UnMockDriveCreateBaseAppRole un-mock DriveCreateBaseAppRole method +func (r *Mock) UnMockDriveCreateBaseAppRole() { + r.mockDriveCreateBaseAppRole = nil } // CreateBaseAppRoleReq ... diff --git a/api_base_app_role_list.go b/api_base_app_role_list.go index 65d85f76..83e0bf64 100644 --- a/api_base_app_role_list.go +++ b/api_base_app_role_list.go @@ -30,9 +30,9 @@ import ( // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/list // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/list-2 func (r *DriveService) ListBaseAppRole(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) { - if r.cli.mock.mockBaseListBaseAppRole != nil { + if r.cli.mock.mockDriveListBaseAppRole != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#ListBaseAppRole mock enable") - return r.cli.mock.mockBaseListBaseAppRole(ctx, request, options...) + return r.cli.mock.mockDriveListBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ @@ -51,14 +51,14 @@ func (r *DriveService) ListBaseAppRole(ctx context.Context, request *ListBaseApp return resp.Data, response, err } -// MockBaseListBaseAppRole mock BaseListBaseAppRole method -func (r *Mock) MockBaseListBaseAppRole(f func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error)) { - r.mockBaseListBaseAppRole = f +// MockDriveListBaseAppRole mock DriveListBaseAppRole method +func (r *Mock) MockDriveListBaseAppRole(f func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error)) { + r.mockDriveListBaseAppRole = f } -// UnMockBaseListBaseAppRole un-mock BaseListBaseAppRole method -func (r *Mock) UnMockBaseListBaseAppRole() { - r.mockBaseListBaseAppRole = nil +// UnMockDriveListBaseAppRole un-mock DriveListBaseAppRole method +func (r *Mock) UnMockDriveListBaseAppRole() { + r.mockDriveListBaseAppRole = nil } // ListBaseAppRoleReq ... diff --git a/api_base_app_role_update.go b/api_base_app_role_update.go index 298f0ba6..da67003e 100644 --- a/api_base_app_role_update.go +++ b/api_base_app_role_update.go @@ -31,9 +31,9 @@ import ( // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/advanced-permission/base-v2/app-role/update // new doc: https://open.feishu.cn/document/docs/bitable-v1/advanced-permission/app-role/update-2 func (r *DriveService) UpdateBaseAppRole(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) { - if r.cli.mock.mockBaseUpdateBaseAppRole != nil { + if r.cli.mock.mockDriveUpdateBaseAppRole != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateBaseAppRole mock enable") - return r.cli.mock.mockBaseUpdateBaseAppRole(ctx, request, options...) + return r.cli.mock.mockDriveUpdateBaseAppRole(ctx, request, options...) } req := &RawRequestReq{ @@ -52,14 +52,14 @@ func (r *DriveService) UpdateBaseAppRole(ctx context.Context, request *UpdateBas return resp.Data, response, err } -// MockBaseUpdateBaseAppRole mock BaseUpdateBaseAppRole method -func (r *Mock) MockBaseUpdateBaseAppRole(f func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error)) { - r.mockBaseUpdateBaseAppRole = f +// MockDriveUpdateBaseAppRole mock DriveUpdateBaseAppRole method +func (r *Mock) MockDriveUpdateBaseAppRole(f func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error)) { + r.mockDriveUpdateBaseAppRole = f } -// UnMockBaseUpdateBaseAppRole un-mock BaseUpdateBaseAppRole method -func (r *Mock) UnMockBaseUpdateBaseAppRole() { - r.mockBaseUpdateBaseAppRole = nil +// UnMockDriveUpdateBaseAppRole un-mock DriveUpdateBaseAppRole method +func (r *Mock) UnMockDriveUpdateBaseAppRole() { + r.mockDriveUpdateBaseAppRole = nil } // UpdateBaseAppRoleReq ... diff --git a/api_board_whiteboard_download_as_image.go b/api_board_whiteboard_download_as_image.go index 8c6babef..dce9142b 100644 --- a/api_board_whiteboard_download_as_image.go +++ b/api_board_whiteboard_download_as_image.go @@ -27,9 +27,9 @@ import ( // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/download_as_image // new doc: https://open.feishu.cn/document/docs/board-v1/whiteboard/download_as_image func (r *DriveService) DownloadBoardWhiteboardAsImage(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) { - if r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage != nil { + if r.cli.mock.mockDriveDownloadBoardWhiteboardAsImage != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#DownloadBoardWhiteboardAsImage mock enable") - return r.cli.mock.mockBoardDownloadBoardWhiteboardAsImage(ctx, request, options...) + return r.cli.mock.mockDriveDownloadBoardWhiteboardAsImage(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *DriveService) DownloadBoardWhiteboardAsImage(ctx context.Context, reque return resp.Data, response, err } -// MockBoardDownloadBoardWhiteboardAsImage mock BoardDownloadBoardWhiteboardAsImage method -func (r *Mock) MockBoardDownloadBoardWhiteboardAsImage(f func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error)) { - r.mockBoardDownloadBoardWhiteboardAsImage = f +// MockDriveDownloadBoardWhiteboardAsImage mock DriveDownloadBoardWhiteboardAsImage method +func (r *Mock) MockDriveDownloadBoardWhiteboardAsImage(f func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error)) { + r.mockDriveDownloadBoardWhiteboardAsImage = f } -// UnMockBoardDownloadBoardWhiteboardAsImage un-mock BoardDownloadBoardWhiteboardAsImage method -func (r *Mock) UnMockBoardDownloadBoardWhiteboardAsImage() { - r.mockBoardDownloadBoardWhiteboardAsImage = nil +// UnMockDriveDownloadBoardWhiteboardAsImage un-mock DriveDownloadBoardWhiteboardAsImage method +func (r *Mock) UnMockDriveDownloadBoardWhiteboardAsImage() { + r.mockDriveDownloadBoardWhiteboardAsImage = nil } // DownloadBoardWhiteboardAsImageReq ... diff --git a/api_board_whiteboard_node_create.go b/api_board_whiteboard_node_create.go index 50924cb6..00933a71 100644 --- a/api_board_whiteboard_node_create.go +++ b/api_board_whiteboard_node_create.go @@ -25,9 +25,9 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create func (r *DriveService) CreateBoardWhiteboardNode(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) { - if r.cli.mock.mockBoardCreateBoardWhiteboardNode != nil { + if r.cli.mock.mockDriveCreateBoardWhiteboardNode != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBoardWhiteboardNode mock enable") - return r.cli.mock.mockBoardCreateBoardWhiteboardNode(ctx, request, options...) + return r.cli.mock.mockDriveCreateBoardWhiteboardNode(ctx, request, options...) } req := &RawRequestReq{ @@ -46,14 +46,14 @@ func (r *DriveService) CreateBoardWhiteboardNode(ctx context.Context, request *C return resp.Data, response, err } -// MockBoardCreateBoardWhiteboardNode mock BoardCreateBoardWhiteboardNode method -func (r *Mock) MockBoardCreateBoardWhiteboardNode(f func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error)) { - r.mockBoardCreateBoardWhiteboardNode = f +// MockDriveCreateBoardWhiteboardNode mock DriveCreateBoardWhiteboardNode method +func (r *Mock) MockDriveCreateBoardWhiteboardNode(f func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error)) { + r.mockDriveCreateBoardWhiteboardNode = f } -// UnMockBoardCreateBoardWhiteboardNode un-mock BoardCreateBoardWhiteboardNode method -func (r *Mock) UnMockBoardCreateBoardWhiteboardNode() { - r.mockBoardCreateBoardWhiteboardNode = nil +// UnMockDriveCreateBoardWhiteboardNode un-mock DriveCreateBoardWhiteboardNode method +func (r *Mock) UnMockDriveCreateBoardWhiteboardNode() { + r.mockDriveCreateBoardWhiteboardNode = nil } // CreateBoardWhiteboardNodeReq ... diff --git a/api_board_whiteboard_node_create_plantuml.go b/api_board_whiteboard_node_create_plantuml.go index 47e5839d..5a5031e6 100644 --- a/api_board_whiteboard_node_create_plantuml.go +++ b/api_board_whiteboard_node_create_plantuml.go @@ -25,9 +25,9 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard-node/create_plantuml func (r *DriveService) CreateBoardWhiteboardNodePlantuml(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) { - if r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml != nil { + if r.cli.mock.mockDriveCreateBoardWhiteboardNodePlantuml != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateBoardWhiteboardNodePlantuml mock enable") - return r.cli.mock.mockBoardCreateBoardWhiteboardNodePlantuml(ctx, request, options...) + return r.cli.mock.mockDriveCreateBoardWhiteboardNodePlantuml(ctx, request, options...) } req := &RawRequestReq{ @@ -46,14 +46,14 @@ func (r *DriveService) CreateBoardWhiteboardNodePlantuml(ctx context.Context, re return resp.Data, response, err } -// MockBoardCreateBoardWhiteboardNodePlantuml mock BoardCreateBoardWhiteboardNodePlantuml method -func (r *Mock) MockBoardCreateBoardWhiteboardNodePlantuml(f func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error)) { - r.mockBoardCreateBoardWhiteboardNodePlantuml = f +// MockDriveCreateBoardWhiteboardNodePlantuml mock DriveCreateBoardWhiteboardNodePlantuml method +func (r *Mock) MockDriveCreateBoardWhiteboardNodePlantuml(f func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error)) { + r.mockDriveCreateBoardWhiteboardNodePlantuml = f } -// UnMockBoardCreateBoardWhiteboardNodePlantuml un-mock BoardCreateBoardWhiteboardNodePlantuml method -func (r *Mock) UnMockBoardCreateBoardWhiteboardNodePlantuml() { - r.mockBoardCreateBoardWhiteboardNodePlantuml = nil +// UnMockDriveCreateBoardWhiteboardNodePlantuml un-mock DriveCreateBoardWhiteboardNodePlantuml method +func (r *Mock) UnMockDriveCreateBoardWhiteboardNodePlantuml() { + r.mockDriveCreateBoardWhiteboardNodePlantuml = nil } // CreateBoardWhiteboardNodePlantumlReq ... diff --git a/api_board_whiteboard_theme.go b/api_board_whiteboard_theme.go index 91642f0b..289f1e41 100644 --- a/api_board_whiteboard_theme.go +++ b/api_board_whiteboard_theme.go @@ -25,9 +25,9 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/theme func (r *DriveService) GetBoardWhiteboardTheme(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) { - if r.cli.mock.mockBoardGetBoardWhiteboardTheme != nil { + if r.cli.mock.mockDriveGetBoardWhiteboardTheme != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetBoardWhiteboardTheme mock enable") - return r.cli.mock.mockBoardGetBoardWhiteboardTheme(ctx, request, options...) + return r.cli.mock.mockDriveGetBoardWhiteboardTheme(ctx, request, options...) } req := &RawRequestReq{ @@ -46,14 +46,14 @@ func (r *DriveService) GetBoardWhiteboardTheme(ctx context.Context, request *Get return resp.Data, response, err } -// MockBoardGetBoardWhiteboardTheme mock BoardGetBoardWhiteboardTheme method -func (r *Mock) MockBoardGetBoardWhiteboardTheme(f func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error)) { - r.mockBoardGetBoardWhiteboardTheme = f +// MockDriveGetBoardWhiteboardTheme mock DriveGetBoardWhiteboardTheme method +func (r *Mock) MockDriveGetBoardWhiteboardTheme(f func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error)) { + r.mockDriveGetBoardWhiteboardTheme = f } -// UnMockBoardGetBoardWhiteboardTheme un-mock BoardGetBoardWhiteboardTheme method -func (r *Mock) UnMockBoardGetBoardWhiteboardTheme() { - r.mockBoardGetBoardWhiteboardTheme = nil +// UnMockDriveGetBoardWhiteboardTheme un-mock DriveGetBoardWhiteboardTheme method +func (r *Mock) UnMockDriveGetBoardWhiteboardTheme() { + r.mockDriveGetBoardWhiteboardTheme = nil } // GetBoardWhiteboardThemeReq ... diff --git a/api_board_whiteboard_update_theme.go b/api_board_whiteboard_update_theme.go index ea78affb..079f5961 100644 --- a/api_board_whiteboard_update_theme.go +++ b/api_board_whiteboard_update_theme.go @@ -25,9 +25,9 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/board-v1/whiteboard/update_theme func (r *DriveService) UpdateBoardWhiteboardTheme(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) { - if r.cli.mock.mockBoardUpdateBoardWhiteboardTheme != nil { + if r.cli.mock.mockDriveUpdateBoardWhiteboardTheme != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#UpdateBoardWhiteboardTheme mock enable") - return r.cli.mock.mockBoardUpdateBoardWhiteboardTheme(ctx, request, options...) + return r.cli.mock.mockDriveUpdateBoardWhiteboardTheme(ctx, request, options...) } req := &RawRequestReq{ @@ -46,14 +46,14 @@ func (r *DriveService) UpdateBoardWhiteboardTheme(ctx context.Context, request * return resp.Data, response, err } -// MockBoardUpdateBoardWhiteboardTheme mock BoardUpdateBoardWhiteboardTheme method -func (r *Mock) MockBoardUpdateBoardWhiteboardTheme(f func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error)) { - r.mockBoardUpdateBoardWhiteboardTheme = f +// MockDriveUpdateBoardWhiteboardTheme mock DriveUpdateBoardWhiteboardTheme method +func (r *Mock) MockDriveUpdateBoardWhiteboardTheme(f func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error)) { + r.mockDriveUpdateBoardWhiteboardTheme = f } -// UnMockBoardUpdateBoardWhiteboardTheme un-mock BoardUpdateBoardWhiteboardTheme method -func (r *Mock) UnMockBoardUpdateBoardWhiteboardTheme() { - r.mockBoardUpdateBoardWhiteboardTheme = nil +// UnMockDriveUpdateBoardWhiteboardTheme un-mock DriveUpdateBoardWhiteboardTheme method +func (r *Mock) UnMockDriveUpdateBoardWhiteboardTheme() { + r.mockDriveUpdateBoardWhiteboardTheme = nil } // UpdateBoardWhiteboardThemeReq ... diff --git a/api_ccm_docs_default_docs_api_meta.go b/api_ccm_docs_default_docs_api_meta.go index d3608521..7e731272 100644 --- a/api_ccm_docs_default_docs_api_meta.go +++ b/api_ccm_docs_default_docs_api_meta.go @@ -30,9 +30,9 @@ import ( // // Deprecated func (r *DriveService) CreateCcmDocsDefaultDocsApiMeta(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) { - if r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CcmDocs#CreateCcmDocsDefaultDocsApiMeta mock enable") - return r.cli.mock.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta(ctx, request, options...) + if r.cli.mock.mockDriveCreateCcmDocsDefaultDocsApiMeta != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#CreateCcmDocsDefaultDocsApiMeta mock enable") + return r.cli.mock.mockDriveCreateCcmDocsDefaultDocsApiMeta(ctx, request, options...) } req := &RawRequestReq{ @@ -51,14 +51,14 @@ func (r *DriveService) CreateCcmDocsDefaultDocsApiMeta(ctx context.Context, requ return resp.Data, response, err } -// MockCcmDocsCreateCcmDocsDefaultDocsApiMeta mock CcmDocsCreateCcmDocsDefaultDocsApiMeta method -func (r *Mock) MockCcmDocsCreateCcmDocsDefaultDocsApiMeta(f func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error)) { - r.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta = f +// MockDriveCreateCcmDocsDefaultDocsApiMeta mock DriveCreateCcmDocsDefaultDocsApiMeta method +func (r *Mock) MockDriveCreateCcmDocsDefaultDocsApiMeta(f func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error)) { + r.mockDriveCreateCcmDocsDefaultDocsApiMeta = f } -// UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta un-mock CcmDocsCreateCcmDocsDefaultDocsApiMeta method -func (r *Mock) UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta() { - r.mockCcmDocsCreateCcmDocsDefaultDocsApiMeta = nil +// UnMockDriveCreateCcmDocsDefaultDocsApiMeta un-mock DriveCreateCcmDocsDefaultDocsApiMeta method +func (r *Mock) UnMockDriveCreateCcmDocsDefaultDocsApiMeta() { + r.mockDriveCreateCcmDocsDefaultDocsApiMeta = nil } // CreateCcmDocsDefaultDocsApiMetaReq ... diff --git a/api_corehr_approval_groups_get.go b/api_corehr_approval_groups_get.go index b82a047c..df0c0997 100644 --- a/api_corehr_approval_groups_get.go +++ b/api_corehr_approval_groups_get.go @@ -21,7 +21,7 @@ import ( "context" ) -// GetCorehrApprovalGroups 用户通过『飞书人事-我的团队-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。 之后用户可通过流程的单据 ID, 查询到该审批进行的状态, 以及该流程中涉及到的 组织架构信息(包括部门变更、人员变更记录 ID、岗位变更记录 ID)。 +// GetCoreHRApprovalGroups 用户通过『飞书人事-我的团队-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。 之后用户可通过流程的单据 ID, 查询到该审批进行的状态, 以及该流程中涉及到的 组织架构信息(包括部门变更、人员变更记录 ID、岗位变更记录 ID)。 // // 如需查询具体变更详情可按需调用以下独立的接口: // - 部门变更: [批量查询部门变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_position_change_list_by_ids) @@ -32,50 +32,50 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get // new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/get -func (r *CoreHRService) GetCorehrApprovalGroups(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCorehrApprovalGroups != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrApprovalGroups mock enable") - return r.cli.mock.mockCoreHRGetCorehrApprovalGroups(ctx, request, options...) +func (r *CoreHRService) GetCoreHRApprovalGroups(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRApprovalGroups != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRApprovalGroups mock enable") + return r.cli.mock.mockCoreHRGetCoreHRApprovalGroups(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCorehrApprovalGroups", + API: "GetCoreHRApprovalGroups", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approval_groups/:process_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCorehrApprovalGroupsResp) + resp := new(getCoreHRApprovalGroupsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCorehrApprovalGroups mock CoreHRGetCorehrApprovalGroups method -func (r *Mock) MockCoreHRGetCorehrApprovalGroups(f func(ctx context.Context, request *GetCorehrApprovalGroupsReq, options ...MethodOptionFunc) (*GetCorehrApprovalGroupsResp, *Response, error)) { - r.mockCoreHRGetCorehrApprovalGroups = f +// MockCoreHRGetCoreHRApprovalGroups mock CoreHRGetCoreHRApprovalGroups method +func (r *Mock) MockCoreHRGetCoreHRApprovalGroups(f func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error)) { + r.mockCoreHRGetCoreHRApprovalGroups = f } -// UnMockCoreHRGetCorehrApprovalGroups un-mock CoreHRGetCorehrApprovalGroups method -func (r *Mock) UnMockCoreHRGetCorehrApprovalGroups() { - r.mockCoreHRGetCorehrApprovalGroups = nil +// UnMockCoreHRGetCoreHRApprovalGroups un-mock CoreHRGetCoreHRApprovalGroups method +func (r *Mock) UnMockCoreHRGetCoreHRApprovalGroups() { + r.mockCoreHRGetCoreHRApprovalGroups = nil } -// GetCorehrApprovalGroupsReq ... -type GetCorehrApprovalGroupsReq struct { +// GetCoreHRApprovalGroupsReq ... +type GetCoreHRApprovalGroupsReq struct { ProcessID string `path:"process_id" json:"-"` // 组织架构调整流程 ID, 用户通过『飞书人事-我的团队-组织架构』或『飞书 人事-人员管理-组织架构』 发起一个组织架构调整, 并提交审批后, 系统会根据管理员在审批流程中配置的规则, 生成 一个或多个审批单据。可通过「组织架构调整状态变更」的事件来获取示例值: "6893014062142064111" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } -// GetCorehrApprovalGroupsResp ... -type GetCorehrApprovalGroupsResp struct { - ApprovalGroup *GetCorehrApprovalGroupsRespApprovalGroup `json:"approval_group,omitempty"` // 组织架构调整流程信息 +// GetCoreHRApprovalGroupsResp ... +type GetCoreHRApprovalGroupsResp struct { + ApprovalGroup *GetCoreHRApprovalGroupsRespApprovalGroup `json:"approval_group,omitempty"` // 组织架构调整流程信息 } -// GetCorehrApprovalGroupsRespApprovalGroup ... -type GetCorehrApprovalGroupsRespApprovalGroup struct { +// GetCoreHRApprovalGroupsRespApprovalGroup ... +type GetCoreHRApprovalGroupsRespApprovalGroup struct { ApprovalGroupID string `json:"approval_group_id,omitempty"` // 组织架构调整审批组 ID, 该 ID 和 process_id 一一对应 ProcessID string `json:"process_id,omitempty"` // 组织架构调整对应的流程 ID, 与入参 process_id 对应。 ApprovalGroupStatus string `json:"approval_group_status,omitempty"` // 组织架构调整流程状态, 枚举类型, 描述该审批单据的状态。【不推荐使用, 无法区分审批通过、执行失败和等待执行状态, 推荐使用approval_group_status_v2】可选值有: 待发起, 是指该审批单据还未成功发起。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。 审批通过, 该单据已通过审批, 调整记录等待写入。 一方面, 组织架构调整支持拆单功能, 同一个调整可能发起多个审批, 当前审批单可能依赖其他审批通过才能写入。已完成, 审批单中所有调整记录均写入完成。[该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件、部门变更事件 和 岗位变更事件 获取。 - 人员异动变更事件: [飞书人事-异动-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) - 部门变更事件: [飞书人事-组织管理-事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已拒绝, 审批未通过。已撤销, 用户主动撤销审批, 流程会进入已撤销状态。 @@ -91,10 +91,10 @@ type GetCorehrApprovalGroupsRespApprovalGroup struct { PositionChanges []string `json:"position_changes,omitempty"` // 关联的岗位调整记录 ID 列表。- 功能灰度中, 开通岗位功能后可通过接口【批量查询岗位变更接口】获取岗位变更详情 } -// getCorehrApprovalGroupsResp ... -type getCorehrApprovalGroupsResp struct { +// getCoreHRApprovalGroupsResp ... +type getCoreHRApprovalGroupsResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCorehrApprovalGroupsResp `json:"data,omitempty"` + Data *GetCoreHRApprovalGroupsResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_approval_groups_query_department_change_list_by_ids.go b/api_corehr_approval_groups_query_department_change_list_by_ids.go index e8ce9c7b..50e7c695 100644 --- a/api_corehr_approval_groups_query_department_change_list_by_ids.go +++ b/api_corehr_approval_groups_query_department_change_list_by_ids.go @@ -21,45 +21,45 @@ import ( "context" ) -// QueryCorehrApprovalGroupsDepartmentChangeListByIDs 根据部门调整记录 ID 批量查询部门调整内容, 如: 部门调整类型、部门调整前后名称、部门调整前后角色信息 等 +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDs 根据部门调整记录 ID 批量查询部门调整内容, 如: 部门调整类型、部门调整前后名称、部门调整前后角色信息 等 // // - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_department_change_list_by_ids // new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/open_query_department_change_list_by_ids -func (r *CoreHRService) QueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrApprovalGroupsDepartmentChangeListByIDs mock enable") - return r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRApprovalGroupsDepartmentChangeListByIDs(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRApprovalGroupsDepartmentChangeListByIDs mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrApprovalGroupsDepartmentChangeListByIDs", + API: "QueryCoreHRApprovalGroupsDepartmentChangeListByIDs", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approval_groups/open_query_department_change_list_by_ids", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrApprovalGroupsDepartmentChangeListByIDsResp) + resp := new(queryCoreHRApprovalGroupsDepartmentChangeListByIDsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs mock CoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs method -func (r *Mock) MockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs(f func(ctx context.Context, request *QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *Response, error)) { - r.mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs = f +// MockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs mock CoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs method +func (r *Mock) MockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs(f func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error)) { + r.mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs = f } -// UnMockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs un-mock CoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs method -func (r *Mock) UnMockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs() { - r.mockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs = nil +// UnMockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs un-mock CoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs method +func (r *Mock) UnMockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs() { + r.mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs = nil } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq struct { ProcessID string `query:"process_id" json:"-"` // 组织架构调整流程 ID, 用户通过『飞书人事-我的团队-组织架构』或『飞书 人事-人员管理-组织架构』 发起一个组织架构调整, 并提交审批后, 系统会根据管理员在审批流程中配置的规则, 生成 一个或多个审批单据。示例值: 6893014062142064211 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` @@ -67,257 +67,257 @@ type QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq struct { NeedDepartmentPath *bool `json:"need_department_path,omitempty"` // 是否返回部门全路径, 用于在组织架构调整中级联创建部门的场景, 由于上级部门还未生效, 因此返回全路径用于数据查询。示例值: false默认值: `false` } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp struct { - DepartmentChanges []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange `json:"department_changes,omitempty"` // 部门调整记录信息列表 +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp struct { + DepartmentChanges []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange `json:"department_changes,omitempty"` // 部门调整记录信息列表 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChange struct { DepartmentChangeID string `json:"department_change_id,omitempty"` // 关联的部门调整记录 ID。 DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换。 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID 。固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的过程部门 ID, 生效后(数据写入成功, 非部门生效状态)将返回正式的people_corehr_department_id DepartmentChangeType string `json:"department_change_type,omitempty"` // 调整类型可选值有: 未知新建编辑停用 DepartmentChangeStatus int64 `json:"department_change_status,omitempty"` // 调整状态可选值有: 发起审批, 流程成功发起, 并等待审批人审批。 审批通过。审批被拒绝, 审批未通过。审批被撤销, 用户主动撤销审批, 调整会进入已撤销状态。执行成功, 调整已经执行成功。执行失败, 调整已经执行失败。待执行, 调整依赖其他流程完成, 等待执行。字节租户或者商业化租户且配置拆分审批流(合单) 才会触发, 调整所在审批单执行生效依赖另一个同时发起的还处于审批中状态审批单的执行结果。 - ReorganizationInfo *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo `json:"reorganization_info,omitempty"` // 调整详细信息 + ReorganizationInfo *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo `json:"reorganization_info,omitempty"` // 调整详细信息 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo struct { - OriginalDepartmentNames []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName `json:"original_department_names,omitempty"` // 原部门名称 - TargetDepartmentNames []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName `json:"target_department_names,omitempty"` // 调整后部门名称 +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfo struct { + OriginalDepartmentNames []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName `json:"original_department_names,omitempty"` // 原部门名称 + TargetDepartmentNames []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName `json:"target_department_names,omitempty"` // 调整后部门名称 OriginalDepartmentCode string `json:"original_department_code,omitempty"` // 原部门编码 TargetDepartmentCode string `json:"target_department_code,omitempty"` // 调整后部门编码, 在新建部门场景下, 如果租户开通部门自动编码, 该编码会为空值。 - OriginalSubType *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType `json:"original_sub_type,omitempty"` // 原部门类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 - TargetSubType *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType `json:"target_sub_type,omitempty"` // 调整后部门类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 + OriginalSubType *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType `json:"original_sub_type,omitempty"` // 原部门类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 + TargetSubType *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType `json:"target_sub_type,omitempty"` // 调整后部门类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 OriginalDepartmentManager string `json:"original_department_manager,omitempty"` // 原部门负责人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 TargetDepartmentManager string `json:"target_department_manager,omitempty"` // 调整后部门负责人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - OriginalDescriptions []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription `json:"original_descriptions,omitempty"` // 原描述 - TargetDescriptions []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription `json:"target_descriptions,omitempty"` // 调整后描述 - OriginalCostCenter *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter `json:"original_cost_center,omitempty"` // 原默认成本中心 - TargetCostCenter *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter `json:"target_cost_center,omitempty"` // 调整后默认成本中心 + OriginalDescriptions []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription `json:"original_descriptions,omitempty"` // 原描述 + TargetDescriptions []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription `json:"target_descriptions,omitempty"` // 调整后描述 + OriginalCostCenter *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter `json:"original_cost_center,omitempty"` // 原默认成本中心 + TargetCostCenter *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter `json:"target_cost_center,omitempty"` // 调整后默认成本中心 OriginalIsConfidential bool `json:"original_is_confidential,omitempty"` // 原是否保密 TargetIsConfidential bool `json:"target_is_confidential,omitempty"` // 调整后是否保密 - OriginalStaffingModeOption *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption `json:"original_staffing_mode_option,omitempty"` // 原岗职模式- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=staffing_model。 - TargetStaffingModeOption *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption `json:"target_staffing_mode_option,omitempty"` // 调整后岗职模式- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=staffing_model。 + OriginalStaffingModeOption *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption `json:"original_staffing_mode_option,omitempty"` // 原岗职模式- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=staffing_model。 + TargetStaffingModeOption *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption `json:"target_staffing_mode_option,omitempty"` // 调整后岗职模式- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=staffing_model。 OriginalParentDepartmentID string `json:"original_parent_department_id,omitempty"` // 原上级部门 ID, 支持根据部门 ID 类型转换 TargetParentDepartmentID string `json:"target_parent_department_id,omitempty"` // 调整后上级部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换。 DraftTargetParentDepartmentID string `json:"draft_target_parent_department_id,omitempty"` // 调整后上级部门过程 ID 。固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的过程部门 ID, 生效后将返回正式的people_corehr_department_id - OriginalDepartmentIDPath []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath `json:"original_department_id_path,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表 - TargetDepartmentIDPath []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath `json:"target_department_id_path,omitempty"` // 调整后部门全路径, 从根部门开始自上而下返回部门 ID 列表 - CustomFields []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段 - OrgroleInfos []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo `json:"orgrole_infos,omitempty"` // 调整前后组织角色信息字段权限要求: 获取组织角色 + OriginalDepartmentIDPath []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath `json:"original_department_id_path,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表 + TargetDepartmentIDPath []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath `json:"target_department_id_path,omitempty"` // 调整后部门全路径, 从根部门开始自上而下返回部门 ID 列表 + CustomFields []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段 + OrgroleInfos []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo `json:"orgrole_infos,omitempty"` // 调整前后组织角色信息字段权限要求: 获取组织角色 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField struct { - OriginValue *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue `json:"origin_value,omitempty"` // 调整前 - TargetValue *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue `json:"target_value,omitempty"` // 调整后 +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomField struct { + OriginValue *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue `json:"origin_value,omitempty"` // 调整前 + TargetValue *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue `json:"target_value,omitempty"` // 调整后 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValue struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("\"123\"", "\"123.23\"", "\"true\"", [\"id1\", \"id2\"], \"2006-01-02 15:04:05\")``` } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldOriginValueName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValue struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("\"123\"", "\"123.23\"", "\"true\"", [\"id1\", \"id2\"], \"2006-01-02 15:04:05\")``` } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoCustomFieldTargetValueName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfo struct { RoleID string `json:"role_id,omitempty"` // 角色ID- 通过[【批量获取角色列表】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/security_group/list)获取角色其他信息 - OriginOrgroles []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole `json:"origin_orgroles,omitempty"` // 原组织角色 - TargetOrgroles []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole `json:"target_orgroles,omitempty"` // 新组织角色 + OriginOrgroles []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole `json:"origin_orgroles,omitempty"` // 原组织角色 + TargetOrgroles []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole `json:"target_orgroles,omitempty"` // 新组织角色 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgrole struct { GranteeID string `json:"grantee_id,omitempty"` // 授权用户id- 通过[【批量获取员工信息】](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/mget)获取员工其他信息。 - ManagementScopes []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope `json:"management_scopes,omitempty"` // 管理范围, 组织角色为交叉角色时有值。 + ManagementScopes []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope `json:"management_scopes,omitempty"` // 管理范围, 组织角色为交叉角色时有值。 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoOriginOrgroleManagementScope struct { OrgID string `json:"org_id,omitempty"` // 组织ID- 当org_type为location时, 可以通过[【通过地点 ID 批量获取地点信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)获取地点的其他信息。 OrgType string `json:"org_type,omitempty"` // 组织类型可选值有: 部门地点自定义组织自定义组织自定义组织自定义组织自定义组织 OrgName string `json:"org_name,omitempty"` // 组织名称 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgrole struct { GranteeID string `json:"grantee_id,omitempty"` // 授权用户id- 通过[【批量获取员工信息】](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/mget)获取员工其他信息。 - ManagementScopes []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope `json:"management_scopes,omitempty"` // 管理范围, 组织角色为交叉角色时有值。 + ManagementScopes []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope `json:"management_scopes,omitempty"` // 管理范围, 组织角色为交叉角色时有值。 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOrgroleInfoTargetOrgroleManagementScope struct { OrgID string `json:"org_id,omitempty"` // 组织ID- 当org_type为location时, 可以通过[【通过地点 ID 批量获取地点信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)获取地点的其他信息。 OrgType string `json:"org_type,omitempty"` // 组织类型可选值有: 部门地点自定义组织自定义组织自定义组织自定义组织自定义组织 OrgName string `json:"org_name,omitempty"` // 组织名称 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenter struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 CostCenterVersionID string `json:"cost_center_version_id,omitempty"` // 成本中心版本ID - Name []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName `json:"name,omitempty"` // 成本中心名称 + Name []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName `json:"name,omitempty"` // 成本中心名称 Code string `json:"code,omitempty"` // 编码, 成本中心编码 ParentCostCenterID string `json:"parent_cost_center_id,omitempty"` // 上级成本中心ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 Managers []string `json:"managers,omitempty"` // 成本中心负责人ID 列表, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - Description []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription `json:"description,omitempty"` // 成本中心描述 + Description []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription `json:"description,omitempty"` // 成本中心描述 EffectiveTime string `json:"effective_time,omitempty"` // 生效时间- 日期格式: YYYY-MM-DD- 最小值: 1900-01-01- 最大值: 9999-12-31 ExpirationTime string `json:"expiration_time,omitempty"` // 过期时间- 日期格式: YYYY-MM-DD- 最小值: 1900-01-01- 最大值: 9999-12-31 Active bool `json:"active,omitempty"` // 当前实体是否启用 OperationReason string `json:"operation_reason,omitempty"` // 操作原因 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalCostCenterName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换。 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的过程部门 ID, 生效后将返回正式的people_corehr_department_id } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDepartmentName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOption struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalStaffingModeOptionDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoOriginalSubTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenter struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 CostCenterVersionID string `json:"cost_center_version_id,omitempty"` // 成本中心版本ID - Name []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName `json:"name,omitempty"` // 成本中心名称 + Name []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName `json:"name,omitempty"` // 成本中心名称 Code string `json:"code,omitempty"` // 编码 ParentCostCenterID string `json:"parent_cost_center_id,omitempty"` // 上级成本中心ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 Managers []string `json:"managers,omitempty"` // 成本中心负责人ID 列表, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - Description []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription `json:"description,omitempty"` // 成本中心描述 + Description []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription `json:"description,omitempty"` // 成本中心描述 EffectiveTime string `json:"effective_time,omitempty"` // 生效时间- 日期格式: YYYY-MM-DD- 最小值: 1900-01-01- 最大值: 9999-12-31 ExpirationTime string `json:"expiration_time,omitempty"` // 过期时间- 日期格式: YYYY-MM-DD- 最小值: 1900-01-01- 最大值: 9999-12-31 Active bool `json:"active,omitempty"` // 当前实体是否启用 OperationReason string `json:"operation_reason,omitempty"` // 操作原因 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetCostCenterName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的临时部门 ID, 生效后将返回正式的people_corehr_department_id } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDepartmentName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOption struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetStaffingModeOptionDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay ... -type QueryCorehrApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay struct { +// QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay ... +type QueryCoreHRApprovalGroupsDepartmentChangeListByIDsRespDepartmentChangeReorganizationInfoTargetSubTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrApprovalGroupsDepartmentChangeListByIDsResp ... -type queryCorehrApprovalGroupsDepartmentChangeListByIDsResp struct { +// queryCoreHRApprovalGroupsDepartmentChangeListByIDsResp ... +type queryCoreHRApprovalGroupsDepartmentChangeListByIDsResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp `json:"data,omitempty"` + Data *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_approval_groups_query_job_change_list_by_ids.go b/api_corehr_approval_groups_query_job_change_list_by_ids.go index 726d871d..f26e880a 100644 --- a/api_corehr_approval_groups_query_job_change_list_by_ids.go +++ b/api_corehr_approval_groups_query_job_change_list_by_ids.go @@ -21,46 +21,46 @@ import ( "context" ) -// QueryCorehrApprovalGroupsJobChangeListByIDs 根据人员异动记录 ID 批量查询人员调整内容 +// QueryCoreHRApprovalGroupsJobChangeListByIDs 根据人员异动记录 ID 批量查询人员调整内容 // // - 用户使用该接口前需提前获取 组织架构调整流程信息 权限 // - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_job_change_list_by_ids // new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/open_query_job_change_list_by_ids -func (r *CoreHRService) QueryCorehrApprovalGroupsJobChangeListByIDs(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrApprovalGroupsJobChangeListByIDs mock enable") - return r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRApprovalGroupsJobChangeListByIDs(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRApprovalGroupsJobChangeListByIDs mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrApprovalGroupsJobChangeListByIDs", + API: "QueryCoreHRApprovalGroupsJobChangeListByIDs", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approval_groups/open_query_job_change_list_by_ids", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrApprovalGroupsJobChangeListByIDsResp) + resp := new(queryCoreHRApprovalGroupsJobChangeListByIDsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs mock CoreHRQueryCorehrApprovalGroupsJobChangeListByIDs method -func (r *Mock) MockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs(f func(ctx context.Context, request *QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsJobChangeListByIDsResp, *Response, error)) { - r.mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs = f +// MockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs mock CoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs method +func (r *Mock) MockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs(f func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error)) { + r.mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs = f } -// UnMockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs un-mock CoreHRQueryCorehrApprovalGroupsJobChangeListByIDs method -func (r *Mock) UnMockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs() { - r.mockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs = nil +// UnMockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs un-mock CoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs method +func (r *Mock) UnMockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs() { + r.mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs = nil } -// QueryCorehrApprovalGroupsJobChangeListByIDsReq ... -type QueryCorehrApprovalGroupsJobChangeListByIDsReq struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsReq ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsReq struct { ProcessID string `query:"process_id" json:"-"` // 组织架构调整流程 ID, 用户通过『飞书人事-我的团队-组织架构』或『飞书 人事-人员管理-组织架构』 发起一个组织架构调整, 并提交审批后, 系统会根据管理员在审批流程中配置的规则, 生成 一个或多个审批单据。示例值: 6991776076699549697 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` @@ -68,25 +68,25 @@ type QueryCorehrApprovalGroupsJobChangeListByIDsReq struct { NeedDepartmentPath *bool `json:"need_department_path,omitempty"` // 是否返回部门全路径示例值: false默认值: `false` } -// QueryCorehrApprovalGroupsJobChangeListByIDsResp ... -type QueryCorehrApprovalGroupsJobChangeListByIDsResp struct { - JobChanges []*QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChange `json:"job_changes,omitempty"` // 人员异动记录信息列表 +// QueryCoreHRApprovalGroupsJobChangeListByIDsResp ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsResp struct { + JobChanges []*QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChange `json:"job_changes,omitempty"` // 人员异动记录信息列表 } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChange ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChange struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChange ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChange struct { JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id, 在组织架构调整发起后, 会为调整涉及的员工生成一个 员工异动记录, 对应的记录 ID 即为 job_change_id EmploymentID string `json:"employment_id,omitempty"` // 雇员 id, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - TransferInfo *QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 + TransferInfo *QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo struct { OriginalDepartment string `json:"original_department,omitempty"` // 原部门, 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详情, ID 类型需要为 [people_corehr_department_id]。 TargetDepartment string `json:"target_department,omitempty"` // 新部门, 如果是一个已存在的部门, 则会使用其飞书人事部门 ID 作为调整记录 ID, 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详情, ID 类型需要为[people_corehr_id] TargetDraftDepartment string `json:"target_draft_department,omitempty"` // 新部门, 为避免一个没有经过审批的组织架构调整影响正在运行的系统, 如果是在组织架构调整中新生成的『部门』生成临时的 ID, 格式 "td_xxx"可通过[批量查询部门调整内容](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_department_change_list_by_ids)获取详情, ID 类型需要为 [people_corehr_department_id]。 - OriginalDepartmentIDPath []*QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath `json:"original_department_id_path,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表, 主要用于 API 场景, 没有审批完成前获取部门路径用于计算。 - TargetDepartmentIDPath []*QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath `json:"target_department_id_path,omitempty"` // 新部门全路径, 从根部门开始自上而下返回部门 ID 列表 + OriginalDepartmentIDPath []*QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath `json:"original_department_id_path,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表, 主要用于 API 场景, 没有审批完成前获取部门路径用于计算。 + TargetDepartmentIDPath []*QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath `json:"target_department_id_path,omitempty"` // 新部门全路径, 从根部门开始自上而下返回部门 ID 列表 OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 OriginalJob string `json:"original_job,omitempty"` // 原职务, 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详情。字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 @@ -95,8 +95,8 @@ type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo struct TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列, 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详情。 OriginalJobLevel string `json:"original_job_level,omitempty"` // 原职级, 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详情。字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 TargetJobLevel string `json:"target_job_level,omitempty"` // 新职级, 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详情。字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 - OriginalCostCenterRate []*QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 - TargetCostCenterRate []*QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 + OriginalCostCenterRate []*QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 + TargetCostCenterRate []*QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 TargetAllocationExpirationTime string `json:"target_allocation_expiration_time,omitempty"` // 新分摊失效时间- 时间格式: YYYY-MM-DD HH:MM:SS- 功能灰度中, 成本分摊功能灰度开放前无值。 OriginalAllocationExpirationTime string `json:"original_allocation_expiration_time,omitempty"` // 原分摊失效时间- 时间格式: YYYY-MM-DD HH:MM:SS- 功能灰度中, 成本分摊功能灰度开放前无值。 TargetAllocationEffectiveTime string `json:"target_allocation_effective_time,omitempty"` // 新分摊生效时间- 时间格式: YYYY-MM-DD HH:MM:SS- 功能灰度中, 成本分摊功能灰度开放前无值。 @@ -112,36 +112,36 @@ type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfo struct TargetDraftPosition string `json:"target_draft_position,omitempty"` // 新岗位(调整过程岗位 ID )- 对于在本次调整中新建的岗位, 在调整未生效前会返回格式为 td_xxx 的过程岗位 ID, 生效后将返回正式的岗位ID } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) 成本分摊百分比的整数部分, 实际值为小数时向下取整(比如: 12.99→ 12), 如需小数请使用分摊比例字段。 NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 成本分摊百分比, 可能包含小数位。- 功能灰度中, 成本分摊功能灰度开放前无值。 } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoOriginalDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换。 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的过程部门 ID, 生效后将返回正式的people_corehr_department_id } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) 成本分摊百分比的整数部分, 实际值为小数时向下取整(比如: 12.99→ 12), 如需小数请使用分摊比例字段。 NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 成本分摊百分比, 可能包含小数位。- 功能灰度中, 成本分摊功能灰度开放前无值。 } -// QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath ... -type QueryCorehrApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath ... +type QueryCoreHRApprovalGroupsJobChangeListByIDsRespJobChangeTransferInfoTargetDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的临时部门 ID, 生效后将返回正式的people_corehr_department_id } -// queryCorehrApprovalGroupsJobChangeListByIDsResp ... -type queryCorehrApprovalGroupsJobChangeListByIDsResp struct { +// queryCoreHRApprovalGroupsJobChangeListByIDsResp ... +type queryCoreHRApprovalGroupsJobChangeListByIDsResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrApprovalGroupsJobChangeListByIDsResp `json:"data,omitempty"` + Data *QueryCoreHRApprovalGroupsJobChangeListByIDsResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_approval_groups_query_position_change_list_by_ids.go b/api_corehr_approval_groups_query_position_change_list_by_ids.go index 93611bcc..49f5b382 100644 --- a/api_corehr_approval_groups_query_position_change_list_by_ids.go +++ b/api_corehr_approval_groups_query_position_change_list_by_ids.go @@ -21,46 +21,46 @@ import ( "context" ) -// QueryCorehrApprovalGroupsPositionChangeListByIDs 根据岗位调整记录 ID 批量查询岗位调整内容 +// QueryCoreHRApprovalGroupsPositionChangeListByIDs 根据岗位调整记录 ID 批量查询岗位调整内容 // // - 用户使用该接口前需提前获取 组织架构调整岗位调整内容 权限。 // - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/open_query_position_change_list_by_ids // new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/open_query_position_change_list_by_ids -func (r *CoreHRService) QueryCorehrApprovalGroupsPositionChangeListByIDs(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrApprovalGroupsPositionChangeListByIDs mock enable") - return r.cli.mock.mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRApprovalGroupsPositionChangeListByIDs(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRApprovalGroupsPositionChangeListByIDs mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrApprovalGroupsPositionChangeListByIDs", + API: "QueryCoreHRApprovalGroupsPositionChangeListByIDs", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approval_groups/open_query_position_change_list_by_ids", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrApprovalGroupsPositionChangeListByIDsResp) + resp := new(queryCoreHRApprovalGroupsPositionChangeListByIDsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs mock CoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs method -func (r *Mock) MockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs(f func(ctx context.Context, request *QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *Response, error)) { - r.mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs = f +// MockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs mock CoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs method +func (r *Mock) MockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs(f func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error)) { + r.mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs = f } -// UnMockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs un-mock CoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs method -func (r *Mock) UnMockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs() { - r.mockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs = nil +// UnMockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs un-mock CoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs method +func (r *Mock) UnMockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs() { + r.mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs = nil } -// QueryCorehrApprovalGroupsPositionChangeListByIDsReq ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsReq struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsReq ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsReq struct { ProcessID string `query:"process_id" json:"-"` // 组织架构调整流程 ID, 用户通过『飞书人事-我的团队-组织架构』或『飞书人事-人员管理-组织架构』 发起一个组织架构调整, 并提交审批后, 系统会根据管理员在审批流程中配置的规则, 生成一个或多个审批单据。可通过「组织架构调整状态变更」的事件来获取示例值: 6893014062142064111 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` @@ -68,22 +68,22 @@ type QueryCorehrApprovalGroupsPositionChangeListByIDsReq struct { NeedDepartmentPath *bool `json:"need_department_path,omitempty"` // 是否返回部门全路径, 用于在组织架构调整中新建部门的场景, 由于岗位所属部门还未生效, 因此返回部门全路径用于数据查询示例值: false默认值: `false` } -// QueryCorehrApprovalGroupsPositionChangeListByIDsResp ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsResp struct { - PositionChanges []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChange `json:"position_changes,omitempty"` // 岗位调整记录信息列表 +// QueryCoreHRApprovalGroupsPositionChangeListByIDsResp ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsResp struct { + PositionChanges []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChange `json:"position_changes,omitempty"` // 岗位调整记录信息列表 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChange ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChange struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChange ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChange struct { PositionChangeID string `json:"position_change_id,omitempty"` // 关联的岗位调整记录 ID PositionID string `json:"position_id,omitempty"` // 岗位 ID。对于在本次调整中新建的岗位, 在调整未生效时将返回为空 DraftPositionID string `json:"draft_position_id,omitempty"` // 调整过程岗位 ID 。对于在本次调整中新建的岗位, 在调整未生效前会返回格式为 td_xxx 的过程岗位 ID, 生效后将返回正式的岗位 ID PositionChangeType string `json:"position_change_type,omitempty"` // 调整类型可选值有: 未知新建编辑停用 - PositionAdjustmentInfo *QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo `json:"position_adjustment_info,omitempty"` // 调整详细信息 + PositionAdjustmentInfo *QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo `json:"position_adjustment_info,omitempty"` // 调整详细信息 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfo struct { OriginalJobFamilies []string `json:"original_job_families,omitempty"` // 原序列 ID 列表, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取详情字段权限要求: 获取岗位的序列字段信息 TargetJobFamilies []string `json:"target_job_families,omitempty"` // 调整后序列 ID 列表, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获取详情字段权限要求: 获取岗位的序列字段信息 OriginalDepartment string `json:"original_department,omitempty"` // 原所属部门 ID, 可通过[【批量查询部门V2】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 @@ -99,8 +99,8 @@ type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionA TargetIsKeyPosition bool `json:"target_is_key_position,omitempty"` // 调整后是否关键岗位 OriginalEmployeeTypes []string `json:"original_employee_types,omitempty"` // 原人员类型 ID 列表, 可通过[【查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情字段权限要求: 获取岗位的人员类型字段信息 TargetEmployeeTypes []string `json:"target_employee_types,omitempty"` // 调整后人员类型 ID 列表, 可通过[【查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情字段权限要求: 获取岗位的人员类型字段信息 - OriginalNames []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName `json:"original_names,omitempty"` // 原名称 - TargetNames []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName `json:"target_names,omitempty"` // 调整后名称 + OriginalNames []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName `json:"original_names,omitempty"` // 原名称 + TargetNames []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName `json:"target_names,omitempty"` // 调整后名称 OriginalJobGrades []string `json:"original_job_grades,omitempty"` // 原职等 ID 列表, 可通过[【查询职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详情字段权限要求: 获取岗位的职等字段信息 TargetJobGrades []string `json:"target_job_grades,omitempty"` // 调整后职等 ID 列表, 可通过[【查询职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详情字段权限要求: 获取岗位的职等字段信息 OriginalCode string `json:"original_code,omitempty"` // 原编码 @@ -114,87 +114,87 @@ type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionA TargetDraftDirectLeader string `json:"target_draft_direct_leader,omitempty"` // 调整后直线上级(岗位) ID, 对于在本次调整中新建的岗位, 在调整未生效前会返回格式为 td_xxx 的过程岗位 ID, 生效后将返回正式的岗位ID字段权限要求: 获取岗位的直线上级字段信息 OriginalWorkLocations []string `json:"original_work_locations,omitempty"` // 原工作地点 ID 列表, 可通过[【通过地点 ID 批量获取地点信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)接口获取详情 TargetWorkLocations []string `json:"target_work_locations,omitempty"` // 调整后工作地点 ID 列表, 可通过[【通过地点 ID 批量获取地点信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/batch_get)接口获取详情 - OriginalDescriptions []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription `json:"original_descriptions,omitempty"` // 原描述 - TargetDescriptions []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription `json:"target_descriptions,omitempty"` // 调整后描述 - OriginalDepartmentIDPaths []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath `json:"original_department_id_paths,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表, 主要用于 API 场景, 没有审批完成前获取部门路径用于计算 - TargetDepartmentIDPaths []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath `json:"target_department_id_paths,omitempty"` // 调整后部门全路径, 从根部门开始自上而下返回部门 ID 列表 - CustomFields []*QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段 + OriginalDescriptions []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription `json:"original_descriptions,omitempty"` // 原描述 + TargetDescriptions []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription `json:"target_descriptions,omitempty"` // 调整后描述 + OriginalDepartmentIDPaths []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath `json:"original_department_id_paths,omitempty"` // 原部门全路径, 从根部门开始自上而下返回部门 ID 列表, 主要用于 API 场景, 没有审批完成前获取部门路径用于计算 + TargetDepartmentIDPaths []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath `json:"target_department_id_paths,omitempty"` // 调整后部门全路径, 从根部门开始自上而下返回部门 ID 列表 + CustomFields []*QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField struct { - OriginValue *QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue `json:"origin_value,omitempty"` // 调整前 - TargetValue *QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue `json:"target_value,omitempty"` // 调整后 +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomField struct { + OriginValue *QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue `json:"origin_value,omitempty"` // 调整前 + TargetValue *QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue `json:"target_value,omitempty"` // 调整后 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValue struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("\"123\"", "\"123.23\"", "\"true\"", [\"id1\", \"id2\"], \"2006-01-02 15:04:05\")``` } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldOriginValueName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValue struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("\"123\"", "\"123.23\"", "\"true\"", [\"id1\", \"id2\"], \"2006-01-02 15:04:05\")``` } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoCustomFieldTargetValueName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的过程部门 ID, 生效后将返回正式的people_corehr_department_id } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoOriginalName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDepartmentIDPath struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 对于在本次调整中新建的部门, 在调整未生效时将返回为空。支持根据部门 ID 类型转换 DraftDepartmentID string `json:"draft_department_id,omitempty"` // 调整过程部门 ID, 固定返回people_corehr_department_id, 不会根据部门 ID 类型进行转换。对于在本次调整中新建的部门, 在调整未生效前会返回格式为 td_xxx 的临时部门 ID, 生效后将返回正式的people_corehr_department_id } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName ... -type QueryCorehrApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName struct { +// QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName ... +type QueryCoreHRApprovalGroupsPositionChangeListByIDsRespPositionChangePositionAdjustmentInfoTargetName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrApprovalGroupsPositionChangeListByIDsResp ... -type queryCorehrApprovalGroupsPositionChangeListByIDsResp struct { +// queryCoreHRApprovalGroupsPositionChangeListByIDsResp ... +type queryCoreHRApprovalGroupsPositionChangeListByIDsResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrApprovalGroupsPositionChangeListByIDsResp `json:"data,omitempty"` + Data *QueryCoreHRApprovalGroupsPositionChangeListByIDsResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_approver_list.go b/api_corehr_approver_list.go index 7da80c5f..5f11c890 100644 --- a/api_corehr_approver_list.go +++ b/api_corehr_approver_list.go @@ -21,43 +21,43 @@ import ( "context" ) -// ListCorehrApprover 审批任务依赖于流程节点实例存在, 每一个流程节点实例可能包含有一或多个审批任务, 每一个任务表明当前节点的审批人是谁, 该接口可获取指定人员的审批任务列表(此功能不受数据权限范围控制)。 +// ListCoreHRApprover 审批任务依赖于流程节点实例存在, 每一个流程节点实例可能包含有一或多个审批任务, 每一个任务表明当前节点的审批人是谁, 该接口可获取指定人员的审批任务列表(此功能不受数据权限范围控制)。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approver/list // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/list -func (r *CoreHRService) ListCorehrApprover(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrApprover != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrApprover mock enable") - return r.cli.mock.mockCoreHRListCorehrApprover(ctx, request, options...) +func (r *CoreHRService) ListCoreHRApprover(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRApprover != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRApprover mock enable") + return r.cli.mock.mockCoreHRListCoreHRApprover(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrApprover", + API: "ListCoreHRApprover", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/approvers", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrApproverResp) + resp := new(listCoreHRApproverResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrApprover mock CoreHRListCorehrApprover method -func (r *Mock) MockCoreHRListCorehrApprover(f func(ctx context.Context, request *ListCorehrApproverReq, options ...MethodOptionFunc) (*ListCorehrApproverResp, *Response, error)) { - r.mockCoreHRListCorehrApprover = f +// MockCoreHRListCoreHRApprover mock CoreHRListCoreHRApprover method +func (r *Mock) MockCoreHRListCoreHRApprover(f func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error)) { + r.mockCoreHRListCoreHRApprover = f } -// UnMockCoreHRListCorehrApprover un-mock CoreHRListCorehrApprover method -func (r *Mock) UnMockCoreHRListCorehrApprover() { - r.mockCoreHRListCorehrApprover = nil +// UnMockCoreHRListCoreHRApprover un-mock CoreHRListCoreHRApprover method +func (r *Mock) UnMockCoreHRListCoreHRApprover() { + r.mockCoreHRListCoreHRApprover = nil } -// ListCorehrApproverReq ... -type ListCorehrApproverReq struct { +// ListCoreHRApproverReq ... +type ListCoreHRApproverReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小示例值: 20默认值: `20` 取值范围: `1` ~ `100` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 1默认值: `1` UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -65,24 +65,24 @@ type ListCorehrApproverReq struct { ApproverStatus *int64 `query:"approver_status" json:"-"` // 任务状态示例值: 1可选值有: 跳过(废弃, 不支持这个状态)发起未开始(废弃, 不支持这个状态)进行中已拒绝已通过被撤回(废弃, 不支持这个状态)抄送表单提交(不建议使用, 可通过状态3来查询)失败已回退发起撤销(废弃, 不支持这个状态) } -// ListCorehrApproverResp ... -type ListCorehrApproverResp struct { +// ListCoreHRApproverResp ... +type ListCoreHRApproverResp struct { PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 - ApproverList []*ListCorehrApproverRespApprover `json:"approver_list,omitempty"` // 审批任务列表 + ApproverList []*ListCoreHRApproverRespApprover `json:"approver_list,omitempty"` // 审批任务列表 } -// ListCorehrApproverRespApprover ... -type ListCorehrApproverRespApprover struct { +// ListCoreHRApproverRespApprover ... +type ListCoreHRApproverRespApprover struct { ApproverID string `json:"approver_id,omitempty"` // 审批任务id ProcessID string `json:"process_id,omitempty"` // 流程id ApproverStatus int64 `json:"approver_status,omitempty"` // 任务状态可选值有: 跳过发起未开始进行中已拒绝已通过被撤回抄送表单提交失败已回退发起撤销已干预 } -// listCorehrApproverResp ... -type listCorehrApproverResp struct { +// listCoreHRApproverResp ... +type listCoreHRApproverResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrApproverResp `json:"data,omitempty"` + Data *ListCoreHRApproverResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_authorization_add_role_assign.go b/api_corehr_authorization_add_role_assign.go index d0d9b037..f4820141 100644 --- a/api_corehr_authorization_add_role_assign.go +++ b/api_corehr_authorization_add_role_assign.go @@ -21,61 +21,61 @@ import ( "context" ) -// AddCorehrAuthorizationRoleAssign 为用户授权角色及管理范围 +// AddCoreHRAuthorizationRoleAssign 为用户授权角色及管理范围 // // 对已被授权某个角色的用户继续授权, 将在原授权的数据范围基础上追加数据范围。 // 暂时仅支持授权「按组织架构管理」的角色 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/add_role_assign // new doc: https://open.feishu.cn/document/corehr-v1/authorization/add_role_assign -func (r *CoreHRService) AddCorehrAuthorizationRoleAssign(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error) { - if r.cli.mock.mockCoreHRAddCorehrAuthorizationRoleAssign != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCorehrAuthorizationRoleAssign mock enable") - return r.cli.mock.mockCoreHRAddCorehrAuthorizationRoleAssign(ctx, request, options...) +func (r *CoreHRService) AddCoreHRAuthorizationRoleAssign(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRAddCoreHRAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCoreHRAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRAddCoreHRAuthorizationRoleAssign(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "AddCorehrAuthorizationRoleAssign", + API: "AddCoreHRAuthorizationRoleAssign", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/add_role_assign", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(addCorehrAuthorizationRoleAssignResp) + resp := new(addCoreHRAuthorizationRoleAssignResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRAddCorehrAuthorizationRoleAssign mock CoreHRAddCorehrAuthorizationRoleAssign method -func (r *Mock) MockCoreHRAddCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *AddCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCorehrAuthorizationRoleAssignResp, *Response, error)) { - r.mockCoreHRAddCorehrAuthorizationRoleAssign = f +// MockCoreHRAddCoreHRAuthorizationRoleAssign mock CoreHRAddCoreHRAuthorizationRoleAssign method +func (r *Mock) MockCoreHRAddCoreHRAuthorizationRoleAssign(f func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRAddCoreHRAuthorizationRoleAssign = f } -// UnMockCoreHRAddCorehrAuthorizationRoleAssign un-mock CoreHRAddCorehrAuthorizationRoleAssign method -func (r *Mock) UnMockCoreHRAddCorehrAuthorizationRoleAssign() { - r.mockCoreHRAddCorehrAuthorizationRoleAssign = nil +// UnMockCoreHRAddCoreHRAuthorizationRoleAssign un-mock CoreHRAddCoreHRAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRAddCoreHRAuthorizationRoleAssign() { + r.mockCoreHRAddCoreHRAuthorizationRoleAssign = nil } -// AddCorehrAuthorizationRoleAssignReq ... -type AddCorehrAuthorizationRoleAssignReq struct { +// AddCoreHRAuthorizationRoleAssignReq ... +type AddCoreHRAuthorizationRoleAssignReq struct { EmploymentID string `query:"employment_id" json:"-"` // 被授权用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID RoleID string `query:"role_id" json:"-"` // 被授权角色的 ID, 一次仅可授权一个角色。你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在角色详情中获取(URL 末的数字)示例值: 7358732070333613619 AssignedOrganizationItems [][]interface{} `json:"assigned_organization_items,omitempty"` // 被授权角色的授权范围。你需要按照请求体示例构造结构体。 它是一个二维数组, 你可以使用它来授权具有多个管理维度的角色, 例如属地 HRBP。 - [org_key]: 管理维度。可选项有 - 部门: [department] - 工作地点: [work_location] - 公司: [company] - 成本中心: [organization_id_strand] - 社保城市: [social_security_location] - 入职地点: [onboarding_location] - 薪资组: [pay_group] - 人才池: [talent_pool] - 自定义组织: 可在「[飞书人事](https://people.feishu.cn/people/)-设置-组织设置」中相应的自定义组织目录下查看对应的组织类型编码, 例如[custom_org_01]、[custom_org_02]、[custom_org_03]、[custom_org_04]、[custom_org_05]- [org_ids]: 组织 ID。组织 ID 和组织编码只需要填写一个- [org_codes]: 组织编码。组织 ID 和组织编码只需要填写一个示例值: 67489937334909845 长度范围: `0` ~ `300` } -// AddCorehrAuthorizationRoleAssignResp ... -type AddCorehrAuthorizationRoleAssignResp struct { +// AddCoreHRAuthorizationRoleAssignResp ... +type AddCoreHRAuthorizationRoleAssignResp struct { AssignID string `json:"assign_id,omitempty"` // 授权id } -// addCorehrAuthorizationRoleAssignResp ... -type addCorehrAuthorizationRoleAssignResp struct { +// addCoreHRAuthorizationRoleAssignResp ... +type addCoreHRAuthorizationRoleAssignResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *AddCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Data *AddCoreHRAuthorizationRoleAssignResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_authorization_remove_role_assign.go b/api_corehr_authorization_remove_role_assign.go index e74c18ec..28da5fb6 100644 --- a/api_corehr_authorization_remove_role_assign.go +++ b/api_corehr_authorization_remove_role_assign.go @@ -21,59 +21,59 @@ import ( "context" ) -// RemoveCorehrAuthorizationRoleAssign 移除用户被授权的指定角色及授权范围, 已经存在授权可通过[查询单个用户授权](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/get_by_param)获得。或者在[飞书人事管理后台](https://people.feishu.cn/people/)里 -「设置」-「权限设置」中的查看已有用户授权信息。 +// RemoveCoreHRAuthorizationRoleAssign 移除用户被授权的指定角色及授权范围, 已经存在授权可通过[查询单个用户授权](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/get_by_param)获得。或者在[飞书人事管理后台](https://people.feishu.cn/people/)里 -「设置」-「权限设置」中的查看已有用户授权信息。 // // 无法移除「按规则授权」的角色 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/remove_role_assign // new doc: https://open.feishu.cn/document/corehr-v1/authorization/remove_role_assign -func (r *CoreHRService) RemoveCorehrAuthorizationRoleAssign(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error) { - if r.cli.mock.mockCoreHRRemoveCorehrAuthorizationRoleAssign != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrAuthorizationRoleAssign mock enable") - return r.cli.mock.mockCoreHRRemoveCorehrAuthorizationRoleAssign(ctx, request, options...) +func (r *CoreHRService) RemoveCoreHRAuthorizationRoleAssign(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCoreHRAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCoreHRAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRRemoveCoreHRAuthorizationRoleAssign(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "RemoveCorehrAuthorizationRoleAssign", + API: "RemoveCoreHRAuthorizationRoleAssign", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/remove_role_assign", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(removeCorehrAuthorizationRoleAssignResp) + resp := new(removeCoreHRAuthorizationRoleAssignResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRRemoveCorehrAuthorizationRoleAssign mock CoreHRRemoveCorehrAuthorizationRoleAssign method -func (r *Mock) MockCoreHRRemoveCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *RemoveCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCorehrAuthorizationRoleAssignResp, *Response, error)) { - r.mockCoreHRRemoveCorehrAuthorizationRoleAssign = f +// MockCoreHRRemoveCoreHRAuthorizationRoleAssign mock CoreHRRemoveCoreHRAuthorizationRoleAssign method +func (r *Mock) MockCoreHRRemoveCoreHRAuthorizationRoleAssign(f func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRRemoveCoreHRAuthorizationRoleAssign = f } -// UnMockCoreHRRemoveCorehrAuthorizationRoleAssign un-mock CoreHRRemoveCorehrAuthorizationRoleAssign method -func (r *Mock) UnMockCoreHRRemoveCorehrAuthorizationRoleAssign() { - r.mockCoreHRRemoveCorehrAuthorizationRoleAssign = nil +// UnMockCoreHRRemoveCoreHRAuthorizationRoleAssign un-mock CoreHRRemoveCoreHRAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRRemoveCoreHRAuthorizationRoleAssign() { + r.mockCoreHRRemoveCoreHRAuthorizationRoleAssign = nil } -// RemoveCorehrAuthorizationRoleAssignReq ... -type RemoveCorehrAuthorizationRoleAssignReq struct { +// RemoveCoreHRAuthorizationRoleAssignReq ... +type RemoveCoreHRAuthorizationRoleAssignReq struct { EmploymentID string `query:"employment_id" json:"-"` // 用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID RoleID string `query:"role_id" json:"-"` // 移除的角色的 ID, 一次仅可移除一个角色。>你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在飞书人事角色详情页的url中获取(URL 末的数字)role_id。示例值: 7358732070333613619 } -// RemoveCorehrAuthorizationRoleAssignResp ... -type RemoveCorehrAuthorizationRoleAssignResp struct { +// RemoveCoreHRAuthorizationRoleAssignResp ... +type RemoveCoreHRAuthorizationRoleAssignResp struct { AssignID string `json:"assign_id,omitempty"` // 授权id } -// removeCorehrAuthorizationRoleAssignResp ... -type removeCorehrAuthorizationRoleAssignResp struct { +// removeCoreHRAuthorizationRoleAssignResp ... +type removeCoreHRAuthorizationRoleAssignResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *RemoveCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Data *RemoveCoreHRAuthorizationRoleAssignResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_authorization_update_role_assign.go b/api_corehr_authorization_update_role_assign.go index 60187d14..d01b0431 100644 --- a/api_corehr_authorization_update_role_assign.go +++ b/api_corehr_authorization_update_role_assign.go @@ -21,61 +21,61 @@ import ( "context" ) -// UpdateCorehrAuthorizationRoleAssign 更新角色被授权的管理范围 +// UpdateCoreHRAuthorizationRoleAssign 更新角色被授权的管理范围 // // 更新后的数据范围, 以本次提交的数据范围为准, 本次未提交的部分将被移除。 // 暂时仅支持更新「按组织架构管理」角色的数据范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/authorization/update_role_assign // new doc: https://open.feishu.cn/document/corehr-v1/authorization/update_role_assign -func (r *CoreHRService) UpdateCorehrAuthorizationRoleAssign(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrAuthorizationRoleAssign != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrAuthorizationRoleAssign mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrAuthorizationRoleAssign(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRAuthorizationRoleAssign(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRAuthorizationRoleAssign != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRAuthorizationRoleAssign mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRAuthorizationRoleAssign(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrAuthorizationRoleAssign", + API: "UpdateCoreHRAuthorizationRoleAssign", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/authorizations/update_role_assign", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrAuthorizationRoleAssignResp) + resp := new(updateCoreHRAuthorizationRoleAssignResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrAuthorizationRoleAssign mock CoreHRUpdateCorehrAuthorizationRoleAssign method -func (r *Mock) MockCoreHRUpdateCorehrAuthorizationRoleAssign(f func(ctx context.Context, request *UpdateCorehrAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCorehrAuthorizationRoleAssignResp, *Response, error)) { - r.mockCoreHRUpdateCorehrAuthorizationRoleAssign = f +// MockCoreHRUpdateCoreHRAuthorizationRoleAssign mock CoreHRUpdateCoreHRAuthorizationRoleAssign method +func (r *Mock) MockCoreHRUpdateCoreHRAuthorizationRoleAssign(f func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRAuthorizationRoleAssign = f } -// UnMockCoreHRUpdateCorehrAuthorizationRoleAssign un-mock CoreHRUpdateCorehrAuthorizationRoleAssign method -func (r *Mock) UnMockCoreHRUpdateCorehrAuthorizationRoleAssign() { - r.mockCoreHRUpdateCorehrAuthorizationRoleAssign = nil +// UnMockCoreHRUpdateCoreHRAuthorizationRoleAssign un-mock CoreHRUpdateCoreHRAuthorizationRoleAssign method +func (r *Mock) UnMockCoreHRUpdateCoreHRAuthorizationRoleAssign() { + r.mockCoreHRUpdateCoreHRAuthorizationRoleAssign = nil } -// UpdateCorehrAuthorizationRoleAssignReq ... -type UpdateCorehrAuthorizationRoleAssignReq struct { +// UpdateCoreHRAuthorizationRoleAssignReq ... +type UpdateCoreHRAuthorizationRoleAssignReq struct { EmploymentID string `query:"employment_id" json:"-"` // 被授权用户的 ID, ID类型与user_id_type的取值意义一致。默认为飞书人事中的 [employment_id]。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: 7303877149017292801 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID RoleID string `query:"role_id" json:"-"` // 被授权角色的 ID, 一次仅可授权一个角色。你可以使用 [批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 或者在角色详情中获取(URL 末的数字)示例值: 7358732070333613619 AssignedOrganizationItems [][]interface{} `json:"assigned_organization_items,omitempty"` // 被授权角色的授权范围。你需要按照请求体示例构造结构体。 它是一个二维数组, 你可以使用它来授权具有多个管理维度的角色, 例如属地 HRBP。 - [org_key]: 管理维度。可选项有 - 部门: [department] - 工作地点: [work_location] - 公司: [company] - 成本中心: [organization_id_strand] - 社保城市: [social_security_location] - 入职地点: [onboarding_location] - 薪资组: [pay_group] - 人才池: [talent_pool] - 自定义组织: 可在「[飞书人事](https://people.feishu.cn/people/)-设置-组织设置」中相应的自定义组织目录下查看对应的组织类型编码, 例如[custom_org_01]、[custom_org_02]、[custom_org_03]、[custom_org_04]、[custom_org_05]- [org_ids]: 组织 ID。组织 ID 和组织编码只需要填写一个- [org_codes]: 组织编码。组织 ID 和组织编码只需要填写一个示例值: 67489937334909845 长度范围: `0` ~ `300` } -// UpdateCorehrAuthorizationRoleAssignResp ... -type UpdateCorehrAuthorizationRoleAssignResp struct { +// UpdateCoreHRAuthorizationRoleAssignResp ... +type UpdateCoreHRAuthorizationRoleAssignResp struct { AssignID string `json:"assign_id,omitempty"` // 授权id } -// updateCorehrAuthorizationRoleAssignResp ... -type updateCorehrAuthorizationRoleAssignResp struct { +// updateCoreHRAuthorizationRoleAssignResp ... +type updateCoreHRAuthorizationRoleAssignResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrAuthorizationRoleAssignResp `json:"data,omitempty"` + Data *UpdateCoreHRAuthorizationRoleAssignResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_basic_info_language_search.go b/api_corehr_basic_info_language_search.go index b1128906..9f29fe1e 100644 --- a/api_corehr_basic_info_language_search.go +++ b/api_corehr_basic_info_language_search.go @@ -21,74 +21,74 @@ import ( "context" ) -// SearchCorehrBasicInfoLanguage 根据语言 ID、状态, 批量查询语言信息 +// SearchCoreHRBasicInfoLanguage 根据语言 ID、状态, 批量查询语言信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-language/search // new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-language/search -func (r *CoreHRService) SearchCorehrBasicInfoLanguage(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error) { - if r.cli.mock.mockCoreHRSearchCorehrBasicInfoLanguage != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrBasicInfoLanguage mock enable") - return r.cli.mock.mockCoreHRSearchCorehrBasicInfoLanguage(ctx, request, options...) +func (r *CoreHRService) SearchCoreHRBasicInfoLanguage(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCoreHRBasicInfoLanguage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBasicInfoLanguage mock enable") + return r.cli.mock.mockCoreHRSearchCoreHRBasicInfoLanguage(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "SearchCorehrBasicInfoLanguage", + API: "SearchCoreHRBasicInfoLanguage", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/basic_info/languages/search", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(searchCorehrBasicInfoLanguageResp) + resp := new(searchCoreHRBasicInfoLanguageResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRSearchCorehrBasicInfoLanguage mock CoreHRSearchCorehrBasicInfoLanguage method -func (r *Mock) MockCoreHRSearchCorehrBasicInfoLanguage(f func(ctx context.Context, request *SearchCorehrBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoLanguageResp, *Response, error)) { - r.mockCoreHRSearchCorehrBasicInfoLanguage = f +// MockCoreHRSearchCoreHRBasicInfoLanguage mock CoreHRSearchCoreHRBasicInfoLanguage method +func (r *Mock) MockCoreHRSearchCoreHRBasicInfoLanguage(f func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error)) { + r.mockCoreHRSearchCoreHRBasicInfoLanguage = f } -// UnMockCoreHRSearchCorehrBasicInfoLanguage un-mock CoreHRSearchCorehrBasicInfoLanguage method -func (r *Mock) UnMockCoreHRSearchCorehrBasicInfoLanguage() { - r.mockCoreHRSearchCorehrBasicInfoLanguage = nil +// UnMockCoreHRSearchCoreHRBasicInfoLanguage un-mock CoreHRSearchCoreHRBasicInfoLanguage method +func (r *Mock) UnMockCoreHRSearchCoreHRBasicInfoLanguage() { + r.mockCoreHRSearchCoreHRBasicInfoLanguage = nil } -// SearchCorehrBasicInfoLanguageReq ... -type SearchCorehrBasicInfoLanguageReq struct { +// SearchCoreHRBasicInfoLanguageReq ... +type SearchCoreHRBasicInfoLanguageReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6862995772275688974 LanguageIDList []string `json:"language_id_list,omitempty"` // 语言 ID 列表, 如果为空, 返回所有数据示例值: ["6863323445740963342"] 长度范围: `0` ~ `100` StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 长度范围: `0` ~ `2` } -// SearchCorehrBasicInfoLanguageResp ... -type SearchCorehrBasicInfoLanguageResp struct { - Items []*SearchCorehrBasicInfoLanguageRespItem `json:"items,omitempty"` // 查询到的语言列表 +// SearchCoreHRBasicInfoLanguageResp ... +type SearchCoreHRBasicInfoLanguageResp struct { + Items []*SearchCoreHRBasicInfoLanguageRespItem `json:"items,omitempty"` // 查询到的语言列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// SearchCorehrBasicInfoLanguageRespItem ... -type SearchCorehrBasicInfoLanguageRespItem struct { +// SearchCoreHRBasicInfoLanguageRespItem ... +type SearchCoreHRBasicInfoLanguageRespItem struct { LanguageID string `json:"language_id,omitempty"` // 语言 ID - Name []*SearchCorehrBasicInfoLanguageRespItemName `json:"name,omitempty"` // 语言名称 + Name []*SearchCoreHRBasicInfoLanguageRespItemName `json:"name,omitempty"` // 语言名称 IetfLanguageTag string `json:"ietf_language_tag,omitempty"` // IETF 编码 Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 } -// SearchCorehrBasicInfoLanguageRespItemName ... -type SearchCorehrBasicInfoLanguageRespItemName struct { +// SearchCoreHRBasicInfoLanguageRespItemName ... +type SearchCoreHRBasicInfoLanguageRespItemName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// searchCorehrBasicInfoLanguageResp ... -type searchCorehrBasicInfoLanguageResp struct { +// searchCoreHRBasicInfoLanguageResp ... +type searchCoreHRBasicInfoLanguageResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCorehrBasicInfoLanguageResp `json:"data,omitempty"` + Data *SearchCoreHRBasicInfoLanguageResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_basic_info_time_zone_search.go b/api_corehr_basic_info_time_zone_search.go index df1a20d1..e8462911 100644 --- a/api_corehr_basic_info_time_zone_search.go +++ b/api_corehr_basic_info_time_zone_search.go @@ -21,75 +21,75 @@ import ( "context" ) -// SearchCorehrBasicInfoTimeZone 根据时区 ID、状态, 批量查询时区信息 +// SearchCoreHRBasicInfoTimeZone 根据时区 ID、状态, 批量查询时区信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-time_zone/search // new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/basic_info-time_zone/search -func (r *CoreHRService) SearchCorehrBasicInfoTimeZone(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error) { - if r.cli.mock.mockCoreHRSearchCorehrBasicInfoTimeZone != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrBasicInfoTimeZone mock enable") - return r.cli.mock.mockCoreHRSearchCorehrBasicInfoTimeZone(ctx, request, options...) +func (r *CoreHRService) SearchCoreHRBasicInfoTimeZone(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCoreHRBasicInfoTimeZone != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRBasicInfoTimeZone mock enable") + return r.cli.mock.mockCoreHRSearchCoreHRBasicInfoTimeZone(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "SearchCorehrBasicInfoTimeZone", + API: "SearchCoreHRBasicInfoTimeZone", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/basic_info/time_zones/search", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(searchCorehrBasicInfoTimeZoneResp) + resp := new(searchCoreHRBasicInfoTimeZoneResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRSearchCorehrBasicInfoTimeZone mock CoreHRSearchCorehrBasicInfoTimeZone method -func (r *Mock) MockCoreHRSearchCorehrBasicInfoTimeZone(f func(ctx context.Context, request *SearchCorehrBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCorehrBasicInfoTimeZoneResp, *Response, error)) { - r.mockCoreHRSearchCorehrBasicInfoTimeZone = f +// MockCoreHRSearchCoreHRBasicInfoTimeZone mock CoreHRSearchCoreHRBasicInfoTimeZone method +func (r *Mock) MockCoreHRSearchCoreHRBasicInfoTimeZone(f func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error)) { + r.mockCoreHRSearchCoreHRBasicInfoTimeZone = f } -// UnMockCoreHRSearchCorehrBasicInfoTimeZone un-mock CoreHRSearchCorehrBasicInfoTimeZone method -func (r *Mock) UnMockCoreHRSearchCorehrBasicInfoTimeZone() { - r.mockCoreHRSearchCorehrBasicInfoTimeZone = nil +// UnMockCoreHRSearchCoreHRBasicInfoTimeZone un-mock CoreHRSearchCoreHRBasicInfoTimeZone method +func (r *Mock) UnMockCoreHRSearchCoreHRBasicInfoTimeZone() { + r.mockCoreHRSearchCoreHRBasicInfoTimeZone = nil } -// SearchCorehrBasicInfoTimeZoneReq ... -type SearchCorehrBasicInfoTimeZoneReq struct { +// SearchCoreHRBasicInfoTimeZoneReq ... +type SearchCoreHRBasicInfoTimeZoneReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6862995772275688974 TimeZoneIDList []string `json:"time_zone_id_list,omitempty"` // 时区 ID 列表, 如果为空, 返回所有数据示例值: ["6862995813451171342"] 长度范围: `0` ~ `100` StatusList []int64 `json:"status_list,omitempty"` // 状态列表示例值: [1]可选值有: 生效失效默认值: `[1]` 长度范围: `0` ~ `2` } -// SearchCorehrBasicInfoTimeZoneResp ... -type SearchCorehrBasicInfoTimeZoneResp struct { - Items []*SearchCorehrBasicInfoTimeZoneRespItem `json:"items,omitempty"` // 查询到的时区列表 +// SearchCoreHRBasicInfoTimeZoneResp ... +type SearchCoreHRBasicInfoTimeZoneResp struct { + Items []*SearchCoreHRBasicInfoTimeZoneRespItem `json:"items,omitempty"` // 查询到的时区列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// SearchCorehrBasicInfoTimeZoneRespItem ... -type SearchCorehrBasicInfoTimeZoneRespItem struct { +// SearchCoreHRBasicInfoTimeZoneRespItem ... +type SearchCoreHRBasicInfoTimeZoneRespItem struct { TimeZoneID string `json:"time_zone_id,omitempty"` // 时区 ID - Name []*SearchCorehrBasicInfoTimeZoneRespItemName `json:"name,omitempty"` // 时区名称 + Name []*SearchCoreHRBasicInfoTimeZoneRespItemName `json:"name,omitempty"` // 时区名称 TimeZoneCode string `json:"time_zone_code,omitempty"` // 编码 UtcOffset string `json:"utc_offset,omitempty"` // UTC 时区偏移量(分钟) Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 } -// SearchCorehrBasicInfoTimeZoneRespItemName ... -type SearchCorehrBasicInfoTimeZoneRespItemName struct { +// SearchCoreHRBasicInfoTimeZoneRespItemName ... +type SearchCoreHRBasicInfoTimeZoneRespItemName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// searchCorehrBasicInfoTimeZoneResp ... -type searchCorehrBasicInfoTimeZoneResp struct { +// searchCoreHRBasicInfoTimeZoneResp ... +type searchCoreHRBasicInfoTimeZoneResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCorehrBasicInfoTimeZoneResp `json:"data,omitempty"` + Data *SearchCoreHRBasicInfoTimeZoneResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bp_by_department_get.go b/api_corehr_bp_by_department_get.go index 786f6dea..1840e437 100644 --- a/api_corehr_bp_by_department_get.go +++ b/api_corehr_bp_by_department_get.go @@ -21,63 +21,63 @@ import ( "context" ) -// GetCoreHrbpByDepartment 查询部门的 HRBP 信息, 包括来自上级部门的 HRBP。 +// GetCoreHRByDepartment 查询部门的 HRBP 信息, 包括来自上级部门的 HRBP。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/bp/get_by_department // new doc: https://open.feishu.cn/document/corehr-v1/authorization/get_by_department -func (r *CoreHRService) GetCoreHrbpByDepartment(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCoreHrbpByDepartment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHrbpByDepartment mock enable") - return r.cli.mock.mockCoreHRGetCoreHrbpByDepartment(ctx, request, options...) +func (r *CoreHRService) GetCoreHRByDepartment(ctx context.Context, request *GetCoreHRByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRByDepartmentResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRByDepartment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRByDepartment mock enable") + return r.cli.mock.mockCoreHRGetCoreHRByDepartment(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCoreHrbpByDepartment", + API: "GetCoreHRByDepartment", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/bps/get_by_department", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCoreHrbpByDepartmentResp) + resp := new(getCoreHRByDepartmentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCoreHrbpByDepartment mock CoreHRGetCoreHrbpByDepartment method -func (r *Mock) MockCoreHRGetCoreHrbpByDepartment(f func(ctx context.Context, request *GetCoreHrbpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrbpByDepartmentResp, *Response, error)) { - r.mockCoreHRGetCoreHrbpByDepartment = f +// MockCoreHRGetCoreHRByDepartment mock CoreHRGetCoreHRByDepartment method +func (r *Mock) MockCoreHRGetCoreHRByDepartment(f func(ctx context.Context, request *GetCoreHRByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRByDepartmentResp, *Response, error)) { + r.mockCoreHRGetCoreHRByDepartment = f } -// UnMockCoreHRGetCoreHrbpByDepartment un-mock CoreHRGetCoreHrbpByDepartment method -func (r *Mock) UnMockCoreHRGetCoreHrbpByDepartment() { - r.mockCoreHRGetCoreHrbpByDepartment = nil +// UnMockCoreHRGetCoreHRByDepartment un-mock CoreHRGetCoreHRByDepartment method +func (r *Mock) UnMockCoreHRGetCoreHRByDepartment() { + r.mockCoreHRGetCoreHRByDepartment = nil } -// GetCoreHrbpByDepartmentReq ... -type GetCoreHrbpByDepartmentReq struct { +// GetCoreHRByDepartmentReq ... +type GetCoreHRByDepartmentReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` DepartmentID string `json:"department_id,omitempty"` // 部门 ID, ID类型与department_id_type的取值意义一致。 > 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)换取 [department_id] > 部门id也可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search)接口获取。示例值: "6893014062142064111" } -// GetCoreHrbpByDepartmentResp ... -type GetCoreHrbpByDepartmentResp struct { - Items []*GetCoreHrbpByDepartmentRespItem `json:"items,omitempty"` // 部门 HRBP 信息, 依次为部门及各层级上级部门 +// GetCoreHRByDepartmentResp ... +type GetCoreHRByDepartmentResp struct { + Items []*GetCoreHRByDepartmentRespItem `json:"items,omitempty"` // 部门 HRBP 信息, 依次为部门及各层级上级部门 } -// GetCoreHrbpByDepartmentRespItem ... -type GetCoreHrbpByDepartmentRespItem struct { +// GetCoreHRByDepartmentRespItem ... +type GetCoreHRByDepartmentRespItem struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, ID类型与department_id_type的取值意义一致。 > 如想获取部门详细信息, 可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search)接口获取。 HrbpIDs []string `json:"hrbp_ids,omitempty"` // 部门 HRBP 员工 ID, ID类型与user_id_type的取值意义一致。 > 如想获取员工详细信息, 可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search)接口获取。 } -// getCoreHrbpByDepartmentResp ... -type getCoreHrbpByDepartmentResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCoreHrbpByDepartmentResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getCoreHRByDepartmentResp ... +type getCoreHRByDepartmentResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCoreHRByDepartmentResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bp_by_employee_get_batch.go b/api_corehr_bp_by_employee_get_batch.go index b175a6ab..dcbf0cd0 100644 --- a/api_corehr_bp_by_employee_get_batch.go +++ b/api_corehr_bp_by_employee_get_batch.go @@ -21,74 +21,74 @@ import ( "context" ) -// BatchGetCoreHrbpByEmployee 查询员工的 HRBP 和属地 BP, 包括来自上级部门的 HRBP 和属地 BP。 +// BatchGetCoreHRByEmployee 查询员工的 HRBP 和属地 BP, 包括来自上级部门的 HRBP 和属地 BP。 // // 该接口会按照应用拥有的「员工资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限 - 飞书人事(企业版)数据权限范围」中已申请「员工资源」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-bp/batch_get // new doc: https://open.feishu.cn/document/corehr-v1/authorization/batch_get -func (r *CoreHRService) BatchGetCoreHrbpByEmployee(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchGetCoreHrbpByEmployee != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHrbpByEmployee mock enable") - return r.cli.mock.mockCoreHRBatchGetCoreHrbpByEmployee(ctx, request, options...) +func (r *CoreHRService) BatchGetCoreHRByEmployee(ctx context.Context, request *BatchGetCoreHRByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHRByEmployeeResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchGetCoreHRByEmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHRByEmployee mock enable") + return r.cli.mock.mockCoreHRBatchGetCoreHRByEmployee(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchGetCoreHrbpByEmployee", + API: "BatchGetCoreHRByEmployee", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/bps/batch_get", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchGetCoreHrbpByEmployeeResp) + resp := new(batchGetCoreHRByEmployeeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchGetCoreHrbpByEmployee mock CoreHRBatchGetCoreHrbpByEmployee method -func (r *Mock) MockCoreHRBatchGetCoreHrbpByEmployee(f func(ctx context.Context, request *BatchGetCoreHrbpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrbpByEmployeeResp, *Response, error)) { - r.mockCoreHRBatchGetCoreHrbpByEmployee = f +// MockCoreHRBatchGetCoreHRByEmployee mock CoreHRBatchGetCoreHRByEmployee method +func (r *Mock) MockCoreHRBatchGetCoreHRByEmployee(f func(ctx context.Context, request *BatchGetCoreHRByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHRByEmployeeResp, *Response, error)) { + r.mockCoreHRBatchGetCoreHRByEmployee = f } -// UnMockCoreHRBatchGetCoreHrbpByEmployee un-mock CoreHRBatchGetCoreHrbpByEmployee method -func (r *Mock) UnMockCoreHRBatchGetCoreHrbpByEmployee() { - r.mockCoreHRBatchGetCoreHrbpByEmployee = nil +// UnMockCoreHRBatchGetCoreHRByEmployee un-mock CoreHRBatchGetCoreHRByEmployee method +func (r *Mock) UnMockCoreHRBatchGetCoreHRByEmployee() { + r.mockCoreHRBatchGetCoreHRByEmployee = nil } -// BatchGetCoreHrbpByEmployeeReq ... -type BatchGetCoreHrbpByEmployeeReq struct { +// BatchGetCoreHRByEmployeeReq ... +type BatchGetCoreHRByEmployeeReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工ID, ID类型与user_id_type的取值意义一致。 > 如果你需要不同类型的ID进行转换, 可以使用 [ID转换服务](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert) 换取 [employment_id]示例值: ["7140964208476371111"] 长度范围: `1` ~ `100` GetAll *bool `json:"get_all,omitempty"` // 是否获取全部 BP, true 为获取员工所在部门及来自上级部门的全部 HRBP 和属地 BP, false 为仅获取员工的直属 HRBP 和属地 BP(当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP), 默认为 false示例值: true默认值: `false` } -// BatchGetCoreHrbpByEmployeeResp ... -type BatchGetCoreHrbpByEmployeeResp struct { - EmploymentDirectBps []*BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp `json:"employment_direct_bps,omitempty"` // 员工直属 BP 信息, 当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP - EmploymentAllBps []*BatchGetCoreHrbpByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息字段权限要求: 查看员工的全部 BP 信息 +// BatchGetCoreHRByEmployeeResp ... +type BatchGetCoreHRByEmployeeResp struct { + EmploymentDirectBps []*BatchGetCoreHRByEmployeeRespEmploymentDirectBp `json:"employment_direct_bps,omitempty"` // 员工直属 BP 信息, 当员工所在部门、属地无 BP 时, 会上钻找到最近的 BP + EmploymentAllBps []*BatchGetCoreHRByEmployeeRespEmploymentAllBp `json:"employment_all_bps,omitempty"` // 员工全部 BP 信息字段权限要求: 查看员工的全部 BP 信息 } -// BatchGetCoreHrbpByEmployeeRespEmploymentAllBp ... -type BatchGetCoreHrbpByEmployeeRespEmploymentAllBp struct { +// BatchGetCoreHRByEmployeeRespEmploymentAllBp ... +type BatchGetCoreHRByEmployeeRespEmploymentAllBp struct { EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID HrbpIDs []string `json:"hrbp_ids,omitempty"` // 员工所在部门及上级部门全部 HRBP 雇佣 ID LocationBpIDs []string `json:"location_bp_ids,omitempty"` // 员工所在部门及上级部门全部属地 BP 雇佣 ID } -// BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp ... -type BatchGetCoreHrbpByEmployeeRespEmploymentDirectBp struct { +// BatchGetCoreHRByEmployeeRespEmploymentDirectBp ... +type BatchGetCoreHRByEmployeeRespEmploymentDirectBp struct { EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID>可以使用[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search)接口获取员工其他信息。 HrbpIDs []string `json:"hrbp_ids,omitempty"` // 员工直属 HRBP 雇佣 ID LocationBpIDs []string `json:"location_bp_ids,omitempty"` // 员工直属属地 BP 雇佣 ID } -// batchGetCoreHrbpByEmployeeResp ... -type batchGetCoreHrbpByEmployeeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCoreHrbpByEmployeeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchGetCoreHRByEmployeeResp ... +type batchGetCoreHRByEmployeeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchGetCoreHRByEmployeeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_bp_list.go b/api_corehr_bp_list.go index c3a89603..938bc8e3 100644 --- a/api_corehr_bp_list.go +++ b/api_corehr_bp_list.go @@ -21,66 +21,66 @@ import ( "context" ) -// GetCoreHrbpList 获取 HRBP 列表。列表中包含HRBP的ID以及部门ID信息。 +// GetCoreHRList 获取 HRBP 列表。列表中包含HRBP的ID以及部门ID信息。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/bp/list // new doc: https://open.feishu.cn/document/corehr-v1/authorization/list-2 -func (r *CoreHRService) GetCoreHrbpList(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCoreHrbpList != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHrbpList mock enable") - return r.cli.mock.mockCoreHRGetCoreHrbpList(ctx, request, options...) +func (r *CoreHRService) GetCoreHRList(ctx context.Context, request *GetCoreHRListReq, options ...MethodOptionFunc) (*GetCoreHRListResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRList != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRList mock enable") + return r.cli.mock.mockCoreHRGetCoreHRList(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCoreHrbpList", + API: "GetCoreHRList", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/bps", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCoreHrbpListResp) + resp := new(getCoreHRListResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCoreHrbpList mock CoreHRGetCoreHrbpList method -func (r *Mock) MockCoreHRGetCoreHrbpList(f func(ctx context.Context, request *GetCoreHrbpListReq, options ...MethodOptionFunc) (*GetCoreHrbpListResp, *Response, error)) { - r.mockCoreHRGetCoreHrbpList = f +// MockCoreHRGetCoreHRList mock CoreHRGetCoreHRList method +func (r *Mock) MockCoreHRGetCoreHRList(f func(ctx context.Context, request *GetCoreHRListReq, options ...MethodOptionFunc) (*GetCoreHRListResp, *Response, error)) { + r.mockCoreHRGetCoreHRList = f } -// UnMockCoreHRGetCoreHrbpList un-mock CoreHRGetCoreHrbpList method -func (r *Mock) UnMockCoreHRGetCoreHrbpList() { - r.mockCoreHRGetCoreHrbpList = nil +// UnMockCoreHRGetCoreHRList un-mock CoreHRGetCoreHRList method +func (r *Mock) UnMockCoreHRGetCoreHRList() { + r.mockCoreHRGetCoreHRList = nil } -// GetCoreHrbpListReq ... -type GetCoreHrbpListReq struct { +// GetCoreHRListReq ... +type GetCoreHRListReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 500示例值: 500 取值范围: `1` ~ `500` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` } -// GetCoreHrbpListResp ... -type GetCoreHrbpListResp struct { - Items []*GetCoreHrbpListRespItem `json:"items,omitempty"` // HRBP 信息 - PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token - HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +// GetCoreHRListResp ... +type GetCoreHRListResp struct { + Items []*GetCoreHRListRespItem `json:"items,omitempty"` // HRBP 信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// GetCoreHrbpListRespItem ... -type GetCoreHrbpListRespItem struct { +// GetCoreHRListRespItem ... +type GetCoreHRListRespItem struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID > 如想获取部门详细信息, 可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search)接口获取。 HrbpID string `json:"hrbp_id,omitempty"` // 部门 HRBP 的雇佣 ID, 不包括上级部门的 HRBP > 如想获取员工详细信息, 可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search)接口获取。 } -// getCoreHrbpListResp ... -type getCoreHrbpListResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCoreHrbpListResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getCoreHRListResp ... +type getCoreHRListResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCoreHRListResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_common_data_id_convert.go b/api_corehr_common_data_id_convert.go index bcb3d9d4..86e9c37e 100644 --- a/api_corehr_common_data_id_convert.go +++ b/api_corehr_common_data_id_convert.go @@ -21,43 +21,43 @@ import ( "context" ) -// CreateCorehrCommonDataIDConvert 该接口用来进行飞书人事和飞书通讯录、people admin 的各种 ID 转换(仅适用于飞书人事新链路租户) +// CreateCoreHRCommonDataIDConvert 该接口用来进行飞书人事和飞书通讯录、people admin 的各种 ID 转换(仅适用于飞书人事新链路租户) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert // new doc: https://open.feishu.cn/document/corehr-v1/common_data-id/convert -func (r *CoreHRService) CreateCorehrCommonDataIDConvert(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCommonDataIDConvert != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCommonDataIDConvert mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCommonDataIDConvert(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCommonDataIDConvert(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCommonDataIDConvert != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCommonDataIDConvert mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCommonDataIDConvert(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCommonDataIDConvert", + API: "CreateCoreHRCommonDataIDConvert", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/id/convert", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCommonDataIDConvertResp) + resp := new(createCoreHRCommonDataIDConvertResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCommonDataIDConvert mock CoreHRCreateCorehrCommonDataIDConvert method -func (r *Mock) MockCoreHRCreateCorehrCommonDataIDConvert(f func(ctx context.Context, request *CreateCorehrCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataIDConvertResp, *Response, error)) { - r.mockCoreHRCreateCorehrCommonDataIDConvert = f +// MockCoreHRCreateCoreHRCommonDataIDConvert mock CoreHRCreateCoreHRCommonDataIDConvert method +func (r *Mock) MockCoreHRCreateCoreHRCommonDataIDConvert(f func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCommonDataIDConvert = f } -// UnMockCoreHRCreateCorehrCommonDataIDConvert un-mock CoreHRCreateCorehrCommonDataIDConvert method -func (r *Mock) UnMockCoreHRCreateCorehrCommonDataIDConvert() { - r.mockCoreHRCreateCorehrCommonDataIDConvert = nil +// UnMockCoreHRCreateCoreHRCommonDataIDConvert un-mock CoreHRCreateCoreHRCommonDataIDConvert method +func (r *Mock) UnMockCoreHRCreateCoreHRCommonDataIDConvert() { + r.mockCoreHRCreateCoreHRCommonDataIDConvert = nil } -// CreateCorehrCommonDataIDConvertReq ... -type CreateCorehrCommonDataIDConvertReq struct { +// CreateCoreHRCommonDataIDConvertReq ... +type CreateCoreHRCommonDataIDConvertReq struct { IDTransformType int64 `query:"id_transform_type" json:"-"` // ID 转换类型示例值: 1可选值有: 飞书人事 -> 飞书通讯录飞书通讯录 -> 飞书人事people admin -> 飞书通讯录people admin -> 飞书人事 IDType IDType `query:"id_type" json:"-"` // 要转换的ID类型示例值: user_id可选值有: 员工ID, 当选择 user_id 且 id_transform_type 为 1、2、4 时, feishu_user_id_type 必填部门ID, 当选择 department_id 且 id_transform_type 为 1、2、4 时, feishu_department_id_type 必填职级ID序列ID人员类型ID, people admin 的人员类型ID 即为飞书通讯录人员类型的 enum_value, 因此id_transform_type 为 3 时无须转换 FeishuUserIDType *IDType `query:"feishu_user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -65,21 +65,21 @@ type CreateCorehrCommonDataIDConvertReq struct { IDs []string `json:"ids,omitempty"` // ID 列表(最多传入 100 个 ID, ID 长度限制 50 个字符)示例值: ["6891251722631891445"] 长度范围: `1` ~ `100` } -// CreateCorehrCommonDataIDConvertResp ... -type CreateCorehrCommonDataIDConvertResp struct { - Items []*CreateCorehrCommonDataIDConvertRespItem `json:"items,omitempty"` // ID 信息列表 +// CreateCoreHRCommonDataIDConvertResp ... +type CreateCoreHRCommonDataIDConvertResp struct { + Items []*CreateCoreHRCommonDataIDConvertRespItem `json:"items,omitempty"` // ID 信息列表 } -// CreateCorehrCommonDataIDConvertRespItem ... -type CreateCorehrCommonDataIDConvertRespItem struct { +// CreateCoreHRCommonDataIDConvertRespItem ... +type CreateCoreHRCommonDataIDConvertRespItem struct { ID string `json:"id,omitempty"` // 传入的 ID TargetID string `json:"target_id,omitempty"` // 目标 ID 值 } -// createCorehrCommonDataIDConvertResp ... -type createCorehrCommonDataIDConvertResp struct { +// createCoreHRCommonDataIDConvertResp ... +type createCoreHRCommonDataIDConvertResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCommonDataIDConvertResp `json:"data,omitempty"` + Data *CreateCoreHRCommonDataIDConvertResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_common_data_meta_data_add_enum_option.go b/api_corehr_common_data_meta_data_add_enum_option.go index fd6a8495..70807984 100644 --- a/api_corehr_common_data_meta_data_add_enum_option.go +++ b/api_corehr_common_data_meta_data_add_enum_option.go @@ -21,7 +21,7 @@ import ( "context" ) -// AddCorehrCommonDataMetaDataEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可在字段中批量新增可选项 +// AddCoreHRCommonDataMetaDataEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可在字段中批量新增可选项 // // 本接口当前允许修改的系统预置字段如下: // - person(个人信息): gender(性别)、marital_status(婚姻状态) @@ -37,80 +37,80 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-meta_data/add_enum_option // new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/custom_field/add_enum_option -func (r *CoreHRService) AddCorehrCommonDataMetaDataEnumOption(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error) { - if r.cli.mock.mockCoreHRAddCorehrCommonDataMetaDataEnumOption != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCorehrCommonDataMetaDataEnumOption mock enable") - return r.cli.mock.mockCoreHRAddCorehrCommonDataMetaDataEnumOption(ctx, request, options...) +func (r *CoreHRService) AddCoreHRCommonDataMetaDataEnumOption(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) { + if r.cli.mock.mockCoreHRAddCoreHRCommonDataMetaDataEnumOption != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#AddCoreHRCommonDataMetaDataEnumOption mock enable") + return r.cli.mock.mockCoreHRAddCoreHRCommonDataMetaDataEnumOption(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "AddCorehrCommonDataMetaDataEnumOption", + API: "AddCoreHRCommonDataMetaDataEnumOption", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/meta_data/add_enum_option", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(addCorehrCommonDataMetaDataEnumOptionResp) + resp := new(addCoreHRCommonDataMetaDataEnumOptionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRAddCorehrCommonDataMetaDataEnumOption mock CoreHRAddCorehrCommonDataMetaDataEnumOption method -func (r *Mock) MockCoreHRAddCorehrCommonDataMetaDataEnumOption(f func(ctx context.Context, request *AddCorehrCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCorehrCommonDataMetaDataEnumOptionResp, *Response, error)) { - r.mockCoreHRAddCorehrCommonDataMetaDataEnumOption = f +// MockCoreHRAddCoreHRCommonDataMetaDataEnumOption mock CoreHRAddCoreHRCommonDataMetaDataEnumOption method +func (r *Mock) MockCoreHRAddCoreHRCommonDataMetaDataEnumOption(f func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error)) { + r.mockCoreHRAddCoreHRCommonDataMetaDataEnumOption = f } -// UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption un-mock CoreHRAddCorehrCommonDataMetaDataEnumOption method -func (r *Mock) UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption() { - r.mockCoreHRAddCorehrCommonDataMetaDataEnumOption = nil +// UnMockCoreHRAddCoreHRCommonDataMetaDataEnumOption un-mock CoreHRAddCoreHRCommonDataMetaDataEnumOption method +func (r *Mock) UnMockCoreHRAddCoreHRCommonDataMetaDataEnumOption() { + r.mockCoreHRAddCoreHRCommonDataMetaDataEnumOption = nil } -// AddCorehrCommonDataMetaDataEnumOptionReq ... -type AddCorehrCommonDataMetaDataEnumOptionReq struct { +// AddCoreHRCommonDataMetaDataEnumOptionReq ... +type AddCoreHRCommonDataMetaDataEnumOptionReq struct { ClientToken *string `query:"client_token" json:"-"` // 用户若希望避免重试导致多次重复请求, 可填写随机字符串, 系统根据 client_token 是否一致来判断是否为同一请求示例值: 6727817538283013641 ObjectApiName string `json:"object_api_name,omitempty"` // 所属对象 API name, 可通过[获取飞书人事对象列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/list_object_api_name)接口中返回的 `object_api_name` 字段获取示例值: "probation_management" EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name, 可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口中返回的 `custom_api_name` 字段获取示例值: "final_assessment_grade" - EnumFieldOptions []*AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption `json:"enum_field_options,omitempty"` // 新增枚举选项列表 最小长度: `1` + EnumFieldOptions []*AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOption `json:"enum_field_options,omitempty"` // 新增枚举选项列表 最小长度: `1` } -// AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption ... -type AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOption struct { +// AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOption ... +type AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOption struct { OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识, 创建后无法修改。由用户自拟, 需以英文字母开头, 并仅允许包含小写英文字母、数字和下划线示例值: "grade_e" 长度范围: `1` ~ `100` 字符 - Name *AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) + Name *AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) } -// AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName ... -type AddCorehrCommonDataMetaDataEnumOptionReqEnumFieldOptionName struct { +// AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOptionName ... +type AddCoreHRCommonDataMetaDataEnumOptionReqEnumFieldOptionName struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "cn" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "en" } -// AddCorehrCommonDataMetaDataEnumOptionResp ... -type AddCorehrCommonDataMetaDataEnumOptionResp struct { +// AddCoreHRCommonDataMetaDataEnumOptionResp ... +type AddCoreHRCommonDataMetaDataEnumOptionResp struct { EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name - EnumFieldOptions []*AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 + EnumFieldOptions []*AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 } -// AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption ... -type AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOption struct { +// AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOption ... +type AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOption struct { OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识 Active bool `json:"active,omitempty"` // 是否启用 - Name *AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) + Name *AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) } -// AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName ... -type AddCorehrCommonDataMetaDataEnumOptionRespEnumFieldOptionName struct { +// AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOptionName ... +type AddCoreHRCommonDataMetaDataEnumOptionRespEnumFieldOptionName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// addCorehrCommonDataMetaDataEnumOptionResp ... -type addCorehrCommonDataMetaDataEnumOptionResp struct { +// addCoreHRCommonDataMetaDataEnumOptionResp ... +type addCoreHRCommonDataMetaDataEnumOptionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *AddCorehrCommonDataMetaDataEnumOptionResp `json:"data,omitempty"` + Data *AddCoreHRCommonDataMetaDataEnumOptionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_common_data_meta_data_edit_enum_option.go b/api_corehr_common_data_meta_data_edit_enum_option.go index 3f665e2f..91ce4f29 100644 --- a/api_corehr_common_data_meta_data_edit_enum_option.go +++ b/api_corehr_common_data_meta_data_edit_enum_option.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrCommonDataMetaDataEditEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可修改字段中已有可选项的展示名称、停启用状态 +// CreateCoreHRCommonDataMetaDataEditEnumOption 对于当前已有的所有自定义枚举字段, 以及部分系统预置枚举字段, 通过本接口可修改字段中已有可选项的展示名称、停启用状态 // // 本接口当前允许修改的系统预置字段如下: // - person(个人信息): gender(性别)、marital_status(婚姻状态) @@ -37,81 +37,81 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-meta_data/edit_enum_option // new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/custom_field/edit_enum_option -func (r *CoreHRService) CreateCorehrCommonDataMetaDataEditEnumOption(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCommonDataMetaDataEditEnumOption mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCommonDataMetaDataEditEnumOption(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCommonDataMetaDataEditEnumOption mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCommonDataMetaDataEditEnumOption", + API: "CreateCoreHRCommonDataMetaDataEditEnumOption", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/common_data/meta_data/edit_enum_option", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCommonDataMetaDataEditEnumOptionResp) + resp := new(createCoreHRCommonDataMetaDataEditEnumOptionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption mock CoreHRCreateCorehrCommonDataMetaDataEditEnumOption method -func (r *Mock) MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(f func(ctx context.Context, request *CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCorehrCommonDataMetaDataEditEnumOptionResp, *Response, error)) { - r.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption = f +// MockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption mock CoreHRCreateCoreHRCommonDataMetaDataEditEnumOption method +func (r *Mock) MockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption(f func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption = f } -// UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption un-mock CoreHRCreateCorehrCommonDataMetaDataEditEnumOption method -func (r *Mock) UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption() { - r.mockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption = nil +// UnMockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption un-mock CoreHRCreateCoreHRCommonDataMetaDataEditEnumOption method +func (r *Mock) UnMockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption() { + r.mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption = nil } -// CreateCorehrCommonDataMetaDataEditEnumOptionReq ... -type CreateCorehrCommonDataMetaDataEditEnumOptionReq struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionReq ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionReq struct { ClientToken *string `query:"client_token" json:"-"` // 用户若希望避免重试导致多次重复请求, 可填写随机字符串, 系统根据 client_token 是否一致来判断是否为同一请求示例值: 6727817538283013641 ObjectApiName string `json:"object_api_name,omitempty"` // 所属对象 API name, 可通过[获取飞书人事对象列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/list_object_api_name)接口中返回的 `object_api_name` 字段获取示例值: "probation_management" EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name, 可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口中返回的 `custom_api_name` 字段获取示例值: "final_assessment_grade" - EnumFieldOption *CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption `json:"enum_field_option,omitempty"` // 枚举选项 + EnumFieldOption *CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOption `json:"enum_field_option,omitempty"` // 枚举选项 } -// CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption ... -type CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOption struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOption ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOption struct { OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识示例值: "grade_e" 长度范围: `1` ~ `100` 字符 Active bool `json:"active,omitempty"` // 是否启用示例值: true - Name *CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) + Name *CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) } -// CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName ... -type CreateCorehrCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionReqEnumFieldOptionName struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "cn" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "en" } -// CreateCorehrCommonDataMetaDataEditEnumOptionResp ... -type CreateCorehrCommonDataMetaDataEditEnumOptionResp struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionResp ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionResp struct { EnumFieldApiName string `json:"enum_field_api_name,omitempty"` // 枚举字段 API name - EnumFieldOptions []*CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 + EnumFieldOptions []*CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOption `json:"enum_field_options,omitempty"` // 枚举全部选项列表 } -// CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption ... -type CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOption struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOption ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOption struct { OptionApiName string `json:"option_api_name,omitempty"` // 枚举值选项 API Name, 即选项的唯一标识 Active bool `json:"active,omitempty"` // 是否启用 - Name *CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) + Name *CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName `json:"name,omitempty"` // 选项名称(需填写至少一个语种) } -// CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName ... -type CreateCorehrCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName struct { +// CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName ... +type CreateCoreHRCommonDataMetaDataEditEnumOptionRespEnumFieldOptionName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// createCorehrCommonDataMetaDataEditEnumOptionResp ... -type createCorehrCommonDataMetaDataEditEnumOptionResp struct { +// createCoreHRCommonDataMetaDataEditEnumOptionResp ... +type createCoreHRCommonDataMetaDataEditEnumOptionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCommonDataMetaDataEditEnumOptionResp `json:"data,omitempty"` + Data *CreateCoreHRCommonDataMetaDataEditEnumOptionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_company_active.go b/api_corehr_company_active.go index 78815282..476a20c9 100644 --- a/api_corehr_company_active.go +++ b/api_corehr_company_active.go @@ -21,59 +21,59 @@ import ( "context" ) -// CreateCorehrCompanyActive 对公司进行启用或停用操作 +// CreateCoreHRCompanyActive 对公司进行启用或停用操作 // // 停用公司时请确认有无在职员工、异动单据、待入职单据关联此公司, 如有会导致停用失败。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/active // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/active -func (r *CoreHRService) CreateCorehrCompanyActive(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCompanyActive != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCompanyActive mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCompanyActive(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCompanyActive(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCompanyActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCompanyActive mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCompanyActive(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCompanyActive", + API: "CreateCoreHRCompanyActive", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/active", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCompanyActiveResp) + resp := new(createCoreHRCompanyActiveResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCompanyActive mock CoreHRCreateCorehrCompanyActive method -func (r *Mock) MockCoreHRCreateCorehrCompanyActive(f func(ctx context.Context, request *CreateCorehrCompanyActiveReq, options ...MethodOptionFunc) (*CreateCorehrCompanyActiveResp, *Response, error)) { - r.mockCoreHRCreateCorehrCompanyActive = f +// MockCoreHRCreateCoreHRCompanyActive mock CoreHRCreateCoreHRCompanyActive method +func (r *Mock) MockCoreHRCreateCoreHRCompanyActive(f func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCompanyActive = f } -// UnMockCoreHRCreateCorehrCompanyActive un-mock CoreHRCreateCorehrCompanyActive method -func (r *Mock) UnMockCoreHRCreateCorehrCompanyActive() { - r.mockCoreHRCreateCorehrCompanyActive = nil +// UnMockCoreHRCreateCoreHRCompanyActive un-mock CoreHRCreateCoreHRCompanyActive method +func (r *Mock) UnMockCoreHRCreateCoreHRCompanyActive() { + r.mockCoreHRCreateCoreHRCompanyActive = nil } -// CreateCorehrCompanyActiveReq ... -type CreateCorehrCompanyActiveReq struct { +// CreateCoreHRCompanyActiveReq ... +type CreateCoreHRCompanyActiveReq struct { CompanyID string `json:"company_id,omitempty"` // 公司 ID- 可从 [批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)的 id 字段中获取。示例值: "1616161616" EffectiveTime string `json:"effective_time,omitempty"` // 公司启用/停用生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" Active bool `json:"active,omitempty"` // 启用/停用状态。- active 传 true 代表启用- active 传 false 代表停用示例值: true OperationReason string `json:"operation_reason,omitempty"` // 操作原因示例值: "业务操作" } -// CreateCorehrCompanyActiveResp ... -type CreateCorehrCompanyActiveResp struct { +// CreateCoreHRCompanyActiveResp ... +type CreateCoreHRCompanyActiveResp struct { } -// createCorehrCompanyActiveResp ... -type createCorehrCompanyActiveResp struct { +// createCoreHRCompanyActiveResp ... +type createCoreHRCompanyActiveResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCompanyActiveResp `json:"data,omitempty"` + Data *CreateCoreHRCompanyActiveResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_company_query_multi_timeline.go b/api_corehr_company_query_multi_timeline.go index 92401e0d..0f841644 100644 --- a/api_corehr_company_query_multi_timeline.go +++ b/api_corehr_company_query_multi_timeline.go @@ -21,163 +21,163 @@ import ( "context" ) -// QueryCorehrCompanyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// QueryCoreHRCompanyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) // // - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) // 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/query_multi_timeline // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/query_multi_timeline -func (r *CoreHRService) QueryCorehrCompanyMultiTimeline(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrCompanyMultiTimeline != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCompanyMultiTimeline mock enable") - return r.cli.mock.mockCoreHRQueryCorehrCompanyMultiTimeline(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRCompanyMultiTimeline(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRCompanyMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCompanyMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRCompanyMultiTimeline(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrCompanyMultiTimeline", + API: "QueryCoreHRCompanyMultiTimeline", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/query_multi_timeline", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrCompanyMultiTimelineResp) + resp := new(queryCoreHRCompanyMultiTimelineResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrCompanyMultiTimeline mock CoreHRQueryCorehrCompanyMultiTimeline method -func (r *Mock) MockCoreHRQueryCorehrCompanyMultiTimeline(f func(ctx context.Context, request *QueryCorehrCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrCompanyMultiTimelineResp, *Response, error)) { - r.mockCoreHRQueryCorehrCompanyMultiTimeline = f +// MockCoreHRQueryCoreHRCompanyMultiTimeline mock CoreHRQueryCoreHRCompanyMultiTimeline method +func (r *Mock) MockCoreHRQueryCoreHRCompanyMultiTimeline(f func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCoreHRCompanyMultiTimeline = f } -// UnMockCoreHRQueryCorehrCompanyMultiTimeline un-mock CoreHRQueryCorehrCompanyMultiTimeline method -func (r *Mock) UnMockCoreHRQueryCorehrCompanyMultiTimeline() { - r.mockCoreHRQueryCorehrCompanyMultiTimeline = nil +// UnMockCoreHRQueryCoreHRCompanyMultiTimeline un-mock CoreHRQueryCoreHRCompanyMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCoreHRCompanyMultiTimeline() { + r.mockCoreHRQueryCoreHRCompanyMultiTimeline = nil } -// QueryCorehrCompanyMultiTimelineReq ... -type QueryCorehrCompanyMultiTimelineReq struct { +// QueryCoreHRCompanyMultiTimelineReq ... +type QueryCoreHRCompanyMultiTimelineReq struct { CompanyIDs []string `json:"company_ids,omitempty"` // 公司ID。ID获取方式: 调用[【创建公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/create)[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)等接口可以返回公司ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["company_name", "code", "active", "parent_company", "description", "effective_date", "expiration_date", "type", "industry_list", "legal_representative", "post_code", "tax_payer_id", "confidential", "sub_type_list", "branch_company", "primary_manager", "currency", "phone", "fax", "registered_office_address", "office_address", "registered_office_address_info", "office_address_info"]示例值: ["company_name"] 长度范围: `0` ~ `100` } -// QueryCorehrCompanyMultiTimelineResp ... -type QueryCorehrCompanyMultiTimelineResp struct { - Items []*QueryCorehrCompanyMultiTimelineRespItem `json:"items,omitempty"` // 公司信息 +// QueryCoreHRCompanyMultiTimelineResp ... +type QueryCoreHRCompanyMultiTimelineResp struct { + Items []*QueryCoreHRCompanyMultiTimelineRespItem `json:"items,omitempty"` // 公司信息 } -// QueryCorehrCompanyMultiTimelineRespItem ... -type QueryCorehrCompanyMultiTimelineRespItem struct { - CompanyVersionData []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData `json:"company_version_data,omitempty"` // 公司版本信息 - Type *QueryCorehrCompanyMultiTimelineRespItemType `json:"type,omitempty"` // 公司性质- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=company;custom_api_name=type。 - IndustryList []*QueryCorehrCompanyMultiTimelineRespItemIndustry `json:"industry_list,omitempty"` // 所在行业- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=industry - LegalRepresentative []*QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative `json:"legal_representative,omitempty"` // 法定代表人 +// QueryCoreHRCompanyMultiTimelineRespItem ... +type QueryCoreHRCompanyMultiTimelineRespItem struct { + CompanyVersionData []*QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionData `json:"company_version_data,omitempty"` // 公司版本信息 + Type *QueryCoreHRCompanyMultiTimelineRespItemType `json:"type,omitempty"` // 公司性质- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=company;custom_api_name=type。 + IndustryList []*QueryCoreHRCompanyMultiTimelineRespItemIndustry `json:"industry_list,omitempty"` // 所在行业- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=industry + LegalRepresentative []*QueryCoreHRCompanyMultiTimelineRespItemLegalRepresentative `json:"legal_representative,omitempty"` // 法定代表人 PostCode string `json:"post_code,omitempty"` // 邮编 TaxPayerID string `json:"tax_payer_id,omitempty"` // 纳税人识别号 Confidential bool `json:"confidential,omitempty"` // 是否保密 - SubTypeList []*QueryCorehrCompanyMultiTimelineRespItemSubType `json:"sub_type_list,omitempty"` // 公司主体类型- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=subtype + SubTypeList []*QueryCoreHRCompanyMultiTimelineRespItemSubType `json:"sub_type_list,omitempty"` // 公司主体类型- 可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。查询参数: object_api_name=company;custom_api_name=subtype BranchCompany bool `json:"branch_company,omitempty"` // 是否为分公司 - PrimaryManager []*QueryCorehrCompanyMultiTimelineRespItemPrimaryManager `json:"primary_manager,omitempty"` // 主要负责人 - Currency *QueryCorehrCompanyMultiTimelineRespItemCurrency `json:"currency,omitempty"` // 默认币种 - Phone *QueryCorehrCompanyMultiTimelineRespItemPhone `json:"phone,omitempty"` // 电话 - Fax *QueryCorehrCompanyMultiTimelineRespItemFax `json:"fax,omitempty"` // 传真 - RegisteredOfficeAddress []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres `json:"registered_office_address,omitempty"` // 完整注册地址 - OfficeAddress []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddres `json:"office_address,omitempty"` // 完整办公地址 - RegisteredOfficeAddressInfo *QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo `json:"registered_office_address_info,omitempty"` // 注册地址 - OfficeAddressInfo *QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo `json:"office_address_info,omitempty"` // 办公地址 -} - -// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData ... -type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionData struct { + PrimaryManager []*QueryCoreHRCompanyMultiTimelineRespItemPrimaryManager `json:"primary_manager,omitempty"` // 主要负责人 + Currency *QueryCoreHRCompanyMultiTimelineRespItemCurrency `json:"currency,omitempty"` // 默认币种 + Phone *QueryCoreHRCompanyMultiTimelineRespItemPhone `json:"phone,omitempty"` // 电话 + Fax *QueryCoreHRCompanyMultiTimelineRespItemFax `json:"fax,omitempty"` // 传真 + RegisteredOfficeAddress []*QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddres `json:"registered_office_address,omitempty"` // 完整注册地址 + OfficeAddress []*QueryCoreHRCompanyMultiTimelineRespItemOfficeAddres `json:"office_address,omitempty"` // 完整办公地址 + RegisteredOfficeAddressInfo *QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo `json:"registered_office_address_info,omitempty"` // 注册地址 + OfficeAddressInfo *QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfo `json:"office_address_info,omitempty"` // 办公地址 +} + +// QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionData ... +type QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionData struct { CompanyID string `json:"company_id,omitempty"` // 公司 ID CompanyVersionID string `json:"company_version_id,omitempty"` // 公司版本 ID - CompanyNames []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName `json:"company_names,omitempty"` // 公司名称 + CompanyNames []*QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataCompanyName `json:"company_names,omitempty"` // 公司名称 ParentCompanyID string `json:"parent_company_id,omitempty"` // 上级公司 ID- 若查询的是一级公司, 则该字段不展示 EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) Active bool `json:"active,omitempty"` // 是否启用 - Descriptions []*QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Descriptions []*QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataDescription `json:"descriptions,omitempty"` // 描述 Code string `json:"code,omitempty"` // 编码 } -// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName ... -type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataCompanyName struct { +// QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataCompanyName ... +type QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataCompanyName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription ... -type QueryCorehrCompanyMultiTimelineRespItemCompanyVersionDataDescription struct { +// QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataDescription ... +type QueryCoreHRCompanyMultiTimelineRespItemCompanyVersionDataDescription struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文: en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemCurrency ... -type QueryCorehrCompanyMultiTimelineRespItemCurrency struct { +// QueryCoreHRCompanyMultiTimelineRespItemCurrency ... +type QueryCoreHRCompanyMultiTimelineRespItemCurrency struct { CurrencyID string `json:"currency_id,omitempty"` // 货币 ID- 调用[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口返回货币详细信息 CountryRegionIDList []string `json:"country_region_id_list,omitempty"` // 货币所属国家/地区 ID 列表- 详细信息可通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 - CurrencyName []*QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName `json:"currency_name,omitempty"` // 货币名称 + CurrencyName []*QueryCoreHRCompanyMultiTimelineRespItemCurrencyCurrencyName `json:"currency_name,omitempty"` // 货币名称 NumericCode int64 `json:"numeric_code,omitempty"` // 数字代码(ISO 4217), 对应币种的指代代码, 通过系统内部查找, 通过[查询货币信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)查询获取。 CurrencyAlpha3Code string `json:"currency_alpha_3_code,omitempty"` // 法定货币对应代码, 如CNY、USD等, 通过[查询货币信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)查询获取。 Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 } -// QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName ... -type QueryCorehrCompanyMultiTimelineRespItemCurrencyCurrencyName struct { +// QueryCoreHRCompanyMultiTimelineRespItemCurrencyCurrencyName ... +type QueryCoreHRCompanyMultiTimelineRespItemCurrencyCurrencyName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemFax ... -type QueryCorehrCompanyMultiTimelineRespItemFax struct { - AreaCode *QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode `json:"area_code,omitempty"` // 传真区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 +// QueryCoreHRCompanyMultiTimelineRespItemFax ... +type QueryCoreHRCompanyMultiTimelineRespItemFax struct { + AreaCode *QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCode `json:"area_code,omitempty"` // 传真区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 PhoneNumber string `json:"phone_number,omitempty"` // 号码 } -// QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode ... -type QueryCorehrCompanyMultiTimelineRespItemFaxAreaCode struct { +// QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCode ... +type QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemFaxAreaCodeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCodeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemFaxAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemIndustry ... -type QueryCorehrCompanyMultiTimelineRespItemIndustry struct { +// QueryCoreHRCompanyMultiTimelineRespItemIndustry ... +type QueryCoreHRCompanyMultiTimelineRespItemIndustry struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemIndustryDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemIndustryDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemIndustryDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemIndustryDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative ... -type QueryCorehrCompanyMultiTimelineRespItemLegalRepresentative struct { +// QueryCoreHRCompanyMultiTimelineRespItemLegalRepresentative ... +type QueryCoreHRCompanyMultiTimelineRespItemLegalRepresentative struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemOfficeAddres ... -type QueryCorehrCompanyMultiTimelineRespItemOfficeAddres struct { +// QueryCoreHRCompanyMultiTimelineRespItemOfficeAddres ... +type QueryCoreHRCompanyMultiTimelineRespItemOfficeAddres struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo ... -type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo struct { +// QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfo ... +type QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfo struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -204,55 +204,55 @@ type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfo struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 + AddressTypeList []*QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 } -// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType ... -type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressType struct { +// QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressType ... +type QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemOfficeAddressInfoAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemPhone ... -type QueryCorehrCompanyMultiTimelineRespItemPhone struct { - AreaCode *QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode `json:"area_code,omitempty"` // 电话区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 +// QueryCoreHRCompanyMultiTimelineRespItemPhone ... +type QueryCoreHRCompanyMultiTimelineRespItemPhone struct { + AreaCode *QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCode `json:"area_code,omitempty"` // 电话区号- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=phone;custom_api_name=international_area_code。 PhoneNumber string `json:"phone_number,omitempty"` // 号码 } -// QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode ... -type QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCode struct { +// QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCode ... +type QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemPhoneAreaCodeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCodeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemPhoneAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemPrimaryManager ... -type QueryCorehrCompanyMultiTimelineRespItemPrimaryManager struct { +// QueryCoreHRCompanyMultiTimelineRespItemPrimaryManager ... +type QueryCoreHRCompanyMultiTimelineRespItemPrimaryManager struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres ... -type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddres struct { +// QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddres ... +type QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddres struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo ... -type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo struct { +// QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo ... +type QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -279,51 +279,51 @@ type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfo struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 + AddressTypeList []*QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType `json:"address_type_list,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 } -// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType ... -type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType struct { +// QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType ... +type QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressType struct { EnumName string `json:"enum_name,omitempty"` // 地址类型- 通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)查询获取。请求参数: object_api_name=address;custom_api_name= address_type。 - Display []*QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemRegisteredOfficeAddressInfoAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemSubType ... -type QueryCorehrCompanyMultiTimelineRespItemSubType struct { +// QueryCoreHRCompanyMultiTimelineRespItemSubType ... +type QueryCoreHRCompanyMultiTimelineRespItemSubType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemSubTypeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemSubTypeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemSubTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCompanyMultiTimelineRespItemType ... -type QueryCorehrCompanyMultiTimelineRespItemType struct { +// QueryCoreHRCompanyMultiTimelineRespItemType ... +type QueryCoreHRCompanyMultiTimelineRespItemType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrCompanyMultiTimelineRespItemTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRCompanyMultiTimelineRespItemTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrCompanyMultiTimelineRespItemTypeDisplay ... -type QueryCorehrCompanyMultiTimelineRespItemTypeDisplay struct { +// QueryCoreHRCompanyMultiTimelineRespItemTypeDisplay ... +type QueryCoreHRCompanyMultiTimelineRespItemTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrCompanyMultiTimelineResp ... -type queryCorehrCompanyMultiTimelineResp struct { +// queryCoreHRCompanyMultiTimelineResp ... +type queryCoreHRCompanyMultiTimelineResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrCompanyMultiTimelineResp `json:"data,omitempty"` + Data *QueryCoreHRCompanyMultiTimelineResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_company_query_recent_change.go b/api_corehr_company_query_recent_change.go index 613792d8..6ce949c7 100644 --- a/api_corehr_company_query_recent_change.go +++ b/api_corehr_company_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrCompanyRecentChange 查询指定时间范围内当前生效信息发生变更的公司, 即只有公司当前生效版本的生效时间在查询时间范围内, 才返回该公司id +// QueryCoreHRCompanyRecentChange 查询指定时间范围内当前生效信息发生变更的公司, 即只有公司当前生效版本的生效时间在查询时间范围内, 才返回该公司id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/company/query_recent_change -func (r *CoreHRService) QueryCorehrCompanyRecentChange(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrCompanyRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCompanyRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrCompanyRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRCompanyRecentChange(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRCompanyRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCompanyRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRCompanyRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrCompanyRecentChange", + API: "QueryCoreHRCompanyRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/companies/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrCompanyRecentChangeResp) + resp := new(queryCoreHRCompanyRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrCompanyRecentChange mock CoreHRQueryCorehrCompanyRecentChange method -func (r *Mock) MockCoreHRQueryCorehrCompanyRecentChange(f func(ctx context.Context, request *QueryCorehrCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCompanyRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrCompanyRecentChange = f +// MockCoreHRQueryCoreHRCompanyRecentChange mock CoreHRQueryCoreHRCompanyRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRCompanyRecentChange(f func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRCompanyRecentChange = f } -// UnMockCoreHRQueryCorehrCompanyRecentChange un-mock CoreHRQueryCorehrCompanyRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrCompanyRecentChange() { - r.mockCoreHRQueryCorehrCompanyRecentChange = nil +// UnMockCoreHRQueryCoreHRCompanyRecentChange un-mock CoreHRQueryCoreHRCompanyRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRCompanyRecentChange() { + r.mockCoreHRQueryCoreHRCompanyRecentChange = nil } -// QueryCorehrCompanyRecentChangeReq ... -type QueryCorehrCompanyRecentChangeReq struct { +// QueryCoreHRCompanyRecentChangeReq ... +type QueryCoreHRCompanyRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 100 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。 查询结束时间应大于开始时间。示例值: 2024-01-10 02:10:00 } -// QueryCorehrCompanyRecentChangeResp ... -type QueryCorehrCompanyRecentChangeResp struct { +// QueryCoreHRCompanyRecentChangeResp ... +type QueryCoreHRCompanyRecentChangeResp struct { CompanyIDs []string `json:"company_ids,omitempty"` // 公司 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list) 或者[通过 ID 批量查询公司信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/company/batch_get) 或者[查询单个公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedCompanyIDs []string `json:"deleted_company_ids,omitempty"` // 目标查询时间范围内被删除的公司列表, 该列表是 company_ids 的子集, 便于获取在指定的[start_date, end_date) 的范围内被删除的公司IDs。- 由于对应的公司已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrCompanyRecentChangeResp ... -type queryCorehrCompanyRecentChangeResp struct { +// queryCoreHRCompanyRecentChangeResp ... +type queryCoreHRCompanyRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrCompanyRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRCompanyRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_cost_allocation_batch_query.go b/api_corehr_cost_allocation_batch_query.go index 88f08905..69cb549f 100644 --- a/api_corehr_cost_allocation_batch_query.go +++ b/api_corehr_cost_allocation_batch_query.go @@ -21,84 +21,84 @@ import ( "context" ) -// BatchQueryCorehrCostAllocation 查询成本分摊 +// BatchQueryCoreHRCostAllocation 查询成本分摊 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query // new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/batch_query -func (r *CoreHRService) BatchQueryCorehrCostAllocation(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchQueryCorehrCostAllocation != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrCostAllocation mock enable") - return r.cli.mock.mockCoreHRBatchQueryCorehrCostAllocation(ctx, request, options...) +func (r *CoreHRService) BatchQueryCoreHRCostAllocation(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCoreHRCostAllocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHRCostAllocation mock enable") + return r.cli.mock.mockCoreHRBatchQueryCoreHRCostAllocation(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchQueryCorehrCostAllocation", + API: "BatchQueryCoreHRCostAllocation", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/batch_query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchQueryCorehrCostAllocationResp) + resp := new(batchQueryCoreHRCostAllocationResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchQueryCorehrCostAllocation mock CoreHRBatchQueryCorehrCostAllocation method -func (r *Mock) MockCoreHRBatchQueryCorehrCostAllocation(f func(ctx context.Context, request *BatchQueryCorehrCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCorehrCostAllocationResp, *Response, error)) { - r.mockCoreHRBatchQueryCorehrCostAllocation = f +// MockCoreHRBatchQueryCoreHRCostAllocation mock CoreHRBatchQueryCoreHRCostAllocation method +func (r *Mock) MockCoreHRBatchQueryCoreHRCostAllocation(f func(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error)) { + r.mockCoreHRBatchQueryCoreHRCostAllocation = f } -// UnMockCoreHRBatchQueryCorehrCostAllocation un-mock CoreHRBatchQueryCorehrCostAllocation method -func (r *Mock) UnMockCoreHRBatchQueryCorehrCostAllocation() { - r.mockCoreHRBatchQueryCorehrCostAllocation = nil +// UnMockCoreHRBatchQueryCoreHRCostAllocation un-mock CoreHRBatchQueryCoreHRCostAllocation method +func (r *Mock) UnMockCoreHRBatchQueryCoreHRCostAllocation() { + r.mockCoreHRBatchQueryCoreHRCostAllocation = nil } -// BatchQueryCorehrCostAllocationReq ... -type BatchQueryCorehrCostAllocationReq struct { +// BatchQueryCoreHRCostAllocationReq ... +type BatchQueryCoreHRCostAllocationReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工ID列表-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: ["4692446793125560154"] 长度范围: `1` ~ `100` } -// BatchQueryCorehrCostAllocationResp ... -type BatchQueryCorehrCostAllocationResp struct { - Items []*BatchQueryCorehrCostAllocationRespItem `json:"items,omitempty"` // 查询到的成本分摊信息 +// BatchQueryCoreHRCostAllocationResp ... +type BatchQueryCoreHRCostAllocationResp struct { + Items []*BatchQueryCoreHRCostAllocationRespItem `json:"items,omitempty"` // 查询到的成本分摊信息 } -// BatchQueryCorehrCostAllocationRespItem ... -type BatchQueryCorehrCostAllocationRespItem struct { +// BatchQueryCoreHRCostAllocationRespItem ... +type BatchQueryCoreHRCostAllocationRespItem struct { EmploymentID string `json:"employment_id,omitempty"` // 员工ID - CostAllocations []*BatchQueryCorehrCostAllocationRespItemCostAllocation `json:"cost_allocations,omitempty"` // 成本分摊信息 + CostAllocations []*BatchQueryCoreHRCostAllocationRespItemCostAllocation `json:"cost_allocations,omitempty"` // 成本分摊信息 } -// BatchQueryCorehrCostAllocationRespItemCostAllocation ... -type BatchQueryCorehrCostAllocationRespItemCostAllocation struct { +// BatchQueryCoreHRCostAllocationRespItemCostAllocation ... +type BatchQueryCoreHRCostAllocationRespItemCostAllocation struct { WkID string `json:"wk_id,omitempty"` // 成本分摊ID EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期 ExpirationTime string `json:"expiration_time,omitempty"` // 分摊失效日期 - JobDataCostCenterID []*BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 - JobDataID *BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID `json:"job_data_id,omitempty"` // 任职ID + JobDataCostCenterID []*BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 + JobDataID *BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataID `json:"job_data_id,omitempty"` // 任职ID Reason string `json:"reason,omitempty"` // 变更原因 } -// BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID ... -type BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataCostCenterID struct { +// BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataCostCenterID ... +type BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataCostCenterID struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 } -// BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID ... -type BatchQueryCorehrCostAllocationRespItemCostAllocationJobDataID struct { +// BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataID ... +type BatchQueryCoreHRCostAllocationRespItemCostAllocationJobDataID struct { WkID string `json:"wk_id,omitempty"` // 记录ID } -// batchQueryCorehrCostAllocationResp ... -type batchQueryCorehrCostAllocationResp struct { +// batchQueryCoreHRCostAllocationResp ... +type batchQueryCoreHRCostAllocationResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchQueryCorehrCostAllocationResp `json:"data,omitempty"` + Data *BatchQueryCoreHRCostAllocationResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_cost_allocation_create_version.go b/api_corehr_cost_allocation_create_version.go index da939c52..ae782864 100644 --- a/api_corehr_cost_allocation_create_version.go +++ b/api_corehr_cost_allocation_create_version.go @@ -21,72 +21,72 @@ import ( "context" ) -// CreateCorehrCostAllocationVersion 创建成本分摊 +// CreateCoreHRCostAllocationVersion 创建成本分摊 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/create_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/create_version -func (r *CoreHRService) CreateCorehrCostAllocationVersion(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCostAllocationVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCostAllocationVersion mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCostAllocationVersion(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCostAllocationVersion(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCostAllocationVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCostAllocationVersion", + API: "CreateCoreHRCostAllocationVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/create_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCostAllocationVersionResp) + resp := new(createCoreHRCostAllocationVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCostAllocationVersion mock CoreHRCreateCorehrCostAllocationVersion method -func (r *Mock) MockCoreHRCreateCorehrCostAllocationVersion(f func(ctx context.Context, request *CreateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCorehrCostAllocationVersionResp, *Response, error)) { - r.mockCoreHRCreateCorehrCostAllocationVersion = f +// MockCoreHRCreateCoreHRCostAllocationVersion mock CoreHRCreateCoreHRCostAllocationVersion method +func (r *Mock) MockCoreHRCreateCoreHRCostAllocationVersion(f func(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCostAllocationVersion = f } -// UnMockCoreHRCreateCorehrCostAllocationVersion un-mock CoreHRCreateCorehrCostAllocationVersion method -func (r *Mock) UnMockCoreHRCreateCorehrCostAllocationVersion() { - r.mockCoreHRCreateCorehrCostAllocationVersion = nil +// UnMockCoreHRCreateCoreHRCostAllocationVersion un-mock CoreHRCreateCoreHRCostAllocationVersion method +func (r *Mock) UnMockCoreHRCreateCoreHRCostAllocationVersion() { + r.mockCoreHRCreateCoreHRCostAllocationVersion = nil } -// CreateCorehrCostAllocationVersionReq ... -type CreateCorehrCostAllocationVersionReq struct { +// CreateCoreHRCostAllocationVersionReq ... +type CreateCoreHRCostAllocationVersionReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" - CostAllocation *CreateCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 + CostAllocation *CreateCoreHRCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 } -// CreateCorehrCostAllocationVersionReqCostAllocation ... -type CreateCorehrCostAllocationVersionReqCostAllocation struct { +// CreateCoreHRCostAllocationVersionReqCostAllocation ... +type CreateCoreHRCostAllocationVersionReqCostAllocation struct { EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2024-12-01" ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2024-12-02" - JobDataCostCenterID []*CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `1` ~ `50` + JobDataCostCenterID []*CreateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `1` ~ `50` Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" } -// CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID ... -type CreateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { +// CreateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID ... +type CreateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。示例值: "6950635856373745165" NewRate float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 } -// CreateCorehrCostAllocationVersionResp ... -type CreateCorehrCostAllocationVersionResp struct { +// CreateCoreHRCostAllocationVersionResp ... +type CreateCoreHRCostAllocationVersionResp struct { CostAllocationID string `json:"cost_allocation_id,omitempty"` // 成本分摊ID } -// createCorehrCostAllocationVersionResp ... -type createCorehrCostAllocationVersionResp struct { +// createCoreHRCostAllocationVersionResp ... +type createCoreHRCostAllocationVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCostAllocationVersionResp `json:"data,omitempty"` + Data *CreateCoreHRCostAllocationVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_cost_allocation_remove_version.go b/api_corehr_cost_allocation_remove_version.go index 5397bab2..b1b2becf 100644 --- a/api_corehr_cost_allocation_remove_version.go +++ b/api_corehr_cost_allocation_remove_version.go @@ -21,62 +21,62 @@ import ( "context" ) -// RemoveCorehrCostAllocationVersion 删除成本分摊 +// RemoveCoreHRCostAllocationVersion 删除成本分摊 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/remove_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/remove_version -func (r *CoreHRService) RemoveCorehrCostAllocationVersion(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRRemoveCorehrCostAllocationVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrCostAllocationVersion mock enable") - return r.cli.mock.mockCoreHRRemoveCorehrCostAllocationVersion(ctx, request, options...) +func (r *CoreHRService) RemoveCoreHRCostAllocationVersion(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCoreHRCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCoreHRCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRRemoveCoreHRCostAllocationVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "RemoveCorehrCostAllocationVersion", + API: "RemoveCoreHRCostAllocationVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/remove_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(removeCorehrCostAllocationVersionResp) + resp := new(removeCoreHRCostAllocationVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRRemoveCorehrCostAllocationVersion mock CoreHRRemoveCorehrCostAllocationVersion method -func (r *Mock) MockCoreHRRemoveCorehrCostAllocationVersion(f func(ctx context.Context, request *RemoveCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCorehrCostAllocationVersionResp, *Response, error)) { - r.mockCoreHRRemoveCorehrCostAllocationVersion = f +// MockCoreHRRemoveCoreHRCostAllocationVersion mock CoreHRRemoveCoreHRCostAllocationVersion method +func (r *Mock) MockCoreHRRemoveCoreHRCostAllocationVersion(f func(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRRemoveCoreHRCostAllocationVersion = f } -// UnMockCoreHRRemoveCorehrCostAllocationVersion un-mock CoreHRRemoveCorehrCostAllocationVersion method -func (r *Mock) UnMockCoreHRRemoveCorehrCostAllocationVersion() { - r.mockCoreHRRemoveCorehrCostAllocationVersion = nil +// UnMockCoreHRRemoveCoreHRCostAllocationVersion un-mock CoreHRRemoveCoreHRCostAllocationVersion method +func (r *Mock) UnMockCoreHRRemoveCoreHRCostAllocationVersion() { + r.mockCoreHRRemoveCoreHRCostAllocationVersion = nil } -// RemoveCorehrCostAllocationVersionReq ... -type RemoveCorehrCostAllocationVersionReq struct { +// RemoveCoreHRCostAllocationVersionReq ... +type RemoveCoreHRCostAllocationVersionReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 EmploymentID string `json:"employment_id,omitempty"` // 员工ID, 删除时必填-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "7862995757234914824" - CostAllocation *RemoveCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 + CostAllocation *RemoveCoreHRCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 } -// RemoveCorehrCostAllocationVersionReqCostAllocation ... -type RemoveCorehrCostAllocationVersionReqCostAllocation struct { +// RemoveCoreHRCostAllocationVersionReqCostAllocation ... +type RemoveCoreHRCostAllocationVersionReqCostAllocation struct { WkID string `json:"wk_id,omitempty"` // wk_id, 删除时必填-可以调用[【查询成本分摊】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query)接口, 获取对应成本分摊信息的成本分摊ID。示例值: "703912325303191204" } -// RemoveCorehrCostAllocationVersionResp ... -type RemoveCorehrCostAllocationVersionResp struct { +// RemoveCoreHRCostAllocationVersionResp ... +type RemoveCoreHRCostAllocationVersionResp struct { } -// removeCorehrCostAllocationVersionResp ... -type removeCorehrCostAllocationVersionResp struct { +// removeCoreHRCostAllocationVersionResp ... +type removeCoreHRCostAllocationVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *RemoveCorehrCostAllocationVersionResp `json:"data,omitempty"` + Data *RemoveCoreHRCostAllocationVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_cost_allocation_update_version.go b/api_corehr_cost_allocation_update_version.go index 5c9622fa..f3e20cfe 100644 --- a/api_corehr_cost_allocation_update_version.go +++ b/api_corehr_cost_allocation_update_version.go @@ -21,72 +21,72 @@ import ( "context" ) -// UpdateCorehrCostAllocationVersion 更新成本分摊 +// UpdateCoreHRCostAllocationVersion 更新成本分摊 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/update_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/cost_allocation/update_version -func (r *CoreHRService) UpdateCorehrCostAllocationVersion(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrCostAllocationVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCostAllocationVersion mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrCostAllocationVersion(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRCostAllocationVersion(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRCostAllocationVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRCostAllocationVersion mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRCostAllocationVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrCostAllocationVersion", + API: "UpdateCoreHRCostAllocationVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_allocations/update_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrCostAllocationVersionResp) + resp := new(updateCoreHRCostAllocationVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrCostAllocationVersion mock CoreHRUpdateCorehrCostAllocationVersion method -func (r *Mock) MockCoreHRUpdateCorehrCostAllocationVersion(f func(ctx context.Context, request *UpdateCorehrCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCorehrCostAllocationVersionResp, *Response, error)) { - r.mockCoreHRUpdateCorehrCostAllocationVersion = f +// MockCoreHRUpdateCoreHRCostAllocationVersion mock CoreHRUpdateCoreHRCostAllocationVersion method +func (r *Mock) MockCoreHRUpdateCoreHRCostAllocationVersion(f func(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRCostAllocationVersion = f } -// UnMockCoreHRUpdateCorehrCostAllocationVersion un-mock CoreHRUpdateCorehrCostAllocationVersion method -func (r *Mock) UnMockCoreHRUpdateCorehrCostAllocationVersion() { - r.mockCoreHRUpdateCorehrCostAllocationVersion = nil +// UnMockCoreHRUpdateCoreHRCostAllocationVersion un-mock CoreHRUpdateCoreHRCostAllocationVersion method +func (r *Mock) UnMockCoreHRUpdateCoreHRCostAllocationVersion() { + r.mockCoreHRUpdateCoreHRCostAllocationVersion = nil } -// UpdateCorehrCostAllocationVersionReq ... -type UpdateCorehrCostAllocationVersionReq struct { +// UpdateCoreHRCostAllocationVersionReq ... +type UpdateCoreHRCostAllocationVersionReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" - CostAllocation *UpdateCorehrCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 + CostAllocation *UpdateCoreHRCostAllocationVersionReqCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 } -// UpdateCorehrCostAllocationVersionReqCostAllocation ... -type UpdateCorehrCostAllocationVersionReqCostAllocation struct { +// UpdateCoreHRCostAllocationVersionReqCostAllocation ... +type UpdateCoreHRCostAllocationVersionReqCostAllocation struct { WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询成本分摊】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_allocation/batch_query)接口, 获取对应成本分摊信息的成本分摊ID。示例值: "703912325303191204" EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2024-12-01" ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2024-12-02" - JobDataCostCenterID []*UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `0` ~ `10000` + JobDataCostCenterID []*UpdateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID `json:"job_data_cost_center_id,omitempty"` // 成本分摊 长度范围: `0` ~ `10000` Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" } -// UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID ... -type UpdateCorehrCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { +// UpdateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID ... +type UpdateCoreHRCostAllocationVersionReqCostAllocationJobDataCostCenterID struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取对应成本中心信息的成本中心ID。示例值: "6950635856373745165" NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 } -// UpdateCorehrCostAllocationVersionResp ... -type UpdateCorehrCostAllocationVersionResp struct { +// UpdateCoreHRCostAllocationVersionResp ... +type UpdateCoreHRCostAllocationVersionResp struct { } -// updateCorehrCostAllocationVersionResp ... -type updateCorehrCostAllocationVersionResp struct { +// updateCoreHRCostAllocationVersionResp ... +type updateCoreHRCostAllocationVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrCostAllocationVersionResp `json:"data,omitempty"` + Data *UpdateCoreHRCostAllocationVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_cost_center_query_recent_change.go b/api_corehr_cost_center_query_recent_change.go index 5ee11455..4ab4c8e2 100644 --- a/api_corehr_cost_center_query_recent_change.go +++ b/api_corehr_cost_center_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrCostCenterRecentChange 查询指定时间范围内当前生效信息发生变更的成本中心, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该成本中心id +// QueryCoreHRCostCenterRecentChange 查询指定时间范围内当前生效信息发生变更的成本中心, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该成本中心id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/cost_center/query_recent_change -func (r *CoreHRService) QueryCorehrCostCenterRecentChange(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrCostCenterRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCostCenterRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrCostCenterRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRCostCenterRecentChange(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRCostCenterRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCostCenterRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRCostCenterRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrCostCenterRecentChange", + API: "QueryCoreHRCostCenterRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/cost_centers/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrCostCenterRecentChangeResp) + resp := new(queryCoreHRCostCenterRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrCostCenterRecentChange mock CoreHRQueryCorehrCostCenterRecentChange method -func (r *Mock) MockCoreHRQueryCorehrCostCenterRecentChange(f func(ctx context.Context, request *QueryCorehrCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCostCenterRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrCostCenterRecentChange = f +// MockCoreHRQueryCoreHRCostCenterRecentChange mock CoreHRQueryCoreHRCostCenterRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRCostCenterRecentChange(f func(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRCostCenterRecentChange = f } -// UnMockCoreHRQueryCorehrCostCenterRecentChange un-mock CoreHRQueryCorehrCostCenterRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrCostCenterRecentChange() { - r.mockCoreHRQueryCorehrCostCenterRecentChange = nil +// UnMockCoreHRQueryCoreHRCostCenterRecentChange un-mock CoreHRQueryCoreHRCostCenterRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRCostCenterRecentChange() { + r.mockCoreHRQueryCoreHRCostCenterRecentChange = nil } -// QueryCorehrCostCenterRecentChangeReq ... -type QueryCorehrCostCenterRecentChangeReq struct { +// QueryCoreHRCostCenterRecentChangeReq ... +type QueryCoreHRCostCenterRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrCostCenterRecentChangeResp ... -type QueryCorehrCostCenterRecentChangeResp struct { +// QueryCoreHRCostCenterRecentChangeResp ... +type QueryCoreHRCostCenterRecentChangeResp struct { CostCenterIDs []string `json:"cost_center_ids,omitempty"` // 成本中心 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedCostCenterIDs []string `json:"deleted_cost_center_ids,omitempty"` // 目标查询时间范围内被删除的成本中心列表, 该列表是 cost_center_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的成本中心 IDs。- 由于对应的成本中心已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrCostCenterRecentChangeResp ... -type queryCorehrCostCenterRecentChangeResp struct { +// queryCoreHRCostCenterRecentChangeResp ... +type queryCoreHRCostCenterRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrCostCenterRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRCostCenterRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_active.go b/api_corehr_custom_org_active.go index 40444829..ac9b1f1b 100644 --- a/api_corehr_custom_org_active.go +++ b/api_corehr_custom_org_active.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrCustomOrgActive 对自定义组织进行启用或停用操作 +// CreateCoreHRCustomOrgActive 对自定义组织进行启用或停用操作 // // - 停用自定义组织时请确认有无在职员工、异动单据、待入职单据关联此自定义组织, 如有会导致停用失败。 // - 若启/停用的生效时间当天不存在版本则会自动生成一个版本。 @@ -30,53 +30,53 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/active // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/active -func (r *CoreHRService) CreateCorehrCustomOrgActive(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCustomOrgActive != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCustomOrgActive mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCustomOrgActive(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCustomOrgActive(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCustomOrgActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCustomOrgActive mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCustomOrgActive(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCustomOrgActive", + API: "CreateCoreHRCustomOrgActive", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/active", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCustomOrgActiveResp) + resp := new(createCoreHRCustomOrgActiveResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCustomOrgActive mock CoreHRCreateCorehrCustomOrgActive method -func (r *Mock) MockCoreHRCreateCorehrCustomOrgActive(f func(ctx context.Context, request *CreateCorehrCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgActiveResp, *Response, error)) { - r.mockCoreHRCreateCorehrCustomOrgActive = f +// MockCoreHRCreateCoreHRCustomOrgActive mock CoreHRCreateCoreHRCustomOrgActive method +func (r *Mock) MockCoreHRCreateCoreHRCustomOrgActive(f func(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCustomOrgActive = f } -// UnMockCoreHRCreateCorehrCustomOrgActive un-mock CoreHRCreateCorehrCustomOrgActive method -func (r *Mock) UnMockCoreHRCreateCorehrCustomOrgActive() { - r.mockCoreHRCreateCorehrCustomOrgActive = nil +// UnMockCoreHRCreateCoreHRCustomOrgActive un-mock CoreHRCreateCoreHRCustomOrgActive method +func (r *Mock) UnMockCoreHRCreateCoreHRCustomOrgActive() { + r.mockCoreHRCreateCoreHRCustomOrgActive = nil } -// CreateCorehrCustomOrgActiveReq ... -type CreateCorehrCustomOrgActiveReq struct { +// CreateCoreHRCustomOrgActiveReq ... +type CreateCoreHRCustomOrgActiveReq struct { OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914823" ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织配置」中相应的自定义组织目录下查看示例值: "custom_org_01" Active bool `json:"active,omitempty"` // 启用/停用状态。- active 传 true 代表启用- active 传 false 代表停用示例值: true EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` } -// CreateCorehrCustomOrgActiveResp ... -type CreateCorehrCustomOrgActiveResp struct { +// CreateCoreHRCustomOrgActiveResp ... +type CreateCoreHRCustomOrgActiveResp struct { } -// createCorehrCustomOrgActiveResp ... -type createCorehrCustomOrgActiveResp struct { +// createCoreHRCustomOrgActiveResp ... +type createCoreHRCustomOrgActiveResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCustomOrgActiveResp `json:"data,omitempty"` + Data *CreateCoreHRCustomOrgActiveResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_create.go b/api_corehr_custom_org_create.go index fe3ba314..c1341161 100644 --- a/api_corehr_custom_org_create.go +++ b/api_corehr_custom_org_create.go @@ -21,106 +21,106 @@ import ( "context" ) -// CreateCorehrCustomOrg 使用指定信息创建自定义组织, 接口内会做相关规则校验。 +// CreateCoreHRCustomOrg 使用指定信息创建自定义组织, 接口内会做相关规则校验。 // // - 每种自定义组织都可以通过此接口创建, 不同种自定义组织通过不同 object_api_name 区分。 // - 非必填字段, 不传时默认为空。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/create // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/create -func (r *CoreHRService) CreateCorehrCustomOrg(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrCustomOrg != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrCustomOrg mock enable") - return r.cli.mock.mockCoreHRCreateCorehrCustomOrg(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRCustomOrg(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRCustomOrg mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRCustomOrg(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrCustomOrg", + API: "CreateCoreHRCustomOrg", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrCustomOrgResp) + resp := new(createCoreHRCustomOrgResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrCustomOrg mock CoreHRCreateCorehrCustomOrg method -func (r *Mock) MockCoreHRCreateCorehrCustomOrg(f func(ctx context.Context, request *CreateCorehrCustomOrgReq, options ...MethodOptionFunc) (*CreateCorehrCustomOrgResp, *Response, error)) { - r.mockCoreHRCreateCorehrCustomOrg = f +// MockCoreHRCreateCoreHRCustomOrg mock CoreHRCreateCoreHRCustomOrg method +func (r *Mock) MockCoreHRCreateCoreHRCustomOrg(f func(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error)) { + r.mockCoreHRCreateCoreHRCustomOrg = f } -// UnMockCoreHRCreateCorehrCustomOrg un-mock CoreHRCreateCorehrCustomOrg method -func (r *Mock) UnMockCoreHRCreateCorehrCustomOrg() { - r.mockCoreHRCreateCorehrCustomOrg = nil +// UnMockCoreHRCreateCoreHRCustomOrg un-mock CoreHRCreateCoreHRCustomOrg method +func (r *Mock) UnMockCoreHRCreateCoreHRCustomOrg() { + r.mockCoreHRCreateCoreHRCustomOrg = nil } -// CreateCorehrCustomOrgReq ... -type CreateCorehrCustomOrgReq struct { +// CreateCoreHRCustomOrgReq ... +type CreateCoreHRCustomOrgReq struct { ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id` 长度范围: `0` ~ `64` 字符当值为 `user_id`, 字段权限要求: 获取用户 user ID ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" 长度范围: `1` ~ `128` 字符 - Names []*CreateCorehrCustomOrgReqName `json:"names,omitempty"` // 自定义组织的名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` + Names []*CreateCoreHRCustomOrgReqName `json:"names,omitempty"` // 自定义组织的名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` Code *string `json:"code,omitempty"` // 自定义组织编码 (不能与其他记录的编码重复)- 开启自动编码时, 如果不传值会自动生成编码, 否则以传入值为准- 未开启自动编码时, 不传值不会自动生成编码示例值: "000001(格式和配置的匹配规则相关)" 长度范围: `0` ~ `128` 字符 ParentID *string `json:"parent_id,omitempty"` // 上级自定义组织 ID- 上级自定义组织的状态必须是启用的。- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表。- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取, ID 为返回值中的 [employment_id]示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` - Description []*CreateCorehrCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` + Description []*CreateCoreHRCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - OrgRoles []*CreateCorehrCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` - MatchRuleGroups []*CreateCorehrCustomOrgReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个]match_rule_groups[之间是并集关系- 各个]match_rules[之间是交集关系 长度范围: `0` ~ `16` - CustomFields []*CreateCorehrCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` + OrgRoles []*CreateCoreHRCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` + MatchRuleGroups []*CreateCoreHRCustomOrgReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个]match_rule_groups[之间是并集关系- 各个]match_rules[之间是交集关系 长度范围: `0` ~ `16` + CustomFields []*CreateCoreHRCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` } -// CreateCorehrCustomOrgReqCustomField ... -type CreateCorehrCustomOrgReqCustomField struct { +// CreateCoreHRCustomOrgReqCustomField ... +type CreateCoreHRCustomOrgReqCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识示例值: "name" Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "\"231\"" } -// CreateCorehrCustomOrgReqDescription ... -type CreateCorehrCustomOrgReqDescription struct { +// CreateCoreHRCustomOrgReqDescription ... +type CreateCoreHRCustomOrgReqDescription struct { Lang string `json:"lang,omitempty"` // 语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// CreateCorehrCustomOrgReqMatchRuleGroup ... -type CreateCorehrCustomOrgReqMatchRuleGroup struct { - MatchRules []*CreateCorehrCustomOrgReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` +// CreateCoreHRCustomOrgReqMatchRuleGroup ... +type CreateCoreHRCustomOrgReqMatchRuleGroup struct { + MatchRules []*CreateCoreHRCustomOrgReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` } -// CreateCorehrCustomOrgReqMatchRuleGroupMatchRule ... -type CreateCorehrCustomOrgReqMatchRuleGroupMatchRule struct { +// CreateCoreHRCustomOrgReqMatchRuleGroupMatchRule ... +type CreateCoreHRCustomOrgReqMatchRuleGroupMatchRule struct { LeftValue string `json:"left_value,omitempty"` // 左值示例值: "department"可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 Operator string `json:"operator,omitempty"` // 操作符示例值: "contains"可选值有: 包含不包含 RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- ]department[和]department_hierarchy[: 详细 ID 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得, ID 类型需要为 ]people_corehr_department_id[。- ]work_location[和]work_location_hierarchy[: 详细 ID 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得。- ]cost_center[和]cost_center_hierarchy[: 详细 ID 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得。- ]job[: 详细 ID 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)接口获得。- ]job_level[: 详细 ID 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)接口获得。- ]job_family[和]job_family_hierarchy[: 详细 ID 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得。- ]employee_type==: 详细 ID 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)接口获得。示例值: ["6862995757234914824"] 长度范围: `0` ~ `10000` } -// CreateCorehrCustomOrgReqName ... -type CreateCorehrCustomOrgReqName struct { +// CreateCoreHRCustomOrgReqName ... +type CreateCoreHRCustomOrgReqName struct { Lang string `json:"lang,omitempty"` // 名称信息的语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容。示例值: "飞书人事" } -// CreateCorehrCustomOrgReqOrgRole ... -type CreateCorehrCustomOrgReqOrgRole struct { +// CreateCoreHRCustomOrgReqOrgRole ... +type CreateCoreHRCustomOrgReqOrgRole struct { ApiName *string `json:"api_name,omitempty"` // 角色key - api_name、security_group_id必须填一个 - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取示例值: "hcm_corehr_xxxxxx" SecurityGroupID *string `json:"security_group_id,omitempty"` // 角色ID - api_name、security_group_id必须填一个 - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type [ 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name示例值: "7034393015968122400" EmploymentIDs []string `json:"employment_ids,omitempty"` // 被授权的员工 ID 列表- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` } -// CreateCorehrCustomOrgResp ... -type CreateCorehrCustomOrgResp struct { +// CreateCoreHRCustomOrgResp ... +type CreateCoreHRCustomOrgResp struct { OrgID string `json:"org_id,omitempty"` // 自定义组织的 ID } -// createCorehrCustomOrgResp ... -type createCorehrCustomOrgResp struct { +// createCoreHRCustomOrgResp ... +type createCoreHRCustomOrgResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrCustomOrgResp `json:"data,omitempty"` + Data *CreateCoreHRCustomOrgResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_delete_org.go b/api_corehr_custom_org_delete_org.go index 770f87cc..5547e0bb 100644 --- a/api_corehr_custom_org_delete_org.go +++ b/api_corehr_custom_org_delete_org.go @@ -21,58 +21,58 @@ import ( "context" ) -// DeleteCorehrCustomOrg 根据传入的自定义组织 ID 删除相应自定义组织 +// DeleteCoreHRCustomOrg 根据传入的自定义组织 ID 删除相应自定义组织 // // - 删除后无法恢复, 并且在系统中无法搜索到对应自定义组织信息, 请谨慎操作。 // - 删除自定义组织时请确认有无员工、异动单据、待入职单据关联此自定义组织, 如有会导致删除失败。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/delete_org // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/delete_org -func (r *CoreHRService) DeleteCorehrCustomOrg(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrCustomOrg != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrCustomOrg mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrCustomOrg(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRCustomOrg(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRCustomOrg mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRCustomOrg(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrCustomOrg", + API: "DeleteCoreHRCustomOrg", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/delete_org", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrCustomOrgResp) + resp := new(deleteCoreHRCustomOrgResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrCustomOrg mock CoreHRDeleteCorehrCustomOrg method -func (r *Mock) MockCoreHRDeleteCorehrCustomOrg(f func(ctx context.Context, request *DeleteCorehrCustomOrgReq, options ...MethodOptionFunc) (*DeleteCorehrCustomOrgResp, *Response, error)) { - r.mockCoreHRDeleteCorehrCustomOrg = f +// MockCoreHRDeleteCoreHRCustomOrg mock CoreHRDeleteCoreHRCustomOrg method +func (r *Mock) MockCoreHRDeleteCoreHRCustomOrg(f func(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error)) { + r.mockCoreHRDeleteCoreHRCustomOrg = f } -// UnMockCoreHRDeleteCorehrCustomOrg un-mock CoreHRDeleteCorehrCustomOrg method -func (r *Mock) UnMockCoreHRDeleteCorehrCustomOrg() { - r.mockCoreHRDeleteCorehrCustomOrg = nil +// UnMockCoreHRDeleteCoreHRCustomOrg un-mock CoreHRDeleteCoreHRCustomOrg method +func (r *Mock) UnMockCoreHRDeleteCoreHRCustomOrg() { + r.mockCoreHRDeleteCoreHRCustomOrg = nil } -// DeleteCorehrCustomOrgReq ... -type DeleteCorehrCustomOrgReq struct { +// DeleteCoreHRCustomOrgReq ... +type DeleteCoreHRCustomOrgReq struct { OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" } -// DeleteCorehrCustomOrgResp ... -type DeleteCorehrCustomOrgResp struct { +// DeleteCoreHRCustomOrgResp ... +type DeleteCoreHRCustomOrgResp struct { } -// deleteCorehrCustomOrgResp ... -type deleteCorehrCustomOrgResp struct { +// deleteCoreHRCustomOrgResp ... +type deleteCoreHRCustomOrgResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrCustomOrgResp `json:"data,omitempty"` + Data *DeleteCoreHRCustomOrgResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_query.go b/api_corehr_custom_org_query.go index 399b3e28..96671076 100644 --- a/api_corehr_custom_org_query.go +++ b/api_corehr_custom_org_query.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrCustomOrg 根据传入的筛选条件批量查询自定义组织信息。不传任何筛选条件, 默认获得该租户下所有的自定义组织数据。 +// QueryCoreHRCustomOrg 根据传入的筛选条件批量查询自定义组织信息。不传任何筛选条件, 默认获得该租户下所有的自定义组织数据。 // // - 该接口只返回当前生效的自定义组织, 未来生效的自定义组织不返回 // - 请求体入参不填写默认为空, 不参与筛选 @@ -31,39 +31,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query -func (r *CoreHRService) QueryCorehrCustomOrg(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrCustomOrg != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCustomOrg mock enable") - return r.cli.mock.mockCoreHRQueryCorehrCustomOrg(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRCustomOrg(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCustomOrg mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRCustomOrg(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrCustomOrg", + API: "QueryCoreHRCustomOrg", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrCustomOrgResp) + resp := new(queryCoreHRCustomOrgResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrCustomOrg mock CoreHRQueryCorehrCustomOrg method -func (r *Mock) MockCoreHRQueryCorehrCustomOrg(f func(ctx context.Context, request *QueryCorehrCustomOrgReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgResp, *Response, error)) { - r.mockCoreHRQueryCorehrCustomOrg = f +// MockCoreHRQueryCoreHRCustomOrg mock CoreHRQueryCoreHRCustomOrg method +func (r *Mock) MockCoreHRQueryCoreHRCustomOrg(f func(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error)) { + r.mockCoreHRQueryCoreHRCustomOrg = f } -// UnMockCoreHRQueryCorehrCustomOrg un-mock CoreHRQueryCorehrCustomOrg method -func (r *Mock) UnMockCoreHRQueryCorehrCustomOrg() { - r.mockCoreHRQueryCorehrCustomOrg = nil +// UnMockCoreHRQueryCoreHRCustomOrg un-mock CoreHRQueryCoreHRCustomOrg method +func (r *Mock) UnMockCoreHRQueryCoreHRCustomOrg() { + r.mockCoreHRQueryCoreHRCustomOrg = nil } -// QueryCorehrCustomOrgReq ... -type QueryCorehrCustomOrgReq struct { +// QueryCoreHRCustomOrgReq ... +type QueryCoreHRCustomOrgReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -77,79 +77,79 @@ type QueryCorehrCustomOrgReq struct { NeedMatchRule *bool `json:"need_match_rule,omitempty"` // 是否返回匹配规则。- 为 true 返回 ]match_rule_groups[ 字段, 否则不返回。示例值: false } -// QueryCorehrCustomOrgResp ... -type QueryCorehrCustomOrgResp struct { - Items []*QueryCorehrCustomOrgRespItem `json:"items,omitempty"` // 自定义组织信息列表 +// QueryCoreHRCustomOrgResp ... +type QueryCoreHRCustomOrgResp struct { + Items []*QueryCoreHRCustomOrgRespItem `json:"items,omitempty"` // 自定义组织信息列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// QueryCorehrCustomOrgRespItem ... -type QueryCorehrCustomOrgRespItem struct { +// QueryCoreHRCustomOrgRespItem ... +type QueryCoreHRCustomOrgRespItem struct { ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码 - Names []*QueryCorehrCustomOrgRespItemName `json:"names,omitempty"` // 组织名称 + Names []*QueryCoreHRCustomOrgRespItemName `json:"names,omitempty"` // 组织名称 Code string `json:"code,omitempty"` // 编码 ParentID string `json:"parent_id,omitempty"` // 上级自定义组织 ID- 若查询的是一级自定义组织, 则该字段不展示 ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表- 返回的 ID 类型为 ]employment_id[- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 - Description []*QueryCorehrCustomOrgRespItemDescription `json:"description,omitempty"` // 自定义组织描述 + Description []*QueryCoreHRCustomOrgRespItemDescription `json:"description,omitempty"` // 自定义组织描述 EffectiveTime string `json:"effective_time,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) - OrgRoles []*QueryCorehrCustomOrgRespItemOrgRole `json:"org_roles,omitempty"` // 组织角色列表 - MatchRuleGroups []*QueryCorehrCustomOrgRespItemMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 此字段才会返回相关值。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 + OrgRoles []*QueryCoreHRCustomOrgRespItemOrgRole `json:"org_roles,omitempty"` // 组织角色列表 + MatchRuleGroups []*QueryCoreHRCustomOrgRespItemMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 此字段才会返回相关值。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 Active bool `json:"active,omitempty"` // 自定义组织是否启用 OrgID string `json:"org_id,omitempty"` // 自定义组织 ID - CustomFields []*QueryCorehrCustomOrgRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) + CustomFields []*QueryCoreHRCustomOrgRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) } -// QueryCorehrCustomOrgRespItemCustomField ... -type QueryCorehrCustomOrgRespItemCustomField struct { +// QueryCoreHRCustomOrgRespItemCustomField ... +type QueryCoreHRCustomOrgRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识 - Name *QueryCorehrCustomOrgRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRCustomOrgRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同。如: ```("123", "123.23", "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")``` } -// QueryCorehrCustomOrgRespItemCustomFieldName ... -type QueryCorehrCustomOrgRespItemCustomFieldName struct { +// QueryCoreHRCustomOrgRespItemCustomFieldName ... +type QueryCoreHRCustomOrgRespItemCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrCustomOrgRespItemDescription ... -type QueryCorehrCustomOrgRespItemDescription struct { +// QueryCoreHRCustomOrgRespItemDescription ... +type QueryCoreHRCustomOrgRespItemDescription struct { Lang string `json:"lang,omitempty"` // 语言, 中文值是 zh-CN, 英文值是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCustomOrgRespItemMatchRuleGroup ... -type QueryCorehrCustomOrgRespItemMatchRuleGroup struct { - MatchRules []*QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 +// QueryCoreHRCustomOrgRespItemMatchRuleGroup ... +type QueryCoreHRCustomOrgRespItemMatchRuleGroup struct { + MatchRules []*QueryCoreHRCustomOrgRespItemMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 } -// QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule ... -type QueryCorehrCustomOrgRespItemMatchRuleGroupMatchRule struct { +// QueryCoreHRCustomOrgRespItemMatchRuleGroupMatchRule ... +type QueryCoreHRCustomOrgRespItemMatchRuleGroupMatchRule struct { LeftValue string `json:"left_value,omitempty"` // 左值可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 Operator string `json:"operator,omitempty"` // 操作符可选值有: 包含不包含 RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- [department]和[department_hierarchy]: 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)获取详情, ID 类型需要为 [people_corehr_department_id]。- [work_location]和[work_location_hierarchy]: 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。- [cost_center]和[cost_center_hierarchy]: 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。- [job]: 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详情。- [job_level]: 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详情。- [job_family]和[job_family_hierarchy]: 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详情。- [employee_type]: 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情。 } -// QueryCorehrCustomOrgRespItemName ... -type QueryCorehrCustomOrgRespItemName struct { +// QueryCoreHRCustomOrgRespItemName ... +type QueryCoreHRCustomOrgRespItemName struct { Lang string `json:"lang,omitempty"` // 语言, 中文值是 zh-CN, 英文值是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrCustomOrgRespItemOrgRole ... -type QueryCorehrCustomOrgRespItemOrgRole struct { +// QueryCoreHRCustomOrgRespItemOrgRole ... +type QueryCoreHRCustomOrgRespItemOrgRole struct { ApiName string `json:"api_name,omitempty"` // 角色key - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取 SecurityGroupID string `json:"security_group_id,omitempty"` // 角色ID - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type ] 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name EmploymentIDs []string `json:"employment_ids,omitempty"` // 直接授权的员工 ID 列表- 返回的 ID 类型为 [people_corehr_id]- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 InheritEmploymentIDs []string `json:"inherit_employment_ids,omitempty"` // 由于有上级组织权限而自动获取下级组织权限的员工 ID 列表- 返回的 ID 类型为 [people_corehr_id]- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取 } -// queryCorehrCustomOrgResp ... -type queryCorehrCustomOrgResp struct { +// queryCoreHRCustomOrgResp ... +type queryCoreHRCustomOrgResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrCustomOrgResp `json:"data,omitempty"` + Data *QueryCoreHRCustomOrgResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_query_recent_change.go b/api_corehr_custom_org_query_recent_change.go index 5d6ff9ea..e15add4a 100644 --- a/api_corehr_custom_org_query_recent_change.go +++ b/api_corehr_custom_org_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrCustomOrgRecentChange 查询指定时间范围内当前生效信息发生变更的自定义组织, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该自定义组织id +// QueryCoreHRCustomOrgRecentChange 查询指定时间范围内当前生效信息发生变更的自定义组织, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该自定义组织id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,39 +30,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query_recent_change -func (r *CoreHRService) QueryCorehrCustomOrgRecentChange(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrCustomOrgRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrCustomOrgRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrCustomOrgRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRCustomOrgRecentChange(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRCustomOrgRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRCustomOrgRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRCustomOrgRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrCustomOrgRecentChange", + API: "QueryCoreHRCustomOrgRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrCustomOrgRecentChangeResp) + resp := new(queryCoreHRCustomOrgRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrCustomOrgRecentChange mock CoreHRQueryCorehrCustomOrgRecentChange method -func (r *Mock) MockCoreHRQueryCorehrCustomOrgRecentChange(f func(ctx context.Context, request *QueryCorehrCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrCustomOrgRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrCustomOrgRecentChange = f +// MockCoreHRQueryCoreHRCustomOrgRecentChange mock CoreHRQueryCoreHRCustomOrgRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRCustomOrgRecentChange(f func(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRCustomOrgRecentChange = f } -// UnMockCoreHRQueryCorehrCustomOrgRecentChange un-mock CoreHRQueryCorehrCustomOrgRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrCustomOrgRecentChange() { - r.mockCoreHRQueryCorehrCustomOrgRecentChange = nil +// UnMockCoreHRQueryCoreHRCustomOrgRecentChange un-mock CoreHRQueryCoreHRCustomOrgRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRCustomOrgRecentChange() { + r.mockCoreHRQueryCoreHRCustomOrgRecentChange = nil } -// QueryCorehrCustomOrgRecentChangeReq ... -type QueryCorehrCustomOrgRecentChangeReq struct { +// QueryCoreHRCustomOrgRecentChangeReq ... +type QueryCoreHRCustomOrgRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 ObjectApiName string `query:"object_api_name" json:"-"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: custom_org_01 @@ -70,18 +70,18 @@ type QueryCorehrCustomOrgRecentChangeReq struct { EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrCustomOrgRecentChangeResp ... -type QueryCorehrCustomOrgRecentChangeResp struct { +// QueryCoreHRCustomOrgRecentChangeResp ... +type QueryCoreHRCustomOrgRecentChangeResp struct { CustomOrgIDs []string `json:"custom_org_ids,omitempty"` // 自定义组织 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[查询自定义组织信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query) 获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedCustomOrgIDs []string `json:"deleted_custom_org_ids,omitempty"` // 目标查询时间范围内被删除的自定义组织列表, 该列表是 department_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的自定义组织 IDs。- 由于对应的自定义组织已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrCustomOrgRecentChangeResp ... -type queryCorehrCustomOrgRecentChangeResp struct { +// queryCoreHRCustomOrgRecentChangeResp ... +type queryCoreHRCustomOrgRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrCustomOrgRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRCustomOrgRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_update.go b/api_corehr_custom_org_update.go index 7ce240cb..1ce13e9b 100644 --- a/api_corehr_custom_org_update.go +++ b/api_corehr_custom_org_update.go @@ -21,7 +21,7 @@ import ( "context" ) -// UpdateCorehrCustomOrg 更新一个自定义组织基础信息, 不支持更新自动匹配规则, 如需更新自动匹配规则请使用[更新匹配规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/update_rule) +// UpdateCoreHRCustomOrg 更新一个自定义组织基础信息, 不支持更新自动匹配规则, 如需更新自动匹配规则请使用[更新匹配规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/update_rule) // // - 非必填字段, 不传时即不做变更。 // - 如果传入生效时间当天不存在版本则会自动生成一个版本。 @@ -30,86 +30,86 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/patch // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/patch -func (r *CoreHRService) UpdateCorehrCustomOrg(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrCustomOrg != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCustomOrg mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrCustomOrg(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRCustomOrg(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRCustomOrg != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRCustomOrg mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRCustomOrg(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrCustomOrg", + API: "UpdateCoreHRCustomOrg", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/:org_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrCustomOrgResp) + resp := new(updateCoreHRCustomOrgResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrCustomOrg mock CoreHRUpdateCorehrCustomOrg method -func (r *Mock) MockCoreHRUpdateCorehrCustomOrg(f func(ctx context.Context, request *UpdateCorehrCustomOrgReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgResp, *Response, error)) { - r.mockCoreHRUpdateCorehrCustomOrg = f +// MockCoreHRUpdateCoreHRCustomOrg mock CoreHRUpdateCoreHRCustomOrg method +func (r *Mock) MockCoreHRUpdateCoreHRCustomOrg(f func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRCustomOrg = f } -// UnMockCoreHRUpdateCorehrCustomOrg un-mock CoreHRUpdateCorehrCustomOrg method -func (r *Mock) UnMockCoreHRUpdateCorehrCustomOrg() { - r.mockCoreHRUpdateCorehrCustomOrg = nil +// UnMockCoreHRUpdateCoreHRCustomOrg un-mock CoreHRUpdateCoreHRCustomOrg method +func (r *Mock) UnMockCoreHRUpdateCoreHRCustomOrg() { + r.mockCoreHRUpdateCoreHRCustomOrg = nil } -// UpdateCorehrCustomOrgReq ... -type UpdateCorehrCustomOrgReq struct { +// UpdateCoreHRCustomOrgReq ... +type UpdateCoreHRCustomOrgReq struct { OrgID string `path:"org_id" json:"-"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" 长度范围: `1` ~ `128` 字符 - Names []*UpdateCorehrCustomOrgReqName `json:"names,omitempty"` // 组织名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` + Names []*UpdateCoreHRCustomOrgReqName `json:"names,omitempty"` // 组织名称- 相同上级的自定义组织中英文名称不允许重复。- 名称不能包含「/」「;」「;」「\」「'」字符。 长度范围: `0` ~ `5` Code *string `json:"code,omitempty"` // 自定义组织编码 (不能与其他记录的编码重复)- 开启自动编码时, 如果不传值会自动生成编码, 否则以传入值为准- 未开启自动编码时, 不传值不会自动生成编码示例值: "MDPD00000023" ParentID *string `json:"parent_id,omitempty"` // 上级组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" ManagerIDs []string `json:"manager_ids,omitempty"` // 负责人 ID 列表。- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取, ID 为返回值中的 [employment_id]示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` - Description []*UpdateCorehrCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` + Description []*UpdateCoreHRCustomOrgReqDescription `json:"description,omitempty"` // 自定义组织描述 长度范围: `0` ~ `5` EffectiveTime string `json:"effective_time,omitempty"` // 自定义组织生效时间- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 ~ 9999-12-31示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - OrgRoles []*UpdateCorehrCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` - CustomFields []*UpdateCorehrCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` + OrgRoles []*UpdateCoreHRCustomOrgReqOrgRole `json:"org_roles,omitempty"` // 自动给「按自定义组织授权的角色」授权 长度范围: `0` ~ `64` + CustomFields []*UpdateCoreHRCustomOrgReqCustomField `json:"custom_fields,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) 长度范围: `0` ~ `200` } -// UpdateCorehrCustomOrgReqCustomField ... -type UpdateCorehrCustomOrgReqCustomField struct { +// UpdateCoreHRCustomOrgReqCustomField ... +type UpdateCoreHRCustomOrgReqCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 API Name, 即自定义字段的唯一标识示例值: "name" Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "\"231\"" } -// UpdateCorehrCustomOrgReqDescription ... -type UpdateCorehrCustomOrgReqDescription struct { +// UpdateCoreHRCustomOrgReqDescription ... +type UpdateCoreHRCustomOrgReqDescription struct { Lang string `json:"lang,omitempty"` // 语言, 中文用 zh-CN, 英文用 en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// UpdateCorehrCustomOrgReqName ... -type UpdateCorehrCustomOrgReqName struct { +// UpdateCoreHRCustomOrgReqName ... +type UpdateCoreHRCustomOrgReqName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 具体内容示例值: "中文示例" } -// UpdateCorehrCustomOrgReqOrgRole ... -type UpdateCorehrCustomOrgReqOrgRole struct { +// UpdateCoreHRCustomOrgReqOrgRole ... +type UpdateCoreHRCustomOrgReqOrgRole struct { ApiName *string `json:"api_name,omitempty"` // 角色key - api_name、security_group_id必须填一个 - 可以通过页面「飞书人事-设置-组织配置」选择对应自定义组织, 「字段配置-字段编码」获取示例值: "hcm_corehr_xxxxxx" SecurityGroupID *string `json:"security_group_id,omitempty"` // 角色ID - api_name、security_group_id必须填一个 - 可以通过[批量获取角色列表](https://open.larkoffice.com/document/server-docs/corehr-v1/authorization/list) 获取, 数据为返回数据中的 data.items.id 值。筛选条件data.items.group_type == 3(组织角色), data.items.org_truncation 关联的组织有且仅有一个, data.items.org_truncation.org_key 等于当前查询自定义组织 object_api_name示例值: "7034393015968122400" EmploymentIDs []string `json:"employment_ids,omitempty"` // 被授权的员工 ID 列表- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: ["6862995757234914824"] 长度范围: `0` ~ `100` } -// UpdateCorehrCustomOrgResp ... -type UpdateCorehrCustomOrgResp struct { +// UpdateCoreHRCustomOrgResp ... +type UpdateCoreHRCustomOrgResp struct { } -// updateCorehrCustomOrgResp ... -type updateCorehrCustomOrgResp struct { +// updateCoreHRCustomOrgResp ... +type updateCoreHRCustomOrgResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrCustomOrgResp `json:"data,omitempty"` + Data *UpdateCoreHRCustomOrgResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_custom_org_update_rule.go b/api_corehr_custom_org_update_rule.go index 71951175..db169ec6 100644 --- a/api_corehr_custom_org_update_rule.go +++ b/api_corehr_custom_org_update_rule.go @@ -21,71 +21,71 @@ import ( "context" ) -// UpdateCorehrCustomOrgRule 更新自定义组织的匹配规则。仅开启了「为组织设置自动匹配规则」的自定义组织类型可用。如需更新自定义组织基本信息可使用[更新自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/patch) +// UpdateCoreHRCustomOrgRule 更新自定义组织的匹配规则。仅开启了「为组织设置自动匹配规则」的自定义组织类型可用。如需更新自定义组织基本信息可使用[更新自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/patch) // // - 自定义组织规则无生效时间概念, 规则变更不会生成相应版本。 // - 自定义组织规则变更后不会自动生效, 需要在「飞书人事-组织管理-对应自定义组织」页面右上角点击「立即计算匹配规则」按钮才会生效。或者每天 0 点自动生效。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/update_rule // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/update_rule -func (r *CoreHRService) UpdateCorehrCustomOrgRule(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrCustomOrgRule != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrCustomOrgRule mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrCustomOrgRule(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRCustomOrgRule(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRCustomOrgRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRCustomOrgRule mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRCustomOrgRule(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrCustomOrgRule", + API: "UpdateCoreHRCustomOrgRule", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/custom_orgs/update_rule", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrCustomOrgRuleResp) + resp := new(updateCoreHRCustomOrgRuleResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrCustomOrgRule mock CoreHRUpdateCorehrCustomOrgRule method -func (r *Mock) MockCoreHRUpdateCorehrCustomOrgRule(f func(ctx context.Context, request *UpdateCorehrCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCorehrCustomOrgRuleResp, *Response, error)) { - r.mockCoreHRUpdateCorehrCustomOrgRule = f +// MockCoreHRUpdateCoreHRCustomOrgRule mock CoreHRUpdateCoreHRCustomOrgRule method +func (r *Mock) MockCoreHRUpdateCoreHRCustomOrgRule(f func(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRCustomOrgRule = f } -// UnMockCoreHRUpdateCorehrCustomOrgRule un-mock CoreHRUpdateCorehrCustomOrgRule method -func (r *Mock) UnMockCoreHRUpdateCorehrCustomOrgRule() { - r.mockCoreHRUpdateCorehrCustomOrgRule = nil +// UnMockCoreHRUpdateCoreHRCustomOrgRule un-mock CoreHRUpdateCoreHRCustomOrgRule method +func (r *Mock) UnMockCoreHRUpdateCoreHRCustomOrgRule() { + r.mockCoreHRUpdateCoreHRCustomOrgRule = nil } -// UpdateCorehrCustomOrgRuleReq ... -type UpdateCorehrCustomOrgRuleReq struct { +// UpdateCoreHRCustomOrgRuleReq ... +type UpdateCoreHRCustomOrgRuleReq struct { ObjectApiName string `json:"object_api_name,omitempty"` // 组织类型编码, 可在「飞书人事-设置-组织设置」中相应的自定义组织目录下查看示例值: "custom_org_01" OrgID string `json:"org_id,omitempty"` // 自定义组织 ID- 可从 [批量查询自定义组织](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/custom_org/query)的 org_id 字段中获取。示例值: "6862995757234914824" - MatchRuleGroups []*UpdateCorehrCustomOrgRuleReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 长度范围: `0` ~ `16` + MatchRuleGroups []*UpdateCoreHRCustomOrgRuleReqMatchRuleGroup `json:"match_rule_groups,omitempty"` // 自动匹配的规则组。- 需要在「飞书人事-设置-组织设置」中打开对应组织类型的自动匹配开关后, 才可以使用匹配规则组字段。- 各个[match_rule_groups]之间是并集关系- 各个[match_rules]之间是交集关系 长度范围: `0` ~ `16` } -// UpdateCorehrCustomOrgRuleReqMatchRuleGroup ... -type UpdateCorehrCustomOrgRuleReqMatchRuleGroup struct { - MatchRules []*UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` +// UpdateCoreHRCustomOrgRuleReqMatchRuleGroup ... +type UpdateCoreHRCustomOrgRuleReqMatchRuleGroup struct { + MatchRules []*UpdateCoreHRCustomOrgRuleReqMatchRuleGroupMatchRule `json:"match_rules,omitempty"` // 匹配规则列表, 组内是交集关系 长度范围: `0` ~ `64` } -// UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule ... -type UpdateCorehrCustomOrgRuleReqMatchRuleGroupMatchRule struct { +// UpdateCoreHRCustomOrgRuleReqMatchRuleGroupMatchRule ... +type UpdateCoreHRCustomOrgRuleReqMatchRuleGroupMatchRule struct { LeftValue string `json:"left_value,omitempty"` // 左值示例值: "department"可选值有: 部门部门(含下级)工作地点工作地点(含下级)成本中心成本中心(含下级)职务职级序列序列(含下级)人员类型 Operator string `json:"operator,omitempty"` // 操作符示例值: "contains"可选值有: 包含不包含 RightValues []string `json:"right_values,omitempty"` // 右值, 填写左值对应的 ID 列表。- [department]和[department_hierarchy]: 详细 ID 可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得, ID 类型需要为 [people_corehr_department_id]。- [work_location]和[work_location_hierarchy]: 详细 ID 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得。- [cost_center]和[cost_center_hierarchy]: 详细 ID 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得。- [job]: 详细 ID 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)接口获得。- [job_level]: 详细 ID 可通过[查询单个职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)接口获得。- [job_family]和[job_family_hierarchy]: 详细 ID 可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得。- [employee_type]: 详细 ID 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)接口获得。示例值: ["6862995757234914824"] 长度范围: `0` ~ `10000` } -// UpdateCorehrCustomOrgRuleResp ... -type UpdateCorehrCustomOrgRuleResp struct { +// UpdateCoreHRCustomOrgRuleResp ... +type UpdateCoreHRCustomOrgRuleResp struct { } -// updateCorehrCustomOrgRuleResp ... -type updateCorehrCustomOrgRuleResp struct { +// updateCoreHRCustomOrgRuleResp ... +type updateCoreHRCustomOrgRuleResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrCustomOrgRuleResp `json:"data,omitempty"` + Data *UpdateCoreHRCustomOrgRuleResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_default_cost_center_batch_query.go b/api_corehr_default_cost_center_batch_query.go index fcefc852..ff5d0504 100644 --- a/api_corehr_default_cost_center_batch_query.go +++ b/api_corehr_default_cost_center_batch_query.go @@ -21,86 +21,86 @@ import ( "context" ) -// BatchQueryCorehrDefaultCostCenter 查询默认成本中心 +// BatchQueryCoreHRDefaultCostCenter 查询默认成本中心 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query // new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/batch_query -func (r *CoreHRService) BatchQueryCorehrDefaultCostCenter(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchQueryCorehrDefaultCostCenter != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrDefaultCostCenter mock enable") - return r.cli.mock.mockCoreHRBatchQueryCorehrDefaultCostCenter(ctx, request, options...) +func (r *CoreHRService) BatchQueryCoreHRDefaultCostCenter(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCoreHRDefaultCostCenter != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHRDefaultCostCenter mock enable") + return r.cli.mock.mockCoreHRBatchQueryCoreHRDefaultCostCenter(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchQueryCorehrDefaultCostCenter", + API: "BatchQueryCoreHRDefaultCostCenter", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/batch_query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchQueryCorehrDefaultCostCenterResp) + resp := new(batchQueryCoreHRDefaultCostCenterResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchQueryCorehrDefaultCostCenter mock CoreHRBatchQueryCorehrDefaultCostCenter method -func (r *Mock) MockCoreHRBatchQueryCorehrDefaultCostCenter(f func(ctx context.Context, request *BatchQueryCorehrDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCorehrDefaultCostCenterResp, *Response, error)) { - r.mockCoreHRBatchQueryCorehrDefaultCostCenter = f +// MockCoreHRBatchQueryCoreHRDefaultCostCenter mock CoreHRBatchQueryCoreHRDefaultCostCenter method +func (r *Mock) MockCoreHRBatchQueryCoreHRDefaultCostCenter(f func(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error)) { + r.mockCoreHRBatchQueryCoreHRDefaultCostCenter = f } -// UnMockCoreHRBatchQueryCorehrDefaultCostCenter un-mock CoreHRBatchQueryCorehrDefaultCostCenter method -func (r *Mock) UnMockCoreHRBatchQueryCorehrDefaultCostCenter() { - r.mockCoreHRBatchQueryCorehrDefaultCostCenter = nil +// UnMockCoreHRBatchQueryCoreHRDefaultCostCenter un-mock CoreHRBatchQueryCoreHRDefaultCostCenter method +func (r *Mock) UnMockCoreHRBatchQueryCoreHRDefaultCostCenter() { + r.mockCoreHRBatchQueryCoreHRDefaultCostCenter = nil } -// BatchQueryCorehrDefaultCostCenterReq ... -type BatchQueryCorehrDefaultCostCenterReq struct { +// BatchQueryCoreHRDefaultCostCenterReq ... +type BatchQueryCoreHRDefaultCostCenterReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentIDs []string `json:"employment_ids,omitempty"` // 员工雇佣 ID 列表--可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: ["7140964208476371111"] 长度范围: `1` ~ `100` } -// BatchQueryCorehrDefaultCostCenterResp ... -type BatchQueryCorehrDefaultCostCenterResp struct { - Items []*BatchQueryCorehrDefaultCostCenterRespItem `json:"items,omitempty"` // 员工默认成本中心列表 +// BatchQueryCoreHRDefaultCostCenterResp ... +type BatchQueryCoreHRDefaultCostCenterResp struct { + Items []*BatchQueryCoreHRDefaultCostCenterRespItem `json:"items,omitempty"` // 员工默认成本中心列表 } -// BatchQueryCorehrDefaultCostCenterRespItem ... -type BatchQueryCorehrDefaultCostCenterRespItem struct { +// BatchQueryCoreHRDefaultCostCenterRespItem ... +type BatchQueryCoreHRDefaultCostCenterRespItem struct { EmploymentID string `json:"employment_id,omitempty"` // 用户ID - DefaultCostCenters []*BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter `json:"default_cost_centers,omitempty"` // 默认成本中心信息 + DefaultCostCenters []*BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenter `json:"default_cost_centers,omitempty"` // 默认成本中心信息 } -// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter ... -type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenter struct { +// BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenter ... +type BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenter struct { WkID string `json:"wk_id,omitempty"` // 默认成本中心ID WkTid string `json:"wk_tid,omitempty"` // 默认成本中心版本ID EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心ID JobDataID string `json:"job_data_id,omitempty"` // 任职ID IsInherit bool `json:"is_inherit,omitempty"` // 是否继承自岗位/部门的默认成本中心 - InheritSource *BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource `json:"inherit_source,omitempty"` // 继承来源 + InheritSource *BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSource `json:"inherit_source,omitempty"` // 继承来源 Reason string `json:"reason,omitempty"` // 变更原因 } -// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource ... -type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSource struct { +// BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSource ... +type BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSource struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay ... -type BatchQueryCorehrDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay struct { +// BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay ... +type BatchQueryCoreHRDefaultCostCenterRespItemDefaultCostCenterInheritSourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// batchQueryCorehrDefaultCostCenterResp ... -type batchQueryCorehrDefaultCostCenterResp struct { +// batchQueryCoreHRDefaultCostCenterResp ... +type batchQueryCoreHRDefaultCostCenterResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchQueryCorehrDefaultCostCenterResp `json:"data,omitempty"` + Data *BatchQueryCoreHRDefaultCostCenterResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_default_cost_center_create_version.go b/api_corehr_default_cost_center_create_version.go index e87c5e53..56f3d4d3 100644 --- a/api_corehr_default_cost_center_create_version.go +++ b/api_corehr_default_cost_center_create_version.go @@ -21,67 +21,67 @@ import ( "context" ) -// CreateCorehrDefaultCostCenterVersion 添加默认成本中心 +// CreateCoreHRDefaultCostCenterVersion 添加默认成本中心 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/create_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/create_version -func (r *CoreHRService) CreateCorehrDefaultCostCenterVersion(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrDefaultCostCenterVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrDefaultCostCenterVersion mock enable") - return r.cli.mock.mockCoreHRCreateCorehrDefaultCostCenterVersion(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRDefaultCostCenterVersion(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRDefaultCostCenterVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrDefaultCostCenterVersion", + API: "CreateCoreHRDefaultCostCenterVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/create_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrDefaultCostCenterVersionResp) + resp := new(createCoreHRDefaultCostCenterVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrDefaultCostCenterVersion mock CoreHRCreateCorehrDefaultCostCenterVersion method -func (r *Mock) MockCoreHRCreateCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *CreateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCorehrDefaultCostCenterVersionResp, *Response, error)) { - r.mockCoreHRCreateCorehrDefaultCostCenterVersion = f +// MockCoreHRCreateCoreHRDefaultCostCenterVersion mock CoreHRCreateCoreHRDefaultCostCenterVersion method +func (r *Mock) MockCoreHRCreateCoreHRDefaultCostCenterVersion(f func(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRCreateCoreHRDefaultCostCenterVersion = f } -// UnMockCoreHRCreateCorehrDefaultCostCenterVersion un-mock CoreHRCreateCorehrDefaultCostCenterVersion method -func (r *Mock) UnMockCoreHRCreateCorehrDefaultCostCenterVersion() { - r.mockCoreHRCreateCorehrDefaultCostCenterVersion = nil +// UnMockCoreHRCreateCoreHRDefaultCostCenterVersion un-mock CoreHRCreateCoreHRDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRCreateCoreHRDefaultCostCenterVersion() { + r.mockCoreHRCreateCoreHRDefaultCostCenterVersion = nil } -// CreateCorehrDefaultCostCenterVersionReq ... -type CreateCorehrDefaultCostCenterVersionReq struct { +// CreateCoreHRDefaultCostCenterVersionReq ... +type CreateCoreHRDefaultCostCenterVersionReq struct { ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" - DefaultCostCenter *CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 + DefaultCostCenter *CreateCoreHRDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 } -// CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter ... -type CreateCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { +// CreateCoreHRDefaultCostCenterVersionReqDefaultCostCenter ... +type CreateCoreHRDefaultCostCenterVersionReqDefaultCostCenter struct { EffectiveTime string `json:"effective_time,omitempty"` // 生效日期示例值: "2024-12-01" CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心ID-可以调用[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口, 获取成本中心信息中的成本中心ID。示例值: "7039123253031711012" IsInherit *bool `json:"is_inherit,omitempty"` // 是否继承自岗位/部门的默认成本中心示例值: false Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" } -// CreateCorehrDefaultCostCenterVersionResp ... -type CreateCorehrDefaultCostCenterVersionResp struct { +// CreateCoreHRDefaultCostCenterVersionResp ... +type CreateCoreHRDefaultCostCenterVersionResp struct { WkID string `json:"wk_id,omitempty"` // 默认成本中心id WkTid string `json:"wk_tid,omitempty"` // 默认成本中心版本id } -// createCorehrDefaultCostCenterVersionResp ... -type createCorehrDefaultCostCenterVersionResp struct { +// createCoreHRDefaultCostCenterVersionResp ... +type createCoreHRDefaultCostCenterVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Data *CreateCoreHRDefaultCostCenterVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_default_cost_center_remove_version.go b/api_corehr_default_cost_center_remove_version.go index f6abe097..e5e18e8c 100644 --- a/api_corehr_default_cost_center_remove_version.go +++ b/api_corehr_default_cost_center_remove_version.go @@ -21,63 +21,63 @@ import ( "context" ) -// RemoveCorehrDefaultCostCenterVersion 删除默认成本中心 +// RemoveCoreHRDefaultCostCenterVersion 删除默认成本中心 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/remove_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/remove_version -func (r *CoreHRService) RemoveCorehrDefaultCostCenterVersion(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRRemoveCorehrDefaultCostCenterVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCorehrDefaultCostCenterVersion mock enable") - return r.cli.mock.mockCoreHRRemoveCorehrDefaultCostCenterVersion(ctx, request, options...) +func (r *CoreHRService) RemoveCoreHRDefaultCostCenterVersion(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRRemoveCoreHRDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RemoveCoreHRDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRRemoveCoreHRDefaultCostCenterVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "RemoveCorehrDefaultCostCenterVersion", + API: "RemoveCoreHRDefaultCostCenterVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/remove_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(removeCorehrDefaultCostCenterVersionResp) + resp := new(removeCoreHRDefaultCostCenterVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRRemoveCorehrDefaultCostCenterVersion mock CoreHRRemoveCorehrDefaultCostCenterVersion method -func (r *Mock) MockCoreHRRemoveCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *RemoveCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCorehrDefaultCostCenterVersionResp, *Response, error)) { - r.mockCoreHRRemoveCorehrDefaultCostCenterVersion = f +// MockCoreHRRemoveCoreHRDefaultCostCenterVersion mock CoreHRRemoveCoreHRDefaultCostCenterVersion method +func (r *Mock) MockCoreHRRemoveCoreHRDefaultCostCenterVersion(f func(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRRemoveCoreHRDefaultCostCenterVersion = f } -// UnMockCoreHRRemoveCorehrDefaultCostCenterVersion un-mock CoreHRRemoveCorehrDefaultCostCenterVersion method -func (r *Mock) UnMockCoreHRRemoveCorehrDefaultCostCenterVersion() { - r.mockCoreHRRemoveCorehrDefaultCostCenterVersion = nil +// UnMockCoreHRRemoveCoreHRDefaultCostCenterVersion un-mock CoreHRRemoveCoreHRDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRRemoveCoreHRDefaultCostCenterVersion() { + r.mockCoreHRRemoveCoreHRDefaultCostCenterVersion = nil } -// RemoveCorehrDefaultCostCenterVersionReq ... -type RemoveCorehrDefaultCostCenterVersionReq struct { +// RemoveCoreHRDefaultCostCenterVersionReq ... +type RemoveCoreHRDefaultCostCenterVersionReq struct { ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" - DefaultCostCenter *RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 + DefaultCostCenter *RemoveCoreHRDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 } -// RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter ... -type RemoveCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { +// RemoveCoreHRDefaultCostCenterVersionReqDefaultCostCenter ... +type RemoveCoreHRDefaultCostCenterVersionReqDefaultCostCenter struct { WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心ID。示例值: "703912325303191204" WkTid string `json:"wk_tid,omitempty"` // wk_tid-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心版本ID。示例值: "703912321231239801" } -// RemoveCorehrDefaultCostCenterVersionResp ... -type RemoveCorehrDefaultCostCenterVersionResp struct { +// RemoveCoreHRDefaultCostCenterVersionResp ... +type RemoveCoreHRDefaultCostCenterVersionResp struct { } -// removeCorehrDefaultCostCenterVersionResp ... -type removeCorehrDefaultCostCenterVersionResp struct { +// removeCoreHRDefaultCostCenterVersionResp ... +type removeCoreHRDefaultCostCenterVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *RemoveCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Data *RemoveCoreHRDefaultCostCenterVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_default_cost_center_update_version.go b/api_corehr_default_cost_center_update_version.go index 3f26e1b0..d51d826e 100644 --- a/api_corehr_default_cost_center_update_version.go +++ b/api_corehr_default_cost_center_update_version.go @@ -21,51 +21,51 @@ import ( "context" ) -// UpdateCorehrDefaultCostCenterVersion 更新默认成本中心 +// UpdateCoreHRDefaultCostCenterVersion 更新默认成本中心 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/update_version // new doc: https://open.feishu.cn/document/corehr-v1/employee/default_cost_center/update_version -func (r *CoreHRService) UpdateCorehrDefaultCostCenterVersion(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrDefaultCostCenterVersion != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrDefaultCostCenterVersion mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrDefaultCostCenterVersion(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRDefaultCostCenterVersion(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRDefaultCostCenterVersion != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRDefaultCostCenterVersion mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRDefaultCostCenterVersion(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrDefaultCostCenterVersion", + API: "UpdateCoreHRDefaultCostCenterVersion", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/default_cost_centers/update_version", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrDefaultCostCenterVersionResp) + resp := new(updateCoreHRDefaultCostCenterVersionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrDefaultCostCenterVersion mock CoreHRUpdateCorehrDefaultCostCenterVersion method -func (r *Mock) MockCoreHRUpdateCorehrDefaultCostCenterVersion(f func(ctx context.Context, request *UpdateCorehrDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCorehrDefaultCostCenterVersionResp, *Response, error)) { - r.mockCoreHRUpdateCorehrDefaultCostCenterVersion = f +// MockCoreHRUpdateCoreHRDefaultCostCenterVersion mock CoreHRUpdateCoreHRDefaultCostCenterVersion method +func (r *Mock) MockCoreHRUpdateCoreHRDefaultCostCenterVersion(f func(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRDefaultCostCenterVersion = f } -// UnMockCoreHRUpdateCorehrDefaultCostCenterVersion un-mock CoreHRUpdateCorehrDefaultCostCenterVersion method -func (r *Mock) UnMockCoreHRUpdateCorehrDefaultCostCenterVersion() { - r.mockCoreHRUpdateCorehrDefaultCostCenterVersion = nil +// UnMockCoreHRUpdateCoreHRDefaultCostCenterVersion un-mock CoreHRUpdateCoreHRDefaultCostCenterVersion method +func (r *Mock) UnMockCoreHRUpdateCoreHRDefaultCostCenterVersion() { + r.mockCoreHRUpdateCoreHRDefaultCostCenterVersion = nil } -// UpdateCorehrDefaultCostCenterVersionReq ... -type UpdateCorehrDefaultCostCenterVersionReq struct { +// UpdateCoreHRDefaultCostCenterVersionReq ... +type UpdateCoreHRDefaultCostCenterVersionReq struct { ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣 ID-可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 employment_id。示例值: "6862995757234914821" - DefaultCostCenter *UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 + DefaultCostCenter *UpdateCoreHRDefaultCostCenterVersionReqDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心信息 } -// UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter ... -type UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { +// UpdateCoreHRDefaultCostCenterVersionReqDefaultCostCenter ... +type UpdateCoreHRDefaultCostCenterVersionReqDefaultCostCenter struct { WkID string `json:"wk_id,omitempty"` // wk_id-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心ID。示例值: "703912325303191204" WkTid string `json:"wk_tid,omitempty"` // wk_tid-可以调用[【查询默认成本中心】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/default_cost_center/batch_query)接口, 获取对应默认成本中心信息的默认成本中心版本ID。示例值: "703912321231239801" EffectiveTime *string `json:"effective_time,omitempty"` // 生效日期示例值: "2024-12-01" @@ -74,14 +74,14 @@ type UpdateCorehrDefaultCostCenterVersionReqDefaultCostCenter struct { Reason *string `json:"reason,omitempty"` // 变更原因示例值: "异动" } -// UpdateCorehrDefaultCostCenterVersionResp ... -type UpdateCorehrDefaultCostCenterVersionResp struct { +// UpdateCoreHRDefaultCostCenterVersionResp ... +type UpdateCoreHRDefaultCostCenterVersionResp struct { } -// updateCorehrDefaultCostCenterVersionResp ... -type updateCorehrDefaultCostCenterVersionResp struct { +// updateCoreHRDefaultCostCenterVersionResp ... +type updateCoreHRDefaultCostCenterVersionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrDefaultCostCenterVersionResp `json:"data,omitempty"` + Data *UpdateCoreHRDefaultCostCenterVersionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_department_delete.go b/api_corehr_department_delete.go index 6465d61c..06454b43 100644 --- a/api_corehr_department_delete.go +++ b/api_corehr_department_delete.go @@ -21,13 +21,13 @@ import ( "context" ) -// DeleteCoreHRDepartment 可以通过该接口通过部门ID删除一个部门记录 +// DeleteCoreHRDepartment 可以通过该接口通过部门ID删除一个部门记录, 带数据行权限判权 // +// 该接口为 V2 版本接口。要查看旧版 V1 接口, 参考: [【删除部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/delete) // 删除后无法恢复, 并且在系统中无法查看到对应部门信息, 请谨慎操作。 -// 该接口不再推荐使用, 请使用[【删除部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/delete)接口。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/delete -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/delete +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/delete +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/delete func (r *CoreHRService) DeleteCoreHRDepartment(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) { if r.cli.mock.mockCoreHRDeleteCoreHRDepartment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRDepartment mock enable") @@ -38,7 +38,7 @@ func (r *CoreHRService) DeleteCoreHRDepartment(ctx context.Context, request *Del Scope: "CoreHR", API: "DeleteCoreHRDepartment", Method: "DELETE", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/departments/:department_id", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -61,7 +61,8 @@ func (r *Mock) UnMockCoreHRDeleteCoreHRDepartment() { // DeleteCoreHRDepartmentReq ... type DeleteCoreHRDepartmentReq struct { - DepartmentID string `path:"department_id" json:"-"` // 需要删除的部门 ID, 可通过[【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口查询获得示例值: "341143141" + DepartmentID string `path:"department_id" json:"-"` // 需要删除的部门 ID, 可通过[【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口查询获得示例值: "1616161616" + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` } // DeleteCoreHRDepartmentResp ... diff --git a/api_corehr_department_delete_v2.go b/api_corehr_department_delete_v2.go index 165a7de2..d68e0ea0 100644 --- a/api_corehr_department_delete_v2.go +++ b/api_corehr_department_delete_v2.go @@ -21,58 +21,58 @@ import ( "context" ) -// DeleteCorehrDepartment 可以通过该接口通过部门ID删除一个部门记录, 带数据行权限判权 +// DeleteCoreHRDepartmentV2 可以通过该接口通过部门ID删除一个部门记录, 带数据行权限判权 // // 该接口为 V2 版本接口。要查看旧版 V1 接口, 参考: [【删除部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/delete) // 删除后无法恢复, 并且在系统中无法查看到对应部门信息, 请谨慎操作。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/delete // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/delete -func (r *CoreHRService) DeleteCorehrDepartment(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrDepartment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrDepartment mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrDepartment(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRDepartmentV2(ctx context.Context, request *DeleteCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRDepartmentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRDepartmentV2 mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRDepartmentV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrDepartment", + API: "DeleteCoreHRDepartmentV2", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrDepartmentResp) + resp := new(deleteCoreHRDepartmentV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrDepartment mock CoreHRDeleteCorehrDepartment method -func (r *Mock) MockCoreHRDeleteCorehrDepartment(f func(ctx context.Context, request *DeleteCorehrDepartmentReq, options ...MethodOptionFunc) (*DeleteCorehrDepartmentResp, *Response, error)) { - r.mockCoreHRDeleteCorehrDepartment = f +// MockCoreHRDeleteCoreHRDepartmentV2 mock CoreHRDeleteCoreHRDepartmentV2 method +func (r *Mock) MockCoreHRDeleteCoreHRDepartmentV2(f func(ctx context.Context, request *DeleteCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentV2Resp, *Response, error)) { + r.mockCoreHRDeleteCoreHRDepartmentV2 = f } -// UnMockCoreHRDeleteCorehrDepartment un-mock CoreHRDeleteCorehrDepartment method -func (r *Mock) UnMockCoreHRDeleteCorehrDepartment() { - r.mockCoreHRDeleteCorehrDepartment = nil +// UnMockCoreHRDeleteCoreHRDepartmentV2 un-mock CoreHRDeleteCoreHRDepartmentV2 method +func (r *Mock) UnMockCoreHRDeleteCoreHRDepartmentV2() { + r.mockCoreHRDeleteCoreHRDepartmentV2 = nil } -// DeleteCorehrDepartmentReq ... -type DeleteCorehrDepartmentReq struct { +// DeleteCoreHRDepartmentV2Req ... +type DeleteCoreHRDepartmentV2Req struct { DepartmentID string `path:"department_id" json:"-"` // 需要删除的部门 ID, 可通过[【搜索部门信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口查询获得示例值: "1616161616" DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` } -// DeleteCorehrDepartmentResp ... -type DeleteCorehrDepartmentResp struct { +// DeleteCoreHRDepartmentV2Resp ... +type DeleteCoreHRDepartmentV2Resp struct { } -// deleteCorehrDepartmentResp ... -type deleteCorehrDepartmentResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrDepartmentResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteCoreHRDepartmentV2Resp ... +type deleteCoreHRDepartmentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCoreHRDepartmentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_department_query_operation_logs.go b/api_corehr_department_query_operation_logs.go index f84c567a..78f6cf73 100644 --- a/api_corehr_department_query_operation_logs.go +++ b/api_corehr_department_query_operation_logs.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrDepartmentOperationLogs 批量查询指定时间范围内的部门操作日志 +// QueryCoreHRDepartmentOperationLogs 批量查询指定时间范围内的部门操作日志 // // - 默认排序条件: 默认以操作时间倒序排序 // - 仅支持查询部门基础字段变更的操作日志, 对于角色字段变更的操作日志查询功能待上线 @@ -30,39 +30,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_operation_logs // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_operation_logs -func (r *CoreHRService) QueryCorehrDepartmentOperationLogs(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrDepartmentOperationLogs != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrDepartmentOperationLogs mock enable") - return r.cli.mock.mockCoreHRQueryCorehrDepartmentOperationLogs(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRDepartmentOperationLogs(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRDepartmentOperationLogs != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRDepartmentOperationLogs mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRDepartmentOperationLogs(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrDepartmentOperationLogs", + API: "QueryCoreHRDepartmentOperationLogs", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/query_operation_logs", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrDepartmentOperationLogsResp) + resp := new(queryCoreHRDepartmentOperationLogsResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrDepartmentOperationLogs mock CoreHRQueryCorehrDepartmentOperationLogs method -func (r *Mock) MockCoreHRQueryCorehrDepartmentOperationLogs(f func(ctx context.Context, request *QueryCorehrDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentOperationLogsResp, *Response, error)) { - r.mockCoreHRQueryCorehrDepartmentOperationLogs = f +// MockCoreHRQueryCoreHRDepartmentOperationLogs mock CoreHRQueryCoreHRDepartmentOperationLogs method +func (r *Mock) MockCoreHRQueryCoreHRDepartmentOperationLogs(f func(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error)) { + r.mockCoreHRQueryCoreHRDepartmentOperationLogs = f } -// UnMockCoreHRQueryCorehrDepartmentOperationLogs un-mock CoreHRQueryCorehrDepartmentOperationLogs method -func (r *Mock) UnMockCoreHRQueryCorehrDepartmentOperationLogs() { - r.mockCoreHRQueryCorehrDepartmentOperationLogs = nil +// UnMockCoreHRQueryCoreHRDepartmentOperationLogs un-mock CoreHRQueryCoreHRDepartmentOperationLogs method +func (r *Mock) UnMockCoreHRQueryCoreHRDepartmentOperationLogs() { + r.mockCoreHRQueryCoreHRDepartmentOperationLogs = nil } -// QueryCorehrDepartmentOperationLogsReq ... -type QueryCorehrDepartmentOperationLogsReq struct { +// QueryCoreHRDepartmentOperationLogsReq ... +type QueryCoreHRDepartmentOperationLogsReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 1000示例值: 100 取值范围: `1` ~ `1000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 2 DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` @@ -71,17 +71,17 @@ type QueryCorehrDepartmentOperationLogsReq struct { EndDate string `json:"end_date,omitempty"` // 查询的截止操作日期, 注意事项: 格式 "YYYY-MM-DD", 不带时分秒, 包含end_date传入的时间, 系统会以end_date的23:59:59为截止时间进行查询。- 查询截止日期end_date应大于起始日期start_date, 起止日期跨度最大为366天示例值: "2024-01-01" } -// QueryCorehrDepartmentOperationLogsResp ... -type QueryCorehrDepartmentOperationLogsResp struct { - OpLogs []*QueryCorehrDepartmentOperationLogsRespOpLog `json:"op_logs,omitempty"` // 操作日志列表 +// QueryCoreHRDepartmentOperationLogsResp ... +type QueryCoreHRDepartmentOperationLogsResp struct { + OpLogs []*QueryCoreHRDepartmentOperationLogsRespOpLog `json:"op_logs,omitempty"` // 操作日志列表 NextPageToken string `json:"next_page_token,omitempty"` // 下一页token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// QueryCorehrDepartmentOperationLogsRespOpLog ... -type QueryCorehrDepartmentOperationLogsRespOpLog struct { +// QueryCoreHRDepartmentOperationLogsRespOpLog ... +type QueryCoreHRDepartmentOperationLogsRespOpLog struct { ObjectID string `json:"object_id,omitempty"` // 部门ID - Changes []*QueryCorehrDepartmentOperationLogsRespOpLogChange `json:"changes,omitempty"` // 字段变化列表 + Changes []*QueryCoreHRDepartmentOperationLogsRespOpLogChange `json:"changes,omitempty"` // 字段变化列表 Operator string `json:"operator,omitempty"` // 操作人工号, 更多详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 OperationType int64 `json:"operation_type,omitempty"` // 操作类型。现有如下类型: `10`: 新建部门记录- `20`: 新建/复制部门版本- `50`: 编辑部门版本- `60`: 撤销部门版本- `70`: 停用部门- `80`: 启用部门- `90`: 删除部门记录- `100`: 自定义部门排序- `110`: 更新部门- `120`: 编辑部门关联规则 OperationTime string `json:"operation_time,omitempty"` // 操作时间, 带时分秒。示例值: 2023-11-15 19:25:45 @@ -90,17 +90,17 @@ type QueryCorehrDepartmentOperationLogsRespOpLog struct { ChangeReasons []string `json:"change_reasons,omitempty"` // 调整原因列表 } -// QueryCorehrDepartmentOperationLogsRespOpLogChange ... -type QueryCorehrDepartmentOperationLogsRespOpLogChange struct { +// QueryCoreHRDepartmentOperationLogsRespOpLogChange ... +type QueryCoreHRDepartmentOperationLogsRespOpLogChange struct { Field string `json:"field,omitempty"` // 变更字段 Before string `json:"before,omitempty"` // 旧值 After string `json:"after,omitempty"` // 新值 } -// queryCorehrDepartmentOperationLogsResp ... -type queryCorehrDepartmentOperationLogsResp struct { +// queryCoreHRDepartmentOperationLogsResp ... +type queryCoreHRDepartmentOperationLogsResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrDepartmentOperationLogsResp `json:"data,omitempty"` + Data *QueryCoreHRDepartmentOperationLogsResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_department_query_recent_change.go b/api_corehr_department_query_recent_change.go index fc84f056..221fbb93 100644 --- a/api_corehr_department_query_recent_change.go +++ b/api_corehr_department_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrDepartmentRecentChange 查询指定时间范围内当前生效信息发生变更的部门, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该部门id +// QueryCoreHRDepartmentRecentChange 查询指定时间范围内当前生效信息发生变更的部门, 即只有部门当前生效版本的生效时间在查询时间范围内, 才返回该部门id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,39 +30,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/query_recent_change -func (r *CoreHRService) QueryCorehrDepartmentRecentChange(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrDepartmentRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrDepartmentRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrDepartmentRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRDepartmentRecentChange(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRDepartmentRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRDepartmentRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRDepartmentRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrDepartmentRecentChange", + API: "QueryCoreHRDepartmentRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrDepartmentRecentChangeResp) + resp := new(queryCoreHRDepartmentRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrDepartmentRecentChange mock CoreHRQueryCorehrDepartmentRecentChange method -func (r *Mock) MockCoreHRQueryCorehrDepartmentRecentChange(f func(ctx context.Context, request *QueryCorehrDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrDepartmentRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrDepartmentRecentChange = f +// MockCoreHRQueryCoreHRDepartmentRecentChange mock CoreHRQueryCoreHRDepartmentRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRDepartmentRecentChange(f func(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRDepartmentRecentChange = f } -// UnMockCoreHRQueryCorehrDepartmentRecentChange un-mock CoreHRQueryCorehrDepartmentRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrDepartmentRecentChange() { - r.mockCoreHRQueryCorehrDepartmentRecentChange = nil +// UnMockCoreHRQueryCoreHRDepartmentRecentChange un-mock CoreHRQueryCoreHRDepartmentRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRDepartmentRecentChange() { + r.mockCoreHRQueryCoreHRDepartmentRecentChange = nil } -// QueryCorehrDepartmentRecentChangeReq ... -type QueryCorehrDepartmentRecentChangeReq struct { +// QueryCoreHRDepartmentRecentChangeReq ... +type QueryCoreHRDepartmentRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大支持单次 2000 条变更示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 格式 "YYYY-MM-DD HH:MM:SS", 以 UTC+8 时区查询变更。 示例值: 2024-06-01 00:00:00 @@ -70,18 +70,18 @@ type QueryCorehrDepartmentRecentChangeReq struct { DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` } -// QueryCorehrDepartmentRecentChangeResp ... -type QueryCorehrDepartmentRecentChangeResp struct { +// QueryCoreHRDepartmentRecentChangeResp ... +type QueryCoreHRDepartmentRecentChangeResp struct { DepartmentIDs []string `json:"department_ids,omitempty"` // 部门 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 DeletedDepartmentIDs []string `json:"deleted_department_ids,omitempty"` // 目标查询时间范围内被删除的部门列表, 该列表是 department_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的部门 IDs。- 由于对应的部门已经被删除, 无法通过 ID 查询到历史数据。 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// queryCorehrDepartmentRecentChangeResp ... -type queryCorehrDepartmentRecentChangeResp struct { +// queryCoreHRDepartmentRecentChangeResp ... +type queryCoreHRDepartmentRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrDepartmentRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRDepartmentRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_department_timeline_query.go b/api_corehr_department_query_timeline.go similarity index 100% rename from api_corehr_department_timeline_query.go rename to api_corehr_department_query_timeline.go diff --git a/api_corehr_department_tree.go b/api_corehr_department_tree.go index ba20da40..d5c9f7a1 100644 --- a/api_corehr_department_tree.go +++ b/api_corehr_department_tree.go @@ -21,46 +21,46 @@ import ( "context" ) -// CreateCorehrDepartmentTree 支持传入部门ID(不传默认根部门), 任意日期(不传默认当前日期)。从给定部门ID开始广度遍历, 每页最多返回2000行数据 +// CreateCoreHRDepartmentTree 支持传入部门ID(不传默认根部门), 任意日期(不传默认当前日期)。从给定部门ID开始广度遍历, 每页最多返回2000行数据 // // - 延迟说明: 该数据同步延迟 10s 以内, 即: 直接创建/更新对象后10s内调用此接口可能查询不到数据, 部门上下级关系变化10s内可能查询不到最新数据。 // - 如果对数据延迟较为敏感的场景, 可以考虑定期or延迟调用该接口, 或者走[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 逐级查询组织架构 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/tree // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/tree -func (r *CoreHRService) CreateCorehrDepartmentTree(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrDepartmentTree != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrDepartmentTree mock enable") - return r.cli.mock.mockCoreHRCreateCorehrDepartmentTree(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRDepartmentTree(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRDepartmentTree != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRDepartmentTree mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRDepartmentTree(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrDepartmentTree", + API: "CreateCoreHRDepartmentTree", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/tree", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrDepartmentTreeResp) + resp := new(createCoreHRDepartmentTreeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrDepartmentTree mock CoreHRCreateCorehrDepartmentTree method -func (r *Mock) MockCoreHRCreateCorehrDepartmentTree(f func(ctx context.Context, request *CreateCorehrDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCorehrDepartmentTreeResp, *Response, error)) { - r.mockCoreHRCreateCorehrDepartmentTree = f +// MockCoreHRCreateCoreHRDepartmentTree mock CoreHRCreateCoreHRDepartmentTree method +func (r *Mock) MockCoreHRCreateCoreHRDepartmentTree(f func(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error)) { + r.mockCoreHRCreateCoreHRDepartmentTree = f } -// UnMockCoreHRCreateCorehrDepartmentTree un-mock CoreHRCreateCorehrDepartmentTree method -func (r *Mock) UnMockCoreHRCreateCorehrDepartmentTree() { - r.mockCoreHRCreateCorehrDepartmentTree = nil +// UnMockCoreHRCreateCoreHRDepartmentTree un-mock CoreHRCreateCoreHRDepartmentTree method +func (r *Mock) UnMockCoreHRCreateCoreHRDepartmentTree() { + r.mockCoreHRCreateCoreHRDepartmentTree = nil } -// CreateCorehrDepartmentTreeReq ... -type CreateCorehrDepartmentTreeReq struct { +// CreateCoreHRDepartmentTreeReq ... +type CreateCoreHRDepartmentTreeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` @@ -69,24 +69,24 @@ type CreateCorehrDepartmentTreeReq struct { EffectiveDate *string `json:"effective_date,omitempty"` // 日期, 格式yyyy-mm-dd, 默认当前日期- 传2024-01-01, 即为返回2024-01-01的组织架构示例值: "2024-01-01" 最大长度: `10` 字符 } -// CreateCorehrDepartmentTreeResp ... -type CreateCorehrDepartmentTreeResp struct { - Items []*CreateCorehrDepartmentTreeRespItem `json:"items,omitempty"` // 部门树节点 +// CreateCoreHRDepartmentTreeResp ... +type CreateCoreHRDepartmentTreeResp struct { + Items []*CreateCoreHRDepartmentTreeRespItem `json:"items,omitempty"` // 部门树节点 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// CreateCorehrDepartmentTreeRespItem ... -type CreateCorehrDepartmentTreeRespItem struct { +// CreateCoreHRDepartmentTreeRespItem ... +type CreateCoreHRDepartmentTreeRespItem struct { ID string `json:"id,omitempty"` // 部门 ID- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 Level int64 `json:"level,omitempty"` // 部门绝对层级, 根部门层级为0, 根部门的子部门层级为1, 依次类推 Children []string `json:"children,omitempty"` // 下级部门 ID 列表- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 } -// createCorehrDepartmentTreeResp ... -type createCorehrDepartmentTreeResp struct { +// createCoreHRDepartmentTreeResp ... +type createCoreHRDepartmentTreeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrDepartmentTreeResp `json:"data,omitempty"` + Data *CreateCoreHRDepartmentTreeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_department_update.go b/api_corehr_department_update.go index 9f1f511e..45e16ebe 100644 --- a/api_corehr_department_update.go +++ b/api_corehr_department_update.go @@ -21,13 +21,14 @@ import ( "context" ) -// UpdateCoreHRDepartment 更新部门信息, 包括基础信息、自定义字段信息。 +// UpdateCoreHRDepartment 更新部门, 支持数据行权限判权 // -// 该接口不再推荐使用, 请使用[【更新部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/patch)接口。 -// 权限说明: 该接口不支持范围权限校验, 不支持字段权限校验 +// - 停用部门时, 请确认是否有与该部门关联的现任员工、变更文件、待入职。如果是这样, 停用将失败。 +// - 如果启动/停止生效日期没有版本, 将自动生成版本。 +// - 如果启动/停用生效日期存在版本, 则该版本将被修改。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/patch -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/department/patch +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/patch +// new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/patch func (r *CoreHRService) UpdateCoreHRDepartment(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) { if r.cli.mock.mockCoreHRUpdateCoreHRDepartment != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRDepartment mock enable") @@ -38,7 +39,7 @@ func (r *CoreHRService) UpdateCoreHRDepartment(ctx context.Context, request *Upd Scope: "CoreHR", API: "UpdateCoreHRDepartment", Method: "PATCH", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/departments/:department_id", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -61,17 +62,17 @@ func (r *Mock) UnMockCoreHRUpdateCoreHRDepartment() { // UpdateCoreHRDepartmentReq ... type UpdateCoreHRDepartmentReq struct { - DepartmentID string `path:"department_id" json:"-"` // 需要更新的部门ID, 同部门实体在CoreHR内部的唯一键示例值: "6969828847121885087" + DepartmentID string `path:"department_id" json:"-"` // 需要更新的部门 ID示例值: "1616161616" ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` - ID *string `json:"id,omitempty"` // 部门 ID示例值: "6969828847121885087" - SubType *UpdateCoreHRDepartmentReqSubType `json:"sub_type,omitempty"` // 部门子类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 - Manager *string `json:"manager,omitempty"` // 部门负责人 ID, 枚举值及详细信息可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)查询获得示例值: "6893013238632416776" - IsConfidential *bool `json:"is_confidential,omitempty"` // 是否保密示例值: true + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + ID *string `json:"id,omitempty"` // 该字段暂时无效, 可忽略示例值: "4719456877659520852" + SubType *UpdateCoreHRDepartmentReqSubType `json:"sub_type,omitempty"` // 部门类型, 通过[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 + Manager *string `json:"manager,omitempty"` // 部门负责人 ID详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: "6893013238632416776" + IsConfidential *bool `json:"is_confidential,omitempty"` // 是否保密(该字段暂不支持, 可忽略)示例值: true HiberarchyCommon *UpdateCoreHRDepartmentReqHiberarchyCommon `json:"hiberarchy_common,omitempty"` // 组织实体公共字段, 包括名称、描述、上级、启停用状态、生效日期、编码等基础信息 - EffectiveTime string `json:"effective_time,omitempty"` // 生效时间示例值: "2020-05-01 00:00:00" - CustomFields []*UpdateCoreHRDepartmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取 + EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD 00:00:00(系统会自动将时分秒改为00:00:00)- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 00:00:00~9999-12-31 23:59:59示例值: "2020-05-01 00:00:00" + CustomFields []*UpdateCoreHRDepartmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取 长度范围: `0` ~ `100` CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息示例值: "7142384817131652652" StaffingModel *UpdateCoreHRDepartmentReqStaffingModel `json:"staffing_model,omitempty"` // 岗职管理模式- 详细枚举类型请查看[枚举场景](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)中关于staffing_model定义 } @@ -79,132 +80,42 @@ type UpdateCoreHRDepartmentReq struct { // UpdateCoreHRDepartmentReqCustomField ... type UpdateCoreHRDepartmentReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" + Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "Sandy" } // UpdateCoreHRDepartmentReqHiberarchyCommon ... type UpdateCoreHRDepartmentReqHiberarchyCommon struct { - ParentID *string `json:"parent_id,omitempty"` // 上级组织 ID示例值: "4719168654814483759" - Name []*UpdateCoreHRDepartmentReqHiberarchyCommonName `json:"name,omitempty"` // 名称 - Active *bool `json:"active,omitempty"` // 是否启用该部门示例值: true - Code *string `json:"code,omitempty"` // 编码示例值: "12456" + ParentID *string `json:"parent_id,omitempty"` // 上级组织示例值: "4719168654814483759" + Name []*UpdateCoreHRDepartmentReqHiberarchyCommonName `json:"name,omitempty"` // 部门名称- 名称不能包含「/」「;」「;」「\」「'」字符。- 中英文名称会有重名校验规则(依赖租户配置规则) + Active *bool `json:"active,omitempty"` // 部门启用状态, true为启用, false为停用示例值: true + Code *string `json:"code,omitempty"` // 部门编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" Description []*UpdateCoreHRDepartmentReqHiberarchyCommonDescription `json:"description,omitempty"` // 描述 } // UpdateCoreHRDepartmentReqHiberarchyCommonDescription ... type UpdateCoreHRDepartmentReqHiberarchyCommonDescription struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。示例值: "zh-CN" - Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } // UpdateCoreHRDepartmentReqHiberarchyCommonName ... type UpdateCoreHRDepartmentReqHiberarchyCommonName struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。示例值: "zh-CN" - Value string `json:"value,omitempty"` // 名称信息的内容示例值: "研发部" + Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" + Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } // UpdateCoreHRDepartmentReqStaffingModel ... type UpdateCoreHRDepartmentReqStaffingModel struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "job" + EnumName string `json:"enum_name,omitempty"` // 枚举值: job、position、non_job示例值: "job" } // UpdateCoreHRDepartmentReqSubType ... type UpdateCoreHRDepartmentReqSubType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "department" } // UpdateCoreHRDepartmentResp ... type UpdateCoreHRDepartmentResp struct { - Department *UpdateCoreHRDepartmentRespDepartment `json:"department,omitempty"` // 部门 -} - -// UpdateCoreHRDepartmentRespDepartment ... -type UpdateCoreHRDepartmentRespDepartment struct { - ID string `json:"id,omitempty"` // 部门 ID - SubType *UpdateCoreHRDepartmentRespDepartmentSubType `json:"sub_type,omitempty"` // 部门子类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)部门子类型(department_sub_type)枚举定义部分获得 - Manager string `json:"manager,omitempty"` // 部门负责人 ID, 枚举值及详细信息可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)查询获得 - IsConfidential bool `json:"is_confidential,omitempty"` // 是否保密 - HiberarchyCommon *UpdateCoreHRDepartmentRespDepartmentHiberarchyCommon `json:"hiberarchy_common,omitempty"` // 组织实体公共字段, 包括名称、描述、上级、启停用状态、生效日期、编码等基础信息 - EffectiveTime string `json:"effective_time,omitempty"` // 生效时间 - ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间 - CustomFields []*UpdateCoreHRDepartmentRespDepartmentCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息 - StaffingModel *UpdateCoreHRDepartmentRespDepartmentStaffingModel `json:"staffing_model,omitempty"` // 岗职务模式 -} - -// UpdateCoreHRDepartmentRespDepartmentCustomField ... -type UpdateCoreHRDepartmentRespDepartmentCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名 - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommon ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommon struct { - ParentID string `json:"parent_id,omitempty"` // 上级组织 ID - Name []*UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonName `json:"name,omitempty"` // 名称 - Type *UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonType `json:"type,omitempty"` // 组织类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)组织类型(organization_type)枚举定义部分获得 - Active bool `json:"active,omitempty"` // 是否启用 - EffectiveTime string `json:"effective_time,omitempty"` // 生效时间 - ExpirationTime string `json:"expiration_time,omitempty"` // 失效时间 - Code string `json:"code,omitempty"` // 编码 - Description []*UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonDescription `json:"description,omitempty"` // 描述 - TreeOrder string `json:"tree_order,omitempty"` // 树形排序, 代表同层级的部门排序序号。新建的部门, 该字段默认为空, 有两种情况会自动写入值: 管理员在部门管理页面上拖动排序;- 定时任务更新该字段为空的数据, 3分钟/次 - ListOrder string `json:"list_order,omitempty"` // 列表排序, 代表所有部门的混排序号。新建的部门, 该字段默认为空, 有两种情况会自动写入值: 管理员在部门管理页面上拖动排序;- 定时任务更新该字段为空的数据, 3分钟/次 - CustomFields []*UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonCustomField ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonCustomField struct { - FieldName string `json:"field_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口查询 - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonDescription ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonDescription struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 名称信息的内容 -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonName ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonName struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 名称信息的内容 -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonType ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonTypeDisplay ... -type UpdateCoreHRDepartmentRespDepartmentHiberarchyCommonTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 名称信息的内容 -} - -// UpdateCoreHRDepartmentRespDepartmentStaffingModel ... -type UpdateCoreHRDepartmentRespDepartmentStaffingModel struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值: job、non_job、position - Display []*UpdateCoreHRDepartmentRespDepartmentStaffingModelDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRDepartmentRespDepartmentStaffingModelDisplay ... -type UpdateCoreHRDepartmentRespDepartmentStaffingModelDisplay struct { - Lang string `json:"lang,omitempty"` // 语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 内容 -} - -// UpdateCoreHRDepartmentRespDepartmentSubType ... -type UpdateCoreHRDepartmentRespDepartmentSubType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRDepartmentRespDepartmentSubTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRDepartmentRespDepartmentSubTypeDisplay ... -type UpdateCoreHRDepartmentRespDepartmentSubTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US。 - Value string `json:"value,omitempty"` // 名称信息的内容 } // updateCoreHRDepartmentResp ... diff --git a/api_corehr_department_update_v2.go b/api_corehr_department_update_v2.go index df47a4c6..105c3f5e 100644 --- a/api_corehr_department_update_v2.go +++ b/api_corehr_department_update_v2.go @@ -21,7 +21,7 @@ import ( "context" ) -// UpdateCorehrDepartment 更新部门, 支持数据行权限判权 +// UpdateCoreHRDepartmentV2 更新部门, 支持数据行权限判权 // // - 停用部门时, 请确认是否有与该部门关联的现任员工、变更文件、待入职。如果是这样, 停用将失败。 // - 如果启动/停止生效日期没有版本, 将自动生成版本。 @@ -29,99 +29,99 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/patch // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/department/patch -func (r *CoreHRService) UpdateCorehrDepartment(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrDepartment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrDepartment mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrDepartment(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRDepartmentV2(ctx context.Context, request *UpdateCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRDepartmentV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRDepartmentV2 mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRDepartmentV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrDepartment", + API: "UpdateCoreHRDepartmentV2", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/departments/:department_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrDepartmentResp) + resp := new(updateCoreHRDepartmentV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrDepartment mock CoreHRUpdateCorehrDepartment method -func (r *Mock) MockCoreHRUpdateCorehrDepartment(f func(ctx context.Context, request *UpdateCorehrDepartmentReq, options ...MethodOptionFunc) (*UpdateCorehrDepartmentResp, *Response, error)) { - r.mockCoreHRUpdateCorehrDepartment = f +// MockCoreHRUpdateCoreHRDepartmentV2 mock CoreHRUpdateCoreHRDepartmentV2 method +func (r *Mock) MockCoreHRUpdateCoreHRDepartmentV2(f func(ctx context.Context, request *UpdateCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentV2Resp, *Response, error)) { + r.mockCoreHRUpdateCoreHRDepartmentV2 = f } -// UnMockCoreHRUpdateCorehrDepartment un-mock CoreHRUpdateCorehrDepartment method -func (r *Mock) UnMockCoreHRUpdateCorehrDepartment() { - r.mockCoreHRUpdateCorehrDepartment = nil +// UnMockCoreHRUpdateCoreHRDepartmentV2 un-mock CoreHRUpdateCoreHRDepartmentV2 method +func (r *Mock) UnMockCoreHRUpdateCoreHRDepartmentV2() { + r.mockCoreHRUpdateCoreHRDepartmentV2 = nil } -// UpdateCorehrDepartmentReq ... -type UpdateCorehrDepartmentReq struct { - DepartmentID string `path:"department_id" json:"-"` // 需要更新的部门 ID示例值: "1616161616" - ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` - ID *string `json:"id,omitempty"` // 该字段暂时无效, 可忽略示例值: "4719456877659520852" - SubType *UpdateCorehrDepartmentReqSubType `json:"sub_type,omitempty"` // 部门类型, 通过[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 - Manager *string `json:"manager,omitempty"` // 部门负责人 ID详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: "6893013238632416776" - IsConfidential *bool `json:"is_confidential,omitempty"` // 是否保密(该字段暂不支持, 可忽略)示例值: true - HiberarchyCommon *UpdateCorehrDepartmentReqHiberarchyCommon `json:"hiberarchy_common,omitempty"` // 组织实体公共字段, 包括名称、描述、上级、启停用状态、生效日期、编码等基础信息 - EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD 00:00:00(系统会自动将时分秒改为00:00:00)- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 00:00:00~9999-12-31 23:59:59示例值: "2020-05-01 00:00:00" - CustomFields []*UpdateCorehrDepartmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取 长度范围: `0` ~ `100` - CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息示例值: "7142384817131652652" - StaffingModel *UpdateCorehrDepartmentReqStaffingModel `json:"staffing_model,omitempty"` // 岗职管理模式- 详细枚举类型请查看[枚举场景](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)中关于staffing_model定义 +// UpdateCoreHRDepartmentV2Req ... +type UpdateCoreHRDepartmentV2Req struct { + DepartmentID string `path:"department_id" json:"-"` // 需要更新的部门 ID示例值: "1616161616" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。飞书人事】用来标识「飞书人事」中的部门。默认值: `people_corehr_department_id` + ID *string `json:"id,omitempty"` // 该字段暂时无效, 可忽略示例值: "4719456877659520852" + SubType *UpdateCoreHRDepartmentV2ReqSubType `json:"sub_type,omitempty"` // 部门类型, 通过[获取字段详情](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)查询获取。请求参数: object_api_name=department;custom_api_name=subtype。 + Manager *string `json:"manager,omitempty"` // 部门负责人 ID详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取示例值: "6893013238632416776" + IsConfidential *bool `json:"is_confidential,omitempty"` // 是否保密(该字段暂不支持, 可忽略)示例值: true + HiberarchyCommon *UpdateCoreHRDepartmentV2ReqHiberarchyCommon `json:"hiberarchy_common,omitempty"` // 组织实体公共字段, 包括名称、描述、上级、启停用状态、生效日期、编码等基础信息 + EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD 00:00:00(系统会自动将时分秒改为00:00:00)- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01 00:00:00~9999-12-31 23:59:59示例值: "2020-05-01 00:00:00" + CustomFields []*UpdateCoreHRDepartmentV2ReqCustomField `json:"custom_fields,omitempty"` // 自定义字段, 枚举值可通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取 长度范围: `0` ~ `100` + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息示例值: "7142384817131652652" + StaffingModel *UpdateCoreHRDepartmentV2ReqStaffingModel `json:"staffing_model,omitempty"` // 岗职管理模式- 详细枚举类型请查看[枚举场景](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)中关于staffing_model定义 } -// UpdateCorehrDepartmentReqCustomField ... -type UpdateCorehrDepartmentReqCustomField struct { +// UpdateCoreHRDepartmentV2ReqCustomField ... +type UpdateCoreHRDepartmentV2ReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" Value string `json:"value,omitempty"` // 字段值, 为 JSON 转义后的字符串。注意: 具体传值方式参见[获取自定义字段的元数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "Sandy" } -// UpdateCorehrDepartmentReqHiberarchyCommon ... -type UpdateCorehrDepartmentReqHiberarchyCommon struct { - ParentID *string `json:"parent_id,omitempty"` // 上级组织示例值: "4719168654814483759" - Name []*UpdateCorehrDepartmentReqHiberarchyCommonName `json:"name,omitempty"` // 部门名称- 名称不能包含「/」「;」「;」「\」「'」字符。- 中英文名称会有重名校验规则(依赖租户配置规则) - Active *bool `json:"active,omitempty"` // 部门启用状态, true为启用, false为停用示例值: true - Code *string `json:"code,omitempty"` // 部门编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" - Description []*UpdateCorehrDepartmentReqHiberarchyCommonDescription `json:"description,omitempty"` // 描述 +// UpdateCoreHRDepartmentV2ReqHiberarchyCommon ... +type UpdateCoreHRDepartmentV2ReqHiberarchyCommon struct { + ParentID *string `json:"parent_id,omitempty"` // 上级组织示例值: "4719168654814483759" + Name []*UpdateCoreHRDepartmentV2ReqHiberarchyCommonName `json:"name,omitempty"` // 部门名称- 名称不能包含「/」「;」「;」「\」「'」字符。- 中英文名称会有重名校验规则(依赖租户配置规则) + Active *bool `json:"active,omitempty"` // 部门启用状态, true为启用, false为停用示例值: true + Code *string `json:"code,omitempty"` // 部门编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" + Description []*UpdateCoreHRDepartmentV2ReqHiberarchyCommonDescription `json:"description,omitempty"` // 描述 } -// UpdateCorehrDepartmentReqHiberarchyCommonDescription ... -type UpdateCorehrDepartmentReqHiberarchyCommonDescription struct { +// UpdateCoreHRDepartmentV2ReqHiberarchyCommonDescription ... +type UpdateCoreHRDepartmentV2ReqHiberarchyCommonDescription struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// UpdateCorehrDepartmentReqHiberarchyCommonName ... -type UpdateCorehrDepartmentReqHiberarchyCommonName struct { +// UpdateCoreHRDepartmentV2ReqHiberarchyCommonName ... +type UpdateCoreHRDepartmentV2ReqHiberarchyCommonName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// UpdateCorehrDepartmentReqStaffingModel ... -type UpdateCorehrDepartmentReqStaffingModel struct { +// UpdateCoreHRDepartmentV2ReqStaffingModel ... +type UpdateCoreHRDepartmentV2ReqStaffingModel struct { EnumName string `json:"enum_name,omitempty"` // 枚举值: job、position、non_job示例值: "job" } -// UpdateCorehrDepartmentReqSubType ... -type UpdateCorehrDepartmentReqSubType struct { +// UpdateCoreHRDepartmentV2ReqSubType ... +type UpdateCoreHRDepartmentV2ReqSubType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "department" } -// UpdateCorehrDepartmentResp ... -type UpdateCorehrDepartmentResp struct { +// UpdateCoreHRDepartmentV2Resp ... +type UpdateCoreHRDepartmentV2Resp struct { } -// updateCorehrDepartmentResp ... -type updateCorehrDepartmentResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrDepartmentResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateCoreHRDepartmentV2Resp ... +type updateCoreHRDepartmentV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCoreHRDepartmentV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_draft_get.go b/api_corehr_draft_get.go index 7baf4b43..aad32584 100644 --- a/api_corehr_draft_get.go +++ b/api_corehr_draft_get.go @@ -21,67 +21,67 @@ import ( "context" ) -// GetCorehrDraft 用户通过『飞书人事-我的团队/人员管理-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。之后用户可以通过组织架构调整 ID 查询对应的流程ID, 以及审批流状态。如需查询单个审批的详情数据, 可通过[根据流程 ID 查询组织架构调整记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get)获取。 +// GetCoreHRDraft 用户通过『飞书人事-我的团队/人员管理-组织架构』 发起一个组织架构调整会根据 审批流配置发起 一个或多个审批。之后用户可以通过组织架构调整 ID 查询对应的流程ID, 以及审批流状态。如需查询单个审批的详情数据, 可通过[根据流程 ID 查询组织架构调整记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get)获取。 // // - 用户使用该接口前需提前获取 根据组织架构调整 ID 获取组织架构调整流程信息 权限 // - 延迟说明: 数据库主从延迟2s以内, 即: 用户接收到流程状态变更消息后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/draft/get // new doc: https://open.feishu.cn/document/corehr-v1/approval_groups/get-2 -func (r *CoreHRService) GetCorehrDraft(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCorehrDraft != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrDraft mock enable") - return r.cli.mock.mockCoreHRGetCorehrDraft(ctx, request, options...) +func (r *CoreHRService) GetCoreHRDraft(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRDraft != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRDraft mock enable") + return r.cli.mock.mockCoreHRGetCoreHRDraft(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCorehrDraft", + API: "GetCoreHRDraft", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/drafts/:draft_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCorehrDraftResp) + resp := new(getCoreHRDraftResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCorehrDraft mock CoreHRGetCorehrDraft method -func (r *Mock) MockCoreHRGetCorehrDraft(f func(ctx context.Context, request *GetCorehrDraftReq, options ...MethodOptionFunc) (*GetCorehrDraftResp, *Response, error)) { - r.mockCoreHRGetCorehrDraft = f +// MockCoreHRGetCoreHRDraft mock CoreHRGetCoreHRDraft method +func (r *Mock) MockCoreHRGetCoreHRDraft(f func(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error)) { + r.mockCoreHRGetCoreHRDraft = f } -// UnMockCoreHRGetCorehrDraft un-mock CoreHRGetCorehrDraft method -func (r *Mock) UnMockCoreHRGetCorehrDraft() { - r.mockCoreHRGetCorehrDraft = nil +// UnMockCoreHRGetCoreHRDraft un-mock CoreHRGetCoreHRDraft method +func (r *Mock) UnMockCoreHRGetCoreHRDraft() { + r.mockCoreHRGetCoreHRDraft = nil } -// GetCorehrDraftReq ... -type GetCorehrDraftReq struct { +// GetCoreHRDraftReq ... +type GetCoreHRDraftReq struct { DraftID string `path:"draft_id" json:"-"` // 组织架构调整 ID。用户在「飞书人事-我的团队/人员管理 -组织架构-发起调整」时生成的唯一 ID, 可通过「组织架构调整状态变更事件」的事件获取示例值: "6893014062142064111" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } -// GetCorehrDraftResp ... -type GetCorehrDraftResp struct { +// GetCoreHRDraftResp ... +type GetCoreHRDraftResp struct { DraftID string `json:"draft_id,omitempty"` // 组织架构调整 ID DraftStatus string `json:"draft_status,omitempty"` // 组织架构调整状态可选值有: 编辑中, [(流程中的组织架构调整不会是该状态)] 该状态是指用户在『飞书人事-我的团队/人员管理-组织架构-发起调整』 中进行编辑时的状态。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。已完成, [该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 和 部门变更事件获取。 - 人员异动变更事件:[飞书人事-异动-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/job-change-events) - 部门变更事件: [飞书人事-组织管理-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已撤销, 用户主动撤销审批, 流程会进入已撤销状态。单次调整中的所有流程均为撤销态时, 调整才会流转为撤销态。 - ProcessInfos []*GetCorehrDraftRespProcessInfo `json:"process_infos,omitempty"` // 组织架构调整流程信息列表 + ProcessInfos []*GetCoreHRDraftRespProcessInfo `json:"process_infos,omitempty"` // 组织架构调整流程信息列表 } -// GetCorehrDraftRespProcessInfo ... -type GetCorehrDraftRespProcessInfo struct { +// GetCoreHRDraftRespProcessInfo ... +type GetCoreHRDraftRespProcessInfo struct { ProcessID string `json:"process_id,omitempty"` // 组织架构调整流程 ID。详情数据可通过[根据流程 ID 查询组织架构调整记录](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/approval_groups/get)获取。 ApprovalGroupStatus string `json:"approval_group_status,omitempty"` // 组织架构调整流程状态 [(不建议使用, 推荐使用draft_status)]可选值有: 待发起, 是指该审批单据还未成功发起。审批中, 流程成功发起, 并等待审批人审批。 可以通过『飞书人事-审批-我发起的』 / 『飞书人事-我的团队/人员管理-组织架构-调整记录』 找到审批单据。 审批通过, 该单据已通过审批, 调整记录等待写入。 一方面, 组织架构调整支持拆单功能, 同一个调整可能发起多个审批, 当前审批单可能依赖其他审批通过才能写入。已完成, [该状态不代表调整的记录生效完成] 由于记录可能是未来生效, 因此记录的状态需通过 人员异动变更事件 和 部门变更事件获取。 - 人员异动变更事件: [飞书人事-异动-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/job-change-events) - 部门变更事件: [飞书人事-组织管理-事件](/ssl:/ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/created) - 岗位变更事件: 【飞书人事-岗职务管理-岗位-事件】(岗位灰度内)已拒绝: 审批未通过。已撤销, 用户主动撤销审批, 流程会进入已撤销状态。 } -// getCorehrDraftResp ... -type getCorehrDraftResp struct { +// getCoreHRDraftResp ... +type getCoreHRDraftResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCorehrDraftResp `json:"data,omitempty"` + Data *GetCoreHRDraftResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employee_create.go b/api_corehr_employee_create.go index a006e79f..17d35738 100644 --- a/api_corehr_employee_create.go +++ b/api_corehr_employee_create.go @@ -21,83 +21,83 @@ import ( "context" ) -// CreateCorehrEmployee 支持在单个接口中进行人员全信息添加, 包括人员的基本信息, 雇佣信息, 入职任职记录及其他分组信息 +// CreateCoreHREmployee 支持在单个接口中进行人员全信息添加, 包括人员的基本信息, 雇佣信息, 入职任职记录及其他分组信息 // // - 此接口参数校验规则与【人事系统-人员档案配置】的校验规则一致, 字段是否必填以【人事系统-人员档案配置】为准。建议参照【飞书人事-我的团队-添加人员】页面来传参 // - 若开启工号自动编码规则则无需输入人员“工号”, 系统将自动进行工号生成;若手动输入工号, 则会按照手动输入工号内容进行人员档案建立 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/create // new doc: https://open.feishu.cn/document/corehr-v1/employee/create -func (r *CoreHRService) CreateCorehrEmployee(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrEmployee != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployee mock enable") - return r.cli.mock.mockCoreHRCreateCorehrEmployee(ctx, request, options...) +func (r *CoreHRService) CreateCoreHREmployee(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHREmployee != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHREmployee mock enable") + return r.cli.mock.mockCoreHRCreateCoreHREmployee(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrEmployee", + API: "CreateCoreHREmployee", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrEmployeeResp) + resp := new(createCoreHREmployeeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrEmployee mock CoreHRCreateCorehrEmployee method -func (r *Mock) MockCoreHRCreateCorehrEmployee(f func(ctx context.Context, request *CreateCorehrEmployeeReq, options ...MethodOptionFunc) (*CreateCorehrEmployeeResp, *Response, error)) { - r.mockCoreHRCreateCorehrEmployee = f +// MockCoreHRCreateCoreHREmployee mock CoreHRCreateCoreHREmployee method +func (r *Mock) MockCoreHRCreateCoreHREmployee(f func(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error)) { + r.mockCoreHRCreateCoreHREmployee = f } -// UnMockCoreHRCreateCorehrEmployee un-mock CoreHRCreateCorehrEmployee method -func (r *Mock) UnMockCoreHRCreateCorehrEmployee() { - r.mockCoreHRCreateCorehrEmployee = nil +// UnMockCoreHRCreateCoreHREmployee un-mock CoreHRCreateCoreHREmployee method +func (r *Mock) UnMockCoreHRCreateCoreHREmployee() { + r.mockCoreHRCreateCoreHREmployee = nil } -// CreateCorehrEmployeeReq ... -type CreateCorehrEmployeeReq struct { +// CreateCoreHREmployeeReq ... +type CreateCoreHREmployeeReq struct { ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等的进行更新操作, 格式为标准的 UUIDV4。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作。示例值: fe599b60-450f-46ff-b2ef-9f6675625b97 长度范围: `1` ~ `100` 字符 Rehire *bool `query:"rehire" json:"-"` // 是否为离职重聘- false: 系统直接标为非离职重聘人员, 不再做重复判断- true: 要求 rehire_employment_id示例值: true RehireEmploymentID *string `query:"rehire_employment_id" json:"-"` // 离职重聘员工雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: 7140964208476371111 ForceSubmit *bool `query:"force_submit" json:"-"` // 是否强制提交- true: 是, 跳过超编等校验- false: 否, 被拦截报错示例值: false默认值: `false` IgnoreWorkingHoursTypeRule *bool `query:"ignore_working_hours_type_rule" json:"-"` // 是否忽略工时制度自动生成规则- 值为 false 时, 以下字段必填: - emp_contract_record.first_party - employment_record.work_location - employment_record.employee_type - employment_record.job_family - employment_record.job - employment_record.job_level - employment_record.department示例值: true默认值: `false` - PersonalInfo *CreateCorehrEmployeeReqPersonalInfo `json:"personal_info,omitempty"` // 个人信息 - EmploymentInfo *CreateCorehrEmployeeReqEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 - Career *CreateCorehrEmployeeReqCareer `json:"career,omitempty"` // 履历信息 - DataAttachment *CreateCorehrEmployeeReqDataAttachment `json:"data_attachment,omitempty"` // 资料附件 + PersonalInfo *CreateCoreHREmployeeReqPersonalInfo `json:"personal_info,omitempty"` // 个人信息 + EmploymentInfo *CreateCoreHREmployeeReqEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 + Career *CreateCoreHREmployeeReqCareer `json:"career,omitempty"` // 履历信息 + DataAttachment *CreateCoreHREmployeeReqDataAttachment `json:"data_attachment,omitempty"` // 资料附件 } -// CreateCorehrEmployeeReqCareer ... -type CreateCorehrEmployeeReqCareer struct { +// CreateCoreHREmployeeReqCareer ... +type CreateCoreHREmployeeReqCareer struct { Educations []*EHREducation `json:"educations,omitempty"` // 教育经历 长度范围: `0` ~ `100` - WorkExperiences []*CreateCorehrEmployeeReqCareerWorkExperience `json:"work_experiences,omitempty"` // 工作经历 长度范围: `0` ~ `100` - CustomGroups []*CreateCorehrEmployeeReqCareerCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` + WorkExperiences []*CreateCoreHREmployeeReqCareerWorkExperience `json:"work_experiences,omitempty"` // 工作经历 长度范围: `0` ~ `100` + CustomGroups []*CreateCoreHREmployeeReqCareerCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqCareerCustomGroup ... -type CreateCorehrEmployeeReqCareerCustomGroup struct { +// CreateCoreHREmployeeReqCareerCustomGroup ... +type CreateCoreHREmployeeReqCareerCustomGroup struct { GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" - Items []*CreateCorehrEmployeeReqCareerCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` + Items []*CreateCoreHREmployeeReqCareerCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` } -// CreateCorehrEmployeeReqCareerCustomGroupItem ... -type CreateCorehrEmployeeReqCareerCustomGroupItem struct { - CustomFields []*CreateCorehrEmployeeReqCareerCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +// CreateCoreHREmployeeReqCareerCustomGroupItem ... +type CreateCoreHREmployeeReqCareerCustomGroupItem struct { + CustomFields []*CreateCoreHREmployeeReqCareerCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqCareerCustomGroupItemCustomField ... -type CreateCorehrEmployeeReqCareerCustomGroupItemCustomField struct { +// CreateCoreHREmployeeReqCareerCustomGroupItemCustomField ... +type CreateCoreHREmployeeReqCareerCustomGroupItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqCareerEducation ... -type CreateCorehrEmployeeReqCareerEducation struct { +// CreateCoreHREmployeeReqCareerEducation ... +type CreateCoreHREmployeeReqCareerEducation struct { School *string `json:"school,omitempty"` // 学校示例值: "北京大学" SchoolEnum *string `json:"school_enum,omitempty"` // 学校枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education" - custom_api_name = "school_name"示例值: "school-177" StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" @@ -106,87 +106,87 @@ type CreateCorehrEmployeeReqCareerEducation struct { FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "软件工程" Degree *string `json:"degree,omitempty"` // 学位枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education" - custom_api_name = "degree"示例值: "bachelors_degree" FieldOfStudyEnum *string `json:"field_of_study_enum,omitempty"` // 专业枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "education"- custom_api_name = "field_of_study_name"示例值: "field_of_study-2" - CustomFields []*CreateCorehrEmployeeReqCareerEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqCareerEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqCareerEducationCustomField ... -type CreateCorehrEmployeeReqCareerEducationCustomField struct { +// CreateCoreHREmployeeReqCareerEducationCustomField ... +type CreateCoreHREmployeeReqCareerEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqCareerWorkExperience ... -type CreateCorehrEmployeeReqCareerWorkExperience struct { - CompanyOrganization *CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department *CreateCorehrEmployeeReqCareerWorkExperienceDepartment `json:"department,omitempty"` // 部门 +// CreateCoreHREmployeeReqCareerWorkExperience ... +type CreateCoreHREmployeeReqCareerWorkExperience struct { + CompanyOrganization *CreateCoreHREmployeeReqCareerWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department *CreateCoreHREmployeeReqCareerWorkExperienceDepartment `json:"department,omitempty"` // 部门 StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-02-01" - Job *CreateCorehrEmployeeReqCareerWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description *CreateCorehrEmployeeReqCareerWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - CustomFields []*CreateCorehrEmployeeReqCareerWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + Job *CreateCoreHREmployeeReqCareerWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description *CreateCoreHREmployeeReqCareerWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + CustomFields []*CreateCoreHREmployeeReqCareerWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization ... -type CreateCorehrEmployeeReqCareerWorkExperienceCompanyOrganization struct { +// CreateCoreHREmployeeReqCareerWorkExperienceCompanyOrganization ... +type CreateCoreHREmployeeReqCareerWorkExperienceCompanyOrganization struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" } -// CreateCorehrEmployeeReqCareerWorkExperienceCustomField ... -type CreateCorehrEmployeeReqCareerWorkExperienceCustomField struct { +// CreateCoreHREmployeeReqCareerWorkExperienceCustomField ... +type CreateCoreHREmployeeReqCareerWorkExperienceCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqCareerWorkExperienceDepartment ... -type CreateCorehrEmployeeReqCareerWorkExperienceDepartment struct { +// CreateCoreHREmployeeReqCareerWorkExperienceDepartment ... +type CreateCoreHREmployeeReqCareerWorkExperienceDepartment struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" } -// CreateCorehrEmployeeReqCareerWorkExperienceDescription ... -type CreateCorehrEmployeeReqCareerWorkExperienceDescription struct { +// CreateCoreHREmployeeReqCareerWorkExperienceDescription ... +type CreateCoreHREmployeeReqCareerWorkExperienceDescription struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" } -// CreateCorehrEmployeeReqCareerWorkExperienceJob ... -type CreateCorehrEmployeeReqCareerWorkExperienceJob struct { +// CreateCoreHREmployeeReqCareerWorkExperienceJob ... +type CreateCoreHREmployeeReqCareerWorkExperienceJob struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "中文名" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "english name" } -// CreateCorehrEmployeeReqDataAttachment ... -type CreateCorehrEmployeeReqDataAttachment struct { - PersonalRecords []*CreateCorehrEmployeeReqDataAttachmentPersonalRecord `json:"personal_records,omitempty"` // 资料附件记录 长度范围: `0` ~ `100` - CustomGroups []*CreateCorehrEmployeeReqDataAttachmentCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` +// CreateCoreHREmployeeReqDataAttachment ... +type CreateCoreHREmployeeReqDataAttachment struct { + PersonalRecords []*CreateCoreHREmployeeReqDataAttachmentPersonalRecord `json:"personal_records,omitempty"` // 资料附件记录 长度范围: `0` ~ `100` + CustomGroups []*CreateCoreHREmployeeReqDataAttachmentCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqDataAttachmentCustomGroup ... -type CreateCorehrEmployeeReqDataAttachmentCustomGroup struct { +// CreateCoreHREmployeeReqDataAttachmentCustomGroup ... +type CreateCoreHREmployeeReqDataAttachmentCustomGroup struct { GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" - Items []*CreateCorehrEmployeeReqDataAttachmentCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` + Items []*CreateCoreHREmployeeReqDataAttachmentCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` } -// CreateCorehrEmployeeReqDataAttachmentCustomGroupItem ... -type CreateCorehrEmployeeReqDataAttachmentCustomGroupItem struct { - CustomFields []*CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +// CreateCoreHREmployeeReqDataAttachmentCustomGroupItem ... +type CreateCoreHREmployeeReqDataAttachmentCustomGroupItem struct { + CustomFields []*CreateCoreHREmployeeReqDataAttachmentCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField ... -type CreateCorehrEmployeeReqDataAttachmentCustomGroupItemCustomField struct { +// CreateCoreHREmployeeReqDataAttachmentCustomGroupItemCustomField ... +type CreateCoreHREmployeeReqDataAttachmentCustomGroupItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqDataAttachmentPersonalRecord ... -type CreateCorehrEmployeeReqDataAttachmentPersonalRecord struct { +// CreateCoreHREmployeeReqDataAttachmentPersonalRecord ... +type CreateCoreHREmployeeReqDataAttachmentPersonalRecord struct { ProfileType *string `json:"profile_type,omitempty"` // 资料类型- 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name = "personal_profile" - custom_api_name = "profile_type"- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用示例值: "profile_type_1" - Files []*CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile `json:"files,omitempty"` // 文件列表 长度范围: `0` ~ `100` + Files []*CreateCoreHREmployeeReqDataAttachmentPersonalRecordFile `json:"files,omitempty"` // 文件列表 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile ... -type CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile struct { +// CreateCoreHREmployeeReqDataAttachmentPersonalRecordFile ... +type CreateCoreHREmployeeReqDataAttachmentPersonalRecordFile struct { FileID *string `json:"file_id,omitempty"` // 文件 ID- 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口获取- 只传该字段即可, 大小、类型等字段可以不传递示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" MimeType *string `json:"mime_type,omitempty"` // 文件 MIME 类型示例值: "zip" Name *string `json:"name,omitempty"` // 文件名示例值: "附件.zip" @@ -194,102 +194,102 @@ type CreateCorehrEmployeeReqDataAttachmentPersonalRecordFile struct { Token *string `json:"token,omitempty"` // 文件 Token示例值: "0a423bc7ea7c4a439d066bf070616782" } -// CreateCorehrEmployeeReqEmploymentInfo ... -type CreateCorehrEmployeeReqEmploymentInfo struct { - BasicInfo *CreateCorehrEmployeeReqEmploymentInfoBasicInfo `json:"basic_info,omitempty"` // 基本信息 - ProbationInfo *CreateCorehrEmployeeReqEmploymentInfoProbationInfo `json:"probation_info,omitempty"` // 试用期信息 - EmploymentRecord *CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord `json:"employment_record,omitempty"` // 任职记录 - EmpContractRecord *CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord `json:"emp_contract_record,omitempty"` // 合同记录 - CustomGroups []*CreateCorehrEmployeeReqEmploymentInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` - CustomOrgGroups []*CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup `json:"custom_org_groups,omitempty"` // 自定义组织记录 - SeniorityAdjustInformations []*CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_informations,omitempty"` // 司龄调整信息 长度范围: `0` ~ `100` - DefaultCostCenter *CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心 - CostAllocation *CreateCorehrEmployeeReqEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 +// CreateCoreHREmployeeReqEmploymentInfo ... +type CreateCoreHREmployeeReqEmploymentInfo struct { + BasicInfo *CreateCoreHREmployeeReqEmploymentInfoBasicInfo `json:"basic_info,omitempty"` // 基本信息 + ProbationInfo *CreateCoreHREmployeeReqEmploymentInfoProbationInfo `json:"probation_info,omitempty"` // 试用期信息 + EmploymentRecord *CreateCoreHREmployeeReqEmploymentInfoEmploymentRecord `json:"employment_record,omitempty"` // 任职记录 + EmpContractRecord *CreateCoreHREmployeeReqEmploymentInfoEmpContractRecord `json:"emp_contract_record,omitempty"` // 合同记录 + CustomGroups []*CreateCoreHREmployeeReqEmploymentInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` + CustomOrgGroups []*CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroup `json:"custom_org_groups,omitempty"` // 自定义组织记录 + SeniorityAdjustInformations []*CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_informations,omitempty"` // 司龄调整信息 长度范围: `0` ~ `100` + DefaultCostCenter *CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心 + CostAllocation *CreateCoreHREmployeeReqEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊 } -// CreateCorehrEmployeeReqEmploymentInfoBasicInfo ... -type CreateCorehrEmployeeReqEmploymentInfoBasicInfo struct { +// CreateCoreHREmployeeReqEmploymentInfoBasicInfo ... +type CreateCoreHREmployeeReqEmploymentInfoBasicInfo struct { EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号示例值: "1000000" EffectiveTime *string `json:"effective_time,omitempty"` // 入职日期示例值: "2021-01-01" RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期示例值: "2021-02-01" SeniorityDate *string `json:"seniority_date,omitempty"` // 资历起算日期示例值: "2020-01-01" WorkEmail *string `json:"work_email,omitempty"` // 工作邮箱示例值: "12456@test.com" - Phone *CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone `json:"phone,omitempty"` // 工作电话 + Phone *CreateCoreHREmployeeReqEmploymentInfoBasicInfoPhone `json:"phone,omitempty"` // 工作电话 UserGeo *string `json:"user_geo,omitempty"` // 数据驻留地开通了飞书数据驻留服务的企业, 该字段为必填示例值: "cn" - CustomFields []*CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqEmploymentInfoBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField ... -type CreateCorehrEmployeeReqEmploymentInfoBasicInfoCustomField struct { +// CreateCoreHREmployeeReqEmploymentInfoBasicInfoCustomField ... +type CreateCoreHREmployeeReqEmploymentInfoBasicInfoCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)示例值: "123" } -// CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone ... -type CreateCorehrEmployeeReqEmploymentInfoBasicInfoPhone struct { +// CreateCoreHREmployeeReqEmploymentInfoBasicInfoPhone ... +type CreateCoreHREmployeeReqEmploymentInfoBasicInfoPhone struct { InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了工作电话对象, 则该字段必填示例值: "13000000000" } -// CreateCorehrEmployeeReqEmploymentInfoCostAllocation ... -type CreateCorehrEmployeeReqEmploymentInfoCostAllocation struct { +// CreateCoreHREmployeeReqEmploymentInfoCostAllocation ... +type CreateCoreHREmployeeReqEmploymentInfoCostAllocation struct { EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" - CostCenterRates []*CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` + CostCenterRates []*CreateCoreHREmployeeReqEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` } -// CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate ... -type CreateCorehrEmployeeReqEmploymentInfoCostAllocationCostCenterRate struct { +// CreateCoreHREmployeeReqEmploymentInfoCostAllocationCostCenterRate ... +type CreateCoreHREmployeeReqEmploymentInfoCostAllocationCostCenterRate struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息示例值: "6950635856373745165" Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 } -// CreateCorehrEmployeeReqEmploymentInfoCustomGroup ... -type CreateCorehrEmployeeReqEmploymentInfoCustomGroup struct { +// CreateCoreHREmployeeReqEmploymentInfoCustomGroup ... +type CreateCoreHREmployeeReqEmploymentInfoCustomGroup struct { GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" - Items []*CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` + Items []*CreateCoreHREmployeeReqEmploymentInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` } -// CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem ... -type CreateCorehrEmployeeReqEmploymentInfoCustomGroupItem struct { - CustomFields []*CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +// CreateCoreHREmployeeReqEmploymentInfoCustomGroupItem ... +type CreateCoreHREmployeeReqEmploymentInfoCustomGroupItem struct { + CustomFields []*CreateCoreHREmployeeReqEmploymentInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField ... -type CreateCorehrEmployeeReqEmploymentInfoCustomGroupItemCustomField struct { +// CreateCoreHREmployeeReqEmploymentInfoCustomGroupItemCustomField ... +type CreateCoreHREmployeeReqEmploymentInfoCustomGroupItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup ... -type CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroup struct { +// CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroup ... +type CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroup struct { EffectiveTime string `json:"effective_time,omitempty"` // 生效时间示例值: "2024-07-02" StartReason *string `json:"start_reason,omitempty"` // 原因示例值: "新增人员" 最大长度: `1000` 字符 - CustomOrgWithRates []*CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate `json:"custom_org_with_rates,omitempty"` // 自定义组织列表 长度范围: `1` ~ `100` + CustomOrgWithRates []*CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate `json:"custom_org_with_rates,omitempty"` // 自定义组织列表 长度范围: `1` ~ `100` ObjectApiName string `json:"object_api_name,omitempty"` // 自定义组织类型示例值: "custom_org_01" } -// CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate ... -type CreateCorehrEmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate struct { +// CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate ... +type CreateCoreHREmployeeReqEmploymentInfoCustomOrgGroupCustomOrgWithRate struct { ID string `json:"id,omitempty"` // 自定义组织ID示例值: "7260357352426782739" Rate *float64 `json:"rate,omitempty"` // 比例 如果是非比例的可不填写示例值: 50.1 取值范围: `0` ~ `100` } -// CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter ... -type CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenter struct { +// CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenter ... +type CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenter struct { Reason *string `json:"reason,omitempty"` // 变更原因示例值: "默认成本中心变更" IsInherit *bool `json:"is_inherit,omitempty"` // 是否继承示例值: true - CostCenterID *CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID `json:"cost_center_id,omitempty"` // 默认成本中心 + CostCenterID *CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenterCostCenterID `json:"cost_center_id,omitempty"` // 默认成本中心 } -// CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID ... -type CreateCorehrEmployeeReqEmploymentInfoDefaultCostCenterCostCenterID struct { +// CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenterCostCenterID ... +type CreateCoreHREmployeeReqEmploymentInfoDefaultCostCenterCostCenterID struct { WkID *string `json:"wk_id,omitempty"` // 成本中心示例值: "7382048365313261588" } -// CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord ... -type CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord struct { +// CreateCoreHREmployeeReqEmploymentInfoEmpContractRecord ... +type CreateCoreHREmployeeReqEmploymentInfoEmpContractRecord struct { ContractNumber *string `json:"contract_number,omitempty"` // 合同协议编号示例值: "6919737965274990093" ContractType *string `json:"contract_type,omitempty"` // 合同类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "contract" - custom_api_name = "contract_type"示例值: "labor_contract" FirstParty *string `json:"first_party,omitempty"` // 甲方公司 ID引用 Company 的 ID, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6892686614112241165" @@ -298,13 +298,13 @@ type CreateCorehrEmployeeReqEmploymentInfoEmpContractRecord struct { ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期示例值: "2050-01-01" } -// CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord ... -type CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord struct { +// CreateCoreHREmployeeReqEmploymentInfoEmploymentRecord ... +type CreateCoreHREmployeeReqEmploymentInfoEmploymentRecord struct { EmployeeType *EmployeeType `json:"employee_type,omitempty"` // 人员类型 ID可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "6890452208593372679" Department *string `json:"department,omitempty"` // 部门 ID可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6890452208593372679" DirectManager *string `json:"direct_manager,omitempty"` // 直属上级雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6893014062142064135" WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度 ID可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6890452208593372600" - CostCenters []*CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter `json:"cost_centers,omitempty"` // 成本中心分摊信息 长度范围: `0` ~ `100` + CostCenters []*CreateCoreHREmployeeReqEmploymentInfoEmploymentRecordCostCenter `json:"cost_centers,omitempty"` // 成本中心分摊信息 长度范围: `0` ~ `100` DirectManagerEffectiveTime *string `json:"direct_manager_effective_time,omitempty"` // 直属上级入职日期示例值: "2020-01-01" DottedLineManager *string `json:"dotted_line_manager,omitempty"` // 虚线上级雇佣 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6893014062142064136" DottedLineManagerEffectiveTime *string `json:"dotted_line_manager_effective_time,omitempty"` // 虚线上级入职日期示例值: "2020-01-01" @@ -318,51 +318,51 @@ type CreateCorehrEmployeeReqEmploymentInfoEmploymentRecord struct { Pathway *string `json:"pathway,omitempty"` // 通道ID示例值: "6890452208593372684" } -// CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter ... -type CreateCorehrEmployeeReqEmploymentInfoEmploymentRecordCostCenter struct { +// CreateCoreHREmployeeReqEmploymentInfoEmploymentRecordCostCenter ... +type CreateCoreHREmployeeReqEmploymentInfoEmploymentRecordCostCenter struct { ID *string `json:"id,omitempty"` // 支持的成本中心 ID, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" Rate *int64 `json:"rate,omitempty"` // 分摊比例示例值: 100 取值范围: `0` ~ `100` } -// CreateCorehrEmployeeReqEmploymentInfoProbationInfo ... -type CreateCorehrEmployeeReqEmploymentInfoProbationInfo struct { +// CreateCoreHREmployeeReqEmploymentInfoProbationInfo ... +type CreateCoreHREmployeeReqEmploymentInfoProbationInfo struct { ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期示例值: "2021-01-01" ProbationExpectedEndDate *string `json:"probation_expected_end_date,omitempty"` // 试用期预计结束日期示例值: "2021-02-01" ActualProbationEndDate *string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期示例值: "2021-02-01" } -// CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation ... -type CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformation struct { +// CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformation ... +type CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformation struct { SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "increase"可选值有: 增加减少 StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-01-01" EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 调整原因示例值: "工厂停产需要减去半年工龄" SeniorityAdjustment float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年示例值: 1.01 取值范围: `0` ~ `100` - CustomFields []*CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` + CustomFields []*CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` } -// CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField ... -type CreateCorehrEmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField struct { +// CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField ... +type CreateCoreHREmployeeReqEmploymentInfoSeniorityAdjustInformationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考【操作手册】如何通过 OpenAPI 维护自定义字段示例值: "[\"custom_enum_0__c\"]" } -// CreateCorehrEmployeeReqPersonalInfo ... -type CreateCorehrEmployeeReqPersonalInfo struct { - PersonalBasicInfo *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo `json:"personal_basic_info,omitempty"` // 基本信息 +// CreateCoreHREmployeeReqPersonalInfo ... +type CreateCoreHREmployeeReqPersonalInfo struct { + PersonalBasicInfo *CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfo `json:"personal_basic_info,omitempty"` // 基本信息 EmergencyContacts []*EHREmergencyContact `json:"emergency_contacts,omitempty"` // 紧急联系人 长度范围: `0` ~ `100` - BankAccounts []*CreateCorehrEmployeeReqPersonalInfoBankAccount `json:"bank_accounts,omitempty"` // 银行账户 长度范围: `0` ~ `100` - Nationals []*CreateCorehrEmployeeReqPersonalInfoNational `json:"nationals,omitempty"` // 证件 长度范围: `0` ~ `100` - ResidentTaxes []*CreateCorehrEmployeeReqPersonalInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息 长度范围: `0` ~ `100` - Dependents []*CreateCorehrEmployeeReqPersonalInfoDependent `json:"dependents,omitempty"` // 家庭成员 长度范围: `0` ~ `100` - Hukou *CreateCorehrEmployeeReqPersonalInfoHukou `json:"hukou,omitempty"` // 户口 - ContactAddresses []*CreateCorehrEmployeeReqPersonalInfoContactAddresse `json:"contact_addresses,omitempty"` // 联系地址 长度范围: `0` ~ `100` - CustomGroups []*CreateCorehrEmployeeReqPersonalInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` - CitizenshipStatuses []*CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse `json:"citizenship_statuses,omitempty"` // 公民身份列表 -} - -// CreateCorehrEmployeeReqPersonalInfoBankAccount ... -type CreateCorehrEmployeeReqPersonalInfoBankAccount struct { + BankAccounts []*CreateCoreHREmployeeReqPersonalInfoBankAccount `json:"bank_accounts,omitempty"` // 银行账户 长度范围: `0` ~ `100` + Nationals []*CreateCoreHREmployeeReqPersonalInfoNational `json:"nationals,omitempty"` // 证件 长度范围: `0` ~ `100` + ResidentTaxes []*CreateCoreHREmployeeReqPersonalInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息 长度范围: `0` ~ `100` + Dependents []*CreateCoreHREmployeeReqPersonalInfoDependent `json:"dependents,omitempty"` // 家庭成员 长度范围: `0` ~ `100` + Hukou *CreateCoreHREmployeeReqPersonalInfoHukou `json:"hukou,omitempty"` // 户口 + ContactAddresses []*CreateCoreHREmployeeReqPersonalInfoContactAddresse `json:"contact_addresses,omitempty"` // 联系地址 长度范围: `0` ~ `100` + CustomGroups []*CreateCoreHREmployeeReqPersonalInfoCustomGroup `json:"custom_groups,omitempty"` // 自定义分组 长度范围: `0` ~ `100` + CitizenshipStatuses []*CreateCoreHREmployeeReqPersonalInfoCitizenshipStatuse `json:"citizenship_statuses,omitempty"` // 公民身份列表 +} + +// CreateCoreHREmployeeReqPersonalInfoBankAccount ... +type CreateCoreHREmployeeReqPersonalInfoBankAccount struct { CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" @@ -378,14 +378,14 @@ type CreateCorehrEmployeeReqPersonalInfoBankAccount struct { Priority *string `json:"priority,omitempty"` // 优先级, 不能低于0示例值: "1" } -// CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse ... -type CreateCorehrEmployeeReqPersonalInfoCitizenshipStatuse struct { +// CreateCoreHREmployeeReqPersonalInfoCitizenshipStatuse ... +type CreateCoreHREmployeeReqPersonalInfoCitizenshipStatuse struct { CountryRegion *string `json:"country_region,omitempty"` // 国家/地区ID示例值: "7324333990030034476" CitizenshipStatus *string `json:"citizenship_status,omitempty"` // 公民身份类型示例值: "公民" } -// CreateCorehrEmployeeReqPersonalInfoContactAddresse ... -type CreateCorehrEmployeeReqPersonalInfoContactAddresse struct { +// CreateCoreHREmployeeReqPersonalInfoContactAddresse ... +type CreateCoreHREmployeeReqPersonalInfoContactAddresse struct { AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了地址对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" @@ -418,39 +418,39 @@ type CreateCorehrEmployeeReqPersonalInfoContactAddresse struct { AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" } -// CreateCorehrEmployeeReqPersonalInfoCustomGroup ... -type CreateCorehrEmployeeReqPersonalInfoCustomGroup struct { +// CreateCoreHREmployeeReqPersonalInfoCustomGroup ... +type CreateCoreHREmployeeReqPersonalInfoCustomGroup struct { GroupName *string `json:"group_name,omitempty"` // 分组名示例值: "custom_obj__c" - Items []*CreateCorehrEmployeeReqPersonalInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` + Items []*CreateCoreHREmployeeReqPersonalInfoCustomGroupItem `json:"items,omitempty"` // 分组数据 长度范围: `0` ~ `1000` } -// CreateCorehrEmployeeReqPersonalInfoCustomGroupItem ... -type CreateCorehrEmployeeReqPersonalInfoCustomGroupItem struct { - CustomFields []*CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` +// CreateCoreHREmployeeReqPersonalInfoCustomGroupItem ... +type CreateCoreHREmployeeReqPersonalInfoCustomGroupItem struct { + CustomFields []*CreateCoreHREmployeeReqPersonalInfoCustomGroupItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField ... -type CreateCorehrEmployeeReqPersonalInfoCustomGroupItemCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoCustomGroupItemCustomField ... +type CreateCoreHREmployeeReqPersonalInfoCustomGroupItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoDependent ... -type CreateCorehrEmployeeReqPersonalInfoDependent struct { +// CreateCoreHREmployeeReqPersonalInfoDependent ... +type CreateCoreHREmployeeReqPersonalInfoDependent struct { LegalName *string `json:"legal_name,omitempty"` // 姓名示例值: "王大帅" DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2006-01-02" RelationshipWithDependent *string `json:"relationship_with_dependent,omitempty"` // 关系如果填写了家庭成员对象, 则该字段必填枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "dependent" - custom_api_name ="relationship_with_dependent"示例值: "parent" Gender *string `json:"gender,omitempty"` // 性别枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "dependent" - custom_api_name = "gender"示例值: "female" - Phone *CreateCorehrEmployeeReqPersonalInfoDependentPhone `json:"phone,omitempty"` // 电话 + Phone *CreateCoreHREmployeeReqPersonalInfoDependentPhone `json:"phone,omitempty"` // 电话 Job *string `json:"job,omitempty"` // 岗位示例值: "岗位" - ChildBirthCertificates []*CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate `json:"child_birth_certificates,omitempty"` // 出生证明 长度范围: `0` ~ `100` + ChildBirthCertificates []*CreateCoreHREmployeeReqPersonalInfoDependentChildBirthCertificate `json:"child_birth_certificates,omitempty"` // 出生证明 长度范围: `0` ~ `100` Employer *string `json:"employer,omitempty"` // 工作单位示例值: "飞书" - CustomFields []*CreateCorehrEmployeeReqPersonalInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` - Address *CreateCorehrEmployeeReqPersonalInfoDependentAddress `json:"address,omitempty"` // 联系地址 + CustomFields []*CreateCoreHREmployeeReqPersonalInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + Address *CreateCoreHREmployeeReqPersonalInfoDependentAddress `json:"address,omitempty"` // 联系地址 } -// CreateCorehrEmployeeReqPersonalInfoDependentAddress ... -type CreateCorehrEmployeeReqPersonalInfoDependentAddress struct { +// CreateCoreHREmployeeReqPersonalInfoDependentAddress ... +type CreateCoreHREmployeeReqPersonalInfoDependentAddress struct { AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" @@ -483,8 +483,8 @@ type CreateCorehrEmployeeReqPersonalInfoDependentAddress struct { AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" } -// CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate ... -type CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate struct { +// CreateCoreHREmployeeReqPersonalInfoDependentChildBirthCertificate ... +type CreateCoreHREmployeeReqPersonalInfoDependentChildBirthCertificate struct { FileID *string `json:"file_id,omitempty"` // 文件 ID- 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口获取- 只传该字段即可, 大小、类型等字段可以不传递示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" MimeType *string `json:"mime_type,omitempty"` // 文件 MIME 类型示例值: "zip" Name *string `json:"name,omitempty"` // 文件名示例值: "附件.zip" @@ -492,31 +492,31 @@ type CreateCorehrEmployeeReqPersonalInfoDependentChildBirthCertificate struct { Token *string `json:"token,omitempty"` // 文件 Token示例值: "0a423bc7ea7c4a439d066bf070616782" } -// CreateCorehrEmployeeReqPersonalInfoDependentCustomField ... -type CreateCorehrEmployeeReqPersonalInfoDependentCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoDependentCustomField ... +type CreateCoreHREmployeeReqPersonalInfoDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoDependentPhone ... -type CreateCorehrEmployeeReqPersonalInfoDependentPhone struct { +// CreateCoreHREmployeeReqPersonalInfoDependentPhone ... +type CreateCoreHREmployeeReqPersonalInfoDependentPhone struct { InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码示例值: "13000000000" } -// CreateCorehrEmployeeReqPersonalInfoEmergencyContact ... -type CreateCorehrEmployeeReqPersonalInfoEmergencyContact struct { +// CreateCoreHREmployeeReqPersonalInfoEmergencyContact ... +type CreateCoreHREmployeeReqPersonalInfoEmergencyContact struct { LegalName *string `json:"legal_name,omitempty"` // 姓名示例值: "王大帅" Relationship *string `json:"relationship,omitempty"` // 关系枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "emergency_contact" - custom_api_name = "relationship"示例值: "parent" IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人示例值: true - Phone *CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone `json:"phone,omitempty"` // 电话 + Phone *CreateCoreHREmployeeReqPersonalInfoEmergencyContactPhone `json:"phone,omitempty"` // 电话 Email *string `json:"email,omitempty"` // 邮箱示例值: "1234567@example.feishu.cn" - Address *CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress `json:"address,omitempty"` // 地址 - CustomFields []*CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + Address *CreateCoreHREmployeeReqPersonalInfoEmergencyContactAddress `json:"address,omitempty"` // 地址 + CustomFields []*CreateCoreHREmployeeReqPersonalInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress ... -type CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress struct { +// CreateCoreHREmployeeReqPersonalInfoEmergencyContactAddress ... +type CreateCoreHREmployeeReqPersonalInfoEmergencyContactAddress struct { AddressType *string `json:"address_type,omitempty"` // 地址类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "address" - custom_api_name = "address_type"示例值: "home_address" CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了地址对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" Region *string `json:"region,omitempty"` // 主要行政区 ID可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6863326815667095047" @@ -549,57 +549,57 @@ type CreateCorehrEmployeeReqPersonalInfoEmergencyContactAddress struct { AddressLine5 *string `json:"address_line_5,omitempty"` // 地址行 5示例值: "jmwJc" } -// CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField ... -type CreateCorehrEmployeeReqPersonalInfoEmergencyContactCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoEmergencyContactCustomField ... +type CreateCoreHREmployeeReqPersonalInfoEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone ... -type CreateCorehrEmployeeReqPersonalInfoEmergencyContactPhone struct { +// CreateCoreHREmployeeReqPersonalInfoEmergencyContactPhone ... +type CreateCoreHREmployeeReqPersonalInfoEmergencyContactPhone struct { InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了电话对象, 则该字段必填示例值: "13000000000" } -// CreateCorehrEmployeeReqPersonalInfoHukou ... -type CreateCorehrEmployeeReqPersonalInfoHukou struct { +// CreateCoreHREmployeeReqPersonalInfoHukou ... +type CreateCoreHREmployeeReqPersonalInfoHukou struct { HukouType *string `json:"hukou_type,omitempty"` // 户口类型枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_info_chn" - custom_api_name = "hukou_type"示例值: "local_urban_residence" HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京" - CustomFields []*CreateCorehrEmployeeReqPersonalInfoHukouCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqPersonalInfoHukouCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqPersonalInfoHukouCustomField ... -type CreateCorehrEmployeeReqPersonalInfoHukouCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoHukouCustomField ... +type CreateCoreHREmployeeReqPersonalInfoHukouCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoNational ... -type CreateCorehrEmployeeReqPersonalInfoNational struct { +// CreateCoreHREmployeeReqPersonalInfoNational ... +type CreateCoreHREmployeeReqPersonalInfoNational struct { CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了证件对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" NationalIDType *string `json:"national_id_type,omitempty"` // 国家证件类型 ID如果填写了证件对象, 则该字段必填可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获取示例值: "6863330041896371725" NationalIDNumber *string `json:"national_id_number,omitempty"` // 证件号码如果填写了证件对象, 则该字段必填示例值: "1231131333" IssuedDate *string `json:"issued_date,omitempty"` // 证件签发日期示例值: "2020-04-01" IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CustomFields []*CreateCorehrEmployeeReqPersonalInfoNationalCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqPersonalInfoNationalCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqPersonalInfoNationalCustomField ... -type CreateCorehrEmployeeReqPersonalInfoNationalCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoNationalCustomField ... +type CreateCoreHREmployeeReqPersonalInfoNationalCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo ... -type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo struct { - LegalName *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName `json:"legal_name,omitempty"` // 法定姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) - PreferredName *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName `json:"preferred_name,omitempty"` // 常用姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) +// CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfo ... +type CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfo struct { + LegalName *CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoLegalName `json:"legal_name,omitempty"` // 法定姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) + PreferredName *CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPreferredName `json:"preferred_name,omitempty"` // 常用姓名。- [【飞书人事姓名填写规则】](https://bytedance.larkoffice.com/wiki/Am1Zwgjj0imm8OkfICucBqRDnbh) AdditionalName *string `json:"additional_name,omitempty"` // 别名示例值: "王帅" Gender *string `json:"gender,omitempty"` // 性别枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "gender"示例值: "female" NationalityV2 *string `json:"nationality_v2,omitempty"` // 国籍 ID可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914826" EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "ethnicity_race"示例值: "han" - Phone *CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone `json:"phone,omitempty"` // 个人电话 + Phone *CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPhone `json:"phone,omitempty"` // 个人电话 Email *string `json:"email,omitempty"` // 个人邮箱示例值: "1234567@example.feishu.cn" DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2006-01-02" MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person" - custom_api_name = "marital_status"示例值: "married" @@ -614,18 +614,18 @@ type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfo struct { DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2006-01-02" FirstEntryTime *string `json:"first_entry_time,omitempty"` // 首次入境日期示例值: "2006-01-02" LeaveTime *string `json:"leave_time,omitempty"` // 预计离境日期示例值: "2006-01-02" - CustomFields []*CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` AdditionalNationalities []string `json:"additional_nationalities,omitempty"` // 其他国籍(地区)ID示例值: ["6862995757234914827"] } -// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField ... -type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoCustomField ... +type CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName ... -type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName struct { +// CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoLegalName ... +type CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoLegalName struct { AdditionalNameType *string `json:"additional_name_type,omitempty"` // 补充姓名类型枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name"- custom_api_name = "additional_name_type"示例值: "emergency_contact_name" CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了法定姓名对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" @@ -647,14 +647,14 @@ type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoLegalName struct { NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" } -// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone ... -type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPhone struct { +// CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPhone ... +type CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPhone struct { InternationalAreaCode *string `json:"international_area_code,omitempty"` // 国际电话区号枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone" - custom_api_name = "international_area_code"示例值: "86_china" PhoneNumber *string `json:"phone_number,omitempty"` // 电话号码如果填写了个人电话对象, 则该字段必填示例值: "13000000000" } -// CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName ... -type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName struct { +// CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPreferredName ... +type CreateCoreHREmployeeReqPersonalInfoPersonalBasicInfoPreferredName struct { AdditionalNameType *string `json:"additional_name_type,omitempty"` // 补充姓名类型枚举值可以通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person_name" - custom_api_name = "additional_name_type"示例值: "emergency_contact_name" CountryRegion *string `json:"country_region,omitempty"` // 国家 / 地区 ID如果填写了常用姓名对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" @@ -676,31 +676,31 @@ type CreateCorehrEmployeeReqPersonalInfoPersonalBasicInfoPreferredName struct { NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" } -// CreateCorehrEmployeeReqPersonalInfoResidentTaxe ... -type CreateCorehrEmployeeReqPersonalInfoResidentTaxe struct { +// CreateCoreHREmployeeReqPersonalInfoResidentTaxe ... +type CreateCoreHREmployeeReqPersonalInfoResidentTaxe struct { YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度如果填写了居民身份信息对象, 则该字段必填示例值: "2006-01-02" TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区 ID如果填写了居民身份信息对象, 则该字段必填可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "6862995757234914824" ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "resident_tax" - custom_api_name = "resident_status"示例值: "tax_residence" - CustomFields []*CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` + CustomFields []*CreateCoreHREmployeeReqPersonalInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[自定义字段说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `100` } -// CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField ... -type CreateCorehrEmployeeReqPersonalInfoResidentTaxeCustomField struct { +// CreateCoreHREmployeeReqPersonalInfoResidentTaxeCustomField ... +type CreateCoreHREmployeeReqPersonalInfoResidentTaxeCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "custom_field_1__c" Value *string `json:"value,omitempty"` // 字段值是 JSON 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "123" } -// CreateCorehrEmployeeResp ... -type CreateCorehrEmployeeResp struct { +// CreateCoreHREmployeeResp ... +type CreateCoreHREmployeeResp struct { EmploymentID string `json:"employment_id,omitempty"` // 雇佣信息 ID可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取详细信息 ContractID string `json:"contract_id,omitempty"` // 合同 ID可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 JobDataID string `json:"job_data_id,omitempty"` // 任职信息 ID可通过[【批量查询员工任职信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-job_data/batch_get)接口获取详细信息 } -// createCorehrEmployeeResp ... -type createCorehrEmployeeResp struct { +// createCoreHREmployeeResp ... +type createCoreHREmployeeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrEmployeeResp `json:"data,omitempty"` + Data *CreateCoreHREmployeeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_additional_job_batch_query.go b/api_corehr_employees_additional_job_batch_query.go index f1622a08..c998ea9b 100644 --- a/api_corehr_employees_additional_job_batch_query.go +++ b/api_corehr_employees_additional_job_batch_query.go @@ -21,7 +21,7 @@ import ( "context" ) -// BatchQueryCorehrEmployeesAdditionalJob 批量查询兼职信息, 包括开始日期、职务、序列、上级、薪资类型等信息。 +// BatchQueryCoreHREmployeesAdditionalJob 批量查询兼职信息, 包括开始日期、职务、序列、上级、薪资类型等信息。 // // 支持全量遍历和筛选查询。 // - 本接口会按照「员工资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 @@ -29,72 +29,72 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/batch // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/batch -func (r *CoreHRService) BatchQueryCorehrEmployeesAdditionalJob(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrEmployeesAdditionalJob mock enable") - return r.cli.mock.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob(ctx, request, options...) +func (r *CoreHRService) BatchQueryCoreHREmployeesAdditionalJob(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCoreHREmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHREmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRBatchQueryCoreHREmployeesAdditionalJob(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchQueryCorehrEmployeesAdditionalJob", + API: "BatchQueryCoreHREmployeesAdditionalJob", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/batch", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchQueryCorehrEmployeesAdditionalJobResp) + resp := new(batchQueryCoreHREmployeesAdditionalJobResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchQueryCorehrEmployeesAdditionalJob mock CoreHRBatchQueryCorehrEmployeesAdditionalJob method -func (r *Mock) MockCoreHRBatchQueryCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *BatchQueryCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCorehrEmployeesAdditionalJobResp, *Response, error)) { - r.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob = f +// MockCoreHRBatchQueryCoreHREmployeesAdditionalJob mock CoreHRBatchQueryCoreHREmployeesAdditionalJob method +func (r *Mock) MockCoreHRBatchQueryCoreHREmployeesAdditionalJob(f func(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRBatchQueryCoreHREmployeesAdditionalJob = f } -// UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob un-mock CoreHRBatchQueryCorehrEmployeesAdditionalJob method -func (r *Mock) UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob() { - r.mockCoreHRBatchQueryCorehrEmployeesAdditionalJob = nil +// UnMockCoreHRBatchQueryCoreHREmployeesAdditionalJob un-mock CoreHRBatchQueryCoreHREmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRBatchQueryCoreHREmployeesAdditionalJob() { + r.mockCoreHRBatchQueryCoreHREmployeesAdditionalJob = nil } -// BatchQueryCorehrEmployeesAdditionalJobReq ... -type BatchQueryCorehrEmployeesAdditionalJobReq struct { +// BatchQueryCoreHREmployeesAdditionalJobReq ... +type BatchQueryCoreHREmployeesAdditionalJobReq struct { PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10默认值: `100` 取值范围: `0` ~ `100` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: Njg5MTI1MTcyMjYzMTg5MDQ0NQ[ UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个 department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` EmploymentIDs []string `json:"employment_ids,omitempty"` // 雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致示例值: ["7140964208476371111"] 长度范围: `0` ~ `100` AdditionalJobIDs []string `json:"additional_job_ids,omitempty"` // 兼职 ID- 指定兼职记录 ID 查询时, 请将 page_size 设为最大值, 不返回 has_more 参数示例值: ["7140964208476371111"] 长度范围: `0` ~ `100` - StartDate *BatchQueryCorehrEmployeesAdditionalJobReqStartDate `json:"start_date,omitempty"` // 开始日期- 无默认值 - EndDate *BatchQueryCorehrEmployeesAdditionalJobReqEndDate `json:"end_date,omitempty"` // 结束日期- 无默认值 + StartDate *BatchQueryCoreHREmployeesAdditionalJobReqStartDate `json:"start_date,omitempty"` // 开始日期- 无默认值 + EndDate *BatchQueryCoreHREmployeesAdditionalJobReqEndDate `json:"end_date,omitempty"` // 结束日期- 无默认值 DataDate *string `json:"data_date,omitempty"` // 查看数据日期, 默认当天- 与时间范围筛选为 AND 关系示例值: "2024-01-02" IsEffective *bool `json:"is_effective,omitempty"` // 仅查询在【data_date】当天为生效中的兼职- 默认为 false, 即 【data_date】不生效示例值: true } -// BatchQueryCorehrEmployeesAdditionalJobReqEndDate ... -type BatchQueryCorehrEmployeesAdditionalJobReqEndDate struct { +// BatchQueryCoreHREmployeesAdditionalJobReqEndDate ... +type BatchQueryCoreHREmployeesAdditionalJobReqEndDate struct { Start string `json:"start,omitempty"` // 开始示例值: "2024-01-01" End string `json:"end,omitempty"` // 结束示例值: "2024-01-01" } -// BatchQueryCorehrEmployeesAdditionalJobReqStartDate ... -type BatchQueryCorehrEmployeesAdditionalJobReqStartDate struct { +// BatchQueryCoreHREmployeesAdditionalJobReqStartDate ... +type BatchQueryCoreHREmployeesAdditionalJobReqStartDate struct { Start string `json:"start,omitempty"` // 开始示例值: "2024-01-01" End string `json:"end,omitempty"` // 结束示例值: "2024-01-01" } -// BatchQueryCorehrEmployeesAdditionalJobResp ... -type BatchQueryCorehrEmployeesAdditionalJobResp struct { - Items []*BatchQueryCorehrEmployeesAdditionalJobRespItem `json:"items,omitempty"` // 兼职信息 +// BatchQueryCoreHREmployeesAdditionalJobResp ... +type BatchQueryCoreHREmployeesAdditionalJobResp struct { + Items []*BatchQueryCoreHREmployeesAdditionalJobRespItem `json:"items,omitempty"` // 兼职信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// BatchQueryCorehrEmployeesAdditionalJobRespItem ... -type BatchQueryCorehrEmployeesAdditionalJobRespItem struct { +// BatchQueryCoreHREmployeesAdditionalJobRespItem ... +type BatchQueryCoreHREmployeesAdditionalJobRespItem struct { ID string `json:"id,omitempty"` // 兼职记录 ID EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 @@ -108,8 +108,8 @@ type BatchQueryCorehrEmployeesAdditionalJobRespItem struct { EndDate string `json:"end_date,omitempty"` // 兼职结束日期- 判断兼职已结束: 结束日期小于当天日期 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 - WorkShift *BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求(满足任一): 获取兼职的排班信息读写兼职的排班信息 - CompensationType *BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求(满足任一): 获取兼职的薪资类型读写兼职的薪资类型 + WorkShift *BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求(满足任一): 获取兼职的排班信息读写兼职的排班信息 + CompensationType *BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求(满足任一): 获取兼职的薪资类型读写兼职的薪资类型 ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求(满足任一): 获取兼职的任职公司读写兼职的任职公司 WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息 @@ -117,34 +117,34 @@ type BatchQueryCorehrEmployeesAdditionalJobRespItem struct { EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) } -// BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType ... -type BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationType struct { +// BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationType ... +type BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay ... -type BatchQueryCorehrEmployeesAdditionalJobRespItemCompensationTypeDisplay struct { +// BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationTypeDisplay ... +type BatchQueryCoreHREmployeesAdditionalJobRespItemCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift ... -type BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShift struct { +// BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShift ... +type BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay ... -type BatchQueryCorehrEmployeesAdditionalJobRespItemWorkShiftDisplay struct { +// BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShiftDisplay ... +type BatchQueryCoreHREmployeesAdditionalJobRespItemWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// batchQueryCorehrEmployeesAdditionalJobResp ... -type batchQueryCorehrEmployeesAdditionalJobResp struct { +// batchQueryCoreHREmployeesAdditionalJobResp ... +type batchQueryCoreHREmployeesAdditionalJobResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchQueryCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Data *BatchQueryCoreHREmployeesAdditionalJobResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_additional_job_create.go b/api_corehr_employees_additional_job_create.go index 67eeda03..822208cb 100644 --- a/api_corehr_employees_additional_job_create.go +++ b/api_corehr_employees_additional_job_create.go @@ -21,43 +21,43 @@ import ( "context" ) -// CreateCorehrEmployeesAdditionalJob 创建员工的兼职 +// CreateCoreHREmployeesAdditionalJob 创建员工的兼职 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/create // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/create -func (r *CoreHRService) CreateCorehrEmployeesAdditionalJob(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrEmployeesAdditionalJob != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployeesAdditionalJob mock enable") - return r.cli.mock.mockCoreHRCreateCorehrEmployeesAdditionalJob(ctx, request, options...) +func (r *CoreHRService) CreateCoreHREmployeesAdditionalJob(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHREmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHREmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRCreateCoreHREmployeesAdditionalJob(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrEmployeesAdditionalJob", + API: "CreateCoreHREmployeesAdditionalJob", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrEmployeesAdditionalJobResp) + resp := new(createCoreHREmployeesAdditionalJobResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrEmployeesAdditionalJob mock CoreHRCreateCorehrEmployeesAdditionalJob method -func (r *Mock) MockCoreHRCreateCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *CreateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesAdditionalJobResp, *Response, error)) { - r.mockCoreHRCreateCorehrEmployeesAdditionalJob = f +// MockCoreHRCreateCoreHREmployeesAdditionalJob mock CoreHRCreateCoreHREmployeesAdditionalJob method +func (r *Mock) MockCoreHRCreateCoreHREmployeesAdditionalJob(f func(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRCreateCoreHREmployeesAdditionalJob = f } -// UnMockCoreHRCreateCorehrEmployeesAdditionalJob un-mock CoreHRCreateCorehrEmployeesAdditionalJob method -func (r *Mock) UnMockCoreHRCreateCorehrEmployeesAdditionalJob() { - r.mockCoreHRCreateCorehrEmployeesAdditionalJob = nil +// UnMockCoreHRCreateCoreHREmployeesAdditionalJob un-mock CoreHRCreateCoreHREmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRCreateCoreHREmployeesAdditionalJob() { + r.mockCoreHRCreateCoreHREmployeesAdditionalJob = nil } -// CreateCorehrEmployeesAdditionalJobReq ... -type CreateCorehrEmployeesAdditionalJobReq struct { +// CreateCoreHREmployeesAdditionalJobReq ... +type CreateCoreHREmployeesAdditionalJobReq struct { ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等校验, 格式为标准的 UUIDV4。请求成功时, 重复的 client_token 不会再创建、变更数据。示例值: 12454646 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 【飞书】用来在具体某个应用中标识一个部门, 同一个 department_id 在不同应用中的 open_department_id 相同。【飞书】用来标识租户内一个唯一的部门。【飞书人事】用来标识「飞书人事」中的部门。默认值: `open_department_id` @@ -73,8 +73,8 @@ type CreateCorehrEmployeesAdditionalJobReq struct { EndDate *string `json:"end_date,omitempty"` // 兼职结束日期, 不可清空示例值: "2020-05-02" DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" - WorkShift *CreateCorehrEmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" - CompensationType *CreateCorehrEmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" + WorkShift *CreateCoreHREmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" + CompensationType *CreateCoreHREmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取详细信息示例值: "6890452208593372680" WeeklyWorkingHours *string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】示例值: "5" WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息示例值: "6890452208593372680" @@ -82,23 +82,23 @@ type CreateCorehrEmployeesAdditionalJobReq struct { EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID示例值: "6890452208593372680" } -// CreateCorehrEmployeesAdditionalJobReqCompensationType ... -type CreateCorehrEmployeesAdditionalJobReqCompensationType struct { +// CreateCoreHREmployeesAdditionalJobReqCompensationType ... +type CreateCoreHREmployeesAdditionalJobReqCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// CreateCorehrEmployeesAdditionalJobReqWorkShift ... -type CreateCorehrEmployeesAdditionalJobReqWorkShift struct { +// CreateCoreHREmployeesAdditionalJobReqWorkShift ... +type CreateCoreHREmployeesAdditionalJobReqWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// CreateCorehrEmployeesAdditionalJobResp ... -type CreateCorehrEmployeesAdditionalJobResp struct { - AdditionalJob *CreateCorehrEmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 +// CreateCoreHREmployeesAdditionalJobResp ... +type CreateCoreHREmployeesAdditionalJobResp struct { + AdditionalJob *CreateCoreHREmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 } -// CreateCorehrEmployeesAdditionalJobRespAdditionalJob ... -type CreateCorehrEmployeesAdditionalJobRespAdditionalJob struct { +// CreateCoreHREmployeesAdditionalJobRespAdditionalJob ... +type CreateCoreHREmployeesAdditionalJobRespAdditionalJob struct { ID string `json:"id,omitempty"` // 兼职记录 ID EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 @@ -112,8 +112,8 @@ type CreateCorehrEmployeesAdditionalJobRespAdditionalJob struct { EndDate string `json:"end_date,omitempty"` // 兼职结束日期 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 - WorkShift *CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 - CompensationType *CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 + WorkShift *CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 + CompensationType *CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写兼职的任职公司 WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取 @@ -121,34 +121,34 @@ type CreateCorehrEmployeesAdditionalJobRespAdditionalJob struct { EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID } -// CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType ... -type CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType struct { +// CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType ... +type CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... -type CreateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { +// CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... +type CreateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift ... -type CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift struct { +// CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift ... +type CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... -type CreateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { +// CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... +type CreateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// createCorehrEmployeesAdditionalJobResp ... -type createCorehrEmployeesAdditionalJobResp struct { +// createCoreHREmployeesAdditionalJobResp ... +type createCoreHREmployeesAdditionalJobResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Data *CreateCoreHREmployeesAdditionalJobResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_additional_job_delete.go b/api_corehr_employees_additional_job_delete.go index 727bcad5..e89bdab4 100644 --- a/api_corehr_employees_additional_job_delete.go +++ b/api_corehr_employees_additional_job_delete.go @@ -21,54 +21,54 @@ import ( "context" ) -// DeleteCorehrEmployeesAdditionalJob 删除一条指定的员工兼职 +// DeleteCoreHREmployeesAdditionalJob 删除一条指定的员工兼职 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/delete // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/delete -func (r *CoreHRService) DeleteCorehrEmployeesAdditionalJob(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrEmployeesAdditionalJob != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrEmployeesAdditionalJob mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrEmployeesAdditionalJob(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHREmployeesAdditionalJob(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHREmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHREmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHREmployeesAdditionalJob(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrEmployeesAdditionalJob", + API: "DeleteCoreHREmployeesAdditionalJob", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/:additional_job_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrEmployeesAdditionalJobResp) + resp := new(deleteCoreHREmployeesAdditionalJobResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrEmployeesAdditionalJob mock CoreHRDeleteCorehrEmployeesAdditionalJob method -func (r *Mock) MockCoreHRDeleteCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *DeleteCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesAdditionalJobResp, *Response, error)) { - r.mockCoreHRDeleteCorehrEmployeesAdditionalJob = f +// MockCoreHRDeleteCoreHREmployeesAdditionalJob mock CoreHRDeleteCoreHREmployeesAdditionalJob method +func (r *Mock) MockCoreHRDeleteCoreHREmployeesAdditionalJob(f func(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRDeleteCoreHREmployeesAdditionalJob = f } -// UnMockCoreHRDeleteCorehrEmployeesAdditionalJob un-mock CoreHRDeleteCorehrEmployeesAdditionalJob method -func (r *Mock) UnMockCoreHRDeleteCorehrEmployeesAdditionalJob() { - r.mockCoreHRDeleteCorehrEmployeesAdditionalJob = nil +// UnMockCoreHRDeleteCoreHREmployeesAdditionalJob un-mock CoreHRDeleteCoreHREmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRDeleteCoreHREmployeesAdditionalJob() { + r.mockCoreHRDeleteCoreHREmployeesAdditionalJob = nil } -// DeleteCorehrEmployeesAdditionalJobReq ... -type DeleteCorehrEmployeesAdditionalJobReq struct { +// DeleteCoreHREmployeesAdditionalJobReq ... +type DeleteCoreHREmployeesAdditionalJobReq struct { AdditionalJobID string `path:"additional_job_id" json:"-"` // 兼职记录 ID示例值: "654637829201" } -// DeleteCorehrEmployeesAdditionalJobResp ... -type DeleteCorehrEmployeesAdditionalJobResp struct { +// DeleteCoreHREmployeesAdditionalJobResp ... +type DeleteCoreHREmployeesAdditionalJobResp struct { } -// deleteCorehrEmployeesAdditionalJobResp ... -type deleteCorehrEmployeesAdditionalJobResp struct { +// deleteCoreHREmployeesAdditionalJobResp ... +type deleteCoreHREmployeesAdditionalJobResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Data *DeleteCoreHREmployeesAdditionalJobResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_additional_job_update.go b/api_corehr_employees_additional_job_update.go index ad3fac52..d7794fe3 100644 --- a/api_corehr_employees_additional_job_update.go +++ b/api_corehr_employees_additional_job_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrEmployeesAdditionalJob 更新员工的兼职 +// UpdateCoreHREmployeesAdditionalJob 更新员工的兼职 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-additional_job/patch // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-additional_job/patch -func (r *CoreHRService) UpdateCorehrEmployeesAdditionalJob(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrEmployeesAdditionalJob != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrEmployeesAdditionalJob mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrEmployeesAdditionalJob(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHREmployeesAdditionalJob(ctx context.Context, request *UpdateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesAdditionalJobResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHREmployeesAdditionalJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHREmployeesAdditionalJob mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHREmployeesAdditionalJob(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrEmployeesAdditionalJob", + API: "UpdateCoreHREmployeesAdditionalJob", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/additional_jobs/:additional_job_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrEmployeesAdditionalJobResp) + resp := new(updateCoreHREmployeesAdditionalJobResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrEmployeesAdditionalJob mock CoreHRUpdateCorehrEmployeesAdditionalJob method -func (r *Mock) MockCoreHRUpdateCorehrEmployeesAdditionalJob(f func(ctx context.Context, request *UpdateCorehrEmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesAdditionalJobResp, *Response, error)) { - r.mockCoreHRUpdateCorehrEmployeesAdditionalJob = f +// MockCoreHRUpdateCoreHREmployeesAdditionalJob mock CoreHRUpdateCoreHREmployeesAdditionalJob method +func (r *Mock) MockCoreHRUpdateCoreHREmployeesAdditionalJob(f func(ctx context.Context, request *UpdateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesAdditionalJobResp, *Response, error)) { + r.mockCoreHRUpdateCoreHREmployeesAdditionalJob = f } -// UnMockCoreHRUpdateCorehrEmployeesAdditionalJob un-mock CoreHRUpdateCorehrEmployeesAdditionalJob method -func (r *Mock) UnMockCoreHRUpdateCorehrEmployeesAdditionalJob() { - r.mockCoreHRUpdateCorehrEmployeesAdditionalJob = nil +// UnMockCoreHRUpdateCoreHREmployeesAdditionalJob un-mock CoreHRUpdateCoreHREmployeesAdditionalJob method +func (r *Mock) UnMockCoreHRUpdateCoreHREmployeesAdditionalJob() { + r.mockCoreHRUpdateCoreHREmployeesAdditionalJob = nil } -// UpdateCorehrEmployeesAdditionalJobReq ... -type UpdateCorehrEmployeesAdditionalJobReq struct { +// UpdateCoreHREmployeesAdditionalJobReq ... +type UpdateCoreHREmployeesAdditionalJobReq struct { AdditionalJobID string `path:"additional_job_id" json:"-"` // 兼职记录 ID示例值: "12454646" ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等校验, 格式为标准的 UUIDV4。请求成功时, 重复的 client_token 不会再创建、变更数据。示例值: 12454646 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -73,8 +73,8 @@ type UpdateCorehrEmployeesAdditionalJobReq struct { EndDate *string `json:"end_date,omitempty"` // 兼职结束日期, 不可清空示例值: "2020-05-02" DirectManagerID *string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致示例值: "6890452208593372680" - WorkShift *UpdateCorehrEmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" - CompensationType *UpdateCorehrEmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" + WorkShift *UpdateCoreHREmployeesAdditionalJobReqWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift" + CompensationType *UpdateCoreHREmployeesAdditionalJobReqCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type" ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)获取详细信息示例值: "6890452208593372680" WeeklyWorkingHours *string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】示例值: "5" WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "6890452208593372680" @@ -82,23 +82,23 @@ type UpdateCorehrEmployeesAdditionalJobReq struct { EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID示例值: "6890452208593372680" } -// UpdateCorehrEmployeesAdditionalJobReqCompensationType ... -type UpdateCorehrEmployeesAdditionalJobReqCompensationType struct { +// UpdateCoreHREmployeesAdditionalJobReqCompensationType ... +type UpdateCoreHREmployeesAdditionalJobReqCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// UpdateCorehrEmployeesAdditionalJobReqWorkShift ... -type UpdateCorehrEmployeesAdditionalJobReqWorkShift struct { +// UpdateCoreHREmployeesAdditionalJobReqWorkShift ... +type UpdateCoreHREmployeesAdditionalJobReqWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// UpdateCorehrEmployeesAdditionalJobResp ... -type UpdateCorehrEmployeesAdditionalJobResp struct { - AdditionalJob *UpdateCorehrEmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 +// UpdateCoreHREmployeesAdditionalJobResp ... +type UpdateCoreHREmployeesAdditionalJobResp struct { + AdditionalJob *UpdateCoreHREmployeesAdditionalJobRespAdditionalJob `json:"additional_job,omitempty"` // 兼职信息 } -// UpdateCorehrEmployeesAdditionalJobRespAdditionalJob ... -type UpdateCorehrEmployeesAdditionalJobRespAdditionalJob struct { +// UpdateCoreHREmployeesAdditionalJobRespAdditionalJob ... +type UpdateCoreHREmployeesAdditionalJobRespAdditionalJob struct { ID string `json:"id,omitempty"` // 兼职记录 ID EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息 @@ -112,8 +112,8 @@ type UpdateCorehrEmployeesAdditionalJobRespAdditionalJob struct { EndDate string `json:"end_date,omitempty"` // 兼职结束日期 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级的雇佣 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息类型与 user_id_type 一致 - WorkShift *UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 - CompensationType *UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 + WorkShift *UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift `json:"work_shift,omitempty"` // 排班类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "work_shift"字段权限要求: 读写兼职的排班信息 + CompensationType *UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "job_data"- custom_api_name = "compensation_type"字段权限要求: 读写兼职的薪资类型 ServiceCompany string `json:"service_company,omitempty"` // 任职公司, 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写兼职的任职公司 WeeklyWorkingHours string `json:"weekly_working_hours,omitempty"` // 周工作时长【0~168】 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID, 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息 @@ -121,34 +121,34 @@ type UpdateCorehrEmployeesAdditionalJobRespAdditionalJob struct { EmployeeSubtypeID string `json:"employee_subtype_id,omitempty"` // 人员子类型 ID } -// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType ... -type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationType struct { +// UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType ... +type UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... -type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { +// UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay ... +type UpdateCoreHREmployeesAdditionalJobRespAdditionalJobCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift ... -type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShift struct { +// UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift ... +type UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... -type UpdateCorehrEmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { +// UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay ... +type UpdateCoreHREmployeesAdditionalJobRespAdditionalJobWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// updateCorehrEmployeesAdditionalJobResp ... -type updateCorehrEmployeesAdditionalJobResp struct { +// updateCoreHREmployeesAdditionalJobResp ... +type updateCoreHREmployeesAdditionalJobResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrEmployeesAdditionalJobResp `json:"data,omitempty"` + Data *UpdateCoreHREmployeesAdditionalJobResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_international_assignment_create.go b/api_corehr_employees_international_assignment_create.go index a740ab72..61addf8a 100644 --- a/api_corehr_employees_international_assignment_create.go +++ b/api_corehr_employees_international_assignment_create.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrEmployeesInternationalAssignment 为员工添加外派记录, 包括外派信息、任职信息 +// CreateCoreHREmployeesInternationalAssignment 为员工添加外派记录, 包括外派信息、任职信息 // // - 文档中的必填字段, 不可为空。 // - 部门岗职模式, 会影响岗位、职务等字段的必填校验 @@ -29,39 +29,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/create // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/create -func (r *CoreHRService) CreateCorehrEmployeesInternationalAssignment(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrEmployeesInternationalAssignment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrEmployeesInternationalAssignment mock enable") - return r.cli.mock.mockCoreHRCreateCorehrEmployeesInternationalAssignment(ctx, request, options...) +func (r *CoreHRService) CreateCoreHREmployeesInternationalAssignment(ctx context.Context, request *CreateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHREmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHREmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRCreateCoreHREmployeesInternationalAssignment(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrEmployeesInternationalAssignment", + API: "CreateCoreHREmployeesInternationalAssignment", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrEmployeesInternationalAssignmentResp) + resp := new(createCoreHREmployeesInternationalAssignmentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrEmployeesInternationalAssignment mock CoreHRCreateCorehrEmployeesInternationalAssignment method -func (r *Mock) MockCoreHRCreateCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *CreateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCorehrEmployeesInternationalAssignmentResp, *Response, error)) { - r.mockCoreHRCreateCorehrEmployeesInternationalAssignment = f +// MockCoreHRCreateCoreHREmployeesInternationalAssignment mock CoreHRCreateCoreHREmployeesInternationalAssignment method +func (r *Mock) MockCoreHRCreateCoreHREmployeesInternationalAssignment(f func(ctx context.Context, request *CreateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRCreateCoreHREmployeesInternationalAssignment = f } -// UnMockCoreHRCreateCorehrEmployeesInternationalAssignment un-mock CoreHRCreateCorehrEmployeesInternationalAssignment method -func (r *Mock) UnMockCoreHRCreateCorehrEmployeesInternationalAssignment() { - r.mockCoreHRCreateCorehrEmployeesInternationalAssignment = nil +// UnMockCoreHRCreateCoreHREmployeesInternationalAssignment un-mock CoreHRCreateCoreHREmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRCreateCoreHREmployeesInternationalAssignment() { + r.mockCoreHRCreateCoreHREmployeesInternationalAssignment = nil } -// CreateCorehrEmployeesInternationalAssignmentReq ... -type CreateCorehrEmployeesInternationalAssignmentReq struct { +// CreateCoreHREmployeesInternationalAssignmentReq ... +type CreateCoreHREmployeesInternationalAssignmentReq struct { ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略 client_token 重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` @@ -82,7 +82,7 @@ type CreateCorehrEmployeesInternationalAssignmentReq struct { WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "7127921432117937708" PositionID *string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7127921432117937708" EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致- 需要是在职人员的雇佣 ID示例值: "7127921432117937708" - CustomFields []*CreateCorehrEmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` + CustomFields []*CreateCoreHREmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` InternationalAssignmentReason *string `json:"international_assignment_reason,omitempty"` // 外派原因说明示例值: "xxx 项目派遣" 长度范围: `0` ~ `5000` 字符 Description *string `json:"description,omitempty"` // 备注示例值: "xxx 项目" 长度范围: `0` ~ `10000` 字符 InternationalAssignmentExpectedEndDate *string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" @@ -91,22 +91,22 @@ type CreateCorehrEmployeesInternationalAssignmentReq struct { ExpirationTime *string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" } -// CreateCorehrEmployeesInternationalAssignmentReqCustomField ... -type CreateCorehrEmployeesInternationalAssignmentReqCustomField struct { +// CreateCoreHREmployeesInternationalAssignmentReqCustomField ... +type CreateCoreHREmployeesInternationalAssignmentReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// CreateCorehrEmployeesInternationalAssignmentResp ... -type CreateCorehrEmployeesInternationalAssignmentResp struct { - InternationalAssignment *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 +// CreateCoreHREmployeesInternationalAssignmentResp ... +type CreateCoreHREmployeesInternationalAssignmentResp struct { + InternationalAssignment *CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignment ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignment struct { WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求: 读写外派地点 ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写外派公司 - WorkShift *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 + WorkShift *CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求: 读写外派工时制度 EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求: 读写外派周工作时长 @@ -115,81 +115,81 @@ type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignment str JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求: 读写外派职级 JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求: 读写外派职等 - CompensationType *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 + CompensationType *CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求: 读写外派工作日历 PositionID string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 读写外派岗位 EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 - CustomFields []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 + CustomFields []*CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 Description string `json:"description,omitempty"` // 备注 InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd - InternationalAssignmentStatus *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status - InternationalAssignmentType *CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + InternationalAssignmentStatus *CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 ID string `json:"id,omitempty"` // 外派ID } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... -type CreateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { +// CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... +type CreateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// createCorehrEmployeesInternationalAssignmentResp ... -type createCorehrEmployeesInternationalAssignmentResp struct { +// createCoreHREmployeesInternationalAssignmentResp ... +type createCoreHREmployeesInternationalAssignmentResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Data *CreateCoreHREmployeesInternationalAssignmentResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_international_assignment_delete.go b/api_corehr_employees_international_assignment_delete.go index 9ea2b7db..89ed4007 100644 --- a/api_corehr_employees_international_assignment_delete.go +++ b/api_corehr_employees_international_assignment_delete.go @@ -21,54 +21,54 @@ import ( "context" ) -// DeleteCorehrEmployeesInternationalAssignment 删除某一条外派信息 +// DeleteCoreHREmployeesInternationalAssignment 删除某一条外派信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/delete // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/delete -func (r *CoreHRService) DeleteCorehrEmployeesInternationalAssignment(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrEmployeesInternationalAssignment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrEmployeesInternationalAssignment mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrEmployeesInternationalAssignment(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHREmployeesInternationalAssignment(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHREmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHREmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHREmployeesInternationalAssignment(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrEmployeesInternationalAssignment", + API: "DeleteCoreHREmployeesInternationalAssignment", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments/:international_assignment_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrEmployeesInternationalAssignmentResp) + resp := new(deleteCoreHREmployeesInternationalAssignmentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrEmployeesInternationalAssignment mock CoreHRDeleteCorehrEmployeesInternationalAssignment method -func (r *Mock) MockCoreHRDeleteCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *DeleteCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCorehrEmployeesInternationalAssignmentResp, *Response, error)) { - r.mockCoreHRDeleteCorehrEmployeesInternationalAssignment = f +// MockCoreHRDeleteCoreHREmployeesInternationalAssignment mock CoreHRDeleteCoreHREmployeesInternationalAssignment method +func (r *Mock) MockCoreHRDeleteCoreHREmployeesInternationalAssignment(f func(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRDeleteCoreHREmployeesInternationalAssignment = f } -// UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment un-mock CoreHRDeleteCorehrEmployeesInternationalAssignment method -func (r *Mock) UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment() { - r.mockCoreHRDeleteCorehrEmployeesInternationalAssignment = nil +// UnMockCoreHRDeleteCoreHREmployeesInternationalAssignment un-mock CoreHRDeleteCoreHREmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRDeleteCoreHREmployeesInternationalAssignment() { + r.mockCoreHRDeleteCoreHREmployeesInternationalAssignment = nil } -// DeleteCorehrEmployeesInternationalAssignmentReq ... -type DeleteCorehrEmployeesInternationalAssignmentReq struct { +// DeleteCoreHREmployeesInternationalAssignmentReq ... +type DeleteCoreHREmployeesInternationalAssignmentReq struct { InternationalAssignmentID string `path:"international_assignment_id" json:"-"` // 外派ID- 可通过[批量查询外派](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list)获取示例值: "7127921432117937708" } -// DeleteCorehrEmployeesInternationalAssignmentResp ... -type DeleteCorehrEmployeesInternationalAssignmentResp struct { +// DeleteCoreHREmployeesInternationalAssignmentResp ... +type DeleteCoreHREmployeesInternationalAssignmentResp struct { } -// deleteCorehrEmployeesInternationalAssignmentResp ... -type deleteCorehrEmployeesInternationalAssignmentResp struct { +// deleteCoreHREmployeesInternationalAssignmentResp ... +type deleteCoreHREmployeesInternationalAssignmentResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Data *DeleteCoreHREmployeesInternationalAssignmentResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_international_assignment_list.go b/api_corehr_employees_international_assignment_list.go index 7eda8220..4fbb89e1 100644 --- a/api_corehr_employees_international_assignment_list.go +++ b/api_corehr_employees_international_assignment_list.go @@ -21,7 +21,7 @@ import ( "context" ) -// ListCorehrEmployeesInternationalAssignment 查询员工的外派信息: 外派类型、外派地点、职务、职级、上级等。 +// ListCoreHREmployeesInternationalAssignment 查询员工的外派信息: 外派类型、外派地点、职务、职级、上级等。 // // - 本接口会按照「员工资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 // - 字段未返回请检查: 字段权限、用户该字段有值, 以及「飞书人事-人员档案设置」中字段是否启用 @@ -31,39 +31,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/list -func (r *CoreHRService) ListCorehrEmployeesInternationalAssignment(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrEmployeesInternationalAssignment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrEmployeesInternationalAssignment mock enable") - return r.cli.mock.mockCoreHRListCorehrEmployeesInternationalAssignment(ctx, request, options...) +func (r *CoreHRService) ListCoreHREmployeesInternationalAssignment(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHREmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHREmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRListCoreHREmployeesInternationalAssignment(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrEmployeesInternationalAssignment", + API: "ListCoreHREmployeesInternationalAssignment", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrEmployeesInternationalAssignmentResp) + resp := new(listCoreHREmployeesInternationalAssignmentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrEmployeesInternationalAssignment mock CoreHRListCorehrEmployeesInternationalAssignment method -func (r *Mock) MockCoreHRListCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *ListCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCorehrEmployeesInternationalAssignmentResp, *Response, error)) { - r.mockCoreHRListCorehrEmployeesInternationalAssignment = f +// MockCoreHRListCoreHREmployeesInternationalAssignment mock CoreHRListCoreHREmployeesInternationalAssignment method +func (r *Mock) MockCoreHRListCoreHREmployeesInternationalAssignment(f func(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRListCoreHREmployeesInternationalAssignment = f } -// UnMockCoreHRListCorehrEmployeesInternationalAssignment un-mock CoreHRListCorehrEmployeesInternationalAssignment method -func (r *Mock) UnMockCoreHRListCorehrEmployeesInternationalAssignment() { - r.mockCoreHRListCorehrEmployeesInternationalAssignment = nil +// UnMockCoreHRListCoreHREmployeesInternationalAssignment un-mock CoreHRListCoreHREmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRListCoreHREmployeesInternationalAssignment() { + r.mockCoreHRListCoreHREmployeesInternationalAssignment = nil } -// ListCorehrEmployeesInternationalAssignmentReq ... -type ListCorehrEmployeesInternationalAssignmentReq struct { +// ListCoreHREmployeesInternationalAssignmentReq ... +type ListCoreHREmployeesInternationalAssignmentReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `200` 取值范围: `1` ~ `200` @@ -93,19 +93,19 @@ type ListCorehrEmployeesInternationalAssignmentReq struct { WorkCalendarIDList []string `query:"work_calendar_id_list" json:"-"` // 外派工作日历- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息- 需要以下权限点之一: - 读取外派工作日历 - 读写外派工作日历示例值: 7293840937989473836 长度范围: `0` ~ `100` } -// ListCorehrEmployeesInternationalAssignmentResp ... -type ListCorehrEmployeesInternationalAssignmentResp struct { - Items []*ListCorehrEmployeesInternationalAssignmentRespItem `json:"items,omitempty"` // 外派信息 +// ListCoreHREmployeesInternationalAssignmentResp ... +type ListCoreHREmployeesInternationalAssignmentResp struct { + Items []*ListCoreHREmployeesInternationalAssignmentRespItem `json:"items,omitempty"` // 外派信息 NoAuthorityIDs []string `json:"no_authority_ids,omitempty"` // 无权限的雇佣ID- 在指定雇佣ID【employment_ids】查询时该参数生效- 类型与 user_id_type 一致 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// ListCorehrEmployeesInternationalAssignmentRespItem ... -type ListCorehrEmployeesInternationalAssignmentRespItem struct { +// ListCoreHREmployeesInternationalAssignmentRespItem ... +type ListCoreHREmployeesInternationalAssignmentRespItem struct { WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求(满足任一): 读取外派地点读写外派地点 ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求(满足任一): 读取外派公司读写外派公司 - WorkShift *ListCorehrEmployeesInternationalAssignmentRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求(满足任一): 读取外派排班类型读写外派排班类型 + WorkShift *ListCoreHREmployeesInternationalAssignmentRespItemWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求(满足任一): 读取外派排班类型读写外派排班类型 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求(满足任一): 读取外派工时制度读写外派工时制度 EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求(满足任一): 读取外派周工作时长读写外派周工作时长 @@ -114,81 +114,81 @@ type ListCorehrEmployeesInternationalAssignmentRespItem struct { JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求(满足任一): 读取外派职级读写外派职级 JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求(满足任一): 读取外派职等读写外派职等 - CompensationType *ListCorehrEmployeesInternationalAssignmentRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求(满足任一): 读取外派薪资类型读写外派薪资类型 + CompensationType *ListCoreHREmployeesInternationalAssignmentRespItemCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求(满足任一): 读取外派薪资类型读写外派薪资类型 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求(满足任一): 读取外派工作日历读写外派工作日历 PositionID string `json:"position_id,omitempty"` // 岗位 ID- 尚未支持, 预留字段字段权限要求(满足任一): 读取外派岗位读写外派岗位 EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 - CustomFields []*ListCorehrEmployeesInternationalAssignmentRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 读取外派自定义字段读写外派自定义字段 + CustomFields []*ListCoreHREmployeesInternationalAssignmentRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 读取外派自定义字段读写外派自定义字段 InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 Description string `json:"description,omitempty"` // 备注 InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd - InternationalAssignmentStatus *ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status - InternationalAssignmentType *ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + InternationalAssignmentStatus *ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 ID string `json:"id,omitempty"` // 外派ID } -// ListCorehrEmployeesInternationalAssignmentRespItemCompensationType ... -type ListCorehrEmployeesInternationalAssignmentRespItemCompensationType struct { +// ListCoreHREmployeesInternationalAssignmentRespItemCompensationType ... +type ListCoreHREmployeesInternationalAssignmentRespItemCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHREmployeesInternationalAssignmentRespItemCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay ... -type ListCorehrEmployeesInternationalAssignmentRespItemCompensationTypeDisplay struct { +// ListCoreHREmployeesInternationalAssignmentRespItemCompensationTypeDisplay ... +type ListCoreHREmployeesInternationalAssignmentRespItemCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// ListCorehrEmployeesInternationalAssignmentRespItemCustomField ... -type ListCorehrEmployeesInternationalAssignmentRespItemCustomField struct { +// ListCoreHREmployeesInternationalAssignmentRespItemCustomField ... +type ListCoreHREmployeesInternationalAssignmentRespItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同- 该返回值是将原始值 `json.Marshal` 后返回, 使用 `json.Unmarshal` 解析到指定对象即可 } -// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus ... -type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatus struct { +// ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatus ... +type ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay ... -type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay struct { +// ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay ... +type ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType ... -type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentType struct { +// ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentType ... +type ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay ... -type ListCorehrEmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay struct { +// ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay ... +type ListCoreHREmployeesInternationalAssignmentRespItemInternationalAssignmentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// ListCorehrEmployeesInternationalAssignmentRespItemWorkShift ... -type ListCorehrEmployeesInternationalAssignmentRespItemWorkShift struct { +// ListCoreHREmployeesInternationalAssignmentRespItemWorkShift ... +type ListCoreHREmployeesInternationalAssignmentRespItemWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHREmployeesInternationalAssignmentRespItemWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay ... -type ListCorehrEmployeesInternationalAssignmentRespItemWorkShiftDisplay struct { +// ListCoreHREmployeesInternationalAssignmentRespItemWorkShiftDisplay ... +type ListCoreHREmployeesInternationalAssignmentRespItemWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// listCorehrEmployeesInternationalAssignmentResp ... -type listCorehrEmployeesInternationalAssignmentResp struct { +// listCoreHREmployeesInternationalAssignmentResp ... +type listCoreHREmployeesInternationalAssignmentResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Data *ListCoreHREmployeesInternationalAssignmentResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_employees_international_assignment_update.go b/api_corehr_employees_international_assignment_update.go index 637974cf..a40e4454 100644 --- a/api_corehr_employees_international_assignment_update.go +++ b/api_corehr_employees_international_assignment_update.go @@ -21,46 +21,46 @@ import ( "context" ) -// UpdateCorehrEmployeesInternationalAssignment 更新指定的外派信息 +// UpdateCoreHREmployeesInternationalAssignment 更新指定的外派信息 // // - 部门岗职模式, 会影响岗位、职务等字段的必填校验 // - 外派信息相关字段, 会基于【飞书人事-人员档案配置】进行必填校验 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/patch // new doc: https://open.feishu.cn/document/corehr-v1/employee/job_data/employees-international_assignment/patch -func (r *CoreHRService) UpdateCorehrEmployeesInternationalAssignment(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrEmployeesInternationalAssignment != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrEmployeesInternationalAssignment mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrEmployeesInternationalAssignment(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHREmployeesInternationalAssignment(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHREmployeesInternationalAssignment != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHREmployeesInternationalAssignment mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHREmployeesInternationalAssignment(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrEmployeesInternationalAssignment", + API: "UpdateCoreHREmployeesInternationalAssignment", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/employees/international_assignments/:international_assignment_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrEmployeesInternationalAssignmentResp) + resp := new(updateCoreHREmployeesInternationalAssignmentResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrEmployeesInternationalAssignment mock CoreHRUpdateCorehrEmployeesInternationalAssignment method -func (r *Mock) MockCoreHRUpdateCorehrEmployeesInternationalAssignment(f func(ctx context.Context, request *UpdateCorehrEmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCorehrEmployeesInternationalAssignmentResp, *Response, error)) { - r.mockCoreHRUpdateCorehrEmployeesInternationalAssignment = f +// MockCoreHRUpdateCoreHREmployeesInternationalAssignment mock CoreHRUpdateCoreHREmployeesInternationalAssignment method +func (r *Mock) MockCoreHRUpdateCoreHREmployeesInternationalAssignment(f func(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error)) { + r.mockCoreHRUpdateCoreHREmployeesInternationalAssignment = f } -// UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment un-mock CoreHRUpdateCorehrEmployeesInternationalAssignment method -func (r *Mock) UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment() { - r.mockCoreHRUpdateCorehrEmployeesInternationalAssignment = nil +// UnMockCoreHRUpdateCoreHREmployeesInternationalAssignment un-mock CoreHRUpdateCoreHREmployeesInternationalAssignment method +func (r *Mock) UnMockCoreHRUpdateCoreHREmployeesInternationalAssignment() { + r.mockCoreHRUpdateCoreHREmployeesInternationalAssignment = nil } -// UpdateCorehrEmployeesInternationalAssignmentReq ... -type UpdateCorehrEmployeesInternationalAssignmentReq struct { +// UpdateCoreHREmployeesInternationalAssignmentReq ... +type UpdateCoreHREmployeesInternationalAssignmentReq struct { InternationalAssignmentID string `path:"international_assignment_id" json:"-"` // 外派ID- 可通过[批量查询外派](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employees-international_assignment/list)获取示例值: "7127921432117937708" ClientToken *string `query:"client_token" json:"-"` // 幂等标识, 服务端会忽略client_token重复的请求示例值: 12454646 长度范围: `1` ~ `100` 字符 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -81,7 +81,7 @@ type UpdateCorehrEmployeesInternationalAssignmentReq struct { DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取- 类型与 user_id_type 一致示例值: "7127921432117937708" WorkCalendarID *string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取示例值: "7127921432117937708" PositionID *string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7127921432117937708" - CustomFields []*UpdateCorehrEmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` + CustomFields []*UpdateCoreHREmployeesInternationalAssignmentReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) 长度范围: `0` ~ `180` InternationalAssignmentReason *string `json:"international_assignment_reason,omitempty"` // 外派原因说明示例值: "xxx 项目派遣" 长度范围: `0` ~ `5000` 字符 Description *string `json:"description,omitempty"` // 备注示例值: "xxx 项目" 长度范围: `0` ~ `10000` 字符 InternationalAssignmentExpectedEndDate *string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" @@ -90,22 +90,22 @@ type UpdateCorehrEmployeesInternationalAssignmentReq struct { ExpirationTime *string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-01-02" } -// UpdateCorehrEmployeesInternationalAssignmentReqCustomField ... -type UpdateCorehrEmployeesInternationalAssignmentReqCustomField struct { +// UpdateCoreHREmployeesInternationalAssignmentReqCustomField ... +type UpdateCoreHREmployeesInternationalAssignmentReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrEmployeesInternationalAssignmentResp ... -type UpdateCorehrEmployeesInternationalAssignmentResp struct { - InternationalAssignment *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 +// UpdateCoreHREmployeesInternationalAssignmentResp ... +type UpdateCoreHREmployeesInternationalAssignmentResp struct { + InternationalAssignment *UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignment `json:"international_assignment,omitempty"` // 外派信息 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignment ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignment struct { WorkLocationID string `json:"work_location_id,omitempty"` // 外派工作地点 ID - 可通过[【查询单个地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详细信息字段权限要求: 读写外派地点 ServiceCompany string `json:"service_company,omitempty"` // 外派任职公司 ID- 可通过[【查询单个公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/get)获取详细信息字段权限要求: 读写外派公司 - WorkShift *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 + WorkShift *UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift `json:"work_shift,omitempty"` // 排班类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: work_shift字段权限要求: 读写外派排班类型 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度ID- 可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)获取详细信息字段权限要求: 读写外派工时制度 EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型ID- 可通过[【查询单个人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详细信息 WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长字段权限要求: 读写外派周工作时长 @@ -114,81 +114,81 @@ type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignment str JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID- 可通过[【查询单个序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)获取详细信息字段权限要求: 读写外派职级 JobLevelID string `json:"job_level_id,omitempty"` // 职级 ID- 可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息 JobGradeID string `json:"job_grade_id,omitempty"` // 职等 ID- 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息字段权限要求: 读写外派职等 - CompensationType *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 + CompensationType *UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType `json:"compensation_type,omitempty"` // 薪资类型 - 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: job_data - custom_api_name: compensation_type字段权限要求: 读写外派薪资类型 DirectManagerID string `json:"direct_manager_id,omitempty"` // 直属上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 WorkCalendarID string `json:"work_calendar_id,omitempty"` // 工作日历 ID- 可通过[【查询工作日历】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar)获取详细信息字段权限要求: 读写外派工作日历 PositionID string `json:"position_id,omitempty"` // 岗位 ID- 功能灰度中, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 读写外派岗位 EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID- 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息- 类型与 user_id_type 一致 - CustomFields []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 + CustomFields []*UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求: 读写外派自定义字段 InternationalAssignmentReason string `json:"international_assignment_reason,omitempty"` // 外派原因说明 Description string `json:"description,omitempty"` // 备注 InternationalAssignmentExpectedEndDate string `json:"international_assignment_expected_end_date,omitempty"` // 预计结束日期- 格式: yyyy-mm-dd - InternationalAssignmentStatus *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status - InternationalAssignmentType *UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type + InternationalAssignmentStatus *UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus `json:"international_assignment_status,omitempty"` // 外派状态- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_status + InternationalAssignmentType *UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType `json:"international_assignment_type,omitempty"` // 外派类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: international_assignment - custom_api_name: international_assignment_type EffectiveTime string `json:"effective_time,omitempty"` // 开始日期- 格式: yyyy-mm-dd ExpirationTime string `json:"expiration_time,omitempty"` // 结束日期- 格式: yyyy-mm-dd- 在外派未结束时, 该值默认为 9999-12-31 ID string `json:"id,omitempty"` // 外派ID } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentInternationalAssignmentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... -type UpdateCorehrEmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { +// UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay ... +type UpdateCoreHREmployeesInternationalAssignmentRespInternationalAssignmentWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// updateCorehrEmployeesInternationalAssignmentResp ... -type updateCorehrEmployeesInternationalAssignmentResp struct { +// updateCoreHREmployeesInternationalAssignmentResp ... +type updateCoreHREmployeesInternationalAssignmentResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrEmployeesInternationalAssignmentResp `json:"data,omitempty"` + Data *UpdateCoreHREmployeesInternationalAssignmentResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_enum_search.go b/api_corehr_enum_search.go index 2a2fd27e..17d097cb 100644 --- a/api_corehr_enum_search.go +++ b/api_corehr_enum_search.go @@ -21,83 +21,83 @@ import ( "context" ) -// SearchCorehrEnum 根据枚举的APIName查询枚举详细信息, 用于BPM等场景获取枚举选项。 +// SearchCoreHREnum 根据枚举的APIName查询枚举详细信息, 用于BPM等场景获取枚举选项。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/enum/search // new doc: https://open.feishu.cn/document/corehr-v1/basic-infomation/enum/search -func (r *CoreHRService) SearchCorehrEnum(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error) { - if r.cli.mock.mockCoreHRSearchCorehrEnum != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrEnum mock enable") - return r.cli.mock.mockCoreHRSearchCorehrEnum(ctx, request, options...) +func (r *CoreHRService) SearchCoreHREnum(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCoreHREnum != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHREnum mock enable") + return r.cli.mock.mockCoreHRSearchCoreHREnum(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "SearchCorehrEnum", + API: "SearchCoreHREnum", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/enums/search", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(searchCorehrEnumResp) + resp := new(searchCoreHREnumResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRSearchCorehrEnum mock CoreHRSearchCorehrEnum method -func (r *Mock) MockCoreHRSearchCorehrEnum(f func(ctx context.Context, request *SearchCorehrEnumReq, options ...MethodOptionFunc) (*SearchCorehrEnumResp, *Response, error)) { - r.mockCoreHRSearchCorehrEnum = f +// MockCoreHRSearchCoreHREnum mock CoreHRSearchCoreHREnum method +func (r *Mock) MockCoreHRSearchCoreHREnum(f func(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error)) { + r.mockCoreHRSearchCoreHREnum = f } -// UnMockCoreHRSearchCorehrEnum un-mock CoreHRSearchCorehrEnum method -func (r *Mock) UnMockCoreHRSearchCorehrEnum() { - r.mockCoreHRSearchCorehrEnum = nil +// UnMockCoreHRSearchCoreHREnum un-mock CoreHRSearchCoreHREnum method +func (r *Mock) UnMockCoreHRSearchCoreHREnum() { + r.mockCoreHRSearchCoreHREnum = nil } -// SearchCorehrEnumReq ... -type SearchCorehrEnumReq struct { +// SearchCoreHREnumReq ... +type SearchCoreHREnumReq struct { EnumApinameLists []string `json:"enum_apiname_lists,omitempty"` // 枚举apiname列表(不传值查询结果为空)示例值: ["overtime_date_type"] 长度范围: `0` ~ `500` } -// SearchCorehrEnumResp ... -type SearchCorehrEnumResp struct { - Enums []*SearchCorehrEnumRespEnum `json:"enums,omitempty"` // 查询的枚举信息 +// SearchCoreHREnumResp ... +type SearchCoreHREnumResp struct { + Enums []*SearchCoreHREnumRespEnum `json:"enums,omitempty"` // 查询的枚举信息 } -// SearchCorehrEnumRespEnum ... -type SearchCorehrEnumRespEnum struct { +// SearchCoreHREnumRespEnum ... +type SearchCoreHREnumRespEnum struct { EnumApiname string `json:"enum_apiname,omitempty"` // 枚举名称 - EnumItems []*SearchCorehrEnumRespEnumEnumItem `json:"enum_items,omitempty"` // 枚举值 + EnumItems []*SearchCoreHREnumRespEnumEnumItem `json:"enum_items,omitempty"` // 枚举值 } -// SearchCorehrEnumRespEnumEnumItem ... -type SearchCorehrEnumRespEnumEnumItem struct { +// SearchCoreHREnumRespEnumEnumItem ... +type SearchCoreHREnumRespEnumEnumItem struct { ApiName string `json:"api_name,omitempty"` // ApiName - Name []*SearchCorehrEnumRespEnumEnumItemName `json:"name,omitempty"` // 枚举值名 - Description []*SearchCorehrEnumRespEnumEnumItemDescription `json:"description,omitempty"` // 枚举值描述 + Name []*SearchCoreHREnumRespEnumEnumItemName `json:"name,omitempty"` // 枚举值名 + Description []*SearchCoreHREnumRespEnumEnumItemDescription `json:"description,omitempty"` // 枚举值描述 EnumApiName string `json:"enum_api_name,omitempty"` // 所属枚举常量ApiName Order int64 `json:"order,omitempty"` // 顺序 Status int64 `json:"status,omitempty"` // 状态可选值有: 生效失效 } -// SearchCorehrEnumRespEnumEnumItemDescription ... -type SearchCorehrEnumRespEnumEnumItemDescription struct { +// SearchCoreHREnumRespEnumEnumItemDescription ... +type SearchCoreHREnumRespEnumEnumItemDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrEnumRespEnumEnumItemName ... -type SearchCorehrEnumRespEnumEnumItemName struct { +// SearchCoreHREnumRespEnumEnumItemName ... +type SearchCoreHREnumRespEnumEnumItemName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// searchCorehrEnumResp ... -type searchCorehrEnumResp struct { +// searchCoreHREnumResp ... +type searchCoreHREnumResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCorehrEnumResp `json:"data,omitempty"` + Data *SearchCoreHREnumResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_batch_get.go b/api_corehr_job_batch_get.go index fe9b6925..c0b41dae 100644 --- a/api_corehr_job_batch_get.go +++ b/api_corehr_job_batch_get.go @@ -21,106 +21,106 @@ import ( "context" ) -// BatchGetCorehrJob 根据传入的职务ID或职务Code批量获取当前生效版本职务信息。 +// BatchGetCoreHRJob 根据传入的职务ID或职务Code批量获取当前生效版本职务信息。 // // - 本接口会按照「职务资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 // - 申请数据权限后须配置[职务可访问的数据范围], 否则接口无法正常查询数据。可以在「开发者后台 - 权限管理 - 可访问的数据范围」中配置。 // - 职务ID和职务Code可一起使用, 之间为 AND 关系 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/batch_get -func (r *CoreHRService) BatchGetCorehrJob(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchGetCorehrJob != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCorehrJob mock enable") - return r.cli.mock.mockCoreHRBatchGetCorehrJob(ctx, request, options...) +func (r *CoreHRService) BatchGetCoreHRJob(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchGetCoreHRJob != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHRJob mock enable") + return r.cli.mock.mockCoreHRBatchGetCoreHRJob(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchGetCorehrJob", + API: "BatchGetCoreHRJob", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/batch_get", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchGetCorehrJobResp) + resp := new(batchGetCoreHRJobResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchGetCorehrJob mock CoreHRBatchGetCorehrJob method -func (r *Mock) MockCoreHRBatchGetCorehrJob(f func(ctx context.Context, request *BatchGetCorehrJobReq, options ...MethodOptionFunc) (*BatchGetCorehrJobResp, *Response, error)) { - r.mockCoreHRBatchGetCorehrJob = f +// MockCoreHRBatchGetCoreHRJob mock CoreHRBatchGetCoreHRJob method +func (r *Mock) MockCoreHRBatchGetCoreHRJob(f func(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error)) { + r.mockCoreHRBatchGetCoreHRJob = f } -// UnMockCoreHRBatchGetCorehrJob un-mock CoreHRBatchGetCorehrJob method -func (r *Mock) UnMockCoreHRBatchGetCorehrJob() { - r.mockCoreHRBatchGetCorehrJob = nil +// UnMockCoreHRBatchGetCoreHRJob un-mock CoreHRBatchGetCoreHRJob method +func (r *Mock) UnMockCoreHRBatchGetCoreHRJob() { + r.mockCoreHRBatchGetCoreHRJob = nil } -// BatchGetCorehrJobReq ... -type BatchGetCorehrJobReq struct { +// BatchGetCoreHRJobReq ... +type BatchGetCoreHRJobReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID JobIDs []string `json:"job_ids,omitempty"` // 职务 ID 列表。职务ID列表和职务 Code 列表至少有一项有值, 否则接口将调用失败。示例值: ["1522315"] 长度范围: `0` ~ `100` JobCodes []string `json:"job_codes,omitempty"` // 职务 Code 列表。职务ID列表和职务 Code 列表至少有一项有值, 否则接口将调用失败。示例值: ["1332715"] 长度范围: `0` ~ `100` Fields []string `json:"fields,omitempty"` // 需要查询的字段列表, 默认返回id。可选以下预置字段及自定义字段: 可选值有: "job_name": 名称- "code": 编码- "active": 启用状态- "description": 描述- "job_title": 职务头衔- "pathway": 通道ID- "working_hours_type": 工时制度- "job_level": 关联的职级- "job_family": 关联的序列- "effective_date": 当前版本生效日期- "expiration_date": 当前版本失效日期- "created_time": 创建时间- "updated_time": 更新时间- "created_by": 创建人- "updated_by": 更新人- "custom_fields": 自定义字段(需传入具体的"custom_api_name")详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query), 比如:"shifouleixing_7795__c"示例值: ["job_name"] 长度范围: `0` ~ `100` } -// BatchGetCorehrJobResp ... -type BatchGetCorehrJobResp struct { - Items []*BatchGetCorehrJobRespItem `json:"items,omitempty"` // 查询的职务信息 +// BatchGetCoreHRJobResp ... +type BatchGetCoreHRJobResp struct { + Items []*BatchGetCoreHRJobRespItem `json:"items,omitempty"` // 查询的职务信息 } -// BatchGetCorehrJobRespItem ... -type BatchGetCorehrJobRespItem struct { +// BatchGetCoreHRJobRespItem ... +type BatchGetCoreHRJobRespItem struct { ID string `json:"id,omitempty"` // 职务ID Code string `json:"code,omitempty"` // 编码 - Name []*BatchGetCorehrJobRespItemName `json:"name,omitempty"` // 名称 - Description []*BatchGetCorehrJobRespItemDescription `json:"description,omitempty"` // 描述 + Name []*BatchGetCoreHRJobRespItemName `json:"name,omitempty"` // 名称 + Description []*BatchGetCoreHRJobRespItemDescription `json:"description,omitempty"` // 描述 Active bool `json:"active,omitempty"` // 启用状态, true为启用, false为停用 - JobTitle []*BatchGetCorehrJobRespItemJobTitle `json:"job_title,omitempty"` // 职务头衔 + JobTitle []*BatchGetCoreHRJobRespItemJobTitle `json:"job_title,omitempty"` // 职务头衔 PathwayID string `json:"pathway_id,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) JobFamilyIDList []string `json:"job_family_id_list,omitempty"` // 关联的序列ID列表- 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 JobLevelIDList []string `json:"job_level_id_list,omitempty"` // 关联的职级ID列表- 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情字段权限要求: 获取职务中的职级信息 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 枚举值及详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得 EffectiveTime string `json:"effective_time,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 ExpirationTime string `json:"expiration_time,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 - CustomFields []*BatchGetCorehrJobRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段, 格式参考: [【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)岗位、职务、自定义组织模块 + CustomFields []*BatchGetCoreHRJobRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段, 格式参考: [【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)岗位、职务、自定义组织模块 CreatedBy string `json:"created_by,omitempty"` // 创建人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取 CreatedTime string `json:"created_time,omitempty"` // 当前版本创建日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 UpdatedBy string `json:"updated_by,omitempty"` // 更新人, 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取 UpdatedTime string `json:"updated_time,omitempty"` // 当前版本更新日期- 返回格式: YYYY-MM-DD 00:00:00(最小单位到日)- 日期范围:1900-01-01 00:00:00~9999-12-31 00:00:00 } -// BatchGetCorehrJobRespItemCustomField ... -type BatchGetCorehrJobRespItemCustomField struct { +// BatchGetCoreHRJobRespItemCustomField ... +type BatchGetCoreHRJobRespItemCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// BatchGetCorehrJobRespItemDescription ... -type BatchGetCorehrJobRespItemDescription struct { +// BatchGetCoreHRJobRespItemDescription ... +type BatchGetCoreHRJobRespItemDescription struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchGetCorehrJobRespItemJobTitle ... -type BatchGetCorehrJobRespItemJobTitle struct { +// BatchGetCoreHRJobRespItemJobTitle ... +type BatchGetCoreHRJobRespItemJobTitle struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchGetCorehrJobRespItemName ... -type BatchGetCorehrJobRespItemName struct { +// BatchGetCoreHRJobRespItemName ... +type BatchGetCoreHRJobRespItemName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US Value string `json:"value,omitempty"` // 文本内容 } -// batchGetCorehrJobResp ... -type batchGetCorehrJobResp struct { +// batchGetCoreHRJobResp ... +type batchGetCoreHRJobResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCorehrJobResp `json:"data,omitempty"` + Data *BatchGetCoreHRJobResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_change_create.go b/api_corehr_job_change_create.go index 9ed8a10b..e3d3a46f 100644 --- a/api_corehr_job_change_create.go +++ b/api_corehr_job_change_create.go @@ -21,14 +21,13 @@ import ( "context" ) -// CreateCoreHRJobChange 该接口用于发起员工异动(变更员工雇佣信息), 若发起成功, 会生成一条员工的异动数据, 同时产生相应的事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/events/updated) +// CreateCoreHRJobChange 该接口用于发起员工异动(变更员工雇佣信息), 若发起成功, 会生成一条员工的异动数据 // -// 本事件不再推荐使用, 请使用新版本[发起员工异动](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/create) +// 本接口会产生事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) +// 该接口会按照应用拥有的「异动记录资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中申请了「异动记录资源」权限范围 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/create -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/job_change/create -// -// Deprecated +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/create +// new doc: https://open.feishu.cn/document/corehr-v1/job_change/create-2 func (r *CoreHRService) CreateCoreHRJobChange(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) { if r.cli.mock.mockCoreHRCreateCoreHRJobChange != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRJobChange mock enable") @@ -39,7 +38,7 @@ func (r *CoreHRService) CreateCoreHRJobChange(ctx context.Context, request *Crea Scope: "CoreHR", API: "CreateCoreHRJobChange", Method: "POST", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/job_changes", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_changes", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -62,104 +61,61 @@ func (r *Mock) UnMockCoreHRCreateCoreHRJobChange() { // CreateCoreHRJobChangeReq ... type CreateCoreHRJobChangeReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` - TransferMode int64 `json:"transfer_mode,omitempty"` // 异动方式示例值: 2可选值有: 直接异动(无审批)正常异动(完整流程) - EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, ID 类型与查询参数 user_id_type 的取值一致。- 当user_id_type=user_id时, 该字段取员工的user_id, 取值参考user_id_type部分。- 当user_id_type=people_corehr_id时, 则取该员工的人事雇佣ID, 可从[雇佣ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" - TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 不支持仅在特殊场景使用的异动类型, 如组织架构调整、职责转交和试用期转正。可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取示例值: "internal_transfer" - FlowID *string `json:"flow_id,omitempty"` // 关联流程唯一标识符, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取注意: 当异动方式为2时, 该字段为必填示例值: "people_6963913041981490725_6983885526583627531" - EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 格式: "YYYY-MM-DD"示例值: "2022-03-01" - TransferInfo *CreateCoreHRJobChangeReqTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息, 以下参数如不传, 无默认值, 代表对应数据无异动 - TransferKey *string `json:"transfer_key,omitempty"` // 发起异动幂等标志, 发起失败可以重新用此标志继续请求示例值: "transfer_3627531" - InitiatorID *string `json:"initiator_id,omitempty"` // 异动发起人 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + TransferMode int64 `json:"transfer_mode,omitempty"` // 异动方式示例值: 2可选值有: 直接异动(无审批)正常异动(完整流程) + EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, ID 类型与查询参数 user_id_type 的取值一致。- 当user_id_type=user_id时, 该字段取员工的user_id, 取值参考user_id_type部分。- 当user_id_type=people_corehr_id时, 则取该员工的人事雇佣ID, 可从[雇佣ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 不支持仅在特殊场景使用的异动类型, 如组织架构调整、职责转交和试用期转正, 不会校验是否停用。 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取示例值: "internal_transfer" + FlowID *string `json:"flow_id,omitempty"` // 关联流程唯一标识符, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取注意: 当transfer_mode(异动方式)为2时, 该字段为必填示例值: "people_6963913041981490725_6983885526583627531" + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 格式: "YYYY-MM-DD"示例值: "2022-03-01" + TransferInfo *CreateCoreHRJobChangeReqTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息, 以下参数如不传, 无默认值, 代表对应数据无异动 + TransferKey *string `json:"transfer_key,omitempty"` // 异动记录标识符, 发起失败可以重新用此标志继续请求示例值: "transfer_3627531" + InitiatorID *string `json:"initiator_id,omitempty"` // 异动发起人 ID示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferReasonUniqueIdentifier *string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因唯一标识示例值: "involuntary_transfer" } // CreateCoreHRJobChangeReqTransferInfo ... type CreateCoreHRJobChangeReqTransferInfo struct { - Remark *string `json:"remark,omitempty"` // 备注示例值: "异动详情" - OfferInfo *string `json:"offer_info,omitempty"` // offer信息注: 本字段仅会存储到数据库, 前端表单不支持直接显示。示例值: "offer info" - TargetDottedManagerClean *bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级示例值: true - ProbationExist *bool `json:"probation_exist,omitempty"` // 是否有试用期示例值: false - OriginalDepartment *string `json:"original_department,omitempty"` // 原部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" - TargetDepartment *string `json:"target_department,omitempty"` // 新部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" - OriginalWorkLocation *string `json:"original_work_location,omitempty"` // 原工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" - TargetWorkLocation *string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" - OriginalDirectManager *string `json:"original_direct_manager,omitempty"` // 原直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6974641477444060708" - TargetDirectManager *string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013619729281713671" - OriginalDottedManager *string `json:"original_dotted_manager,omitempty"` // 原虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "6974648866876573198" - TargetDottedManager *string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013328578351842852" - OriginalJob *string `json:"original_job,omitempty"` // 原职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469398088287751" - TargetJob *string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469557836760606" - OriginalJobFamily *string `json:"original_job_family,omitempty"` // 原序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" - TargetJobFamily *string `json:"target_job_family,omitempty"` // 新序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" - OriginalJobLevel *string `json:"original_job_level,omitempty"` // 原职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" - TargetJobLevel *string `json:"target_job_level,omitempty"` // 新职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" - OriginalWorkforceType *string `json:"original_workforce_type,omitempty"` // 原人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "6968386026792289828" - TargetWorkforceType *string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "7036268995372303885" - OriginalEmployeeSubtype *string `json:"original_employee_subtype,omitempty"` // 原人员子类型示例值: "6968386026792289828" - TargetEmployeeSubtype *string `json:"target_employee_subtype,omitempty"` // 新人员子类型示例值: "7036268995372303885" - OriginalCompany *string `json:"original_company,omitempty"` // 原公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" - TargetCompany *string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" - OriginalContractNumber *string `json:"original_contract_number,omitempty"` // 原合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55332" - TargetContractNumber *string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55333" - OriginalContractType *string `json:"original_contract_type,omitempty"` // 原合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" - TargetContractType *string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" - OriginalDurationType *string `json:"original_duration_type,omitempty"` // 原期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" - TargetDurationType *string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" - OriginalSigningType *string `json:"original_signing_type,omitempty"` // 原签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" - TargetSigningType *string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" - OriginalContractStartDate *string `json:"original_contract_start_date,omitempty"` // 原合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" - TargetContractStartDate *string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" - OriginalContractEndDate *string `json:"original_contract_end_date,omitempty"` // 原合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" - TargetContractEndDate *string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" - OriginalWorkingHoursType *string `json:"original_working_hours_type,omitempty"` // 原工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" - TargetWorkingHoursType *string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" - OriginalWorkingCalendar *string `json:"original_working_calendar,omitempty"` // 原工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" - TargetWorkingCalendar *string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" - OriginalProbationEndDate *string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" - TargetProbationEndDate *string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" - OriginalWeeklyWorkingHours *string `json:"original_weekly_working_hours,omitempty"` // 原周工作时长示例值: "162" - TargetWeeklyWorkingHours *string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长示例值: "160" - OriginalWorkShift *string `json:"original_work_shift,omitempty"` // 原排班示例值: "work_shift" - TargetWorkShift *string `json:"target_work_shift,omitempty"` // 新排班示例值: "non_work_shift" - OriginalCostCenterRate []*CreateCoreHRJobChangeReqTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊信息 - TargetCostCenterRate []*CreateCoreHRJobChangeReqTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊信息 - OriginalEmploymentChange *CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChange `json:"original_employment_change,omitempty"` // 原工作信息 - TargetEmploymentChange *CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 - OriginalJobGrade *string `json:"original_job_grade,omitempty"` // 原职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" - TargetJobGrade *string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" - OriginalCompensationType *string `json:"original_compensation_type,omitempty"` // 原薪资类型示例值: "hourly" - TargetCompensationType *string `json:"target_compensation_type,omitempty"` // 新薪资类型示例值: "salary" - OriginalServiceCompany *string `json:"original_service_company,omitempty"` // 原任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693367" - TargetServiceCompany *string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693367" - OriginalPosition *string `json:"original_position,omitempty"` // 原岗位示例值: "7289005963599693367" - TargetPosition *string `json:"target_position,omitempty"` // 新岗位示例值: "7289005963599693367" -} - -// CreateCoreHRJobChangeReqTransferInfoOriginalCostCenterRate ... -type CreateCoreHRJobChangeReqTransferInfoOriginalCostCenterRate struct { - CostCenterID *string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" - Rate *int64 `json:"rate,omitempty"` // 分摊比例示例值: 100 -} - -// CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChange ... -type CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChange struct { - RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" - SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" - EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "1111111" - CustomFields []*CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChangeCustomField ... -type CreateCoreHRJobChangeReqTransferInfoOriginalEmploymentChangeCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识。可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")注意: 1.枚举字段值可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name示例值: "231" + Remark *string `json:"remark,omitempty"` // 备注示例值: "异动详情" + OfferInfo *string `json:"offer_info,omitempty"` // offer信息。格式为 json 转义: {\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}。resume_id 为投递ID示例值: "{\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}" + TargetDottedManagerClean *bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。示例值: false + ProbationExist *bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。示例值: true + TargetDepartment *string `json:"target_department,omitempty"` // 新部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" + TargetWorkLocation *string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" + TargetDirectManager *string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013619729281713671" + TargetDottedManager *string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013328578351842852" + TargetJob *string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469557836760606" + TargetJobFamily *string `json:"target_job_family,omitempty"` // 新序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" + TargetJobLevel *string `json:"target_job_level,omitempty"` // 新职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" + TargetWorkforceType *string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "7036268995372303885" + TargetEmployeeSubtype *string `json:"target_employee_subtype,omitempty"` // 新人员子类型, 请填与工作地点和人员类型匹配的人员子类型。示例值: "7036268995372303885" + TargetCompany *string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" + TargetContractNumber *string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55333" + TargetContractType *string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" + TargetDurationType *string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" + TargetSigningType *string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" + TargetContractStartDate *string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" + TargetContractEndDate *string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" + TargetWorkingHoursType *string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" + TargetWorkingCalendar *string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" + TargetProbationEndDate *string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" + TargetWeeklyWorkingHours *string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长。取值范围1-168, 单位是小时。示例值: "160" + TargetWorkShift *string `json:"target_work_shift,omitempty"` // 新排班示例值: "non_work_shift" + TargetCostCenterRates []*CreateCoreHRJobChangeReqTransferInfoTargetCostCenterRate `json:"target_cost_center_rates,omitempty"` // 新成本中心分摊方式 长度范围: `0` ~ `100` + TargetEmploymentChange *CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 + TargetJobGrade *string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" + TargetCompensationType *string `json:"target_compensation_type,omitempty"` // 新薪资类型示例值: "salary" + TargetServiceCompany *string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693368" + TargetPosition *string `json:"target_position,omitempty"` // 新岗位示例值: "7289005963599693367" + TargetSocialSecurityCity *string `json:"target_social_security_city,omitempty"` // 新社保城市示例值: "7289005963599693367" + IsTransferWithWorkforce *bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整示例值: false + TargetPathway *string `json:"target_pathway,omitempty"` // 新通道示例值: "7289005963599693368" } // CreateCoreHRJobChangeReqTransferInfoTargetCostCenterRate ... type CreateCoreHRJobChangeReqTransferInfoTargetCostCenterRate struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" - Rate *int64 `json:"rate,omitempty"` // 分摊比例示例值: 100 + Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 } // CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChange ... @@ -173,95 +129,116 @@ type CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChange struct { // CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChangeCustomField ... type CreateCoreHRJobChangeReqTransferInfoTargetEmploymentChangeCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识。可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")注意: 1.枚举字段值可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name示例值: "231" + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")注意: 1.枚举字段值可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name示例值: "\"231\"" } // CreateCoreHRJobChangeResp ... type CreateCoreHRJobChangeResp struct { - JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id, 可通过接口[搜索异动信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search)获取详细信息 - EmploymentID string `json:"employment_id,omitempty"` // 雇员 id, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - Status int64 `json:"status,omitempty"` // 异动状态可选值有: Approving 审批中Approved 审批通过Transformed 已异动Rejected 已拒绝Cancelled 已撤销NoNeedApproval 无需审批 - TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取详细信息 - TransferReasonUniqueIdentifier string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因唯一标识, 可通过接口[获取异动原因列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_reason/query)获取详细信息 - ProcessID string `json:"process_id,omitempty"` // 异动发起后审批流程 id, 可通过【流程-获取单个流程列表】获取详细信息 - EffectiveDate string `json:"effective_date,omitempty"` // 异动生效日期, 格式: "YYYY-MM-DD" - CreatedTime string `json:"created_time,omitempty"` // 创建时间, 格式: "YYYY-MM-DD" - TransferInfo *CreateCoreHRJobChangeRespTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 + JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id + Status string `json:"status,omitempty"` // 异动状态可选值有: 审批中审批通过已异动已拒绝已撤销无需审批 + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型 + TransferReasonUniqueIdentifier string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因 + ProcessID string `json:"process_id,omitempty"` // 异动流程 id + EffectiveDate string `json:"effective_date,omitempty"` // 生效时间 + CreatedTime string `json:"created_time,omitempty"` // 创建时间 + TransferInfo *CreateCoreHRJobChangeRespTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 + IsAdjustSalary bool `json:"is_adjust_salary,omitempty"` // 是否调整薪酬字段权限要求: 获取异动单据是否调薪字段 + CustomFields []*CreateCoreHRJobChangeRespCustomField `json:"custom_fields,omitempty"` // 异动自定义字段字段权限要求: 获取员工异动自定义字段信息 +} + +// CreateCoreHRJobChangeRespCustomField ... +type CreateCoreHRJobChangeRespCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCoreHRJobChangeRespCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +} + +// CreateCoreHRJobChangeRespCustomFieldName ... +type CreateCoreHRJobChangeRespCustomFieldName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文 + EnUs string `json:"en_us,omitempty"` // 英文 } // CreateCoreHRJobChangeRespTransferInfo ... type CreateCoreHRJobChangeRespTransferInfo struct { - Remark string `json:"remark,omitempty"` // 备注 - OfferInfo string `json:"offer_info,omitempty"` // offer信息(数据仅会存储到系统, 不支持页面上显示) - TargetDottedManagerClean bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级 - ProbationExist bool `json:"probation_exist,omitempty"` // 是否有试用期 - OriginalDepartment string `json:"original_department,omitempty"` // 原部门, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取 - TargetDepartment string `json:"target_department,omitempty"` // 新部门, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取 - OriginalWorkLocation string `json:"original_work_location,omitempty"` // 原工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取 - TargetWorkLocation string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取 - OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - OriginalDottedManager string `json:"original_dotted_manager,omitempty"` // 原虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - TargetDottedManager string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 - OriginalJob string `json:"original_job,omitempty"` // 原职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取 - TargetJob string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取 - OriginalJobFamily string `json:"original_job_family,omitempty"` // 原序列, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取 - TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取 - OriginalJobLevel string `json:"original_job_level,omitempty"` // 原级别, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取 - TargetJobLevel string `json:"target_job_level,omitempty"` // 新职级, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取 - OriginalWorkforceType string `json:"original_workforce_type,omitempty"` // 原人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取 - TargetWorkforceType string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取 + Remark string `json:"remark,omitempty"` // 备注字段权限要求: 获取异动流程备注信息 + OfferInfo string `json:"offer_info,omitempty"` // offer信息 + TargetDottedManagerClean bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。 + ProbationExist bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。 + OriginalDepartment string `json:"original_department,omitempty"` // 原部门 + TargetDepartment string `json:"target_department,omitempty"` // 新部门 + OriginalWorkLocation string `json:"original_work_location,omitempty"` // 原工作地点 + TargetWorkLocation string `json:"target_work_location,omitempty"` // 新工作地点 + OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级 + TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级 + OriginalDottedManager string `json:"original_dotted_manager,omitempty"` // 原虚线上级 + TargetDottedManager string `json:"target_dotted_manager,omitempty"` // 新虚线上级 + OriginalJob string `json:"original_job,omitempty"` // 原职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + TargetJob string `json:"target_job,omitempty"` // 新职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + OriginalJobFamily string `json:"original_job_family,omitempty"` // 原序列 + TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列 + OriginalJobLevel string `json:"original_job_level,omitempty"` // 原级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + TargetJobLevel string `json:"target_job_level,omitempty"` // 新级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + OriginalWorkforceType string `json:"original_workforce_type,omitempty"` // 原人员类型 + TargetWorkforceType string `json:"target_workforce_type,omitempty"` // 新人员类型 OriginalEmployeeSubtype string `json:"original_employee_subtype,omitempty"` // 原人员子类型 TargetEmployeeSubtype string `json:"target_employee_subtype,omitempty"` // 新人员子类型 - OriginalCompany string `json:"original_company,omitempty"` // 原公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得 - TargetCompany string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得 - OriginalContractNumber string `json:"original_contract_number,omitempty"` // 原合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - TargetContractNumber string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - OriginalContractType string `json:"original_contract_type,omitempty"` // 原合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - TargetContractType string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - OriginalDurationType string `json:"original_duration_type,omitempty"` // 原期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - TargetDurationType string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - OriginalSigningType string `json:"original_signing_type,omitempty"` // 原签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - TargetSigningType string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息 - OriginalContractStartDate string `json:"original_contract_start_date,omitempty"` // 原合同开始日期, 格式: "YYYY-MM-DD" - TargetContractStartDate string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD" - OriginalContractEndDate string `json:"original_contract_end_date,omitempty"` // 原合同结束日期, 格式: "YYYY-MM-DD" - TargetContractEndDate string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD" - OriginalWorkingHoursType string `json:"original_working_hours_type,omitempty"` // 原工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取 - TargetWorkingHoursType string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取 - OriginalWorkingCalendar string `json:"original_working_calendar,omitempty"` // 原工作日历, 请开通休假服务后联系管理员获取工作日历数据 - TargetWorkingCalendar string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据 - OriginalProbationEndDate string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期, 格式: "YYYY-MM-DD" - TargetProbationEndDate string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD" + OriginalCompany string `json:"original_company,omitempty"` // 原公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + TargetCompany string `json:"target_company,omitempty"` // 新公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + OriginalContractNumber string `json:"original_contract_number,omitempty"` // 原合同编号 + TargetContractNumber string `json:"target_contract_number,omitempty"` // 新合同编号 + OriginalContractType string `json:"original_contract_type,omitempty"` // 原合同类型 + TargetContractType string `json:"target_contract_type,omitempty"` // 新合同类型 + OriginalDurationType string `json:"original_duration_type,omitempty"` // 原期限类型 + TargetDurationType string `json:"target_duration_type,omitempty"` // 新期限类型 + OriginalSigningType string `json:"original_signing_type,omitempty"` // 原签订类型 + TargetSigningType string `json:"target_signing_type,omitempty"` // 新签订类型 + OriginalContractStartDate string `json:"original_contract_start_date,omitempty"` // 原合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractStartDate string `json:"target_contract_start_date,omitempty"` // 新合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalContractEndDate string `json:"original_contract_end_date,omitempty"` // 原合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractEndDate string `json:"target_contract_end_date,omitempty"` // 新合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalWorkingHoursType string `json:"original_working_hours_type,omitempty"` // 原工时制度 + TargetWorkingHoursType string `json:"target_working_hours_type,omitempty"` // 新工时制度 + OriginalWorkingCalendar string `json:"original_working_calendar,omitempty"` // 原工作日历 + TargetWorkingCalendar string `json:"target_working_calendar,omitempty"` // 新工作日历 + OriginalProbationEndDate string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期 + TargetProbationEndDate string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期 OriginalWeeklyWorkingHours string `json:"original_weekly_working_hours,omitempty"` // 原周工作时长 TargetWeeklyWorkingHours string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长 OriginalWorkShift string `json:"original_work_shift,omitempty"` // 原排班 TargetWorkShift string `json:"target_work_shift,omitempty"` // 新排班 - OriginalCostCenterRate []*CreateCoreHRJobChangeRespTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊信息 - TargetCostCenterRate []*CreateCoreHRJobChangeRespTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊信息 + OriginalCostCenterRate []*CreateCoreHRJobChangeRespTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 + TargetCostCenterRate []*CreateCoreHRJobChangeRespTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 OriginalEmploymentChange *CreateCoreHRJobChangeRespTransferInfoOriginalEmploymentChange `json:"original_employment_change,omitempty"` // 原工作信息 TargetEmploymentChange *CreateCoreHRJobChangeRespTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 - OriginalJobGrade string `json:"original_job_grade,omitempty"` // 原职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取 - TargetJobGrade string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取 - OriginalCompensationType string `json:"original_compensation_type,omitempty"` // 原薪资类型, 请开通薪酬服务后联系管理员获取字段权限要求: 获取薪资类型 - TargetCompensationType string `json:"target_compensation_type,omitempty"` // 新薪资类型, 请开通薪酬服务后联系管理员获取字段权限要求: 获取薪资类型 - OriginalServiceCompany string `json:"original_service_company,omitempty"` // 原任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得字段权限要求: 获取任职公司 - TargetServiceCompany string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得字段权限要求: 获取任职公司 + OriginalJobGrade string `json:"original_job_grade,omitempty"` // 原职等字段权限要求(满足任一): 获取职等信息读写职等信息 + TargetJobGrade string `json:"target_job_grade,omitempty"` // 新职等字段权限要求(满足任一): 获取职等信息读写职等信息 + OriginalCompensationType string `json:"original_compensation_type,omitempty"` // 原薪资类型字段权限要求: 获取薪资类型 + TargetCompensationType string `json:"target_compensation_type,omitempty"` // 新薪资类型字段权限要求: 获取薪资类型 + OriginalServiceCompany string `json:"original_service_company,omitempty"` // 原任职公司字段权限要求: 获取任职公司 + TargetServiceCompany string `json:"target_service_company,omitempty"` // 新任职公司字段权限要求: 获取任职公司 OriginalPosition string `json:"original_position,omitempty"` // 原岗位 TargetPosition string `json:"target_position,omitempty"` // 新岗位 + OriginalSocialSecurityCity string `json:"original_social_security_city,omitempty"` // 原社保城市字段权限要求: 获取异动单据社保字段 + TargetSocialSecurityCity string `json:"target_social_security_city,omitempty"` // 新社保城市字段权限要求: 获取异动单据社保字段 + OriginalPathway string `json:"original_pathway,omitempty"` // 原通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + TargetPathway string `json:"target_pathway,omitempty"` // 新通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + IsTransferWithWorkforce bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整 } // CreateCoreHRJobChangeRespTransferInfoOriginalCostCenterRate ... type CreateCoreHRJobChangeRespTransferInfoOriginalCostCenterRate struct { - CostCenterID string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得 - Rate int64 `json:"rate,omitempty"` // 分摊比例 + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) } // CreateCoreHRJobChangeRespTransferInfoOriginalEmploymentChange ... type CreateCoreHRJobChangeRespTransferInfoOriginalEmploymentChange struct { - RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD" - SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD" - EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 CustomFields []*CreateCoreHRJobChangeRespTransferInfoOriginalEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 } @@ -281,15 +258,15 @@ type CreateCoreHRJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldNam // CreateCoreHRJobChangeRespTransferInfoTargetCostCenterRate ... type CreateCoreHRJobChangeRespTransferInfoTargetCostCenterRate struct { - CostCenterID string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得 - Rate int64 `json:"rate,omitempty"` // 分摊比例 + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 + Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) } // CreateCoreHRJobChangeRespTransferInfoTargetEmploymentChange ... type CreateCoreHRJobChangeRespTransferInfoTargetEmploymentChange struct { - RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD" - SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD" - EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取 + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 CustomFields []*CreateCoreHRJobChangeRespTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 } diff --git a/api_corehr_job_change_create_v2.go b/api_corehr_job_change_create_v2.go index 81e7a309..be4d6b0d 100644 --- a/api_corehr_job_change_create_v2.go +++ b/api_corehr_job_change_create_v2.go @@ -21,273 +21,273 @@ import ( "context" ) -// CreateCorehrJobChange 该接口用于发起员工异动(变更员工雇佣信息), 若发起成功, 会生成一条员工的异动数据 +// CreateCoreHRJobChangeV2 该接口用于发起员工异动(变更员工雇佣信息), 若发起成功, 会生成一条员工的异动数据 // // 本接口会产生事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/events/status_updated) // 该接口会按照应用拥有的「异动记录资源」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中申请了「异动记录资源」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/create // new doc: https://open.feishu.cn/document/corehr-v1/job_change/create-2 -func (r *CoreHRService) CreateCorehrJobChange(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrJobChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobChange mock enable") - return r.cli.mock.mockCoreHRCreateCorehrJobChange(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRJobChangeV2(ctx context.Context, request *CreateCoreHRJobChangeV2Req, options ...MethodOptionFunc) (*CreateCoreHRJobChangeV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRJobChangeV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRJobChangeV2 mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRJobChangeV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrJobChange", + API: "CreateCoreHRJobChangeV2", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_changes", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrJobChangeResp) + resp := new(createCoreHRJobChangeV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrJobChange mock CoreHRCreateCorehrJobChange method -func (r *Mock) MockCoreHRCreateCorehrJobChange(f func(ctx context.Context, request *CreateCorehrJobChangeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeResp, *Response, error)) { - r.mockCoreHRCreateCorehrJobChange = f +// MockCoreHRCreateCoreHRJobChangeV2 mock CoreHRCreateCoreHRJobChangeV2 method +func (r *Mock) MockCoreHRCreateCoreHRJobChangeV2(f func(ctx context.Context, request *CreateCoreHRJobChangeV2Req, options ...MethodOptionFunc) (*CreateCoreHRJobChangeV2Resp, *Response, error)) { + r.mockCoreHRCreateCoreHRJobChangeV2 = f } -// UnMockCoreHRCreateCorehrJobChange un-mock CoreHRCreateCorehrJobChange method -func (r *Mock) UnMockCoreHRCreateCorehrJobChange() { - r.mockCoreHRCreateCorehrJobChange = nil +// UnMockCoreHRCreateCoreHRJobChangeV2 un-mock CoreHRCreateCoreHRJobChangeV2 method +func (r *Mock) UnMockCoreHRCreateCoreHRJobChangeV2() { + r.mockCoreHRCreateCoreHRJobChangeV2 = nil } -// CreateCorehrJobChangeReq ... -type CreateCorehrJobChangeReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` - TransferMode int64 `json:"transfer_mode,omitempty"` // 异动方式示例值: 2可选值有: 直接异动(无审批)正常异动(完整流程) - EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, ID 类型与查询参数 user_id_type 的取值一致。- 当user_id_type=user_id时, 该字段取员工的user_id, 取值参考user_id_type部分。- 当user_id_type=people_corehr_id时, 则取该员工的人事雇佣ID, 可从[雇佣ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" - TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 不支持仅在特殊场景使用的异动类型, 如组织架构调整、职责转交和试用期转正, 不会校验是否停用。 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取示例值: "internal_transfer" - FlowID *string `json:"flow_id,omitempty"` // 关联流程唯一标识符, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取注意: 当transfer_mode(异动方式)为2时, 该字段为必填示例值: "people_6963913041981490725_6983885526583627531" - EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 格式: "YYYY-MM-DD"示例值: "2022-03-01" - TransferInfo *CreateCorehrJobChangeReqTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息, 以下参数如不传, 无默认值, 代表对应数据无异动 - TransferKey *string `json:"transfer_key,omitempty"` // 异动记录标识符, 发起失败可以重新用此标志继续请求示例值: "transfer_3627531" - InitiatorID *string `json:"initiator_id,omitempty"` // 异动发起人 ID示例值: "ou_a294793e8fa21529f2a60e3e9de45520" - TransferReasonUniqueIdentifier *string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因唯一标识示例值: "involuntary_transfer" +// CreateCoreHRJobChangeV2Req ... +type CreateCoreHRJobChangeV2Req struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` + TransferMode int64 `json:"transfer_mode,omitempty"` // 异动方式示例值: 2可选值有: 直接异动(无审批)正常异动(完整流程) + EmploymentID string `json:"employment_id,omitempty"` // 雇员ID, ID 类型与查询参数 user_id_type 的取值一致。- 当user_id_type=user_id时, 该字段取员工的user_id, 取值参考user_id_type部分。- 当user_id_type=people_corehr_id时, 则取该员工的人事雇佣ID, 可从[雇佣ID](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型唯一标识, 不支持仅在特殊场景使用的异动类型, 如组织架构调整、职责转交和试用期转正, 不会校验是否停用。 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取示例值: "internal_transfer" + FlowID *string `json:"flow_id,omitempty"` // 关联流程唯一标识符, 可通过接口[获取异动类型列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/transfer_type/query)获取注意: 当transfer_mode(异动方式)为2时, 该字段为必填示例值: "people_6963913041981490725_6983885526583627531" + EffectiveDate string `json:"effective_date,omitempty"` // 生效日期, 格式: "YYYY-MM-DD"示例值: "2022-03-01" + TransferInfo *CreateCoreHRJobChangeV2ReqTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息, 以下参数如不传, 无默认值, 代表对应数据无异动 + TransferKey *string `json:"transfer_key,omitempty"` // 异动记录标识符, 发起失败可以重新用此标志继续请求示例值: "transfer_3627531" + InitiatorID *string `json:"initiator_id,omitempty"` // 异动发起人 ID示例值: "ou_a294793e8fa21529f2a60e3e9de45520" + TransferReasonUniqueIdentifier *string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因唯一标识示例值: "involuntary_transfer" } -// CreateCorehrJobChangeReqTransferInfo ... -type CreateCorehrJobChangeReqTransferInfo struct { - Remark *string `json:"remark,omitempty"` // 备注示例值: "异动详情" - OfferInfo *string `json:"offer_info,omitempty"` // offer信息。格式为 json 转义: {\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}。resume_id 为投递ID示例值: "{\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}" - TargetDottedManagerClean *bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。示例值: false - ProbationExist *bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。示例值: true - TargetDepartment *string `json:"target_department,omitempty"` // 新部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" - TargetWorkLocation *string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" - TargetDirectManager *string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013619729281713671" - TargetDottedManager *string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013328578351842852" - TargetJob *string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469557836760606" - TargetJobFamily *string `json:"target_job_family,omitempty"` // 新序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" - TargetJobLevel *string `json:"target_job_level,omitempty"` // 新职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" - TargetWorkforceType *string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "7036268995372303885" - TargetEmployeeSubtype *string `json:"target_employee_subtype,omitempty"` // 新人员子类型, 请填与工作地点和人员类型匹配的人员子类型。示例值: "7036268995372303885" - TargetCompany *string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" - TargetContractNumber *string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55333" - TargetContractType *string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" - TargetDurationType *string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" - TargetSigningType *string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" - TargetContractStartDate *string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" - TargetContractEndDate *string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" - TargetWorkingHoursType *string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" - TargetWorkingCalendar *string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" - TargetProbationEndDate *string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" - TargetWeeklyWorkingHours *string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长。取值范围1-168, 单位是小时。示例值: "160" - TargetWorkShift *string `json:"target_work_shift,omitempty"` // 新排班示例值: "non_work_shift" - TargetCostCenterRates []*CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate `json:"target_cost_center_rates,omitempty"` // 新成本中心分摊方式 长度范围: `0` ~ `100` - TargetEmploymentChange *CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 - TargetJobGrade *string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" - TargetCompensationType *string `json:"target_compensation_type,omitempty"` // 新薪资类型示例值: "salary" - TargetServiceCompany *string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693368" - TargetPosition *string `json:"target_position,omitempty"` // 新岗位示例值: "7289005963599693367" - TargetSocialSecurityCity *string `json:"target_social_security_city,omitempty"` // 新社保城市示例值: "7289005963599693367" - IsTransferWithWorkforce *bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整示例值: false - TargetPathway *string `json:"target_pathway,omitempty"` // 新通道示例值: "7289005963599693368" +// CreateCoreHRJobChangeV2ReqTransferInfo ... +type CreateCoreHRJobChangeV2ReqTransferInfo struct { + Remark *string `json:"remark,omitempty"` // 备注示例值: "异动详情" + OfferInfo *string `json:"offer_info,omitempty"` // offer信息。格式为 json 转义: {\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}。resume_id 为投递ID示例值: "{\"resume_id\": \"xx\", \"resume_detail\": \"yy\"}" + TargetDottedManagerClean *bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。示例值: false + ProbationExist *bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。示例值: true + TargetDepartment *string `json:"target_department,omitempty"` // 新部门ID, 可通过[【批量查询部门】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "6966236933198579208" + TargetWorkLocation *string `json:"target_work_location,omitempty"` // 新工作地点, 可通过[【批量查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取示例值: "6967271100992587295" + TargetDirectManager *string `json:"target_direct_manager,omitempty"` // 新直属上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013619729281713671" + TargetDottedManager *string `json:"target_dotted_manager,omitempty"` // 新虚线上级, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7013328578351842852" + TargetJob *string `json:"target_job,omitempty"` // 新职务, 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6969469557836760606" + TargetJobFamily *string `json:"target_job_family,omitempty"` // 新序列ID, 可通过[【批量查询序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6967287547462419975" + TargetJobLevel *string `json:"target_job_level,omitempty"` // 新职级ID, 可通过[【批量查询职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6972085707674355214" + TargetWorkforceType *string `json:"target_workforce_type,omitempty"` // 新人员类型, 可通过[【批量查询人员类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)接口获取示例值: "7036268995372303885" + TargetEmployeeSubtype *string `json:"target_employee_subtype,omitempty"` // 新人员子类型, 请填与工作地点和人员类型匹配的人员子类型。示例值: "7036268995372303885" + TargetCompany *string `json:"target_company,omitempty"` // 新公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "6974659700705068581" + TargetContractNumber *string `json:"target_contract_number,omitempty"` // 新合同编号, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "55333" + TargetContractType *string `json:"target_contract_type,omitempty"` // 新合同类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "labor_contract" + TargetDurationType *string `json:"target_duration_type,omitempty"` // 新期限类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "fixed_term" + TargetSigningType *string `json:"target_signing_type,omitempty"` // 新签订类型, 可通过[【批量查询合同】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/contract/list)接口获取详细信息示例值: "new" + TargetContractStartDate *string `json:"target_contract_start_date,omitempty"` // 新合同开始日期, 格式: "YYYY-MM-DD"示例值: "2021-07-01" + TargetContractEndDate *string `json:"target_contract_end_date,omitempty"` // 新合同结束日期, 格式: "YYYY-MM-DD"示例值: "2024-07-01" + TargetWorkingHoursType *string `json:"target_working_hours_type,omitempty"` // 新工时制度, 可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获取示例值: "6969087376740206087" + TargetWorkingCalendar *string `json:"target_working_calendar,omitempty"` // 新工作日历, 请开通休假服务后联系管理员获取工作日历数据示例值: "6969087376740236087" + TargetProbationEndDate *string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2021-11-17" + TargetWeeklyWorkingHours *string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长。取值范围1-168, 单位是小时。示例值: "160" + TargetWorkShift *string `json:"target_work_shift,omitempty"` // 新排班示例值: "non_work_shift" + TargetCostCenterRates []*CreateCoreHRJobChangeV2ReqTransferInfoTargetCostCenterRate `json:"target_cost_center_rates,omitempty"` // 新成本中心分摊方式 长度范围: `0` ~ `100` + TargetEmploymentChange *CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 + TargetJobGrade *string `json:"target_job_grade,omitempty"` // 新职等, 可通过[【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "7289005963599693366" + TargetCompensationType *string `json:"target_compensation_type,omitempty"` // 新薪资类型示例值: "salary" + TargetServiceCompany *string `json:"target_service_company,omitempty"` // 新任职公司, 详细信息可通过[【批量查询公司】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询获得示例值: "7289005963599693368" + TargetPosition *string `json:"target_position,omitempty"` // 新岗位示例值: "7289005963599693367" + TargetSocialSecurityCity *string `json:"target_social_security_city,omitempty"` // 新社保城市示例值: "7289005963599693367" + IsTransferWithWorkforce *bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整示例值: false + TargetPathway *string `json:"target_pathway,omitempty"` // 新通道示例值: "7289005963599693368" } -// CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate ... -type CreateCorehrJobChangeReqTransferInfoTargetCostCenterRate struct { +// CreateCoreHRJobChangeV2ReqTransferInfoTargetCostCenterRate ... +type CreateCoreHRJobChangeV2ReqTransferInfoTargetCostCenterRate struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 支持的成本中心id, 详细信息可通过[【搜索成本中心信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口查询获得示例值: "6950635856373745165" Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 } -// CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange ... -type CreateCorehrJobChangeReqTransferInfoTargetEmploymentChange struct { - RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" - SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" - EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "1111111" - CustomFields []*CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChange ... +type CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChange struct { + RegularEmployeeStartDate *string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" + SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期, 格式: "YYYY-MM-DD"示例值: "2023-01-01" + EmployeeNumber *string `json:"employee_number,omitempty"` // 员工编号, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "1111111" + CustomFields []*CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField ... -type CreateCorehrJobChangeReqTransferInfoTargetEmploymentChangeCustomField struct { +// CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChangeCustomField ... +type CreateCoreHRJobChangeV2ReqTransferInfoTargetEmploymentChangeCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识。可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")注意: 1.枚举字段值可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name示例值: "\"231\"" } -// CreateCorehrJobChangeResp ... -type CreateCorehrJobChangeResp struct { - JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id - EmploymentID string `json:"employment_id,omitempty"` // 雇员 id - Status string `json:"status,omitempty"` // 异动状态可选值有: 审批中审批通过已异动已拒绝已撤销无需审批 - TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型 - TransferReasonUniqueIdentifier string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因 - ProcessID string `json:"process_id,omitempty"` // 异动流程 id - EffectiveDate string `json:"effective_date,omitempty"` // 生效时间 - CreatedTime string `json:"created_time,omitempty"` // 创建时间 - TransferInfo *CreateCorehrJobChangeRespTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 - IsAdjustSalary bool `json:"is_adjust_salary,omitempty"` // 是否调整薪酬字段权限要求: 获取异动单据是否调薪字段 - CustomFields []*CreateCorehrJobChangeRespCustomField `json:"custom_fields,omitempty"` // 异动自定义字段字段权限要求: 获取员工异动自定义字段信息 +// CreateCoreHRJobChangeV2Resp ... +type CreateCoreHRJobChangeV2Resp struct { + JobChangeID string `json:"job_change_id,omitempty"` // 异动记录 id + EmploymentID string `json:"employment_id,omitempty"` // 雇员 id + Status string `json:"status,omitempty"` // 异动状态可选值有: 审批中审批通过已异动已拒绝已撤销无需审批 + TransferTypeUniqueIdentifier string `json:"transfer_type_unique_identifier,omitempty"` // 异动类型 + TransferReasonUniqueIdentifier string `json:"transfer_reason_unique_identifier,omitempty"` // 异动原因 + ProcessID string `json:"process_id,omitempty"` // 异动流程 id + EffectiveDate string `json:"effective_date,omitempty"` // 生效时间 + CreatedTime string `json:"created_time,omitempty"` // 创建时间 + TransferInfo *CreateCoreHRJobChangeV2RespTransferInfo `json:"transfer_info,omitempty"` // 异动详细信息 + IsAdjustSalary bool `json:"is_adjust_salary,omitempty"` // 是否调整薪酬字段权限要求: 获取异动单据是否调薪字段 + CustomFields []*CreateCoreHRJobChangeV2RespCustomField `json:"custom_fields,omitempty"` // 异动自定义字段字段权限要求: 获取员工异动自定义字段信息 } -// CreateCorehrJobChangeRespCustomField ... -type CreateCorehrJobChangeRespCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCorehrJobChangeRespCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +// CreateCoreHRJobChangeV2RespCustomField ... +type CreateCoreHRJobChangeV2RespCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCoreHRJobChangeV2RespCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// CreateCorehrJobChangeRespCustomFieldName ... -type CreateCorehrJobChangeRespCustomFieldName struct { +// CreateCoreHRJobChangeV2RespCustomFieldName ... +type CreateCoreHRJobChangeV2RespCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// CreateCorehrJobChangeRespTransferInfo ... -type CreateCorehrJobChangeRespTransferInfo struct { - Remark string `json:"remark,omitempty"` // 备注字段权限要求: 获取异动流程备注信息 - OfferInfo string `json:"offer_info,omitempty"` // offer信息 - TargetDottedManagerClean bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。 - ProbationExist bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。 - OriginalDepartment string `json:"original_department,omitempty"` // 原部门 - TargetDepartment string `json:"target_department,omitempty"` // 新部门 - OriginalWorkLocation string `json:"original_work_location,omitempty"` // 原工作地点 - TargetWorkLocation string `json:"target_work_location,omitempty"` // 新工作地点 - OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级 - TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级 - OriginalDottedManager string `json:"original_dotted_manager,omitempty"` // 原虚线上级 - TargetDottedManager string `json:"target_dotted_manager,omitempty"` // 新虚线上级 - OriginalJob string `json:"original_job,omitempty"` // 原职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 - TargetJob string `json:"target_job,omitempty"` // 新职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 - OriginalJobFamily string `json:"original_job_family,omitempty"` // 原序列 - TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列 - OriginalJobLevel string `json:"original_job_level,omitempty"` // 原级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 - TargetJobLevel string `json:"target_job_level,omitempty"` // 新级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 - OriginalWorkforceType string `json:"original_workforce_type,omitempty"` // 原人员类型 - TargetWorkforceType string `json:"target_workforce_type,omitempty"` // 新人员类型 - OriginalEmployeeSubtype string `json:"original_employee_subtype,omitempty"` // 原人员子类型 - TargetEmployeeSubtype string `json:"target_employee_subtype,omitempty"` // 新人员子类型 - OriginalCompany string `json:"original_company,omitempty"` // 原公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 - TargetCompany string `json:"target_company,omitempty"` // 新公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 - OriginalContractNumber string `json:"original_contract_number,omitempty"` // 原合同编号 - TargetContractNumber string `json:"target_contract_number,omitempty"` // 新合同编号 - OriginalContractType string `json:"original_contract_type,omitempty"` // 原合同类型 - TargetContractType string `json:"target_contract_type,omitempty"` // 新合同类型 - OriginalDurationType string `json:"original_duration_type,omitempty"` // 原期限类型 - TargetDurationType string `json:"target_duration_type,omitempty"` // 新期限类型 - OriginalSigningType string `json:"original_signing_type,omitempty"` // 原签订类型 - TargetSigningType string `json:"target_signing_type,omitempty"` // 新签订类型 - OriginalContractStartDate string `json:"original_contract_start_date,omitempty"` // 原合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 - TargetContractStartDate string `json:"target_contract_start_date,omitempty"` // 新合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 - OriginalContractEndDate string `json:"original_contract_end_date,omitempty"` // 原合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 - TargetContractEndDate string `json:"target_contract_end_date,omitempty"` // 新合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 - OriginalWorkingHoursType string `json:"original_working_hours_type,omitempty"` // 原工时制度 - TargetWorkingHoursType string `json:"target_working_hours_type,omitempty"` // 新工时制度 - OriginalWorkingCalendar string `json:"original_working_calendar,omitempty"` // 原工作日历 - TargetWorkingCalendar string `json:"target_working_calendar,omitempty"` // 新工作日历 - OriginalProbationEndDate string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期 - TargetProbationEndDate string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期 - OriginalWeeklyWorkingHours string `json:"original_weekly_working_hours,omitempty"` // 原周工作时长 - TargetWeeklyWorkingHours string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长 - OriginalWorkShift string `json:"original_work_shift,omitempty"` // 原排班 - TargetWorkShift string `json:"target_work_shift,omitempty"` // 新排班 - OriginalCostCenterRate []*CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 - TargetCostCenterRate []*CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 - OriginalEmploymentChange *CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange `json:"original_employment_change,omitempty"` // 原工作信息 - TargetEmploymentChange *CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 - OriginalJobGrade string `json:"original_job_grade,omitempty"` // 原职等字段权限要求(满足任一): 获取职等信息读写职等信息 - TargetJobGrade string `json:"target_job_grade,omitempty"` // 新职等字段权限要求(满足任一): 获取职等信息读写职等信息 - OriginalCompensationType string `json:"original_compensation_type,omitempty"` // 原薪资类型字段权限要求: 获取薪资类型 - TargetCompensationType string `json:"target_compensation_type,omitempty"` // 新薪资类型字段权限要求: 获取薪资类型 - OriginalServiceCompany string `json:"original_service_company,omitempty"` // 原任职公司字段权限要求: 获取任职公司 - TargetServiceCompany string `json:"target_service_company,omitempty"` // 新任职公司字段权限要求: 获取任职公司 - OriginalPosition string `json:"original_position,omitempty"` // 原岗位 - TargetPosition string `json:"target_position,omitempty"` // 新岗位 - OriginalSocialSecurityCity string `json:"original_social_security_city,omitempty"` // 原社保城市字段权限要求: 获取异动单据社保字段 - TargetSocialSecurityCity string `json:"target_social_security_city,omitempty"` // 新社保城市字段权限要求: 获取异动单据社保字段 - OriginalPathway string `json:"original_pathway,omitempty"` // 原通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 - TargetPathway string `json:"target_pathway,omitempty"` // 新通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 - IsTransferWithWorkforce bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整 +// CreateCoreHRJobChangeV2RespTransferInfo ... +type CreateCoreHRJobChangeV2RespTransferInfo struct { + Remark string `json:"remark,omitempty"` // 备注字段权限要求: 获取异动流程备注信息 + OfferInfo string `json:"offer_info,omitempty"` // offer信息 + TargetDottedManagerClean bool `json:"target_dotted_manager_clean,omitempty"` // 是否撤销虚线上级, 当值为true时, target_dotted_manager值为空。 + ProbationExist bool `json:"probation_exist,omitempty"` // 是否有试用期, 当值为true时, target_probation_end_date值不应为空。 + OriginalDepartment string `json:"original_department,omitempty"` // 原部门 + TargetDepartment string `json:"target_department,omitempty"` // 新部门 + OriginalWorkLocation string `json:"original_work_location,omitempty"` // 原工作地点 + TargetWorkLocation string `json:"target_work_location,omitempty"` // 新工作地点 + OriginalDirectManager string `json:"original_direct_manager,omitempty"` // 原直属上级 + TargetDirectManager string `json:"target_direct_manager,omitempty"` // 新直属上级 + OriginalDottedManager string `json:"original_dotted_manager,omitempty"` // 原虚线上级 + TargetDottedManager string `json:"target_dotted_manager,omitempty"` // 新虚线上级 + OriginalJob string `json:"original_job,omitempty"` // 原职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + TargetJob string `json:"target_job,omitempty"` // 新职务字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 + OriginalJobFamily string `json:"original_job_family,omitempty"` // 原序列 + TargetJobFamily string `json:"target_job_family,omitempty"` // 新序列 + OriginalJobLevel string `json:"original_job_level,omitempty"` // 原级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + TargetJobLevel string `json:"target_job_level,omitempty"` // 新级别字段权限要求(满足任一): 获取职务级别信息读写员工的职务级别信息 + OriginalWorkforceType string `json:"original_workforce_type,omitempty"` // 原人员类型 + TargetWorkforceType string `json:"target_workforce_type,omitempty"` // 新人员类型 + OriginalEmployeeSubtype string `json:"original_employee_subtype,omitempty"` // 原人员子类型 + TargetEmployeeSubtype string `json:"target_employee_subtype,omitempty"` // 新人员子类型 + OriginalCompany string `json:"original_company,omitempty"` // 原公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + TargetCompany string `json:"target_company,omitempty"` // 新公司字段权限要求(满足任一): 获取合同主体信息读写合同主体信息 + OriginalContractNumber string `json:"original_contract_number,omitempty"` // 原合同编号 + TargetContractNumber string `json:"target_contract_number,omitempty"` // 新合同编号 + OriginalContractType string `json:"original_contract_type,omitempty"` // 原合同类型 + TargetContractType string `json:"target_contract_type,omitempty"` // 新合同类型 + OriginalDurationType string `json:"original_duration_type,omitempty"` // 原期限类型 + TargetDurationType string `json:"target_duration_type,omitempty"` // 新期限类型 + OriginalSigningType string `json:"original_signing_type,omitempty"` // 原签订类型 + TargetSigningType string `json:"target_signing_type,omitempty"` // 新签订类型 + OriginalContractStartDate string `json:"original_contract_start_date,omitempty"` // 原合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractStartDate string `json:"target_contract_start_date,omitempty"` // 新合同开始日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalContractEndDate string `json:"original_contract_end_date,omitempty"` // 原合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + TargetContractEndDate string `json:"target_contract_end_date,omitempty"` // 新合同结束日期字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 + OriginalWorkingHoursType string `json:"original_working_hours_type,omitempty"` // 原工时制度 + TargetWorkingHoursType string `json:"target_working_hours_type,omitempty"` // 新工时制度 + OriginalWorkingCalendar string `json:"original_working_calendar,omitempty"` // 原工作日历 + TargetWorkingCalendar string `json:"target_working_calendar,omitempty"` // 新工作日历 + OriginalProbationEndDate string `json:"original_probation_end_date,omitempty"` // 原试用期预计结束日期 + TargetProbationEndDate string `json:"target_probation_end_date,omitempty"` // 新试用期预计结束日期 + OriginalWeeklyWorkingHours string `json:"original_weekly_working_hours,omitempty"` // 原周工作时长 + TargetWeeklyWorkingHours string `json:"target_weekly_working_hours,omitempty"` // 新周工作时长 + OriginalWorkShift string `json:"original_work_shift,omitempty"` // 原排班 + TargetWorkShift string `json:"target_work_shift,omitempty"` // 新排班 + OriginalCostCenterRate []*CreateCoreHRJobChangeV2RespTransferInfoOriginalCostCenterRate `json:"original_cost_center_rate,omitempty"` // 原成本中心分摊方式 + TargetCostCenterRate []*CreateCoreHRJobChangeV2RespTransferInfoTargetCostCenterRate `json:"target_cost_center_rate,omitempty"` // 新成本中心分摊方式 + OriginalEmploymentChange *CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChange `json:"original_employment_change,omitempty"` // 原工作信息 + TargetEmploymentChange *CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChange `json:"target_employment_change,omitempty"` // 新工作信息 + OriginalJobGrade string `json:"original_job_grade,omitempty"` // 原职等字段权限要求(满足任一): 获取职等信息读写职等信息 + TargetJobGrade string `json:"target_job_grade,omitempty"` // 新职等字段权限要求(满足任一): 获取职等信息读写职等信息 + OriginalCompensationType string `json:"original_compensation_type,omitempty"` // 原薪资类型字段权限要求: 获取薪资类型 + TargetCompensationType string `json:"target_compensation_type,omitempty"` // 新薪资类型字段权限要求: 获取薪资类型 + OriginalServiceCompany string `json:"original_service_company,omitempty"` // 原任职公司字段权限要求: 获取任职公司 + TargetServiceCompany string `json:"target_service_company,omitempty"` // 新任职公司字段权限要求: 获取任职公司 + OriginalPosition string `json:"original_position,omitempty"` // 原岗位 + TargetPosition string `json:"target_position,omitempty"` // 新岗位 + OriginalSocialSecurityCity string `json:"original_social_security_city,omitempty"` // 原社保城市字段权限要求: 获取异动单据社保字段 + TargetSocialSecurityCity string `json:"target_social_security_city,omitempty"` // 新社保城市字段权限要求: 获取异动单据社保字段 + OriginalPathway string `json:"original_pathway,omitempty"` // 原通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + TargetPathway string `json:"target_pathway,omitempty"` // 新通道字段权限要求(满足任一): 读取异动信息中的通道字段信息读写异动信息中的通道字段信息 + IsTransferWithWorkforce bool `json:"is_transfer_with_workforce,omitempty"` // 编制随人员一起调整 } -// CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate ... -type CreateCorehrJobChangeRespTransferInfoOriginalCostCenterRate struct { +// CreateCoreHRJobChangeV2RespTransferInfoOriginalCostCenterRate ... +type CreateCoreHRJobChangeV2RespTransferInfoOriginalCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) } -// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange ... -type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChange struct { - RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 - SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 - EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 - CustomFields []*CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 +// CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChange ... +type CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChange struct { + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 + CustomFields []*CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 } -// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField ... -type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +// CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomField ... +type CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName ... -type CreateCorehrJobChangeRespTransferInfoOriginalEmploymentChangeCustomFieldName struct { +// CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomFieldName ... +type CreateCoreHRJobChangeV2RespTransferInfoOriginalEmploymentChangeCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate ... -type CreateCorehrJobChangeRespTransferInfoTargetCostCenterRate struct { +// CreateCoreHRJobChangeV2RespTransferInfoTargetCostCenterRate ... +type CreateCoreHRJobChangeV2RespTransferInfoTargetCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过【查询单个成本中心信息】接口获取对应的成本中心信息 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) } -// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange ... -type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChange struct { - RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 - SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 - EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 - CustomFields []*CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 +// CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChange ... +type CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChange struct { + RegularEmployeeStartDate string `json:"regular_employee_start_date,omitempty"` // 转正式员工日期 + SeniorityDate string `json:"seniority_date,omitempty"` // 司龄起算日期 + EmployeeNumber string `json:"employee_number,omitempty"` // 员工编号 + CustomFields []*CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取异动工作信息自定义字段 } -// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField ... -type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") +// CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomField ... +type CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName ... -type CreateCorehrJobChangeRespTransferInfoTargetEmploymentChangeCustomFieldName struct { +// CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomFieldName ... +type CreateCoreHRJobChangeV2RespTransferInfoTargetEmploymentChangeCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// createCorehrJobChangeResp ... -type createCorehrJobChangeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrJobChangeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// createCoreHRJobChangeV2Resp ... +type createCoreHRJobChangeV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCoreHRJobChangeV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_change_revoke.go b/api_corehr_job_change_revoke.go index 205024ea..602f74b3 100644 --- a/api_corehr_job_change_revoke.go +++ b/api_corehr_job_change_revoke.go @@ -21,58 +21,58 @@ import ( "context" ) -// CreateCorehrJobChangeRevoke 该接口用于撤销员工异动, 若发起成功, 会撤销一条已发起、待生效或已生效的异动数据, 同时产生相应的事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/events/updated)。该接口无法撤销批量发起的多人异动。使用时需指定操作人, 关联了流程的异动需要流程管理员和审批单管理员权限。 +// RevokeCoreHRJobChange 该接口用于撤销员工异动, 若发起成功, 会撤销一条已发起、待生效或已生效的异动数据, 同时产生相应的事件: [异动状态变更事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_change/events/updated)。该接口无法撤销批量发起的多人异动。使用时需指定操作人, 关联了流程的异动需要流程管理员和审批单管理员权限。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/revoke // new doc: https://open.feishu.cn/document/corehr-v1/job_change/revoke -func (r *CoreHRService) CreateCorehrJobChangeRevoke(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrJobChangeRevoke != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobChangeRevoke mock enable") - return r.cli.mock.mockCoreHRCreateCorehrJobChangeRevoke(ctx, request, options...) +func (r *CoreHRService) RevokeCoreHRJobChange(ctx context.Context, request *RevokeCoreHRJobChangeReq, options ...MethodOptionFunc) (*RevokeCoreHRJobChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRRevokeCoreHRJobChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RevokeCoreHRJobChange mock enable") + return r.cli.mock.mockCoreHRRevokeCoreHRJobChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrJobChangeRevoke", + API: "RevokeCoreHRJobChange", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_changes/:job_change_id/revoke", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrJobChangeRevokeResp) + resp := new(revokeCoreHRJobChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrJobChangeRevoke mock CoreHRCreateCorehrJobChangeRevoke method -func (r *Mock) MockCoreHRCreateCorehrJobChangeRevoke(f func(ctx context.Context, request *CreateCorehrJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCorehrJobChangeRevokeResp, *Response, error)) { - r.mockCoreHRCreateCorehrJobChangeRevoke = f +// MockCoreHRRevokeCoreHRJobChange mock CoreHRRevokeCoreHRJobChange method +func (r *Mock) MockCoreHRRevokeCoreHRJobChange(f func(ctx context.Context, request *RevokeCoreHRJobChangeReq, options ...MethodOptionFunc) (*RevokeCoreHRJobChangeResp, *Response, error)) { + r.mockCoreHRRevokeCoreHRJobChange = f } -// UnMockCoreHRCreateCorehrJobChangeRevoke un-mock CoreHRCreateCorehrJobChangeRevoke method -func (r *Mock) UnMockCoreHRCreateCorehrJobChangeRevoke() { - r.mockCoreHRCreateCorehrJobChangeRevoke = nil +// UnMockCoreHRRevokeCoreHRJobChange un-mock CoreHRRevokeCoreHRJobChange method +func (r *Mock) UnMockCoreHRRevokeCoreHRJobChange() { + r.mockCoreHRRevokeCoreHRJobChange = nil } -// CreateCorehrJobChangeRevokeReq ... -type CreateCorehrJobChangeRevokeReq struct { +// RevokeCoreHRJobChangeReq ... +type RevokeCoreHRJobChangeReq struct { JobChangeID string `path:"job_change_id" json:"-"` // 异动id, [【搜索异动信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_change/search) 获取ID示例值: "7402156992338658860" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户以飞书人事的ID来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID OperatorID string `json:"operator_id,omitempty"` // 操作人id, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 获取ID。关联了流程的异动需要操作人有流程管理员和审批单管理员权限。示例值: "ou_a294793e8fa21529f2a60e3e9de45520" } -// CreateCorehrJobChangeRevokeResp ... -type CreateCorehrJobChangeRevokeResp struct { +// RevokeCoreHRJobChangeResp ... +type RevokeCoreHRJobChangeResp struct { Result bool `json:"result,omitempty"` // 撤销结果 Message string `json:"message,omitempty"` // 撤销信息 } -// createCorehrJobChangeRevokeResp ... -type createCorehrJobChangeRevokeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrJobChangeRevokeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// revokeCoreHRJobChangeResp ... +type revokeCoreHRJobChangeResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RevokeCoreHRJobChangeResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_family_query_multi_timeline.go b/api_corehr_job_family_query_multi_timeline.go index 6dde1a5d..8693a6db 100644 --- a/api_corehr_job_family_query_multi_timeline.go +++ b/api_corehr_job_family_query_multi_timeline.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrJobFamilyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本 +// QueryCoreHRJobFamilyMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本 // // - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) // - 适用于需要回顾某段时间内对象版本变化的场景 @@ -29,86 +29,86 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/query_multi_timeline // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/query_multi_timeline -func (r *CoreHRService) QueryCorehrJobFamilyMultiTimeline(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobFamilyMultiTimeline != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobFamilyMultiTimeline mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobFamilyMultiTimeline(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobFamilyMultiTimeline(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobFamilyMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobFamilyMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobFamilyMultiTimeline(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobFamilyMultiTimeline", + API: "QueryCoreHRJobFamilyMultiTimeline", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_families/query_multi_timeline", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobFamilyMultiTimelineResp) + resp := new(queryCoreHRJobFamilyMultiTimelineResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobFamilyMultiTimeline mock CoreHRQueryCorehrJobFamilyMultiTimeline method -func (r *Mock) MockCoreHRQueryCorehrJobFamilyMultiTimeline(f func(ctx context.Context, request *QueryCorehrJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyMultiTimelineResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobFamilyMultiTimeline = f +// MockCoreHRQueryCoreHRJobFamilyMultiTimeline mock CoreHRQueryCoreHRJobFamilyMultiTimeline method +func (r *Mock) MockCoreHRQueryCoreHRJobFamilyMultiTimeline(f func(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobFamilyMultiTimeline = f } -// UnMockCoreHRQueryCorehrJobFamilyMultiTimeline un-mock CoreHRQueryCorehrJobFamilyMultiTimeline method -func (r *Mock) UnMockCoreHRQueryCorehrJobFamilyMultiTimeline() { - r.mockCoreHRQueryCorehrJobFamilyMultiTimeline = nil +// UnMockCoreHRQueryCoreHRJobFamilyMultiTimeline un-mock CoreHRQueryCoreHRJobFamilyMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCoreHRJobFamilyMultiTimeline() { + r.mockCoreHRQueryCoreHRJobFamilyMultiTimeline = nil } -// QueryCorehrJobFamilyMultiTimelineReq ... -type QueryCorehrJobFamilyMultiTimelineReq struct { +// QueryCoreHRJobFamilyMultiTimelineReq ... +type QueryCoreHRJobFamilyMultiTimelineReq struct { JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID。ID获取方式: 调用[【新建序列】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/create)[【查询租户的序列信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)等接口可以返回序列ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)- start_date 不能大于 end_date- 必填字段, 无默认值示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)- 必填字段, 无默认值示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["job_family_name", "code", "active", "parent_job_family", "selectable", "pathway", "description", "effective_date", "expiration_date"]- 无默认值, 为空时只能查询到ID示例值: ["job_family_name"] 长度范围: `0` ~ `100` } -// QueryCorehrJobFamilyMultiTimelineResp ... -type QueryCorehrJobFamilyMultiTimelineResp struct { - Items []*QueryCorehrJobFamilyMultiTimelineRespItem `json:"items,omitempty"` // 序列信息 +// QueryCoreHRJobFamilyMultiTimelineResp ... +type QueryCoreHRJobFamilyMultiTimelineResp struct { + Items []*QueryCoreHRJobFamilyMultiTimelineRespItem `json:"items,omitempty"` // 序列信息 } -// QueryCorehrJobFamilyMultiTimelineRespItem ... -type QueryCorehrJobFamilyMultiTimelineRespItem struct { - JobFamilyVersionData []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData `json:"job_family_version_data,omitempty"` // 序列版本信息 +// QueryCoreHRJobFamilyMultiTimelineRespItem ... +type QueryCoreHRJobFamilyMultiTimelineRespItem struct { + JobFamilyVersionData []*QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionData `json:"job_family_version_data,omitempty"` // 序列版本信息 } -// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData ... -type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionData struct { +// QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionData ... +type QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionData struct { JobFamilyID string `json:"job_family_id,omitempty"` // 序列 ID JobFamilyVersionID string `json:"job_family_version_id,omitempty"` // 序列版本 ID - JobFamilyNames []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName `json:"job_family_names,omitempty"` // 序列名称 + JobFamilyNames []*QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName `json:"job_family_names,omitempty"` // 序列名称 EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) Active bool `json:"active,omitempty"` // 是否启用 - Descriptions []*QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Descriptions []*QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription `json:"descriptions,omitempty"` // 描述 Selectable bool `json:"selectable,omitempty"` // 是否可被使用, true为可被使用, false为不可被使用 ParentJobFamilyID string `json:"parent_job_family_id,omitempty"` // 上级序列 ID, 详细信息可通过[【查询单个序列】](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口查询获得(若查询的是一级序列, 则该字段不展示) PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) Code string `json:"code,omitempty"` // 编码 } -// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription ... -type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription struct { +// QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription ... +type QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataDescription struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName ... -type QueryCorehrJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName struct { +// QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName ... +type QueryCoreHRJobFamilyMultiTimelineRespItemJobFamilyVersionDataJobFamilyName struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrJobFamilyMultiTimelineResp ... -type queryCorehrJobFamilyMultiTimelineResp struct { +// queryCoreHRJobFamilyMultiTimelineResp ... +type queryCoreHRJobFamilyMultiTimelineResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobFamilyMultiTimelineResp `json:"data,omitempty"` + Data *QueryCoreHRJobFamilyMultiTimelineResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_family_query_recent_change.go b/api_corehr_job_family_query_recent_change.go index 4e7fdfe1..b3098469 100644 --- a/api_corehr_job_family_query_recent_change.go +++ b/api_corehr_job_family_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrJobFamilyRecentChange 查询指定时间范围内当前生效信息发生变更的序列, 即只有序列前生效版本的生效时间在查询时间范围内, 才返回该序列id +// QueryCoreHRJobFamilyRecentChange 查询指定时间范围内当前生效信息发生变更的序列, 即只有序列前生效版本的生效时间在查询时间范围内, 才返回该序列id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_family/query_recent_change -func (r *CoreHRService) QueryCorehrJobFamilyRecentChange(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobFamilyRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobFamilyRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobFamilyRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobFamilyRecentChange(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobFamilyRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobFamilyRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobFamilyRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobFamilyRecentChange", + API: "QueryCoreHRJobFamilyRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_families/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobFamilyRecentChangeResp) + resp := new(queryCoreHRJobFamilyRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobFamilyRecentChange mock CoreHRQueryCorehrJobFamilyRecentChange method -func (r *Mock) MockCoreHRQueryCorehrJobFamilyRecentChange(f func(ctx context.Context, request *QueryCorehrJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobFamilyRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobFamilyRecentChange = f +// MockCoreHRQueryCoreHRJobFamilyRecentChange mock CoreHRQueryCoreHRJobFamilyRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRJobFamilyRecentChange(f func(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobFamilyRecentChange = f } -// UnMockCoreHRQueryCorehrJobFamilyRecentChange un-mock CoreHRQueryCorehrJobFamilyRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrJobFamilyRecentChange() { - r.mockCoreHRQueryCorehrJobFamilyRecentChange = nil +// UnMockCoreHRQueryCoreHRJobFamilyRecentChange un-mock CoreHRQueryCoreHRJobFamilyRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRJobFamilyRecentChange() { + r.mockCoreHRQueryCoreHRJobFamilyRecentChange = nil } -// QueryCorehrJobFamilyRecentChangeReq ... -type QueryCorehrJobFamilyRecentChangeReq struct { +// QueryCoreHRJobFamilyRecentChangeReq ... +type QueryCoreHRJobFamilyRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrJobFamilyRecentChangeResp ... -type QueryCorehrJobFamilyRecentChangeResp struct { +// QueryCoreHRJobFamilyRecentChangeResp ... +type QueryCoreHRJobFamilyRecentChangeResp struct { JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedJobFamilyIDs []string `json:"deleted_job_family_ids,omitempty"` // 目标查询时间范围内被删除的序列列表, 该列表是 job_family_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的序列 IDs。- 由于对应的序列已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrJobFamilyRecentChangeResp ... -type queryCorehrJobFamilyRecentChangeResp struct { +// queryCoreHRJobFamilyRecentChangeResp ... +type queryCoreHRJobFamilyRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobFamilyRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRJobFamilyRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_grade_create.go b/api_corehr_job_grade_create.go index d8181cc7..0d5d4003 100644 --- a/api_corehr_job_grade_create.go +++ b/api_corehr_job_grade_create.go @@ -21,71 +21,71 @@ import ( "context" ) -// CreateCorehrJobGrade 创建职等 +// CreateCoreHRJobGrade 创建职等 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/create -func (r *CoreHRService) CreateCorehrJobGrade(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrJobGrade != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrJobGrade mock enable") - return r.cli.mock.mockCoreHRCreateCorehrJobGrade(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRJobGrade(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRJobGrade mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRJobGrade(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrJobGrade", + API: "CreateCoreHRJobGrade", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrJobGradeResp) + resp := new(createCoreHRJobGradeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrJobGrade mock CoreHRCreateCorehrJobGrade method -func (r *Mock) MockCoreHRCreateCorehrJobGrade(f func(ctx context.Context, request *CreateCorehrJobGradeReq, options ...MethodOptionFunc) (*CreateCorehrJobGradeResp, *Response, error)) { - r.mockCoreHRCreateCorehrJobGrade = f +// MockCoreHRCreateCoreHRJobGrade mock CoreHRCreateCoreHRJobGrade method +func (r *Mock) MockCoreHRCreateCoreHRJobGrade(f func(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error)) { + r.mockCoreHRCreateCoreHRJobGrade = f } -// UnMockCoreHRCreateCorehrJobGrade un-mock CoreHRCreateCorehrJobGrade method -func (r *Mock) UnMockCoreHRCreateCorehrJobGrade() { - r.mockCoreHRCreateCorehrJobGrade = nil +// UnMockCoreHRCreateCoreHRJobGrade un-mock CoreHRCreateCoreHRJobGrade method +func (r *Mock) UnMockCoreHRCreateCoreHRJobGrade() { + r.mockCoreHRCreateCoreHRJobGrade = nil } -// CreateCorehrJobGradeReq ... -type CreateCorehrJobGradeReq struct { +// CreateCoreHRJobGradeReq ... +type CreateCoreHRJobGradeReq struct { ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 GradeOrder int64 `json:"grade_order,omitempty"` // 职等数值示例值: 9999 取值范围: `0` ~ `99999` Code *string `json:"code,omitempty"` // 编码示例值: "A01234" - Names []*CreateCorehrJobGradeReqName `json:"names,omitempty"` // 名称- 名称不能包含「/」「;」「;」「\」、「'」字符 长度范围: `0` ~ `2` - Descriptions []*CreateCorehrJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*CreateCoreHRJobGradeReqName `json:"names,omitempty"` // 名称- 名称不能包含「/」「;」「;」「\」、「'」字符 长度范围: `0` ~ `2` + Descriptions []*CreateCoreHRJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` } -// CreateCorehrJobGradeReqDescription ... -type CreateCorehrJobGradeReqDescription struct { +// CreateCoreHRJobGradeReqDescription ... +type CreateCoreHRJobGradeReqDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// CreateCorehrJobGradeReqName ... -type CreateCorehrJobGradeReqName struct { +// CreateCoreHRJobGradeReqName ... +type CreateCoreHRJobGradeReqName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// CreateCorehrJobGradeResp ... -type CreateCorehrJobGradeResp struct { +// CreateCoreHRJobGradeResp ... +type CreateCoreHRJobGradeResp struct { GradeID string `json:"grade_id,omitempty"` // 职等ID } -// createCorehrJobGradeResp ... -type createCorehrJobGradeResp struct { +// createCoreHRJobGradeResp ... +type createCoreHRJobGradeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrJobGradeResp `json:"data,omitempty"` + Data *CreateCoreHRJobGradeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_grade_delete.go b/api_corehr_job_grade_delete.go index f6f20fa6..2109b72f 100644 --- a/api_corehr_job_grade_delete.go +++ b/api_corehr_job_grade_delete.go @@ -21,54 +21,54 @@ import ( "context" ) -// DeleteCorehrJobGrade 删除职等 +// DeleteCoreHRJobGrade 删除职等 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/delete // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/delete -func (r *CoreHRService) DeleteCorehrJobGrade(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrJobGrade != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrJobGrade mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrJobGrade(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRJobGrade(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRJobGrade mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRJobGrade(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrJobGrade", + API: "DeleteCoreHRJobGrade", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/:job_grade_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrJobGradeResp) + resp := new(deleteCoreHRJobGradeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrJobGrade mock CoreHRDeleteCorehrJobGrade method -func (r *Mock) MockCoreHRDeleteCorehrJobGrade(f func(ctx context.Context, request *DeleteCorehrJobGradeReq, options ...MethodOptionFunc) (*DeleteCorehrJobGradeResp, *Response, error)) { - r.mockCoreHRDeleteCorehrJobGrade = f +// MockCoreHRDeleteCoreHRJobGrade mock CoreHRDeleteCoreHRJobGrade method +func (r *Mock) MockCoreHRDeleteCoreHRJobGrade(f func(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error)) { + r.mockCoreHRDeleteCoreHRJobGrade = f } -// UnMockCoreHRDeleteCorehrJobGrade un-mock CoreHRDeleteCorehrJobGrade method -func (r *Mock) UnMockCoreHRDeleteCorehrJobGrade() { - r.mockCoreHRDeleteCorehrJobGrade = nil +// UnMockCoreHRDeleteCoreHRJobGrade un-mock CoreHRDeleteCoreHRJobGrade method +func (r *Mock) UnMockCoreHRDeleteCoreHRJobGrade() { + r.mockCoreHRDeleteCoreHRJobGrade = nil } -// DeleteCorehrJobGradeReq ... -type DeleteCorehrJobGradeReq struct { +// DeleteCoreHRJobGradeReq ... +type DeleteCoreHRJobGradeReq struct { JobGradeID string `path:"job_grade_id" json:"-"` // 需要删除的职等ID。ID获取方式: 调用[【创建职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create)[【查询租户的职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)等接口可以返回职等ID示例值: "1616161616" } -// DeleteCorehrJobGradeResp ... -type DeleteCorehrJobGradeResp struct { +// DeleteCoreHRJobGradeResp ... +type DeleteCoreHRJobGradeResp struct { } -// deleteCorehrJobGradeResp ... -type deleteCorehrJobGradeResp struct { +// deleteCoreHRJobGradeResp ... +type deleteCoreHRJobGradeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrJobGradeResp `json:"data,omitempty"` + Data *DeleteCoreHRJobGradeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_grade_query_recent_change.go b/api_corehr_job_grade_query_recent_change.go index ff8228f1..10f2e928 100644 --- a/api_corehr_job_grade_query_recent_change.go +++ b/api_corehr_job_grade_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrJobGradeRecentChange 查询指定时间范围内当前生效信息发生变更的职等, 即只有职等当前生效版本的生效时间在查询时间范围内, 才返回该地点id +// QueryCoreHRJobGradeRecentChange 查询指定时间范围内当前生效信息发生变更的职等, 即只有职等当前生效版本的生效时间在查询时间范围内, 才返回该地点id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/query_recent_change -func (r *CoreHRService) QueryCorehrJobGradeRecentChange(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobGradeRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobGradeRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobGradeRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobGradeRecentChange(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobGradeRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobGradeRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobGradeRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobGradeRecentChange", + API: "QueryCoreHRJobGradeRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobGradeRecentChangeResp) + resp := new(queryCoreHRJobGradeRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobGradeRecentChange mock CoreHRQueryCorehrJobGradeRecentChange method -func (r *Mock) MockCoreHRQueryCorehrJobGradeRecentChange(f func(ctx context.Context, request *QueryCorehrJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobGradeRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobGradeRecentChange = f +// MockCoreHRQueryCoreHRJobGradeRecentChange mock CoreHRQueryCoreHRJobGradeRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRJobGradeRecentChange(f func(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobGradeRecentChange = f } -// UnMockCoreHRQueryCorehrJobGradeRecentChange un-mock CoreHRQueryCorehrJobGradeRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrJobGradeRecentChange() { - r.mockCoreHRQueryCorehrJobGradeRecentChange = nil +// UnMockCoreHRQueryCoreHRJobGradeRecentChange un-mock CoreHRQueryCoreHRJobGradeRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRJobGradeRecentChange() { + r.mockCoreHRQueryCoreHRJobGradeRecentChange = nil } -// QueryCorehrJobGradeRecentChangeReq ... -type QueryCorehrJobGradeRecentChangeReq struct { +// QueryCoreHRJobGradeRecentChangeReq ... +type QueryCoreHRJobGradeRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrJobGradeRecentChangeResp ... -type QueryCorehrJobGradeRecentChangeResp struct { +// QueryCoreHRJobGradeRecentChangeResp ... +type QueryCoreHRJobGradeRecentChangeResp struct { JobGradeIDs []string `json:"job_grade_ids,omitempty"` // 职等 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[【批量查询职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedJobGradeIDs []string `json:"deleted_job_grade_ids,omitempty"` // 目标查询时间范围内被删除的职等列表, 该列表是 job_grade_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职等 IDs。- 由于对应的职等已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrJobGradeRecentChangeResp ... -type queryCorehrJobGradeRecentChangeResp struct { +// queryCoreHRJobGradeRecentChangeResp ... +type queryCoreHRJobGradeRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobGradeRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRJobGradeRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_grade_update.go b/api_corehr_job_grade_update.go index 169ad427..62accea3 100644 --- a/api_corehr_job_grade_update.go +++ b/api_corehr_job_grade_update.go @@ -21,72 +21,72 @@ import ( "context" ) -// UpdateCorehrJobGrade 更新职等 +// UpdateCoreHRJobGrade 更新职等 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/patch // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_grade/patch -func (r *CoreHRService) UpdateCorehrJobGrade(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrJobGrade != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrJobGrade mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrJobGrade(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRJobGrade(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRJobGrade != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRJobGrade mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRJobGrade(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrJobGrade", + API: "UpdateCoreHRJobGrade", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_grades/:job_grade_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrJobGradeResp) + resp := new(updateCoreHRJobGradeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrJobGrade mock CoreHRUpdateCorehrJobGrade method -func (r *Mock) MockCoreHRUpdateCorehrJobGrade(f func(ctx context.Context, request *UpdateCorehrJobGradeReq, options ...MethodOptionFunc) (*UpdateCorehrJobGradeResp, *Response, error)) { - r.mockCoreHRUpdateCorehrJobGrade = f +// MockCoreHRUpdateCoreHRJobGrade mock CoreHRUpdateCoreHRJobGrade method +func (r *Mock) MockCoreHRUpdateCoreHRJobGrade(f func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRJobGrade = f } -// UnMockCoreHRUpdateCorehrJobGrade un-mock CoreHRUpdateCorehrJobGrade method -func (r *Mock) UnMockCoreHRUpdateCorehrJobGrade() { - r.mockCoreHRUpdateCorehrJobGrade = nil +// UnMockCoreHRUpdateCoreHRJobGrade un-mock CoreHRUpdateCoreHRJobGrade method +func (r *Mock) UnMockCoreHRUpdateCoreHRJobGrade() { + r.mockCoreHRUpdateCoreHRJobGrade = nil } -// UpdateCorehrJobGradeReq ... -type UpdateCorehrJobGradeReq struct { +// UpdateCoreHRJobGradeReq ... +type UpdateCoreHRJobGradeReq struct { JobGradeID string `path:"job_grade_id" json:"-"` // 职等ID。ID获取方式: 调用[【创建职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/create)[【查询租户的职等信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)等接口可以返回职等ID示例值: "6862995757234914824" ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 GradeOrder *int64 `json:"grade_order,omitempty"` // 职等数值示例值: 9999 取值范围: `0` ~ `99999` Code *string `json:"code,omitempty"` // 编码示例值: "A01234" - Names []*UpdateCorehrJobGradeReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` - Descriptions []*UpdateCorehrJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*UpdateCoreHRJobGradeReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCoreHRJobGradeReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` Active *bool `json:"active,omitempty"` // 启用示例值: true } -// UpdateCorehrJobGradeReqDescription ... -type UpdateCorehrJobGradeReqDescription struct { +// UpdateCoreHRJobGradeReqDescription ... +type UpdateCoreHRJobGradeReqDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" } -// UpdateCorehrJobGradeReqName ... -type UpdateCorehrJobGradeReqName struct { +// UpdateCoreHRJobGradeReqName ... +type UpdateCoreHRJobGradeReqName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" } -// UpdateCorehrJobGradeResp ... -type UpdateCorehrJobGradeResp struct { +// UpdateCoreHRJobGradeResp ... +type UpdateCoreHRJobGradeResp struct { } -// updateCorehrJobGradeResp ... -type updateCorehrJobGradeResp struct { +// updateCoreHRJobGradeResp ... +type updateCoreHRJobGradeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrJobGradeResp `json:"data,omitempty"` + Data *UpdateCoreHRJobGradeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_level_query_recent_change.go b/api_corehr_job_level_query_recent_change.go index 4aa9514c..eeee3ee8 100644 --- a/api_corehr_job_level_query_recent_change.go +++ b/api_corehr_job_level_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrJobLevelRecentChange 查询指定时间范围内当前生效信息发生变更的职级, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该职级id +// QueryCoreHRJobLevelRecentChange 查询指定时间范围内当前生效信息发生变更的职级, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该职级id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job_level/query_recent_change -func (r *CoreHRService) QueryCorehrJobLevelRecentChange(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobLevelRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobLevelRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobLevelRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobLevelRecentChange(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobLevelRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobLevelRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobLevelRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobLevelRecentChange", + API: "QueryCoreHRJobLevelRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/job_levels/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobLevelRecentChangeResp) + resp := new(queryCoreHRJobLevelRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobLevelRecentChange mock CoreHRQueryCorehrJobLevelRecentChange method -func (r *Mock) MockCoreHRQueryCorehrJobLevelRecentChange(f func(ctx context.Context, request *QueryCorehrJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobLevelRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobLevelRecentChange = f +// MockCoreHRQueryCoreHRJobLevelRecentChange mock CoreHRQueryCoreHRJobLevelRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRJobLevelRecentChange(f func(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobLevelRecentChange = f } -// UnMockCoreHRQueryCorehrJobLevelRecentChange un-mock CoreHRQueryCorehrJobLevelRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrJobLevelRecentChange() { - r.mockCoreHRQueryCorehrJobLevelRecentChange = nil +// UnMockCoreHRQueryCoreHRJobLevelRecentChange un-mock CoreHRQueryCoreHRJobLevelRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRJobLevelRecentChange() { + r.mockCoreHRQueryCoreHRJobLevelRecentChange = nil } -// QueryCorehrJobLevelRecentChangeReq ... -type QueryCorehrJobLevelRecentChangeReq struct { +// QueryCoreHRJobLevelRecentChangeReq ... +type QueryCoreHRJobLevelRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrJobLevelRecentChangeResp ... -type QueryCorehrJobLevelRecentChangeResp struct { +// QueryCoreHRJobLevelRecentChangeResp ... +type QueryCoreHRJobLevelRecentChangeResp struct { JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级 ID 列表, 其中包含新建、更新以及删除的ID列表。- 非删除的数据, 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedJobLevelIDs []string `json:"deleted_job_level_ids,omitempty"` // 目标查询时间范围内被删除的职级列表, 该列表是 job_level_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职级 IDs。- 由于对应的职级已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrJobLevelRecentChangeResp ... -type queryCorehrJobLevelRecentChangeResp struct { +// queryCoreHRJobLevelRecentChangeResp ... +type queryCoreHRJobLevelRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobLevelRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRJobLevelRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_query_multi_timeline.go b/api_corehr_job_query_multi_timeline.go index 4530b05e..e9c57f82 100644 --- a/api_corehr_job_query_multi_timeline.go +++ b/api_corehr_job_query_multi_timeline.go @@ -21,101 +21,101 @@ import ( "context" ) -// QueryCorehrJobMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// QueryCoreHRJobMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) // // - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) // 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/query_multi_timeline // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/query_multi_timeline -func (r *CoreHRService) QueryCorehrJobMultiTimeline(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobMultiTimeline != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobMultiTimeline mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobMultiTimeline(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobMultiTimeline(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobMultiTimeline(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobMultiTimeline", + API: "QueryCoreHRJobMultiTimeline", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/query_multi_timeline", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobMultiTimelineResp) + resp := new(queryCoreHRJobMultiTimelineResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobMultiTimeline mock CoreHRQueryCorehrJobMultiTimeline method -func (r *Mock) MockCoreHRQueryCorehrJobMultiTimeline(f func(ctx context.Context, request *QueryCorehrJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrJobMultiTimelineResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobMultiTimeline = f +// MockCoreHRQueryCoreHRJobMultiTimeline mock CoreHRQueryCoreHRJobMultiTimeline method +func (r *Mock) MockCoreHRQueryCoreHRJobMultiTimeline(f func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobMultiTimeline = f } -// UnMockCoreHRQueryCorehrJobMultiTimeline un-mock CoreHRQueryCorehrJobMultiTimeline method -func (r *Mock) UnMockCoreHRQueryCorehrJobMultiTimeline() { - r.mockCoreHRQueryCorehrJobMultiTimeline = nil +// UnMockCoreHRQueryCoreHRJobMultiTimeline un-mock CoreHRQueryCoreHRJobMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCoreHRJobMultiTimeline() { + r.mockCoreHRQueryCoreHRJobMultiTimeline = nil } -// QueryCorehrJobMultiTimelineReq ... -type QueryCorehrJobMultiTimelineReq struct { +// QueryCoreHRJobMultiTimelineReq ... +type QueryCoreHRJobMultiTimelineReq struct { JobIDs []string `json:"job_ids,omitempty"` // 职务 ID 列表- 可通过[【批量查询职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获取ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含), 注意事项: start_date 不能大于 end_date- 必填字段, 无默认值示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含), 注意事项: 必填字段, 无默认值示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["job_name", "code", "active", "parent_job", "description", "effective_date", "expiration_date", "job_title", "job_family", "job_level", "pathway", "working_hours_type"]注意事项: 为空时只能查询到ID示例值: ["job_name"] 长度范围: `0` ~ `100` } -// QueryCorehrJobMultiTimelineResp ... -type QueryCorehrJobMultiTimelineResp struct { - Items []*QueryCorehrJobMultiTimelineRespItem `json:"items,omitempty"` // 职务信息 +// QueryCoreHRJobMultiTimelineResp ... +type QueryCoreHRJobMultiTimelineResp struct { + Items []*QueryCoreHRJobMultiTimelineRespItem `json:"items,omitempty"` // 职务信息 } -// QueryCorehrJobMultiTimelineRespItem ... -type QueryCorehrJobMultiTimelineRespItem struct { - JobVersionData []*QueryCorehrJobMultiTimelineRespItemJobVersionData `json:"job_version_data,omitempty"` // 职务版本信息 +// QueryCoreHRJobMultiTimelineRespItem ... +type QueryCoreHRJobMultiTimelineRespItem struct { + JobVersionData []*QueryCoreHRJobMultiTimelineRespItemJobVersionData `json:"job_version_data,omitempty"` // 职务版本信息 } -// QueryCorehrJobMultiTimelineRespItemJobVersionData ... -type QueryCorehrJobMultiTimelineRespItemJobVersionData struct { +// QueryCoreHRJobMultiTimelineRespItemJobVersionData ... +type QueryCoreHRJobMultiTimelineRespItemJobVersionData struct { JobID string `json:"job_id,omitempty"` // 职务 ID JobVersionID string `json:"job_version_id,omitempty"` // 职务版本 ID - JobNames []*QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName `json:"job_names,omitempty"` // 职务名称 + JobNames []*QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobName `json:"job_names,omitempty"` // 职务名称 EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) Active bool `json:"active,omitempty"` // 是否启用 - Descriptions []*QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Descriptions []*QueryCoreHRJobMultiTimelineRespItemJobVersionDataDescription `json:"descriptions,omitempty"` // 描述 Code string `json:"code,omitempty"` // 编码 - JobTitles []*QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle `json:"job_titles,omitempty"` // 职务头衔 + JobTitles []*QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobTitle `json:"job_titles,omitempty"` // 职务头衔 JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列ID- 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 JobLevelIDs []string `json:"job_level_ids,omitempty"` // 职级ID- 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情字段权限要求: 获取职务中的职级信息 PathwayID string `json:"pathway_id,omitempty"` // 通道ID, 详情可以参考[【获取通道信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get) WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得 } -// QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription ... -type QueryCorehrJobMultiTimelineRespItemJobVersionDataDescription struct { +// QueryCoreHRJobMultiTimelineRespItemJobVersionDataDescription ... +type QueryCoreHRJobMultiTimelineRespItemJobVersionDataDescription struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName ... -type QueryCorehrJobMultiTimelineRespItemJobVersionDataJobName struct { +// QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobName ... +type QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle ... -type QueryCorehrJobMultiTimelineRespItemJobVersionDataJobTitle struct { +// QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobTitle ... +type QueryCoreHRJobMultiTimelineRespItemJobVersionDataJobTitle struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文: zh-CN, 英文en-US Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrJobMultiTimelineResp ... -type queryCorehrJobMultiTimelineResp struct { +// queryCoreHRJobMultiTimelineResp ... +type queryCoreHRJobMultiTimelineResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobMultiTimelineResp `json:"data,omitempty"` + Data *QueryCoreHRJobMultiTimelineResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_job_query_recent_change.go b/api_corehr_job_query_recent_change.go index 38ce3050..327cf313 100644 --- a/api_corehr_job_query_recent_change.go +++ b/api_corehr_job_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrJobRecentChange 查询指定时间范围内当前生效信息发生变更的职务, 即只有职务当前生效版本的生效时间在查询时间范围内, 才返回该职务id +// QueryCoreHRJobRecentChange 查询指定时间范围内当前生效信息发生变更的职务, 即只有职务当前生效版本的生效时间在查询时间范围内, 才返回该职务id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/job-management/job/query_recent_change -func (r *CoreHRService) QueryCorehrJobRecentChange(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrJobRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrJobRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrJobRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRJobRecentChange(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRJobRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRJobRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRJobRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrJobRecentChange", + API: "QueryCoreHRJobRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/jobs/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrJobRecentChangeResp) + resp := new(queryCoreHRJobRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrJobRecentChange mock CoreHRQueryCorehrJobRecentChange method -func (r *Mock) MockCoreHRQueryCorehrJobRecentChange(f func(ctx context.Context, request *QueryCorehrJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrJobRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrJobRecentChange = f +// MockCoreHRQueryCoreHRJobRecentChange mock CoreHRQueryCoreHRJobRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRJobRecentChange(f func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRJobRecentChange = f } -// UnMockCoreHRQueryCorehrJobRecentChange un-mock CoreHRQueryCorehrJobRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrJobRecentChange() { - r.mockCoreHRQueryCorehrJobRecentChange = nil +// UnMockCoreHRQueryCoreHRJobRecentChange un-mock CoreHRQueryCoreHRJobRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRJobRecentChange() { + r.mockCoreHRQueryCoreHRJobRecentChange = nil } -// QueryCorehrJobRecentChangeReq ... -type QueryCorehrJobRecentChangeReq struct { +// QueryCoreHRJobRecentChangeReq ... +type QueryCoreHRJobRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"。- 限定查询范围在90天以内示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"。- 限定查询范围在90天以内示例值: 2024-04-01 00:00:00 } -// QueryCorehrJobRecentChangeResp ... -type QueryCorehrJobRecentChangeResp struct { +// QueryCoreHRJobRecentChangeResp ... +type QueryCoreHRJobRecentChangeResp struct { JobIDs []string `json:"job_ids,omitempty"` // 职务ID 列表, 其中包含新建、更新以及删除的 ID 列表- 非删除的数据, 可通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get) 获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedJobIDs []string `json:"deleted_job_ids,omitempty"` // 目标查询时间范围内被删除的职务列表, 该列表是 job_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的职务 IDs。- 由于对应的职务已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrJobRecentChangeResp ... -type queryCorehrJobRecentChangeResp struct { +// queryCoreHRJobRecentChangeResp ... +type queryCoreHRJobRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrJobRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRJobRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_leave_calendar_by_scope.go b/api_corehr_leave_calendar_by_scope.go index ea60e82f..f3e9d959 100644 --- a/api_corehr_leave_calendar_by_scope.go +++ b/api_corehr_leave_calendar_by_scope.go @@ -21,19 +21,19 @@ import ( "context" ) -// GetCorehrLeaveCalendarByScope 根据日历的适用范围, 获取工作日历 ID。适用范围包含工作地点, 工时制度等。 +// GetCoreHRLeaveCalendarByScope 根据日历的适用范围, 获取工作日历 ID。适用范围包含工作地点, 工时制度等。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/calendar_by_scope // new doc: https://open.feishu.cn/document/corehr-v1/leave/calendar_by_scope -func (r *CoreHRService) GetCorehrLeaveCalendarByScope(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCorehrLeaveCalendarByScope != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrLeaveCalendarByScope mock enable") - return r.cli.mock.mockCoreHRGetCorehrLeaveCalendarByScope(ctx, request, options...) +func (r *CoreHRService) GetCoreHRLeaveCalendarByScope(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRLeaveCalendarByScope != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRLeaveCalendarByScope mock enable") + return r.cli.mock.mockCoreHRGetCoreHRLeaveCalendarByScope(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCorehrLeaveCalendarByScope", + API: "GetCoreHRLeaveCalendarByScope", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/calendar_by_scope", Body: request, @@ -41,24 +41,24 @@ func (r *CoreHRService) GetCorehrLeaveCalendarByScope(ctx context.Context, reque NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(getCorehrLeaveCalendarByScopeResp) + resp := new(getCoreHRLeaveCalendarByScopeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCorehrLeaveCalendarByScope mock CoreHRGetCorehrLeaveCalendarByScope method -func (r *Mock) MockCoreHRGetCorehrLeaveCalendarByScope(f func(ctx context.Context, request *GetCorehrLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCorehrLeaveCalendarByScopeResp, *Response, error)) { - r.mockCoreHRGetCorehrLeaveCalendarByScope = f +// MockCoreHRGetCoreHRLeaveCalendarByScope mock CoreHRGetCoreHRLeaveCalendarByScope method +func (r *Mock) MockCoreHRGetCoreHRLeaveCalendarByScope(f func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error)) { + r.mockCoreHRGetCoreHRLeaveCalendarByScope = f } -// UnMockCoreHRGetCorehrLeaveCalendarByScope un-mock CoreHRGetCorehrLeaveCalendarByScope method -func (r *Mock) UnMockCoreHRGetCorehrLeaveCalendarByScope() { - r.mockCoreHRGetCorehrLeaveCalendarByScope = nil +// UnMockCoreHRGetCoreHRLeaveCalendarByScope un-mock CoreHRGetCoreHRLeaveCalendarByScope method +func (r *Mock) UnMockCoreHRGetCoreHRLeaveCalendarByScope() { + r.mockCoreHRGetCoreHRLeaveCalendarByScope = nil } -// GetCorehrLeaveCalendarByScopeReq ... -type GetCorehrLeaveCalendarByScopeReq struct { +// GetCoreHRLeaveCalendarByScopeReq ... +type GetCoreHRLeaveCalendarByScopeReq struct { WkDepartmentID *string `query:"wk_department_id" json:"-"` // 用户所属部门的ID列表。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list)获取所属部门的 ID示例值: "6722331851580982798" WkCountryRegionID *string `query:"wk_country_region_id" json:"-"` // 国家/地区 ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取所属国家/地区 ID示例值: "6722331851580982798" WkEmployeeTypeID *string `query:"wk_employee_type_id" json:"-"` // 人员类型ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list) 获取所属人员类型ID示例值: "6722331851580982798" @@ -68,15 +68,15 @@ type GetCorehrLeaveCalendarByScopeReq struct { WkCompanyID *string `query:"wk_company_id" json:"-"` // 公司 ID。可以通过[批量查询任职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/list)获取公司 ID示例值: "6235435355464465434" } -// GetCorehrLeaveCalendarByScopeResp ... -type GetCorehrLeaveCalendarByScopeResp struct { +// GetCoreHRLeaveCalendarByScopeResp ... +type GetCoreHRLeaveCalendarByScopeResp struct { CalendarWkID string `json:"calendar_wk_id,omitempty"` // 工作日历id } -// getCorehrLeaveCalendarByScopeResp ... -type getCorehrLeaveCalendarByScopeResp struct { +// getCoreHRLeaveCalendarByScopeResp ... +type getCoreHRLeaveCalendarByScopeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCorehrLeaveCalendarByScopeResp `json:"data,omitempty"` + Data *GetCoreHRLeaveCalendarByScopeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_leave_work_calendar.go b/api_corehr_leave_work_calendar.go index f90b87c2..9aec3926 100644 --- a/api_corehr_leave_work_calendar.go +++ b/api_corehr_leave_work_calendar.go @@ -21,59 +21,59 @@ import ( "context" ) -// CreateCorehrLeaveWorkCalendar 获取工作日历信息, 如名称, 状态等 +// CreateCoreHRLeaveWorkCalendar 获取工作日历信息, 如名称, 状态等 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar // new doc: https://open.feishu.cn/document/corehr-v1/leave/work_calendar -func (r *CoreHRService) CreateCorehrLeaveWorkCalendar(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendar != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLeaveWorkCalendar mock enable") - return r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendar(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRLeaveWorkCalendar(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRLeaveWorkCalendar != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRLeaveWorkCalendar mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRLeaveWorkCalendar(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrLeaveWorkCalendar", + API: "CreateCoreHRLeaveWorkCalendar", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/work_calendar", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrLeaveWorkCalendarResp) + resp := new(createCoreHRLeaveWorkCalendarResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrLeaveWorkCalendar mock CoreHRCreateCorehrLeaveWorkCalendar method -func (r *Mock) MockCoreHRCreateCorehrLeaveWorkCalendar(f func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarResp, *Response, error)) { - r.mockCoreHRCreateCorehrLeaveWorkCalendar = f +// MockCoreHRCreateCoreHRLeaveWorkCalendar mock CoreHRCreateCoreHRLeaveWorkCalendar method +func (r *Mock) MockCoreHRCreateCoreHRLeaveWorkCalendar(f func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error)) { + r.mockCoreHRCreateCoreHRLeaveWorkCalendar = f } -// UnMockCoreHRCreateCorehrLeaveWorkCalendar un-mock CoreHRCreateCorehrLeaveWorkCalendar method -func (r *Mock) UnMockCoreHRCreateCorehrLeaveWorkCalendar() { - r.mockCoreHRCreateCorehrLeaveWorkCalendar = nil +// UnMockCoreHRCreateCoreHRLeaveWorkCalendar un-mock CoreHRCreateCoreHRLeaveWorkCalendar method +func (r *Mock) UnMockCoreHRCreateCoreHRLeaveWorkCalendar() { + r.mockCoreHRCreateCoreHRLeaveWorkCalendar = nil } -// CreateCorehrLeaveWorkCalendarReq ... -type CreateCorehrLeaveWorkCalendarReq struct { +// CreateCoreHRLeaveWorkCalendarReq ... +type CreateCoreHRLeaveWorkCalendarReq struct { WkCalendarIDs []string `json:"wk_calendar_ids,omitempty"` // 工作日历ID列表, 第一次传入时可以传入空数组, 形如[]示例值: ["71369144159575915967136914415957591596"] WkCalendarIDGt *string `json:"wk_calendar_id_gt,omitempty"` // 工作日历ID大于示例值: "7136914415957591596" - WkOption *CreateCorehrLeaveWorkCalendarReqWkOption `json:"wk_option,omitempty"` // 分页、排序等选项, 如未填写将赋默认值 + WkOption *CreateCoreHRLeaveWorkCalendarReqWkOption `json:"wk_option,omitempty"` // 分页、排序等选项, 如未填写将赋默认值 OnlyEnable *bool `json:"only_enable,omitempty"` // 是否只返回启用的工作日历。(暂不支持, 目前只返回启用状态的工作日历)示例值: true默认值: `true` } -// CreateCorehrLeaveWorkCalendarReqWkOption ... -type CreateCorehrLeaveWorkCalendarReqWkOption struct { +// CreateCoreHRLeaveWorkCalendarReqWkOption ... +type CreateCoreHRLeaveWorkCalendarReqWkOption struct { Count *bool `json:"count,omitempty"` // 是否返回符合条件的工作日历总数, 默认值为true示例值: false Offset *int64 `json:"offset,omitempty"` // 分页查询的位移, 从0开始, 默认值为0示例值: 0 Limit int64 `json:"limit,omitempty"` // 分页查询单次查询数量, 默认值为2000示例值: 20 取值范围: `1` ~ `2000` - SortOptions []*CreateCorehrLeaveWorkCalendarReqWkOptionSortOption `json:"sort_options,omitempty"` // 排序 长度范围: `0` ~ `50` + SortOptions []*CreateCoreHRLeaveWorkCalendarReqWkOptionSortOption `json:"sort_options,omitempty"` // 排序 长度范围: `0` ~ `50` } -// CreateCorehrLeaveWorkCalendarReqWkOptionSortOption ... -type CreateCorehrLeaveWorkCalendarReqWkOptionSortOption struct { +// CreateCoreHRLeaveWorkCalendarReqWkOptionSortOption ... +type CreateCoreHRLeaveWorkCalendarReqWkOptionSortOption struct { SortField *string `json:"sort_field,omitempty"` // 排序字段示例值: "wk_id" SortOrder *int64 `json:"sort_order,omitempty"` // 排序顺序示例值: 0可选值有: 升序降序 取值范围: `0` ~ `1` SortI18n *int64 `json:"sort_i18n,omitempty"` // 0=中文关键字;1=英文关键字;2=拼音示例值: 1可选值有: 中文关键字英文关键字拼音 取值范围: `0` ~ `2` @@ -82,29 +82,29 @@ type CreateCorehrLeaveWorkCalendarReqWkOptionSortOption struct { SortByEnumValueOrder *bool `json:"sort_by_enum_value_order,omitempty"` // 是否按照枚举类型 value_order 排序示例值: true } -// CreateCorehrLeaveWorkCalendarResp ... -type CreateCorehrLeaveWorkCalendarResp struct { - WorkCalendars []*CreateCorehrLeaveWorkCalendarRespWorkCalendar `json:"work_calendars,omitempty"` // 工作日历列表, 对应入参的wk_calendar_ids +// CreateCoreHRLeaveWorkCalendarResp ... +type CreateCoreHRLeaveWorkCalendarResp struct { + WorkCalendars []*CreateCoreHRLeaveWorkCalendarRespWorkCalendar `json:"work_calendars,omitempty"` // 工作日历列表, 对应入参的wk_calendar_ids Count int64 `json:"count,omitempty"` // 入参count=true, 则返回符合条件的工作日历总数 } -// CreateCorehrLeaveWorkCalendarRespWorkCalendar ... -type CreateCorehrLeaveWorkCalendarRespWorkCalendar struct { +// CreateCoreHRLeaveWorkCalendarRespWorkCalendar ... +type CreateCoreHRLeaveWorkCalendarRespWorkCalendar struct { CalendarID string `json:"calendar_id,omitempty"` // 工作日历ID - CalendarName *CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName `json:"calendar_name,omitempty"` // 工作日历名称 + CalendarName *CreateCoreHRLeaveWorkCalendarRespWorkCalendarCalendarName `json:"calendar_name,omitempty"` // 工作日历名称 Enable bool `json:"enable,omitempty"` // 工作日历是否启用 } -// CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName ... -type CreateCorehrLeaveWorkCalendarRespWorkCalendarCalendarName struct { +// CreateCoreHRLeaveWorkCalendarRespWorkCalendarCalendarName ... +type CreateCoreHRLeaveWorkCalendarRespWorkCalendarCalendarName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// createCorehrLeaveWorkCalendarResp ... -type createCorehrLeaveWorkCalendarResp struct { +// createCoreHRLeaveWorkCalendarResp ... +type createCoreHRLeaveWorkCalendarResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrLeaveWorkCalendarResp `json:"data,omitempty"` + Data *CreateCoreHRLeaveWorkCalendarResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_leave_work_calendar_date.go b/api_corehr_leave_work_calendar_date.go index 0a9cc029..0f88a14e 100644 --- a/api_corehr_leave_work_calendar_date.go +++ b/api_corehr_leave_work_calendar_date.go @@ -21,19 +21,19 @@ import ( "context" ) -// CreateCorehrLeaveWorkCalendarDate 获取工作日历每一天的日期详情, 如日期、日期类型等 +// CreateCoreHRLeaveWorkCalendarDate 获取工作日历每一天的日期详情, 如日期、日期类型等 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar_date // new doc: https://open.feishu.cn/document/corehr-v1/leave/work_calendar_date -func (r *CoreHRService) CreateCorehrLeaveWorkCalendarDate(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendarDate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLeaveWorkCalendarDate mock enable") - return r.cli.mock.mockCoreHRCreateCorehrLeaveWorkCalendarDate(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRLeaveWorkCalendarDate(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRLeaveWorkCalendarDate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRLeaveWorkCalendarDate mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRLeaveWorkCalendarDate(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrLeaveWorkCalendarDate", + API: "CreateCoreHRLeaveWorkCalendarDate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/leaves/work_calendar_date", Body: request, @@ -41,24 +41,24 @@ func (r *CoreHRService) CreateCorehrLeaveWorkCalendarDate(ctx context.Context, r NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(createCorehrLeaveWorkCalendarDateResp) + resp := new(createCoreHRLeaveWorkCalendarDateResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrLeaveWorkCalendarDate mock CoreHRCreateCorehrLeaveWorkCalendarDate method -func (r *Mock) MockCoreHRCreateCorehrLeaveWorkCalendarDate(f func(ctx context.Context, request *CreateCorehrLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCorehrLeaveWorkCalendarDateResp, *Response, error)) { - r.mockCoreHRCreateCorehrLeaveWorkCalendarDate = f +// MockCoreHRCreateCoreHRLeaveWorkCalendarDate mock CoreHRCreateCoreHRLeaveWorkCalendarDate method +func (r *Mock) MockCoreHRCreateCoreHRLeaveWorkCalendarDate(f func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error)) { + r.mockCoreHRCreateCoreHRLeaveWorkCalendarDate = f } -// UnMockCoreHRCreateCorehrLeaveWorkCalendarDate un-mock CoreHRCreateCorehrLeaveWorkCalendarDate method -func (r *Mock) UnMockCoreHRCreateCorehrLeaveWorkCalendarDate() { - r.mockCoreHRCreateCorehrLeaveWorkCalendarDate = nil +// UnMockCoreHRCreateCoreHRLeaveWorkCalendarDate un-mock CoreHRCreateCoreHRLeaveWorkCalendarDate method +func (r *Mock) UnMockCoreHRCreateCoreHRLeaveWorkCalendarDate() { + r.mockCoreHRCreateCoreHRLeaveWorkCalendarDate = nil } -// CreateCorehrLeaveWorkCalendarDateReq ... -type CreateCorehrLeaveWorkCalendarDateReq struct { +// CreateCoreHRLeaveWorkCalendarDateReq ... +type CreateCoreHRLeaveWorkCalendarDateReq struct { WkCalendarIDs []string `json:"wk_calendar_ids,omitempty"` // 工作日历ID列表, 最多100;可以通过[获取工作日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/leave/work_calendar) 获取工作日历ID示例值: ["7390282135276635692"] 长度范围: `1` ~ `100` Dates []string `json:"dates,omitempty"` // 日期, 格式: "2006-01-02", 最多50个;注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: ["2006-01-02"] 长度范围: `1` ~ `50` BeginDate *string `json:"begin_date,omitempty"` // 日期范围-开始日期, 格式: "2006-01-02";需要和end_date一起使用;注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: "2006-01-02" @@ -68,23 +68,23 @@ type CreateCorehrLeaveWorkCalendarDateReq struct { IDs []string `json:"ids,omitempty"` // 日期id, 可使用响应体中的data.calendar_dates.id注意: 如果不传 ids 参数, 则必须传 dates 参数或 [begin_date, end_date]参数- 如果传 ids 参数, 则仅生效 ids 参数, 无需传 dates 参数或 [begin_date, end_date]参数示例值: ["7390282135276635692"] 长度范围: `0` ~ `1000` } -// CreateCorehrLeaveWorkCalendarDateResp ... -type CreateCorehrLeaveWorkCalendarDateResp struct { - CalendarDates []*CreateCorehrLeaveWorkCalendarDateRespCalendarDate `json:"calendar_dates,omitempty"` // 日期列表 +// CreateCoreHRLeaveWorkCalendarDateResp ... +type CreateCoreHRLeaveWorkCalendarDateResp struct { + CalendarDates []*CreateCoreHRLeaveWorkCalendarDateRespCalendarDate `json:"calendar_dates,omitempty"` // 日期列表 } -// CreateCorehrLeaveWorkCalendarDateRespCalendarDate ... -type CreateCorehrLeaveWorkCalendarDateRespCalendarDate struct { +// CreateCoreHRLeaveWorkCalendarDateRespCalendarDate ... +type CreateCoreHRLeaveWorkCalendarDateRespCalendarDate struct { CalendarID string `json:"calendar_id,omitempty"` // 工作日历ID Date string `json:"date,omitempty"` // 日期, 格式: "2006-01-02" DateType string `json:"date_type,omitempty"` // 日期类型可选值有: 休息日公共假日工作日 ID string `json:"id,omitempty"` // 日期id } -// createCorehrLeaveWorkCalendarDateResp ... -type createCorehrLeaveWorkCalendarDateResp struct { +// createCoreHRLeaveWorkCalendarDateResp ... +type createCoreHRLeaveWorkCalendarDateResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrLeaveWorkCalendarDateResp `json:"data,omitempty"` + Data *CreateCoreHRLeaveWorkCalendarDateResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_active.go b/api_corehr_location_active.go index d6930d24..950bd062 100644 --- a/api_corehr_location_active.go +++ b/api_corehr_location_active.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrLocationActive 启用/停用地点 +// CreateCoreHRLocationActive 启用/停用地点 // // - 停用地点时请确认有无在职员工、异动单据、待入职单据关联此地点, 如有会导致停用失败。 // - 若启/停用的生效时间当天不存在版本则会自动生成一个版本。 @@ -30,53 +30,53 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/active // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/active -func (r *CoreHRService) CreateCorehrLocationActive(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrLocationActive != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLocationActive mock enable") - return r.cli.mock.mockCoreHRCreateCorehrLocationActive(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRLocationActive(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRLocationActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRLocationActive mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRLocationActive(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrLocationActive", + API: "CreateCoreHRLocationActive", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/active", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrLocationActiveResp) + resp := new(createCoreHRLocationActiveResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrLocationActive mock CoreHRCreateCorehrLocationActive method -func (r *Mock) MockCoreHRCreateCorehrLocationActive(f func(ctx context.Context, request *CreateCorehrLocationActiveReq, options ...MethodOptionFunc) (*CreateCorehrLocationActiveResp, *Response, error)) { - r.mockCoreHRCreateCorehrLocationActive = f +// MockCoreHRCreateCoreHRLocationActive mock CoreHRCreateCoreHRLocationActive method +func (r *Mock) MockCoreHRCreateCoreHRLocationActive(f func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error)) { + r.mockCoreHRCreateCoreHRLocationActive = f } -// UnMockCoreHRCreateCorehrLocationActive un-mock CoreHRCreateCorehrLocationActive method -func (r *Mock) UnMockCoreHRCreateCorehrLocationActive() { - r.mockCoreHRCreateCorehrLocationActive = nil +// UnMockCoreHRCreateCoreHRLocationActive un-mock CoreHRCreateCoreHRLocationActive method +func (r *Mock) UnMockCoreHRCreateCoreHRLocationActive() { + r.mockCoreHRCreateCoreHRLocationActive = nil } -// CreateCorehrLocationActiveReq ... -type CreateCorehrLocationActiveReq struct { +// CreateCoreHRLocationActiveReq ... +type CreateCoreHRLocationActiveReq struct { LocationID string `json:"location_id,omitempty"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: "1616161616" EffectiveTime string `json:"effective_time,omitempty"` // 地点启用/停用生效日期- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01~9999-12-31- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version)示例值: "2020-01-01" Active bool `json:"active,omitempty"` // 地点启用/停用状态- true 为启用- false 为停用示例值: true OperationReason string `json:"operation_reason,omitempty"` // 操作原因示例值: "业务操作" } -// CreateCorehrLocationActiveResp ... -type CreateCorehrLocationActiveResp struct { +// CreateCoreHRLocationActiveResp ... +type CreateCoreHRLocationActiveResp struct { } -// createCorehrLocationActiveResp ... -type createCorehrLocationActiveResp struct { +// createCoreHRLocationActiveResp ... +type createCoreHRLocationActiveResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrLocationActiveResp `json:"data,omitempty"` + Data *CreateCoreHRLocationActiveResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_address_create.go b/api_corehr_location_address_create.go index c8a43dbc..5500a25d 100644 --- a/api_corehr_location_address_create.go +++ b/api_corehr_location_address_create.go @@ -21,43 +21,43 @@ import ( "context" ) -// CreateCorehrLocationAddress 添加地点地址 +// CreateCoreHRLocationAddress 添加地点地址 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/create -func (r *CoreHRService) CreateCorehrLocationAddress(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrLocationAddress != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrLocationAddress mock enable") - return r.cli.mock.mockCoreHRCreateCorehrLocationAddress(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRLocationAddress(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRLocationAddress mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRLocationAddress(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrLocationAddress", + API: "CreateCoreHRLocationAddress", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrLocationAddressResp) + resp := new(createCoreHRLocationAddressResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrLocationAddress mock CoreHRCreateCorehrLocationAddress method -func (r *Mock) MockCoreHRCreateCorehrLocationAddress(f func(ctx context.Context, request *CreateCorehrLocationAddressReq, options ...MethodOptionFunc) (*CreateCorehrLocationAddressResp, *Response, error)) { - r.mockCoreHRCreateCorehrLocationAddress = f +// MockCoreHRCreateCoreHRLocationAddress mock CoreHRCreateCoreHRLocationAddress method +func (r *Mock) MockCoreHRCreateCoreHRLocationAddress(f func(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error)) { + r.mockCoreHRCreateCoreHRLocationAddress = f } -// UnMockCoreHRCreateCorehrLocationAddress un-mock CoreHRCreateCorehrLocationAddress method -func (r *Mock) UnMockCoreHRCreateCorehrLocationAddress() { - r.mockCoreHRCreateCorehrLocationAddress = nil +// UnMockCoreHRCreateCoreHRLocationAddress un-mock CoreHRCreateCoreHRLocationAddress method +func (r *Mock) UnMockCoreHRCreateCoreHRLocationAddress() { + r.mockCoreHRCreateCoreHRLocationAddress = nil } -// CreateCorehrLocationAddressReq ... -type CreateCorehrLocationAddressReq struct { +// CreateCoreHRLocationAddressReq ... +type CreateCoreHRLocationAddressReq struct { LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 NeedCustomLatinAddress *bool `query:"need_custom_latin_address" json:"-"` // 是否需要自定义传入国际化拉丁语系地址。如果传入true能够自定义传入address_line_xx的值, 否则address_line_xx跟随local_address_line_xx的值示例值: true @@ -84,25 +84,25 @@ type CreateCorehrLocationAddressReq struct { LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - AddressTypes []*CreateCorehrLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` + AddressTypes []*CreateCoreHRLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` IsPrimary *bool `json:"is_primary,omitempty"` // 是否主要地址, 一个地点只能存在一个主要地址, 添加主要地址会将取消原主要地址- true 表示地址是主要地址- false 表示地址不是主要地址示例值: true IsPublic *bool `json:"is_public,omitempty"` // 是否公开地址- true 表示地址是公开地址- false 表示地址不是公开地址示例值: true } -// CreateCorehrLocationAddressReqAddressType ... -type CreateCorehrLocationAddressReqAddressType struct { +// CreateCoreHRLocationAddressReqAddressType ... +type CreateCoreHRLocationAddressReqAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// CreateCorehrLocationAddressResp ... -type CreateCorehrLocationAddressResp struct { +// CreateCoreHRLocationAddressResp ... +type CreateCoreHRLocationAddressResp struct { AddressID string `json:"address_id,omitempty"` // 地址 ID } -// createCorehrLocationAddressResp ... -type createCorehrLocationAddressResp struct { +// createCoreHRLocationAddressResp ... +type createCoreHRLocationAddressResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrLocationAddressResp `json:"data,omitempty"` + Data *CreateCoreHRLocationAddressResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_address_delete.go b/api_corehr_location_address_delete.go index c91532f6..ef21c8f5 100644 --- a/api_corehr_location_address_delete.go +++ b/api_corehr_location_address_delete.go @@ -21,57 +21,57 @@ import ( "context" ) -// DeleteCorehrLocationAddress 删除地点地址 +// DeleteCoreHRLocationAddress 删除地点地址 // // 删除地点地址时请确认是否为主要地址或是否为最后一个地址, 如有会导致删除失败。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/delete // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/delete -func (r *CoreHRService) DeleteCorehrLocationAddress(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrLocationAddress != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrLocationAddress mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrLocationAddress(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRLocationAddress(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRLocationAddress mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRLocationAddress(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrLocationAddress", + API: "DeleteCoreHRLocationAddress", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses/:address_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrLocationAddressResp) + resp := new(deleteCoreHRLocationAddressResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrLocationAddress mock CoreHRDeleteCorehrLocationAddress method -func (r *Mock) MockCoreHRDeleteCorehrLocationAddress(f func(ctx context.Context, request *DeleteCorehrLocationAddressReq, options ...MethodOptionFunc) (*DeleteCorehrLocationAddressResp, *Response, error)) { - r.mockCoreHRDeleteCorehrLocationAddress = f +// MockCoreHRDeleteCoreHRLocationAddress mock CoreHRDeleteCoreHRLocationAddress method +func (r *Mock) MockCoreHRDeleteCoreHRLocationAddress(f func(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error)) { + r.mockCoreHRDeleteCoreHRLocationAddress = f } -// UnMockCoreHRDeleteCorehrLocationAddress un-mock CoreHRDeleteCorehrLocationAddress method -func (r *Mock) UnMockCoreHRDeleteCorehrLocationAddress() { - r.mockCoreHRDeleteCorehrLocationAddress = nil +// UnMockCoreHRDeleteCoreHRLocationAddress un-mock CoreHRDeleteCoreHRLocationAddress method +func (r *Mock) UnMockCoreHRDeleteCoreHRLocationAddress() { + r.mockCoreHRDeleteCoreHRLocationAddress = nil } -// DeleteCorehrLocationAddressReq ... -type DeleteCorehrLocationAddressReq struct { +// DeleteCoreHRLocationAddressReq ... +type DeleteCoreHRLocationAddressReq struct { LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" AddressID string `path:"address_id" json:"-"` // 地址 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)[【添加地点地址】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create)等接口可以返回地址 ID示例值: "1515151515" } -// DeleteCorehrLocationAddressResp ... -type DeleteCorehrLocationAddressResp struct { +// DeleteCoreHRLocationAddressResp ... +type DeleteCoreHRLocationAddressResp struct { } -// deleteCorehrLocationAddressResp ... -type deleteCorehrLocationAddressResp struct { +// deleteCoreHRLocationAddressResp ... +type deleteCoreHRLocationAddressResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrLocationAddressResp `json:"data,omitempty"` + Data *DeleteCoreHRLocationAddressResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_address_update.go b/api_corehr_location_address_update.go index 7dde96fa..d7ce8c45 100644 --- a/api_corehr_location_address_update.go +++ b/api_corehr_location_address_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrLocationAddress 更新地点地址 +// UpdateCoreHRLocationAddress 更新地点地址 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/patch // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/location-address/patch -func (r *CoreHRService) UpdateCorehrLocationAddress(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrLocationAddress != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrLocationAddress mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrLocationAddress(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRLocationAddress(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRLocationAddress != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRLocationAddress mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRLocationAddress(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrLocationAddress", + API: "UpdateCoreHRLocationAddress", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id/addresses/:address_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrLocationAddressResp) + resp := new(updateCoreHRLocationAddressResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrLocationAddress mock CoreHRUpdateCorehrLocationAddress method -func (r *Mock) MockCoreHRUpdateCorehrLocationAddress(f func(ctx context.Context, request *UpdateCorehrLocationAddressReq, options ...MethodOptionFunc) (*UpdateCorehrLocationAddressResp, *Response, error)) { - r.mockCoreHRUpdateCorehrLocationAddress = f +// MockCoreHRUpdateCoreHRLocationAddress mock CoreHRUpdateCoreHRLocationAddress method +func (r *Mock) MockCoreHRUpdateCoreHRLocationAddress(f func(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRLocationAddress = f } -// UnMockCoreHRUpdateCorehrLocationAddress un-mock CoreHRUpdateCorehrLocationAddress method -func (r *Mock) UnMockCoreHRUpdateCorehrLocationAddress() { - r.mockCoreHRUpdateCorehrLocationAddress = nil +// UnMockCoreHRUpdateCoreHRLocationAddress un-mock CoreHRUpdateCoreHRLocationAddress method +func (r *Mock) UnMockCoreHRUpdateCoreHRLocationAddress() { + r.mockCoreHRUpdateCoreHRLocationAddress = nil } -// UpdateCorehrLocationAddressReq ... -type UpdateCorehrLocationAddressReq struct { +// UpdateCoreHRLocationAddressReq ... +type UpdateCoreHRLocationAddressReq struct { LocationID string `path:"location_id" json:"-"` // 地点 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点 ID示例值: "1616161616" AddressID string `path:"address_id" json:"-"` // 地址 ID。ID 获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)[【添加地点地址】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location-address/create)等接口可以返回地址 ID示例值: "1515151515" ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 @@ -85,24 +85,24 @@ type UpdateCorehrLocationAddressReq struct { LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)- 填写规则可见[【地址填写指南】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/basic-infomation/data-calculation-rules/address-completion-guidelines)示例值: "丹佛测试地址-纽埃时区" PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - AddressTypes []*UpdateCorehrLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` + AddressTypes []*UpdateCoreHRLocationAddressReqAddressType `json:"address_types,omitempty"` // 地址类型, 枚举值及详细信息可通过[【枚举常量介绍】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)查询获得 长度范围: `0` ~ `5` IsPrimary *bool `json:"is_primary,omitempty"` // 是否主要地址, 一个地点只能存在一个主要地址, 更新地址为主要地址会取消原主要地址, 无法更新主要地址为非主要地址- true 表示地址是主要地址- false 表示地址不是主要地址示例值: true IsPublic *bool `json:"is_public,omitempty"` // 是否公开地址- true 表示地址是公开地址- false 表示地址不是公开地址示例值: true } -// UpdateCorehrLocationAddressReqAddressType ... -type UpdateCorehrLocationAddressReqAddressType struct { +// UpdateCoreHRLocationAddressReqAddressType ... +type UpdateCoreHRLocationAddressReqAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// UpdateCorehrLocationAddressResp ... -type UpdateCorehrLocationAddressResp struct { +// UpdateCoreHRLocationAddressResp ... +type UpdateCoreHRLocationAddressResp struct { } -// updateCorehrLocationAddressResp ... -type updateCorehrLocationAddressResp struct { +// updateCoreHRLocationAddressResp ... +type updateCoreHRLocationAddressResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrLocationAddressResp `json:"data,omitempty"` + Data *UpdateCoreHRLocationAddressResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_query_multi_timeline.go b/api_corehr_location_query_multi_timeline.go index 5562953e..d3933bcc 100644 --- a/api_corehr_location_query_multi_timeline.go +++ b/api_corehr_location_query_multi_timeline.go @@ -21,65 +21,65 @@ import ( "context" ) -// QueryCorehrLocationMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) +// QueryCoreHRLocationMultiTimeline - 接口支持查询出对象生效时间段在指定的start_date和end_date之间的版本(即: 会查询出生效时间段和查询时间段有交集的版本) // // - 接口支持对象版本相关字段的查询和返回(默认返回id和version_id) // 延迟说明: 数据库主从延迟2s以内, 即: 直接创建对象后2s内调用此接口可能查询不到数据。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/query_multi_timeline // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/query_multi_timeline -func (r *CoreHRService) QueryCorehrLocationMultiTimeline(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrLocationMultiTimeline != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrLocationMultiTimeline mock enable") - return r.cli.mock.mockCoreHRQueryCorehrLocationMultiTimeline(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRLocationMultiTimeline(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRLocationMultiTimeline != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRLocationMultiTimeline mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRLocationMultiTimeline(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrLocationMultiTimeline", + API: "QueryCoreHRLocationMultiTimeline", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/query_multi_timeline", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrLocationMultiTimelineResp) + resp := new(queryCoreHRLocationMultiTimelineResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrLocationMultiTimeline mock CoreHRQueryCorehrLocationMultiTimeline method -func (r *Mock) MockCoreHRQueryCorehrLocationMultiTimeline(f func(ctx context.Context, request *QueryCorehrLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCorehrLocationMultiTimelineResp, *Response, error)) { - r.mockCoreHRQueryCorehrLocationMultiTimeline = f +// MockCoreHRQueryCoreHRLocationMultiTimeline mock CoreHRQueryCoreHRLocationMultiTimeline method +func (r *Mock) MockCoreHRQueryCoreHRLocationMultiTimeline(f func(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error)) { + r.mockCoreHRQueryCoreHRLocationMultiTimeline = f } -// UnMockCoreHRQueryCorehrLocationMultiTimeline un-mock CoreHRQueryCorehrLocationMultiTimeline method -func (r *Mock) UnMockCoreHRQueryCorehrLocationMultiTimeline() { - r.mockCoreHRQueryCorehrLocationMultiTimeline = nil +// UnMockCoreHRQueryCoreHRLocationMultiTimeline un-mock CoreHRQueryCoreHRLocationMultiTimeline method +func (r *Mock) UnMockCoreHRQueryCoreHRLocationMultiTimeline() { + r.mockCoreHRQueryCoreHRLocationMultiTimeline = nil } -// QueryCorehrLocationMultiTimelineReq ... -type QueryCorehrLocationMultiTimelineReq struct { +// QueryCoreHRLocationMultiTimelineReq ... +type QueryCoreHRLocationMultiTimelineReq struct { LocationIDs []string `json:"location_ids,omitempty"` // 地点ID。ID获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: ["7094136522860922111"] 长度范围: `1` ~ `10` StartDate *string `json:"start_date,omitempty"` // 查询开始时间(包含)示例值: "2024-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` EndDate *string `json:"end_date,omitempty"` // 查询结束时间(不包含)示例值: "2024-12-31" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 可选["location_name", "code", "active", "parent_location", "description", "effective_date", "expiration_date", "location_usage", "working_hours_type", "locale", "time_zone", "display_language", "address"]示例值: ["location_name"] 长度范围: `0` ~ `100` } -// QueryCorehrLocationMultiTimelineResp ... -type QueryCorehrLocationMultiTimelineResp struct { - Items []*QueryCorehrLocationMultiTimelineRespItem `json:"items,omitempty"` // 地点信息 +// QueryCoreHRLocationMultiTimelineResp ... +type QueryCoreHRLocationMultiTimelineResp struct { + Items []*QueryCoreHRLocationMultiTimelineRespItem `json:"items,omitempty"` // 地点信息 } -// QueryCorehrLocationMultiTimelineRespItem ... -type QueryCorehrLocationMultiTimelineRespItem struct { - LocationVersionData []*QueryCorehrLocationMultiTimelineRespItemLocationVersionData `json:"location_version_data,omitempty"` // 地点版本信息 - Address []*QueryCorehrLocationMultiTimelineRespItemAddres `json:"address,omitempty"` // 地址信息 +// QueryCoreHRLocationMultiTimelineRespItem ... +type QueryCoreHRLocationMultiTimelineRespItem struct { + LocationVersionData []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionData `json:"location_version_data,omitempty"` // 地点版本信息 + Address []*QueryCoreHRLocationMultiTimelineRespItemAddres `json:"address,omitempty"` // 地址信息 } -// QueryCorehrLocationMultiTimelineRespItemAddres ... -type QueryCorehrLocationMultiTimelineRespItemAddres struct { +// QueryCoreHRLocationMultiTimelineRespItemAddres ... +type QueryCoreHRLocationMultiTimelineRespItemAddres struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -106,81 +106,81 @@ type QueryCorehrLocationMultiTimelineRespItemAddres struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrLocationMultiTimelineRespItemAddresAddressType `json:"address_type_list,omitempty"` // 地址类型 - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=address;custom_api_name=address_type + AddressTypeList []*QueryCoreHRLocationMultiTimelineRespItemAddresAddressType `json:"address_type_list,omitempty"` // 地址类型 - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=address;custom_api_name=address_type IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 } -// QueryCorehrLocationMultiTimelineRespItemAddresAddressType ... -type QueryCorehrLocationMultiTimelineRespItemAddresAddressType struct { +// QueryCoreHRLocationMultiTimelineRespItemAddresAddressType ... +type QueryCoreHRLocationMultiTimelineRespItemAddresAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRLocationMultiTimelineRespItemAddresAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay ... -type QueryCorehrLocationMultiTimelineRespItemAddresAddressTypeDisplay struct { +// QueryCoreHRLocationMultiTimelineRespItemAddresAddressTypeDisplay ... +type QueryCoreHRLocationMultiTimelineRespItemAddresAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionData ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionData struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionData ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionData struct { LocationID string `json:"location_id,omitempty"` // 地点ID LocationVersionID string `json:"location_version_id,omitempty"` // 地点版本ID - LocationNames []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName `json:"location_names,omitempty"` // 地点名称 + LocationNames []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationName `json:"location_names,omitempty"` // 地点名称 ParentLocationID string `json:"parent_location_id,omitempty"` // 上级地点ID- 若查询的是一级地点, 则该字段不展示 EffectiveDate string `json:"effective_date,omitempty"` // 当前版本生效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) ExpirationDate string `json:"expiration_date,omitempty"` // 当前版本失效日期- 返回格式: YYYY-MM-DD (最小单位到日)- 日期范围:1900-01-01 ~9999-12-31 - 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version) Active bool `json:"active,omitempty"` // 是否启用 - Descriptions []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription `json:"descriptions,omitempty"` // 描述 + Descriptions []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataDescription `json:"descriptions,omitempty"` // 描述 Code string `json:"code,omitempty"` // 编码 - LocationUsages []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage `json:"location_usages,omitempty"` // 地点用途, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage - Locale *QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale `json:"locale,omitempty"` // 区域设置ID - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale + LocationUsages []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsage `json:"location_usages,omitempty"` // 地点用途, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage + Locale *QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocale `json:"locale,omitempty"` // 区域设置ID - 枚举值及详细信息可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale TimeZoneID string `json:"time_zone_id,omitempty"` // 时区 ID - 详细信息可通过[【查询时区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-time_zone/search)接口查询获得。 DisplayLanguageID string `json:"display_language_id,omitempty"` // 默认语言 ID - 详细信息可通过[【查询语言信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-language/search)。 WorkingHoursTypeID string `json:"working_hours_type_id,omitempty"` // 工时制度 ID- 详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list) } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataDescription struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataDescription ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataDescription struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocale struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocale ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocale struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocaleDisplay struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationName struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationName ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationName struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsage struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsage ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay ... -type QueryCorehrLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay struct { +// QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay ... +type QueryCoreHRLocationMultiTimelineRespItemLocationVersionDataLocationUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言- 中文用zh-CN, 英文用en-US。 Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrLocationMultiTimelineResp ... -type queryCorehrLocationMultiTimelineResp struct { +// queryCoreHRLocationMultiTimelineResp ... +type queryCoreHRLocationMultiTimelineResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrLocationMultiTimelineResp `json:"data,omitempty"` + Data *QueryCoreHRLocationMultiTimelineResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_query_recent_change.go b/api_corehr_location_query_recent_change.go index b125b5fd..a7f2d157 100644 --- a/api_corehr_location_query_recent_change.go +++ b/api_corehr_location_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrLocationRecentChange 查询指定时间范围内当前生效信息发生变更的地点, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该地点id +// QueryCoreHRLocationRecentChange 查询指定时间范围内当前生效信息发生变更的地点, 即只有地点当前生效版本的生效时间在查询时间范围内, 才返回该地点id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/query_recent_change -func (r *CoreHRService) QueryCorehrLocationRecentChange(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrLocationRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrLocationRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrLocationRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRLocationRecentChange(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRLocationRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRLocationRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRLocationRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrLocationRecentChange", + API: "QueryCoreHRLocationRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrLocationRecentChangeResp) + resp := new(queryCoreHRLocationRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrLocationRecentChange mock CoreHRQueryCorehrLocationRecentChange method -func (r *Mock) MockCoreHRQueryCorehrLocationRecentChange(f func(ctx context.Context, request *QueryCorehrLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrLocationRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrLocationRecentChange = f +// MockCoreHRQueryCoreHRLocationRecentChange mock CoreHRQueryCoreHRLocationRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRLocationRecentChange(f func(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRLocationRecentChange = f } -// UnMockCoreHRQueryCorehrLocationRecentChange un-mock CoreHRQueryCorehrLocationRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrLocationRecentChange() { - r.mockCoreHRQueryCorehrLocationRecentChange = nil +// UnMockCoreHRQueryCoreHRLocationRecentChange un-mock CoreHRQueryCoreHRLocationRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRLocationRecentChange() { + r.mockCoreHRQueryCoreHRLocationRecentChange = nil } -// QueryCorehrLocationRecentChangeReq ... -type QueryCorehrLocationRecentChangeReq struct { +// QueryCoreHRLocationRecentChangeReq ... +type QueryCoreHRLocationRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS"示例值: 2024-04-01 00:00:00 } -// QueryCorehrLocationRecentChangeResp ... -type QueryCorehrLocationRecentChangeResp struct { +// QueryCoreHRLocationRecentChangeResp ... +type QueryCoreHRLocationRecentChangeResp struct { LocationIDs []string `json:"location_ids,omitempty"` // 地点 ID 列表, 其中包含新建、更新以及删除的 ID 列表。- 非删除的数据, 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedLocationIDs []string `json:"deleted_location_ids,omitempty"` // 目标查询时间范围内被删除的地点列表, 该列表是 location_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的部门 IDs。- 由于对应的地点已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrLocationRecentChangeResp ... -type queryCorehrLocationRecentChangeResp struct { +// queryCoreHRLocationRecentChangeResp ... +type queryCoreHRLocationRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrLocationRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRLocationRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_location_update.go b/api_corehr_location_update.go index afcff5ff..c91c69eb 100644 --- a/api_corehr_location_update.go +++ b/api_corehr_location_update.go @@ -21,91 +21,91 @@ import ( "context" ) -// UpdateCorehrLocation 更新地点 +// UpdateCoreHRLocation 更新地点 // // - 如果传入生效时间当天不存在版本则会自动生成一个版本。 // - 如果传入生效时间当天存在版本则会修改该版本。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/location/patch // new doc: https://open.feishu.cn/document/corehr-v1/organization-management/location/patch -func (r *CoreHRService) UpdateCorehrLocation(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrLocation != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrLocation mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrLocation(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRLocation(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRLocation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRLocation mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRLocation(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrLocation", + API: "UpdateCoreHRLocation", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/locations/:location_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrLocationResp) + resp := new(updateCoreHRLocationResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrLocation mock CoreHRUpdateCorehrLocation method -func (r *Mock) MockCoreHRUpdateCorehrLocation(f func(ctx context.Context, request *UpdateCorehrLocationReq, options ...MethodOptionFunc) (*UpdateCorehrLocationResp, *Response, error)) { - r.mockCoreHRUpdateCorehrLocation = f +// MockCoreHRUpdateCoreHRLocation mock CoreHRUpdateCoreHRLocation method +func (r *Mock) MockCoreHRUpdateCoreHRLocation(f func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRLocation = f } -// UnMockCoreHRUpdateCorehrLocation un-mock CoreHRUpdateCorehrLocation method -func (r *Mock) UnMockCoreHRUpdateCorehrLocation() { - r.mockCoreHRUpdateCorehrLocation = nil +// UnMockCoreHRUpdateCoreHRLocation un-mock CoreHRUpdateCoreHRLocation method +func (r *Mock) UnMockCoreHRUpdateCoreHRLocation() { + r.mockCoreHRUpdateCoreHRLocation = nil } -// UpdateCorehrLocationReq ... -type UpdateCorehrLocationReq struct { +// UpdateCoreHRLocationReq ... +type UpdateCoreHRLocationReq struct { LocationID string `path:"location_id" json:"-"` // 地点ID。ID获取方式: 调用[【创建地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/create)[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)等接口可以返回地点ID示例值: "1616161616" ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 12454646 ParentID *string `json:"parent_id,omitempty"` // 上级地点, 在创建场景下, 该字段必填, 枚举值及详细信息可通过[【批量分页查询地点】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)查询获得示例值: "4719168654814483759" - Names []*UpdateCorehrLocationReqName `json:"names,omitempty"` // 地点名称- 名称不能包含「/」「;」「;」「\」「'」字符- 地点中英文名称会有全局唯一校验 长度范围: `0` ~ `5` + Names []*UpdateCoreHRLocationReqName `json:"names,omitempty"` // 地点名称- 名称不能包含「/」「;」「;」「\」「'」字符- 地点中英文名称会有全局唯一校验 长度范围: `0` ~ `5` Active *bool `json:"active,omitempty"` // 地点启用/停用状态- true 为启用- false 为停用示例值: true EffectiveTime string `json:"effective_time,omitempty"` // 版本生效日期- 填写格式: YYYY-MM-DD- 系统默认为填写日期当天的 00:00:00 生效 - 该接口只支持到最小单位为日- 日期范围要求:1900-01-01~9999-12-31- 详情可以参考[时间轴介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/about-timeline-version)示例值: "2020-05-02" Code *string `json:"code,omitempty"` // 地点编码 (不能与其他记录的编码重复), 当开启自动编码时, 该字段会失效示例值: "12456" - Descriptions []*UpdateCorehrLocationReqDescription `json:"descriptions,omitempty"` // 地点描述 长度范围: `0` ~ `5` - LocationUsages []*UpdateCorehrLocationReqLocationUsage `json:"location_usages,omitempty"` // 地点用途 ID, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage 长度范围: `0` ~ `10` + Descriptions []*UpdateCoreHRLocationReqDescription `json:"descriptions,omitempty"` // 地点描述 长度范围: `0` ~ `5` + LocationUsages []*UpdateCoreHRLocationReqLocationUsage `json:"location_usages,omitempty"` // 地点用途 ID, 枚举值及详细信息可通过[【批量查询地点用途】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=location_usage 长度范围: `0` ~ `10` WorkingHoursTypeID *string `json:"working_hours_type_id,omitempty"` // 工时制度 ID, 枚举值及详细信息可通过[【批量查询工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口查询获得示例值: "4690238309151997779" - Locale *UpdateCorehrLocationReqLocale `json:"locale,omitempty"` // 区域设置 ID, 枚举值及详细信息可通过[【批量查询枚举信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale示例值: zh_cn + Locale *UpdateCoreHRLocationReqLocale `json:"locale,omitempty"` // 区域设置 ID, 枚举值及详细信息可通过[【批量查询枚举信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询获得。- 请求参数object_api_name=location;custom_api_name=locale示例值: zh_cn TimeZoneID *string `json:"time_zone_id,omitempty"` // 时区 ID示例值: "123456789" DisplayLanguageID *string `json:"display_language_id,omitempty"` // 默认显示语言 ID示例值: "123456789" } -// UpdateCorehrLocationReqDescription ... -type UpdateCorehrLocationReqDescription struct { +// UpdateCoreHRLocationReqDescription ... +type UpdateCoreHRLocationReqDescription struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 描述内容示例值: "中文示例" } -// UpdateCorehrLocationReqLocale ... -type UpdateCorehrLocationReqLocale struct { +// UpdateCoreHRLocationReqLocale ... +type UpdateCoreHRLocationReqLocale struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// UpdateCorehrLocationReqLocationUsage ... -type UpdateCorehrLocationReqLocationUsage struct { +// UpdateCoreHRLocationReqLocationUsage ... +type UpdateCoreHRLocationReqLocationUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phone_type" } -// UpdateCorehrLocationReqName ... -type UpdateCorehrLocationReqName struct { +// UpdateCoreHRLocationReqName ... +type UpdateCoreHRLocationReqName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称内容示例值: "中文示例" } -// UpdateCorehrLocationResp ... -type UpdateCorehrLocationResp struct { +// UpdateCoreHRLocationResp ... +type UpdateCoreHRLocationResp struct { } -// updateCorehrLocationResp ... -type updateCorehrLocationResp struct { +// updateCoreHRLocationResp ... +type updateCoreHRLocationResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrLocationResp `json:"data,omitempty"` + Data *UpdateCoreHRLocationResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_offboarding_edit.go b/api_corehr_offboarding_edit.go index b6d69414..3fa2603f 100644 --- a/api_corehr_offboarding_edit.go +++ b/api_corehr_offboarding_edit.go @@ -21,72 +21,72 @@ import ( "context" ) -// CreateCorehrOffboardingEdit 该接口用于编辑飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持的字段包括离职日期、离职原因、离职申请发起时间和离职申请审批通过时间等等, 同时也支持编辑离职的自定义字段(附件字段除外)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// CreateCoreHROffboardingEdit 该接口用于编辑飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持的字段包括离职日期、离职原因、离职申请发起时间和离职申请审批通过时间等等, 同时也支持编辑离职的自定义字段(附件字段除外)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 // // 注意: 该接口会按照应用拥有的「员工数据」的权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请了「员工资源」权限范围。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/edit // new doc: https://open.feishu.cn/document/corehr-v1/offboarding/edit -func (r *CoreHRService) CreateCorehrOffboardingEdit(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrOffboardingEdit != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingEdit mock enable") - return r.cli.mock.mockCoreHRCreateCorehrOffboardingEdit(ctx, request, options...) +func (r *CoreHRService) CreateCoreHROffboardingEdit(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHROffboardingEdit != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHROffboardingEdit mock enable") + return r.cli.mock.mockCoreHRCreateCoreHROffboardingEdit(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrOffboardingEdit", + API: "CreateCoreHROffboardingEdit", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/edit", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrOffboardingEditResp) + resp := new(createCoreHROffboardingEditResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrOffboardingEdit mock CoreHRCreateCorehrOffboardingEdit method -func (r *Mock) MockCoreHRCreateCorehrOffboardingEdit(f func(ctx context.Context, request *CreateCorehrOffboardingEditReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingEditResp, *Response, error)) { - r.mockCoreHRCreateCorehrOffboardingEdit = f +// MockCoreHRCreateCoreHROffboardingEdit mock CoreHRCreateCoreHROffboardingEdit method +func (r *Mock) MockCoreHRCreateCoreHROffboardingEdit(f func(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error)) { + r.mockCoreHRCreateCoreHROffboardingEdit = f } -// UnMockCoreHRCreateCorehrOffboardingEdit un-mock CoreHRCreateCorehrOffboardingEdit method -func (r *Mock) UnMockCoreHRCreateCorehrOffboardingEdit() { - r.mockCoreHRCreateCorehrOffboardingEdit = nil +// UnMockCoreHRCreateCoreHROffboardingEdit un-mock CoreHRCreateCoreHROffboardingEdit method +func (r *Mock) UnMockCoreHRCreateCoreHROffboardingEdit() { + r.mockCoreHRCreateCoreHROffboardingEdit = nil } -// CreateCorehrOffboardingEditReq ... -type CreateCorehrOffboardingEditReq struct { +// CreateCoreHROffboardingEditReq ... +type CreateCoreHROffboardingEditReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录ID, 不允许为空。可以通过[搜索离职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/search)获取, 取值于接口返回的data > items > offboarding_id示例值: "7095671727698478604" OperatorID *string `json:"operator_id,omitempty"` // 操作人雇佣 ID(employment_id), ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 为空时, 默认系统操作人示例值: "6982509313466189341" - UpdateData []*CreateCorehrOffboardingEditReqUpdateData `json:"update_data,omitempty"` // 编辑字段数据信息, 不允许为空。 长度范围: `0` ~ `10000` + UpdateData []*CreateCoreHROffboardingEditReqUpdateData `json:"update_data,omitempty"` // 编辑字段数据信息, 不允许为空。 长度范围: `0` ~ `10000` } -// CreateCorehrOffboardingEditReqUpdateData ... -type CreateCorehrOffboardingEditReqUpdateData struct { +// CreateCoreHROffboardingEditReqUpdateData ... +type CreateCoreHROffboardingEditReqUpdateData struct { FieldName string `json:"field_name,omitempty"` // 字段唯一标识(api_name)注意: 1.该字段取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中各字段的字段编码2.自定义字段也可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取3.不可编辑的字段api_name范围:wk_id-wk_tenant_id-employment-process_id-flow_id-node_id-initiator_id-status-checklist_status-checklist_process_id-type, hrbp_ids-hrbp_list-probation_id-wk_created_at-wk_created_by-wk_updated_at-wk_updated_by-wk_deleted_at-wk_is_deleted-noncompete_agreement_id-social_insurance_end_date-provident_fund_end_date-sign_type示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同, 例如:文本类型(1):"文本"-布尔类型(2):"true"-数字类型(3):"123"-单值枚举类型(4):"option_1"-多值枚举类型(4): "[\"option_1\", \"option_2\"]"-日期类型(7):"2024-06-30"注意: 1.枚举字段的枚举值取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 对应字段选项集的选项编码。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.人员字段目前只支持传入员工的雇佣ID。先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。4.暂不支持填写附件类型字段。示例值: "Sandy" } -// CreateCorehrOffboardingEditResp ... -type CreateCorehrOffboardingEditResp struct { - Data []*CreateCorehrOffboardingEditRespData `json:"data,omitempty"` // 编辑字段数据信息 +// CreateCoreHROffboardingEditResp ... +type CreateCoreHROffboardingEditResp struct { + Data []*CreateCoreHROffboardingEditRespData `json:"data,omitempty"` // 编辑字段数据信息 } -// CreateCorehrOffboardingEditRespData ... -type CreateCorehrOffboardingEditRespData struct { +// CreateCoreHROffboardingEditRespData ... +type CreateCoreHROffboardingEditRespData struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// createCorehrOffboardingEditResp ... -type createCorehrOffboardingEditResp struct { +// createCoreHROffboardingEditResp ... +type createCoreHROffboardingEditResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrOffboardingEditResp `json:"data,omitempty"` + Data *CreateCoreHROffboardingEditResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_offboarding_revoke.go b/api_corehr_offboarding_revoke.go index e1a331c9..31699486 100644 --- a/api_corehr_offboarding_revoke.go +++ b/api_corehr_offboarding_revoke.go @@ -21,58 +21,58 @@ import ( "context" ) -// CreateCorehrOffboardingRevoke 通过离职ID撤销飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// RevokeCoreHROffboarding 通过离职ID撤销飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management)。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 // // 注意: 该接口会限制应用拥有的「员工数据」的权限范围撤销离职信息, 请先在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请「员工资源」权限范围。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/revoke // new doc: https://open.feishu.cn/document/corehr-v1/offboarding/revoke -func (r *CoreHRService) CreateCorehrOffboardingRevoke(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrOffboardingRevoke != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingRevoke mock enable") - return r.cli.mock.mockCoreHRCreateCorehrOffboardingRevoke(ctx, request, options...) +func (r *CoreHRService) RevokeCoreHROffboarding(ctx context.Context, request *RevokeCoreHROffboardingReq, options ...MethodOptionFunc) (*RevokeCoreHROffboardingResp, *Response, error) { + if r.cli.mock.mockCoreHRRevokeCoreHROffboarding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RevokeCoreHROffboarding mock enable") + return r.cli.mock.mockCoreHRRevokeCoreHROffboarding(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrOffboardingRevoke", + API: "RevokeCoreHROffboarding", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/revoke", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrOffboardingRevokeResp) + resp := new(revokeCoreHROffboardingResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrOffboardingRevoke mock CoreHRCreateCorehrOffboardingRevoke method -func (r *Mock) MockCoreHRCreateCorehrOffboardingRevoke(f func(ctx context.Context, request *CreateCorehrOffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCorehrOffboardingRevokeResp, *Response, error)) { - r.mockCoreHRCreateCorehrOffboardingRevoke = f +// MockCoreHRRevokeCoreHROffboarding mock CoreHRRevokeCoreHROffboarding method +func (r *Mock) MockCoreHRRevokeCoreHROffboarding(f func(ctx context.Context, request *RevokeCoreHROffboardingReq, options ...MethodOptionFunc) (*RevokeCoreHROffboardingResp, *Response, error)) { + r.mockCoreHRRevokeCoreHROffboarding = f } -// UnMockCoreHRCreateCorehrOffboardingRevoke un-mock CoreHRCreateCorehrOffboardingRevoke method -func (r *Mock) UnMockCoreHRCreateCorehrOffboardingRevoke() { - r.mockCoreHRCreateCorehrOffboardingRevoke = nil +// UnMockCoreHRRevokeCoreHROffboarding un-mock CoreHRRevokeCoreHROffboarding method +func (r *Mock) UnMockCoreHRRevokeCoreHROffboarding() { + r.mockCoreHRRevokeCoreHROffboarding = nil } -// CreateCorehrOffboardingRevokeReq ... -type CreateCorehrOffboardingRevokeReq struct { +// RevokeCoreHROffboardingReq ... +type RevokeCoreHROffboardingReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录ID, 不允许为空。可以通过[搜索离职信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/search)获取, 取值于接口返回的data > items > offboarding_id示例值: "7095671727698478604" OperatorID *string `json:"operator_id,omitempty"` // 操作人雇佣 ID(employment_id), ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 为空时, 默认系统操作人示例值: "6982509313466189341" } -// CreateCorehrOffboardingRevokeResp ... -type CreateCorehrOffboardingRevokeResp struct { +// RevokeCoreHROffboardingResp ... +type RevokeCoreHROffboardingResp struct { } -// createCorehrOffboardingRevokeResp ... -type createCorehrOffboardingRevokeResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrOffboardingRevokeResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// revokeCoreHROffboardingResp ... +type revokeCoreHROffboardingResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RevokeCoreHROffboardingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_offboarding_submit_v2.go b/api_corehr_offboarding_submit_v2.go index 0d43dc6a..c0f9c0a5 100644 --- a/api_corehr_offboarding_submit_v2.go +++ b/api_corehr_offboarding_submit_v2.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrOffboardingSubmitV2 该接口用于发起飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持填写离职日期、离职原因、屏蔽名单和自定义字段(附件字段除外)等。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 +// SubmitCoreHROffboardingV2 该接口用于发起飞书人事的[离职信息](https://people.feishu.cn/people/members/dimission/management), 支持填写离职日期、离职原因、屏蔽名单和自定义字段(附件字段除外)等。当接口成功提交后, 会产生对应的[离职信息变更](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/events/updated)事件。 // // 注意, 与[操作员工离职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/submit)相比: // 1、该接口会限制应用拥有的「员工数据」的权限范围发起离职信息, 请先在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限」中申请「员工资源」权限范围。 @@ -29,61 +29,61 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/offboarding/submit_v2 // new doc: https://open.feishu.cn/document/corehr-v1/offboarding/submit_v2 -func (r *CoreHRService) CreateCorehrOffboardingSubmitV2(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrOffboardingSubmitV2 != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrOffboardingSubmitV2 mock enable") - return r.cli.mock.mockCoreHRCreateCorehrOffboardingSubmitV2(ctx, request, options...) +func (r *CoreHRService) SubmitCoreHROffboardingV2(ctx context.Context, request *SubmitCoreHROffboardingV2Req, options ...MethodOptionFunc) (*SubmitCoreHROffboardingV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRSubmitCoreHROffboardingV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SubmitCoreHROffboardingV2 mock enable") + return r.cli.mock.mockCoreHRSubmitCoreHROffboardingV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrOffboardingSubmitV2", + API: "SubmitCoreHROffboardingV2", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/offboardings/submit_v2", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrOffboardingSubmitV2Resp) + resp := new(submitCoreHROffboardingV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrOffboardingSubmitV2 mock CoreHRCreateCorehrOffboardingSubmitV2 method -func (r *Mock) MockCoreHRCreateCorehrOffboardingSubmitV2(f func(ctx context.Context, request *CreateCorehrOffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCorehrOffboardingSubmitV2Resp, *Response, error)) { - r.mockCoreHRCreateCorehrOffboardingSubmitV2 = f +// MockCoreHRSubmitCoreHROffboardingV2 mock CoreHRSubmitCoreHROffboardingV2 method +func (r *Mock) MockCoreHRSubmitCoreHROffboardingV2(f func(ctx context.Context, request *SubmitCoreHROffboardingV2Req, options ...MethodOptionFunc) (*SubmitCoreHROffboardingV2Resp, *Response, error)) { + r.mockCoreHRSubmitCoreHROffboardingV2 = f } -// UnMockCoreHRCreateCorehrOffboardingSubmitV2 un-mock CoreHRCreateCorehrOffboardingSubmitV2 method -func (r *Mock) UnMockCoreHRCreateCorehrOffboardingSubmitV2() { - r.mockCoreHRCreateCorehrOffboardingSubmitV2 = nil +// UnMockCoreHRSubmitCoreHROffboardingV2 un-mock CoreHRSubmitCoreHROffboardingV2 method +func (r *Mock) UnMockCoreHRSubmitCoreHROffboardingV2() { + r.mockCoreHRSubmitCoreHROffboardingV2 = nil } -// CreateCorehrOffboardingSubmitV2Req ... -type CreateCorehrOffboardingSubmitV2Req struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - OffboardingMode int64 `json:"offboarding_mode,omitempty"` // 离职方式示例值: 1可选值有: 直接离职发起离职审批 - EmploymentID string `json:"employment_id,omitempty"` // 离职员工 ID(employment_id)不允许为空。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。示例值: "6982509313466189342" - OffboardingDate string `json:"offboarding_date,omitempty"` // 离职日期, 不允许为空, 填写时需要符合YYYY-MM-DD的日期格式。注意: 按员工离职当天的工作地点时区24点生效。假设员工离职日期为2024-12-01, 如果员工在中国大陆, 则生效时间为东八区的2024-12-01 23:59:59。如果员工在华盛顿, 则生效时间为东八区的2024-12-02 12:59:59, 对应西五区的2024-12-01 23:59:59。示例值: "2022-05-18" - OffboardingReasonUniqueIdentifier string `json:"offboarding_reason_unique_identifier,omitempty"` // 离职原因, 不允许为空, 可通过接口[查询员工离职原因列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/query)获取。示例值: "reason_for_offboarding_option8" - OffboardingReasonExplanation *string `json:"offboarding_reason_explanation,omitempty"` // 离职原因说明, 选填, 最大长度6000。示例值: "离职原因说明" - InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID。这个发起人需要有飞书账号, 能够登录系统。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 1.只有发起人可以撤销流程2.为空时, 默认系统发起人示例值: "6982509313466189341" - AddBlockList *bool `json:"add_block_list,omitempty"` // 是否加入离职屏蔽名单注意: 1.取值为true时, 屏蔽原因(block_reason)为必填。2.取值为false时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。3.取值为空时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。4.操作离职时如果选择加入屏蔽名单, 只有当员工离职生效后才会进入到屏蔽名单。示例值: false - BlockReason *string `json:"block_reason,omitempty"` // 屏蔽原因注意: 1.该字段取值于 [人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 的屏蔽原因字段选项集。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.该字段是否必填取决于是否加入离职屏蔽名单(add_block_list)示例值: "红线" - BlockReasonExplanation *string `json:"block_reason_explanation,omitempty"` // 屏蔽原因说明, 选填, 最大长度6000。示例值: "xx 年 xx 月 xx 日因 xx 原因红线" - CustomFields []*CreateCorehrOffboardingSubmitV2ReqCustomField `json:"custom_fields,omitempty"` // 离职自定义字段。注意: 可填写的字段范围参考[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中的自定义字段 长度范围: `0` ~ `10000` - RetainAccount *bool `json:"retain_account,omitempty"` // 离职是否保留飞书账号示例值: false +// SubmitCoreHROffboardingV2Req ... +type SubmitCoreHROffboardingV2Req struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + OffboardingMode int64 `json:"offboarding_mode,omitempty"` // 离职方式示例值: 1可选值有: 直接离职发起离职审批 + EmploymentID string `json:"employment_id,omitempty"` // 离职员工 ID(employment_id)不允许为空。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。示例值: "6982509313466189342" + OffboardingDate string `json:"offboarding_date,omitempty"` // 离职日期, 不允许为空, 填写时需要符合YYYY-MM-DD的日期格式。注意: 按员工离职当天的工作地点时区24点生效。假设员工离职日期为2024-12-01, 如果员工在中国大陆, 则生效时间为东八区的2024-12-01 23:59:59。如果员工在华盛顿, 则生效时间为东八区的2024-12-02 12:59:59, 对应西五区的2024-12-01 23:59:59。示例值: "2022-05-18" + OffboardingReasonUniqueIdentifier string `json:"offboarding_reason_unique_identifier,omitempty"` // 离职原因, 不允许为空, 可通过接口[查询员工离职原因列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/offboarding/query)获取。示例值: "reason_for_offboarding_option8" + OffboardingReasonExplanation *string `json:"offboarding_reason_explanation,omitempty"` // 离职原因说明, 选填, 最大长度6000。示例值: "离职原因说明" + InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID。这个发起人需要有飞书账号, 能够登录系统。ID类型与查询参数 user_id_type取值一致: 1、当user_id_type取值为open_id时, ID获取方式参考[如何获取自己的Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)。2、当user_id_type取值为user_id时, ID获取方式参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)。3、当user_id_type取值为union_id时, ID获取方式参考[如何获取自己的 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)。4、当user_id_type取值为people_corehr_id时, 先参考[如何获取自己的 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)获取User ID。然后通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取雇佣ID。注意: 1.只有发起人可以撤销流程2.为空时, 默认系统发起人示例值: "6982509313466189341" + AddBlockList *bool `json:"add_block_list,omitempty"` // 是否加入离职屏蔽名单注意: 1.取值为true时, 屏蔽原因(block_reason)为必填。2.取值为false时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。3.取值为空时, 不允许填写屏蔽原因(block_reason)和屏蔽原因说明(block_reason_explanation)。4.操作离职时如果选择加入屏蔽名单, 只有当员工离职生效后才会进入到屏蔽名单。示例值: false + BlockReason *string `json:"block_reason,omitempty"` // 屏蔽原因注意: 1.该字段取值于 [人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 的屏蔽原因字段选项集。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.该字段是否必填取决于是否加入离职屏蔽名单(add_block_list)示例值: "红线" + BlockReasonExplanation *string `json:"block_reason_explanation,omitempty"` // 屏蔽原因说明, 选填, 最大长度6000。示例值: "xx 年 xx 月 xx 日因 xx 原因红线" + CustomFields []*SubmitCoreHROffboardingV2ReqCustomField `json:"custom_fields,omitempty"` // 离职自定义字段。注意: 可填写的字段范围参考[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中的自定义字段 长度范围: `0` ~ `10000` + RetainAccount *bool `json:"retain_account,omitempty"` // 离职是否保留飞书账号示例值: false } -// CreateCorehrOffboardingSubmitV2ReqCustomField ... -type CreateCorehrOffboardingSubmitV2ReqCustomField struct { +// SubmitCoreHROffboardingV2ReqCustomField ... +type SubmitCoreHROffboardingV2ReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段唯一标识注意: 1.该字段取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 中各字段的字段编码2.该字段也可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)获取示例值: "custom_field_1__c" Value string `json:"value,omitempty"` // 自定义字段值, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")。注意: 1.枚举字段的枚举值取值于[人员档案配置](https://people.feishu.cn/people/hr-settings/profile) > 信息配置 > 离职信息 对应字段选项集的选项编码。2.枚举字段值也可通过[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 参考接口返回的 字段详情 > 字段类型配置信息 > 选项配置信息 > 选项信息 > 枚举常量集 API name3.人员字段目前只支持传入员工的雇佣ID。员工的人事雇佣ID需要先获取User ID后, 通过[ID 转换](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/common_data-id/convert)获取4.暂不支持填写附件类型字段。示例值: "Sandy" } -// CreateCorehrOffboardingSubmitV2Resp ... -type CreateCorehrOffboardingSubmitV2Resp struct { +// SubmitCoreHROffboardingV2Resp ... +type SubmitCoreHROffboardingV2Resp struct { OffboardingID string `json:"offboarding_id,omitempty"` // 离职记录 id EmploymentID string `json:"employment_id,omitempty"` // 雇员 id OffboardingReasonUniqueIdentifier string `json:"offboarding_reason_unique_identifier,omitempty"` // 离职原因 @@ -96,10 +96,10 @@ type CreateCorehrOffboardingSubmitV2Resp struct { RetainAccount bool `json:"retain_account,omitempty"` // 离职是否保留飞书账号 } -// createCorehrOffboardingSubmitV2Resp ... -type createCorehrOffboardingSubmitV2Resp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrOffboardingSubmitV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// submitCoreHROffboardingV2Resp ... +type submitCoreHROffboardingV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SubmitCoreHROffboardingV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pathway_active.go b/api_corehr_pathway_active.go index 6e1d49d0..17611067 100644 --- a/api_corehr_pathway_active.go +++ b/api_corehr_pathway_active.go @@ -21,54 +21,54 @@ import ( "context" ) -// CreateCorehrPathwayActive 对通道进行 启用 或 停用 操作 +// CreateCoreHRPathwayActive 对通道进行 启用 或 停用 操作 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/active -func (r *CoreHRService) CreateCorehrPathwayActive(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPathwayActive != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPathwayActive mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPathwayActive(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRPathwayActive(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRPathwayActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPathwayActive mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRPathwayActive(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPathwayActive", + API: "CreateCoreHRPathwayActive", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/active", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPathwayActiveResp) + resp := new(createCoreHRPathwayActiveResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPathwayActive mock CoreHRCreateCorehrPathwayActive method -func (r *Mock) MockCoreHRCreateCorehrPathwayActive(f func(ctx context.Context, request *CreateCorehrPathwayActiveReq, options ...MethodOptionFunc) (*CreateCorehrPathwayActiveResp, *Response, error)) { - r.mockCoreHRCreateCorehrPathwayActive = f +// MockCoreHRCreateCoreHRPathwayActive mock CoreHRCreateCoreHRPathwayActive method +func (r *Mock) MockCoreHRCreateCoreHRPathwayActive(f func(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error)) { + r.mockCoreHRCreateCoreHRPathwayActive = f } -// UnMockCoreHRCreateCorehrPathwayActive un-mock CoreHRCreateCorehrPathwayActive method -func (r *Mock) UnMockCoreHRCreateCorehrPathwayActive() { - r.mockCoreHRCreateCorehrPathwayActive = nil +// UnMockCoreHRCreateCoreHRPathwayActive un-mock CoreHRCreateCoreHRPathwayActive method +func (r *Mock) UnMockCoreHRCreateCoreHRPathwayActive() { + r.mockCoreHRCreateCoreHRPathwayActive = nil } -// CreateCorehrPathwayActiveReq ... -type CreateCorehrPathwayActiveReq struct { +// CreateCoreHRPathwayActiveReq ... +type CreateCoreHRPathwayActiveReq struct { PathwayID string `json:"pathway_id,omitempty"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914823" Active bool `json:"active,omitempty"` // 停启用状态;true: 启用, false: 停用示例值: true } -// CreateCorehrPathwayActiveResp ... -type CreateCorehrPathwayActiveResp struct { +// CreateCoreHRPathwayActiveResp ... +type CreateCoreHRPathwayActiveResp struct { } -// createCorehrPathwayActiveResp ... -type createCorehrPathwayActiveResp struct { +// createCoreHRPathwayActiveResp ... +type createCoreHRPathwayActiveResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPathwayActiveResp `json:"data,omitempty"` + Data *CreateCoreHRPathwayActiveResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pathway_batch_get.go b/api_corehr_pathway_batch_get.go index a8b708e0..7f5300b9 100644 --- a/api_corehr_pathway_batch_get.go +++ b/api_corehr_pathway_batch_get.go @@ -21,78 +21,78 @@ import ( "context" ) -// BatchGetCorehrPathway 根据通道的ID批量获取通道的名称、编码、描述信息 +// BatchGetCoreHRPathway 根据通道的ID批量获取通道的名称、编码、描述信息 // // 延迟说明: 数据库主从延迟2s以内, 即: 创建通道后2s内调用此接口可能查询不到数据。 // 由于该接口为ByID批量查询接口, 当请求参数中的某个通道ID错误或者被删除时, 接口不会报错。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get -func (r *CoreHRService) BatchGetCorehrPathway(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchGetCorehrPathway != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCorehrPathway mock enable") - return r.cli.mock.mockCoreHRBatchGetCorehrPathway(ctx, request, options...) +func (r *CoreHRService) BatchGetCoreHRPathway(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchGetCoreHRPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchGetCoreHRPathway mock enable") + return r.cli.mock.mockCoreHRBatchGetCoreHRPathway(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchGetCorehrPathway", + API: "BatchGetCoreHRPathway", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/batch_get", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchGetCorehrPathwayResp) + resp := new(batchGetCoreHRPathwayResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchGetCorehrPathway mock CoreHRBatchGetCorehrPathway method -func (r *Mock) MockCoreHRBatchGetCorehrPathway(f func(ctx context.Context, request *BatchGetCorehrPathwayReq, options ...MethodOptionFunc) (*BatchGetCorehrPathwayResp, *Response, error)) { - r.mockCoreHRBatchGetCorehrPathway = f +// MockCoreHRBatchGetCoreHRPathway mock CoreHRBatchGetCoreHRPathway method +func (r *Mock) MockCoreHRBatchGetCoreHRPathway(f func(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error)) { + r.mockCoreHRBatchGetCoreHRPathway = f } -// UnMockCoreHRBatchGetCorehrPathway un-mock CoreHRBatchGetCorehrPathway method -func (r *Mock) UnMockCoreHRBatchGetCorehrPathway() { - r.mockCoreHRBatchGetCorehrPathway = nil +// UnMockCoreHRBatchGetCoreHRPathway un-mock CoreHRBatchGetCoreHRPathway method +func (r *Mock) UnMockCoreHRBatchGetCoreHRPathway() { + r.mockCoreHRBatchGetCoreHRPathway = nil } -// BatchGetCorehrPathwayReq ... -type BatchGetCorehrPathwayReq struct { +// BatchGetCoreHRPathwayReq ... +type BatchGetCoreHRPathwayReq struct { PathwayIDs []string `json:"pathway_ids,omitempty"` // 通道 ID 列表。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: ["4692446793125560154"] 长度范围: `1` ~ `100` } -// BatchGetCorehrPathwayResp ... -type BatchGetCorehrPathwayResp struct { - Items []*BatchGetCorehrPathwayRespItem `json:"items,omitempty"` // 查询的通道信息 +// BatchGetCoreHRPathwayResp ... +type BatchGetCoreHRPathwayResp struct { + Items []*BatchGetCoreHRPathwayRespItem `json:"items,omitempty"` // 查询的通道信息 } -// BatchGetCorehrPathwayRespItem ... -type BatchGetCorehrPathwayRespItem struct { +// BatchGetCoreHRPathwayRespItem ... +type BatchGetCoreHRPathwayRespItem struct { PathwayID string `json:"pathway_id,omitempty"` // 通道 ID Code string `json:"code,omitempty"` // 编码 - Names []*BatchGetCorehrPathwayRespItemName `json:"names,omitempty"` // 名称 - Descriptions []*BatchGetCorehrPathwayRespItemDescription `json:"descriptions,omitempty"` // 描述 + Names []*BatchGetCoreHRPathwayRespItemName `json:"names,omitempty"` // 名称 + Descriptions []*BatchGetCoreHRPathwayRespItemDescription `json:"descriptions,omitempty"` // 描述 Active bool `json:"active,omitempty"` // 停启用状态;true: 启用, false: 停用 } -// BatchGetCorehrPathwayRespItemDescription ... -type BatchGetCorehrPathwayRespItemDescription struct { +// BatchGetCoreHRPathwayRespItemDescription ... +type BatchGetCoreHRPathwayRespItemDescription struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchGetCorehrPathwayRespItemName ... -type BatchGetCorehrPathwayRespItemName struct { +// BatchGetCoreHRPathwayRespItemName ... +type BatchGetCoreHRPathwayRespItemName struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US Value string `json:"value,omitempty"` // 文本内容 } -// batchGetCorehrPathwayResp ... -type batchGetCorehrPathwayResp struct { +// batchGetCoreHRPathwayResp ... +type batchGetCoreHRPathwayResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchGetCorehrPathwayResp `json:"data,omitempty"` + Data *BatchGetCoreHRPathwayResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pathway_create.go b/api_corehr_pathway_create.go index 7efc846e..a8228f7c 100644 --- a/api_corehr_pathway_create.go +++ b/api_corehr_pathway_create.go @@ -21,71 +21,71 @@ import ( "context" ) -// CreateCorehrPathway 创建通道, 可以定义通道的名称、编码和描述信息 +// CreateCoreHRPathway 创建通道, 可以定义通道的名称、编码和描述信息 // // 非必填字段, 不传时默认为空 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/create -func (r *CoreHRService) CreateCorehrPathway(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPathway != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPathway mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPathway(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRPathway(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPathway mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRPathway(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPathway", + API: "CreateCoreHRPathway", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPathwayResp) + resp := new(createCoreHRPathwayResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPathway mock CoreHRCreateCorehrPathway method -func (r *Mock) MockCoreHRCreateCorehrPathway(f func(ctx context.Context, request *CreateCorehrPathwayReq, options ...MethodOptionFunc) (*CreateCorehrPathwayResp, *Response, error)) { - r.mockCoreHRCreateCorehrPathway = f +// MockCoreHRCreateCoreHRPathway mock CoreHRCreateCoreHRPathway method +func (r *Mock) MockCoreHRCreateCoreHRPathway(f func(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error)) { + r.mockCoreHRCreateCoreHRPathway = f } -// UnMockCoreHRCreateCorehrPathway un-mock CoreHRCreateCorehrPathway method -func (r *Mock) UnMockCoreHRCreateCorehrPathway() { - r.mockCoreHRCreateCorehrPathway = nil +// UnMockCoreHRCreateCoreHRPathway un-mock CoreHRCreateCoreHRPathway method +func (r *Mock) UnMockCoreHRCreateCoreHRPathway() { + r.mockCoreHRCreateCoreHRPathway = nil } -// CreateCorehrPathwayReq ... -type CreateCorehrPathwayReq struct { +// CreateCoreHRPathwayReq ... +type CreateCoreHRPathwayReq struct { ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 Code *string `json:"code,omitempty"` // 编码示例值: "A01234" - Names []*CreateCorehrPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` - Descriptions []*CreateCorehrPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*CreateCoreHRPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*CreateCoreHRPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` } -// CreateCorehrPathwayReqDescription ... -type CreateCorehrPathwayReqDescription struct { +// CreateCoreHRPathwayReqDescription ... +type CreateCoreHRPathwayReqDescription struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容, 最长支持2000个字符示例值: "中文示例" } -// CreateCorehrPathwayReqName ... -type CreateCorehrPathwayReqName struct { +// CreateCoreHRPathwayReqName ... +type CreateCoreHRPathwayReqName struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // --文本内容, 最长支持255个字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" } -// CreateCorehrPathwayResp ... -type CreateCorehrPathwayResp struct { +// CreateCoreHRPathwayResp ... +type CreateCoreHRPathwayResp struct { PathwayID string `json:"pathway_id,omitempty"` // 通道ID } -// createCorehrPathwayResp ... -type createCorehrPathwayResp struct { +// createCoreHRPathwayResp ... +type createCoreHRPathwayResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPathwayResp `json:"data,omitempty"` + Data *CreateCoreHRPathwayResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pathway_delete.go b/api_corehr_pathway_delete.go index 7e5737da..fb804aaf 100644 --- a/api_corehr_pathway_delete.go +++ b/api_corehr_pathway_delete.go @@ -21,56 +21,56 @@ import ( "context" ) -// DeleteCorehrPathway 根据传入的通道 ID 删除一个相应的通道信息 +// DeleteCoreHRPathway 根据传入的通道 ID 删除一个相应的通道信息 // // 删除对象时请确认有无在职员工、待入职单据、职务、职级、序列等数据关联此对象, 如有会导致删除失败。 // 删除后无法恢复, 并且在系统中无法搜索到对应通道信息, 请谨慎操作。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/delete -func (r *CoreHRService) DeleteCorehrPathway(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrPathway != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrPathway mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrPathway(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRPathway(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRPathway mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRPathway(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrPathway", + API: "DeleteCoreHRPathway", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/:pathway_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrPathwayResp) + resp := new(deleteCoreHRPathwayResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrPathway mock CoreHRDeleteCorehrPathway method -func (r *Mock) MockCoreHRDeleteCorehrPathway(f func(ctx context.Context, request *DeleteCorehrPathwayReq, options ...MethodOptionFunc) (*DeleteCorehrPathwayResp, *Response, error)) { - r.mockCoreHRDeleteCorehrPathway = f +// MockCoreHRDeleteCoreHRPathway mock CoreHRDeleteCoreHRPathway method +func (r *Mock) MockCoreHRDeleteCoreHRPathway(f func(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error)) { + r.mockCoreHRDeleteCoreHRPathway = f } -// UnMockCoreHRDeleteCorehrPathway un-mock CoreHRDeleteCorehrPathway method -func (r *Mock) UnMockCoreHRDeleteCorehrPathway() { - r.mockCoreHRDeleteCorehrPathway = nil +// UnMockCoreHRDeleteCoreHRPathway un-mock CoreHRDeleteCoreHRPathway method +func (r *Mock) UnMockCoreHRDeleteCoreHRPathway() { + r.mockCoreHRDeleteCoreHRPathway = nil } -// DeleteCorehrPathwayReq ... -type DeleteCorehrPathwayReq struct { +// DeleteCoreHRPathwayReq ... +type DeleteCoreHRPathwayReq struct { PathwayID string `path:"pathway_id" json:"-"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914824" } -// DeleteCorehrPathwayResp ... -type DeleteCorehrPathwayResp struct { +// DeleteCoreHRPathwayResp ... +type DeleteCoreHRPathwayResp struct { } -// deleteCorehrPathwayResp ... -type deleteCorehrPathwayResp struct { +// deleteCoreHRPathwayResp ... +type deleteCoreHRPathwayResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrPathwayResp `json:"data,omitempty"` + Data *DeleteCoreHRPathwayResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pathway_update.go b/api_corehr_pathway_update.go index 667a63e5..b8abc432 100644 --- a/api_corehr_pathway_update.go +++ b/api_corehr_pathway_update.go @@ -21,71 +21,71 @@ import ( "context" ) -// UpdateCorehrPathway 更新通道, 可以根据通道的ID更新通道的名称、编码、描述信息 +// UpdateCoreHRPathway 更新通道, 可以根据通道的ID更新通道的名称、编码、描述信息 // // 非必填字段, 不传时即不做变更 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/patch -func (r *CoreHRService) UpdateCorehrPathway(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrPathway != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPathway mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrPathway(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRPathway(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRPathway != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPathway mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRPathway(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrPathway", + API: "UpdateCoreHRPathway", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pathways/:pathway_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrPathwayResp) + resp := new(updateCoreHRPathwayResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrPathway mock CoreHRUpdateCorehrPathway method -func (r *Mock) MockCoreHRUpdateCorehrPathway(f func(ctx context.Context, request *UpdateCorehrPathwayReq, options ...MethodOptionFunc) (*UpdateCorehrPathwayResp, *Response, error)) { - r.mockCoreHRUpdateCorehrPathway = f +// MockCoreHRUpdateCoreHRPathway mock CoreHRUpdateCoreHRPathway method +func (r *Mock) MockCoreHRUpdateCoreHRPathway(f func(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRPathway = f } -// UnMockCoreHRUpdateCorehrPathway un-mock CoreHRUpdateCorehrPathway method -func (r *Mock) UnMockCoreHRUpdateCorehrPathway() { - r.mockCoreHRUpdateCorehrPathway = nil +// UnMockCoreHRUpdateCoreHRPathway un-mock CoreHRUpdateCoreHRPathway method +func (r *Mock) UnMockCoreHRUpdateCoreHRPathway() { + r.mockCoreHRUpdateCoreHRPathway = nil } -// UpdateCorehrPathwayReq ... -type UpdateCorehrPathwayReq struct { +// UpdateCoreHRPathwayReq ... +type UpdateCoreHRPathwayReq struct { PathwayID string `path:"pathway_id" json:"-"` // 通道ID。ID获取方式- 调用[创建通道接口](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fcreate)后, 从响应结果的`pathway_id`获取。- 监听[通道创建事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/created), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道更新事件](/document-mod/index?fullPath=/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/events/updated), 当触发该事件后可从事件体内获取`pathway_id`- 监听[通道删除事件](/document-mod/index?fullPath=%2FuAjLw4CM%2FukTMukTMukTM%2Fcorehr-v2%2Fpathway%2Fevents%2Fdeleted), 当触发该事件后可从事件体内获取`pathway_id`示例值: "6862995757234914824" ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 Code *string `json:"code,omitempty"` // 编码示例值: "A01234" - Names []*UpdateCorehrPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` - Descriptions []*UpdateCorehrPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*UpdateCoreHRPathwayReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCoreHRPathwayReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` } -// UpdateCorehrPathwayReqDescription ... -type UpdateCorehrPathwayReqDescription struct { +// UpdateCoreHRPathwayReqDescription ... +type UpdateCoreHRPathwayReqDescription struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 文本内容, 最长支持2000个字符示例值: "中文示例" } -// UpdateCorehrPathwayReqName ... -type UpdateCorehrPathwayReqName struct { +// UpdateCoreHRPathwayReqName ... +type UpdateCoreHRPathwayReqName struct { Lang string `json:"lang,omitempty"` // 中文用zh-CN, 英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // --文本内容, 最长支持255个字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "中文示例" } -// UpdateCorehrPathwayResp ... -type UpdateCorehrPathwayResp struct { +// UpdateCoreHRPathwayResp ... +type UpdateCoreHRPathwayResp struct { } -// updateCorehrPathwayResp ... -type updateCorehrPathwayResp struct { +// updateCoreHRPathwayResp ... +type updateCoreHRPathwayResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrPathwayResp `json:"data,omitempty"` + Data *UpdateCoreHRPathwayResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_person_create.go b/api_corehr_person_create.go index 3dec6c1d..cba977b2 100644 --- a/api_corehr_person_create.go +++ b/api_corehr_person_create.go @@ -21,12 +21,12 @@ import ( "context" ) -// CreateCoreHRPerson 创建员工的个人信息, 包括姓名、个人电话、邮箱、联系地址、政治面貌、户口信息等 +// CreateCoreHRPerson 创建人员的个人信息。 // -// - 非必填字段, 不传时默认为空 +// 接口已升级, 推荐使用: [创建个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create) // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/create-2 +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/create +// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/create func (r *CoreHRService) CreateCoreHRPerson(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) { if r.cli.mock.mockCoreHRCreateCoreHRPerson != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPerson mock enable") @@ -37,7 +37,7 @@ func (r *CoreHRService) CreateCoreHRPerson(ctx context.Context, request *CreateC Scope: "CoreHR", API: "CreateCoreHRPerson", Method: "POST", - URL: r.cli.openBaseURL + "/open-apis/corehr/v2/persons", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -60,55 +60,36 @@ func (r *Mock) UnMockCoreHRCreateCoreHRPerson() { // CreateCoreHRPersonReq ... type CreateCoreHRPersonReq struct { - ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等的进行更新操作, 格式为标准的 UUIDV4。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作。示例值: "fe599b60-450f-46ff-b2ef-9f6675625b97" - NameList []*CreateCoreHRPersonReqName `json:"name_list,omitempty"` // 姓名列表, 当用于[【创建雇佣】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employment/create) 的离职重聘时, 该字段必填 字段权限要求: 读写法定姓名信息(corehr:person.legal_name:write) - Gender *CreateCoreHRPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "gender" 字段权限要求: 读写性别信息(corehr:person.gender:write) - DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期 字段权限要求: 读写生日信息(corehr:person.date_of_birth:write)示例值: "2020-01-01" - Race *CreateCoreHRPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "ethnicity_race" - MaritalStatus *CreateCoreHRPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "marital_status" 字段权限要求: 读写婚姻状况信息(corehr:person.marital_status:write) - PhoneList []*CreateCoreHRPersonReqPhone `json:"phone_list,omitempty"` // 电话列表 - AddressList []*CreateCoreHRPersonReqAddress `json:"address_list,omitempty"` // 地址列表 字段权限要求: 读取个人地址信息(corehr:person.address:write) - EmailList []*CreateCoreHRPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 字段权限要求: 读写个人邮箱信息(corehr:person.email:write) - WorkExperienceList []*CreateCoreHRPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表 字段权限要求: 读写工作履历信息(corehr:person.work_experience:write) - EducationList []*CreateCoreHRPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 字段权限要求: 读写教育经历信息(corehr:person.education:write) - BankAccountList []*CreateCoreHRPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账户 字段权限要求: 读写银行账号列表信息(corehr:person.bank_account:write) - NationalIDList []*CreateCoreHRPersonReqNationalID `json:"national_id_list,omitempty"` // 证件列表 字段权限要求: 读写证件信息(corehr:person.national_id:write) - DependentList []*CreateCoreHRPersonReqDependent `json:"dependent_list,omitempty"` // 家庭成员列表 字段权限要求: 读写家庭成员信息(corehr:person.dependent:write) - EmergencyContactList []*CreateCoreHRPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 字段权限要求: 读写紧急联系人信息(corehr:person.emergency_contact:write) - DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期 字段权限要求: 读写参加工作日期(corehr:person.date_entered_workforce:write)示例值: "2020-10-01" - ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID- 该字段已废弃示例值: "dfysuc8x76dsfsw" - PersonalProfile []*CreateCoreHRPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件 字段权限要求: 读写个人资料信息(corehr:person.personal_profile:write) - NativeRegion *string `json:"native_region,omitempty"` // 籍贯 ID, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/subdivision/get)接口查询 字段权限要求: 读写籍贯信息(corehr:person.native_region:write)示例值: "6863326262618752111" - HukouType *CreateCoreHRPersonReqHukouType `json:"hukou_type,omitempty"` // 户口类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_info_chn - custom_api_name: hukou_type 字段权限要求: 读写户口信息(corehr:person.hukou:write) - HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地 字段权限要求: 读写户口信息(corehr:person.hukou:write)示例值: "山东省平阴县" - PoliticalAffiliations []*CreateCoreHRPersonReqPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: person_info_chn - custom_api_name: political_affiliation - TalentID *string `json:"talent_id,omitempty"` // 人才ID, 可通过[【获取人才列表】](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)获取示例值: "6863326262618752123" - CustomFields []*CreateCoreHRPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) - BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区示例值: "中国" - IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true - DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "1110000" - IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true - MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "1110000" - IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true - ResidentTaxes []*CreateCoreHRPersonReqResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息示例值: 6863326262618752123 - FirstEntryTime *string `json:"first_entry_time,omitempty"` // 首次入境日期示例值: "2021-01-02" - LeaveTime *string `json:"leave_time,omitempty"` // 预计离境日期示例值: "2022-01-02" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*CreateCoreHRPersonReqName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCoreHRPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *CreateCoreHRPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCoreHRPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCoreHRPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCoreHRPersonReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCoreHRPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCoreHRPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCoreHRPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCoreHRPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCoreHRPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCoreHRPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCoreHRPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*CreateCoreHRPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*CreateCoreHRPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 } // CreateCoreHRPersonReqAddress ... type CreateCoreHRPersonReqAddress struct { - AddressID *string `json:"address_id,omitempty"` // 地址 ID, 首次创建可不填示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取示例值: "6863326815667095047" - AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" - AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" - AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" - AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" - AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" - AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" - AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" - AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" - AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" @@ -119,71 +100,68 @@ type CreateCoreHRPersonReqAddress struct { LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - AddressTypeList []*CreateCoreHRPersonReqAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type- 默认: home_address - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址, 默认 false示例值: true - IsPublic bool `json:"is_public,omitempty"` // 公开地址, 默认 true示例值: true - CustomFields []*CreateCoreHRPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// CreateCoreHRPersonReqAddressAddressType ... -type CreateCoreHRPersonReqAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "home_address" + CustomFields []*CreateCoreHRPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqAddressCustomField ... type CreateCoreHRPersonReqAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqBankAccount ... type CreateCoreHRPersonReqBankAccount struct { - BankName *string `json:"bank_name,omitempty"` // 银行名称- 如果有对应银行ID, 请使用 bank_id_v2示例值: "中国农业银行" + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" - BranchName *string `json:"branch_name,omitempty"` // 支行名称- 如果有对应支行 ID, 请使用 branch_id_v2示例值: "中国农业银行支行" - BankIDV2 *string `json:"bank_id_v2,omitempty"` // 银行 ID, 可通过[【查询银行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询获得示例值: "MDBH00000001" - BranchIDV2 *string `json:"branch_id_v2,omitempty"` // 支行 ID, 要求必须为填入银行的支行, 可通过[【查询支行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search)接口查询获得示例值: "MDBK00000017" - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "12" - BankAccountUsage []*CreateCoreHRPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_type - BankAccountType *CreateCoreHRPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_type - CurrencyID *string `json:"currency_id,omitempty"` // 货币 ID- 详细信息可通过[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得示例值: "12QueryCountryRegionSubdivisionDataReq" - CustomFields []*CreateCoreHRPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + Bank *CreateCoreHRPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*CreateCoreHRPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*CreateCoreHRPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCoreHRPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +} + +// CreateCoreHRPersonReqBankAccountBank ... +type CreateCoreHRPersonReqBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqBankAccountBankAccountType ... type CreateCoreHRPersonReqBankAccountBankAccountType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "checking" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqBankAccountBankAccountUsage ... type CreateCoreHRPersonReqBankAccountBankAccountUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "payment" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqBankAccountCustomField ... type CreateCoreHRPersonReqBankAccountCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqCustomField ... type CreateCoreHRPersonReqCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqDependent ... type CreateCoreHRPersonReqDependent struct { - Relationship *CreateCoreHRPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - Gender *CreateCoreHRPersonReqDependentGender `json:"gender,omitempty"` // 性别, 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "gender" + Name *CreateCoreHRPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCoreHRPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCoreHRPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" - NationalityIDV2 *string `json:"nationality_id_v2,omitempty"` // 国籍 ID, 可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口查询示例值: "6862995745046267401" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" NationalIDList []*CreateCoreHRPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *CreateCoreHRPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: spouses_working_status- object_api_name: dependent + SpousesWorkingStatus *CreateCoreHRPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false - CustomFields []*CreateCoreHRPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" Job *string `json:"job,omitempty"` // 岗位示例值: "保安" @@ -194,311 +172,377 @@ type CreateCoreHRPersonReqDependent struct { // CreateCoreHRPersonReqDependentAddress ... type CreateCoreHRPersonReqDependentAddress struct { - AddressID *string `json:"address_id,omitempty"` // 地址 ID, 在[【创建个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create)、[【更新个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch)时可获得示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取示例值: "6863326815667095047" - AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" - AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" - AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" - AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" - AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" - AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" - AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" - AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" - AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" - PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - CustomFields []*CreateCoreHRPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*CreateCoreHRPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG } // CreateCoreHRPersonReqDependentAddressCustomField ... type CreateCoreHRPersonReqDependentAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } // CreateCoreHRPersonReqDependentBirthCertificateOfChild ... type CreateCoreHRPersonReqDependentBirthCertificateOfChild struct { - ID *string `json:"id,omitempty"` // 上传文件ID, 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)获取示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } // CreateCoreHRPersonReqDependentCustomField ... type CreateCoreHRPersonReqDependentCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqDependentGender ... type CreateCoreHRPersonReqDependentGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "male" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqDependentName ... +type CreateCoreHRPersonReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCoreHRPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCoreHRPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCoreHRPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonReqDependentNameAdditionalNameType ... +type CreateCoreHRPersonReqDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqDependentNameCustomField ... +type CreateCoreHRPersonReqDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// CreateCoreHRPersonReqDependentNameNameType ... +type CreateCoreHRPersonReqDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqDependentNameSocial ... +type CreateCoreHRPersonReqDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqDependentNameTitle ... +type CreateCoreHRPersonReqDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqDependentNationalID ... type CreateCoreHRPersonReqDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)获得示例值: "6863330041896371725" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*CreateCoreHRPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqDependentNationalIDCustomField ... type CreateCoreHRPersonReqDependentNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqDependentPhone ... type CreateCoreHRPersonReqDependentPhone struct { - InternationalAreaCode *CreateCoreHRPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *CreateCoreHRPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCoreHRPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonReqDependentPhoneCustomField ... +type CreateCoreHRPersonReqDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqDependentPhoneInternationalAreaCode ... type CreateCoreHRPersonReqDependentPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqDependentRelationship ... type CreateCoreHRPersonReqDependentRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "parent" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqDependentSpousesWorkingStatus ... type CreateCoreHRPersonReqDependentSpousesWorkingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEducation ... type CreateCoreHRPersonReqEducation struct { - School []*CreateCoreHRPersonReqEducationSchool `json:"school,omitempty"` // 学校- 如果学校有对应枚举, 请使用 school_name 字段 - LevelOfEducation *CreateCoreHRPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + School []*CreateCoreHRPersonReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCoreHRPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" - FieldOfStudy []*CreateCoreHRPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业名称- 如果专业有对应枚举, 请使用 field_of_study_name 字段 - Degree *CreateCoreHRPersonReqEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *CreateCoreHRPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: school_name - object_api_name: education- 如果学校有对应枚举, 请使用该字段, 否则可使用 school 直接写入文本 - FieldOfStudyName *CreateCoreHRPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: field_of_study_name - object_api_name: education- 如果专业有对应枚举, 请使用该字段, 否则可使用 field_of_study 直接写入文本 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "1" + FieldOfStudy []*CreateCoreHRPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCoreHRPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" - CustomFields []*CreateCoreHRPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqEducationCustomField ... type CreateCoreHRPersonReqEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqEducationDegree ... type CreateCoreHRPersonReqEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "mba" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEducationFieldOfStudy ... type CreateCoreHRPersonReqEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonReqEducationFieldOfStudyName ... type CreateCoreHRPersonReqEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEducationLevelOfEducation ... type CreateCoreHRPersonReqEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phd" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEducationSchool ... type CreateCoreHRPersonReqEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonReqEducationSchoolName ... type CreateCoreHRPersonReqEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEmail ... type CreateCoreHRPersonReqEmail struct { - Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@example.feishu.cn" - IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 默认 true示例值: true - IsPublic *bool `json:"is_public,omitempty"` // 是否为公开邮箱, 默认 true示例值: true - EmailUsage *CreateCoreHRPersonReqEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: email - custom_api_name: email_usage- 请勿填写 work 枚举, 工作邮箱在雇佣信息中操作- 默认: emergency_contact + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*CreateCoreHRPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCoreHRPersonReqEmailEmailUsage ... -type CreateCoreHRPersonReqEmailEmailUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "emergency_contact" +// CreateCoreHRPersonReqEmailCustomField ... +type CreateCoreHRPersonReqEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqEmergencyContact ... type CreateCoreHRPersonReqEmergencyContact struct { - Name *CreateCoreHRPersonReqEmergencyContactName `json:"name,omitempty"` // 姓名- 该字段已废弃, 请使用 legal_name - Relationship *CreateCoreHRPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - PhoneIst []*CreateCoreHRPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 + Name *CreateCoreHRPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCoreHRPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCoreHRPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCoreHRPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" - CustomFields []*CreateCoreHRPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) } // CreateCoreHRPersonReqEmergencyContactCustomField ... type CreateCoreHRPersonReqEmergencyContactCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqEmergencyContactName ... type CreateCoreHRPersonReqEmergencyContactName struct { LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - NameType *CreateCoreHRPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *CreateCoreHRPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *CreateCoreHRPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接)示例值: "王大帅" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接)示例值: "王大帅" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *CreateCoreHRPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王大帅 + Social *CreateCoreHRPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *CreateCoreHRPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王 + Title *CreateCoreHRPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqEmergencyContactNameAdditionalNameType ... type CreateCoreHRPersonReqEmergencyContactNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqEmergencyContactNameCustomField ... +type CreateCoreHRPersonReqEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqEmergencyContactNameNameType ... type CreateCoreHRPersonReqEmergencyContactNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEmergencyContactNameSocial ... type CreateCoreHRPersonReqEmergencyContactNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEmergencyContactNameTitle ... type CreateCoreHRPersonReqEmergencyContactNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEmergencyContactPhoneIst ... type CreateCoreHRPersonReqEmergencyContactPhoneIst struct { - InternationalAreaCode *CreateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *CreateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCoreHRPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonReqEmergencyContactPhoneIstCustomField ... +type CreateCoreHRPersonReqEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode ... type CreateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqEmergencyContactRelationship ... type CreateCoreHRPersonReqEmergencyContactRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "parent" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqGender ... type CreateCoreHRPersonReqGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "male" -} - -// CreateCoreHRPersonReqHukouType ... -type CreateCoreHRPersonReqHukouType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "local_urban_residence" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqMaritalStatus ... type CreateCoreHRPersonReqMaritalStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqName ... type CreateCoreHRPersonReqName struct { LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - NameType *CreateCoreHRPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *CreateCoreHRPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *CreateCoreHRPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接)示例值: "王大帅" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接)示例值: "王大帅" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *CreateCoreHRPersonReqNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王大帅 + Social *CreateCoreHRPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *CreateCoreHRPersonReqNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王 + Title *CreateCoreHRPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqNameAdditionalNameType ... type CreateCoreHRPersonReqNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// CreateCoreHRPersonReqNameCustomField ... +type CreateCoreHRPersonReqNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqNameNameType ... type CreateCoreHRPersonReqNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqNameSocial ... type CreateCoreHRPersonReqNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqNameTitle ... type CreateCoreHRPersonReqNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqNationalID ... type CreateCoreHRPersonReqNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)获得示例值: "6863330041896371725" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*CreateCoreHRPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqNationalIDCustomField ... type CreateCoreHRPersonReqNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqPersonalProfile ... type CreateCoreHRPersonReqPersonalProfile struct { - PersonalProfileType *CreateCoreHRPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: profile_type - object_api_name: personal_profile- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用 + PersonalProfileType *CreateCoreHRPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 Files []*CreateCoreHRPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } @@ -509,47 +553,44 @@ type CreateCoreHRPersonReqPersonalProfileFile struct { // CreateCoreHRPersonReqPersonalProfilePersonalProfileType ... type CreateCoreHRPersonReqPersonalProfilePersonalProfileType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqPhone ... type CreateCoreHRPersonReqPhone struct { - InternationalAreaCode *CreateCoreHRPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *CreateCoreHRPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *CreateCoreHRPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCoreHRPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*CreateCoreHRPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCoreHRPersonReqPhoneInternationalAreaCode ... -type CreateCoreHRPersonReqPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" -} - -// CreateCoreHRPersonReqPoliticalAffiliation ... -type CreateCoreHRPersonReqPoliticalAffiliation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "communist_party_of_china" +// CreateCoreHRPersonReqPhoneCustomField ... +type CreateCoreHRPersonReqPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCoreHRPersonReqRace ... -type CreateCoreHRPersonReqRace struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" +// CreateCoreHRPersonReqPhoneDeviceType ... +type CreateCoreHRPersonReqPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCoreHRPersonReqResidentTaxe ... -type CreateCoreHRPersonReqResidentTaxe struct { - YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度示例值: "2023" - ResidentStatus *CreateCoreHRPersonReqResidentTaxeResidentStatus `json:"resident_status,omitempty"` // 居民身份, 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "resident_tax" - custom_api_name = "resident_status" - TaxCountryRegionID *string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询示例值: "中国" - CustomFields []*CreateCoreHRPersonReqResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) +// CreateCoreHRPersonReqPhoneInternationalAreaCode ... +type CreateCoreHRPersonReqPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCoreHRPersonReqResidentTaxeCustomField ... -type CreateCoreHRPersonReqResidentTaxeCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "Sandy" +// CreateCoreHRPersonReqPhonePhoneUsage ... +type CreateCoreHRPersonReqPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCoreHRPersonReqResidentTaxeResidentStatus ... -type CreateCoreHRPersonReqResidentTaxeResidentStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" +// CreateCoreHRPersonReqRace ... +type CreateCoreHRPersonReqRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // CreateCoreHRPersonReqWorkExperience ... @@ -560,109 +601,85 @@ type CreateCoreHRPersonReqWorkExperience struct { Description []*CreateCoreHRPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" - CustomFields []*CreateCoreHRPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonReqWorkExperienceCompanyOrganization ... type CreateCoreHRPersonReqWorkExperienceCompanyOrganization struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonReqWorkExperienceCustomField ... type CreateCoreHRPersonReqWorkExperienceCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // CreateCoreHRPersonReqWorkExperienceDepartment ... type CreateCoreHRPersonReqWorkExperienceDepartment struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonReqWorkExperienceDescription ... type CreateCoreHRPersonReqWorkExperienceDescription struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonReqWorkExperienceJob ... type CreateCoreHRPersonReqWorkExperienceJob struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // CreateCoreHRPersonResp ... type CreateCoreHRPersonResp struct { - Person *CreateCoreHRPersonRespPerson `json:"person,omitempty"` // 个人信息 + Person *CreateCoreHRPersonRespPerson `json:"person,omitempty"` // 创建成功返回Person信息 } // CreateCoreHRPersonRespPerson ... type CreateCoreHRPersonRespPerson struct { - PersonID string `json:"person_id,omitempty"` // 个人信息 ID, 可通过[【批量查询员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)获取详细信息 - PhoneNumber string `json:"phone_number,omitempty"` // 个人电话字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 - LegalName string `json:"legal_name,omitempty"` // 法定姓名字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 - PreferredName string `json:"preferred_name,omitempty"` // 常用名 - PreferredLocalFullName string `json:"preferred_local_full_name,omitempty"` // 常用本地全名 - PreferredEnglishFullName string `json:"preferred_english_full_name,omitempty"` // 常用英文全名 - NameList []*CreateCoreHRPersonRespPersonName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 - Gender *CreateCoreHRPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "gender"字段权限要求(满足任一): 获取性别信息读写性别信息 - DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期字段权限要求(满足任一): 获取生日信息读写生日信息 - Race *CreateCoreHRPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "ethnicity_race"字段权限要求: 获取民族/种族信息 - MaritalStatus *CreateCoreHRPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "marital_status" 字段权限要求: 读写婚姻状况信息(corehr:person.marital_status:write)字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 - PhoneList []*CreateCoreHRPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 - AddressList []*CreateCoreHRPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - EmailList []*CreateCoreHRPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 - WorkExperienceList []*CreateCoreHRPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 - EducationList []*CreateCoreHRPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - BankAccountList []*CreateCoreHRPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 - NationalIDList []*CreateCoreHRPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 - DependentList []*CreateCoreHRPersonRespPersonDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 - EmergencyContactList []*CreateCoreHRPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 - DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期字段权限要求(满足任一): 获取参加工作日期读写参加工作日期 - WorkingYears int64 `json:"working_years,omitempty"` // 工龄 - ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID- 该字段已废弃 - EmailAddress string `json:"email_address,omitempty"` // 邮箱地址字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 - Age int64 `json:"age,omitempty"` // 年龄字段权限要求(满足任一): 获取生日信息读写生日信息 - HighestLevelOfEducation *CreateCoreHRPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - HighestDegreeOfEducation *CreateCoreHRPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - PersonalProfile []*CreateCoreHRPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 - NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 详细信息可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口查询获得字段权限要求(满足任一): 获取籍贯信息读写籍贯信息 - HukouType *CreateCoreHRPersonRespPersonHukouType `json:"hukou_type,omitempty"` // 户口类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_info_chn - custom_api_name: hukou_type字段权限要求(满足任一): 获取户口信息读写户口信息 - HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地字段权限要求(满足任一): 获取户口信息读写户口信息 - TalentID string `json:"talent_id,omitempty"` // 人才 ID - CustomFields []*CreateCoreHRPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 - NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码字段权限要求(满足任一): 获取证件信息读写证件信息 - FamilyAddress string `json:"family_address,omitempty"` // 家庭地址字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - BornCountryRegion string `json:"born_country_region,omitempty"` // 出生国家/地区字段权限要求(满足任一): 获取出生国家/地区信息读写出生国家/地区信息 - IsDisabled bool `json:"is_disabled,omitempty"` // 是否残疾字段权限要求(满足任一): 获取残疾信息读写残疾信息 - DisableCardNumber string `json:"disable_card_number,omitempty"` // 残疾证号字段权限要求(满足任一): 获取残疾信息读写残疾信息 - IsMartyrFamily bool `json:"is_martyr_family,omitempty"` // 是否烈属字段权限要求(满足任一): 获取烈属信息读写烈属信息 - MartyrCardNumber string `json:"martyr_card_number,omitempty"` // 烈属证号字段权限要求(满足任一): 获取烈属信息读写烈属信息 - IsOldAlone bool `json:"is_old_alone,omitempty"` // 是否孤老字段权限要求(满足任一): 获取孤老信息读写孤老信息 - ResidentTaxes []*CreateCoreHRPersonRespPersonResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 - FirstEntryTime string `json:"first_entry_time,omitempty"` // 首次入境日期字段权限要求(满足任一): 获取出入境日期信息读写出入境日期信息 - LeaveTime string `json:"leave_time,omitempty"` // 预计离境日期字段权限要求(满足任一): 获取出入境日期信息读写出入境日期信息 - PassportNumber string `json:"passport_number,omitempty"` // 护照号码字段权限要求: 获取护照号码 + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*CreateCoreHRPersonRespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCoreHRPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *CreateCoreHRPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCoreHRPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCoreHRPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCoreHRPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCoreHRPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCoreHRPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCoreHRPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCoreHRPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCoreHRPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCoreHRPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCoreHRPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*CreateCoreHRPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *CreateCoreHRPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *CreateCoreHRPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*CreateCoreHRPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 } // CreateCoreHRPersonRespPersonAddress ... type CreateCoreHRPersonRespPersonAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - AddressID string `json:"address_id,omitempty"` // 地址 ID, 可用于[【更新个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch)联系地址更新 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)查询 - RegionID string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)查询 - AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 - AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 - AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 - AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 - AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 - AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 - AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 - AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 - AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -673,51 +690,33 @@ type CreateCoreHRPersonRespPersonAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*CreateCoreHRPersonRespPersonAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 - IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*CreateCoreHRPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// CreateCoreHRPersonRespPersonAddressAddressType ... -type CreateCoreHRPersonRespPersonAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonAddressAddressTypeDisplay ... -type CreateCoreHRPersonRespPersonAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + CustomFields []*CreateCoreHRPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonAddressCustomField ... type CreateCoreHRPersonRespPersonAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonAddressCustomFieldName ... -type CreateCoreHRPersonRespPersonAddressCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonBankAccount ... type CreateCoreHRPersonRespPersonBankAccount struct { - BankName string `json:"bank_name,omitempty"` // 银行名称 + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *CreateCoreHRPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) BranchName string `json:"branch_name,omitempty"` // 支行名称 - BankIDV2 string `json:"bank_id_v2,omitempty"` // 银行 ID, 详细信息可通过[【查询银行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询获得 - BranchIDV2 string `json:"branch_id_v2,omitempty"` // 支行 ID, 要求必须为填入银行的支行, 详细信息可通过[【查询支行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search)接口查询获得 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 - BankAccountUsage []*CreateCoreHRPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_usage - BankAccountType *CreateCoreHRPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_type - CurrencyID string `json:"currency_id,omitempty"` // 货币 ID, 详细信息可通过[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得 - CustomFields []*CreateCoreHRPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*CreateCoreHRPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCoreHRPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id +} + +// CreateCoreHRPersonRespPersonBankAccountBank ... +type CreateCoreHRPersonRespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 } // CreateCoreHRPersonRespPersonBankAccountBankAccountType ... @@ -728,8 +727,8 @@ type CreateCoreHRPersonRespPersonBankAccountBankAccountType struct { // CreateCoreHRPersonRespPersonBankAccountBankAccountTypeDisplay ... type CreateCoreHRPersonRespPersonBankAccountBankAccountTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonBankAccountBankAccountUsage ... @@ -740,50 +739,40 @@ type CreateCoreHRPersonRespPersonBankAccountBankAccountUsage struct { // CreateCoreHRPersonRespPersonBankAccountBankAccountUsageDisplay ... type CreateCoreHRPersonRespPersonBankAccountBankAccountUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCoreHRPersonRespPersonBankAccountCustomField ... -type CreateCoreHRPersonRespPersonBankAccountCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) +// CreateCoreHRPersonRespPersonBankAccountBankDisplay ... +type CreateCoreHRPersonRespPersonBankAccountBankDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCoreHRPersonRespPersonBankAccountCustomFieldName ... -type CreateCoreHRPersonRespPersonBankAccountCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 +// CreateCoreHRPersonRespPersonBankAccountCustomField ... +type CreateCoreHRPersonRespPersonBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonCustomField ... type CreateCoreHRPersonRespPersonCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonCustomFieldName ... -type CreateCoreHRPersonRespPersonCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonDependent ... type CreateCoreHRPersonRespPersonDependent struct { - Name *CreateCoreHRPersonRespPersonDependentName `json:"name,omitempty"` // 姓名 - Relationship *CreateCoreHRPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - Gender *CreateCoreHRPersonRespPersonDependentGender `json:"gender,omitempty"` // 性别, 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "person"- custom_api_name = "gender" + Name *CreateCoreHRPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCoreHRPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCoreHRPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 - NationalityIDV2 string `json:"nationality_id_v2,omitempty"` // 国籍 ID, 可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口查询 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 NationalIDList []*CreateCoreHRPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *CreateCoreHRPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: spouses_working_status- object_api_name: dependent + SpousesWorkingStatus *CreateCoreHRPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 - CustomFields []*CreateCoreHRPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 Employer string `json:"employer,omitempty"` // 工作单位 Job string `json:"job,omitempty"` // 岗位 @@ -796,78 +785,39 @@ type CreateCoreHRPersonRespPersonDependent struct { type CreateCoreHRPersonRespPersonDependentAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - AddressID string `json:"address_id,omitempty"` // 地址 ID, 在[【更新个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch)-家庭联系地址时使用 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - RegionID string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取 - AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 - AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 - AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 - AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 - AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 - AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 - AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 - AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 - AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*CreateCoreHRPersonRespPersonDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 - IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*CreateCoreHRPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// CreateCoreHRPersonRespPersonDependentAddressAddressType ... -type CreateCoreHRPersonRespPersonDependentAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay ... -type CreateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*CreateCoreHRPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) } // CreateCoreHRPersonRespPersonDependentAddressCustomField ... type CreateCoreHRPersonRespPersonDependentAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonDependentAddressCustomFieldName ... -type CreateCoreHRPersonRespPersonDependentAddressCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } // CreateCoreHRPersonRespPersonDependentBirthCertificateOfChild ... type CreateCoreHRPersonRespPersonDependentBirthCertificateOfChild struct { - ID string `json:"id,omitempty"` // 文件 ID, 可用于[【下载文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get) - Name string `json:"name,omitempty"` // 文件名 + ID string `json:"id,omitempty"` // 上传文件ID } // CreateCoreHRPersonRespPersonDependentCustomField ... type CreateCoreHRPersonRespPersonDependentCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonDependentCustomFieldName ... -type CreateCoreHRPersonRespPersonDependentCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonDependentGender ... @@ -878,35 +828,36 @@ type CreateCoreHRPersonRespPersonDependentGender struct { // CreateCoreHRPersonRespPersonDependentGenderDisplay ... type CreateCoreHRPersonRespPersonDependentGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentName ... type CreateCoreHRPersonRespPersonDependentName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - NameType *CreateCoreHRPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCoreHRPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *CreateCoreHRPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCoreHRPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *CreateCoreHRPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCoreHRPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *CreateCoreHRPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonDependentNameAdditionalNameType ... @@ -917,8 +868,14 @@ type CreateCoreHRPersonRespPersonDependentNameAdditionalNameType struct { // CreateCoreHRPersonRespPersonDependentNameAdditionalNameTypeDisplay ... type CreateCoreHRPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCoreHRPersonRespPersonDependentNameCustomField ... +type CreateCoreHRPersonRespPersonDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonDependentNameNameType ... @@ -929,8 +886,8 @@ type CreateCoreHRPersonRespPersonDependentNameNameType struct { // CreateCoreHRPersonRespPersonDependentNameNameTypeDisplay ... type CreateCoreHRPersonRespPersonDependentNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentNameSocial ... @@ -941,8 +898,8 @@ type CreateCoreHRPersonRespPersonDependentNameSocial struct { // CreateCoreHRPersonRespPersonDependentNameSocialDisplay ... type CreateCoreHRPersonRespPersonDependentNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentNameTitle ... @@ -953,56 +910,39 @@ type CreateCoreHRPersonRespPersonDependentNameTitle struct { // CreateCoreHRPersonRespPersonDependentNameTitleDisplay ... type CreateCoreHRPersonRespPersonDependentNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentNationalID ... type CreateCoreHRPersonRespPersonDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【查询单个国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/get)获取详细信息 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*CreateCoreHRPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonDependentNationalIDCustomField ... type CreateCoreHRPersonRespPersonDependentNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonDependentNationalIDCustomFieldName ... -type CreateCoreHRPersonRespPersonDependentNationalIDCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonDependentPhone ... type CreateCoreHRPersonRespPersonDependentPhone struct { - InternationalAreaCode *CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号 + InternationalAreaCode *CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *CreateCoreHRPersonRespPersonDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *CreateCoreHRPersonRespPersonDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 -} - -// CreateCoreHRPersonRespPersonDependentPhoneDeviceType ... -type CreateCoreHRPersonRespPersonDependentPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + CustomFields []*CreateCoreHRPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay ... -type CreateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// CreateCoreHRPersonRespPersonDependentPhoneCustomField ... +type CreateCoreHRPersonRespPersonDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode ... @@ -1013,20 +953,8 @@ type CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode struct { // CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... type CreateCoreHRPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonDependentPhonePhoneUsage ... -type CreateCoreHRPersonRespPersonDependentPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay ... -type CreateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentRelationship ... @@ -1037,8 +965,8 @@ type CreateCoreHRPersonRespPersonDependentRelationship struct { // CreateCoreHRPersonRespPersonDependentRelationshipDisplay ... type CreateCoreHRPersonRespPersonDependentRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonDependentSpousesWorkingStatus ... @@ -1049,37 +977,29 @@ type CreateCoreHRPersonRespPersonDependentSpousesWorkingStatus struct { // CreateCoreHRPersonRespPersonDependentSpousesWorkingStatusDisplay ... type CreateCoreHRPersonRespPersonDependentSpousesWorkingStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducation ... type CreateCoreHRPersonRespPersonEducation struct { School []*CreateCoreHRPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCoreHRPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + LevelOfEducation *CreateCoreHRPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*CreateCoreHRPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCoreHRPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *CreateCoreHRPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *CreateCoreHRPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + Degree *CreateCoreHRPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCoreHRPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonEducationCustomField ... type CreateCoreHRPersonRespPersonEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonEducationCustomFieldName ... -type CreateCoreHRPersonRespPersonEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonEducationDegree ... @@ -1090,14 +1010,14 @@ type CreateCoreHRPersonRespPersonEducationDegree struct { // CreateCoreHRPersonRespPersonEducationDegreeDisplay ... type CreateCoreHRPersonRespPersonEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducationFieldOfStudy ... type CreateCoreHRPersonRespPersonEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducationFieldOfStudyName ... @@ -1108,8 +1028,8 @@ type CreateCoreHRPersonRespPersonEducationFieldOfStudyName struct { // CreateCoreHRPersonRespPersonEducationFieldOfStudyNameDisplay ... type CreateCoreHRPersonRespPersonEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducationLevelOfEducation ... @@ -1120,14 +1040,14 @@ type CreateCoreHRPersonRespPersonEducationLevelOfEducation struct { // CreateCoreHRPersonRespPersonEducationLevelOfEducationDisplay ... type CreateCoreHRPersonRespPersonEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducationSchool ... type CreateCoreHRPersonRespPersonEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEducationSchoolName ... @@ -1138,79 +1058,63 @@ type CreateCoreHRPersonRespPersonEducationSchoolName struct { // CreateCoreHRPersonRespPersonEducationSchoolNameDisplay ... type CreateCoreHRPersonRespPersonEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEmail ... type CreateCoreHRPersonRespPersonEmail struct { - Email string `json:"email,omitempty"` // 邮箱地址 - IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱 - IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱 - EmailUsage *CreateCoreHRPersonRespPersonEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: email - custom_api_name: email_usage + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*CreateCoreHRPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCoreHRPersonRespPersonEmailEmailUsage ... -type CreateCoreHRPersonRespPersonEmailEmailUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmailEmailUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonEmailEmailUsageDisplay ... -type CreateCoreHRPersonRespPersonEmailEmailUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// CreateCoreHRPersonRespPersonEmailCustomField ... +type CreateCoreHRPersonRespPersonEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonEmergencyContact ... type CreateCoreHRPersonRespPersonEmergencyContact struct { - Name *CreateCoreHRPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 姓名 - Relationship *CreateCoreHRPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - PhoneIst []*CreateCoreHRPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 - PhoneList []*CreateCoreHRPersonRespPersonEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 + Name *CreateCoreHRPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCoreHRPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCoreHRPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCoreHRPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 LegalName string `json:"legal_name,omitempty"` // 法定姓名 - CustomFields []*CreateCoreHRPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) } // CreateCoreHRPersonRespPersonEmergencyContactCustomField ... type CreateCoreHRPersonRespPersonEmergencyContactCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonEmergencyContactCustomFieldName ... -type CreateCoreHRPersonRespPersonEmergencyContactCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonEmergencyContactName ... type CreateCoreHRPersonRespPersonEmergencyContactName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - NameType *CreateCoreHRPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCoreHRPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *CreateCoreHRPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCoreHRPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *CreateCoreHRPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType ... @@ -1221,8 +1125,14 @@ type CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType struct { // CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCoreHRPersonRespPersonEmergencyContactNameCustomField ... +type CreateCoreHRPersonRespPersonEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonEmergencyContactNameNameType ... @@ -1233,8 +1143,8 @@ type CreateCoreHRPersonRespPersonEmergencyContactNameNameType struct { // CreateCoreHRPersonRespPersonEmergencyContactNameNameTypeDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEmergencyContactNameSocial ... @@ -1245,8 +1155,8 @@ type CreateCoreHRPersonRespPersonEmergencyContactNameSocial struct { // CreateCoreHRPersonRespPersonEmergencyContactNameSocialDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEmergencyContactNameTitle ... @@ -1257,66 +1167,21 @@ type CreateCoreHRPersonRespPersonEmergencyContactNameTitle struct { // CreateCoreHRPersonRespPersonEmergencyContactNameTitleDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhone ... -type CreateCoreHRPersonRespPersonEmergencyContactPhone struct { - InternationalAreaCode *CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEmergencyContactPhoneIst ... type CreateCoreHRPersonRespPersonEmergencyContactPhoneIst struct { - InternationalAreaCode *CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + CustomFields []*CreateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// CreateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField ... +type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... @@ -1327,32 +1192,8 @@ type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode s // CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay ... -type CreateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage ... -type CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay ... -type CreateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonEmergencyContactRelationship ... @@ -1363,8 +1204,8 @@ type CreateCoreHRPersonRespPersonEmergencyContactRelationship struct { // CreateCoreHRPersonRespPersonEmergencyContactRelationshipDisplay ... type CreateCoreHRPersonRespPersonEmergencyContactRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonGender ... @@ -1375,37 +1216,29 @@ type CreateCoreHRPersonRespPersonGender struct { // CreateCoreHRPersonRespPersonGenderDisplay ... type CreateCoreHRPersonRespPersonGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducation ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducation struct { School []*CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + LevelOfEducation *CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + Degree *CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName ... -type CreateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegree ... @@ -1416,14 +1249,14 @@ type CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegree struct { // CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... @@ -1434,8 +1267,8 @@ type CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct // CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... @@ -1446,14 +1279,14 @@ type CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct // CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchool ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName ... @@ -1464,37 +1297,29 @@ type CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName struct { // CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... type CreateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducation ... type CreateCoreHRPersonRespPersonHighestLevelOfEducation struct { School []*CreateCoreHRPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + LevelOfEducation *CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCoreHRPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + Degree *CreateCoreHRPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomField ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName ... -type CreateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonHighestLevelOfEducationDegree ... @@ -1505,14 +1330,14 @@ type CreateCoreHRPersonRespPersonHighestLevelOfEducationDegree struct { // CreateCoreHRPersonRespPersonHighestLevelOfEducationDegreeDisplay ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... @@ -1523,8 +1348,8 @@ type CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct // CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation ... @@ -1535,14 +1360,14 @@ type CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation struct // CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationSchool ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName ... @@ -1553,20 +1378,8 @@ type CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName struct { // CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... type CreateCoreHRPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonHukouType ... -type CreateCoreHRPersonRespPersonHukouType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonHukouTypeDisplay ... -type CreateCoreHRPersonRespPersonHukouTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonMaritalStatus ... @@ -1577,35 +1390,34 @@ type CreateCoreHRPersonRespPersonMaritalStatus struct { // CreateCoreHRPersonRespPersonMaritalStatusDisplay ... type CreateCoreHRPersonRespPersonMaritalStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonName ... type CreateCoreHRPersonRespPersonName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详细信息 - NameType *CreateCoreHRPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCoreHRPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *CreateCoreHRPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCoreHRPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *CreateCoreHRPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCoreHRPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *CreateCoreHRPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonNameAdditionalNameType ... @@ -1616,8 +1428,14 @@ type CreateCoreHRPersonRespPersonNameAdditionalNameType struct { // CreateCoreHRPersonRespPersonNameAdditionalNameTypeDisplay ... type CreateCoreHRPersonRespPersonNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// CreateCoreHRPersonRespPersonNameCustomField ... +type CreateCoreHRPersonRespPersonNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonNameNameType ... @@ -1628,8 +1446,8 @@ type CreateCoreHRPersonRespPersonNameNameType struct { // CreateCoreHRPersonRespPersonNameNameTypeDisplay ... type CreateCoreHRPersonRespPersonNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonNameSocial ... @@ -1640,8 +1458,8 @@ type CreateCoreHRPersonRespPersonNameSocial struct { // CreateCoreHRPersonRespPersonNameSocialDisplay ... type CreateCoreHRPersonRespPersonNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonNameTitle ... @@ -1652,45 +1470,37 @@ type CreateCoreHRPersonRespPersonNameTitle struct { // CreateCoreHRPersonRespPersonNameTitleDisplay ... type CreateCoreHRPersonRespPersonNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonNationalID ... type CreateCoreHRPersonRespPersonNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【查询单个国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/get)获取详细信息 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*CreateCoreHRPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonNationalIDCustomField ... type CreateCoreHRPersonRespPersonNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonNationalIDCustomFieldName ... -type CreateCoreHRPersonRespPersonNationalIDCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonPersonalProfile ... type CreateCoreHRPersonRespPersonPersonalProfile struct { - PersonalProfileType *CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: profile_type - object_api_name: personal_profile- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用 + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 Files []*CreateCoreHRPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } // CreateCoreHRPersonRespPersonPersonalProfileFile ... type CreateCoreHRPersonRespPersonPersonalProfileFile struct { - ID string `json:"id,omitempty"` // 上传文件 ID, 可用于[【下载文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get) - Name string `json:"name,omitempty"` // 文件名 + ID string `json:"id,omitempty"` // 上传文件ID } // CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileType ... @@ -1701,19 +1511,26 @@ type CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileType struct { // CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... type CreateCoreHRPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonPhone ... type CreateCoreHRPersonRespPersonPhone struct { - InternationalAreaCode *CreateCoreHRPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "phone"- custom_api_name = "international_area_code" + InternationalAreaCode *CreateCoreHRPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *CreateCoreHRPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *CreateCoreHRPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 + DeviceType *CreateCoreHRPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCoreHRPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*CreateCoreHRPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonRespPersonPhoneCustomField ... +type CreateCoreHRPersonRespPersonPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonPhoneDeviceType ... @@ -1724,8 +1541,8 @@ type CreateCoreHRPersonRespPersonPhoneDeviceType struct { // CreateCoreHRPersonRespPersonPhoneDeviceTypeDisplay ... type CreateCoreHRPersonRespPersonPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonPhoneInternationalAreaCode ... @@ -1736,8 +1553,8 @@ type CreateCoreHRPersonRespPersonPhoneInternationalAreaCode struct { // CreateCoreHRPersonRespPersonPhoneInternationalAreaCodeDisplay ... type CreateCoreHRPersonRespPersonPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonPhonePhoneUsage ... @@ -1748,8 +1565,8 @@ type CreateCoreHRPersonRespPersonPhonePhoneUsage struct { // CreateCoreHRPersonRespPersonPhonePhoneUsageDisplay ... type CreateCoreHRPersonRespPersonPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonRace ... @@ -1760,34 +1577,8 @@ type CreateCoreHRPersonRespPersonRace struct { // CreateCoreHRPersonRespPersonRaceDisplay ... type CreateCoreHRPersonRespPersonRaceDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// CreateCoreHRPersonRespPersonResidentTaxe ... -type CreateCoreHRPersonRespPersonResidentTaxe struct { - YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度 - ResidentStatus *CreateCoreHRPersonRespPersonResidentTaxeResidentStatus `json:"resident_status,omitempty"` // 居民身份, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "resident_tax" - custom_api_name = "resident_status" - TaxCountryRegionID string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询 - CustomFields []*CreateCoreHRPersonRespPersonResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 -} - -// CreateCoreHRPersonRespPersonResidentTaxeCustomField ... -type CreateCoreHRPersonRespPersonResidentTaxeCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名 - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) -} - -// CreateCoreHRPersonRespPersonResidentTaxeResidentStatus ... -type CreateCoreHRPersonRespPersonResidentTaxeResidentStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay ... -type CreateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonWorkExperience ... @@ -1798,45 +1589,37 @@ type CreateCoreHRPersonRespPersonWorkExperience struct { Description []*CreateCoreHRPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 - CustomFields []*CreateCoreHRPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*CreateCoreHRPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // CreateCoreHRPersonRespPersonWorkExperienceCompanyOrganization ... type CreateCoreHRPersonRespPersonWorkExperienceCompanyOrganization struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonWorkExperienceCustomField ... type CreateCoreHRPersonRespPersonWorkExperienceCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCoreHRPersonRespPersonWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// CreateCoreHRPersonRespPersonWorkExperienceCustomFieldName ... -type CreateCoreHRPersonRespPersonWorkExperienceCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // CreateCoreHRPersonRespPersonWorkExperienceDepartment ... type CreateCoreHRPersonRespPersonWorkExperienceDepartment struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonWorkExperienceDescription ... type CreateCoreHRPersonRespPersonWorkExperienceDescription struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // CreateCoreHRPersonRespPersonWorkExperienceJob ... type CreateCoreHRPersonRespPersonWorkExperienceJob struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // createCoreHRPersonResp ... diff --git a/api_corehr_person_create_v1.go b/api_corehr_person_create_v1.go index 7e048512..99ffdc68 100644 --- a/api_corehr_person_create_v1.go +++ b/api_corehr_person_create_v1.go @@ -21,1611 +21,1611 @@ import ( "context" ) -// CreateCorehrPerson 创建人员的个人信息。 +// CreateCoreHRPersonV1 创建人员的个人信息。 // // 接口已升级, 推荐使用: [创建个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/create // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/create -func (r *CoreHRService) CreateCorehrPerson(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPerson != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPerson mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPerson(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRPersonV1(ctx context.Context, request *CreateCoreHRPersonV1Req, options ...MethodOptionFunc) (*CreateCoreHRPersonV1Resp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRPersonV1 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPersonV1 mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRPersonV1(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPerson", + API: "CreateCoreHRPersonV1", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPersonResp) + resp := new(createCoreHRPersonV1Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPerson mock CoreHRCreateCorehrPerson method -func (r *Mock) MockCoreHRCreateCorehrPerson(f func(ctx context.Context, request *CreateCorehrPersonReq, options ...MethodOptionFunc) (*CreateCorehrPersonResp, *Response, error)) { - r.mockCoreHRCreateCorehrPerson = f -} - -// UnMockCoreHRCreateCorehrPerson un-mock CoreHRCreateCorehrPerson method -func (r *Mock) UnMockCoreHRCreateCorehrPerson() { - r.mockCoreHRCreateCorehrPerson = nil -} - -// CreateCorehrPersonReq ... -type CreateCorehrPersonReq struct { - ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 - NameList []*CreateCorehrPersonReqName `json:"name_list,omitempty"` // 姓名 - Gender *CreateCorehrPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" - NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" - Race *CreateCorehrPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 - MaritalStatus *CreateCorehrPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 - PhoneList []*CreateCorehrPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" - AddressList []*CreateCorehrPersonReqAddress `json:"address_list,omitempty"` // 地址列表 - EmailList []*CreateCorehrPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 - WorkExperienceList []*CreateCorehrPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 - EducationList []*CreateCorehrPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 - BankAccountList []*CreateCorehrPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 - NationalIDList []*CreateCorehrPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 - DependentList []*CreateCorehrPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 - EmergencyContactList []*CreateCorehrPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 - DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" - ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" - CustomFields []*CreateCorehrPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 - ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] - Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 - PersonalProfile []*CreateCorehrPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 -} - -// CreateCorehrPersonReqAddress ... -type CreateCorehrPersonReqAddress struct { - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" - CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" - DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" - LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" - PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - CustomFields []*CreateCorehrPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonReqAddressCustomField ... -type CreateCorehrPersonReqAddressCustomField struct { +// MockCoreHRCreateCoreHRPersonV1 mock CoreHRCreateCoreHRPersonV1 method +func (r *Mock) MockCoreHRCreateCoreHRPersonV1(f func(ctx context.Context, request *CreateCoreHRPersonV1Req, options ...MethodOptionFunc) (*CreateCoreHRPersonV1Resp, *Response, error)) { + r.mockCoreHRCreateCoreHRPersonV1 = f +} + +// UnMockCoreHRCreateCoreHRPersonV1 un-mock CoreHRCreateCoreHRPersonV1 method +func (r *Mock) UnMockCoreHRCreateCoreHRPersonV1() { + r.mockCoreHRCreateCoreHRPersonV1 = nil +} + +// CreateCoreHRPersonV1Req ... +type CreateCoreHRPersonV1Req struct { + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*CreateCoreHRPersonV1ReqName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCoreHRPersonV1ReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *CreateCoreHRPersonV1ReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCoreHRPersonV1ReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCoreHRPersonV1ReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCoreHRPersonV1ReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCoreHRPersonV1ReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCoreHRPersonV1ReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCoreHRPersonV1ReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCoreHRPersonV1ReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCoreHRPersonV1ReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCoreHRPersonV1ReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCoreHRPersonV1ReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*CreateCoreHRPersonV1ReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*CreateCoreHRPersonV1ReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// CreateCoreHRPersonV1ReqAddress ... +type CreateCoreHRPersonV1ReqAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + CustomFields []*CreateCoreHRPersonV1ReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1ReqAddressCustomField ... +type CreateCoreHRPersonV1ReqAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqBankAccount ... -type CreateCorehrPersonReqBankAccount struct { - BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" - BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" - AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" - Bank *CreateCorehrPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) - BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" - CustomFields []*CreateCorehrPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" - BankAccountUsage []*CreateCorehrPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 - BankAccountType *CreateCorehrPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 - CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +// CreateCoreHRPersonV1ReqBankAccount ... +type CreateCoreHRPersonV1ReqBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + Bank *CreateCoreHRPersonV1ReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*CreateCoreHRPersonV1ReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*CreateCoreHRPersonV1ReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCoreHRPersonV1ReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" } -// CreateCorehrPersonReqBankAccountBank ... -type CreateCorehrPersonReqBankAccountBank struct { +// CreateCoreHRPersonV1ReqBankAccountBank ... +type CreateCoreHRPersonV1ReqBankAccountBank struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqBankAccountBankAccountType ... -type CreateCorehrPersonReqBankAccountBankAccountType struct { +// CreateCoreHRPersonV1ReqBankAccountBankAccountType ... +type CreateCoreHRPersonV1ReqBankAccountBankAccountType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqBankAccountBankAccountUsage ... -type CreateCorehrPersonReqBankAccountBankAccountUsage struct { +// CreateCoreHRPersonV1ReqBankAccountBankAccountUsage ... +type CreateCoreHRPersonV1ReqBankAccountBankAccountUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqBankAccountCustomField ... -type CreateCorehrPersonReqBankAccountCustomField struct { +// CreateCoreHRPersonV1ReqBankAccountCustomField ... +type CreateCoreHRPersonV1ReqBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqCustomField ... -type CreateCorehrPersonReqCustomField struct { +// CreateCoreHRPersonV1ReqCustomField ... +type CreateCoreHRPersonV1ReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqDependent ... -type CreateCorehrPersonReqDependent struct { - Name *CreateCorehrPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 - Relationship *CreateCorehrPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - Gender *CreateCorehrPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" - NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" - NationalIDList []*CreateCorehrPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *CreateCorehrPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) - IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true - IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false - CustomFields []*CreateCorehrPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 - DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" - Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" - Job *string `json:"job,omitempty"` // 岗位示例值: "保安" - Phone *CreateCorehrPersonReqDependentPhone `json:"phone,omitempty"` // 电话 - Address *CreateCorehrPersonReqDependentAddress `json:"address,omitempty"` // 联系地址 - BirthCertificateOfChild *CreateCorehrPersonReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 -} - -// CreateCorehrPersonReqDependentAddress ... -type CreateCorehrPersonReqDependentAddress struct { - ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" - CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" - DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" - LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - CustomFields []*CreateCorehrPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG -} - -// CreateCorehrPersonReqDependentAddressCustomField ... -type CreateCorehrPersonReqDependentAddressCustomField struct { +// CreateCoreHRPersonV1ReqDependent ... +type CreateCoreHRPersonV1ReqDependent struct { + Name *CreateCoreHRPersonV1ReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCoreHRPersonV1ReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCoreHRPersonV1ReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" + NationalIDList []*CreateCoreHRPersonV1ReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *CreateCoreHRPersonV1ReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + CustomFields []*CreateCoreHRPersonV1ReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位示例值: "保安" + Phone *CreateCoreHRPersonV1ReqDependentPhone `json:"phone,omitempty"` // 电话 + Address *CreateCoreHRPersonV1ReqDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *CreateCoreHRPersonV1ReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// CreateCoreHRPersonV1ReqDependentAddress ... +type CreateCoreHRPersonV1ReqDependentAddress struct { + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*CreateCoreHRPersonV1ReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG +} + +// CreateCoreHRPersonV1ReqDependentAddressCustomField ... +type CreateCoreHRPersonV1ReqDependentAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// CreateCorehrPersonReqDependentBirthCertificateOfChild ... -type CreateCorehrPersonReqDependentBirthCertificateOfChild struct { +// CreateCoreHRPersonV1ReqDependentBirthCertificateOfChild ... +type CreateCoreHRPersonV1ReqDependentBirthCertificateOfChild struct { ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } -// CreateCorehrPersonReqDependentCustomField ... -type CreateCorehrPersonReqDependentCustomField struct { +// CreateCoreHRPersonV1ReqDependentCustomField ... +type CreateCoreHRPersonV1ReqDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqDependentGender ... -type CreateCorehrPersonReqDependentGender struct { +// CreateCoreHRPersonV1ReqDependentGender ... +type CreateCoreHRPersonV1ReqDependentGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentName ... -type CreateCorehrPersonReqDependentName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *CreateCorehrPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *CreateCorehrPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *CreateCorehrPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *CreateCorehrPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*CreateCorehrPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonReqDependentNameAdditionalNameType ... -type CreateCorehrPersonReqDependentNameAdditionalNameType struct { +// CreateCoreHRPersonV1ReqDependentName ... +type CreateCoreHRPersonV1ReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonV1ReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCoreHRPersonV1ReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCoreHRPersonV1ReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCoreHRPersonV1ReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonV1ReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1ReqDependentNameAdditionalNameType ... +type CreateCoreHRPersonV1ReqDependentNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentNameCustomField ... -type CreateCorehrPersonReqDependentNameCustomField struct { +// CreateCoreHRPersonV1ReqDependentNameCustomField ... +type CreateCoreHRPersonV1ReqDependentNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqDependentNameNameType ... -type CreateCorehrPersonReqDependentNameNameType struct { +// CreateCoreHRPersonV1ReqDependentNameNameType ... +type CreateCoreHRPersonV1ReqDependentNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentNameSocial ... -type CreateCorehrPersonReqDependentNameSocial struct { +// CreateCoreHRPersonV1ReqDependentNameSocial ... +type CreateCoreHRPersonV1ReqDependentNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentNameTitle ... -type CreateCorehrPersonReqDependentNameTitle struct { +// CreateCoreHRPersonV1ReqDependentNameTitle ... +type CreateCoreHRPersonV1ReqDependentNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentNationalID ... -type CreateCorehrPersonReqDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*CreateCorehrPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqDependentNationalID ... +type CreateCoreHRPersonV1ReqDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*CreateCoreHRPersonV1ReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqDependentNationalIDCustomField ... -type CreateCorehrPersonReqDependentNationalIDCustomField struct { +// CreateCoreHRPersonV1ReqDependentNationalIDCustomField ... +type CreateCoreHRPersonV1ReqDependentNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqDependentPhone ... -type CreateCorehrPersonReqDependentPhone struct { - InternationalAreaCode *CreateCorehrPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - CustomFields []*CreateCorehrPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqDependentPhone ... +type CreateCoreHRPersonV1ReqDependentPhone struct { + InternationalAreaCode *CreateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCoreHRPersonV1ReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqDependentPhoneCustomField ... -type CreateCorehrPersonReqDependentPhoneCustomField struct { +// CreateCoreHRPersonV1ReqDependentPhoneCustomField ... +type CreateCoreHRPersonV1ReqDependentPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqDependentPhoneInternationalAreaCode ... -type CreateCorehrPersonReqDependentPhoneInternationalAreaCode struct { +// CreateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode ... +type CreateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentRelationship ... -type CreateCorehrPersonReqDependentRelationship struct { +// CreateCoreHRPersonV1ReqDependentRelationship ... +type CreateCoreHRPersonV1ReqDependentRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqDependentSpousesWorkingStatus ... -type CreateCorehrPersonReqDependentSpousesWorkingStatus struct { +// CreateCoreHRPersonV1ReqDependentSpousesWorkingStatus ... +type CreateCoreHRPersonV1ReqDependentSpousesWorkingStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEducation ... -type CreateCorehrPersonReqEducation struct { - School []*CreateCorehrPersonReqEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCorehrPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" - EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" - FieldOfStudy []*CreateCorehrPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCorehrPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *CreateCorehrPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *CreateCorehrPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" - ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" - CustomFields []*CreateCorehrPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqEducation ... +type CreateCoreHRPersonV1ReqEducation struct { + School []*CreateCoreHRPersonV1ReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCoreHRPersonV1ReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" + FieldOfStudy []*CreateCoreHRPersonV1ReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCoreHRPersonV1ReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonV1ReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonV1ReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" + ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" + CustomFields []*CreateCoreHRPersonV1ReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqEducationCustomField ... -type CreateCorehrPersonReqEducationCustomField struct { +// CreateCoreHRPersonV1ReqEducationCustomField ... +type CreateCoreHRPersonV1ReqEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqEducationDegree ... -type CreateCorehrPersonReqEducationDegree struct { +// CreateCoreHRPersonV1ReqEducationDegree ... +type CreateCoreHRPersonV1ReqEducationDegree struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEducationFieldOfStudy ... -type CreateCorehrPersonReqEducationFieldOfStudy struct { +// CreateCoreHRPersonV1ReqEducationFieldOfStudy ... +type CreateCoreHRPersonV1ReqEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonReqEducationFieldOfStudyName ... -type CreateCorehrPersonReqEducationFieldOfStudyName struct { +// CreateCoreHRPersonV1ReqEducationFieldOfStudyName ... +type CreateCoreHRPersonV1ReqEducationFieldOfStudyName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEducationLevelOfEducation ... -type CreateCorehrPersonReqEducationLevelOfEducation struct { +// CreateCoreHRPersonV1ReqEducationLevelOfEducation ... +type CreateCoreHRPersonV1ReqEducationLevelOfEducation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEducationSchool ... -type CreateCorehrPersonReqEducationSchool struct { +// CreateCoreHRPersonV1ReqEducationSchool ... +type CreateCoreHRPersonV1ReqEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonReqEducationSchoolName ... -type CreateCorehrPersonReqEducationSchoolName struct { +// CreateCoreHRPersonV1ReqEducationSchoolName ... +type CreateCoreHRPersonV1ReqEducationSchoolName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmail ... -type CreateCorehrPersonReqEmail struct { - Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" - CustomFields []*CreateCorehrPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqEmail ... +type CreateCoreHRPersonV1ReqEmail struct { + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*CreateCoreHRPersonV1ReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqEmailCustomField ... -type CreateCorehrPersonReqEmailCustomField struct { +// CreateCoreHRPersonV1ReqEmailCustomField ... +type CreateCoreHRPersonV1ReqEmailCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqEmergencyContact ... -type CreateCorehrPersonReqEmergencyContact struct { - Name *CreateCorehrPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 - Relationship *CreateCorehrPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - PhoneIst []*CreateCorehrPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 - CustomFields []*CreateCorehrPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 - LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" +// CreateCoreHRPersonV1ReqEmergencyContact ... +type CreateCoreHRPersonV1ReqEmergencyContact struct { + Name *CreateCoreHRPersonV1ReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCoreHRPersonV1ReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCoreHRPersonV1ReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCoreHRPersonV1ReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" } -// CreateCorehrPersonReqEmergencyContactCustomField ... -type CreateCorehrPersonReqEmergencyContactCustomField struct { +// CreateCoreHRPersonV1ReqEmergencyContactCustomField ... +type CreateCoreHRPersonV1ReqEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqEmergencyContactName ... -type CreateCorehrPersonReqEmergencyContactName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *CreateCorehrPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *CreateCorehrPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *CreateCorehrPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *CreateCorehrPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*CreateCorehrPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonReqEmergencyContactNameAdditionalNameType ... -type CreateCorehrPersonReqEmergencyContactNameAdditionalNameType struct { +// CreateCoreHRPersonV1ReqEmergencyContactName ... +type CreateCoreHRPersonV1ReqEmergencyContactName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonV1ReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCoreHRPersonV1ReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCoreHRPersonV1ReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonV1ReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType ... +type CreateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmergencyContactNameCustomField ... -type CreateCorehrPersonReqEmergencyContactNameCustomField struct { +// CreateCoreHRPersonV1ReqEmergencyContactNameCustomField ... +type CreateCoreHRPersonV1ReqEmergencyContactNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqEmergencyContactNameNameType ... -type CreateCorehrPersonReqEmergencyContactNameNameType struct { +// CreateCoreHRPersonV1ReqEmergencyContactNameNameType ... +type CreateCoreHRPersonV1ReqEmergencyContactNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmergencyContactNameSocial ... -type CreateCorehrPersonReqEmergencyContactNameSocial struct { +// CreateCoreHRPersonV1ReqEmergencyContactNameSocial ... +type CreateCoreHRPersonV1ReqEmergencyContactNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmergencyContactNameTitle ... -type CreateCorehrPersonReqEmergencyContactNameTitle struct { +// CreateCoreHRPersonV1ReqEmergencyContactNameTitle ... +type CreateCoreHRPersonV1ReqEmergencyContactNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmergencyContactPhoneIst ... -type CreateCorehrPersonReqEmergencyContactPhoneIst struct { - InternationalAreaCode *CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - CustomFields []*CreateCorehrPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqEmergencyContactPhoneIst ... +type CreateCoreHRPersonV1ReqEmergencyContactPhoneIst struct { + InternationalAreaCode *CreateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*CreateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqEmergencyContactPhoneIstCustomField ... -type CreateCorehrPersonReqEmergencyContactPhoneIstCustomField struct { +// CreateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField ... +type CreateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode ... -type CreateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { +// CreateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode ... +type CreateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqEmergencyContactRelationship ... -type CreateCorehrPersonReqEmergencyContactRelationship struct { +// CreateCoreHRPersonV1ReqEmergencyContactRelationship ... +type CreateCoreHRPersonV1ReqEmergencyContactRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqGender ... -type CreateCorehrPersonReqGender struct { +// CreateCoreHRPersonV1ReqGender ... +type CreateCoreHRPersonV1ReqGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqMaritalStatus ... -type CreateCorehrPersonReqMaritalStatus struct { +// CreateCoreHRPersonV1ReqMaritalStatus ... +type CreateCoreHRPersonV1ReqMaritalStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqName ... -type CreateCorehrPersonReqName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *CreateCorehrPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *CreateCorehrPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *CreateCorehrPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *CreateCorehrPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*CreateCorehrPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonReqNameAdditionalNameType ... -type CreateCorehrPersonReqNameAdditionalNameType struct { +// CreateCoreHRPersonV1ReqName ... +type CreateCoreHRPersonV1ReqName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *CreateCoreHRPersonV1ReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *CreateCoreHRPersonV1ReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *CreateCoreHRPersonV1ReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *CreateCoreHRPersonV1ReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*CreateCoreHRPersonV1ReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1ReqNameAdditionalNameType ... +type CreateCoreHRPersonV1ReqNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqNameCustomField ... -type CreateCorehrPersonReqNameCustomField struct { +// CreateCoreHRPersonV1ReqNameCustomField ... +type CreateCoreHRPersonV1ReqNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqNameNameType ... -type CreateCorehrPersonReqNameNameType struct { +// CreateCoreHRPersonV1ReqNameNameType ... +type CreateCoreHRPersonV1ReqNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqNameSocial ... -type CreateCorehrPersonReqNameSocial struct { +// CreateCoreHRPersonV1ReqNameSocial ... +type CreateCoreHRPersonV1ReqNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqNameTitle ... -type CreateCorehrPersonReqNameTitle struct { +// CreateCoreHRPersonV1ReqNameTitle ... +type CreateCoreHRPersonV1ReqNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqNationalID ... -type CreateCorehrPersonReqNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*CreateCorehrPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqNationalID ... +type CreateCoreHRPersonV1ReqNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*CreateCoreHRPersonV1ReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqNationalIDCustomField ... -type CreateCorehrPersonReqNationalIDCustomField struct { +// CreateCoreHRPersonV1ReqNationalIDCustomField ... +type CreateCoreHRPersonV1ReqNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqPersonalProfile ... -type CreateCorehrPersonReqPersonalProfile struct { - PersonalProfileType *CreateCorehrPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 - Files []*CreateCorehrPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +// CreateCoreHRPersonV1ReqPersonalProfile ... +type CreateCoreHRPersonV1ReqPersonalProfile struct { + PersonalProfileType *CreateCoreHRPersonV1ReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*CreateCoreHRPersonV1ReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } -// CreateCorehrPersonReqPersonalProfileFile ... -type CreateCorehrPersonReqPersonalProfileFile struct { +// CreateCoreHRPersonV1ReqPersonalProfileFile ... +type CreateCoreHRPersonV1ReqPersonalProfileFile struct { ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } -// CreateCorehrPersonReqPersonalProfilePersonalProfileType ... -type CreateCorehrPersonReqPersonalProfilePersonalProfileType struct { +// CreateCoreHRPersonV1ReqPersonalProfilePersonalProfileType ... +type CreateCoreHRPersonV1ReqPersonalProfilePersonalProfileType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqPhone ... -type CreateCorehrPersonReqPhone struct { - InternationalAreaCode *CreateCorehrPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - DeviceType *CreateCorehrPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 - PhoneUsage *CreateCorehrPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 - IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true - IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true - CustomFields []*CreateCorehrPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqPhone ... +type CreateCoreHRPersonV1ReqPhone struct { + InternationalAreaCode *CreateCoreHRPersonV1ReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *CreateCoreHRPersonV1ReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCoreHRPersonV1ReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*CreateCoreHRPersonV1ReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqPhoneCustomField ... -type CreateCorehrPersonReqPhoneCustomField struct { +// CreateCoreHRPersonV1ReqPhoneCustomField ... +type CreateCoreHRPersonV1ReqPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqPhoneDeviceType ... -type CreateCorehrPersonReqPhoneDeviceType struct { +// CreateCoreHRPersonV1ReqPhoneDeviceType ... +type CreateCoreHRPersonV1ReqPhoneDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqPhoneInternationalAreaCode ... -type CreateCorehrPersonReqPhoneInternationalAreaCode struct { +// CreateCoreHRPersonV1ReqPhoneInternationalAreaCode ... +type CreateCoreHRPersonV1ReqPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqPhonePhoneUsage ... -type CreateCorehrPersonReqPhonePhoneUsage struct { +// CreateCoreHRPersonV1ReqPhonePhoneUsage ... +type CreateCoreHRPersonV1ReqPhonePhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqRace ... -type CreateCorehrPersonReqRace struct { +// CreateCoreHRPersonV1ReqRace ... +type CreateCoreHRPersonV1ReqRace struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// CreateCorehrPersonReqWorkExperience ... -type CreateCorehrPersonReqWorkExperience struct { - CompanyOrganization []*CreateCorehrPersonReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department []*CreateCorehrPersonReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*CreateCorehrPersonReqWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description []*CreateCorehrPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" - EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" - CustomFields []*CreateCorehrPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1ReqWorkExperience ... +type CreateCoreHRPersonV1ReqWorkExperience struct { + CompanyOrganization []*CreateCoreHRPersonV1ReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*CreateCoreHRPersonV1ReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*CreateCoreHRPersonV1ReqWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*CreateCoreHRPersonV1ReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" + CustomFields []*CreateCoreHRPersonV1ReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonReqWorkExperienceCompanyOrganization ... -type CreateCorehrPersonReqWorkExperienceCompanyOrganization struct { +// CreateCoreHRPersonV1ReqWorkExperienceCompanyOrganization ... +type CreateCoreHRPersonV1ReqWorkExperienceCompanyOrganization struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonReqWorkExperienceCustomField ... -type CreateCorehrPersonReqWorkExperienceCustomField struct { +// CreateCoreHRPersonV1ReqWorkExperienceCustomField ... +type CreateCoreHRPersonV1ReqWorkExperienceCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// CreateCorehrPersonReqWorkExperienceDepartment ... -type CreateCorehrPersonReqWorkExperienceDepartment struct { +// CreateCoreHRPersonV1ReqWorkExperienceDepartment ... +type CreateCoreHRPersonV1ReqWorkExperienceDepartment struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonReqWorkExperienceDescription ... -type CreateCorehrPersonReqWorkExperienceDescription struct { +// CreateCoreHRPersonV1ReqWorkExperienceDescription ... +type CreateCoreHRPersonV1ReqWorkExperienceDescription struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonReqWorkExperienceJob ... -type CreateCorehrPersonReqWorkExperienceJob struct { +// CreateCoreHRPersonV1ReqWorkExperienceJob ... +type CreateCoreHRPersonV1ReqWorkExperienceJob struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// CreateCorehrPersonResp ... -type CreateCorehrPersonResp struct { - Person *CreateCorehrPersonRespPerson `json:"person,omitempty"` // 创建成功返回Person信息 -} - -// CreateCorehrPersonRespPerson ... -type CreateCorehrPersonRespPerson struct { - PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 - LegalName string `json:"legal_name,omitempty"` // 法定姓名 - PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) - ID string `json:"id,omitempty"` // Person ID - NameList []*CreateCorehrPersonRespPersonName `json:"name_list,omitempty"` // 姓名 - Gender *CreateCorehrPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 - NationalityID string `json:"nationality_id,omitempty"` // 国籍id - Race *CreateCorehrPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 - MaritalStatus *CreateCorehrPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 - PhoneList []*CreateCorehrPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" - AddressList []*CreateCorehrPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 - EmailList []*CreateCorehrPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 - WorkExperienceList []*CreateCorehrPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 - EducationList []*CreateCorehrPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 - BankAccountList []*CreateCorehrPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 - NationalIDList []*CreateCorehrPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 - DependentList []*CreateCorehrPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 - EmergencyContactList []*CreateCorehrPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 - DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 - ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID - CustomFields []*CreateCorehrPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 - EmailAddress string `json:"email_address,omitempty"` // 邮箱 - ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 - Age int64 `json:"age,omitempty"` // 年龄 - HighestLevelOfEducation *CreateCorehrPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 - HighestDegreeOfEducation *CreateCorehrPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 - PersonalProfile []*CreateCorehrPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 -} - -// CreateCorehrPersonRespPersonAddress ... -type CreateCorehrPersonRespPersonAddress struct { - FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) - FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - ID string `json:"id,omitempty"` // 地址ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityID string `json:"city_id,omitempty"` // 城市 - DistinctID string `json:"distinct_id,omitempty"` // 区/县 - LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - CustomFields []*CreateCorehrPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonRespPersonAddressCustomField ... -type CreateCorehrPersonRespPersonAddressCustomField struct { +// CreateCoreHRPersonV1Resp ... +type CreateCoreHRPersonV1Resp struct { + Person *CreateCoreHRPersonV1RespPerson `json:"person,omitempty"` // 创建成功返回Person信息 +} + +// CreateCoreHRPersonV1RespPerson ... +type CreateCoreHRPersonV1RespPerson struct { + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*CreateCoreHRPersonV1RespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *CreateCoreHRPersonV1RespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *CreateCoreHRPersonV1RespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *CreateCoreHRPersonV1RespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*CreateCoreHRPersonV1RespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*CreateCoreHRPersonV1RespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*CreateCoreHRPersonV1RespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*CreateCoreHRPersonV1RespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*CreateCoreHRPersonV1RespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*CreateCoreHRPersonV1RespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*CreateCoreHRPersonV1RespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*CreateCoreHRPersonV1RespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*CreateCoreHRPersonV1RespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*CreateCoreHRPersonV1RespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *CreateCoreHRPersonV1RespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *CreateCoreHRPersonV1RespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*CreateCoreHRPersonV1RespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// CreateCoreHRPersonV1RespPersonAddress ... +type CreateCoreHRPersonV1RespPersonAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + CustomFields []*CreateCoreHRPersonV1RespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1RespPersonAddressCustomField ... +type CreateCoreHRPersonV1RespPersonAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonBankAccount ... -type CreateCorehrPersonRespPersonBankAccount struct { - BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 - BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 - AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 - Bank *CreateCorehrPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) - BranchName string `json:"branch_name,omitempty"` // 支行名称 - CustomFields []*CreateCorehrPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 - BankAccountUsage []*CreateCorehrPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 - BankAccountType *CreateCorehrPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 - CurrencyID string `json:"currency_id,omitempty"` // 货币id +// CreateCoreHRPersonV1RespPersonBankAccount ... +type CreateCoreHRPersonV1RespPersonBankAccount struct { + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *CreateCoreHRPersonV1RespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName string `json:"branch_name,omitempty"` // 支行名称 + CustomFields []*CreateCoreHRPersonV1RespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *CreateCoreHRPersonV1RespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id } -// CreateCorehrPersonRespPersonBankAccountBank ... -type CreateCorehrPersonRespPersonBankAccountBank struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonBankAccountBank ... +type CreateCoreHRPersonV1RespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonBankAccountBankAccountType ... -type CreateCorehrPersonRespPersonBankAccountBankAccountType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonBankAccountBankAccountType ... +type CreateCoreHRPersonV1RespPersonBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay ... -type CreateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay ... +type CreateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonBankAccountBankAccountUsage ... -type CreateCorehrPersonRespPersonBankAccountBankAccountUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsage ... +type CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay ... -type CreateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay struct { +// CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay ... +type CreateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonBankAccountBankDisplay ... -type CreateCorehrPersonRespPersonBankAccountBankDisplay struct { +// CreateCoreHRPersonV1RespPersonBankAccountBankDisplay ... +type CreateCoreHRPersonV1RespPersonBankAccountBankDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonBankAccountCustomField ... -type CreateCorehrPersonRespPersonBankAccountCustomField struct { +// CreateCoreHRPersonV1RespPersonBankAccountCustomField ... +type CreateCoreHRPersonV1RespPersonBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonCustomField ... -type CreateCorehrPersonRespPersonCustomField struct { +// CreateCoreHRPersonV1RespPersonCustomField ... +type CreateCoreHRPersonV1RespPersonCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonDependent ... -type CreateCorehrPersonRespPersonDependent struct { - Name *CreateCorehrPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 - Relationship *CreateCorehrPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - Gender *CreateCorehrPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 - NationalityID string `json:"nationality_id,omitempty"` // 国籍 - NationalIDList []*CreateCorehrPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *CreateCorehrPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) - IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 - IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 - CustomFields []*CreateCorehrPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 - DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 - Employer string `json:"employer,omitempty"` // 工作单位 - Job string `json:"job,omitempty"` // 岗位 - Phone *CreateCorehrPersonRespPersonDependentPhone `json:"phone,omitempty"` // 电话 - Address *CreateCorehrPersonRespPersonDependentAddress `json:"address,omitempty"` // 联系地址 - BirthCertificateOfChild *CreateCorehrPersonRespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 -} - -// CreateCorehrPersonRespPersonDependentAddress ... -type CreateCorehrPersonRespPersonDependentAddress struct { - FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) - FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - ID string `json:"id,omitempty"` // 地址ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityID string `json:"city_id,omitempty"` // 城市 - DistinctID string `json:"distinct_id,omitempty"` // 区/县 - LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) - CustomFields []*CreateCorehrPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) -} - -// CreateCorehrPersonRespPersonDependentAddressCustomField ... -type CreateCorehrPersonRespPersonDependentAddressCustomField struct { +// CreateCoreHRPersonV1RespPersonDependent ... +type CreateCoreHRPersonV1RespPersonDependent struct { + Name *CreateCoreHRPersonV1RespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *CreateCoreHRPersonV1RespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *CreateCoreHRPersonV1RespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 + NationalIDList []*CreateCoreHRPersonV1RespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 + IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 + CustomFields []*CreateCoreHRPersonV1RespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 + Employer string `json:"employer,omitempty"` // 工作单位 + Job string `json:"job,omitempty"` // 岗位 + Phone *CreateCoreHRPersonV1RespPersonDependentPhone `json:"phone,omitempty"` // 电话 + Address *CreateCoreHRPersonV1RespPersonDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *CreateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// CreateCoreHRPersonV1RespPersonDependentAddress ... +type CreateCoreHRPersonV1RespPersonDependentAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*CreateCoreHRPersonV1RespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) +} + +// CreateCoreHRPersonV1RespPersonDependentAddressCustomField ... +type CreateCoreHRPersonV1RespPersonDependentAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// CreateCorehrPersonRespPersonDependentBirthCertificateOfChild ... -type CreateCorehrPersonRespPersonDependentBirthCertificateOfChild struct { +// CreateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild ... +type CreateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild struct { ID string `json:"id,omitempty"` // 上传文件ID } -// CreateCorehrPersonRespPersonDependentCustomField ... -type CreateCorehrPersonRespPersonDependentCustomField struct { +// CreateCoreHRPersonV1RespPersonDependentCustomField ... +type CreateCoreHRPersonV1RespPersonDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonDependentGender ... -type CreateCorehrPersonRespPersonDependentGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentGender ... +type CreateCoreHRPersonV1RespPersonDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentGenderDisplay ... -type CreateCorehrPersonRespPersonDependentGenderDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentGenderDisplay ... +type CreateCoreHRPersonV1RespPersonDependentGenderDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentName ... -type CreateCorehrPersonRespPersonDependentName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *CreateCorehrPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCorehrPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名 - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCorehrPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCorehrPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*CreateCorehrPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonRespPersonDependentNameAdditionalNameType ... -type CreateCorehrPersonRespPersonDependentNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentName ... +type CreateCoreHRPersonV1RespPersonDependentName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonV1RespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCoreHRPersonV1RespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCoreHRPersonV1RespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonV1RespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameType ... +type CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay ... -type CreateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentNameCustomField ... -type CreateCorehrPersonRespPersonDependentNameCustomField struct { +// CreateCoreHRPersonV1RespPersonDependentNameCustomField ... +type CreateCoreHRPersonV1RespPersonDependentNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonDependentNameNameType ... -type CreateCorehrPersonRespPersonDependentNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentNameNameType ... +type CreateCoreHRPersonV1RespPersonDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentNameNameTypeDisplay ... -type CreateCorehrPersonRespPersonDependentNameNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentNameSocial ... -type CreateCorehrPersonRespPersonDependentNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentNameSocial ... +type CreateCoreHRPersonV1RespPersonDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentNameSocialDisplay ... -type CreateCorehrPersonRespPersonDependentNameSocialDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentNameSocialDisplay ... +type CreateCoreHRPersonV1RespPersonDependentNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentNameTitle ... -type CreateCorehrPersonRespPersonDependentNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentNameTitle ... +type CreateCoreHRPersonV1RespPersonDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentNameTitleDisplay ... -type CreateCorehrPersonRespPersonDependentNameTitleDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentNameTitleDisplay ... +type CreateCoreHRPersonV1RespPersonDependentNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentNationalID ... -type CreateCorehrPersonRespPersonDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 - IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 - ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*CreateCorehrPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonDependentNationalID ... +type CreateCoreHRPersonV1RespPersonDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*CreateCoreHRPersonV1RespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonDependentNationalIDCustomField ... -type CreateCorehrPersonRespPersonDependentNationalIDCustomField struct { +// CreateCoreHRPersonV1RespPersonDependentNationalIDCustomField ... +type CreateCoreHRPersonV1RespPersonDependentNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonDependentPhone ... -type CreateCorehrPersonRespPersonDependentPhone struct { - InternationalAreaCode *CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - CustomFields []*CreateCorehrPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonDependentPhone ... +type CreateCoreHRPersonV1RespPersonDependentPhone struct { + InternationalAreaCode *CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*CreateCoreHRPersonV1RespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonDependentPhoneCustomField ... -type CreateCorehrPersonRespPersonDependentPhoneCustomField struct { +// CreateCoreHRPersonV1RespPersonDependentPhoneCustomField ... +type CreateCoreHRPersonV1RespPersonDependentPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode ... -type CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode ... +type CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... -type CreateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay ... +type CreateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentRelationship ... -type CreateCorehrPersonRespPersonDependentRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentRelationship ... +type CreateCoreHRPersonV1RespPersonDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentRelationshipDisplay ... -type CreateCorehrPersonRespPersonDependentRelationshipDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentRelationshipDisplay ... +type CreateCoreHRPersonV1RespPersonDependentRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonDependentSpousesWorkingStatus ... -type CreateCorehrPersonRespPersonDependentSpousesWorkingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus ... +type CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay ... -type CreateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay struct { +// CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay ... +type CreateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducation ... -type CreateCorehrPersonRespPersonEducation struct { - School []*CreateCorehrPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCorehrPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*CreateCorehrPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCorehrPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *CreateCorehrPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *CreateCorehrPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCorehrPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonEducation ... +type CreateCoreHRPersonV1RespPersonEducation struct { + School []*CreateCoreHRPersonV1RespPersonEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCoreHRPersonV1RespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCoreHRPersonV1RespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCoreHRPersonV1RespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonV1RespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonV1RespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCoreHRPersonV1RespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonEducationCustomField ... -type CreateCorehrPersonRespPersonEducationCustomField struct { +// CreateCoreHRPersonV1RespPersonEducationCustomField ... +type CreateCoreHRPersonV1RespPersonEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonEducationDegree ... -type CreateCorehrPersonRespPersonEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEducationDegree ... +type CreateCoreHRPersonV1RespPersonEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEducationDegreeDisplay ... -type CreateCorehrPersonRespPersonEducationDegreeDisplay struct { +// CreateCoreHRPersonV1RespPersonEducationDegreeDisplay ... +type CreateCoreHRPersonV1RespPersonEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducationFieldOfStudy ... -type CreateCorehrPersonRespPersonEducationFieldOfStudy struct { +// CreateCoreHRPersonV1RespPersonEducationFieldOfStudy ... +type CreateCoreHRPersonV1RespPersonEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducationFieldOfStudyName ... -type CreateCorehrPersonRespPersonEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEducationFieldOfStudyName ... +type CreateCoreHRPersonV1RespPersonEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay ... -type CreateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay struct { +// CreateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay ... +type CreateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducationLevelOfEducation ... -type CreateCorehrPersonRespPersonEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEducationLevelOfEducation ... +type CreateCoreHRPersonV1RespPersonEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay ... -type CreateCorehrPersonRespPersonEducationLevelOfEducationDisplay struct { +// CreateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay ... +type CreateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducationSchool ... -type CreateCorehrPersonRespPersonEducationSchool struct { +// CreateCoreHRPersonV1RespPersonEducationSchool ... +type CreateCoreHRPersonV1RespPersonEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEducationSchoolName ... -type CreateCorehrPersonRespPersonEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEducationSchoolName ... +type CreateCoreHRPersonV1RespPersonEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEducationSchoolNameDisplay ... -type CreateCorehrPersonRespPersonEducationSchoolNameDisplay struct { +// CreateCoreHRPersonV1RespPersonEducationSchoolNameDisplay ... +type CreateCoreHRPersonV1RespPersonEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmail ... -type CreateCorehrPersonRespPersonEmail struct { - Email string `json:"email,omitempty"` // 邮箱号 - CustomFields []*CreateCorehrPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonEmail ... +type CreateCoreHRPersonV1RespPersonEmail struct { + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*CreateCoreHRPersonV1RespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonEmailCustomField ... -type CreateCorehrPersonRespPersonEmailCustomField struct { +// CreateCoreHRPersonV1RespPersonEmailCustomField ... +type CreateCoreHRPersonV1RespPersonEmailCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonEmergencyContact ... -type CreateCorehrPersonRespPersonEmergencyContact struct { - Name *CreateCorehrPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 - Relationship *CreateCorehrPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - PhoneIst []*CreateCorehrPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 - CustomFields []*CreateCorehrPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 - LegalName string `json:"legal_name,omitempty"` // 法定姓名 +// CreateCoreHRPersonV1RespPersonEmergencyContact ... +type CreateCoreHRPersonV1RespPersonEmergencyContact struct { + Name *CreateCoreHRPersonV1RespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *CreateCoreHRPersonV1RespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*CreateCoreHRPersonV1RespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 } -// CreateCorehrPersonRespPersonEmergencyContactCustomField ... -type CreateCorehrPersonRespPersonEmergencyContactCustomField struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactCustomField ... +type CreateCoreHRPersonV1RespPersonEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonEmergencyContactName ... -type CreateCorehrPersonRespPersonEmergencyContactName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *CreateCorehrPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名 - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCorehrPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCorehrPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*CreateCorehrPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType ... -type CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactName ... +type CreateCoreHRPersonV1RespPersonEmergencyContactName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonV1RespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCoreHRPersonV1RespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCoreHRPersonV1RespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonV1RespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmergencyContactNameCustomField ... -type CreateCorehrPersonRespPersonEmergencyContactNameCustomField struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactNameCustomField ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonEmergencyContactNameNameType ... -type CreateCorehrPersonRespPersonEmergencyContactNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEmergencyContactNameNameType ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmergencyContactNameSocial ... -type CreateCorehrPersonRespPersonEmergencyContactNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEmergencyContactNameSocial ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactNameSocialDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmergencyContactNameTitle ... -type CreateCorehrPersonRespPersonEmergencyContactNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEmergencyContactNameTitle ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactNameTitleDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmergencyContactPhoneIst ... -type CreateCorehrPersonRespPersonEmergencyContactPhoneIst struct { - InternationalAreaCode *CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - CustomFields []*CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIst ... +type CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIst struct { + InternationalAreaCode *CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + CustomFields []*CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField ... -type CreateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField ... +type CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... -type CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode ... +type CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonEmergencyContactRelationship ... -type CreateCorehrPersonRespPersonEmergencyContactRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonEmergencyContactRelationship ... +type CreateCoreHRPersonV1RespPersonEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay ... -type CreateCorehrPersonRespPersonEmergencyContactRelationshipDisplay struct { +// CreateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay ... +type CreateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonGender ... -type CreateCorehrPersonRespPersonGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonGender ... +type CreateCoreHRPersonV1RespPersonGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonGenderDisplay ... -type CreateCorehrPersonRespPersonGenderDisplay struct { +// CreateCoreHRPersonV1RespPersonGenderDisplay ... +type CreateCoreHRPersonV1RespPersonGenderDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducation ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducation struct { - School []*CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducation ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducation struct { + School []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationCustomField struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchool struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... -type CreateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay ... +type CreateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducation ... -type CreateCorehrPersonRespPersonHighestLevelOfEducation struct { - School []*CreateCorehrPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *CreateCorehrPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducation ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducation struct { + School []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationCustomField struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonHighestLevelOfEducationDegree ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationSchool ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationSchool struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... -type CreateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { +// CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay ... +type CreateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonMaritalStatus ... -type CreateCorehrPersonRespPersonMaritalStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonMaritalStatus ... +type CreateCoreHRPersonV1RespPersonMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonMaritalStatusDisplay ... -type CreateCorehrPersonRespPersonMaritalStatusDisplay struct { +// CreateCoreHRPersonV1RespPersonMaritalStatusDisplay ... +type CreateCoreHRPersonV1RespPersonMaritalStatusDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonName ... -type CreateCorehrPersonRespPersonName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *CreateCorehrPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *CreateCorehrPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *CreateCorehrPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *CreateCorehrPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*CreateCorehrPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// CreateCorehrPersonRespPersonNameAdditionalNameType ... -type CreateCorehrPersonRespPersonNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay ... -type CreateCorehrPersonRespPersonNameAdditionalNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonName ... +type CreateCoreHRPersonV1RespPersonName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *CreateCoreHRPersonV1RespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *CreateCoreHRPersonV1RespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *CreateCoreHRPersonV1RespPersonNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *CreateCoreHRPersonV1RespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*CreateCoreHRPersonV1RespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// CreateCoreHRPersonV1RespPersonNameAdditionalNameType ... +type CreateCoreHRPersonV1RespPersonNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// CreateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonNameCustomField ... -type CreateCorehrPersonRespPersonNameCustomField struct { +// CreateCoreHRPersonV1RespPersonNameCustomField ... +type CreateCoreHRPersonV1RespPersonNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonNameNameType ... -type CreateCorehrPersonRespPersonNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonNameNameType ... +type CreateCoreHRPersonV1RespPersonNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonNameNameTypeDisplay ... -type CreateCorehrPersonRespPersonNameNameTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonNameNameTypeDisplay ... +type CreateCoreHRPersonV1RespPersonNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonNameSocial ... -type CreateCorehrPersonRespPersonNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonNameSocial ... +type CreateCoreHRPersonV1RespPersonNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonNameSocialDisplay ... -type CreateCorehrPersonRespPersonNameSocialDisplay struct { +// CreateCoreHRPersonV1RespPersonNameSocialDisplay ... +type CreateCoreHRPersonV1RespPersonNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonNameTitle ... -type CreateCorehrPersonRespPersonNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonNameTitle ... +type CreateCoreHRPersonV1RespPersonNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonNameTitleDisplay ... -type CreateCorehrPersonRespPersonNameTitleDisplay struct { +// CreateCoreHRPersonV1RespPersonNameTitleDisplay ... +type CreateCoreHRPersonV1RespPersonNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonNationalID ... -type CreateCorehrPersonRespPersonNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 - IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 - ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*CreateCorehrPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonNationalID ... +type CreateCoreHRPersonV1RespPersonNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*CreateCoreHRPersonV1RespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonNationalIDCustomField ... -type CreateCorehrPersonRespPersonNationalIDCustomField struct { +// CreateCoreHRPersonV1RespPersonNationalIDCustomField ... +type CreateCoreHRPersonV1RespPersonNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonPersonalProfile ... -type CreateCorehrPersonRespPersonPersonalProfile struct { - PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID - PersonalProfileType *CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 - Files []*CreateCorehrPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +// CreateCoreHRPersonV1RespPersonPersonalProfile ... +type CreateCoreHRPersonV1RespPersonPersonalProfile struct { + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*CreateCoreHRPersonV1RespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } -// CreateCorehrPersonRespPersonPersonalProfileFile ... -type CreateCorehrPersonRespPersonPersonalProfileFile struct { +// CreateCoreHRPersonV1RespPersonPersonalProfileFile ... +type CreateCoreHRPersonV1RespPersonPersonalProfileFile struct { ID string `json:"id,omitempty"` // 上传文件ID } -// CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType ... -type CreateCorehrPersonRespPersonPersonalProfilePersonalProfileType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType ... +type CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... -type CreateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay ... +type CreateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonPhone ... -type CreateCorehrPersonRespPersonPhone struct { - InternationalAreaCode *CreateCorehrPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *CreateCorehrPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 - PhoneUsage *CreateCorehrPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 - IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 - IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 - CustomFields []*CreateCorehrPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonPhone ... +type CreateCoreHRPersonV1RespPersonPhone struct { + InternationalAreaCode *CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *CreateCoreHRPersonV1RespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *CreateCoreHRPersonV1RespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*CreateCoreHRPersonV1RespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonPhoneCustomField ... -type CreateCorehrPersonRespPersonPhoneCustomField struct { +// CreateCoreHRPersonV1RespPersonPhoneCustomField ... +type CreateCoreHRPersonV1RespPersonPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonPhoneDeviceType ... -type CreateCorehrPersonRespPersonPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonPhoneDeviceType ... +type CreateCoreHRPersonV1RespPersonPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay ... -type CreateCorehrPersonRespPersonPhoneDeviceTypeDisplay struct { +// CreateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay ... +type CreateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonPhoneInternationalAreaCode ... -type CreateCorehrPersonRespPersonPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCode ... +type CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay ... -type CreateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay struct { +// CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay ... +type CreateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonPhonePhoneUsage ... -type CreateCorehrPersonRespPersonPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonPhonePhoneUsage ... +type CreateCoreHRPersonV1RespPersonPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonPhonePhoneUsageDisplay ... -type CreateCorehrPersonRespPersonPhonePhoneUsageDisplay struct { +// CreateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay ... +type CreateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonRace ... -type CreateCorehrPersonRespPersonRace struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrPersonRespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 +// CreateCoreHRPersonV1RespPersonRace ... +type CreateCoreHRPersonV1RespPersonRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*CreateCoreHRPersonV1RespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrPersonRespPersonRaceDisplay ... -type CreateCorehrPersonRespPersonRaceDisplay struct { +// CreateCoreHRPersonV1RespPersonRaceDisplay ... +type CreateCoreHRPersonV1RespPersonRaceDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonWorkExperience ... -type CreateCorehrPersonRespPersonWorkExperience struct { - CompanyOrganization []*CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department []*CreateCorehrPersonRespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*CreateCorehrPersonRespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description []*CreateCorehrPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - CustomFields []*CreateCorehrPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// CreateCoreHRPersonV1RespPersonWorkExperience ... +type CreateCoreHRPersonV1RespPersonWorkExperience struct { + CompanyOrganization []*CreateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*CreateCoreHRPersonV1RespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*CreateCoreHRPersonV1RespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*CreateCoreHRPersonV1RespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*CreateCoreHRPersonV1RespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization ... -type CreateCorehrPersonRespPersonWorkExperienceCompanyOrganization struct { +// CreateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization ... +type CreateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonWorkExperienceCustomField ... -type CreateCorehrPersonRespPersonWorkExperienceCustomField struct { +// CreateCoreHRPersonV1RespPersonWorkExperienceCustomField ... +type CreateCoreHRPersonV1RespPersonWorkExperienceCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// CreateCorehrPersonRespPersonWorkExperienceDepartment ... -type CreateCorehrPersonRespPersonWorkExperienceDepartment struct { +// CreateCoreHRPersonV1RespPersonWorkExperienceDepartment ... +type CreateCoreHRPersonV1RespPersonWorkExperienceDepartment struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonWorkExperienceDescription ... -type CreateCorehrPersonRespPersonWorkExperienceDescription struct { +// CreateCoreHRPersonV1RespPersonWorkExperienceDescription ... +type CreateCoreHRPersonV1RespPersonWorkExperienceDescription struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// CreateCorehrPersonRespPersonWorkExperienceJob ... -type CreateCorehrPersonRespPersonWorkExperienceJob struct { +// CreateCoreHRPersonV1RespPersonWorkExperienceJob ... +type CreateCoreHRPersonV1RespPersonWorkExperienceJob struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// createCorehrPersonResp ... -type createCorehrPersonResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPersonResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// createCoreHRPersonV1Resp ... +type createCoreHRPersonV1Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateCoreHRPersonV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_person_update.go b/api_corehr_person_update.go index 973bd193..65d38483 100644 --- a/api_corehr_person_update.go +++ b/api_corehr_person_update.go @@ -21,14 +21,12 @@ import ( "context" ) -// UpdateCoreHRPerson 更新员工的个人信息, 包括姓名、个人电话、邮箱、联系地址、政治面貌、户口信息等 +// UpdateCoreHRPerson 更新个人信息。 // -// - 一般情况下如无特殊说明, 对于非必填字段, 不传值表示不做变更。 -// - 一般情况下如无特殊说明, 对于多值分组字段, 均为覆盖式更新, 如更新 name_list 时, 系统会按照所传数据保存, 字段未传即为空值。 -// - 更新待入职的个人信息, 应使用[更新待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/patch) 接口。 +// 接口已升级, 推荐使用: [更新个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch) // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/patch-2 +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/patch +// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/patch func (r *CoreHRService) UpdateCoreHRPerson(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) { if r.cli.mock.mockCoreHRUpdateCoreHRPerson != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPerson mock enable") @@ -39,7 +37,7 @@ func (r *CoreHRService) UpdateCoreHRPerson(ctx context.Context, request *UpdateC Scope: "CoreHR", API: "UpdateCoreHRPerson", Method: "PATCH", - URL: r.cli.openBaseURL + "/open-apis/corehr/v2/persons/:person_id", + URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons/:person_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -62,57 +60,37 @@ func (r *Mock) UnMockCoreHRUpdateCoreHRPerson() { // UpdateCoreHRPersonReq ... type UpdateCoreHRPersonReq struct { - PersonID string `path:"person_id" json:"-"` // 个人信息 ID- 该 ID 在[【创建个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create)时可从响应体中获取(person_id)- 此外你也可以调用[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口, 获取指定员工的 person_id。示例值: "12454646" - ClientToken *string `query:"client_token" json:"-"` // 操作的唯一标识, 用于幂等的进行更新操作, 格式为标准的 UUIDV4。此值为空表示将发起一次新的请求, 此值非空表示幂等的进行更新操作。示例值: "fe599b60-450f-46ff-b2ef-9f6675625b97" - NoNeedQuery *bool `query:"no_need_query" json:"-"` // 根据no_need_query判断更新后是否返回更新后个人信息, 若填写为 “true”则 data 为空。示例值: false - NameList []*UpdateCoreHRPersonReqName `json:"name_list,omitempty"` // 姓名列表- 覆盖式更新 - Gender *UpdateCoreHRPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可查询[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: gender - object_api_name: person - DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" - Race *UpdateCoreHRPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: ethnicity_race - object_api_name: person - MaritalStatus *UpdateCoreHRPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: marital_status - object_api_name: person - PhoneList []*UpdateCoreHRPersonReqPhone `json:"phone_list,omitempty"` // 电话列表 - AddressList []*UpdateCoreHRPersonReqAddress `json:"address_list,omitempty"` // 地址列表- 覆盖式更新 - EmailList []*UpdateCoreHRPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 - WorkExperienceList []*UpdateCoreHRPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表- 覆盖式更新 - EducationList []*UpdateCoreHRPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表- 覆盖式更新 - BankAccountList []*UpdateCoreHRPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账户- 覆盖式更新 - NationalIDList []*UpdateCoreHRPersonReqNationalID `json:"national_id_list,omitempty"` // 证件- 覆盖式更新 - DependentList []*UpdateCoreHRPersonReqDependent `json:"dependent_list,omitempty"` // 家庭成员列表- 覆盖式更新 - EmergencyContactList []*UpdateCoreHRPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表- 覆盖式更新 - DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" - ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID- 该字段已废弃示例值: "dfysuc8x76dsfsw" - PersonalProfile []*UpdateCoreHRPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件, 该字段为全量覆盖式更新, 请谨慎操作 - NativeRegion *string `json:"native_region,omitempty"` // 籍贯 ID, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取示例值: "6863326262618752111" - HukouType *UpdateCoreHRPersonReqHukouType `json:"hukou_type,omitempty"` // 户口类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_info_chn - custom_api_name: hukou_type - HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "山东省平阴县" - PoliticalAffiliations []*UpdateCoreHRPersonReqPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: person_info_chn - custom_api_name: political_affiliation - TalentID *string `json:"talent_id,omitempty"` // 人才ID, 可通过[【获取人才列表】](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)获取示例值: "6863326262618752123" - CustomFields []*UpdateCoreHRPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) - BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家 / 地区 ID- 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取示例值: "中国" - IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true - DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "1110000" - IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true - MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "1110000" - IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true - ResidentTaxes []*UpdateCoreHRPersonReqResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息- 覆盖式更新示例值: 6863326262618752123 - FirstEntryTime *string `json:"first_entry_time,omitempty"` // 首次入境日期示例值: "2021-01-02" - LeaveTime *string `json:"leave_time,omitempty"` // 预计离境日期示例值: "2022-01-02" + PersonID string `path:"person_id" json:"-"` // person的ID示例值: "6969828847931885087" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*UpdateCoreHRPersonReqName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCoreHRPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *UpdateCoreHRPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCoreHRPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCoreHRPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCoreHRPersonReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCoreHRPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCoreHRPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCoreHRPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCoreHRPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCoreHRPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCoreHRPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*UpdateCoreHRPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*UpdateCoreHRPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 } // UpdateCoreHRPersonReqAddress ... type UpdateCoreHRPersonReqAddress struct { - AddressID *string `json:"address_id,omitempty"` // 地址 ID, 在[【创建个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create)时返回的的地址ID;不可与其他地址使用相同 ID;为空时会返回新的ID示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取示例值: "6863326815667095047" - AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" - AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" - AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" - AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" - AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" - AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" - AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" - AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" - AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" @@ -123,71 +101,68 @@ type UpdateCoreHRPersonReqAddress struct { LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - AddressTypeList []*UpdateCoreHRPersonReqAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type- 默认: home_address - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址默认: true示例值: true - IsPublic bool `json:"is_public,omitempty"` // 公开地址默认: false示例值: true - CustomFields []*UpdateCoreHRPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// UpdateCoreHRPersonReqAddressAddressType ... -type UpdateCoreHRPersonReqAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "home_address" + CustomFields []*UpdateCoreHRPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqAddressCustomField ... type UpdateCoreHRPersonReqAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqBankAccount ... type UpdateCoreHRPersonReqBankAccount struct { - BankName *string `json:"bank_name,omitempty"` // 银行名称- 如果有对应银行ID, 请使用 bank_id_v2 示例值: "中国农业银行" + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" - BranchName *string `json:"branch_name,omitempty"` // 支行名称- 如果有对应支行 ID, 请使用 branch_id_v2 示例值: "中国农业银行支行" - BankIDV2 *string `json:"bank_id_v2,omitempty"` // 银行 ID, 详细信息可通过[【查询银行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询获得示例值: "MDBH00000001" - BranchIDV2 *string `json:"branch_id_v2,omitempty"` // 支行 ID, 要求必须为填入银行的支行, 详细信息可通过[【查询支行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search)接口查询获得示例值: "MDBK00000017" - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得示例值: "12" - BankAccountUsage []*UpdateCoreHRPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_usage - BankAccountType *UpdateCoreHRPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_type - CurrencyID *string `json:"currency_id,omitempty"` // 货币 ID- 详细信息可通过[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得示例值: "12QueryCountryRegionSubdivisionDataReq" - CustomFields []*UpdateCoreHRPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + Bank *UpdateCoreHRPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*UpdateCoreHRPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*UpdateCoreHRPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCoreHRPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +} + +// UpdateCoreHRPersonReqBankAccountBank ... +type UpdateCoreHRPersonReqBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqBankAccountBankAccountType ... type UpdateCoreHRPersonReqBankAccountBankAccountType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "checking" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqBankAccountBankAccountUsage ... type UpdateCoreHRPersonReqBankAccountBankAccountUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "payment" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqBankAccountCustomField ... type UpdateCoreHRPersonReqBankAccountCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqCustomField ... type UpdateCoreHRPersonReqCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqDependent ... type UpdateCoreHRPersonReqDependent struct { - Relationship *UpdateCoreHRPersonReqDependentRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - Gender *UpdateCoreHRPersonReqDependentGender `json:"gender,omitempty"` // 性别, 枚举值可查询[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: gender - object_api_name: person + Name *UpdateCoreHRPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCoreHRPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCoreHRPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" - NationalityIDV2 *string `json:"nationality_id_v2,omitempty"` // 国籍 ID, 可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)获取示例值: "6862995745046267401" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" NationalIDList []*UpdateCoreHRPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *UpdateCoreHRPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: spouses_working_status- object_api_name: dependent + SpousesWorkingStatus *UpdateCoreHRPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false - CustomFields []*UpdateCoreHRPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" Job *string `json:"job,omitempty"` // 岗位示例值: "保安" @@ -198,362 +173,425 @@ type UpdateCoreHRPersonReqDependent struct { // UpdateCoreHRPersonReqDependentAddress ... type UpdateCoreHRPersonReqDependentAddress struct { - AddressID *string `json:"address_id,omitempty"` // 地址 ID, 在[【创建个人信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/create)时返回的的地址ID;不可与其他地址使用相同 ID;为空时返回新的ID示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取示例值: "6863326815667095047" - AddressLine1 *string `json:"address_line1,omitempty"` // 地址行 1示例值: "丹佛测试地址-纽埃时区" - AddressLine2 *string `json:"address_line2,omitempty"` // 地址行 2示例值: "PoewH" - AddressLine3 *string `json:"address_line3,omitempty"` // 地址行 3示例值: "PoewH" - AddressLine4 *string `json:"address_line4,omitempty"` // 地址行 4示例值: "jmwJc" - AddressLine5 *string `json:"address_line5,omitempty"` // 地址行 5示例值: "jmwJc" - AddressLine6 *string `json:"address_line6,omitempty"` // 地址行 6示例值: "jmwJc" - AddressLine7 *string `json:"address_line7,omitempty"` // 地址行 7示例值: "jmwJc" - AddressLine8 *string `json:"address_line8,omitempty"` // 地址行 8示例值: "rafSu" - AddressLine9 *string `json:"address_line9,omitempty"` // 地址行 9示例值: "McPRG" + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" - PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - CustomFields []*UpdateCoreHRPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*UpdateCoreHRPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG } // UpdateCoreHRPersonReqDependentAddressCustomField ... type UpdateCoreHRPersonReqDependentAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } // UpdateCoreHRPersonReqDependentBirthCertificateOfChild ... type UpdateCoreHRPersonReqDependentBirthCertificateOfChild struct { - ID *string `json:"id,omitempty"` // 文件ID, 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)获取示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } // UpdateCoreHRPersonReqDependentCustomField ... type UpdateCoreHRPersonReqDependentCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqDependentGender ... type UpdateCoreHRPersonReqDependentGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "male" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqDependentName ... +type UpdateCoreHRPersonReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCoreHRPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCoreHRPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCoreHRPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonReqDependentNameAdditionalNameType ... +type UpdateCoreHRPersonReqDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqDependentNameCustomField ... +type UpdateCoreHRPersonReqDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" +} + +// UpdateCoreHRPersonReqDependentNameNameType ... +type UpdateCoreHRPersonReqDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqDependentNameSocial ... +type UpdateCoreHRPersonReqDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqDependentNameTitle ... +type UpdateCoreHRPersonReqDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqDependentNationalID ... type UpdateCoreHRPersonReqDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)获得示例值: "6863330041896371725" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCoreHRPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqDependentNationalIDCustomField ... type UpdateCoreHRPersonReqDependentNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqDependentPhone ... type UpdateCoreHRPersonReqDependentPhone struct { - InternationalAreaCode *UpdateCoreHRPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCoreHRPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonReqDependentPhoneCustomField ... +type UpdateCoreHRPersonReqDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqDependentPhoneInternationalAreaCode ... type UpdateCoreHRPersonReqDependentPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqDependentRelationship ... type UpdateCoreHRPersonReqDependentRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "parent" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqDependentSpousesWorkingStatus ... type UpdateCoreHRPersonReqDependentSpousesWorkingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEducation ... type UpdateCoreHRPersonReqEducation struct { - School []*UpdateCoreHRPersonReqEducationSchool `json:"school,omitempty"` // 学校- 如果学校有对应枚举, 请使用 school_name 字段 - LevelOfEducation *UpdateCoreHRPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + School []*UpdateCoreHRPersonReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" - FieldOfStudy []*UpdateCoreHRPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业- 如果专业有对应枚举, 请使用 field_of_study_name 字段 - Degree *UpdateCoreHRPersonReqEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *UpdateCoreHRPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: school_name - object_api_name: education- 如果学校有对应枚举, 请使用该字段, 否则可使用 school 直接写入文本 - FieldOfStudyName *UpdateCoreHRPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education- 如果专业有对应枚举, 请使用该字段, 否则可使用 field_of_study 直接写入文本 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "1" + FieldOfStudy []*UpdateCoreHRPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCoreHRPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" - CustomFields []*UpdateCoreHRPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqEducationCustomField ... type UpdateCoreHRPersonReqEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqEducationDegree ... type UpdateCoreHRPersonReqEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "mba" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEducationFieldOfStudy ... type UpdateCoreHRPersonReqEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonReqEducationFieldOfStudyName ... type UpdateCoreHRPersonReqEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEducationLevelOfEducation ... type UpdateCoreHRPersonReqEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "phd" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEducationSchool ... type UpdateCoreHRPersonReqEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonReqEducationSchoolName ... type UpdateCoreHRPersonReqEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEmail ... type UpdateCoreHRPersonReqEmail struct { - Email string `json:"email,omitempty"` // 邮箱地址- 覆盖式更新示例值: "1234567@example.feishu.cn" - IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要邮箱默认: true示例值: true - IsPublic *bool `json:"is_public,omitempty"` // 是否为公开邮箱默认: true示例值: true - EmailUsage *UpdateCoreHRPersonReqEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: email - custom_api_name: email_usage- 请勿填写 work 枚举, 工作邮箱在雇佣信息中操作- 默认: emergency_contact + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*UpdateCoreHRPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPersonReqEmailEmailUsage ... -type UpdateCoreHRPersonReqEmailEmailUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "emergency_contact" +// UpdateCoreHRPersonReqEmailCustomField ... +type UpdateCoreHRPersonReqEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqEmergencyContact ... type UpdateCoreHRPersonReqEmergencyContact struct { - Name *UpdateCoreHRPersonReqEmergencyContactName `json:"name,omitempty"` // 姓名- 该字段已弃用, 请使用 legal_name - Relationship *UpdateCoreHRPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - PhoneIst []*UpdateCoreHRPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 + Name *UpdateCoreHRPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCoreHRPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCoreHRPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCoreHRPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" - CustomFields []*UpdateCoreHRPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) } // UpdateCoreHRPersonReqEmergencyContactCustomField ... type UpdateCoreHRPersonReqEmergencyContactCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqEmergencyContactName ... type UpdateCoreHRPersonReqEmergencyContactName struct { LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - NameType *UpdateCoreHRPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *UpdateCoreHRPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *UpdateCoreHRPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接)示例值: "王大帅" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接)示例值: "王大帅" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *UpdateCoreHRPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王大帅 + Social *UpdateCoreHRPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *UpdateCoreHRPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王 + Title *UpdateCoreHRPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqEmergencyContactNameAdditionalNameType ... type UpdateCoreHRPersonReqEmergencyContactNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqEmergencyContactNameCustomField ... +type UpdateCoreHRPersonReqEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqEmergencyContactNameNameType ... type UpdateCoreHRPersonReqEmergencyContactNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEmergencyContactNameSocial ... type UpdateCoreHRPersonReqEmergencyContactNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEmergencyContactNameTitle ... type UpdateCoreHRPersonReqEmergencyContactNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEmergencyContactPhoneIst ... type UpdateCoreHRPersonReqEmergencyContactPhoneIst struct { - InternationalAreaCode *UpdateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCoreHRPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonReqEmergencyContactPhoneIstCustomField ... +type UpdateCoreHRPersonReqEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode ... type UpdateCoreHRPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqEmergencyContactRelationship ... type UpdateCoreHRPersonReqEmergencyContactRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "parent" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqGender ... type UpdateCoreHRPersonReqGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "male" -} - -// UpdateCoreHRPersonReqHukouType ... -type UpdateCoreHRPersonReqHukouType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "local_urban_residence" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqMaritalStatus ... type UpdateCoreHRPersonReqMaritalStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqName ... type UpdateCoreHRPersonReqName struct { LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" - NameType *UpdateCoreHRPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *UpdateCoreHRPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *UpdateCoreHRPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "王大帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接)示例值: "王大帅" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接)示例值: "王大帅" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *UpdateCoreHRPersonReqNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王大帅 + Social *UpdateCoreHRPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *UpdateCoreHRPersonReqNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name示例值: 王 + Title *UpdateCoreHRPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqNameAdditionalNameType ... type UpdateCoreHRPersonReqNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +} + +// UpdateCoreHRPersonReqNameCustomField ... +type UpdateCoreHRPersonReqNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqNameNameType ... type UpdateCoreHRPersonReqNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "legal_name" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqNameSocial ... type UpdateCoreHRPersonReqNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqNameTitle ... type UpdateCoreHRPersonReqNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqNationalID ... type UpdateCoreHRPersonReqNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)获得示例值: "6863330041896371725" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "6862995757234914824" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCoreHRPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 具体支持的对象请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqNationalIDCustomField ... type UpdateCoreHRPersonReqNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqPersonalProfile ... type UpdateCoreHRPersonReqPersonalProfile struct { - PersonalProfileType *UpdateCoreHRPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: profile_type - object_api_name: personal_profile- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用 + PersonalProfileType *UpdateCoreHRPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 Files []*UpdateCoreHRPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } // UpdateCoreHRPersonReqPersonalProfileFile ... type UpdateCoreHRPersonReqPersonalProfileFile struct { - ID *string `json:"id,omitempty"` // 文件ID, 可通过[【上传文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)获取示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" + ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } // UpdateCoreHRPersonReqPersonalProfilePersonalProfileType ... type UpdateCoreHRPersonReqPersonalProfilePersonalProfileType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqPhone ... type UpdateCoreHRPersonReqPhone struct { - InternationalAreaCode *UpdateCoreHRPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *UpdateCoreHRPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCoreHRPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*UpdateCoreHRPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPersonReqPhoneInternationalAreaCode ... -type UpdateCoreHRPersonReqPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "86_china" +// UpdateCoreHRPersonReqPhoneCustomField ... +type UpdateCoreHRPersonReqPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCoreHRPersonReqPoliticalAffiliation ... -type UpdateCoreHRPersonReqPoliticalAffiliation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "communist_party_of_china" +// UpdateCoreHRPersonReqPhoneDeviceType ... +type UpdateCoreHRPersonReqPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCoreHRPersonReqRace ... -type UpdateCoreHRPersonReqRace struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" -} - -// UpdateCoreHRPersonReqResidentTaxe ... -type UpdateCoreHRPersonReqResidentTaxe struct { - YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度示例值: "2023" - ResidentStatus *UpdateCoreHRPersonReqResidentTaxeResidentStatus `json:"resident_status,omitempty"` // 居民身份, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: resident_tax- custom_api_name: resident_status - TaxCountryRegionID *string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取示例值: "中国" - CustomFields []*UpdateCoreHRPersonReqResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) +// UpdateCoreHRPersonReqPhoneInternationalAreaCode ... +type UpdateCoreHRPersonReqPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCoreHRPersonReqResidentTaxeCustomField ... -type UpdateCoreHRPersonReqResidentTaxeCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "Sandy" +// UpdateCoreHRPersonReqPhonePhoneUsage ... +type UpdateCoreHRPersonReqPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCoreHRPersonReqResidentTaxeResidentStatus ... -type UpdateCoreHRPersonReqResidentTaxeResidentStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "example" +// UpdateCoreHRPersonReqRace ... +type UpdateCoreHRPersonReqRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } // UpdateCoreHRPersonReqWorkExperience ... @@ -564,37 +602,37 @@ type UpdateCoreHRPersonReqWorkExperience struct { Description []*UpdateCoreHRPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" - CustomFields []*UpdateCoreHRPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonReqWorkExperienceCompanyOrganization ... type UpdateCoreHRPersonReqWorkExperienceCompanyOrganization struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonReqWorkExperienceCustomField ... type UpdateCoreHRPersonReqWorkExperienceCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7)示例值: "\"231\"" + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } // UpdateCoreHRPersonReqWorkExperienceDepartment ... type UpdateCoreHRPersonReqWorkExperienceDepartment struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonReqWorkExperienceDescription ... type UpdateCoreHRPersonReqWorkExperienceDescription struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonReqWorkExperienceJob ... type UpdateCoreHRPersonReqWorkExperienceJob struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47)示例值: "zh-CN" - Value string `json:"value,omitempty"` // 文本内容示例值: "中文示例" + Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" + Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } // UpdateCoreHRPersonResp ... @@ -604,68 +642,45 @@ type UpdateCoreHRPersonResp struct { // UpdateCoreHRPersonRespPerson ... type UpdateCoreHRPersonRespPerson struct { - PersonID string `json:"person_id,omitempty"` // 个人信息 ID - PhoneNumber string `json:"phone_number,omitempty"` // 个人电话字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 - LegalName string `json:"legal_name,omitempty"` // 法定姓名字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 - PreferredName string `json:"preferred_name,omitempty"` // 常用名 - PreferredLocalFullName string `json:"preferred_local_full_name,omitempty"` // 常用本地全名 - PreferredEnglishFullName string `json:"preferred_english_full_name,omitempty"` // 常用英文全名 - NameList []*UpdateCoreHRPersonRespPersonName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 - Gender *UpdateCoreHRPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可查询[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: gender - object_api_name: person字段权限要求(满足任一): 获取性别信息读写性别信息 - DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期字段权限要求(满足任一): 获取生日信息读写生日信息 - Race *UpdateCoreHRPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: ethnicity_race - object_api_name: person字段权限要求: 获取民族/种族信息 - MaritalStatus *UpdateCoreHRPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: marital_status - object_api_name: person字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 - PhoneList []*UpdateCoreHRPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 - AddressList []*UpdateCoreHRPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - EmailList []*UpdateCoreHRPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 - WorkExperienceList []*UpdateCoreHRPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 - EducationList []*UpdateCoreHRPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - BankAccountList []*UpdateCoreHRPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 - NationalIDList []*UpdateCoreHRPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 - DependentList []*UpdateCoreHRPersonRespPersonDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 - EmergencyContactList []*UpdateCoreHRPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 - DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期字段权限要求(满足任一): 获取参加工作日期读写参加工作日期 - WorkingYears int64 `json:"working_years,omitempty"` // 工龄 - ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID- 该字段已废弃 - EmailAddress string `json:"email_address,omitempty"` // 邮箱地址字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 - Age int64 `json:"age,omitempty"` // 年龄字段权限要求(满足任一): 获取生日信息读写生日信息 - HighestLevelOfEducation *UpdateCoreHRPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - HighestDegreeOfEducation *UpdateCoreHRPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - PersonalProfile []*UpdateCoreHRPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 - NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 详细信息可通过[【查询省份/行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口查询获得字段权限要求(满足任一): 获取籍贯信息读写籍贯信息 - HukouType *UpdateCoreHRPersonRespPersonHukouType `json:"hukou_type,omitempty"` // 户口类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_info_chn - custom_api_name: hukou_type字段权限要求(满足任一): 获取户口信息读写户口信息 - HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地字段权限要求(满足任一): 获取户口信息读写户口信息 - TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[【获取人才信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)查询详细信息 - CustomFields []*UpdateCoreHRPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 - NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码字段权限要求(满足任一): 获取证件信息读写证件信息 - FamilyAddress string `json:"family_address,omitempty"` // 家庭地址字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - BornCountryRegion string `json:"born_country_region,omitempty"` // 出生国家 / 地区 ID- 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获取字段权限要求(满足任一): 获取出生国家/地区信息读写出生国家/地区信息 - IsDisabled bool `json:"is_disabled,omitempty"` // 是否残疾字段权限要求(满足任一): 获取残疾信息读写残疾信息 - DisableCardNumber string `json:"disable_card_number,omitempty"` // 残疾证号字段权限要求(满足任一): 获取残疾信息读写残疾信息 - IsMartyrFamily bool `json:"is_martyr_family,omitempty"` // 是否烈属字段权限要求(满足任一): 获取烈属信息读写烈属信息 - MartyrCardNumber string `json:"martyr_card_number,omitempty"` // 烈属证号字段权限要求(满足任一): 获取烈属信息读写烈属信息 - IsOldAlone bool `json:"is_old_alone,omitempty"` // 是否孤老字段权限要求(满足任一): 获取孤老信息读写孤老信息 - ResidentTaxes []*UpdateCoreHRPersonRespPersonResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 - FirstEntryTime string `json:"first_entry_time,omitempty"` // 首次入境日期字段权限要求(满足任一): 获取出入境日期信息读写出入境日期信息 - LeaveTime string `json:"leave_time,omitempty"` // 预计离境日期字段权限要求(满足任一): 获取出入境日期信息读写出入境日期信息 + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*UpdateCoreHRPersonRespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCoreHRPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *UpdateCoreHRPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCoreHRPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCoreHRPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCoreHRPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCoreHRPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCoreHRPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCoreHRPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCoreHRPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCoreHRPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCoreHRPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*UpdateCoreHRPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *UpdateCoreHRPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *UpdateCoreHRPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*UpdateCoreHRPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 } // UpdateCoreHRPersonRespPersonAddress ... type UpdateCoreHRPersonRespPersonAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - AddressID string `json:"address_id,omitempty"` // 地址 ID, 在请求体值为空时生成新值, 请注意保存 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - RegionID string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取 - AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 - AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 - AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 - AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 - AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 - AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 - AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 - AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 - AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) @@ -676,51 +691,33 @@ type UpdateCoreHRPersonRespPersonAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*UpdateCoreHRPersonRespPersonAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 - IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*UpdateCoreHRPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// UpdateCoreHRPersonRespPersonAddressAddressType ... -type UpdateCoreHRPersonRespPersonAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonAddressAddressTypeDisplay ... -type UpdateCoreHRPersonRespPersonAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + CustomFields []*UpdateCoreHRPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonAddressCustomField ... type UpdateCoreHRPersonRespPersonAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonAddressCustomFieldName ... -type UpdateCoreHRPersonRespPersonAddressCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonBankAccount ... type UpdateCoreHRPersonRespPersonBankAccount struct { - BankName string `json:"bank_name,omitempty"` // 银行名称 + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *UpdateCoreHRPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) BranchName string `json:"branch_name,omitempty"` // 支行名称 - BankIDV2 string `json:"bank_id_v2,omitempty"` // 银行 ID, 详细信息可通过[【查询银行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank/search)接口查询获得 - BranchIDV2 string `json:"branch_id_v2,omitempty"` // 支行 ID, 要求必须为填入银行的支行, 详细信息可通过[【查询支行信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-bank_branch/search)接口查询获得 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区 ID, 详细信息可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 - BankAccountUsage []*UpdateCoreHRPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_usage - BankAccountType *UpdateCoreHRPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: bank_account - custom_api_name: bank_account_type - CurrencyID string `json:"currency_id,omitempty"` // 货币 ID, 可通过[【查询货币信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-currency/search)接口查询获得 - CustomFields []*UpdateCoreHRPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*UpdateCoreHRPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCoreHRPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id +} + +// UpdateCoreHRPersonRespPersonBankAccountBank ... +type UpdateCoreHRPersonRespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 } // UpdateCoreHRPersonRespPersonBankAccountBankAccountType ... @@ -731,8 +728,8 @@ type UpdateCoreHRPersonRespPersonBankAccountBankAccountType struct { // UpdateCoreHRPersonRespPersonBankAccountBankAccountTypeDisplay ... type UpdateCoreHRPersonRespPersonBankAccountBankAccountTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonBankAccountBankAccountUsage ... @@ -743,50 +740,40 @@ type UpdateCoreHRPersonRespPersonBankAccountBankAccountUsage struct { // UpdateCoreHRPersonRespPersonBankAccountBankAccountUsageDisplay ... type UpdateCoreHRPersonRespPersonBankAccountBankAccountUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCoreHRPersonRespPersonBankAccountCustomField ... -type UpdateCoreHRPersonRespPersonBankAccountCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) +// UpdateCoreHRPersonRespPersonBankAccountBankDisplay ... +type UpdateCoreHRPersonRespPersonBankAccountBankDisplay struct { + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCoreHRPersonRespPersonBankAccountCustomFieldName ... -type UpdateCoreHRPersonRespPersonBankAccountCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 +// UpdateCoreHRPersonRespPersonBankAccountCustomField ... +type UpdateCoreHRPersonRespPersonBankAccountCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonCustomField ... type UpdateCoreHRPersonRespPersonCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonCustomFieldName ... -type UpdateCoreHRPersonRespPersonCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonDependent ... type UpdateCoreHRPersonRespPersonDependent struct { - Name *UpdateCoreHRPersonRespPersonDependentName `json:"name,omitempty"` // 姓名 - Relationship *UpdateCoreHRPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 关系 - Gender *UpdateCoreHRPersonRespPersonDependentGender `json:"gender,omitempty"` // 性别, 枚举值可查询[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: gender - object_api_name: person + Name *UpdateCoreHRPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCoreHRPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCoreHRPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 - NationalityIDV2 string `json:"nationality_id_v2,omitempty"` // 国籍 ID, 可通过[【查询国籍信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口查询 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 NationalIDList []*UpdateCoreHRPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: spouses_working_status- object_api_name: dependent + SpousesWorkingStatus *UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 - CustomFields []*UpdateCoreHRPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 Employer string `json:"employer,omitempty"` // 工作单位 Job string `json:"job,omitempty"` // 岗位 @@ -799,78 +786,39 @@ type UpdateCoreHRPersonRespPersonDependent struct { type UpdateCoreHRPersonRespPersonDependentAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - AddressID string `json:"address_id,omitempty"` // 地址 ID, 在请求体值为空时生成新值, 请注意保存 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - RegionID string `json:"region_id,omitempty"` // 主要行政区, 可通过[【查询省份/主要行政区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获取 - AddressLine1 string `json:"address_line1,omitempty"` // 地址行 1 - AddressLine2 string `json:"address_line2,omitempty"` // 地址行 2 - AddressLine3 string `json:"address_line3,omitempty"` // 地址行 3 - AddressLine4 string `json:"address_line4,omitempty"` // 地址行 4 - AddressLine5 string `json:"address_line5,omitempty"` // 地址行 5 - AddressLine6 string `json:"address_line6,omitempty"` // 地址行 6 - AddressLine7 string `json:"address_line7,omitempty"` // 地址行 7 - AddressLine8 string `json:"address_line8,omitempty"` // 地址行 8 - AddressLine9 string `json:"address_line9,omitempty"` // 地址行 9 + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*UpdateCoreHRPersonRespPersonDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: address - custom_api_name: address_type - IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 - IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*UpdateCoreHRPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) -} - -// UpdateCoreHRPersonRespPersonDependentAddressAddressType ... -type UpdateCoreHRPersonRespPersonDependentAddressAddressType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay ... -type UpdateCoreHRPersonRespPersonDependentAddressAddressTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*UpdateCoreHRPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) } // UpdateCoreHRPersonRespPersonDependentAddressCustomField ... type UpdateCoreHRPersonRespPersonDependentAddressCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonDependentAddressCustomFieldName ... -type UpdateCoreHRPersonRespPersonDependentAddressCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } // UpdateCoreHRPersonRespPersonDependentBirthCertificateOfChild ... type UpdateCoreHRPersonRespPersonDependentBirthCertificateOfChild struct { - ID string `json:"id,omitempty"` // 文件 ID, 可用于[【下载文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get) - Name string `json:"name,omitempty"` // 文件名 + ID string `json:"id,omitempty"` // 上传文件ID } // UpdateCoreHRPersonRespPersonDependentCustomField ... type UpdateCoreHRPersonRespPersonDependentCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonDependentCustomFieldName ... -type UpdateCoreHRPersonRespPersonDependentCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonDependentGender ... @@ -881,35 +829,36 @@ type UpdateCoreHRPersonRespPersonDependentGender struct { // UpdateCoreHRPersonRespPersonDependentGenderDisplay ... type UpdateCoreHRPersonRespPersonDependentGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentName ... type UpdateCoreHRPersonRespPersonDependentName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - NameType *UpdateCoreHRPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCoreHRPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *UpdateCoreHRPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCoreHRPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *UpdateCoreHRPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCoreHRPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *UpdateCoreHRPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonDependentNameAdditionalNameType ... @@ -920,8 +869,14 @@ type UpdateCoreHRPersonRespPersonDependentNameAdditionalNameType struct { // UpdateCoreHRPersonRespPersonDependentNameAdditionalNameTypeDisplay ... type UpdateCoreHRPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCoreHRPersonRespPersonDependentNameCustomField ... +type UpdateCoreHRPersonRespPersonDependentNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonDependentNameNameType ... @@ -932,8 +887,8 @@ type UpdateCoreHRPersonRespPersonDependentNameNameType struct { // UpdateCoreHRPersonRespPersonDependentNameNameTypeDisplay ... type UpdateCoreHRPersonRespPersonDependentNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentNameSocial ... @@ -944,8 +899,8 @@ type UpdateCoreHRPersonRespPersonDependentNameSocial struct { // UpdateCoreHRPersonRespPersonDependentNameSocialDisplay ... type UpdateCoreHRPersonRespPersonDependentNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentNameTitle ... @@ -956,56 +911,39 @@ type UpdateCoreHRPersonRespPersonDependentNameTitle struct { // UpdateCoreHRPersonRespPersonDependentNameTitleDisplay ... type UpdateCoreHRPersonRespPersonDependentNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentNationalID ... type UpdateCoreHRPersonRespPersonDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)获得 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*UpdateCoreHRPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonDependentNationalIDCustomField ... type UpdateCoreHRPersonRespPersonDependentNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonDependentNationalIDCustomFieldName ... -type UpdateCoreHRPersonRespPersonDependentNationalIDCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonDependentPhone ... type UpdateCoreHRPersonRespPersonDependentPhone struct { - InternationalAreaCode *UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *UpdateCoreHRPersonRespPersonDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *UpdateCoreHRPersonRespPersonDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 + CustomFields []*UpdateCoreHRPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPersonRespPersonDependentPhoneDeviceType ... -type UpdateCoreHRPersonRespPersonDependentPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay ... -type UpdateCoreHRPersonRespPersonDependentPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// UpdateCoreHRPersonRespPersonDependentPhoneCustomField ... +type UpdateCoreHRPersonRespPersonDependentPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode ... @@ -1016,20 +954,8 @@ type UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCode struct { // UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... type UpdateCoreHRPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonDependentPhonePhoneUsage ... -type UpdateCoreHRPersonRespPersonDependentPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay ... -type UpdateCoreHRPersonRespPersonDependentPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentRelationship ... @@ -1040,8 +966,8 @@ type UpdateCoreHRPersonRespPersonDependentRelationship struct { // UpdateCoreHRPersonRespPersonDependentRelationshipDisplay ... type UpdateCoreHRPersonRespPersonDependentRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatus ... @@ -1052,37 +978,29 @@ type UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatus struct { // UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatusDisplay ... type UpdateCoreHRPersonRespPersonDependentSpousesWorkingStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducation ... type UpdateCoreHRPersonRespPersonEducation struct { - School []*UpdateCoreHRPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校- 如果学校有对应枚举, 请使用 school_name - LevelOfEducation *UpdateCoreHRPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + School []*UpdateCoreHRPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*UpdateCoreHRPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCoreHRPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *UpdateCoreHRPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称- 枚举值可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: school_name - object_api_name: education- 如果学校有对应枚举, 请使用该字段, 否则可使用 school 直接写入文本 - FieldOfStudyName *UpdateCoreHRPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获得 + Degree *UpdateCoreHRPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCoreHRPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonEducationCustomField ... type UpdateCoreHRPersonRespPersonEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonEducationCustomFieldName ... -type UpdateCoreHRPersonRespPersonEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonEducationDegree ... @@ -1093,14 +1011,14 @@ type UpdateCoreHRPersonRespPersonEducationDegree struct { // UpdateCoreHRPersonRespPersonEducationDegreeDisplay ... type UpdateCoreHRPersonRespPersonEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducationFieldOfStudy ... type UpdateCoreHRPersonRespPersonEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducationFieldOfStudyName ... @@ -1111,8 +1029,8 @@ type UpdateCoreHRPersonRespPersonEducationFieldOfStudyName struct { // UpdateCoreHRPersonRespPersonEducationFieldOfStudyNameDisplay ... type UpdateCoreHRPersonRespPersonEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducationLevelOfEducation ... @@ -1123,14 +1041,14 @@ type UpdateCoreHRPersonRespPersonEducationLevelOfEducation struct { // UpdateCoreHRPersonRespPersonEducationLevelOfEducationDisplay ... type UpdateCoreHRPersonRespPersonEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducationSchool ... type UpdateCoreHRPersonRespPersonEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEducationSchoolName ... @@ -1141,79 +1059,63 @@ type UpdateCoreHRPersonRespPersonEducationSchoolName struct { // UpdateCoreHRPersonRespPersonEducationSchoolNameDisplay ... type UpdateCoreHRPersonRespPersonEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEmail ... type UpdateCoreHRPersonRespPersonEmail struct { - Email string `json:"email,omitempty"` // 邮箱地址 - IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱 - IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱 - EmailUsage *UpdateCoreHRPersonRespPersonEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: email - custom_api_name: email_usage -} - -// UpdateCoreHRPersonRespPersonEmailEmailUsage ... -type UpdateCoreHRPersonRespPersonEmailEmailUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmailEmailUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*UpdateCoreHRPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPersonRespPersonEmailEmailUsageDisplay ... -type UpdateCoreHRPersonRespPersonEmailEmailUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// UpdateCoreHRPersonRespPersonEmailCustomField ... +type UpdateCoreHRPersonRespPersonEmailCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonEmergencyContact ... type UpdateCoreHRPersonRespPersonEmergencyContact struct { - Name *UpdateCoreHRPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 姓名 - Relationship *UpdateCoreHRPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 关系- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: dependent - custom_api_name: relationship_with_dependent - PhoneIst []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 - PhoneList []*UpdateCoreHRPersonRespPersonEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 + Name *UpdateCoreHRPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCoreHRPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCoreHRPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 LegalName string `json:"legal_name,omitempty"` // 法定姓名 - CustomFields []*UpdateCoreHRPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) } // UpdateCoreHRPersonRespPersonEmergencyContactCustomField ... type UpdateCoreHRPersonRespPersonEmergencyContactCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonEmergencyContactCustomFieldName ... -type UpdateCoreHRPersonRespPersonEmergencyContactCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonEmergencyContactName ... type UpdateCoreHRPersonRespPersonEmergencyContactName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - NameType *UpdateCoreHRPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCoreHRPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *UpdateCoreHRPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCoreHRPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *UpdateCoreHRPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType ... @@ -1224,8 +1126,14 @@ type UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameType struct { // UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCoreHRPersonRespPersonEmergencyContactNameCustomField ... +type UpdateCoreHRPersonRespPersonEmergencyContactNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonEmergencyContactNameNameType ... @@ -1236,8 +1144,8 @@ type UpdateCoreHRPersonRespPersonEmergencyContactNameNameType struct { // UpdateCoreHRPersonRespPersonEmergencyContactNameNameTypeDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEmergencyContactNameSocial ... @@ -1248,8 +1156,8 @@ type UpdateCoreHRPersonRespPersonEmergencyContactNameSocial struct { // UpdateCoreHRPersonRespPersonEmergencyContactNameSocialDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEmergencyContactNameTitle ... @@ -1260,66 +1168,22 @@ type UpdateCoreHRPersonRespPersonEmergencyContactNameTitle struct { // UpdateCoreHRPersonRespPersonEmergencyContactNameTitleDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhone ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhone struct { - InternationalAreaCode *UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEmergencyContactPhoneIst ... type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIst struct { - InternationalAreaCode *UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + CustomFields []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 +// UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField ... +type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... @@ -1330,32 +1194,8 @@ type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode s // UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhoneIstPhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay ... -type UpdateCoreHRPersonRespPersonEmergencyContactPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonEmergencyContactRelationship ... @@ -1366,8 +1206,8 @@ type UpdateCoreHRPersonRespPersonEmergencyContactRelationship struct { // UpdateCoreHRPersonRespPersonEmergencyContactRelationshipDisplay ... type UpdateCoreHRPersonRespPersonEmergencyContactRelationshipDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonGender ... @@ -1378,37 +1218,29 @@ type UpdateCoreHRPersonRespPersonGender struct { // UpdateCoreHRPersonRespPersonGenderDisplay ... type UpdateCoreHRPersonRespPersonGenderDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducation ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducation struct { School []*UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + LevelOfEducation *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + Degree *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName ... -type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegree ... @@ -1419,14 +1251,14 @@ type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegree struct { // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... @@ -1437,8 +1269,8 @@ type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... @@ -1449,14 +1281,14 @@ type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchool ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName ... @@ -1467,37 +1299,29 @@ type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolName struct { // UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... type UpdateCoreHRPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducation ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducation struct { School []*UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: level_of_education + LevelOfEducation *UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 FieldOfStudy []*UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: education - custom_api_name: degree - SchoolName *UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: school_name - object_api_name: education - FieldOfStudyName *UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: field_of_study_name- object_api_name: education - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区 ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口查询获得 + Degree *UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomField ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName ... -type UpdateCoreHRPersonRespPersonHighestLevelOfEducationCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegree ... @@ -1508,14 +1332,14 @@ type UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegree struct { // UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegreeDisplay ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... @@ -1526,8 +1350,8 @@ type UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct // UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation ... @@ -1538,14 +1362,14 @@ type UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducation struct // UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchool ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchool struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName ... @@ -1556,20 +1380,8 @@ type UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolName struct { // UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... type UpdateCoreHRPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonHukouType ... -type UpdateCoreHRPersonRespPersonHukouType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPersonRespPersonHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonHukouTypeDisplay ... -type UpdateCoreHRPersonRespPersonHukouTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonMaritalStatus ... @@ -1580,35 +1392,34 @@ type UpdateCoreHRPersonRespPersonMaritalStatus struct { // UpdateCoreHRPersonRespPersonMaritalStatusDisplay ... type UpdateCoreHRPersonRespPersonMaritalStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonName ... type UpdateCoreHRPersonRespPersonName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 - NameType *UpdateCoreHRPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: person_name - custom_api_name: name_type + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCoreHRPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *UpdateCoreHRPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名(未传入时, 姓名将默认根据所属国家 / 地区规则对相关姓、名字段拼接) - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名(未传入时, 本地文字的姓名将默认根据所属国家 / 地区规则对本地文字的相关姓、名字段拼接) MiddleName string `json:"middle_name,omitempty"` // 中间名 NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCoreHRPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Social *UpdateCoreHRPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCoreHRPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 可通过 [【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *UpdateCoreHRPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字) - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonNameAdditionalNameType ... @@ -1619,8 +1430,14 @@ type UpdateCoreHRPersonRespPersonNameAdditionalNameType struct { // UpdateCoreHRPersonRespPersonNameAdditionalNameTypeDisplay ... type UpdateCoreHRPersonRespPersonNameAdditionalNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 +} + +// UpdateCoreHRPersonRespPersonNameCustomField ... +type UpdateCoreHRPersonRespPersonNameCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonNameNameType ... @@ -1631,8 +1448,8 @@ type UpdateCoreHRPersonRespPersonNameNameType struct { // UpdateCoreHRPersonRespPersonNameNameTypeDisplay ... type UpdateCoreHRPersonRespPersonNameNameTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonNameSocial ... @@ -1643,8 +1460,8 @@ type UpdateCoreHRPersonRespPersonNameSocial struct { // UpdateCoreHRPersonRespPersonNameSocialDisplay ... type UpdateCoreHRPersonRespPersonNameSocialDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonNameTitle ... @@ -1655,45 +1472,37 @@ type UpdateCoreHRPersonRespPersonNameTitle struct { // UpdateCoreHRPersonRespPersonNameTitleDisplay ... type UpdateCoreHRPersonRespPersonNameTitleDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonNationalID ... type UpdateCoreHRPersonRespPersonNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可通过[【批量查询国家证件类型】](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获取 + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区ID, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*UpdateCoreHRPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonNationalIDCustomField ... type UpdateCoreHRPersonRespPersonNationalIDCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonNationalIDCustomFieldName ... -type UpdateCoreHRPersonRespPersonNationalIDCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonPersonalProfile ... type UpdateCoreHRPersonRespPersonPersonalProfile struct { - PersonalProfileType *UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 查询参数: - custom_api_name: profile_type - object_api_name: personal_profile- 仅 【飞书人事-档案配置-资料附件】存在的字段编码可用 + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 Files []*UpdateCoreHRPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } // UpdateCoreHRPersonRespPersonPersonalProfileFile ... type UpdateCoreHRPersonRespPersonPersonalProfileFile struct { - ID string `json:"id,omitempty"` // 上传文件 ID, 可用于[【下载文件】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get) - Name string `json:"name,omitempty"` // 文件名 + ID string `json:"id,omitempty"` // 上传文件ID } // UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileType ... @@ -1704,19 +1513,26 @@ type UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileType struct { // UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... type UpdateCoreHRPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonPhone ... type UpdateCoreHRPersonRespPersonPhone struct { - InternationalAreaCode *UpdateCoreHRPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)获取, 按如下参数查询即可: custom_api_name: international_area_code- object_api_name: phone + InternationalAreaCode *UpdateCoreHRPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *UpdateCoreHRPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: device_type - PhoneUsage *UpdateCoreHRPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name: phone - custom_api_name: phone_usage - IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 - IsPublic bool `json:"is_public,omitempty"` // 公开电话 + DeviceType *UpdateCoreHRPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCoreHRPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*UpdateCoreHRPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonRespPersonPhoneCustomField ... +type UpdateCoreHRPersonRespPersonPhoneCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonPhoneDeviceType ... @@ -1727,8 +1543,8 @@ type UpdateCoreHRPersonRespPersonPhoneDeviceType struct { // UpdateCoreHRPersonRespPersonPhoneDeviceTypeDisplay ... type UpdateCoreHRPersonRespPersonPhoneDeviceTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonPhoneInternationalAreaCode ... @@ -1739,8 +1555,8 @@ type UpdateCoreHRPersonRespPersonPhoneInternationalAreaCode struct { // UpdateCoreHRPersonRespPersonPhoneInternationalAreaCodeDisplay ... type UpdateCoreHRPersonRespPersonPhoneInternationalAreaCodeDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonPhonePhoneUsage ... @@ -1751,8 +1567,8 @@ type UpdateCoreHRPersonRespPersonPhonePhoneUsage struct { // UpdateCoreHRPersonRespPersonPhonePhoneUsageDisplay ... type UpdateCoreHRPersonRespPersonPhonePhoneUsageDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonRace ... @@ -1763,34 +1579,8 @@ type UpdateCoreHRPersonRespPersonRace struct { // UpdateCoreHRPersonRespPersonRaceDisplay ... type UpdateCoreHRPersonRespPersonRaceDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 -} - -// UpdateCoreHRPersonRespPersonResidentTaxe ... -type UpdateCoreHRPersonRespPersonResidentTaxe struct { - YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度 - ResidentStatus *UpdateCoreHRPersonRespPersonResidentTaxeResidentStatus `json:"resident_status,omitempty"` // 居民身份, 枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: object_api_name = "resident_tax" - custom_api_name = "resident_status" - TaxCountryRegionID string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可通过[【查询国家/地区信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search) 接口查询 - CustomFields []*UpdateCoreHRPersonRespPersonResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide)字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 -} - -// UpdateCoreHRPersonRespPersonResidentTaxeCustomField ... -type UpdateCoreHRPersonRespPersonResidentTaxeCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名 - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) -} - -// UpdateCoreHRPersonRespPersonResidentTaxeResidentStatus ... -type UpdateCoreHRPersonRespPersonResidentTaxeResidentStatus struct { - EnumName string `json:"enum_name,omitempty"` // example - Display []*UpdateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay ... -type UpdateCoreHRPersonRespPersonResidentTaxeResidentStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonWorkExperience ... @@ -1801,45 +1591,37 @@ type UpdateCoreHRPersonRespPersonWorkExperience struct { Description []*UpdateCoreHRPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 - CustomFields []*UpdateCoreHRPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段- 请参考[【自定义字段说明】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom-fields-guide) + CustomFields []*UpdateCoreHRPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } // UpdateCoreHRPersonRespPersonWorkExperienceCompanyOrganization ... type UpdateCoreHRPersonRespPersonWorkExperienceCompanyOrganization struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonWorkExperienceCustomField ... type UpdateCoreHRPersonRespPersonWorkExperienceCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *UpdateCoreHRPersonRespPersonWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同。使用方式可参考[【操作手册】如何通过 OpenAPI 维护自定义字段](https://feishu.feishu.cn/docx/QlUudBfCtosWMbxx3vxcOFDknn7) -} - -// UpdateCoreHRPersonRespPersonWorkExperienceCustomFieldName ... -type UpdateCoreHRPersonRespPersonWorkExperienceCustomFieldName struct { - ZhCn string `json:"zh_cn,omitempty"` // 中文 - EnUs string `json:"en_us,omitempty"` // 英文 + FieldName string `json:"field_name,omitempty"` // 字段名 + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } // UpdateCoreHRPersonRespPersonWorkExperienceDepartment ... type UpdateCoreHRPersonRespPersonWorkExperienceDepartment struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonWorkExperienceDescription ... type UpdateCoreHRPersonRespPersonWorkExperienceDescription struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // UpdateCoreHRPersonRespPersonWorkExperienceJob ... type UpdateCoreHRPersonRespPersonWorkExperienceJob struct { - Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) - Value string `json:"value,omitempty"` // 文本内容 + Lang string `json:"lang,omitempty"` // 名称信息的语言 + Value string `json:"value,omitempty"` // 名称信息的内容 } // updateCoreHRPersonResp ... diff --git a/api_corehr_person_update_v1.go b/api_corehr_person_update_v1.go index b1c31f20..a79a81a8 100644 --- a/api_corehr_person_update_v1.go +++ b/api_corehr_person_update_v1.go @@ -21,1613 +21,1613 @@ import ( "context" ) -// UpdateCorehrPerson 更新个人信息。 +// UpdateCoreHRPersonV1 更新个人信息。 // // 接口已升级, 推荐使用: [更新个人信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/person/patch) // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/patch // new doc: https://open.feishu.cn/document/server-docs/corehr-v1/employee/person/patch -func (r *CoreHRService) UpdateCorehrPerson(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrPerson != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPerson mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrPerson(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRPersonV1(ctx context.Context, request *UpdateCoreHRPersonV1Req, options ...MethodOptionFunc) (*UpdateCoreHRPersonV1Resp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRPersonV1 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPersonV1 mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRPersonV1(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrPerson", + API: "UpdateCoreHRPersonV1", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v1/persons/:person_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrPersonResp) + resp := new(updateCoreHRPersonV1Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrPerson mock CoreHRUpdateCorehrPerson method -func (r *Mock) MockCoreHRUpdateCorehrPerson(f func(ctx context.Context, request *UpdateCorehrPersonReq, options ...MethodOptionFunc) (*UpdateCorehrPersonResp, *Response, error)) { - r.mockCoreHRUpdateCorehrPerson = f -} - -// UnMockCoreHRUpdateCorehrPerson un-mock CoreHRUpdateCorehrPerson method -func (r *Mock) UnMockCoreHRUpdateCorehrPerson() { - r.mockCoreHRUpdateCorehrPerson = nil -} - -// UpdateCorehrPersonReq ... -type UpdateCorehrPersonReq struct { - PersonID string `path:"person_id" json:"-"` // person的ID示例值: "6969828847931885087" - ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 - NameList []*UpdateCorehrPersonReqName `json:"name_list,omitempty"` // 姓名 - Gender *UpdateCorehrPersonReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" - NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" - Race *UpdateCorehrPersonReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 - MaritalStatus *UpdateCorehrPersonReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 - PhoneList []*UpdateCorehrPersonReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" - AddressList []*UpdateCorehrPersonReqAddress `json:"address_list,omitempty"` // 地址列表 - EmailList []*UpdateCorehrPersonReqEmail `json:"email_list,omitempty"` // 邮箱列表 - WorkExperienceList []*UpdateCorehrPersonReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 - EducationList []*UpdateCorehrPersonReqEducation `json:"education_list,omitempty"` // 教育经历列表 - BankAccountList []*UpdateCorehrPersonReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 - NationalIDList []*UpdateCorehrPersonReqNationalID `json:"national_id_list,omitempty"` // 证件号码 - DependentList []*UpdateCorehrPersonReqDependent `json:"dependent_list,omitempty"` // 亲属列表 - EmergencyContactList []*UpdateCorehrPersonReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 - DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" - ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" - CustomFields []*UpdateCorehrPersonReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 - ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] - Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 - PersonalProfile []*UpdateCorehrPersonReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 -} - -// UpdateCorehrPersonReqAddress ... -type UpdateCorehrPersonReqAddress struct { - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" - CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" - DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" - LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" - PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" - CustomFields []*UpdateCorehrPersonReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonReqAddressCustomField ... -type UpdateCorehrPersonReqAddressCustomField struct { +// MockCoreHRUpdateCoreHRPersonV1 mock CoreHRUpdateCoreHRPersonV1 method +func (r *Mock) MockCoreHRUpdateCoreHRPersonV1(f func(ctx context.Context, request *UpdateCoreHRPersonV1Req, options ...MethodOptionFunc) (*UpdateCoreHRPersonV1Resp, *Response, error)) { + r.mockCoreHRUpdateCoreHRPersonV1 = f +} + +// UnMockCoreHRUpdateCoreHRPersonV1 un-mock CoreHRUpdateCoreHRPersonV1 method +func (r *Mock) UnMockCoreHRUpdateCoreHRPersonV1() { + r.mockCoreHRUpdateCoreHRPersonV1 = nil +} + +// UpdateCoreHRPersonV1Req ... +type UpdateCoreHRPersonV1Req struct { + PersonID string `path:"person_id" json:"-"` // person的ID示例值: "6969828847931885087" + ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 + NameList []*UpdateCoreHRPersonV1ReqName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCoreHRPersonV1ReqGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 出生日期示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍id示例值: "123456789" + Race *UpdateCoreHRPersonV1ReqRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCoreHRPersonV1ReqMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCoreHRPersonV1ReqPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCoreHRPersonV1ReqAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCoreHRPersonV1ReqEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCoreHRPersonV1ReqWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCoreHRPersonV1ReqEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCoreHRPersonV1ReqBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPersonV1ReqNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCoreHRPersonV1ReqDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCoreHRPersonV1ReqEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2020-10-01" + ProfileImageID *string `json:"profile_image_id,omitempty"` // 头像资源的 ID示例值: "dfysuc8x76dsfsw" + CustomFields []*UpdateCoreHRPersonV1ReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息示例值: ["123456"] + Age *int64 `json:"age,omitempty"` // 年龄示例值: 25 + PersonalProfile []*UpdateCoreHRPersonV1ReqPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// UpdateCoreHRPersonV1ReqAddress ... +type UpdateCoreHRPersonV1ReqAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "McPRG" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + CustomFields []*UpdateCoreHRPersonV1ReqAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1ReqAddressCustomField ... +type UpdateCoreHRPersonV1ReqAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqBankAccount ... -type UpdateCorehrPersonReqBankAccount struct { - BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" - BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" - AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" - Bank *UpdateCorehrPersonReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) - BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" - CustomFields []*UpdateCorehrPersonReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" - BankAccountUsage []*UpdateCorehrPersonReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 - BankAccountType *UpdateCorehrPersonReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 - CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" +// UpdateCoreHRPersonV1ReqBankAccount ... +type UpdateCoreHRPersonV1ReqBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称示例值: "中国农业银行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200000001223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + Bank *UpdateCoreHRPersonV1ReqBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + CustomFields []*UpdateCoreHRPersonV1ReqBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得示例值: "12" + BankAccountUsage []*UpdateCoreHRPersonV1ReqBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCoreHRPersonV1ReqBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID *string `json:"currency_id,omitempty"` // 货币id示例值: "12QueryCountryRegionSubdivisionDataReq" } -// UpdateCorehrPersonReqBankAccountBank ... -type UpdateCorehrPersonReqBankAccountBank struct { +// UpdateCoreHRPersonV1ReqBankAccountBank ... +type UpdateCoreHRPersonV1ReqBankAccountBank struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqBankAccountBankAccountType ... -type UpdateCorehrPersonReqBankAccountBankAccountType struct { +// UpdateCoreHRPersonV1ReqBankAccountBankAccountType ... +type UpdateCoreHRPersonV1ReqBankAccountBankAccountType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqBankAccountBankAccountUsage ... -type UpdateCorehrPersonReqBankAccountBankAccountUsage struct { +// UpdateCoreHRPersonV1ReqBankAccountBankAccountUsage ... +type UpdateCoreHRPersonV1ReqBankAccountBankAccountUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqBankAccountCustomField ... -type UpdateCorehrPersonReqBankAccountCustomField struct { +// UpdateCoreHRPersonV1ReqBankAccountCustomField ... +type UpdateCoreHRPersonV1ReqBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqCustomField ... -type UpdateCorehrPersonReqCustomField struct { +// UpdateCoreHRPersonV1ReqCustomField ... +type UpdateCoreHRPersonV1ReqCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqDependent ... -type UpdateCorehrPersonReqDependent struct { - Name *UpdateCorehrPersonReqDependentName `json:"name,omitempty"` // 亲属姓名 - Relationship *UpdateCorehrPersonReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - Gender *UpdateCorehrPersonReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" - NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" - NationalIDList []*UpdateCorehrPersonReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *UpdateCorehrPersonReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) - IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true - IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false - CustomFields []*UpdateCorehrPersonReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 - DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" - Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" - Job *string `json:"job,omitempty"` // 岗位示例值: "保安" - Phone *UpdateCorehrPersonReqDependentPhone `json:"phone,omitempty"` // 电话 - Address *UpdateCorehrPersonReqDependentAddress `json:"address,omitempty"` // 联系地址 - BirthCertificateOfChild *UpdateCorehrPersonReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 -} - -// UpdateCorehrPersonReqDependentAddress ... -type UpdateCorehrPersonReqDependentAddress struct { - ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" - CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" - DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" - LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" - LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" - LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" - LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" - PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" - CustomFields []*UpdateCorehrPersonReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG -} - -// UpdateCorehrPersonReqDependentAddressCustomField ... -type UpdateCorehrPersonReqDependentAddressCustomField struct { +// UpdateCoreHRPersonV1ReqDependent ... +type UpdateCoreHRPersonV1ReqDependent struct { + Name *UpdateCoreHRPersonV1ReqDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCoreHRPersonV1ReqDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCoreHRPersonV1ReqDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalityID *string `json:"nationality_id,omitempty"` // 国籍示例值: "7075702734054164011" + NationalIDList []*UpdateCoreHRPersonV1ReqDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *UpdateCoreHRPersonV1ReqDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + CustomFields []*UpdateCoreHRPersonV1ReqDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "张三" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位示例值: "保安" + Phone *UpdateCoreHRPersonV1ReqDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCoreHRPersonV1ReqDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *UpdateCoreHRPersonV1ReqDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// UpdateCoreHRPersonV1ReqDependentAddress ... +type UpdateCoreHRPersonV1ReqDependentAddress struct { + ID *string `json:"id,omitempty"` // 地址ID示例值: "6989822217869624863" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区示例值: "6863326815667095047" + CityID *string `json:"city_id,omitempty"` // 城市示例值: "6863333254578046471" + DistinctID *string `json:"distinct_id,omitempty"` // 区/县示例值: "6863333516579440141" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "丹佛测试地址-纽埃时区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "PoewH" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "jmwJc" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "jmwJc" + PostalCode *string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "rafSu" + CustomFields []*UpdateCoreHRPersonV1ReqDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: McPRG +} + +// UpdateCoreHRPersonV1ReqDependentAddressCustomField ... +type UpdateCoreHRPersonV1ReqDependentAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPersonReqDependentBirthCertificateOfChild ... -type UpdateCorehrPersonReqDependentBirthCertificateOfChild struct { +// UpdateCoreHRPersonV1ReqDependentBirthCertificateOfChild ... +type UpdateCoreHRPersonV1ReqDependentBirthCertificateOfChild struct { ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } -// UpdateCorehrPersonReqDependentCustomField ... -type UpdateCorehrPersonReqDependentCustomField struct { +// UpdateCoreHRPersonV1ReqDependentCustomField ... +type UpdateCoreHRPersonV1ReqDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqDependentGender ... -type UpdateCorehrPersonReqDependentGender struct { +// UpdateCoreHRPersonV1ReqDependentGender ... +type UpdateCoreHRPersonV1ReqDependentGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentName ... -type UpdateCorehrPersonReqDependentName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *UpdateCorehrPersonReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *UpdateCorehrPersonReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *UpdateCorehrPersonReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *UpdateCorehrPersonReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*UpdateCorehrPersonReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonReqDependentNameAdditionalNameType ... -type UpdateCorehrPersonReqDependentNameAdditionalNameType struct { +// UpdateCoreHRPersonV1ReqDependentName ... +type UpdateCoreHRPersonV1ReqDependentName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonV1ReqDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCoreHRPersonV1ReqDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCoreHRPersonV1ReqDependentNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCoreHRPersonV1ReqDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonV1ReqDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1ReqDependentNameAdditionalNameType ... +type UpdateCoreHRPersonV1ReqDependentNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentNameCustomField ... -type UpdateCorehrPersonReqDependentNameCustomField struct { +// UpdateCoreHRPersonV1ReqDependentNameCustomField ... +type UpdateCoreHRPersonV1ReqDependentNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqDependentNameNameType ... -type UpdateCorehrPersonReqDependentNameNameType struct { +// UpdateCoreHRPersonV1ReqDependentNameNameType ... +type UpdateCoreHRPersonV1ReqDependentNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentNameSocial ... -type UpdateCorehrPersonReqDependentNameSocial struct { +// UpdateCoreHRPersonV1ReqDependentNameSocial ... +type UpdateCoreHRPersonV1ReqDependentNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentNameTitle ... -type UpdateCorehrPersonReqDependentNameTitle struct { +// UpdateCoreHRPersonV1ReqDependentNameTitle ... +type UpdateCoreHRPersonV1ReqDependentNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentNationalID ... -type UpdateCorehrPersonReqDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCorehrPersonReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqDependentNationalID ... +type UpdateCoreHRPersonV1ReqDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPersonV1ReqDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqDependentNationalIDCustomField ... -type UpdateCorehrPersonReqDependentNationalIDCustomField struct { +// UpdateCoreHRPersonV1ReqDependentNationalIDCustomField ... +type UpdateCoreHRPersonV1ReqDependentNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqDependentPhone ... -type UpdateCorehrPersonReqDependentPhone struct { - InternationalAreaCode *UpdateCorehrPersonReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - CustomFields []*UpdateCorehrPersonReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqDependentPhone ... +type UpdateCoreHRPersonV1ReqDependentPhone struct { + InternationalAreaCode *UpdateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCoreHRPersonV1ReqDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqDependentPhoneCustomField ... -type UpdateCorehrPersonReqDependentPhoneCustomField struct { +// UpdateCoreHRPersonV1ReqDependentPhoneCustomField ... +type UpdateCoreHRPersonV1ReqDependentPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqDependentPhoneInternationalAreaCode ... -type UpdateCorehrPersonReqDependentPhoneInternationalAreaCode struct { +// UpdateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode ... +type UpdateCoreHRPersonV1ReqDependentPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentRelationship ... -type UpdateCorehrPersonReqDependentRelationship struct { +// UpdateCoreHRPersonV1ReqDependentRelationship ... +type UpdateCoreHRPersonV1ReqDependentRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqDependentSpousesWorkingStatus ... -type UpdateCorehrPersonReqDependentSpousesWorkingStatus struct { +// UpdateCoreHRPersonV1ReqDependentSpousesWorkingStatus ... +type UpdateCoreHRPersonV1ReqDependentSpousesWorkingStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEducation ... -type UpdateCorehrPersonReqEducation struct { - School []*UpdateCorehrPersonReqEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCorehrPersonReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" - EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" - FieldOfStudy []*UpdateCorehrPersonReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCorehrPersonReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *UpdateCorehrPersonReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *UpdateCorehrPersonReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" - ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" - CustomFields []*UpdateCorehrPersonReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqEducation ... +type UpdateCoreHRPersonV1ReqEducation struct { + School []*UpdateCoreHRPersonV1ReqEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonV1ReqEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2011-09-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2015-06-30" + FieldOfStudy []*UpdateCoreHRPersonV1ReqEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCoreHRPersonV1ReqEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonV1ReqEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonV1ReqEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家地区ID示例值: "1" + ExpectedEndDate *string `json:"expected_end_date,omitempty"` // 预期结束日期示例值: "2011-09-01" + CustomFields []*UpdateCoreHRPersonV1ReqEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqEducationCustomField ... -type UpdateCorehrPersonReqEducationCustomField struct { +// UpdateCoreHRPersonV1ReqEducationCustomField ... +type UpdateCoreHRPersonV1ReqEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqEducationDegree ... -type UpdateCorehrPersonReqEducationDegree struct { +// UpdateCoreHRPersonV1ReqEducationDegree ... +type UpdateCoreHRPersonV1ReqEducationDegree struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEducationFieldOfStudy ... -type UpdateCorehrPersonReqEducationFieldOfStudy struct { +// UpdateCoreHRPersonV1ReqEducationFieldOfStudy ... +type UpdateCoreHRPersonV1ReqEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonReqEducationFieldOfStudyName ... -type UpdateCorehrPersonReqEducationFieldOfStudyName struct { +// UpdateCoreHRPersonV1ReqEducationFieldOfStudyName ... +type UpdateCoreHRPersonV1ReqEducationFieldOfStudyName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEducationLevelOfEducation ... -type UpdateCorehrPersonReqEducationLevelOfEducation struct { +// UpdateCoreHRPersonV1ReqEducationLevelOfEducation ... +type UpdateCoreHRPersonV1ReqEducationLevelOfEducation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEducationSchool ... -type UpdateCorehrPersonReqEducationSchool struct { +// UpdateCoreHRPersonV1ReqEducationSchool ... +type UpdateCoreHRPersonV1ReqEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonReqEducationSchoolName ... -type UpdateCorehrPersonReqEducationSchoolName struct { +// UpdateCoreHRPersonV1ReqEducationSchoolName ... +type UpdateCoreHRPersonV1ReqEducationSchoolName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmail ... -type UpdateCorehrPersonReqEmail struct { - Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" - CustomFields []*UpdateCorehrPersonReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqEmail ... +type UpdateCoreHRPersonV1ReqEmail struct { + Email string `json:"email,omitempty"` // 邮箱号示例值: "12456@test.com" + CustomFields []*UpdateCoreHRPersonV1ReqEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqEmailCustomField ... -type UpdateCorehrPersonReqEmailCustomField struct { +// UpdateCoreHRPersonV1ReqEmailCustomField ... +type UpdateCoreHRPersonV1ReqEmailCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqEmergencyContact ... -type UpdateCorehrPersonReqEmergencyContact struct { - Name *UpdateCorehrPersonReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 - Relationship *UpdateCorehrPersonReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - PhoneIst []*UpdateCorehrPersonReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 - CustomFields []*UpdateCorehrPersonReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 - LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" +// UpdateCoreHRPersonV1ReqEmergencyContact ... +type UpdateCoreHRPersonV1ReqEmergencyContact struct { + Name *UpdateCoreHRPersonV1ReqEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCoreHRPersonV1ReqEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCoreHRPersonV1ReqEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCoreHRPersonV1ReqEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName *string `json:"legal_name,omitempty"` // 法定姓名示例值: "张三" } -// UpdateCorehrPersonReqEmergencyContactCustomField ... -type UpdateCorehrPersonReqEmergencyContactCustomField struct { +// UpdateCoreHRPersonV1ReqEmergencyContactCustomField ... +type UpdateCoreHRPersonV1ReqEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqEmergencyContactName ... -type UpdateCorehrPersonReqEmergencyContactName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *UpdateCorehrPersonReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *UpdateCorehrPersonReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *UpdateCorehrPersonReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*UpdateCorehrPersonReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType ... -type UpdateCorehrPersonReqEmergencyContactNameAdditionalNameType struct { +// UpdateCoreHRPersonV1ReqEmergencyContactName ... +type UpdateCoreHRPersonV1ReqEmergencyContactName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonV1ReqEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCoreHRPersonV1ReqEmergencyContactNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCoreHRPersonV1ReqEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonV1ReqEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType ... +type UpdateCoreHRPersonV1ReqEmergencyContactNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmergencyContactNameCustomField ... -type UpdateCorehrPersonReqEmergencyContactNameCustomField struct { +// UpdateCoreHRPersonV1ReqEmergencyContactNameCustomField ... +type UpdateCoreHRPersonV1ReqEmergencyContactNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqEmergencyContactNameNameType ... -type UpdateCorehrPersonReqEmergencyContactNameNameType struct { +// UpdateCoreHRPersonV1ReqEmergencyContactNameNameType ... +type UpdateCoreHRPersonV1ReqEmergencyContactNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmergencyContactNameSocial ... -type UpdateCorehrPersonReqEmergencyContactNameSocial struct { +// UpdateCoreHRPersonV1ReqEmergencyContactNameSocial ... +type UpdateCoreHRPersonV1ReqEmergencyContactNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmergencyContactNameTitle ... -type UpdateCorehrPersonReqEmergencyContactNameTitle struct { +// UpdateCoreHRPersonV1ReqEmergencyContactNameTitle ... +type UpdateCoreHRPersonV1ReqEmergencyContactNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmergencyContactPhoneIst ... -type UpdateCorehrPersonReqEmergencyContactPhoneIst struct { - InternationalAreaCode *UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - CustomFields []*UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqEmergencyContactPhoneIst ... +type UpdateCoreHRPersonV1ReqEmergencyContactPhoneIst struct { + InternationalAreaCode *UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + CustomFields []*UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField ... -type UpdateCorehrPersonReqEmergencyContactPhoneIstCustomField struct { +// UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField ... +type UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode ... -type UpdateCorehrPersonReqEmergencyContactPhoneIstInternationalAreaCode struct { +// UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode ... +type UpdateCoreHRPersonV1ReqEmergencyContactPhoneIstInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqEmergencyContactRelationship ... -type UpdateCorehrPersonReqEmergencyContactRelationship struct { +// UpdateCoreHRPersonV1ReqEmergencyContactRelationship ... +type UpdateCoreHRPersonV1ReqEmergencyContactRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqGender ... -type UpdateCorehrPersonReqGender struct { +// UpdateCoreHRPersonV1ReqGender ... +type UpdateCoreHRPersonV1ReqGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqMaritalStatus ... -type UpdateCorehrPersonReqMaritalStatus struct { +// UpdateCoreHRPersonV1ReqMaritalStatus ... +type UpdateCoreHRPersonV1ReqMaritalStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqName ... -type UpdateCorehrPersonReqName struct { - LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" - LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - NameType *UpdateCorehrPersonReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" - LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" - AdditionalNameType *UpdateCorehrPersonReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" - FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" - Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" - CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" - CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" - MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" - NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" - Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" - Social *UpdateCorehrPersonReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 - Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" - Title *UpdateCorehrPersonReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 - LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" - LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" - CustomFields []*UpdateCorehrPersonReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonReqNameAdditionalNameType ... -type UpdateCorehrPersonReqNameAdditionalNameType struct { +// UpdateCoreHRPersonV1ReqName ... +type UpdateCoreHRPersonV1ReqName struct { + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "黄" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "四" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + NameType *UpdateCoreHRPersonV1ReqNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 *string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字示例值: "五" + LocalPrimary2 *string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字示例值: "王" + AdditionalNameType *UpdateCoreHRPersonV1ReqNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName *string `json:"first_name,omitempty"` // 名示例值: "帅" + FullName *string `json:"full_name,omitempty"` // 全名示例值: "刘梓新" + Hereditary *string `json:"hereditary,omitempty"` // 姓氏称谓示例值: "王" + CustomName *string `json:"custom_name,omitempty"` // 自定义姓名示例值: "刘梓新" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名示例值: "刘梓新" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "大" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "王" + Secondary *string `json:"secondary,omitempty"` // 第二姓氏示例值: "王" + Social *UpdateCoreHRPersonV1ReqNameSocial `json:"social,omitempty"` // 尊称示例值: 刘梓新 + Tertiary *string `json:"tertiary,omitempty"` // 婚后姓氏示例值: "王" + Title *UpdateCoreHRPersonV1ReqNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr.示例值: 王 + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "大" + LocalSecondary *string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字示例值: "王" + CustomFields []*UpdateCoreHRPersonV1ReqNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1ReqNameAdditionalNameType ... +type UpdateCoreHRPersonV1ReqNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqNameCustomField ... -type UpdateCorehrPersonReqNameCustomField struct { +// UpdateCoreHRPersonV1ReqNameCustomField ... +type UpdateCoreHRPersonV1ReqNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqNameNameType ... -type UpdateCorehrPersonReqNameNameType struct { +// UpdateCoreHRPersonV1ReqNameNameType ... +type UpdateCoreHRPersonV1ReqNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqNameSocial ... -type UpdateCorehrPersonReqNameSocial struct { +// UpdateCoreHRPersonV1ReqNameSocial ... +type UpdateCoreHRPersonV1ReqNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqNameTitle ... -type UpdateCorehrPersonReqNameTitle struct { +// UpdateCoreHRPersonV1ReqNameTitle ... +type UpdateCoreHRPersonV1ReqNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqNationalID ... -type UpdateCorehrPersonReqNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCorehrPersonReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqNationalID ... +type UpdateCoreHRPersonV1ReqNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区示例值: "6862995757234914824" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPersonV1ReqNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqNationalIDCustomField ... -type UpdateCorehrPersonReqNationalIDCustomField struct { +// UpdateCoreHRPersonV1ReqNationalIDCustomField ... +type UpdateCoreHRPersonV1ReqNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqPersonalProfile ... -type UpdateCorehrPersonReqPersonalProfile struct { - PersonalProfileType *UpdateCorehrPersonReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 - Files []*UpdateCorehrPersonReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +// UpdateCoreHRPersonV1ReqPersonalProfile ... +type UpdateCoreHRPersonV1ReqPersonalProfile struct { + PersonalProfileType *UpdateCoreHRPersonV1ReqPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*UpdateCoreHRPersonV1ReqPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } -// UpdateCorehrPersonReqPersonalProfileFile ... -type UpdateCorehrPersonReqPersonalProfileFile struct { +// UpdateCoreHRPersonV1ReqPersonalProfileFile ... +type UpdateCoreHRPersonV1ReqPersonalProfileFile struct { ID *string `json:"id,omitempty"` // 上传文件ID示例值: "150018109586e8ea745e47ae8feb3722dbe1d03a181336393633393133303431393831343930373235150200" } -// UpdateCorehrPersonReqPersonalProfilePersonalProfileType ... -type UpdateCorehrPersonReqPersonalProfilePersonalProfileType struct { +// UpdateCoreHRPersonV1ReqPersonalProfilePersonalProfileType ... +type UpdateCoreHRPersonV1ReqPersonalProfilePersonalProfileType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqPhone ... -type UpdateCorehrPersonReqPhone struct { - InternationalAreaCode *UpdateCorehrPersonReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" - DeviceType *UpdateCorehrPersonReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 - PhoneUsage *UpdateCorehrPersonReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 - IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true - IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true - CustomFields []*UpdateCorehrPersonReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqPhone ... +type UpdateCoreHRPersonV1ReqPhone struct { + InternationalAreaCode *UpdateCoreHRPersonV1ReqPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "010-12345678" + DeviceType *UpdateCoreHRPersonV1ReqPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCoreHRPersonV1ReqPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary *bool `json:"is_primary,omitempty"` // 是否为主要电话示例值: true + IsPublic *bool `json:"is_public,omitempty"` // 是否为公开电话示例值: true + CustomFields []*UpdateCoreHRPersonV1ReqPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqPhoneCustomField ... -type UpdateCorehrPersonReqPhoneCustomField struct { +// UpdateCoreHRPersonV1ReqPhoneCustomField ... +type UpdateCoreHRPersonV1ReqPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqPhoneDeviceType ... -type UpdateCorehrPersonReqPhoneDeviceType struct { +// UpdateCoreHRPersonV1ReqPhoneDeviceType ... +type UpdateCoreHRPersonV1ReqPhoneDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqPhoneInternationalAreaCode ... -type UpdateCorehrPersonReqPhoneInternationalAreaCode struct { +// UpdateCoreHRPersonV1ReqPhoneInternationalAreaCode ... +type UpdateCoreHRPersonV1ReqPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqPhonePhoneUsage ... -type UpdateCorehrPersonReqPhonePhoneUsage struct { +// UpdateCoreHRPersonV1ReqPhonePhoneUsage ... +type UpdateCoreHRPersonV1ReqPhonePhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqRace ... -type UpdateCorehrPersonReqRace struct { +// UpdateCoreHRPersonV1ReqRace ... +type UpdateCoreHRPersonV1ReqRace struct { EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" } -// UpdateCorehrPersonReqWorkExperience ... -type UpdateCorehrPersonReqWorkExperience struct { - CompanyOrganization []*UpdateCorehrPersonReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department []*UpdateCorehrPersonReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*UpdateCorehrPersonReqWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description []*UpdateCorehrPersonReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" - EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" - CustomFields []*UpdateCorehrPersonReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1ReqWorkExperience ... +type UpdateCoreHRPersonV1ReqWorkExperience struct { + CompanyOrganization []*UpdateCoreHRPersonV1ReqWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*UpdateCoreHRPersonV1ReqWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*UpdateCoreHRPersonV1ReqWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*UpdateCoreHRPersonV1ReqWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate *string `json:"start_date,omitempty"` // 开始日期示例值: "2020-01-01" + EndDate *string `json:"end_date,omitempty"` // 结束日期示例值: "2020-01-01" + CustomFields []*UpdateCoreHRPersonV1ReqWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonReqWorkExperienceCompanyOrganization ... -type UpdateCorehrPersonReqWorkExperienceCompanyOrganization struct { +// UpdateCoreHRPersonV1ReqWorkExperienceCompanyOrganization ... +type UpdateCoreHRPersonV1ReqWorkExperienceCompanyOrganization struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonReqWorkExperienceCustomField ... -type UpdateCorehrPersonReqWorkExperienceCustomField struct { +// UpdateCoreHRPersonV1ReqWorkExperienceCustomField ... +type UpdateCoreHRPersonV1ReqWorkExperienceCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" } -// UpdateCorehrPersonReqWorkExperienceDepartment ... -type UpdateCorehrPersonReqWorkExperienceDepartment struct { +// UpdateCoreHRPersonV1ReqWorkExperienceDepartment ... +type UpdateCoreHRPersonV1ReqWorkExperienceDepartment struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonReqWorkExperienceDescription ... -type UpdateCorehrPersonReqWorkExperienceDescription struct { +// UpdateCoreHRPersonV1ReqWorkExperienceDescription ... +type UpdateCoreHRPersonV1ReqWorkExperienceDescription struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonReqWorkExperienceJob ... -type UpdateCorehrPersonReqWorkExperienceJob struct { +// UpdateCoreHRPersonV1ReqWorkExperienceJob ... +type UpdateCoreHRPersonV1ReqWorkExperienceJob struct { Lang string `json:"lang,omitempty"` // 名称信息的语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 名称信息的内容示例值: "张三" } -// UpdateCorehrPersonResp ... -type UpdateCorehrPersonResp struct { - Person *UpdateCorehrPersonRespPerson `json:"person,omitempty"` // 个人信息 -} - -// UpdateCorehrPersonRespPerson ... -type UpdateCorehrPersonRespPerson struct { - PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 - LegalName string `json:"legal_name,omitempty"` // 法定姓名 - PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) - ID string `json:"id,omitempty"` // Person ID - NameList []*UpdateCorehrPersonRespPersonName `json:"name_list,omitempty"` // 姓名 - Gender *UpdateCorehrPersonRespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 - NationalityID string `json:"nationality_id,omitempty"` // 国籍id - Race *UpdateCorehrPersonRespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 - MaritalStatus *UpdateCorehrPersonRespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 - PhoneList []*UpdateCorehrPersonRespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" - AddressList []*UpdateCorehrPersonRespPersonAddress `json:"address_list,omitempty"` // 地址列表 - EmailList []*UpdateCorehrPersonRespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 - WorkExperienceList []*UpdateCorehrPersonRespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 - EducationList []*UpdateCorehrPersonRespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 - BankAccountList []*UpdateCorehrPersonRespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 - NationalIDList []*UpdateCorehrPersonRespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 - DependentList []*UpdateCorehrPersonRespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 - EmergencyContactList []*UpdateCorehrPersonRespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 - DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 - ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID - CustomFields []*UpdateCorehrPersonRespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 - EmailAddress string `json:"email_address,omitempty"` // 邮箱 - ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 - Age int64 `json:"age,omitempty"` // 年龄 - HighestLevelOfEducation *UpdateCorehrPersonRespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 - HighestDegreeOfEducation *UpdateCorehrPersonRespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 - PersonalProfile []*UpdateCorehrPersonRespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 -} - -// UpdateCorehrPersonRespPersonAddress ... -type UpdateCorehrPersonRespPersonAddress struct { - FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) - FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - ID string `json:"id,omitempty"` // 地址ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityID string `json:"city_id,omitempty"` // 城市 - DistinctID string `json:"distinct_id,omitempty"` // 区/县 - LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - CustomFields []*UpdateCorehrPersonRespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonRespPersonAddressCustomField ... -type UpdateCorehrPersonRespPersonAddressCustomField struct { +// UpdateCoreHRPersonV1Resp ... +type UpdateCoreHRPersonV1Resp struct { + Person *UpdateCoreHRPersonV1RespPerson `json:"person,omitempty"` // 个人信息 +} + +// UpdateCoreHRPersonV1RespPerson ... +type UpdateCoreHRPersonV1RespPerson struct { + PhoneNumber string `json:"phone_number,omitempty"` // 个人手机号 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 + PreferredName string `json:"preferred_name,omitempty"` // 常用名 展示中英文混合名, 示例值: 张三(Zhang San) + ID string `json:"id,omitempty"` // Person ID + NameList []*UpdateCoreHRPersonV1RespPersonName `json:"name_list,omitempty"` // 姓名 + Gender *UpdateCoreHRPersonV1RespPersonGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期 + NationalityID string `json:"nationality_id,omitempty"` // 国籍id + Race *UpdateCoreHRPersonV1RespPersonRace `json:"race,omitempty"` // 民族 / 种族, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义部分获得 + MaritalStatus *UpdateCoreHRPersonV1RespPersonMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义部分获得 + PhoneList []*UpdateCoreHRPersonV1RespPersonPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见:- 电话号码不为空- is_primary = "true" - phone_usage = "home" + AddressList []*UpdateCoreHRPersonV1RespPersonAddress `json:"address_list,omitempty"` // 地址列表 + EmailList []*UpdateCoreHRPersonV1RespPersonEmail `json:"email_list,omitempty"` // 邮箱列表 + WorkExperienceList []*UpdateCoreHRPersonV1RespPersonWorkExperience `json:"work_experience_list,omitempty"` // 工作履历列表 + EducationList []*UpdateCoreHRPersonV1RespPersonEducation `json:"education_list,omitempty"` // 教育经历列表 + BankAccountList []*UpdateCoreHRPersonV1RespPersonBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPersonV1RespPersonNationalID `json:"national_id_list,omitempty"` // 证件号码 + DependentList []*UpdateCoreHRPersonV1RespPersonDependent `json:"dependent_list,omitempty"` // 亲属列表 + EmergencyContactList []*UpdateCoreHRPersonV1RespPersonEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表 + DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期 + ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID + CustomFields []*UpdateCoreHRPersonV1RespPersonCustomField `json:"custom_fields,omitempty"` // 自定义字段 + EmailAddress string `json:"email_address,omitempty"` // 邮箱 + ResidentTaxIDList []string `json:"resident_tax_id_list,omitempty"` // 纳税身份信息 + Age int64 `json:"age,omitempty"` // 年龄 + HighestLevelOfEducation *UpdateCoreHRPersonV1RespPersonHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育 + HighestDegreeOfEducation *UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历 + PersonalProfile []*UpdateCoreHRPersonV1RespPersonPersonalProfile `json:"personal_profile,omitempty"` // 个人资料 +} + +// UpdateCoreHRPersonV1RespPersonAddress ... +type UpdateCoreHRPersonV1RespPersonAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 邮政编码 + CustomFields []*UpdateCoreHRPersonV1RespPersonAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1RespPersonAddressCustomField ... +type UpdateCoreHRPersonV1RespPersonAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonBankAccount ... -type UpdateCorehrPersonRespPersonBankAccount struct { - BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 - BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 - AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 - Bank *UpdateCorehrPersonRespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) - BranchName string `json:"branch_name,omitempty"` // 支行名称 - CustomFields []*UpdateCorehrPersonRespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 - BankAccountUsage []*UpdateCorehrPersonRespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 - BankAccountType *UpdateCorehrPersonRespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 - CurrencyID string `json:"currency_id,omitempty"` // 货币id +// UpdateCoreHRPersonV1RespPersonBankAccount ... +type UpdateCoreHRPersonV1RespPersonBankAccount struct { + BankName string `json:"bank_name,omitempty"` // 银行名称, 如果已经填入银行枚举, 该字段可为空。如果要填写数据不在系统提供的枚举范围内, 该字段存储自定义银行名称 + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 + Bank *UpdateCoreHRPersonV1RespPersonBankAccountBank `json:"bank,omitempty"` // 银行枚举, 常见的银行枚举如: bank-5(交通银行)、bank-6(中国银行)、bank-7(中国建设银行)、bank-8(中国农业银行)、bank-9(中国工商银行)、bank-10(中国邮政储蓄银行)、bank-11(中国光大银行)、bank-12(中国民生银行)、bank-13(招商银行)、bank-14(中信银行)、bank-15(华夏银行) + BranchName string `json:"branch_name,omitempty"` // 支行名称 + CustomFields []*UpdateCoreHRPersonV1RespPersonBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家/地区id, 详细信息可通过【查询国家/地区信息】接口查询获得 + BankAccountUsage []*UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义部分获得 + BankAccountType *UpdateCoreHRPersonV1RespPersonBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义部分获得 + CurrencyID string `json:"currency_id,omitempty"` // 货币id } -// UpdateCorehrPersonRespPersonBankAccountBank ... -type UpdateCorehrPersonRespPersonBankAccountBank struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonBankAccountBank ... +type UpdateCoreHRPersonV1RespPersonBankAccountBank struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonBankAccountBankDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonBankAccountBankAccountType ... -type UpdateCorehrPersonRespPersonBankAccountBankAccountType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonBankAccountBankAccountType ... +type UpdateCoreHRPersonV1RespPersonBankAccountBankAccountType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay ... -type UpdateCorehrPersonRespPersonBankAccountBankAccountTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonBankAccountBankAccountTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonBankAccountBankAccountUsage ... -type UpdateCorehrPersonRespPersonBankAccountBankAccountUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsage ... +type UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay ... -type UpdateCorehrPersonRespPersonBankAccountBankAccountUsageDisplay struct { +// UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay ... +type UpdateCoreHRPersonV1RespPersonBankAccountBankAccountUsageDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonBankAccountBankDisplay ... -type UpdateCorehrPersonRespPersonBankAccountBankDisplay struct { +// UpdateCoreHRPersonV1RespPersonBankAccountBankDisplay ... +type UpdateCoreHRPersonV1RespPersonBankAccountBankDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonBankAccountCustomField ... -type UpdateCorehrPersonRespPersonBankAccountCustomField struct { +// UpdateCoreHRPersonV1RespPersonBankAccountCustomField ... +type UpdateCoreHRPersonV1RespPersonBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonCustomField ... -type UpdateCorehrPersonRespPersonCustomField struct { +// UpdateCoreHRPersonV1RespPersonCustomField ... +type UpdateCoreHRPersonV1RespPersonCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonDependent ... -type UpdateCorehrPersonRespPersonDependent struct { - Name *UpdateCorehrPersonRespPersonDependentName `json:"name,omitempty"` // 亲属姓名 - Relationship *UpdateCorehrPersonRespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - Gender *UpdateCorehrPersonRespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 - DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 - NationalityID string `json:"nationality_id,omitempty"` // 国籍 - NationalIDList []*UpdateCorehrPersonRespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) - IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 - IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 - CustomFields []*UpdateCorehrPersonRespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 - DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 - Employer string `json:"employer,omitempty"` // 工作单位 - Job string `json:"job,omitempty"` // 岗位 - Phone *UpdateCorehrPersonRespPersonDependentPhone `json:"phone,omitempty"` // 电话 - Address *UpdateCorehrPersonRespPersonDependentAddress `json:"address,omitempty"` // 联系地址 - BirthCertificateOfChild *UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 -} - -// UpdateCorehrPersonRespPersonDependentAddress ... -type UpdateCorehrPersonRespPersonDependentAddress struct { - FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) - FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) - ID string `json:"id,omitempty"` // 地址ID - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - RegionID string `json:"region_id,omitempty"` // 主要行政区 - CityID string `json:"city_id,omitempty"` // 城市 - DistinctID string `json:"distinct_id,omitempty"` // 区/县 - LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) - LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) - LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) - LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) - LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) - LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) - LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) - PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) - CustomFields []*UpdateCorehrPersonRespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) -} - -// UpdateCorehrPersonRespPersonDependentAddressCustomField ... -type UpdateCorehrPersonRespPersonDependentAddressCustomField struct { +// UpdateCoreHRPersonV1RespPersonDependent ... +type UpdateCoreHRPersonV1RespPersonDependent struct { + Name *UpdateCoreHRPersonV1RespPersonDependentName `json:"name,omitempty"` // 亲属姓名 + Relationship *UpdateCoreHRPersonV1RespPersonDependentRelationship `json:"relationship,omitempty"` // 亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + Gender *UpdateCoreHRPersonV1RespPersonDependentGender `json:"gender,omitempty"` // 亲属性别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gender)枚举定义部分获得 + DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 + NationalityID string `json:"nationality_id,omitempty"` // 国籍 + NationalIDList []*UpdateCoreHRPersonV1RespPersonDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态, 比如working(在岗)、not_working(不在岗) + IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 + IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 + CustomFields []*UpdateCoreHRPersonV1RespPersonDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 + Employer string `json:"employer,omitempty"` // 工作单位 + Job string `json:"job,omitempty"` // 岗位 + Phone *UpdateCoreHRPersonV1RespPersonDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCoreHRPersonV1RespPersonDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *UpdateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 +} + +// UpdateCoreHRPersonV1RespPersonDependentAddress ... +type UpdateCoreHRPersonV1RespPersonDependentAddress struct { + FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) + FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) + ID string `json:"id,omitempty"` // 地址ID + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + RegionID string `json:"region_id,omitempty"` // 主要行政区 + CityID string `json:"city_id,omitempty"` // 城市 + DistinctID string `json:"distinct_id,omitempty"` // 区/县 + LocalAddressLine1 string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine2 string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine3 string `json:"local_address_line3,omitempty"` // 地址行 1(非拉丁语系的本地文字) + LocalAddressLine4 string `json:"local_address_line4,omitempty"` // 地址行 2(非拉丁语系的本地文字) + LocalAddressLine5 string `json:"local_address_line5,omitempty"` // 地址行 3(非拉丁语系的本地文字) + LocalAddressLine6 string `json:"local_address_line6,omitempty"` // 地址行 4(非拉丁语系的本地文字) + LocalAddressLine7 string `json:"local_address_line7,omitempty"` // 地址行 5(非拉丁语系的本地文字) + LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 6(非拉丁语系的本地文字) + LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 7(非拉丁语系的本地文字) + PostalCode string `json:"postal_code,omitempty"` // 地址行 8(非拉丁语系的本地文字) + CustomFields []*UpdateCoreHRPersonV1RespPersonDependentAddressCustomField `json:"custom_fields,omitempty"` // 地址行 9(非拉丁语系的本地文字) +} + +// UpdateCoreHRPersonV1RespPersonDependentAddressCustomField ... +type UpdateCoreHRPersonV1RespPersonDependentAddressCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild ... -type UpdateCorehrPersonRespPersonDependentBirthCertificateOfChild struct { +// UpdateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild ... +type UpdateCoreHRPersonV1RespPersonDependentBirthCertificateOfChild struct { ID string `json:"id,omitempty"` // 上传文件ID } -// UpdateCorehrPersonRespPersonDependentCustomField ... -type UpdateCorehrPersonRespPersonDependentCustomField struct { +// UpdateCoreHRPersonV1RespPersonDependentCustomField ... +type UpdateCoreHRPersonV1RespPersonDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonDependentGender ... -type UpdateCorehrPersonRespPersonDependentGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentGender ... +type UpdateCoreHRPersonV1RespPersonDependentGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentGenderDisplay ... -type UpdateCorehrPersonRespPersonDependentGenderDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentGenderDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentGenderDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentName ... -type UpdateCorehrPersonRespPersonDependentName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *UpdateCorehrPersonRespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCorehrPersonRespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名 - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCorehrPersonRespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCorehrPersonRespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*UpdateCorehrPersonRespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonRespPersonDependentNameAdditionalNameType ... -type UpdateCorehrPersonRespPersonDependentNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentName ... +type UpdateCoreHRPersonV1RespPersonDependentName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonV1RespPersonDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCoreHRPersonV1RespPersonDependentNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCoreHRPersonV1RespPersonDependentNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonV1RespPersonDependentNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameType ... +type UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay ... -type UpdateCorehrPersonRespPersonDependentNameAdditionalNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentNameCustomField ... -type UpdateCorehrPersonRespPersonDependentNameCustomField struct { +// UpdateCoreHRPersonV1RespPersonDependentNameCustomField ... +type UpdateCoreHRPersonV1RespPersonDependentNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonDependentNameNameType ... -type UpdateCorehrPersonRespPersonDependentNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentNameNameType ... +type UpdateCoreHRPersonV1RespPersonDependentNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay ... -type UpdateCorehrPersonRespPersonDependentNameNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentNameSocial ... -type UpdateCorehrPersonRespPersonDependentNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentNameSocial ... +type UpdateCoreHRPersonV1RespPersonDependentNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentNameSocialDisplay ... -type UpdateCorehrPersonRespPersonDependentNameSocialDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentNameSocialDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentNameTitle ... -type UpdateCorehrPersonRespPersonDependentNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentNameTitle ... +type UpdateCoreHRPersonV1RespPersonDependentNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentNameTitleDisplay ... -type UpdateCorehrPersonRespPersonDependentNameTitleDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentNameTitleDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentNationalID ... -type UpdateCorehrPersonRespPersonDependentNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 - IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 - ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*UpdateCorehrPersonRespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonDependentNationalID ... +type UpdateCoreHRPersonV1RespPersonDependentNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*UpdateCoreHRPersonV1RespPersonDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonDependentNationalIDCustomField ... -type UpdateCorehrPersonRespPersonDependentNationalIDCustomField struct { +// UpdateCoreHRPersonV1RespPersonDependentNationalIDCustomField ... +type UpdateCoreHRPersonV1RespPersonDependentNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonDependentPhone ... -type UpdateCorehrPersonRespPersonDependentPhone struct { - InternationalAreaCode *UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - CustomFields []*UpdateCorehrPersonRespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonDependentPhone ... +type UpdateCoreHRPersonV1RespPersonDependentPhone struct { + InternationalAreaCode *UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*UpdateCoreHRPersonV1RespPersonDependentPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonDependentPhoneCustomField ... -type UpdateCorehrPersonRespPersonDependentPhoneCustomField struct { +// UpdateCoreHRPersonV1RespPersonDependentPhoneCustomField ... +type UpdateCoreHRPersonV1RespPersonDependentPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode ... -type UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode ... +type UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay ... -type UpdateCorehrPersonRespPersonDependentPhoneInternationalAreaCodeDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentRelationship ... -type UpdateCorehrPersonRespPersonDependentRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentRelationship ... +type UpdateCoreHRPersonV1RespPersonDependentRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentRelationshipDisplay ... -type UpdateCorehrPersonRespPersonDependentRelationshipDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentRelationshipDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus ... -type UpdateCorehrPersonRespPersonDependentSpousesWorkingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus ... +type UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay ... -type UpdateCorehrPersonRespPersonDependentSpousesWorkingStatusDisplay struct { +// UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay ... +type UpdateCoreHRPersonV1RespPersonDependentSpousesWorkingStatusDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducation ... -type UpdateCorehrPersonRespPersonEducation struct { - School []*UpdateCorehrPersonRespPersonEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCorehrPersonRespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*UpdateCorehrPersonRespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCorehrPersonRespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *UpdateCorehrPersonRespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *UpdateCorehrPersonRespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCorehrPersonRespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonEducation ... +type UpdateCoreHRPersonV1RespPersonEducation struct { + School []*UpdateCoreHRPersonV1RespPersonEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonV1RespPersonEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCoreHRPersonV1RespPersonEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCoreHRPersonV1RespPersonEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonV1RespPersonEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCoreHRPersonV1RespPersonEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonEducationCustomField ... -type UpdateCorehrPersonRespPersonEducationCustomField struct { +// UpdateCoreHRPersonV1RespPersonEducationCustomField ... +type UpdateCoreHRPersonV1RespPersonEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonEducationDegree ... -type UpdateCorehrPersonRespPersonEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEducationDegree ... +type UpdateCoreHRPersonV1RespPersonEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEducationDegreeDisplay ... -type UpdateCorehrPersonRespPersonEducationDegreeDisplay struct { +// UpdateCoreHRPersonV1RespPersonEducationDegreeDisplay ... +type UpdateCoreHRPersonV1RespPersonEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducationFieldOfStudy ... -type UpdateCorehrPersonRespPersonEducationFieldOfStudy struct { +// UpdateCoreHRPersonV1RespPersonEducationFieldOfStudy ... +type UpdateCoreHRPersonV1RespPersonEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducationFieldOfStudyName ... -type UpdateCorehrPersonRespPersonEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyName ... +type UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay ... -type UpdateCorehrPersonRespPersonEducationFieldOfStudyNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay ... +type UpdateCoreHRPersonV1RespPersonEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducationLevelOfEducation ... -type UpdateCorehrPersonRespPersonEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEducationLevelOfEducation ... +type UpdateCoreHRPersonV1RespPersonEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay ... -type UpdateCorehrPersonRespPersonEducationLevelOfEducationDisplay struct { +// UpdateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay ... +type UpdateCoreHRPersonV1RespPersonEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducationSchool ... -type UpdateCorehrPersonRespPersonEducationSchool struct { +// UpdateCoreHRPersonV1RespPersonEducationSchool ... +type UpdateCoreHRPersonV1RespPersonEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEducationSchoolName ... -type UpdateCorehrPersonRespPersonEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEducationSchoolName ... +type UpdateCoreHRPersonV1RespPersonEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEducationSchoolNameDisplay ... -type UpdateCorehrPersonRespPersonEducationSchoolNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonEducationSchoolNameDisplay ... +type UpdateCoreHRPersonV1RespPersonEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmail ... -type UpdateCorehrPersonRespPersonEmail struct { - Email string `json:"email,omitempty"` // 邮箱号 - CustomFields []*UpdateCorehrPersonRespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonEmail ... +type UpdateCoreHRPersonV1RespPersonEmail struct { + Email string `json:"email,omitempty"` // 邮箱号 + CustomFields []*UpdateCoreHRPersonV1RespPersonEmailCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonEmailCustomField ... -type UpdateCorehrPersonRespPersonEmailCustomField struct { +// UpdateCoreHRPersonV1RespPersonEmailCustomField ... +type UpdateCoreHRPersonV1RespPersonEmailCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonEmergencyContact ... -type UpdateCorehrPersonRespPersonEmergencyContact struct { - Name *UpdateCorehrPersonRespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 - Relationship *UpdateCorehrPersonRespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 - PhoneIst []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 - CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 - LegalName string `json:"legal_name,omitempty"` // 法定姓名 +// UpdateCoreHRPersonV1RespPersonEmergencyContact ... +type UpdateCoreHRPersonV1RespPersonEmergencyContact struct { + Name *UpdateCoreHRPersonV1RespPersonEmergencyContactName `json:"name,omitempty"` // 紧急联系人姓名 + Relationship *UpdateCoreHRPersonV1RespPersonEmergencyContactRelationship `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)亲属关系(relationship)枚举定义获得 + PhoneIst []*UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 紧急联系人电话 + CustomFields []*UpdateCoreHRPersonV1RespPersonEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + LegalName string `json:"legal_name,omitempty"` // 法定姓名 } -// UpdateCorehrPersonRespPersonEmergencyContactCustomField ... -type UpdateCorehrPersonRespPersonEmergencyContactCustomField struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactCustomField ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonEmergencyContactName ... -type UpdateCorehrPersonRespPersonEmergencyContactName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *UpdateCorehrPersonRespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - CustomName string `json:"custom_name,omitempty"` // 自定义姓名 - CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCorehrPersonRespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCorehrPersonRespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType ... -type UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactName ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + CustomName string `json:"custom_name,omitempty"` // 自定义姓名 + CustomLocalName string `json:"custom_local_name,omitempty"` // 本地文字的自定义姓名 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonV1RespPersonEmergencyContactNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmergencyContactNameCustomField ... -type UpdateCorehrPersonRespPersonEmergencyContactNameCustomField struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameCustomField ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonEmergencyContactNameNameType ... -type UpdateCorehrPersonRespPersonEmergencyContactNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameType ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactNameNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmergencyContactNameSocial ... -type UpdateCorehrPersonRespPersonEmergencyContactNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocial ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactNameSocialDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmergencyContactNameTitle ... -type UpdateCorehrPersonRespPersonEmergencyContactNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitle ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactNameTitleDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmergencyContactPhoneIst ... -type UpdateCorehrPersonRespPersonEmergencyContactPhoneIst struct { - InternationalAreaCode *UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - CustomFields []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIst ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIst struct { + InternationalAreaCode *UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + CustomFields []*UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField ... -type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstCustomField struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode ... -type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonEmergencyContactRelationship ... -type UpdateCorehrPersonRespPersonEmergencyContactRelationship struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonEmergencyContactRelationship ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactRelationship struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay ... -type UpdateCorehrPersonRespPersonEmergencyContactRelationshipDisplay struct { +// UpdateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay ... +type UpdateCoreHRPersonV1RespPersonEmergencyContactRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonGender ... -type UpdateCorehrPersonRespPersonGender struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonGender ... +type UpdateCoreHRPersonV1RespPersonGender struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonGenderDisplay ... -type UpdateCorehrPersonRespPersonGenderDisplay struct { +// UpdateCoreHRPersonV1RespPersonGenderDisplay ... +type UpdateCoreHRPersonV1RespPersonGenderDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducation ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducation struct { - School []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducation ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducation struct { + School []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationCustomField struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationDegreeDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudy struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchool struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay ... -type UpdateCorehrPersonRespPersonHighestDegreeOfEducationSchoolNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestDegreeOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducation ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducation struct { - School []*UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - FieldOfStudy []*UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID - ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducation ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducation struct { + School []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + FieldOfStudy []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID + ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 + CustomFields []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationCustomField struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationDegree struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegree struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationDegreeDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudy struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducation struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducation struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchool struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolName struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolName struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay ... -type UpdateCorehrPersonRespPersonHighestLevelOfEducationSchoolNameDisplay struct { +// UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay ... +type UpdateCoreHRPersonV1RespPersonHighestLevelOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonMaritalStatus ... -type UpdateCorehrPersonRespPersonMaritalStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonMaritalStatus ... +type UpdateCoreHRPersonV1RespPersonMaritalStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonMaritalStatusDisplay ... -type UpdateCorehrPersonRespPersonMaritalStatusDisplay struct { +// UpdateCoreHRPersonV1RespPersonMaritalStatusDisplay ... +type UpdateCoreHRPersonV1RespPersonMaritalStatusDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonName ... -type UpdateCorehrPersonRespPersonName struct { - LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 - LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - NameType *UpdateCorehrPersonRespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 - LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 - LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 - AdditionalNameType *UpdateCorehrPersonRespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) - FirstName string `json:"first_name,omitempty"` // 名 - FullName string `json:"full_name,omitempty"` // 全名 - Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 - MiddleName string `json:"middle_name,omitempty"` // 中间名 - NamePrimary string `json:"name_primary,omitempty"` // 姓 - Secondary string `json:"secondary,omitempty"` // 第二姓氏 - Social *UpdateCorehrPersonRespPersonNameSocial `json:"social,omitempty"` // 尊称 - Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Title *UpdateCorehrPersonRespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. - LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 - LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 - DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 - DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 - DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 - CustomFields []*UpdateCorehrPersonRespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPersonRespPersonNameAdditionalNameType ... -type UpdateCorehrPersonRespPersonNameAdditionalNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 -} - -// UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay ... -type UpdateCorehrPersonRespPersonNameAdditionalNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonName ... +type UpdateCoreHRPersonV1RespPersonName struct { + LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 + LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + NameType *UpdateCoreHRPersonV1RespPersonNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义部分获得 + LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 + LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 + AdditionalNameType *UpdateCoreHRPersonV1RespPersonNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 比如emergency_contact_name(紧急联系人姓名) + FirstName string `json:"first_name,omitempty"` // 名 + FullName string `json:"full_name,omitempty"` // 全名 + Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 + MiddleName string `json:"middle_name,omitempty"` // 中间名 + NamePrimary string `json:"name_primary,omitempty"` // 姓 + Secondary string `json:"secondary,omitempty"` // 第二姓氏 + Social *UpdateCoreHRPersonV1RespPersonNameSocial `json:"social,omitempty"` // 尊称 + Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 + Title *UpdateCoreHRPersonV1RespPersonNameTitle `json:"title,omitempty"` // 头衔, 比如Mr.Miss.Mrs.Prof.Dr. + LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 + LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 + DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值, 如果为空则取 custom_name 的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name、name_primary、first_name 等字段拼接在一起 + DisplayNameLocalScript string `json:"display_name_local_script,omitempty"` // 展示姓名(本地文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_local_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 local_primary、local_first_name 等字段拼接在一起 + DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字), 按照如下规则自动计算得到- 中国(包括中国香港、中国澳门、中国台湾)姓名, 默认取 custom_name 字段的值- 非中国姓名, 根据该国家/地区的规则自动将 name_primary、first_name 等字段拼接在一起 + CustomFields []*UpdateCoreHRPersonV1RespPersonNameCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPersonV1RespPersonNameAdditionalNameType ... +type UpdateCoreHRPersonV1RespPersonNameAdditionalNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +} + +// UpdateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonNameCustomField ... -type UpdateCorehrPersonRespPersonNameCustomField struct { +// UpdateCoreHRPersonV1RespPersonNameCustomField ... +type UpdateCoreHRPersonV1RespPersonNameCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonNameNameType ... -type UpdateCorehrPersonRespPersonNameNameType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonNameNameType ... +type UpdateCoreHRPersonV1RespPersonNameNameType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonNameNameTypeDisplay ... -type UpdateCorehrPersonRespPersonNameNameTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonNameNameTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonNameSocial ... -type UpdateCorehrPersonRespPersonNameSocial struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonNameSocial ... +type UpdateCoreHRPersonV1RespPersonNameSocial struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonNameSocialDisplay ... -type UpdateCorehrPersonRespPersonNameSocialDisplay struct { +// UpdateCoreHRPersonV1RespPersonNameSocialDisplay ... +type UpdateCoreHRPersonV1RespPersonNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonNameTitle ... -type UpdateCorehrPersonRespPersonNameTitle struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonNameTitle ... +type UpdateCoreHRPersonV1RespPersonNameTitle struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonNameTitleDisplay ... -type UpdateCorehrPersonRespPersonNameTitleDisplay struct { +// UpdateCoreHRPersonV1RespPersonNameTitleDisplay ... +type UpdateCoreHRPersonV1RespPersonNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonNationalID ... -type UpdateCorehrPersonRespPersonNationalID struct { - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 - IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 - ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 - IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*UpdateCorehrPersonRespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonNationalID ... +type UpdateCoreHRPersonV1RespPersonNationalID struct { + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 枚举值可通过【批量查询国家证件类型】接口获取 + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 + IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 + ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区 + IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 + CustomFields []*UpdateCoreHRPersonV1RespPersonNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonNationalIDCustomField ... -type UpdateCorehrPersonRespPersonNationalIDCustomField struct { +// UpdateCoreHRPersonV1RespPersonNationalIDCustomField ... +type UpdateCoreHRPersonV1RespPersonNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonPersonalProfile ... -type UpdateCorehrPersonRespPersonPersonalProfile struct { - PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID - PersonalProfileType *UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 - Files []*UpdateCorehrPersonRespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 +// UpdateCoreHRPersonV1RespPersonPersonalProfile ... +type UpdateCoreHRPersonV1RespPersonPersonalProfile struct { + PersonalProfileID string `json:"personal_profile_id,omitempty"` // 个人资料 ID + PersonalProfileType *UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 个人资料类型, 比如银行储蓄卡复印件、证件照、个人信息采集表、生活照 + Files []*UpdateCoreHRPersonV1RespPersonPersonalProfileFile `json:"files,omitempty"` // 上传文件列表 } -// UpdateCorehrPersonRespPersonPersonalProfileFile ... -type UpdateCorehrPersonRespPersonPersonalProfileFile struct { +// UpdateCoreHRPersonV1RespPersonPersonalProfileFile ... +type UpdateCoreHRPersonV1RespPersonPersonalProfileFile struct { ID string `json:"id,omitempty"` // 上传文件ID } -// UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType ... -type UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType ... +type UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay ... -type UpdateCorehrPersonRespPersonPersonalProfilePersonalProfileTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonPersonalProfilePersonalProfileTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonPhone ... -type UpdateCorehrPersonRespPersonPhone struct { - InternationalAreaCode *UpdateCorehrPersonRespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) - PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 - FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *UpdateCorehrPersonRespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 - PhoneUsage *UpdateCorehrPersonRespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 - IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 - IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 - CustomFields []*UpdateCorehrPersonRespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonPhone ... +type UpdateCoreHRPersonV1RespPersonPhone struct { + InternationalAreaCode *UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号常见如: 86_china(中国)、852_hong_kong(中国香港)、886_taiwan(中国台湾)、853_macao(中国澳门)、1_united_states_of_america(美利坚合众国)、7_russian_federation(俄罗斯联邦)、44_united_kingdom(英国)、81_japan(日本)、82_korea_republic_of(大韩民国)、91_india(印度) + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 + FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 + DeviceType *UpdateCoreHRPersonV1RespPersonPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义部分获得 + PhoneUsage *UpdateCoreHRPersonV1RespPersonPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义部分获得 + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要电话 + IsPublic bool `json:"is_public,omitempty"` // 是否为公开电话 + CustomFields []*UpdateCoreHRPersonV1RespPersonPhoneCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonPhoneCustomField ... -type UpdateCorehrPersonRespPersonPhoneCustomField struct { +// UpdateCoreHRPersonV1RespPersonPhoneCustomField ... +type UpdateCoreHRPersonV1RespPersonPhoneCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonPhoneDeviceType ... -type UpdateCorehrPersonRespPersonPhoneDeviceType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonPhoneDeviceType ... +type UpdateCoreHRPersonV1RespPersonPhoneDeviceType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay ... -type UpdateCorehrPersonRespPersonPhoneDeviceTypeDisplay struct { +// UpdateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay ... +type UpdateCoreHRPersonV1RespPersonPhoneDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonPhoneInternationalAreaCode ... -type UpdateCorehrPersonRespPersonPhoneInternationalAreaCode struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCode ... +type UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCode struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay ... -type UpdateCorehrPersonRespPersonPhoneInternationalAreaCodeDisplay struct { +// UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay ... +type UpdateCoreHRPersonV1RespPersonPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonPhonePhoneUsage ... -type UpdateCorehrPersonRespPersonPhonePhoneUsage struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonPhonePhoneUsage ... +type UpdateCoreHRPersonV1RespPersonPhonePhoneUsage struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay ... -type UpdateCorehrPersonRespPersonPhonePhoneUsageDisplay struct { +// UpdateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay ... +type UpdateCoreHRPersonV1RespPersonPhonePhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonRace ... -type UpdateCorehrPersonRespPersonRace struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCorehrPersonRespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPersonV1RespPersonRace ... +type UpdateCoreHRPersonV1RespPersonRace struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*UpdateCoreHRPersonV1RespPersonRaceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// UpdateCorehrPersonRespPersonRaceDisplay ... -type UpdateCorehrPersonRespPersonRaceDisplay struct { +// UpdateCoreHRPersonV1RespPersonRaceDisplay ... +type UpdateCoreHRPersonV1RespPersonRaceDisplay struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonWorkExperience ... -type UpdateCorehrPersonRespPersonWorkExperience struct { - CompanyOrganization []*UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department []*UpdateCorehrPersonRespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*UpdateCorehrPersonRespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description []*UpdateCorehrPersonRespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 - StartDate string `json:"start_date,omitempty"` // 开始日期 - EndDate string `json:"end_date,omitempty"` // 结束日期 - CustomFields []*UpdateCorehrPersonRespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPersonV1RespPersonWorkExperience ... +type UpdateCoreHRPersonV1RespPersonWorkExperience struct { + CompanyOrganization []*UpdateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*UpdateCoreHRPersonV1RespPersonWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*UpdateCoreHRPersonV1RespPersonWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*UpdateCoreHRPersonV1RespPersonWorkExperienceDescription `json:"description,omitempty"` // 工作描述 + StartDate string `json:"start_date,omitempty"` // 开始日期 + EndDate string `json:"end_date,omitempty"` // 结束日期 + CustomFields []*UpdateCoreHRPersonV1RespPersonWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization ... -type UpdateCorehrPersonRespPersonWorkExperienceCompanyOrganization struct { +// UpdateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization ... +type UpdateCoreHRPersonV1RespPersonWorkExperienceCompanyOrganization struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonWorkExperienceCustomField ... -type UpdateCorehrPersonRespPersonWorkExperienceCustomField struct { +// UpdateCoreHRPersonV1RespPersonWorkExperienceCustomField ... +type UpdateCoreHRPersonV1RespPersonWorkExperienceCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") } -// UpdateCorehrPersonRespPersonWorkExperienceDepartment ... -type UpdateCorehrPersonRespPersonWorkExperienceDepartment struct { +// UpdateCoreHRPersonV1RespPersonWorkExperienceDepartment ... +type UpdateCoreHRPersonV1RespPersonWorkExperienceDepartment struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonWorkExperienceDescription ... -type UpdateCorehrPersonRespPersonWorkExperienceDescription struct { +// UpdateCoreHRPersonV1RespPersonWorkExperienceDescription ... +type UpdateCoreHRPersonV1RespPersonWorkExperienceDescription struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// UpdateCorehrPersonRespPersonWorkExperienceJob ... -type UpdateCorehrPersonRespPersonWorkExperienceJob struct { +// UpdateCoreHRPersonV1RespPersonWorkExperienceJob ... +type UpdateCoreHRPersonV1RespPersonWorkExperienceJob struct { Lang string `json:"lang,omitempty"` // 名称信息的语言 Value string `json:"value,omitempty"` // 名称信息的内容 } -// updateCorehrPersonResp ... -type updateCorehrPersonResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrPersonResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateCoreHRPersonV1Resp ... +type updateCoreHRPersonV1Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCoreHRPersonV1Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_active.go b/api_corehr_position_active.go index b8e32fb0..b9c1bbfc 100644 --- a/api_corehr_position_active.go +++ b/api_corehr_position_active.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateCorehrPositionActive 对岗位进行启用或停用操作 +// CreateCoreHRPositionActive 对岗位进行启用或停用操作 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/active // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/active -func (r *CoreHRService) CreateCorehrPositionActive(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPositionActive != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPositionActive mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPositionActive(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRPositionActive(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRPositionActive != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPositionActive mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRPositionActive(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPositionActive", + API: "CreateCoreHRPositionActive", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/active", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPositionActiveResp) + resp := new(createCoreHRPositionActiveResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPositionActive mock CoreHRCreateCorehrPositionActive method -func (r *Mock) MockCoreHRCreateCorehrPositionActive(f func(ctx context.Context, request *CreateCorehrPositionActiveReq, options ...MethodOptionFunc) (*CreateCorehrPositionActiveResp, *Response, error)) { - r.mockCoreHRCreateCorehrPositionActive = f +// MockCoreHRCreateCoreHRPositionActive mock CoreHRCreateCoreHRPositionActive method +func (r *Mock) MockCoreHRCreateCoreHRPositionActive(f func(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error)) { + r.mockCoreHRCreateCoreHRPositionActive = f } -// UnMockCoreHRCreateCorehrPositionActive un-mock CoreHRCreateCorehrPositionActive method -func (r *Mock) UnMockCoreHRCreateCorehrPositionActive() { - r.mockCoreHRCreateCorehrPositionActive = nil +// UnMockCoreHRCreateCoreHRPositionActive un-mock CoreHRCreateCoreHRPositionActive method +func (r *Mock) UnMockCoreHRCreateCoreHRPositionActive() { + r.mockCoreHRCreateCoreHRPositionActive = nil } -// CreateCorehrPositionActiveReq ... -type CreateCorehrPositionActiveReq struct { +// CreateCoreHRPositionActiveReq ... +type CreateCoreHRPositionActiveReq struct { PositionID string `json:"position_id,omitempty"` // 岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914823" Active bool `json:"active,omitempty"` // 可选值: true(启用)、false(停用)示例值: true EffectiveTime string `json:"effective_time,omitempty"` // 生效时间示例值: "2020-01-01" 长度范围: `10` ~ `10` 字符- 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` } -// CreateCorehrPositionActiveResp ... -type CreateCorehrPositionActiveResp struct { +// CreateCoreHRPositionActiveResp ... +type CreateCoreHRPositionActiveResp struct { } -// createCorehrPositionActiveResp ... -type createCorehrPositionActiveResp struct { +// createCoreHRPositionActiveResp ... +type createCoreHRPositionActiveResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPositionActiveResp `json:"data,omitempty"` + Data *CreateCoreHRPositionActiveResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_create.go b/api_corehr_position_create.go index 5c0170df..fa29945a 100644 --- a/api_corehr_position_create.go +++ b/api_corehr_position_create.go @@ -21,50 +21,50 @@ import ( "context" ) -// CreateCorehrPosition 创建岗位, 可定义岗位关联的职务、职级、序列, 以及岗位描述等 +// CreateCoreHRPosition 创建岗位, 可定义岗位关联的职务、职级、序列, 以及岗位描述等 // // 非必填字段, 不传时默认为空 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/create // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/create -func (r *CoreHRService) CreateCorehrPosition(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPosition != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPosition mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPosition(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRPosition(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRPosition mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRPosition(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPosition", + API: "CreateCoreHRPosition", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPositionResp) + resp := new(createCoreHRPositionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPosition mock CoreHRCreateCorehrPosition method -func (r *Mock) MockCoreHRCreateCorehrPosition(f func(ctx context.Context, request *CreateCorehrPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionResp, *Response, error)) { - r.mockCoreHRCreateCorehrPosition = f +// MockCoreHRCreateCoreHRPosition mock CoreHRCreateCoreHRPosition method +func (r *Mock) MockCoreHRCreateCoreHRPosition(f func(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error)) { + r.mockCoreHRCreateCoreHRPosition = f } -// UnMockCoreHRCreateCorehrPosition un-mock CoreHRCreateCorehrPosition method -func (r *Mock) UnMockCoreHRCreateCorehrPosition() { - r.mockCoreHRCreateCorehrPosition = nil +// UnMockCoreHRCreateCoreHRPosition un-mock CoreHRCreateCoreHRPosition method +func (r *Mock) UnMockCoreHRCreateCoreHRPosition() { + r.mockCoreHRCreateCoreHRPosition = nil } -// CreateCorehrPositionReq ... -type CreateCorehrPositionReq struct { +// CreateCoreHRPositionReq ... +type CreateCoreHRPositionReq struct { ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` Code *string `json:"code,omitempty"` // 岗位编码 (不能与其他记录的编码重复)- 开启自动编码时, 以自动生成的编码值为准, 传入值不生效- 未开启自动编码时, 编码字段值以传入值为准示例值: "A01234" - Names []*CreateCorehrPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` - Descriptions []*CreateCorehrPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*CreateCoreHRPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*CreateCoreHRPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息示例值: "4719519211875096301" JobID string `json:"job_id,omitempty"` // 职务, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息示例值: "4719519211875096301" @@ -78,36 +78,36 @@ type CreateCorehrPositionReq struct { DottedLineLeaderID *string `json:"dotted_line_leader_id,omitempty"` // 虚线上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" IsKeyPosition *bool `json:"is_key_position,omitempty"` // 是否关键岗位示例值: true EffectiveTime string `json:"effective_time,omitempty"` // 生效日期, 输入日期格式的字符串示例值: "2020-05-01" 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - CustomFields []*CreateCorehrPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` + CustomFields []*CreateCoreHRPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` } -// CreateCorehrPositionReqCustomField ... -type CreateCorehrPositionReqCustomField struct { +// CreateCoreHRPositionReqCustomField ... +type CreateCoreHRPositionReqCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识, 由租户自定义, 可通过 [查询岗位信息] (/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query) 获取- 最多传入 200 个自定义字段示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")示例值: "\"231\"" } -// CreateCorehrPositionReqDescription ... -type CreateCorehrPositionReqDescription struct { +// CreateCoreHRPositionReqDescription ... +type CreateCoreHRPositionReqDescription struct { Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // 支持 zh-CN 和 en-US, 最大长度为 255 字符示例值: "岗位的描述" } -// CreateCorehrPositionReqName ... -type CreateCorehrPositionReqName struct { +// CreateCoreHRPositionReqName ... +type CreateCoreHRPositionReqName struct { Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // --支持 zh-CN 和 en-US, 最大长度为 255 字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "高级产品经理" } -// CreateCorehrPositionResp ... -type CreateCorehrPositionResp struct { +// CreateCoreHRPositionResp ... +type CreateCoreHRPositionResp struct { PositionID string `json:"position_id,omitempty"` // 岗位ID } -// createCorehrPositionResp ... -type createCorehrPositionResp struct { +// createCoreHRPositionResp ... +type createCoreHRPositionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPositionResp `json:"data,omitempty"` + Data *CreateCoreHRPositionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_del.go b/api_corehr_position_del.go index 8d209a66..6dd78b54 100644 --- a/api_corehr_position_del.go +++ b/api_corehr_position_del.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateCorehrPositionDelPosition 删除整条岗位记录 +// DeleteCoreHRPosition 删除整条岗位记录 // // 删除后不可恢复, 请谨慎操作 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/del_position // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/del_position -func (r *CoreHRService) CreateCorehrPositionDelPosition(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPositionDelPosition != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPositionDelPosition mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPositionDelPosition(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRPosition(ctx context.Context, request *DeleteCoreHRPositionReq, options ...MethodOptionFunc) (*DeleteCoreHRPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRPosition mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRPosition(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPositionDelPosition", + API: "DeleteCoreHRPosition", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/del_position", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPositionDelPositionResp) + resp := new(deleteCoreHRPositionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPositionDelPosition mock CoreHRCreateCorehrPositionDelPosition method -func (r *Mock) MockCoreHRCreateCorehrPositionDelPosition(f func(ctx context.Context, request *CreateCorehrPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCorehrPositionDelPositionResp, *Response, error)) { - r.mockCoreHRCreateCorehrPositionDelPosition = f +// MockCoreHRDeleteCoreHRPosition mock CoreHRDeleteCoreHRPosition method +func (r *Mock) MockCoreHRDeleteCoreHRPosition(f func(ctx context.Context, request *DeleteCoreHRPositionReq, options ...MethodOptionFunc) (*DeleteCoreHRPositionResp, *Response, error)) { + r.mockCoreHRDeleteCoreHRPosition = f } -// UnMockCoreHRCreateCorehrPositionDelPosition un-mock CoreHRCreateCorehrPositionDelPosition method -func (r *Mock) UnMockCoreHRCreateCorehrPositionDelPosition() { - r.mockCoreHRCreateCorehrPositionDelPosition = nil +// UnMockCoreHRDeleteCoreHRPosition un-mock CoreHRDeleteCoreHRPosition method +func (r *Mock) UnMockCoreHRDeleteCoreHRPosition() { + r.mockCoreHRDeleteCoreHRPosition = nil } -// CreateCorehrPositionDelPositionReq ... -type CreateCorehrPositionDelPositionReq struct { +// DeleteCoreHRPositionReq ... +type DeleteCoreHRPositionReq struct { PositionID string `json:"position_id,omitempty"` // 岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914824" } -// CreateCorehrPositionDelPositionResp ... -type CreateCorehrPositionDelPositionResp struct { +// DeleteCoreHRPositionResp ... +type DeleteCoreHRPositionResp struct { } -// createCorehrPositionDelPositionResp ... -type createCorehrPositionDelPositionResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPositionDelPositionResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteCoreHRPositionResp ... +type deleteCoreHRPositionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCoreHRPositionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_query.go b/api_corehr_position_query.go index 37c69592..d9cb3ec8 100644 --- a/api_corehr_position_query.go +++ b/api_corehr_position_query.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrPosition 支持通过岗位 ID、部门 ID 查询岗位的详细信息, 例如岗位关联的职务、职级、序列, 以及岗位描述, 是否关键岗位等 +// QueryCoreHRPosition 支持通过岗位 ID、部门 ID 查询岗位的详细信息, 例如岗位关联的职务、职级、序列, 以及岗位描述, 是否关键岗位等 // // #### 前提条件: // - 本接口会按照「岗位资源」权限范围返回数据, 请确定在「开发者后台 - 权限管理 - 数据权限」中已申请此数据权限 @@ -32,39 +32,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/query -func (r *CoreHRService) QueryCorehrPosition(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrPosition != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPosition mock enable") - return r.cli.mock.mockCoreHRQueryCorehrPosition(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRPosition(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRPosition mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRPosition(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrPosition", + API: "QueryCoreHRPosition", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrPositionResp) + resp := new(queryCoreHRPositionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrPosition mock CoreHRQueryCorehrPosition method -func (r *Mock) MockCoreHRQueryCorehrPosition(f func(ctx context.Context, request *QueryCorehrPositionReq, options ...MethodOptionFunc) (*QueryCorehrPositionResp, *Response, error)) { - r.mockCoreHRQueryCorehrPosition = f +// MockCoreHRQueryCoreHRPosition mock CoreHRQueryCoreHRPosition method +func (r *Mock) MockCoreHRQueryCoreHRPosition(f func(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error)) { + r.mockCoreHRQueryCoreHRPosition = f } -// UnMockCoreHRQueryCorehrPosition un-mock CoreHRQueryCorehrPosition method -func (r *Mock) UnMockCoreHRQueryCorehrPosition() { - r.mockCoreHRQueryCorehrPosition = nil +// UnMockCoreHRQueryCoreHRPosition un-mock CoreHRQueryCoreHRPosition method +func (r *Mock) UnMockCoreHRQueryCoreHRPosition() { + r.mockCoreHRQueryCoreHRPosition = nil } -// QueryCorehrPositionReq ... -type QueryCorehrPositionReq struct { +// QueryCoreHRPositionReq ... +type QueryCoreHRPositionReq struct { DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 100示例值: 100 取值范围: `1` ~ `100` @@ -77,19 +77,19 @@ type QueryCorehrPositionReq struct { PositionCodes []string `json:"position_codes,omitempty"` // 岗位 Code 列表示例值: ["42232132221241561"] 长度范围: `0` ~ `200` } -// QueryCorehrPositionResp ... -type QueryCorehrPositionResp struct { - Items []*QueryCorehrPositionRespItem `json:"items,omitempty"` // 岗位信息列表 +// QueryCoreHRPositionResp ... +type QueryCoreHRPositionResp struct { + Items []*QueryCoreHRPositionRespItem `json:"items,omitempty"` // 岗位信息列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// QueryCorehrPositionRespItem ... -type QueryCorehrPositionRespItem struct { +// QueryCoreHRPositionRespItem ... +type QueryCoreHRPositionRespItem struct { PositionID string `json:"position_id,omitempty"` // 岗位 ID Code string `json:"code,omitempty"` // 编码 - Names []*QueryCorehrPositionRespItemName `json:"names,omitempty"` // 名称 - Descriptions []*QueryCorehrPositionRespItemDescription `json:"descriptions,omitempty"` // 描述 + Names []*QueryCoreHRPositionRespItemName `json:"names,omitempty"` // 名称 + Descriptions []*QueryCoreHRPositionRespItemDescription `json:"descriptions,omitempty"` // 描述 Active bool `json:"active,omitempty"` // 状态, true表示启用, false表示停用 JobFamilyIDList []string `json:"job_family_id_list,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得 CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息 @@ -105,40 +105,40 @@ type QueryCorehrPositionRespItem struct { IsKeyPosition bool `json:"is_key_position,omitempty"` // 是否关键岗位 EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 ExpirationTime string `json:"expiration_time,omitempty"` // 失效日期 - CustomFields []*QueryCorehrPositionRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPositionRespItemCustomField `json:"custom_fields,omitempty"` // 自定义字段 CreatedBy string `json:"created_by,omitempty"` // 创建人 } -// QueryCorehrPositionRespItemCustomField ... -type QueryCorehrPositionRespItemCustomField struct { +// QueryCoreHRPositionRespItemCustomField ... +type QueryCoreHRPositionRespItemCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPositionRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPositionRespItemCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型, 详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPositionRespItemCustomFieldName ... -type QueryCorehrPositionRespItemCustomFieldName struct { +// QueryCoreHRPositionRespItemCustomFieldName ... +type QueryCoreHRPositionRespItemCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPositionRespItemDescription ... -type QueryCorehrPositionRespItemDescription struct { +// QueryCoreHRPositionRespItemDescription ... +type QueryCoreHRPositionRespItemDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPositionRespItemName ... -type QueryCorehrPositionRespItemName struct { +// QueryCoreHRPositionRespItemName ... +type QueryCoreHRPositionRespItemName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrPositionResp ... -type queryCorehrPositionResp struct { +// queryCoreHRPositionResp ... +type queryCoreHRPositionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrPositionResp `json:"data,omitempty"` + Data *QueryCoreHRPositionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_query_recent_change.go b/api_corehr_position_query_recent_change.go index 3d889114..56e9407a 100644 --- a/api_corehr_position_query_recent_change.go +++ b/api_corehr_position_query_recent_change.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrPositionRecentChange 查询指定时间范围内信息发生变更的岗位, 仅当岗位当前生效版本的生效时间在查询时间范围内, 才返回该岗位id +// QueryCoreHRPositionRecentChange 查询指定时间范围内信息发生变更的岗位, 仅当岗位当前生效版本的生效时间在查询时间范围内, 才返回该岗位id // // - 默认排序条件: 默认先按照组织记录 ID 增序排序, 便于滚动查询 // - 使用滚动查询而非分页查询, 是为了防止大批量获取数据时, 深分页导致超时 @@ -30,57 +30,57 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query_recent_change // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/query_recent_change -func (r *CoreHRService) QueryCorehrPositionRecentChange(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrPositionRecentChange != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPositionRecentChange mock enable") - return r.cli.mock.mockCoreHRQueryCorehrPositionRecentChange(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRPositionRecentChange(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRPositionRecentChange != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRPositionRecentChange mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRPositionRecentChange(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrPositionRecentChange", + API: "QueryCoreHRPositionRecentChange", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/query_recent_change", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrPositionRecentChangeResp) + resp := new(queryCoreHRPositionRecentChangeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrPositionRecentChange mock CoreHRQueryCorehrPositionRecentChange method -func (r *Mock) MockCoreHRQueryCorehrPositionRecentChange(f func(ctx context.Context, request *QueryCorehrPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCorehrPositionRecentChangeResp, *Response, error)) { - r.mockCoreHRQueryCorehrPositionRecentChange = f +// MockCoreHRQueryCoreHRPositionRecentChange mock CoreHRQueryCoreHRPositionRecentChange method +func (r *Mock) MockCoreHRQueryCoreHRPositionRecentChange(f func(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error)) { + r.mockCoreHRQueryCoreHRPositionRecentChange = f } -// UnMockCoreHRQueryCorehrPositionRecentChange un-mock CoreHRQueryCorehrPositionRecentChange method -func (r *Mock) UnMockCoreHRQueryCorehrPositionRecentChange() { - r.mockCoreHRQueryCorehrPositionRecentChange = nil +// UnMockCoreHRQueryCoreHRPositionRecentChange un-mock CoreHRQueryCoreHRPositionRecentChange method +func (r *Mock) UnMockCoreHRQueryCoreHRPositionRecentChange() { + r.mockCoreHRQueryCoreHRPositionRecentChange = nil } -// QueryCorehrPositionRecentChangeReq ... -type QueryCorehrPositionRecentChangeReq struct { +// QueryCoreHRPositionRecentChangeReq ... +type QueryCoreHRPositionRecentChangeReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 2000示例值: 100 取值范围: `1` ~ `2000` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 StartDate string `query:"start_date" json:"-"` // 查询的开始时间, 支持"yyyy-MM-dd HH:MM:SS"示例值: 2024-01-01 00:00:00 EndDate string `query:"end_date" json:"-"` // 查询的结束时间, 格式 "yyyy-MM-dd HH:MM:SS", 必须晚于start_date(查询的开始时间)示例值: 2024-04-01 00:00:00 } -// QueryCorehrPositionRecentChangeResp ... -type QueryCorehrPositionRecentChangeResp struct { +// QueryCoreHRPositionRecentChangeResp ... +type QueryCoreHRPositionRecentChangeResp struct { PositionIDs []string `json:"position_ids,omitempty"` // 岗位 ID 列表, 其中包含新建、更新以及删除的ID列表。- 可通过[【查询岗位信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)获取详情 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 DeletedPositionIDs []string `json:"deleted_position_ids,omitempty"` // 目标查询时间范围内被删除的岗位列表, 该列表是 position_ids 的子集, 便于获取在指定的[start_date, end_date+1) 的范围内被删除的岗位 IDs。- 由于对应的岗位已经被删除, 无法通过 ID 查询到历史数据。 } -// queryCorehrPositionRecentChangeResp ... -type queryCorehrPositionRecentChangeResp struct { +// queryCoreHRPositionRecentChangeResp ... +type queryCoreHRPositionRecentChangeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrPositionRecentChangeResp `json:"data,omitempty"` + Data *QueryCoreHRPositionRecentChangeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_position_update.go b/api_corehr_position_update.go index 15895136..de5ca585 100644 --- a/api_corehr_position_update.go +++ b/api_corehr_position_update.go @@ -21,7 +21,7 @@ import ( "context" ) -// UpdateCorehrPosition 更新岗位的版本信息, 例如岗位关联的职务、职级、序列, 以及岗位描述等 +// UpdateCoreHRPosition 更新岗位的版本信息, 例如岗位关联的职务、职级、序列, 以及岗位描述等 // // - 非必填字段, 不传时即不做变更 // - 如果传入生效时间当天不存在版本则会自动生成一个版本。 @@ -30,45 +30,45 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/patch // new doc: https://open.feishu.cn/document/corehr-v1/job-management/position/patch -func (r *CoreHRService) UpdateCorehrPosition(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrPosition != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPosition mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrPosition(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRPosition(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRPosition != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPosition mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRPosition(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrPosition", + API: "UpdateCoreHRPosition", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/positions/:position_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrPositionResp) + resp := new(updateCoreHRPositionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrPosition mock CoreHRUpdateCorehrPosition method -func (r *Mock) MockCoreHRUpdateCorehrPosition(f func(ctx context.Context, request *UpdateCorehrPositionReq, options ...MethodOptionFunc) (*UpdateCorehrPositionResp, *Response, error)) { - r.mockCoreHRUpdateCorehrPosition = f +// MockCoreHRUpdateCoreHRPosition mock CoreHRUpdateCoreHRPosition method +func (r *Mock) MockCoreHRUpdateCoreHRPosition(f func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRPosition = f } -// UnMockCoreHRUpdateCorehrPosition un-mock CoreHRUpdateCorehrPosition method -func (r *Mock) UnMockCoreHRUpdateCorehrPosition() { - r.mockCoreHRUpdateCorehrPosition = nil +// UnMockCoreHRUpdateCoreHRPosition un-mock CoreHRUpdateCoreHRPosition method +func (r *Mock) UnMockCoreHRUpdateCoreHRPosition() { + r.mockCoreHRUpdateCoreHRPosition = nil } -// UpdateCorehrPositionReq ... -type UpdateCorehrPositionReq struct { +// UpdateCoreHRPositionReq ... +type UpdateCoreHRPositionReq struct { PositionID string `path:"position_id" json:"-"` // 岗位 ID 列表, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "6862995757234914824" ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 1245464678 长度范围: `0` ~ `128` 字符 DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型, 三种类型的 ID 都可通过飞书人事的[批量查询部门( V2)](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` Code *string `json:"code,omitempty"` // 编码 (不能与其他记录的编码重复)- 如果开启了岗位自动编码, 此字段传入不生效示例值: "A01234" - Names []*UpdateCorehrPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` - Descriptions []*UpdateCorehrPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` + Names []*UpdateCoreHRPositionReqName `json:"names,omitempty"` // 名称 长度范围: `0` ~ `2` + Descriptions []*UpdateCoreHRPositionReqDescription `json:"descriptions,omitempty"` // 描述 长度范围: `0` ~ `2` JobFamilyIDs []string `json:"job_family_ids,omitempty"` // 序列 ID 列表, 详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得示例值: ["4719519211875096301"] 长度范围: `0` ~ `50` CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息示例值: "4719519211875096301" JobID *string `json:"job_id,omitempty"` // 职务, 可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息示例值: "4719519211875096301" @@ -82,35 +82,35 @@ type UpdateCorehrPositionReq struct { DottedLineLeaderID *string `json:"dotted_line_leader_id,omitempty"` // 虚线上级岗位ID, 详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得示例值: "4719519211875096301" IsKeyPosition *bool `json:"is_key_position,omitempty"` // 是否关键岗位示例值: true EffectiveTime string `json:"effective_time,omitempty"` // 生效日期示例值: "2020-05-01" 正则校验: `^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$` - CustomFields []*UpdateCorehrPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` + CustomFields []*UpdateCoreHRPositionReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 长度范围: `0` ~ `200` } -// UpdateCorehrPositionReqCustomField ... -type UpdateCorehrPositionReqCustomField struct { +// UpdateCoreHRPositionReqCustomField ... +type UpdateCoreHRPositionReqCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05")示例值: "\"231\"" } -// UpdateCorehrPositionReqDescription ... -type UpdateCorehrPositionReqDescription struct { +// UpdateCoreHRPositionReqDescription ... +type UpdateCoreHRPositionReqDescription struct { Lang string `json:"lang,omitempty"` // 语言示例值: "zh-CN" Value string `json:"value,omitempty"` // 支持 zh-CN 和 en-US, 最大长度为 255 字符示例值: "张三" } -// UpdateCorehrPositionReqName ... -type UpdateCorehrPositionReqName struct { +// UpdateCoreHRPositionReqName ... +type UpdateCoreHRPositionReqName struct { Lang string `json:"lang,omitempty"` // 名称信息的语言, 支持中文和英文。中文用zh-CN;英文用en-US示例值: "zh-CN" Value string `json:"value,omitempty"` // --支持 zh-CN 和 en-US, 最大长度为 255 字符- 名称不能包含「/」「;」「;」「\」「'」字符示例值: "张三" } -// UpdateCorehrPositionResp ... -type UpdateCorehrPositionResp struct { +// UpdateCoreHRPositionResp ... +type UpdateCoreHRPositionResp struct { } -// updateCorehrPositionResp ... -type updateCorehrPositionResp struct { +// updateCoreHRPositionResp ... +type updateCoreHRPositionResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrPositionResp `json:"data,omitempty"` + Data *UpdateCoreHRPositionResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_complete.go b/api_corehr_pre_hire_complete.go index 8716e097..fd574330 100644 --- a/api_corehr_pre_hire_complete.go +++ b/api_corehr_pre_hire_complete.go @@ -21,55 +21,55 @@ import ( "context" ) -// CreateCorehrPreHireComplete 操作待入职员工完成入职, 正式入职建立员工和公司/组织的雇佣关系 +// CompleteCoreHRPreHire 操作待入职员工完成入职, 正式入职建立员工和公司/组织的雇佣关系 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/complete // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/complete -func (r *CoreHRService) CreateCorehrPreHireComplete(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPreHireComplete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireComplete mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPreHireComplete(ctx, request, options...) +func (r *CoreHRService) CompleteCoreHRPreHire(ctx context.Context, request *CompleteCoreHRPreHireReq, options ...MethodOptionFunc) (*CompleteCoreHRPreHireResp, *Response, error) { + if r.cli.mock.mockCoreHRCompleteCoreHRPreHire != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CompleteCoreHRPreHire mock enable") + return r.cli.mock.mockCoreHRCompleteCoreHRPreHire(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPreHireComplete", + API: "CompleteCoreHRPreHire", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id/complete", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPreHireCompleteResp) + resp := new(completeCoreHRPreHireResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPreHireComplete mock CoreHRCreateCorehrPreHireComplete method -func (r *Mock) MockCoreHRCreateCorehrPreHireComplete(f func(ctx context.Context, request *CreateCorehrPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCorehrPreHireCompleteResp, *Response, error)) { - r.mockCoreHRCreateCorehrPreHireComplete = f +// MockCoreHRCompleteCoreHRPreHire mock CoreHRCompleteCoreHRPreHire method +func (r *Mock) MockCoreHRCompleteCoreHRPreHire(f func(ctx context.Context, request *CompleteCoreHRPreHireReq, options ...MethodOptionFunc) (*CompleteCoreHRPreHireResp, *Response, error)) { + r.mockCoreHRCompleteCoreHRPreHire = f } -// UnMockCoreHRCreateCorehrPreHireComplete un-mock CoreHRCreateCorehrPreHireComplete method -func (r *Mock) UnMockCoreHRCreateCorehrPreHireComplete() { - r.mockCoreHRCreateCorehrPreHireComplete = nil +// UnMockCoreHRCompleteCoreHRPreHire un-mock CoreHRCompleteCoreHRPreHire method +func (r *Mock) UnMockCoreHRCompleteCoreHRPreHire() { + r.mockCoreHRCompleteCoreHRPreHire = nil } -// CreateCorehrPreHireCompleteReq ... -type CreateCorehrPreHireCompleteReq struct { +// CompleteCoreHRPreHireReq ... +type CompleteCoreHRPreHireReq struct { PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" } -// CreateCorehrPreHireCompleteResp ... -type CreateCorehrPreHireCompleteResp struct { +// CompleteCoreHRPreHireResp ... +type CompleteCoreHRPreHireResp struct { Success bool `json:"success,omitempty"` // 是否成功完成入职 } -// createCorehrPreHireCompleteResp ... -type createCorehrPreHireCompleteResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPreHireCompleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// completeCoreHRPreHireResp ... +type completeCoreHRPreHireResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CompleteCoreHRPreHireResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_delete.go b/api_corehr_pre_hire_delete.go index 218bb4d8..6cbbdd94 100644 --- a/api_corehr_pre_hire_delete.go +++ b/api_corehr_pre_hire_delete.go @@ -21,12 +21,10 @@ import ( "context" ) -// DeleteCoreHRPreHire 删除待入职人员接口, 本接口直接删除待入职数据, 不会判断入职流程, 推荐使用新接口进行删除[【删除待入职】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/delete)。 +// DeleteCoreHRPreHire 删除待入职人员, 删除后无法搜索到待入职人员信息, 请谨慎操作 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/pre_hire/delete -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/pre_hire/delete -// -// Deprecated +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/delete +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/delete func (r *CoreHRService) DeleteCoreHRPreHire(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) { if r.cli.mock.mockCoreHRDeleteCoreHRPreHire != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRPreHire mock enable") @@ -37,7 +35,7 @@ func (r *CoreHRService) DeleteCoreHRPreHire(ctx context.Context, request *Delete Scope: "CoreHR", API: "DeleteCoreHRPreHire", Method: "DELETE", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/pre_hires/:pre_hire_id", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -60,7 +58,7 @@ func (r *Mock) UnMockCoreHRDeleteCoreHRPreHire() { // DeleteCoreHRPreHireReq ... type DeleteCoreHRPreHireReq struct { - PreHireID string `path:"pre_hire_id" json:"-"` // 需要删除的待入职人员信息ID示例值: "76534545454" + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可通过[搜索接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取示例值: "7345005664477775407" } // DeleteCoreHRPreHireResp ... diff --git a/api_corehr_pre_hire_delete_v2.go b/api_corehr_pre_hire_delete_v2.go index 09c64c6f..a9d03c22 100644 --- a/api_corehr_pre_hire_delete_v2.go +++ b/api_corehr_pre_hire_delete_v2.go @@ -21,54 +21,54 @@ import ( "context" ) -// DeleteCorehrPreHire 删除待入职人员, 删除后无法搜索到待入职人员信息, 请谨慎操作 +// DeleteCoreHRPreHireV2 删除待入职人员, 删除后无法搜索到待入职人员信息, 请谨慎操作 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/delete // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/delete -func (r *CoreHRService) DeleteCorehrPreHire(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error) { - if r.cli.mock.mockCoreHRDeleteCorehrPreHire != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCorehrPreHire mock enable") - return r.cli.mock.mockCoreHRDeleteCorehrPreHire(ctx, request, options...) +func (r *CoreHRService) DeleteCoreHRPreHireV2(ctx context.Context, request *DeleteCoreHRPreHireV2Req, options ...MethodOptionFunc) (*DeleteCoreHRPreHireV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRDeleteCoreHRPreHireV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DeleteCoreHRPreHireV2 mock enable") + return r.cli.mock.mockCoreHRDeleteCoreHRPreHireV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DeleteCorehrPreHire", + API: "DeleteCoreHRPreHireV2", Method: "DELETE", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(deleteCorehrPreHireResp) + resp := new(deleteCoreHRPreHireV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDeleteCorehrPreHire mock CoreHRDeleteCorehrPreHire method -func (r *Mock) MockCoreHRDeleteCorehrPreHire(f func(ctx context.Context, request *DeleteCorehrPreHireReq, options ...MethodOptionFunc) (*DeleteCorehrPreHireResp, *Response, error)) { - r.mockCoreHRDeleteCorehrPreHire = f +// MockCoreHRDeleteCoreHRPreHireV2 mock CoreHRDeleteCoreHRPreHireV2 method +func (r *Mock) MockCoreHRDeleteCoreHRPreHireV2(f func(ctx context.Context, request *DeleteCoreHRPreHireV2Req, options ...MethodOptionFunc) (*DeleteCoreHRPreHireV2Resp, *Response, error)) { + r.mockCoreHRDeleteCoreHRPreHireV2 = f } -// UnMockCoreHRDeleteCorehrPreHire un-mock CoreHRDeleteCorehrPreHire method -func (r *Mock) UnMockCoreHRDeleteCorehrPreHire() { - r.mockCoreHRDeleteCorehrPreHire = nil +// UnMockCoreHRDeleteCoreHRPreHireV2 un-mock CoreHRDeleteCoreHRPreHireV2 method +func (r *Mock) UnMockCoreHRDeleteCoreHRPreHireV2() { + r.mockCoreHRDeleteCoreHRPreHireV2 = nil } -// DeleteCorehrPreHireReq ... -type DeleteCorehrPreHireReq struct { +// DeleteCoreHRPreHireV2Req ... +type DeleteCoreHRPreHireV2Req struct { PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可通过[搜索接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)获取示例值: "7345005664477775407" } -// DeleteCorehrPreHireResp ... -type DeleteCorehrPreHireResp struct { +// DeleteCoreHRPreHireV2Resp ... +type DeleteCoreHRPreHireV2Resp struct { } -// deleteCorehrPreHireResp ... -type deleteCorehrPreHireResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *DeleteCorehrPreHireResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteCoreHRPreHireV2Resp ... +type deleteCoreHRPreHireV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *DeleteCoreHRPreHireV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_query.go b/api_corehr_pre_hire_query.go index b0b84159..6392ce7c 100644 --- a/api_corehr_pre_hire_query.go +++ b/api_corehr_pre_hire_query.go @@ -21,7 +21,7 @@ import ( "context" ) -// QueryCorehrPreHire 该接口用于根据待入职人员 ID(支持批量)查询待入职人员信息, 信息包含姓名、手机号等个人信息和任职信息。 +// QueryCoreHRPreHire 该接口用于根据待入职人员 ID(支持批量)查询待入职人员信息, 信息包含姓名、手机号等个人信息和任职信息。 // // - 延迟说明: 数据库主从延迟 2s 以内, 即: 直接创建待入职后2s内调用此接口可能查询不到数据。 // - 性能说明: 本接口返回数据量较多, 查询时请控制每批次数量(<10)和适当减少查询字段数(<50) @@ -29,39 +29,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/query -func (r *CoreHRService) QueryCorehrPreHire(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrPreHire != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrPreHire mock enable") - return r.cli.mock.mockCoreHRQueryCorehrPreHire(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRPreHire(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRPreHire != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRPreHire mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRPreHire(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrPreHire", + API: "QueryCoreHRPreHire", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrPreHireResp) + resp := new(queryCoreHRPreHireResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrPreHire mock CoreHRQueryCorehrPreHire method -func (r *Mock) MockCoreHRQueryCorehrPreHire(f func(ctx context.Context, request *QueryCorehrPreHireReq, options ...MethodOptionFunc) (*QueryCorehrPreHireResp, *Response, error)) { - r.mockCoreHRQueryCorehrPreHire = f +// MockCoreHRQueryCoreHRPreHire mock CoreHRQueryCoreHRPreHire method +func (r *Mock) MockCoreHRQueryCoreHRPreHire(f func(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error)) { + r.mockCoreHRQueryCoreHRPreHire = f } -// UnMockCoreHRQueryCorehrPreHire un-mock CoreHRQueryCorehrPreHire method -func (r *Mock) UnMockCoreHRQueryCorehrPreHire() { - r.mockCoreHRQueryCorehrPreHire = nil +// UnMockCoreHRQueryCoreHRPreHire un-mock CoreHRQueryCoreHRPreHire method +func (r *Mock) UnMockCoreHRQueryCoreHRPreHire() { + r.mockCoreHRQueryCoreHRPreHire = nil } -// QueryCorehrPreHireReq ... -type QueryCorehrPreHireReq struct { +// QueryCoreHRPreHireReq ... +type QueryCoreHRPreHireReq struct { PageSize int64 `query:"page_size" json:"-"` // 分页大小, 最大 10示例值: 10 取值范围: `1` ~ `10` PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 6891251722631890445 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -70,25 +70,25 @@ type QueryCorehrPreHireReq struct { Fields []string `json:"fields,omitempty"` // 返回数据的字段列表, 填写方式: 为空时只返回 pre_hire_id- 不为空时按照传入的字段返回数据, 数据结构可以参考response的数据结构, 格式示例如下: - person_info(个人信息) 字段: person_info.gender, person_info.age - employment_info(雇佣信息) 字段: employment_info.department - onboarding_info(入职信息) 字段: onboarding_info.onboarding_date - probation_info(试用期信息) 字段: probation_info.probation_period - contract_info(合同信息) 字段: contract_info.contract_type- 如果要返回所有下级, 只用传上级结构体名称, 例如 person_info- 返回数据越多, 查询接口性能越慢, 请按需填写返回字段示例值: ["employment_info.department"] 长度范围: `0` ~ `100` } -// QueryCorehrPreHireResp ... -type QueryCorehrPreHireResp struct { - Items []*QueryCorehrPreHireRespItem `json:"items,omitempty"` // 查询待入职的信息 +// QueryCoreHRPreHireResp ... +type QueryCoreHRPreHireResp struct { + Items []*QueryCoreHRPreHireRespItem `json:"items,omitempty"` // 查询待入职的信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// QueryCorehrPreHireRespItem ... -type QueryCorehrPreHireRespItem struct { - PersonInfo *QueryCorehrPreHireRespItemPersonInfo `json:"person_info,omitempty"` // 个人信息 - EmploymentInfo *QueryCorehrPreHireRespItemEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 - OnboardingInfo *QueryCorehrPreHireRespItemOnboardingInfo `json:"onboarding_info,omitempty"` // 入职信息 - ProbationInfo *QueryCorehrPreHireRespItemProbationInfo `json:"probation_info,omitempty"` // 试用期信息 - ContractInfo *QueryCorehrPreHireRespItemContractInfo `json:"contract_info,omitempty"` // 合同信息 +// QueryCoreHRPreHireRespItem ... +type QueryCoreHRPreHireRespItem struct { + PersonInfo *QueryCoreHRPreHireRespItemPersonInfo `json:"person_info,omitempty"` // 个人信息 + EmploymentInfo *QueryCoreHRPreHireRespItemEmploymentInfo `json:"employment_info,omitempty"` // 工作信息 + OnboardingInfo *QueryCoreHRPreHireRespItemOnboardingInfo `json:"onboarding_info,omitempty"` // 入职信息 + ProbationInfo *QueryCoreHRPreHireRespItemProbationInfo `json:"probation_info,omitempty"` // 试用期信息 + ContractInfo *QueryCoreHRPreHireRespItemContractInfo `json:"contract_info,omitempty"` // 合同信息 PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 id } -// QueryCorehrPreHireRespItemContractInfo ... -type QueryCorehrPreHireRespItemContractInfo struct { +// QueryCoreHRPreHireRespItemContractInfo ... +type QueryCoreHRPreHireRespItemContractInfo struct { ContractStartDate string `json:"contract_start_date,omitempty"` // 合同开始日期, 时间格式为 2023-09-01字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 ContractEndDate string `json:"contract_end_date,omitempty"` // 合同结束日期, 时间格式为 2023-09-01字段权限要求(满足任一): 获取合同期限信息读写合同期限信息 ContractType string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = contract_type @@ -97,15 +97,15 @@ type QueryCorehrPreHireRespItemContractInfo struct { ContractFileIDs []string `json:"contract_file_ids,omitempty"` // 合同文件字段权限要求: 待入职员工合同文件ID } -// QueryCorehrPreHireRespItemEmploymentInfo ... -type QueryCorehrPreHireRespItemEmploymentInfo struct { +// QueryCoreHRPreHireRespItemEmploymentInfo ... +type QueryCoreHRPreHireRespItemEmploymentInfo struct { DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 可以通过[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search)接口获取详情ID转换: 支持根据department_id_type进行ID转换, 返回department_id_type对应的类型的ID。 - CostCenterRates []*QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + CostCenterRates []*QueryCoreHRPreHireRespItemEmploymentInfoCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation OfficeLocationID string `json:"office_location_id,omitempty"` // 办公地点 ID, 详细信息可通过[查询地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 WorkLocationID string `json:"work_location_id,omitempty"` // 工作地点id, 可通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获取详情 WorkStation string `json:"work_station,omitempty"` // 工位 WorkerID string `json:"worker_id,omitempty"` // 工号 - CompensationType *QueryCorehrPreHireRespItemEmploymentInfoCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: compensation_type - object_api_name: pre_hire字段权限要求(满足任一): 查看员工的薪资类型信息读写员工的薪资类型信息 + CompensationType *QueryCoreHRPreHireRespItemEmploymentInfoCompensationType `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: compensation_type - object_api_name: pre_hire字段权限要求(满足任一): 查看员工的薪资类型信息读写员工的薪资类型信息 DirectLeaderID string `json:"direct_leader_id,omitempty"` // 直属上级雇佣 ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。 DottedLineManagerID string `json:"dotted_line_manager_id,omitempty"` // 虚线上级雇佣 ID, 可以通过【搜索员工信息】接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)ID转换: 支持根据user_id_type进行ID转换, 返回user_id_type对应的类型的ID。字段权限要求: 获取待入职人员虚线上级 JobID string `json:"job_id,omitempty"` // 职务 ID, 可以通过[查询职务](https://open.feishu.cn/document/server-docs/corehr-v1/job-management/job/get)接口获取详情字段权限要求(满足任一): 获取员工的职务信息获取职务级别信息读写员工的职务级别信息 @@ -125,20 +125,20 @@ type QueryCorehrPreHireRespItemEmploymentInfo struct { RehireEmploymentID string `json:"rehire_employment_id,omitempty"` // 历史雇佣信息 ID, 雇佣信息详细信息可以通过[查询单个雇佣信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/employment/get) 获得, 系统会检验当前雇佣信息的合法性, 要求: 雇佣信息为该人员最后一次雇佣记录 - 雇佣信息的雇员状态 = "terminated" - 该人员不存在其他待入职记录 WorkingHoursType string `json:"working_hours_type,omitempty"` // 工时制度 ID, 可通过[查询单个工时制度](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/working_hours_type/get)接口获取详情 WeeklyWorkingHoursV2 float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长v2(单位: 小时)浮点类型 - OfficeAddress *QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress `json:"office_address,omitempty"` // 办公地址字段权限要求: 获取办公地址 + OfficeAddress *QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddress `json:"office_address,omitempty"` // 办公地址字段权限要求: 获取办公地址 WorkingCalendarID string `json:"working_calendar_id,omitempty"` // 工作日历ID, 可以通过[查询工作日历](https://open.larkoffice.com/document/server-docs/calendar-v4/calendar/get)接口获取详情字段权限要求: 获取工作日历 UpdatedAt string `json:"updated_at,omitempty"` // 更新时间, 时间格式为 2023-09-01 13:21:12 SuspectedRehiring bool `json:"suspected_rehiring,omitempty"` // 是否疑似重聘字段权限要求: 获取是否疑似重聘 ConditionWorker bool `json:"condition_worker,omitempty"` // 是否外部人员 - CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取雇佣信息自定义字段信息 + CustomFields []*QueryCoreHRPreHireRespItemEmploymentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求: 获取雇佣信息自定义字段信息 PositionID string `json:"position_id,omitempty"` // 岗位 ID, 可以通过[查询岗位信息]接口获取详情- 部门的岗职模式会影响岗位数据, 在职务模式和岗位模式下, 岗位id是必填- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求(满足任一): 获取员工的岗位信息读写员工的岗位信息 CompanyManualUpdated bool `json:"company_manual_updated,omitempty"` // 公司主体是否被手动修改字段权限要求: 查看待入职是否被更新过公司主体 - PayGroup *QueryCorehrPreHireRespItemEmploymentInfoPayGroup `json:"pay_group,omitempty"` // 薪资组信息字段权限要求: 获取薪资组信息 + PayGroup *QueryCoreHRPreHireRespItemEmploymentInfoPayGroup `json:"pay_group,omitempty"` // 薪资组信息字段权限要求: 获取薪资组信息 WhetherTheInformationIsAbnormal bool `json:"whether_the_information_is_abnormal,omitempty"` // 是否信息异常字段权限要求: 获取待入职的异常信息 - AbnormalReason []*QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason `json:"abnormal_reason,omitempty"` // 异常原因列表字段权限要求: 获取待入职的异常信息 + AbnormalReason []*QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReason `json:"abnormal_reason,omitempty"` // 异常原因列表字段权限要求: 获取待入职的异常信息 HasOfferSalary bool `json:"has_offer_salary,omitempty"` // 是否有 Offer 薪酬字段权限要求: 查看是否有 Offer 薪酬 RecruitmentProjectID string `json:"recruitment_project_id,omitempty"` // 招聘项目 ID字段权限要求: 查看待入职的招聘项目 - WorkShift *QueryCorehrPreHireRespItemEmploymentInfoWorkShift `json:"work_shift,omitempty"` // 排班类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: work_shift- object_api_name: pre_hire字段权限要求: 获取排班信息 + WorkShift *QueryCoreHRPreHireRespItemEmploymentInfoWorkShift `json:"work_shift,omitempty"` // 排班类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: work_shift- object_api_name: pre_hire字段权限要求: 获取排班信息 CreatedAt string `json:"created_at,omitempty"` // 创建时间, 时间格式为 2023-09-01 13:21:12 CreatedBy string `json:"created_by,omitempty"` // 待入职信息 创建人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 UpdatedBy string `json:"updated_by,omitempty"` // 待入职信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 @@ -151,160 +151,160 @@ type QueryCorehrPreHireRespItemEmploymentInfo struct { BackgroundCheckOrderAccountName string `json:"background_check_order_account_name,omitempty"` // 背调账号名称- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调账号名称 BackgroundCheckOrderStartTime string `json:"background_check_order_start_time,omitempty"` // 背调开始时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调开始时间 BackgroundCheckOrderCompleteTime string `json:"background_check_order_complete_time,omitempty"` // 背调完成时间- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调完成时间 - BackgroundCheckOrderStatus *QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus `json:"background_check_order_status,omitempty"` // 背调状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = background_check_order_status- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调状态 - SeniorityAdjustInformationList []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - NoticePeriodPositiveVoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - NoticePeriodProbationInvoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - NoticePeriodPositiveInvoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - NoticePeriodProbationVoluntary *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + BackgroundCheckOrderStatus *QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus `json:"background_check_order_status,omitempty"` // 背调状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/server-docs/corehr-v1/basic-infomation/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = background_check_order_status- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)字段权限要求: 获取待入职人员背调状态 + SeniorityAdjustInformationList []*QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveVoluntary *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationInvoluntary *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodPositiveInvoluntary *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) WorkingHoursTypeManualUpdated bool `json:"working_hours_type_manual_updated,omitempty"` // 工时制度是否被手动修改 IsOverDue bool `json:"is_over_due,omitempty"` // 入职任务是否逾期 TaskCompleted bool `json:"task_completed,omitempty"` // 入职任务是否完成, 暂不推荐使用 ExpectedGraduateDate string `json:"expected_graduate_date,omitempty"` // 预计毕业日期 ServiceCompany string `json:"service_company,omitempty"` // 任职公司 ID, 详细信息可通过[查询单个公司](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/company/get)接口获得 Pathway string `json:"pathway,omitempty"` // 通道 - DefaultCostCenter *QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - CostAllocation *QueryCorehrPreHireRespItemEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + DefaultCostCenter *QueryCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *QueryCoreHRPreHireRespItemEmploymentInfoCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) ReuseFeishuAccount string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) ReusedFeishuAccountID string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 返回Lark Union ID- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) } -// QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason ... -type QueryCorehrPreHireRespItemEmploymentInfoAbnormalReason struct { - Descriptions []*QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription `json:"descriptions,omitempty"` // 异常信息描述 +// QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReason ... +type QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReason struct { + Descriptions []*QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription `json:"descriptions,omitempty"` // 异常信息描述 } -// QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription ... -type QueryCorehrPreHireRespItemEmploymentInfoAbnormalReasonDescription struct { +// QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription ... +type QueryCoreHRPreHireRespItemEmploymentInfoAbnormalReasonDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus ... -type QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus struct { +// QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus ... +type QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay ... -type QueryCorehrPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay struct { +// QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay ... +type QueryCoreHRPreHireRespItemEmploymentInfoBackgroundCheckOrderStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoCompensationType ... -type QueryCorehrPreHireRespItemEmploymentInfoCompensationType struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCompensationType ... +type QueryCoreHRPreHireRespItemEmploymentInfoCompensationType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemEmploymentInfoCompensationTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay ... -type QueryCorehrPreHireRespItemEmploymentInfoCompensationTypeDisplay struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCompensationTypeDisplay ... +type QueryCoreHRPreHireRespItemEmploymentInfoCompensationTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoCostAllocation ... -type QueryCorehrPreHireRespItemEmploymentInfoCostAllocation struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCostAllocation ... +type QueryCoreHRPreHireRespItemEmploymentInfoCostAllocation struct { EffectiveTime string `json:"effective_time,omitempty"` // 分摊生效日期 ExpirationTime string `json:"expiration_time,omitempty"` // 分摊失效日期 - CostCenterRates []*QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 + CostCenterRates []*QueryCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 } -// QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate ... -type QueryCorehrPreHireRespItemEmploymentInfoCostAllocationCostCenterRate struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate ... +type QueryCoreHRPreHireRespItemEmploymentInfoCostAllocationCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 } -// QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate ... -type QueryCorehrPreHireRespItemEmploymentInfoCostCenterRate struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCostCenterRate ... +type QueryCoreHRPreHireRespItemEmploymentInfoCostCenterRate struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/cost_center/search)接口获取对应的成本中心信息 Rate int64 `json:"rate,omitempty"` // 分摊比例(整数) NewRate float64 `json:"new_rate,omitempty"` // 分摊比例 } -// QueryCorehrPreHireRespItemEmploymentInfoCustomField ... -type QueryCorehrPreHireRespItemEmploymentInfoCustomField struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCustomField ... +type QueryCoreHRPreHireRespItemEmploymentInfoCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName ... -type QueryCorehrPreHireRespItemEmploymentInfoCustomFieldName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoCustomFieldName ... +type QueryCoreHRPreHireRespItemEmploymentInfoCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter ... -type QueryCorehrPreHireRespItemEmploymentInfoDefaultCostCenter struct { +// QueryCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter ... +type QueryCoreHRPreHireRespItemEmploymentInfoDefaultCostCenter struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取 EffectiveTime string `json:"effective_time,omitempty"` // 生效日期 IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心 InheritSource string `json:"inherit_source,omitempty"` // 继承来源 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntary struct { WkID string `json:"wk_id,omitempty"` // ID Value int64 `json:"value,omitempty"` // 数值 ValueUnit string `json:"value_unit,omitempty"` // 单位 - Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName `json:"name,omitempty"` // 名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName `json:"name,omitempty"` // 名称 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveInvoluntaryName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntary struct { WkID string `json:"wk_id,omitempty"` // ID Value int64 `json:"value,omitempty"` // 数值 ValueUnit string `json:"value_unit,omitempty"` // 单位 - Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName `json:"name,omitempty"` // 名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName `json:"name,omitempty"` // 名称 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodPositiveVoluntaryName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntary struct { WkID string `json:"wk_id,omitempty"` // ID Value int64 `json:"value,omitempty"` // 数值 ValueUnit string `json:"value_unit,omitempty"` // 单位 - Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName `json:"name,omitempty"` // 名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName `json:"name,omitempty"` // 名称 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationInvoluntaryName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntary struct { WkID string `json:"wk_id,omitempty"` // ID Value int64 `json:"value,omitempty"` // 数值 ValueUnit string `json:"value_unit,omitempty"` // 单位 - Name *QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName `json:"name,omitempty"` // 名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName `json:"name,omitempty"` // 名称 } -// QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName ... -type QueryCorehrPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName ... +type QueryCoreHRPreHireRespItemEmploymentInfoNoticePeriodProbationVoluntaryName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress ... -type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress struct { +// QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddress ... +type QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -331,100 +331,100 @@ type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + AddressTypeList []*QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType ... -type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressType struct { +// QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType ... +type QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay ... -type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay struct { +// QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay ... +type QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField ... -type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomField struct { +// QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField ... +type QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName ... -type QueryCorehrPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName ... +type QueryCoreHRPreHireRespItemEmploymentInfoOfficeAddressCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemEmploymentInfoPayGroup ... -type QueryCorehrPreHireRespItemEmploymentInfoPayGroup struct { - Name []*QueryCorehrPreHireRespItemEmploymentInfoPayGroupName `json:"name,omitempty"` // 薪资组名称 +// QueryCoreHRPreHireRespItemEmploymentInfoPayGroup ... +type QueryCoreHRPreHireRespItemEmploymentInfoPayGroup struct { + Name []*QueryCoreHRPreHireRespItemEmploymentInfoPayGroupName `json:"name,omitempty"` // 薪资组名称 ID string `json:"id,omitempty"` // 薪资组 ID } -// QueryCorehrPreHireRespItemEmploymentInfoPayGroupName ... -type QueryCorehrPreHireRespItemEmploymentInfoPayGroupName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoPayGroupName ... +type QueryCoreHRPreHireRespItemEmploymentInfoPayGroupName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation ... -type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformation struct { +// QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation ... +type QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformation struct { SeniorityAdjustment float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年 - SeniorityAdjustmentType *QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type + SeniorityAdjustmentType *QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type ReasonsForSeniorityAdjustment string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因 StartDate string `json:"start_date,omitempty"` // 开始日期 EndDate string `json:"end_date,omitempty"` // 结束日期 - CustomFields []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField ... -type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField struct { +// QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField ... +type QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型 Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName ... -type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName struct { +// QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName ... +type QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType ... -type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType struct { +// QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType ... +type QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay ... -type QueryCorehrPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay struct { +// QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay ... +type QueryCoreHRPreHireRespItemEmploymentInfoSeniorityAdjustInformationSeniorityAdjustmentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemEmploymentInfoWorkShift ... -type QueryCorehrPreHireRespItemEmploymentInfoWorkShift struct { +// QueryCoreHRPreHireRespItemEmploymentInfoWorkShift ... +type QueryCoreHRPreHireRespItemEmploymentInfoWorkShift struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay ... -type QueryCorehrPreHireRespItemEmploymentInfoWorkShiftDisplay struct { +// QueryCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay ... +type QueryCoreHRPreHireRespItemEmploymentInfoWorkShiftDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemOnboardingInfo ... -type QueryCorehrPreHireRespItemOnboardingInfo struct { +// QueryCoreHRPreHireRespItemOnboardingInfo ... +type QueryCoreHRPreHireRespItemOnboardingInfo struct { OfferID string `json:"offer_id,omitempty"` // Offer ID, 可以通过招聘[获取 Offer 列表](https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/offer/list)接口获取详情 OfferHRID string `json:"offer_hr_id,omitempty"` // Offer HR 的 雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型ID转换: 不支持根据user_id_type进行ID转换, 返回people_corehr_id 类型的ID。 OfferHRIDV2 string `json:"offer_hr_id_v2,omitempty"` // Offer hr 的 雇佣 ID, ID可以根据user_id_type转换成对应ID @@ -435,34 +435,34 @@ type QueryCorehrPreHireRespItemOnboardingInfo struct { OnboardingLocationID string `json:"onboarding_location_id,omitempty"` // 入职地点 ID, 详细信息可通过[查询单个地点](https://open.feishu.cn/document/server-docs/corehr-v1/organization-management/location/get)接口获得 CompanySponsoredVisa bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证字段权限要求: 查看签证要求 OnboardingStatus string `json:"onboarding_status,omitempty"` // 入职状态可选值有: 待入职已删除准备就绪已撤销已完成 - OnboardingTaskList []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask `json:"onboarding_task_list,omitempty"` // 入职任务列表 - OnboardingAddress *QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress `json:"onboarding_address,omitempty"` // 入职地址字段权限要求: 获取入职地址 - FlowName []*QueryCorehrPreHireRespItemOnboardingInfoFlowName `json:"flow_name,omitempty"` // 入职流程字段权限要求: 获取入职流程 + OnboardingTaskList []*QueryCoreHRPreHireRespItemOnboardingInfoOnboardingTask `json:"onboarding_task_list,omitempty"` // 入职任务列表 + OnboardingAddress *QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddress `json:"onboarding_address,omitempty"` // 入职地址字段权限要求: 获取入职地址 + FlowName []*QueryCoreHRPreHireRespItemOnboardingInfoFlowName `json:"flow_name,omitempty"` // 入职流程字段权限要求: 获取入职流程 FlowID string `json:"flow_id,omitempty"` // 入职流程 ID字段权限要求: 获取入职流程 CheckInTime string `json:"check_in_time,omitempty"` // 签到时间, 时间格式为 2023-09-01 13:21:12字段权限要求: 获取待入职人员的签到数据 - CheckInMethod *QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod `json:"check_in_method,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: check_in_method- object_api_name: pre_hire字段权限要求: 获取待入职人员的签到数据 + CheckInMethod *QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethod `json:"check_in_method,omitempty"` // 招聘来源, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: check_in_method- object_api_name: pre_hire字段权限要求: 获取待入职人员的签到数据 } -// QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod ... -type QueryCorehrPreHireRespItemOnboardingInfoCheckInMethod struct { +// QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethod ... +type QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethod struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay ... -type QueryCorehrPreHireRespItemOnboardingInfoCheckInMethodDisplay struct { +// QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay ... +type QueryCoreHRPreHireRespItemOnboardingInfoCheckInMethodDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemOnboardingInfoFlowName ... -type QueryCorehrPreHireRespItemOnboardingInfoFlowName struct { +// QueryCoreHRPreHireRespItemOnboardingInfoFlowName ... +type QueryCoreHRPreHireRespItemOnboardingInfoFlowName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddress ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -489,90 +489,90 @@ type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + AddressTypeList []*QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressType struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressType ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomField struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomField ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingAddressCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask ... -type QueryCorehrPreHireRespItemOnboardingInfoOnboardingTask struct { +// QueryCoreHRPreHireRespItemOnboardingInfoOnboardingTask ... +type QueryCoreHRPreHireRespItemOnboardingInfoOnboardingTask struct { TaskName string `json:"task_name,omitempty"` // 任务名称 TaskStatus string `json:"task_status,omitempty"` // 任务状态可选值有: 发起中已终止异常进行中未开始已跳过未初始化已失败审核中已退回已完成 OperatorID string `json:"operator_id,omitempty"` // 当前操作人雇佣 ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 TaskCode string `json:"task_code,omitempty"` // 任务code } -// QueryCorehrPreHireRespItemPersonInfo ... -type QueryCorehrPreHireRespItemPersonInfo struct { +// QueryCoreHRPreHireRespItemPersonInfo ... +type QueryCoreHRPreHireRespItemPersonInfo struct { PersonID string `json:"person_id,omitempty"` // 个人信息 ID PhoneNumber string `json:"phone_number,omitempty"` // 个人电话字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 LegalName string `json:"legal_name,omitempty"` // 法定姓名字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 PreferredName string `json:"preferred_name,omitempty"` // 常用名 PreferredLocalFullName string `json:"preferred_local_full_name,omitempty"` // 常用本地全名 PreferredEnglishFullName string `json:"preferred_english_full_name,omitempty"` // 常用英文全名 - NameList []*QueryCorehrPreHireRespItemPersonInfoName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 - Gender *QueryCorehrPreHireRespItemPersonInfoGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gendar)枚举定义获得字段权限要求(满足任一): 获取性别信息读写性别信息 + NameList []*QueryCoreHRPreHireRespItemPersonInfoName `json:"name_list,omitempty"` // 姓名列表字段权限要求(满足任一): 获取法定姓名信息读写法定姓名信息 + Gender *QueryCoreHRPreHireRespItemPersonInfoGender `json:"gender,omitempty"` // 性别, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)性别(gendar)枚举定义获得字段权限要求(满足任一): 获取性别信息读写性别信息 DateOfBirth string `json:"date_of_birth,omitempty"` // 出生日期字段权限要求(满足任一): 获取生日信息读写生日信息 NationalityIDV2 string `json:"nationality_id_v2,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取字段权限要求(满足任一): 获取国籍信息读写国籍信息 - Race *QueryCorehrPreHireRespItemPersonInfoRace `json:"race,omitempty"` // 民族, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义获得字段权限要求: 获取民族/种族信息 - MaritalStatus *QueryCorehrPreHireRespItemPersonInfoMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义获得字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 - PhoneList []*QueryCorehrPreHireRespItemPersonInfoPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 - AddressList []*QueryCorehrPreHireRespItemPersonInfoAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - EmailList []*QueryCorehrPreHireRespItemPersonInfoEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 - WorkExperienceList []*QueryCorehrPreHireRespItemPersonInfoWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 - EducationList []*QueryCorehrPreHireRespItemPersonInfoEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - BankAccountList []*QueryCorehrPreHireRespItemPersonInfoBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 - NationalIDList []*QueryCorehrPreHireRespItemPersonInfoNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 - DependentList []*QueryCorehrPreHireRespItemPersonInfoDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 - EmergencyContactList []*QueryCorehrPreHireRespItemPersonInfoEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 + Race *QueryCoreHRPreHireRespItemPersonInfoRace `json:"race,omitempty"` // 民族, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)民族(race)枚举定义获得字段权限要求: 获取民族/种族信息 + MaritalStatus *QueryCoreHRPreHireRespItemPersonInfoMaritalStatus `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)婚姻状况(marital_status)枚举定义获得字段权限要求(满足任一): 获取婚姻状况信息读写婚姻状况信息 + PhoneList []*QueryCoreHRPreHireRespItemPersonInfoPhone `json:"phone_list,omitempty"` // 电话列表, 只有当满足下面所有条件时, 电话在个人信息页才可见字段权限要求(满足任一): 获取个人手机号信息读写个人手机号信息 + AddressList []*QueryCoreHRPreHireRespItemPersonInfoAddress `json:"address_list,omitempty"` // 地址列表字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 + EmailList []*QueryCoreHRPreHireRespItemPersonInfoEmail `json:"email_list,omitempty"` // 邮箱列表字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 + WorkExperienceList []*QueryCoreHRPreHireRespItemPersonInfoWorkExperience `json:"work_experience_list,omitempty"` // 工作经历列表字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 + EducationList []*QueryCoreHRPreHireRespItemPersonInfoEducation `json:"education_list,omitempty"` // 教育经历列表字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + BankAccountList []*QueryCoreHRPreHireRespItemPersonInfoBankAccount `json:"bank_account_list,omitempty"` // 银行账户字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 + NationalIDList []*QueryCoreHRPreHireRespItemPersonInfoNationalID `json:"national_id_list,omitempty"` // 证件字段权限要求(满足任一): 获取证件信息读写证件信息 + DependentList []*QueryCoreHRPreHireRespItemPersonInfoDependent `json:"dependent_list,omitempty"` // 家庭成员列表字段权限要求(满足任一): 获取家庭成员信息读写家庭成员信息 + EmergencyContactList []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人列表字段权限要求(满足任一): 获取紧急联系人信息读写紧急联系人信息 DateEnteredWorkforce string `json:"date_entered_workforce,omitempty"` // 参加工作日期字段权限要求(满足任一): 获取参加工作日期读写参加工作日期 WorkingYears int64 `json:"working_years,omitempty"` // 工龄 ProfileImageID string `json:"profile_image_id,omitempty"` // 头像资源的 ID EmailAddress string `json:"email_address,omitempty"` // 邮箱地址字段权限要求(满足任一): 获取个人邮箱信息读写个人邮箱信息 Age int64 `json:"age,omitempty"` // 年龄字段权限要求(满足任一): 获取生日信息读写生日信息 - HighestLevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - HighestDegreeOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 - PersonalProfile []*QueryCorehrPreHireRespItemPersonInfoPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 + HighestLevelOfEducation *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation `json:"highest_level_of_education,omitempty"` // 最高学历教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + HighestDegreeOfEducation *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation `json:"highest_degree_of_education,omitempty"` // 最高学位教育经历字段权限要求(满足任一): 获取教育经历信息读写教育经历信息 + PersonalProfile []*QueryCoreHRPreHireRespItemPersonInfoPersonalProfile `json:"personal_profile,omitempty"` // 个人资料附件字段权限要求(满足任一): 获取个人资料信息读写个人资料信息 TalentID string `json:"talent_id,omitempty"` // 人才 ID - CustomFields []*QueryCorehrPreHireRespItemPersonInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取个人信息自定义字段信息读写个人信息中的自定义字段信息 NationalIDNumber string `json:"national_id_number,omitempty"` // 居民身份证件号码字段权限要求(满足任一): 获取证件信息读写证件信息 FamilyAddress string `json:"family_address,omitempty"` // 家庭地址字段权限要求(满足任一): 读取个人地址信息读写个人地址信息 - PersonInfoChns []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChn `json:"person_info_chns,omitempty"` // 个人附加信息 + PersonInfoChns []*QueryCoreHRPreHireRespItemPersonInfoPersonInfoChn `json:"person_info_chns,omitempty"` // 个人附加信息 BornCountryRegion string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情字段权限要求(满足任一): 获取出生国家/地区信息读写出生国家/地区信息 IsDisabled bool `json:"is_disabled,omitempty"` // 是否残疾字段权限要求(满足任一): 获取残疾信息读写残疾信息 DisableCardNumber string `json:"disable_card_number,omitempty"` // 残疾证号字段权限要求(满足任一): 获取残疾信息读写残疾信息 IsMartyrFamily bool `json:"is_martyr_family,omitempty"` // 是否烈属字段权限要求(满足任一): 获取烈属信息读写烈属信息 MartyrCardNumber string `json:"martyr_card_number,omitempty"` // 烈属证号字段权限要求(满足任一): 获取烈属信息读写烈属信息 IsOldAlone bool `json:"is_old_alone,omitempty"` // 是否孤老字段权限要求(满足任一): 获取孤老信息读写孤老信息 - ResidentTaxes []*QueryCorehrPreHireRespItemPersonInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 - Religion *QueryCorehrPreHireRespItemPersonInfoReligion `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: religion- object_api_name: person字段权限要求(满足任一): 查看宗教信仰信息读写宗教信仰信息 + ResidentTaxes []*QueryCoreHRPreHireRespItemPersonInfoResidentTaxe `json:"resident_taxes,omitempty"` // 居民身份信息字段权限要求(满足任一): 获取居民身份信息读写居民身份信息 + Religion *QueryCoreHRPreHireRespItemPersonInfoReligion `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: religion- object_api_name: person字段权限要求(满足任一): 查看宗教信仰信息读写宗教信仰信息 WorkingYearsV2 float64 `json:"working_years_v2,omitempty"` // 工龄 (单位: 年)浮点类型 CreatedAt string `json:"created_at,omitempty"` // 个人信息 创建时间, 时间格式为 2023-09-01 13:21:12 UpdatedAt string `json:"updated_at,omitempty"` // 个人信息 更新时间, 时间格式为 2023-09-01 13:21:12 @@ -580,11 +580,11 @@ type QueryCorehrPreHireRespItemPersonInfo struct { UpdatedBy string `json:"updated_by,omitempty"` // 个人信息 更新人, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取详情, user_id_type使用people_corehr_id类型 BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行卡号字段权限要求(满足任一): 获取银行账号列表信息读写银行账号信息 PassportNumber string `json:"passport_number,omitempty"` // 护照号码字段权限要求: 获取护照号码 - FormerEmployer []*QueryCorehrPreHireRespItemPersonInfoFormerEmployer `json:"former_employer,omitempty"` // 上家公司字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 + FormerEmployer []*QueryCoreHRPreHireRespItemPersonInfoFormerEmployer `json:"former_employer,omitempty"` // 上家公司字段权限要求(满足任一): 获取工作履历信息读写工作履历信息 } -// QueryCorehrPreHireRespItemPersonInfoAddress ... -type QueryCorehrPreHireRespItemPersonInfoAddress struct { +// QueryCoreHRPreHireRespItemPersonInfoAddress ... +type QueryCoreHRPreHireRespItemPersonInfoAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -613,141 +613,141 @@ type QueryCorehrPreHireRespItemPersonInfoAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrPreHireRespItemPersonInfoAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + AddressTypeList []*QueryCoreHRPreHireRespItemPersonInfoAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoAddressAddressType ... -type QueryCorehrPreHireRespItemPersonInfoAddressAddressType struct { +// QueryCoreHRPreHireRespItemPersonInfoAddressAddressType ... +type QueryCoreHRPreHireRespItemPersonInfoAddressAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoAddressAddressTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoAddressAddressTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoAddressAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoAddressCustomField ... -type QueryCorehrPreHireRespItemPersonInfoAddressCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoAddressCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoAddressCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoAddressCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoAddressCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoBankAccount ... -type QueryCorehrPreHireRespItemPersonInfoBankAccount struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccount ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccount struct { BankName string `json:"bank_name,omitempty"` // 银行名称 BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号 AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名 BranchName string `json:"branch_name,omitempty"` // 支行名称 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 - BankAccountUsage []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义获得 - BankAccountType *QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义获得 - PaymentType *QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType `json:"payment_type,omitempty"` // 分配方式, 枚举值可通过文档【飞书人事枚举常量】分配方式(Payment Type)枚举定义部分获得 + BankAccountUsage []*QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage `json:"bank_account_usage,omitempty"` // 银行卡用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡用途(bank_account_usage)枚举定义获得 + BankAccountType *QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)银行卡类型(bank_account_type)枚举定义获得 + PaymentType *QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentType `json:"payment_type,omitempty"` // 分配方式, 枚举值可通过文档【飞书人事枚举常量】分配方式(Payment Type)枚举定义部分获得 PaymentRate string `json:"payment_rate,omitempty"` // 分配比例 PaymentAmount string `json:"payment_amount,omitempty"` // 分配金额 Priority int64 `json:"priority,omitempty"` // 分配优先级 CurrencyID string `json:"currency_id,omitempty"` // 货币id - CustomFields []*QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountType struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountBankAccountUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentType struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentType ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoBankAccountPaymentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoCustomField ... -type QueryCorehrPreHireRespItemPersonInfoCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoDependent ... -type QueryCorehrPreHireRespItemPersonInfoDependent struct { +// QueryCoreHRPreHireRespItemPersonInfoDependent ... +type QueryCoreHRPreHireRespItemPersonInfoDependent struct { ID string `json:"id,omitempty"` // ID - Name *QueryCorehrPreHireRespItemPersonInfoDependentName `json:"name,omitempty"` // 姓名 - Relationship *QueryCorehrPreHireRespItemPersonInfoDependentRelationship `json:"relationship,omitempty"` // 关系 - Gender *QueryCorehrPreHireRespItemPersonInfoDependentGender `json:"gender,omitempty"` // 性别 + Name *QueryCoreHRPreHireRespItemPersonInfoDependentName `json:"name,omitempty"` // 姓名 + Relationship *QueryCoreHRPreHireRespItemPersonInfoDependentRelationship `json:"relationship,omitempty"` // 关系 + Gender *QueryCoreHRPreHireRespItemPersonInfoDependentGender `json:"gender,omitempty"` // 性别 DateOfBirth string `json:"date_of_birth,omitempty"` // 生日 - NationalIDList []*QueryCorehrPreHireRespItemPersonInfoDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 - SpousesWorkingStatus *QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态 + NationalIDList []*QueryCoreHRPreHireRespItemPersonInfoDependentNationalID `json:"national_id_list,omitempty"` // 证件号码 + SpousesWorkingStatus *QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus `json:"spouses_working_status,omitempty"` // 配偶工作状态 IsThisPersonCoveredByHealthInsurance bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险 IsThisPersonAllowedForTaxDeduction bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 DependentName string `json:"dependent_name,omitempty"` // 家庭成员姓名 Employer string `json:"employer,omitempty"` // 工作单位 Job string `json:"job,omitempty"` // 岗位 - Phone *QueryCorehrPreHireRespItemPersonInfoDependentPhone `json:"phone,omitempty"` // 电话 - Address *QueryCorehrPreHireRespItemPersonInfoDependentAddress `json:"address,omitempty"` // 联系地址 - BirthCertificateOfChild *QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 + Phone *QueryCoreHRPreHireRespItemPersonInfoDependentPhone `json:"phone,omitempty"` // 电话 + Address *QueryCoreHRPreHireRespItemPersonInfoDependentAddress `json:"address,omitempty"` // 联系地址 + BirthCertificateOfChild *QueryCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild `json:"birth_certificate_of_child,omitempty"` // 出生证明 } -// QueryCorehrPreHireRespItemPersonInfoDependentAddress ... -type QueryCorehrPreHireRespItemPersonInfoDependentAddress struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentAddress ... +type QueryCoreHRPreHireRespItemPersonInfoDependentAddress struct { FullAddressLocalScript string `json:"full_address_local_script,omitempty"` // 完整地址(本地文字) FullAddressWesternScript string `json:"full_address_western_script,omitempty"` // 完整地址(西方文字) AddressID string `json:"address_id,omitempty"` // 地址 ID @@ -774,80 +774,80 @@ type QueryCorehrPreHireRespItemPersonInfoDependentAddress struct { LocalAddressLine8 string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字) LocalAddressLine9 string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字) PostalCode string `json:"postal_code,omitempty"` // 邮政编码 - AddressTypeList []*QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 + AddressTypeList []*QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressType `json:"address_type_list,omitempty"` // 地址类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)地址类型(address_type)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要地址 IsPublic bool `json:"is_public,omitempty"` // 公开地址 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType ... -type QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressType struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressType ... +type QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentAddressAddressTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField ... -type QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoDependentAddressCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoDependentAddressCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild ... -type QueryCorehrPreHireRespItemPersonInfoDependentBirthCertificateOfChild struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild ... +type QueryCoreHRPreHireRespItemPersonInfoDependentBirthCertificateOfChild struct { ID string `json:"id,omitempty"` // 上传文件ID Name string `json:"name,omitempty"` // 文件名 } -// QueryCorehrPreHireRespItemPersonInfoDependentCustomField ... -type QueryCorehrPreHireRespItemPersonInfoDependentCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoDependentCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoDependentCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoDependentCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoDependentCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoDependentGender ... -type QueryCorehrPreHireRespItemPersonInfoDependentGender struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentGender ... +type QueryCoreHRPreHireRespItemPersonInfoDependentGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentGenderDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentGenderDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentGenderDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentName ... -type QueryCorehrPreHireRespItemPersonInfoDependentName struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentName ... +type QueryCoreHRPreHireRespItemPersonInfoDependentName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 - NameType *QueryCorehrPreHireRespItemPersonInfoDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + NameType *QueryCoreHRPreHireRespItemPersonInfoDependentNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 AdditionalName string `json:"additional_name,omitempty"` // 别名 - AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -857,8 +857,8 @@ type QueryCorehrPreHireRespItemPersonInfoDependentName struct { NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Social *QueryCorehrPreHireRespItemPersonInfoDependentNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name - Title *QueryCorehrPreHireRespItemPersonInfoDependentNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + Social *QueryCoreHRPreHireRespItemPersonInfoDependentNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCoreHRPreHireRespItemPersonInfoDependentNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -866,295 +866,295 @@ type QueryCorehrPreHireRespItemPersonInfoDependentName struct { DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) } -// QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameNameType ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameNameType ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameSocial ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameSocial struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameSocial ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameSocialDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameSocialDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameTitle ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameTitle struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameTitle ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentNameTitleDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNameTitleDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentNationalID ... -type QueryCorehrPreHireRespItemPersonInfoDependentNationalID struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNationalID ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNationalID struct { NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField ... -type QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoDependentNationalIDCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoDependentNationalIDCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhone ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhone struct { - InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoDependentPhone ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhone struct { + InternationalAreaCode *QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 + DeviceType *QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceType struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhoneDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentPhonePhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentRelationship ... -type QueryCorehrPreHireRespItemPersonInfoDependentRelationship struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentRelationship ... +type QueryCoreHRPreHireRespItemPersonInfoDependentRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentRelationshipDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentRelationshipDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus ... -type QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatus struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus ... +type QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay ... -type QueryCorehrPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoDependentSpousesWorkingStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducation ... -type QueryCorehrPreHireRespItemPersonInfoEducation struct { - School []*QueryCorehrPreHireRespItemPersonInfoEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoEducation ... +type QueryCoreHRPreHireRespItemPersonInfoEducation struct { + School []*QueryCoreHRPreHireRespItemPersonInfoEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 - FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *QueryCorehrPreHireRespItemPersonInfoEducationDegree `json:"degree,omitempty"` // 学位 - SchoolName *QueryCorehrPreHireRespItemPersonInfoEducationSchoolName `json:"school_name,omitempty"` // 学校名称 - FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 + FieldOfStudy []*QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCoreHRPreHireRespItemPersonInfoEducationDegree `json:"degree,omitempty"` // 学位 + SchoolName *QueryCoreHRPreHireRespItemPersonInfoEducationSchoolName `json:"school_name,omitempty"` // 学校名称 + FieldOfStudyName *QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称 CountryRegionID string `json:"country_region_id,omitempty"` // 国家地区ID ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoEducationCustomField ... -type QueryCorehrPreHireRespItemPersonInfoEducationCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoEducationCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoEducationCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoEducationDegree ... -type QueryCorehrPreHireRespItemPersonInfoEducationDegree struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationDegree ... +type QueryCoreHRPreHireRespItemPersonInfoEducationDegree struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEducationDegreeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationDegreeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy ... -type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudy struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy ... +type QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName ... -type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyName struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName ... +type QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation ... -type QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducation struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation ... +type QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEducationLevelOfEducationDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducationDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducationSchool ... -type QueryCorehrPreHireRespItemPersonInfoEducationSchool struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationSchool ... +type QueryCoreHRPreHireRespItemPersonInfoEducationSchool struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEducationSchoolName ... -type QueryCorehrPreHireRespItemPersonInfoEducationSchoolName struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationSchoolName ... +type QueryCoreHRPreHireRespItemPersonInfoEducationSchoolName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEducationSchoolNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEducationSchoolNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmail ... -type QueryCorehrPreHireRespItemPersonInfoEmail struct { +// QueryCoreHRPreHireRespItemPersonInfoEmail ... +type QueryCoreHRPreHireRespItemPersonInfoEmail struct { Email string `json:"email,omitempty"` // 邮箱地址 IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱 IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱 - EmailUsage *QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)邮箱用途(email_usage)枚举定义获得 + EmailUsage *QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsage `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)邮箱用途(email_usage)枚举定义获得 } -// QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage ... -type QueryCorehrPreHireRespItemPersonInfoEmailEmailUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsage ... +type QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmailEmailUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmailEmailUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContact ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContact struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContact ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContact struct { ID string `json:"id,omitempty"` // ID - Name *QueryCorehrPreHireRespItemPersonInfoEmergencyContactName `json:"name,omitempty"` // 姓名 - Relationship *QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship `json:"relationship,omitempty"` // 关系 - PhoneIst []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 - PhoneList []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 + Name *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactName `json:"name,omitempty"` // 姓名 + Relationship *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship `json:"relationship,omitempty"` // 关系 + PhoneIst []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst `json:"phone_ist,omitempty"` // 电话 + PhoneList []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhone `json:"phone_list,omitempty"` // 电话 LegalName string `json:"legal_name,omitempty"` // 法定姓名 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 IsPrimary bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactName ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactName struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactName ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 - NameType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + NameType *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 AdditionalName string `json:"additional_name,omitempty"` // 别名 - AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -1164,8 +1164,8 @@ type QueryCorehrPreHireRespItemPersonInfoEmergencyContactName struct { NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Social *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name - Title *QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + Social *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -1173,378 +1173,378 @@ type QueryCorehrPreHireRespItemPersonInfoEmergencyContactName struct { DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocial struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitle struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhone struct { - InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhone ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhone struct { + InternationalAreaCode *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIst struct { - InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIst struct { + InternationalAreaCode *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型 - PhoneUsage *QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途 + DeviceType *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType `json:"device_type,omitempty"` // 设备类型 + PhoneUsage *QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage `json:"phone_usage,omitempty"` // 电话用途 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhoneIstPhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactPhonePhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationship struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationship struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay ... -type QueryCorehrPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoEmergencyContactRelationshipDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoFormerEmployer ... -type QueryCorehrPreHireRespItemPersonInfoFormerEmployer struct { +// QueryCoreHRPreHireRespItemPersonInfoFormerEmployer ... +type QueryCoreHRPreHireRespItemPersonInfoFormerEmployer struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoGender ... -type QueryCorehrPreHireRespItemPersonInfoGender struct { +// QueryCoreHRPreHireRespItemPersonInfoGender ... +type QueryCoreHRPreHireRespItemPersonInfoGender struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoGenderDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoGenderDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoGenderDisplay ... -type QueryCorehrPreHireRespItemPersonInfoGenderDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoGenderDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoGenderDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducation struct { - School []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducation struct { + School []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 - FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + FieldOfStudy []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegree struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegree struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchool struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestDegreeOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducation struct { - School []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 - LevelOfEducation *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducation struct { + School []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool `json:"school,omitempty"` // 学校 + LevelOfEducation *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation `json:"level_of_education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得 StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 - FieldOfStudy []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 - Degree *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 - SchoolName *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education - FieldOfStudyName *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education + FieldOfStudy []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy `json:"field_of_study,omitempty"` // 专业 + Degree *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree `json:"degree,omitempty"` // 学位, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学位(degree)枚举定义获得 + SchoolName *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName `json:"school_name,omitempty"` // 学校名称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: school_name- object_api_name: education + FieldOfStudyName *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName `json:"field_of_study_name,omitempty"` // 专业名称, 枚举值可查询[获取字段详情](/ssl: ttdoc/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: field_of_study_name- object_api_name: education CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 ExpectedEndDate string `json:"expected_end_date,omitempty"` // 预期结束日期 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegree struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegree struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationDegreeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudy struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationFieldOfStudyNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationLevelOfEducationDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchool struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchool struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolName struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay ... -type QueryCorehrPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoHighestLevelOfEducationSchoolNameDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoMaritalStatus ... -type QueryCorehrPreHireRespItemPersonInfoMaritalStatus struct { +// QueryCoreHRPreHireRespItemPersonInfoMaritalStatus ... +type QueryCoreHRPreHireRespItemPersonInfoMaritalStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoMaritalStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay ... -type QueryCorehrPreHireRespItemPersonInfoMaritalStatusDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoMaritalStatusDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoMaritalStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoName ... -type QueryCorehrPreHireRespItemPersonInfoName struct { +// QueryCoreHRPreHireRespItemPersonInfoName ... +type QueryCoreHRPreHireRespItemPersonInfoName struct { LocalPrimary string `json:"local_primary,omitempty"` // 姓 - 本地文字 LocalFirstName string `json:"local_first_name,omitempty"` // 名 - 本地文字 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 - NameType *QueryCorehrPreHireRespItemPersonInfoNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 + NameType *QueryCoreHRPreHireRespItemPersonInfoNameNameType `json:"name_type,omitempty"` // 姓名类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)姓名类型(name_type)枚举定义获得 LocalFirstName2 string `json:"local_first_name_2,omitempty"` // 名 - 第二本地文字 LocalPrimary2 string `json:"local_primary_2,omitempty"` // 姓 - 第二本地文字 AdditionalName string `json:"additional_name,omitempty"` // 别名 - AdditionalNameType *QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name + AdditionalNameType *QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameType `json:"additional_name_type,omitempty"` // 补充姓名类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: additional_name_type- object_api_name: person_name FirstName string `json:"first_name,omitempty"` // 名 FullName string `json:"full_name,omitempty"` // 全名 Hereditary string `json:"hereditary,omitempty"` // 姓氏称谓 @@ -1554,8 +1554,8 @@ type QueryCorehrPreHireRespItemPersonInfoName struct { NamePrimary string `json:"name_primary,omitempty"` // 姓 Secondary string `json:"secondary,omitempty"` // 第二姓氏 Tertiary string `json:"tertiary,omitempty"` // 婚后姓氏 - Social *QueryCorehrPreHireRespItemPersonInfoNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name - Title *QueryCorehrPreHireRespItemPersonInfoNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name + Social *QueryCoreHRPreHireRespItemPersonInfoNameSocial `json:"social,omitempty"` // 尊称, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: social- object_api_name: person_name + Title *QueryCoreHRPreHireRespItemPersonInfoNameTitle `json:"title,omitempty"` // 头衔, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: title- object_api_name: person_name LocalMiddleName string `json:"local_middle_name,omitempty"` // 本地中间名 LocalSecondary string `json:"local_secondary,omitempty"` // 第二姓氏 - 本地文字 DisplayNameLocalAndWesternScript string `json:"display_name_local_and_western_script,omitempty"` // 展示姓名(本地和西方文字) @@ -1563,292 +1563,292 @@ type QueryCorehrPreHireRespItemPersonInfoName struct { DisplayNameWesternScript string `json:"display_name_western_script,omitempty"` // 展示姓名(西方文字) } -// QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType ... -type QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameType ... +type QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoNameAdditionalNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoNameNameType ... -type QueryCorehrPreHireRespItemPersonInfoNameNameType struct { +// QueryCoreHRPreHireRespItemPersonInfoNameNameType ... +type QueryCoreHRPreHireRespItemPersonInfoNameNameType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoNameNameTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoNameNameTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoNameNameTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoNameNameTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoNameSocial ... -type QueryCorehrPreHireRespItemPersonInfoNameSocial struct { +// QueryCoreHRPreHireRespItemPersonInfoNameSocial ... +type QueryCoreHRPreHireRespItemPersonInfoNameSocial struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoNameSocialDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay ... -type QueryCorehrPreHireRespItemPersonInfoNameSocialDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoNameSocialDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoNameSocialDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoNameTitle ... -type QueryCorehrPreHireRespItemPersonInfoNameTitle struct { +// QueryCoreHRPreHireRespItemPersonInfoNameTitle ... +type QueryCoreHRPreHireRespItemPersonInfoNameTitle struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoNameTitleDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay ... -type QueryCorehrPreHireRespItemPersonInfoNameTitleDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoNameTitleDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoNameTitleDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoNationalID ... -type QueryCorehrPreHireRespItemPersonInfoNationalID struct { +// QueryCoreHRPreHireRespItemPersonInfoNationalID ... +type QueryCoreHRPreHireRespItemPersonInfoNationalID struct { NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型 NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码 IssueDate string `json:"issue_date,omitempty"` // 证件签发日期 ExpirationDate string `json:"expiration_date,omitempty"` // 证件到期日期 CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 IssuedBy string `json:"issued_by,omitempty"` // 证件签发机构 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField ... -type QueryCorehrPreHireRespItemPersonInfoNationalIDCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoNationalIDCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoNationalIDCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoPersonInfoChn ... -type QueryCorehrPreHireRespItemPersonInfoPersonInfoChn struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonInfoChn ... +type QueryCoreHRPreHireRespItemPersonInfoPersonInfoChn struct { NativeRegion string `json:"native_region,omitempty"` // 籍贯 ID, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取详情字段权限要求(满足任一): 获取籍贯信息读写籍贯信息 - HukouType *QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)户口类型(hukou_type)枚举定义获得字段权限要求(满足任一): 获取户口信息读写户口信息 + HukouType *QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType `json:"hukou_type,omitempty"` // 户口类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)户口类型(hukou_type)枚举定义获得字段权限要求(满足任一): 获取户口信息读写户口信息 HukouLocation string `json:"hukou_location,omitempty"` // 户口所在地字段权限要求(满足任一): 获取户口信息读写户口信息 - PoliticalAffiliations []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)政治面貌(political_affiliation)枚举定义获得字段权限要求: 获取政治面貌信息 + PoliticalAffiliations []*QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation `json:"political_affiliations,omitempty"` // 政治面貌, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)政治面貌(political_affiliation)枚举定义获得字段权限要求: 获取政治面貌信息 } -// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType ... -type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouType struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType ... +type QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnHukouTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation ... -type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation ... +type QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliation struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPersonInfoChnPoliticalAffiliationDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoPersonalProfile ... -type QueryCorehrPreHireRespItemPersonInfoPersonalProfile struct { - PersonalProfileType *QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: profile_type- object_api_name: personal_profile - Files []*QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile `json:"files,omitempty"` // 文件列表 +// QueryCoreHRPreHireRespItemPersonInfoPersonalProfile ... +type QueryCoreHRPreHireRespItemPersonInfoPersonalProfile struct { + PersonalProfileType *QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileType `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: profile_type- object_api_name: personal_profile + Files []*QueryCoreHRPreHireRespItemPersonInfoPersonalProfileFile `json:"files,omitempty"` // 文件列表 } -// QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile ... -type QueryCorehrPreHireRespItemPersonInfoPersonalProfileFile struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonalProfileFile ... +type QueryCoreHRPreHireRespItemPersonInfoPersonalProfileFile struct { ID string `json:"id,omitempty"` // 文件ID, 文件内容可通过[下载文件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get)接口获取 Name string `json:"name,omitempty"` // 文件名 } -// QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType ... -type QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileType struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileType ... +type QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPersonalProfilePersonalProfileTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoPhone ... -type QueryCorehrPreHireRespItemPersonInfoPhone struct { - InternationalAreaCode *QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 +// QueryCoreHRPreHireRespItemPersonInfoPhone ... +type QueryCoreHRPreHireRespItemPersonInfoPhone struct { + InternationalAreaCode *QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode `json:"international_area_code,omitempty"` // 国家区号, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)手机区号(international_area_code)枚举定义获得 PhoneNumber string `json:"phone_number,omitempty"` // 电话号码 FormattedPhoneNumber string `json:"formatted_phone_number,omitempty"` // 完整电话号码 - DeviceType *QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 - PhoneUsage *QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 + DeviceType *QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceType `json:"device_type,omitempty"` // 设备类型, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)设备类型(device_type)枚举定义获得 + PhoneUsage *QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsage `json:"phone_usage,omitempty"` // 电话用途, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电话用途(phone_usage)枚举定义获得 IsPrimary bool `json:"is_primary,omitempty"` // 主要电话 IsPublic bool `json:"is_public,omitempty"` // 公开电话 } -// QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType ... -type QueryCorehrPreHireRespItemPersonInfoPhoneDeviceType struct { +// QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceType ... +type QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPhoneDeviceTypeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceTypeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPhoneDeviceTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode ... -type QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCode struct { +// QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode ... +type QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCode struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPhoneInternationalAreaCodeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage ... -type QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsage struct { +// QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsage ... +type QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay ... -type QueryCorehrPreHireRespItemPersonInfoPhonePhoneUsageDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsageDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoPhonePhoneUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoRace ... -type QueryCorehrPreHireRespItemPersonInfoRace struct { +// QueryCoreHRPreHireRespItemPersonInfoRace ... +type QueryCoreHRPreHireRespItemPersonInfoRace struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoRaceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoRaceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoRaceDisplay ... -type QueryCorehrPreHireRespItemPersonInfoRaceDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoRaceDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoRaceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoReligion ... -type QueryCorehrPreHireRespItemPersonInfoReligion struct { +// QueryCoreHRPreHireRespItemPersonInfoReligion ... +type QueryCoreHRPreHireRespItemPersonInfoReligion struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoReligionDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoReligionDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoReligionDisplay ... -type QueryCorehrPreHireRespItemPersonInfoReligionDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoReligionDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoReligionDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoResidentTaxe ... -type QueryCorehrPreHireRespItemPersonInfoResidentTaxe struct { +// QueryCoreHRPreHireRespItemPersonInfoResidentTaxe ... +type QueryCoreHRPreHireRespItemPersonInfoResidentTaxe struct { YearResidentTax string `json:"year_resident_tax,omitempty"` // 年度 - ResidentStatus *QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus `json:"resident_status,omitempty"` // resident_status居民身份, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: resident_status- object_api_name: resident_tax + ResidentStatus *QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus `json:"resident_status,omitempty"` // resident_status居民身份, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: custom_api_name: resident_status- object_api_name: resident_tax TaxCountryRegionID string `json:"tax_country_region_id,omitempty"` // 国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获取详情 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取居民身份自定义字段信息读写居民身份自定义字段信息 } -// QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField ... -type QueryCorehrPreHireRespItemPersonInfoResidentTaxeCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoResidentTaxeCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名 Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05]) } -// QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus ... -type QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatus struct { +// QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus ... +type QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatus struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay ... -type QueryCorehrPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay struct { +// QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay ... +type QueryCoreHRPreHireRespItemPersonInfoResidentTaxeResidentStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperience ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperience struct { - CompanyOrganization []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 - Department []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment `json:"department,omitempty"` // 部门 - Job []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob `json:"job,omitempty"` // 岗位 - Description []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription `json:"description,omitempty"` // 工作描述 +// QueryCoreHRPreHireRespItemPersonInfoWorkExperience ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperience struct { + CompanyOrganization []*QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization `json:"company_organization,omitempty"` // 公司 / 组织 + Department []*QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment `json:"department,omitempty"` // 部门 + Job []*QueryCoreHRPreHireRespItemPersonInfoWorkExperienceJob `json:"job,omitempty"` // 岗位 + Description []*QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDescription `json:"description,omitempty"` // 工作描述 StartDate string `json:"start_date,omitempty"` // 开始日期, 时间格式为 2023-09-01 EndDate string `json:"end_date,omitempty"` // 结束日期, 时间格式为 2023-09-01 - CustomFields []*QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 + CustomFields []*QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCompanyOrganization struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCompanyOrganization struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomField struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomField struct { CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Name *QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomFieldName `json:"name,omitempty"` // 自定义字段名称 Type int64 `json:"type,omitempty"` // 自定义字段类型值类型说明: 1: 文本 Text, “文本”和“超链接”属于该类型- 2: 布尔 Boolean- 3: 数字 Number- 4: 枚举 Option, “单选”和“多选”为该类型- 5: 查找 Lookup, “人员(单选)”、“人员(多选)”和个人信息中的自定义分组为该类型- 6: 自动编码 Autonumber- 7: 日期时间 Datetime- 8: 附件 Attachment, “附件单选”和“附件多选”为该类型- 9: 图片 Image- 10: 计算字段 Calculated- 11: 反向查找 Backlookup Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同(如 123, 123.23, "true", ["id1", "id2"], "2006-01-02 15:04:05") } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceCustomFieldName struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomFieldName ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceDepartment struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDepartment struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceDescription struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDescription ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceDescription struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob ... -type QueryCorehrPreHireRespItemPersonInfoWorkExperienceJob struct { +// QueryCoreHRPreHireRespItemPersonInfoWorkExperienceJob ... +type QueryCoreHRPreHireRespItemPersonInfoWorkExperienceJob struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// QueryCorehrPreHireRespItemProbationInfo ... -type QueryCorehrPreHireRespItemProbationInfo struct { +// QueryCoreHRPreHireRespItemProbationInfo ... +type QueryCoreHRPreHireRespItemProbationInfo struct { ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期, 时间格式为 2023-09-01 ProbationEndDate string `json:"probation_end_date,omitempty"` // 试用期结束日期, 时间格式为 2023-09-01 ProbationPeriod int64 `json:"probation_period,omitempty"` // 试用期时长(单位: 天) } -// queryCorehrPreHireResp ... -type queryCorehrPreHireResp struct { +// queryCoreHRPreHireResp ... +type queryCoreHRPreHireResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrPreHireResp `json:"data,omitempty"` + Data *QueryCoreHRPreHireResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_restore_flow_instance.go b/api_corehr_pre_hire_restore_flow_instance.go index 20d2079a..6ae54677 100644 --- a/api_corehr_pre_hire_restore_flow_instance.go +++ b/api_corehr_pre_hire_restore_flow_instance.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateCorehrPreHireRestoreFlowInstance 通过本接口对指定已撤销的待入职员工执行恢复入职操作, 对应入职管理页面恢复入职按钮 +// RestoreCoreHRPreHireFlowInstance 通过本接口对指定已撤销的待入职员工执行恢复入职操作, 对应入职管理页面恢复入职按钮 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/restore_flow_instance // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/restore_flow_instance -func (r *CoreHRService) CreateCorehrPreHireRestoreFlowInstance(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPreHireRestoreFlowInstance != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireRestoreFlowInstance mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPreHireRestoreFlowInstance(ctx, request, options...) +func (r *CoreHRService) RestoreCoreHRPreHireFlowInstance(ctx context.Context, request *RestoreCoreHRPreHireFlowInstanceReq, options ...MethodOptionFunc) (*RestoreCoreHRPreHireFlowInstanceResp, *Response, error) { + if r.cli.mock.mockCoreHRRestoreCoreHRPreHireFlowInstance != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#RestoreCoreHRPreHireFlowInstance mock enable") + return r.cli.mock.mockCoreHRRestoreCoreHRPreHireFlowInstance(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPreHireRestoreFlowInstance", + API: "RestoreCoreHRPreHireFlowInstance", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/restore_flow_instance", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPreHireRestoreFlowInstanceResp) + resp := new(restoreCoreHRPreHireFlowInstanceResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPreHireRestoreFlowInstance mock CoreHRCreateCorehrPreHireRestoreFlowInstance method -func (r *Mock) MockCoreHRCreateCorehrPreHireRestoreFlowInstance(f func(ctx context.Context, request *CreateCorehrPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCorehrPreHireRestoreFlowInstanceResp, *Response, error)) { - r.mockCoreHRCreateCorehrPreHireRestoreFlowInstance = f +// MockCoreHRRestoreCoreHRPreHireFlowInstance mock CoreHRRestoreCoreHRPreHireFlowInstance method +func (r *Mock) MockCoreHRRestoreCoreHRPreHireFlowInstance(f func(ctx context.Context, request *RestoreCoreHRPreHireFlowInstanceReq, options ...MethodOptionFunc) (*RestoreCoreHRPreHireFlowInstanceResp, *Response, error)) { + r.mockCoreHRRestoreCoreHRPreHireFlowInstance = f } -// UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance un-mock CoreHRCreateCorehrPreHireRestoreFlowInstance method -func (r *Mock) UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance() { - r.mockCoreHRCreateCorehrPreHireRestoreFlowInstance = nil +// UnMockCoreHRRestoreCoreHRPreHireFlowInstance un-mock CoreHRRestoreCoreHRPreHireFlowInstance method +func (r *Mock) UnMockCoreHRRestoreCoreHRPreHireFlowInstance() { + r.mockCoreHRRestoreCoreHRPreHireFlowInstance = nil } -// CreateCorehrPreHireRestoreFlowInstanceReq ... -type CreateCorehrPreHireRestoreFlowInstanceReq struct { +// RestoreCoreHRPreHireFlowInstanceReq ... +type RestoreCoreHRPreHireFlowInstanceReq struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" ConfirmWorkforce *bool `json:"confirm_workforce,omitempty"` // 是否强制占编;true为强制占编;false为非强制占编示例值: false } -// CreateCorehrPreHireRestoreFlowInstanceResp ... -type CreateCorehrPreHireRestoreFlowInstanceResp struct { +// RestoreCoreHRPreHireFlowInstanceResp ... +type RestoreCoreHRPreHireFlowInstanceResp struct { Success bool `json:"success,omitempty"` // 是否成功恢复入职 } -// createCorehrPreHireRestoreFlowInstanceResp ... -type createCorehrPreHireRestoreFlowInstanceResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPreHireRestoreFlowInstanceResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// restoreCoreHRPreHireFlowInstanceResp ... +type restoreCoreHRPreHireFlowInstanceResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *RestoreCoreHRPreHireFlowInstanceResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_transform_onboarding_task.go b/api_corehr_pre_hire_transform_onboarding_task.go index 947f3f23..ab27e0d1 100644 --- a/api_corehr_pre_hire_transform_onboarding_task.go +++ b/api_corehr_pre_hire_transform_onboarding_task.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateCorehrPreHireTransformOnboardingTask 处于进行中的入职流程, 可通过本接口实现手动开启、提交或审批入职任务 +// TransformCoreHRPreHireOnboardingTask 处于进行中的入职流程, 可通过本接口实现手动开启、提交或审批入职任务 // // - 当任务处于「手动开启」时, 可通过本接口手动开启任务, 将任务状态流转到「进行中」 // - 当任务处于「进行中」时, 可通过本接口提交任务, 将任务流转到「审批中」或「已完成」 @@ -30,39 +30,39 @@ import ( // 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/transform_onboarding_task -func (r *CoreHRService) CreateCorehrPreHireTransformOnboardingTask(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPreHireTransformOnboardingTask != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireTransformOnboardingTask mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPreHireTransformOnboardingTask(ctx, request, options...) +func (r *CoreHRService) TransformCoreHRPreHireOnboardingTask(ctx context.Context, request *TransformCoreHRPreHireOnboardingTaskReq, options ...MethodOptionFunc) (*TransformCoreHRPreHireOnboardingTaskResp, *Response, error) { + if r.cli.mock.mockCoreHRTransformCoreHRPreHireOnboardingTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#TransformCoreHRPreHireOnboardingTask mock enable") + return r.cli.mock.mockCoreHRTransformCoreHRPreHireOnboardingTask(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPreHireTransformOnboardingTask", + API: "TransformCoreHRPreHireOnboardingTask", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/transform_onboarding_task", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPreHireTransformOnboardingTaskResp) + resp := new(transformCoreHRPreHireOnboardingTaskResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPreHireTransformOnboardingTask mock CoreHRCreateCorehrPreHireTransformOnboardingTask method -func (r *Mock) MockCoreHRCreateCorehrPreHireTransformOnboardingTask(f func(ctx context.Context, request *CreateCorehrPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransformOnboardingTaskResp, *Response, error)) { - r.mockCoreHRCreateCorehrPreHireTransformOnboardingTask = f +// MockCoreHRTransformCoreHRPreHireOnboardingTask mock CoreHRTransformCoreHRPreHireOnboardingTask method +func (r *Mock) MockCoreHRTransformCoreHRPreHireOnboardingTask(f func(ctx context.Context, request *TransformCoreHRPreHireOnboardingTaskReq, options ...MethodOptionFunc) (*TransformCoreHRPreHireOnboardingTaskResp, *Response, error)) { + r.mockCoreHRTransformCoreHRPreHireOnboardingTask = f } -// UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask un-mock CoreHRCreateCorehrPreHireTransformOnboardingTask method -func (r *Mock) UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask() { - r.mockCoreHRCreateCorehrPreHireTransformOnboardingTask = nil +// UnMockCoreHRTransformCoreHRPreHireOnboardingTask un-mock CoreHRTransformCoreHRPreHireOnboardingTask method +func (r *Mock) UnMockCoreHRTransformCoreHRPreHireOnboardingTask() { + r.mockCoreHRTransformCoreHRPreHireOnboardingTask = nil } -// CreateCorehrPreHireTransformOnboardingTaskReq ... -type CreateCorehrPreHireTransformOnboardingTaskReq struct { +// TransformCoreHRPreHireOnboardingTaskReq ... +type TransformCoreHRPreHireOnboardingTaskReq struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775407" TaskCode string `json:"task_code,omitempty"` // 任务标识码。- 对于系统内置的任务, 标识码与任务名称的对应关系如下所示: > 其中 创建账户SSO 为隐藏的任务节点, 在 个人信息 前自动执行。 - 1: 职位信息 - 2: 个人信息 - 3: 创建账户SSO - 4: 签到 - 9: 签署入职文件- 对于自定义的任务节点(如: 3095697a-065f-4627-a47c-46fe958a6754), 名称的获取方式如下所示: 1. 通过 `pre_hire_id` 调用[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口或[查询待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query) 2. 查询字段 `fields` 中添加 `onboarding_info.onboarding_task_list` 查询后返回的 onboarding_task_list 结构体中包含标识码和任务名字的对应关系, 示例如下所示: ```json{ "onboarding_task_list": [ { "task_code": "3095697a-065f-4627-a47c-46fe958a6754", "task_name": "修改入职日期", "task_status": "uninitialized" }, { "task_code": "d37b9d7c-232d-4a55-98fa-541318234ede", "task_name": "工签补充任务", "task_status": "uninitialized" } ]}```示例值: "27691344-699b-47fb-a352-7b41e992a536" TransformType string `json:"transform_type,omitempty"` // 流转类型, 当任务处于不同的状态时, 通过该字段指定任务做何种类型的流转。入职任务状态: uninitialized: 任务未初始化- not_started: 任务未开始- in_progress: 任务进行中- in_review: 任务审批中- rejected: 任务已拒绝- failed: 任务失败- skipped: 任务自动跳过- completed: 任务完成- exception: 任务异常- terminated: 任务终止- initiating: 任务发起中- manual_skipped: 任务手动跳过任务流转类型: manual_start_task: 手动开启任务> 当任务处于未开始状态时, 可通过指定该类型手动开启任务- submit_task: 提交任务> 当任务处于进行中和已拒绝时, 可以通过指定该类型提交任务。创建账户(`task_code: 3`)、签到(`task_code: 4`)和电子签(`task_code: 9`)任务不支持提交- review_task: 审批任务> 当任务处于审批中时, 可以通过指定该类型审批任务。通过本接口审批任务时, 会忽略多个审批人审批的场景。示例值: "review_task" @@ -70,15 +70,15 @@ type CreateCorehrPreHireTransformOnboardingTaskReq struct { Reason *string `json:"reason,omitempty"` // 审批原因, 审批任务时, 如果`review_decision`传参为`approve`时, 审批原因可以不填;如果`review_decision`传参为`reject`时, 审批原因必填。> 审批原因长度需小于3000字节示例值: "信息填写完整, 允许通过" } -// CreateCorehrPreHireTransformOnboardingTaskResp ... -type CreateCorehrPreHireTransformOnboardingTaskResp struct { +// TransformCoreHRPreHireOnboardingTaskResp ... +type TransformCoreHRPreHireOnboardingTaskResp struct { Success bool `json:"success,omitempty"` // 是否成功流转任务, 流转成功时返回true, 流转失败时返回false } -// createCorehrPreHireTransformOnboardingTaskResp ... -type createCorehrPreHireTransformOnboardingTaskResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPreHireTransformOnboardingTaskResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// transformCoreHRPreHireOnboardingTaskResp ... +type transformCoreHRPreHireOnboardingTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *TransformCoreHRPreHireOnboardingTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_transit_task.go b/api_corehr_pre_hire_transit_task.go index 4ea95f93..c4fa8247 100644 --- a/api_corehr_pre_hire_transit_task.go +++ b/api_corehr_pre_hire_transit_task.go @@ -21,58 +21,58 @@ import ( "context" ) -// CreateCorehrPreHireTransitTask 配置入职流程后, 可通过本接口流转进行中的任务 +// TransitCoreHRPreHireTask 配置入职流程后, 可通过本接口流转进行中的任务 // // 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/transit_task // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/transit_task -func (r *CoreHRService) CreateCorehrPreHireTransitTask(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPreHireTransitTask != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireTransitTask mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPreHireTransitTask(ctx, request, options...) +func (r *CoreHRService) TransitCoreHRPreHireTask(ctx context.Context, request *TransitCoreHRPreHireTaskReq, options ...MethodOptionFunc) (*TransitCoreHRPreHireTaskResp, *Response, error) { + if r.cli.mock.mockCoreHRTransitCoreHRPreHireTask != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#TransitCoreHRPreHireTask mock enable") + return r.cli.mock.mockCoreHRTransitCoreHRPreHireTask(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPreHireTransitTask", + API: "TransitCoreHRPreHireTask", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id/transit_task", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPreHireTransitTaskResp) + resp := new(transitCoreHRPreHireTaskResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPreHireTransitTask mock CoreHRCreateCorehrPreHireTransitTask method -func (r *Mock) MockCoreHRCreateCorehrPreHireTransitTask(f func(ctx context.Context, request *CreateCorehrPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCorehrPreHireTransitTaskResp, *Response, error)) { - r.mockCoreHRCreateCorehrPreHireTransitTask = f +// MockCoreHRTransitCoreHRPreHireTask mock CoreHRTransitCoreHRPreHireTask method +func (r *Mock) MockCoreHRTransitCoreHRPreHireTask(f func(ctx context.Context, request *TransitCoreHRPreHireTaskReq, options ...MethodOptionFunc) (*TransitCoreHRPreHireTaskResp, *Response, error)) { + r.mockCoreHRTransitCoreHRPreHireTask = f } -// UnMockCoreHRCreateCorehrPreHireTransitTask un-mock CoreHRCreateCorehrPreHireTransitTask method -func (r *Mock) UnMockCoreHRCreateCorehrPreHireTransitTask() { - r.mockCoreHRCreateCorehrPreHireTransitTask = nil +// UnMockCoreHRTransitCoreHRPreHireTask un-mock CoreHRTransitCoreHRPreHireTask method +func (r *Mock) UnMockCoreHRTransitCoreHRPreHireTask() { + r.mockCoreHRTransitCoreHRPreHireTask = nil } -// CreateCorehrPreHireTransitTaskReq ... -type CreateCorehrPreHireTransitTaskReq struct { +// TransitCoreHRPreHireTaskReq ... +type TransitCoreHRPreHireTaskReq struct { PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可从[待入职列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获取示例值: "7345005664477775407" TaskID string `json:"task_id,omitempty"` // 任务标识码。- 对于系统内置的任务, 标识码与任务名称的对应关系如下所示: > 其中 创建账户SSO 为隐藏的任务节点, 在 个人信息 前自动执行。 - 1: 职位信息 - 2: 个人信息 - 3: 创建账户SSO - 4: 签到 - 9: 签署入职文件- 对于自定义的任务节点(如: 3095697a-065f-4627-a47c-46fe958a6754), 名称的获取方式如下所示: 1. 通过 `pre_hire_id` 调用[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口或[查询待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query) 2. 查询字段 `fields` 中添加 `onboarding_info.onboarding_task_list` 查询后返回的 onboarding_task_list 结构体中包含标识码和任务名字的对应关系, 示例如下所示: ```json{ "onboarding_task_list": [ { "task_code": "3095697a-065f-4627-a47c-46fe958a6754", "task_name": "修改入职日期", "task_status": "uninitialized" }, { "task_code": "d37b9d7c-232d-4a55-98fa-541318234ede", "task_name": "工签补充任务", "task_status": "uninitialized" } ]}```示例值: "1" } -// CreateCorehrPreHireTransitTaskResp ... -type CreateCorehrPreHireTransitTaskResp struct { +// TransitCoreHRPreHireTaskResp ... +type TransitCoreHRPreHireTaskResp struct { Success bool `json:"success,omitempty"` // 是否成功流转任务 } -// createCorehrPreHireTransitTaskResp ... -type createCorehrPreHireTransitTaskResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPreHireTransitTaskResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// transitCoreHRPreHireTaskResp ... +type transitCoreHRPreHireTaskResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *TransitCoreHRPreHireTaskResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_update.go b/api_corehr_pre_hire_update.go index 6da65213..31ee9114 100644 --- a/api_corehr_pre_hire_update.go +++ b/api_corehr_pre_hire_update.go @@ -21,12 +21,12 @@ import ( "context" ) -// UpdateCoreHRPreHire 更新待入职信息接口, 本接口只是会更新待入职数据, 不会校验数据规则, 推荐使用新接口[【更新待入职信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/patch)。 +// UpdateCoreHRPreHire 通过指定系统字段和自定义字段以更新待入职数据 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/pre_hire/patch -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/pre_hire/patch +// 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 // -// Deprecated +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/patch +// new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/patch func (r *CoreHRService) UpdateCoreHRPreHire(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) { if r.cli.mock.mockCoreHRUpdateCoreHRPreHire != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPreHire mock enable") @@ -37,7 +37,7 @@ func (r *CoreHRService) UpdateCoreHRPreHire(ctx context.Context, request *Update Scope: "CoreHR", API: "UpdateCoreHRPreHire", Method: "PATCH", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/pre_hires/:pre_hire_id", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -60,94 +60,491 @@ func (r *Mock) UnMockCoreHRUpdateCoreHRPreHire() { // UpdateCoreHRPreHireReq ... type UpdateCoreHRPreHireReq struct { - PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID示例值: "1616161616" - ClientToken *string `query:"client_token" json:"-"` // 根据client_token是否一致来判断是否为同一请求示例值: 12454646 - AtsApplicationID *string `json:"ats_application_id,omitempty"` // 招聘投递 ID, 详细信息可以通过招聘的【获取投递信息】接口查询获得(仅部分租户可用)示例值: "4719168654814483759" - HireDate *string `json:"hire_date,omitempty"` // 入职日期示例值: "2020-01-01" - EmployeeType *UpdateCoreHRPreHireReqEmployeeType `json:"employee_type,omitempty"` // 雇佣类型 - WorkerID *string `json:"worker_id,omitempty"` // 人员编号示例值: "1245646" - EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 雇佣类型示例值: "正式" - PersonID *string `json:"person_id,omitempty"` // 引用Person ID示例值: "656464648662" - CustomFields []*UpdateCoreHRPreHireReqCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CostCenterRate []*UpdateCoreHRPreHireReqCostCenterRate `json:"cost_center_rate,omitempty"` // 成本中心分摊信息 - OnboardingStatus *UpdateCoreHRPreHireReqOnboardingStatus `json:"onboarding_status,omitempty"` // 入职状态- 待入职(preboarding)- 已删除(deleted)- 准备就绪(day_one)- 已撤销(withdrawn)- 已完成(completed) -} - -// UpdateCoreHRPreHireReqCostCenterRate ... -type UpdateCoreHRPreHireReqCostCenterRate struct { - CostCenterID *string `json:"cost_center_id,omitempty"` // 支持的成本中心id示例值: "6950635856373745165" - Rate *int64 `json:"rate,omitempty"` // 分摊比例示例值: 100 -} - -// UpdateCoreHRPreHireReqCustomField ... -type UpdateCoreHRPreHireReqCustomField struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775411" + BasicInfoUpdate *UpdateCoreHRPreHireReqBasicInfoUpdate `json:"basic_info_update,omitempty"` // 更新个人(person)信息 + OfferInfoUpdate *UpdateCoreHRPreHireReqOfferInfoUpdate `json:"offer_info_update,omitempty"` // 更新待入职(prehire)信息 + StandardUpdateFields []string `json:"standard_update_fields,omitempty"` // 指定需要更新的系统字段, 只支持最多下钻一层, 格式如下: basic_info_update字段: basic_info_update.names(对name整体进行覆盖更新);basic_info_update.emails(对邮箱整体进行更新) - offer_info_update字段: offer_info_update.onboarding_method注意, 如果指定了要更新的系统字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["basic_info_update.names"] + CustomUpdateFields []string `json:"custom_update_fields,omitempty"` // 指定需要更新的pre_hire对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] + PersonCustomUpdateFields []string `json:"person_custom_update_fields,omitempty"` // 指定需要更新的person对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] +} + +// UpdateCoreHRPreHireReqBasicInfoUpdate ... +type UpdateCoreHRPreHireReqBasicInfoUpdate struct { + Names []*UpdateCoreHRPreHireReqBasicInfoUpdateName `json:"names,omitempty"` // 姓名, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Phones []*UpdateCoreHRPreHireReqBasicInfoUpdatePhone `json:"phones,omitempty"` // 电话, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Emails []*UpdateCoreHRPreHireReqBasicInfoUpdateEmail `json:"emails,omitempty"` // 邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + NationalityV2ID *string `json:"nationality_v2_id,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914824" + AdditionalNationalityIDList []string `json:"additional_nationality_id_list,omitempty"` // 其他国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: ["6862995757234914824"] + ResidentTaxList []*UpdateCoreHRPreHireReqBasicInfoUpdateResidentTax `json:"resident_tax_list,omitempty"` // 纳税身份信息, 该值是一个list, 会全量更新 + BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true + DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "身份证号+残疾类型(1-7)+ 残疾程度分级(1-4)+[补发编号]" + IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true + IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true + MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "00001" + DependentList []*UpdateCoreHRPreHireReqBasicInfoUpdateDependent `json:"dependent_list,omitempty"` // 家庭成员 + Religion *string `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: religion示例值: "buddism" + BankAccountList []*UpdateCoreHRPreHireReqBasicInfoUpdateBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPreHireReqBasicInfoUpdateNationalID `json:"national_id_list,omitempty"` // 证件账号 + PersonalProfileList []*UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfile `json:"personal_profile_list,omitempty"` // 个人资料 + EmergencyContactList []*UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人 + AddressList []*UpdateCoreHRPreHireReqBasicInfoUpdateAddress `json:"address_list,omitempty"` // 联系地址 + MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: marital_status示例值: "single" + EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: ethnicity_race示例值: "han" + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + NativeRegion *string `json:"native_region,omitempty"` // 籍贯, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6862995757234914824" + HukouType *string `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person_info_chn- custom_api_name: hukou_type示例值: "local_urban_residence" + HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京市海淀区北三环西路" + GenderID *string `json:"gender_id,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2011-99-99" + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2100-09-09" + ExpectedGraduateDate *string `json:"expected_graduate_date,omitempty"` // 预计毕业日期示例值: "2023-01-10" + CitizenshipStatusIDList []string `json:"citizenship_status_id_list,omitempty"` // 公民身份示例值: ["6862995757234914824"] + WorkExperience []*UpdateCoreHRPreHireReqBasicInfoUpdateWorkExperience `json:"work_experience,omitempty"` // 工作履历 + EducationInfo []*UpdateCoreHRPreHireReqBasicInfoUpdateEducationInfo `json:"education_info,omitempty"` // 教育经历 +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateAddress ... +type UpdateCoreHRPreHireReqBasicInfoUpdateAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateBankAccount ... +type UpdateCoreHRPreHireReqBasicInfoUpdateBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200xxxx01223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区 ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995745889322510" + BankAccountUsages []string `json:"bank_account_usages,omitempty"` // 银行卡用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_usage示例值: ["payment"] 长度范围: `0` ~ `100` + BankAccountType *string `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_type示例值: "checking" + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateBankAccountCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05")示例值: "\"Sandy\"" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCoreHRPreHireReqEmployeeType ... -type UpdateCoreHRPreHireReqEmployeeType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +// UpdateCoreHRPreHireReqBasicInfoUpdateCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05)示例值: "Sandy" } -// UpdateCoreHRPreHireReqOnboardingStatus ... -type UpdateCoreHRPreHireReqOnboardingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值示例值: "type_1" +// UpdateCoreHRPreHireReqBasicInfoUpdateDependent ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependent struct { + Relationship string `json:"relationship,omitempty"` // 关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: relationship_with_dependent示例值: "parent" + Gender *string `json:"gender,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalIDs []string `json:"national_ids,omitempty"` // 证件号码 长度范围: `1` ~ `1000` + SpousesWorkingStatus *string `json:"spouses_working_status,omitempty"` // 配偶工作状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: spouses_working_status示例值: "working" + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "王冰" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位信息描述示例值: "保安" + Phone *UpdateCoreHRPreHireReqBasicInfoUpdateDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCoreHRPreHireReqBasicInfoUpdateDependentAddress `json:"address,omitempty"` // 联系地址 + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPreHireResp ... -type UpdateCoreHRPreHireResp struct { - PreHire *UpdateCoreHRPreHireRespPreHire `json:"pre_hire,omitempty"` // 待入职数据 +// UpdateCoreHRPreHireReqBasicInfoUpdateDependentAddress ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependentAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateDependentCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependentCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateDependentNationalID ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependentNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333xxxx222" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateDependentNationalIDCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependentNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateDependentPhone ... +type UpdateCoreHRPreHireReqBasicInfoUpdateDependentPhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: phone_usage示例值: "home" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEducationInfo ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEducationInfo struct { + SchoolName *string `json:"school_name,omitempty"` // 学校名称示例值: "长安大学" + Education *string `json:"education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得示例值: "phd" + StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2017-04-01" + EndTime *string `json:"end_time,omitempty"` // 结束时间示例值: "2018-04-01" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "医学影像技术" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmail ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContact ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContact struct { + LegalName *string `json:"legal_name,omitempty"` // 紧急联系人姓名示例值: "王冰" + Relationship *string `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: emergency_contact- custom_api_name: relationship示例值: "parent" + Phones []*UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactPhone `json:"phones,omitempty"` // 电话 长度范围: `0` ~ `1000` + Address *UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactAddress `json:"address,omitempty"` // 地址 + Email *UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactEmail `json:"email,omitempty"` // 邮箱 + IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true示例值: true + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactAddress ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactEmail ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: email- custom_api_name: email_usage示例值: "work" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactPhone ... +type UpdateCoreHRPreHireReqBasicInfoUpdateEmergencyContactPhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: phone_usage示例值: "home" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateName ... +type UpdateCoreHRPreHireReqBasicInfoUpdateName struct { + FullName *string `json:"full_name,omitempty"` // 全名示例值: "李一一" + FirstName *string `json:"first_name,omitempty"` // 名示例值: "一" + MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "一" + NamePrimary *string `json:"name_primary,omitempty"` // 姓示例值: "李" + LocalFirstName *string `json:"local_first_name,omitempty"` // 名 - 本地文字示例值: "一" + LocalMiddleName *string `json:"local_middle_name,omitempty"` // 本地中间名示例值: "一" + LocalPrimary *string `json:"local_primary,omitempty"` // 姓 - 本地文字示例值: "李" + CustomLocalName *string `json:"custom_local_name,omitempty"` // 自定义姓名(本地文字)示例值: "李一一" + CustomWesternName *string `json:"custom_western_name,omitempty"` // 自定义姓名(西方文字)示例值: "YiyiLi" + CountryRegion string `json:"country_region,omitempty"` // 国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + NameType string `json:"name_type,omitempty"` // 姓名类型, 枚举值如下: legal_name: 法定姓名- preferred_name: 常用名- former_name: 曾用名- additional_name: 别名示例值: "legal_name" + AdditionalName *string `json:"additional_name,omitempty"` // 别名示例值: "别名" } -// UpdateCoreHRPreHireRespPreHire ... -type UpdateCoreHRPreHireRespPreHire struct { - AtsApplicationID string `json:"ats_application_id,omitempty"` // 招聘投递 ID, 详细信息可以通过招聘的【获取投递信息】接口查询获得 - ID string `json:"id,omitempty"` // 待入职ID - HireDate string `json:"hire_date,omitempty"` // 入职日期 - EmployeeType *UpdateCoreHRPreHireRespPreHireEmployeeType `json:"employee_type,omitempty"` // 雇佣类型 - WorkerID string `json:"worker_id,omitempty"` // 人员编号 - EmployeeTypeID string `json:"employee_type_id,omitempty"` // 雇佣类型 - PersonID string `json:"person_id,omitempty"` // 引用Person ID - CustomFields []*UpdateCoreHRPreHireRespPreHireCustomField `json:"custom_fields,omitempty"` // 自定义字段 - CostCenterRate []*UpdateCoreHRPreHireRespPreHireCostCenterRate `json:"cost_center_rate,omitempty"` // 成本中心分摊信息 - OnboardingStatus *UpdateCoreHRPreHireRespPreHireOnboardingStatus `json:"onboarding_status,omitempty"` // 入职状态- 待入职(preboarding)- 已删除(deleted)- 准备就绪(day_one)- 已撤销(withdrawn)- 已完成(completed) +// UpdateCoreHRPreHireReqBasicInfoUpdateNationalID ... +type UpdateCoreHRPreHireReqBasicInfoUpdateNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCoreHRPreHireRespPreHireCostCenterRate ... -type UpdateCoreHRPreHireRespPreHireCostCenterRate struct { - CostCenterID string `json:"cost_center_id,omitempty"` // 支持的成本中心id - Rate int64 `json:"rate,omitempty"` // 分摊比例 +// UpdateCoreHRPreHireReqBasicInfoUpdateNationalIDCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateNationalIDCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfile ... +type UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfile struct { + PersonalProfileType *string `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: personal_profile- custom_api_name: profile_type示例值: "profile_type_1_101_101011" + Files []*UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfileFile `json:"files,omitempty"` // 资料文件列表 长度范围: `0` ~ `1000` +} + +// UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfileFile ... +type UpdateCoreHRPreHireReqBasicInfoUpdatePersonalProfileFile struct { + ID *string `json:"id,omitempty"` // 文件ID, 通过[上传文件](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口上传文件后, 获取文件ID示例值: "6655aa1b2ec326f983b91f9d_f9974583040c4b05ae71f92f5df16bbc" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdatePhone ... +type UpdateCoreHRPreHireReqBasicInfoUpdatePhone struct { + InternationalAreaCode string `json:"international_area_code,omitempty"` // 电话区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = international_area_code示例值: "86_china" + PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1234" + DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = device_type示例值: "mobile_phone" + PhoneUsage string `json:"phone_usage,omitempty"` // 电话用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = phone_usage示例值: "work" + IsPrimary bool `json:"is_primary,omitempty"` // 主要电话, 若有多个电话, 只能有一个电话的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateResidentTax ... +type UpdateCoreHRPreHireReqBasicInfoUpdateResidentTax struct { + TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份示例值: "tax_residence" + TaxAddress *UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxTaxAddress `json:"tax_address,omitempty"` // 纳税地址 + ResidentStatusSpecification *string `json:"resident_status_specification,omitempty"` // 居民纳税身份说明示例值: "文本内容, 对纳税身份的补充说明信息" + YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度示例值: "2006-01-01" + CustomFields []*UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxCustomField ... +type UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxTaxAddress ... +type UpdateCoreHRPreHireReqBasicInfoUpdateResidentTaxTaxAddress struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" + LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" + LocalAddressLine2 *string `json:"local_address_line2,omitempty"` // 地址行 2(非拉丁语系的本地文字)示例值: "上海市杨浦区" + LocalAddressLine3 *string `json:"local_address_line3,omitempty"` // 地址行 3(非拉丁语系的本地文字)示例值: "北京市房山区" + LocalAddressLine4 *string `json:"local_address_line4,omitempty"` // 地址行 4(非拉丁语系的本地文字)示例值: "天津滨海高新区" + LocalAddressLine5 *string `json:"local_address_line5,omitempty"` // 地址行 5(非拉丁语系的本地文字)示例值: "成都市成华区" + LocalAddressLine6 *string `json:"local_address_line6,omitempty"` // 地址行 6(非拉丁语系的本地文字)示例值: "深圳市南山区" + LocalAddressLine7 *string `json:"local_address_line7,omitempty"` // 地址行 7(非拉丁语系的本地文字)示例值: "南京市鼓楼区" + LocalAddressLine8 *string `json:"local_address_line8,omitempty"` // 地址行 8(非拉丁语系的本地文字)示例值: "杭州市滨江区" + LocalAddressLine9 *string `json:"local_address_line9,omitempty"` // 地址行 9(非拉丁语系的本地文字)示例值: "郑州市中原区" + PostalCode *string `json:"postal_code,omitempty"` // 邮政编码示例值: "611530" + AddressTypes []string `json:"address_types,omitempty"` // 地址类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: address- custom_api_name: address_type示例值: ["home_address"] 长度范围: `1` ~ `1000` + IsPrimary bool `json:"is_primary,omitempty"` // 主要地址示例值: true + IsPublic bool `json:"is_public,omitempty"` // 公开地址示例值: true + CityIDV2 *string `json:"city_id_v2,omitempty"` // 城市, 可以通过接口[查询城市信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-city/search)获取详情示例值: "6863333254578046471" + DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县, 可以通过接口[查询区/县信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)获取详情示例值: "6863333516579440141" +} + +// UpdateCoreHRPreHireReqBasicInfoUpdateWorkExperience ... +type UpdateCoreHRPreHireReqBasicInfoUpdateWorkExperience struct { + CompanyName *string `json:"company_name,omitempty"` // 公司名称示例值: "猎豹" + StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2015-02-01" + EndTime *string `json:"end_time,omitempty"` // 结束时间示例值: "2017-02-01" + JobTitle *string `json:"job_title,omitempty"` // 岗位示例值: "产品经理" + Description *string `json:"description,omitempty"` // 工作描述示例值: "app" + Department *string `json:"department,omitempty"` // 部门示例值: "部门名称" +} + +// UpdateCoreHRPreHireReqOfferInfoUpdate ... +type UpdateCoreHRPreHireReqOfferInfoUpdate struct { + OnboardingDate *string `json:"onboarding_date,omitempty"` // 入职日期示例值: "2022-10-08" + AtsApplicationID *string `json:"ats_application_id,omitempty"` // 招聘应用 ID, 仅支持飞书招聘 ID, 可以通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "7140946969586010376" + OnboardingLocationID *string `json:"onboarding_location_id,omitempty"` // 入职地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OnboardingAddressID *string `json:"onboarding_address_id,omitempty"` // 入职地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OfficeLocationID *string `json:"office_location_id,omitempty"` // 办公地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + OfficeAddressID *string `json:"office_address_id,omitempty"` // 办公地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + EmploymentType *string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type示例值: "employee" + OnboardingMethod *string `json:"onboarding_method,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = onboarding_method示例值: "onsite" + WorkEmails []*UpdateCoreHRPreHireReqOfferInfoUpdateWorkEmail `json:"work_emails,omitempty"` // 工作邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + CostCenterRates []*UpdateCoreHRPreHireReqOfferInfoUpdateCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + CustomFields []*UpdateCoreHRPreHireReqOfferInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + PositionID *string `json:"position_id,omitempty"` // 岗位id, 如需获取具体值, 请联系人员档案管理员示例值: "697797668735092768" + ProbationPeriod *int64 `json:"probation_period,omitempty"` // 试用期时长示例值: 6 + ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期, 格式: "YYYY-MM-DD"示例值: "2022-07-29" + ProbationEndDate *string `json:"probation_end_date,omitempty"` // 试用期结束日期, 格式: "YYYY-MM-DD"示例值: "2023-04-07" + ContractStartDate *string `json:"contract_start_date,omitempty"` // 合同开始日期, 格式: "YYYY-MM-DD"示例值: "2022-10-08" + ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期, 格式: "YYYY-MM-DD"示例值: "2025-10-07" + ContractType *string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: contract_type示例值: "internship_agreement" + DurationTypeID *string `json:"duration_type_id,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: duration_type示例值: "fixed_term" + SigningTypeID *string `json:"signing_type_id,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: signing_type示例值: "new" + WorkerID *string `json:"worker_id,omitempty"` // 工号示例值: "DDD00001" + CheckInTime *string `json:"check_in_time,omitempty"` // 签到日期, 格式: "YYYY-MM-DD"示例值: "2024-12-31" + CheckInMethod *string `json:"check_in_method,omitempty"` // 签到方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: onboarding_method示例值: "onsite" + Company *string `json:"company,omitempty"` // 公司主体, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + WorkShift *string `json:"work_shift,omitempty"` // 排班, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = work_shift示例值: "work_shift" + RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 招聘类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type示例值: "experienced_professionals" + CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = compensation_type示例值: "hourly" + PayGroupID *string `json:"pay_group_id,omitempty"` // 薪资组, 如需获取具体值, 请联系人员档案管理员示例值: "6977976687350924833" + OfferHRID *string `json:"offer_hr_id,omitempty"` // Offer HR 雇佣ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + JobID *string `json:"job_id,omitempty"` // 职务 ID, 可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6977976735715378724" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6977972856625939999" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6977971894960145950" + JobGradeID *string `json:"job_grade_id,omitempty"` // 职等ID, 可以通过[查询职等](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "6738317738688661772" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过接口[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6977973225846343171" + EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型示例值: "xxx" + DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "xxx" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "7147562782945478177" + SocialSecurityCity *string `json:"social_security_city,omitempty"` // 社保城市ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkingCalendar *string `json:"working_calendar,omitempty"` // 工作日历, 可以通过[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得示例值: "6890452208593372141" + WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度, 可以通过[批量查询工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获得示例值: "6890452208593372679" + SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期示例值: "2022-10-08" + SeniorityAdjustInformationList []*UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodProbationInvoluntary *UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveVoluntary *UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveInvoluntary *UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + ConditionWorker *bool `json:"condition_worker,omitempty"` // 是否外部人员示例值: true + CompanySponsoredVisa *bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证示例值: true + WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长(单位: 小时)示例值: 8.5 + WorkStation *string `json:"work_station,omitempty"` // 工位示例值: "5-1-2" + ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + NonCompeteCovenant *bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款示例值: true + Pathway *string `json:"pathway,omitempty"` // 通道示例值: "7460865381179115052" + DefaultCostCenter *UpdateCoreHRPreHireReqOfferInfoUpdateDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReuseFeishuAccount *string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号, 支持传入“reuse”或者“not_resue”, 当字段为“reuse”时, 需要传入reused_feishu_account_id- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "reuse" + ReusedFeishuAccountID *string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 仅支持Lark Union ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/search)接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "on_773dd2c4d14c5c980a4d89a2da5c86d3" +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocation ... +type UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocation struct { + EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" + CostCenterRates []*UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocationCostCenterRate ... +type UpdateCoreHRPreHireReqOfferInfoUpdateCostAllocationCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateCostCenterRate ... +type UpdateCoreHRPreHireReqOfferInfoUpdateCostCenterRate struct { + CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + Rate *int64 `json:"rate,omitempty"` // 分摊比例, 大于0小于等于100的正整数示例值: 100 + NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateCustomField ... +type UpdateCoreHRPreHireReqOfferInfoUpdateCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 该值是一个 string list 经转义后的字符串, 具体参考请求体示例示例值: "[\"Sandy\"]" +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateDefaultCostCenter ... +type UpdateCoreHRPreHireReqOfferInfoUpdateDefaultCostCenter struct { + CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" + IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心示例值: false } -// UpdateCoreHRPreHireRespPreHireCustomField ... -type UpdateCoreHRPreHireRespPreHireCustomField struct { - FieldName string `json:"field_name,omitempty"` // 字段名 - Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(如123, 123.23, "true", [\"id1\", \"id2\"], "2006-01-02 15:04:05") +// UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary ... +type UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCoreHRPreHireRespPreHireEmployeeType ... -type UpdateCoreHRPreHireRespPreHireEmployeeType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPreHireRespPreHireEmployeeTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary ... +type UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCoreHRPreHireRespPreHireEmployeeTypeDisplay ... -type UpdateCoreHRPreHireRespPreHireEmployeeTypeDisplay struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言 - Value string `json:"value,omitempty"` // 名称信息的内容 +// UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary ... +type UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCoreHRPreHireRespPreHireOnboardingStatus ... -type UpdateCoreHRPreHireRespPreHireOnboardingStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*UpdateCoreHRPreHireRespPreHireOnboardingStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary ... +type UpdateCoreHRPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary struct { + WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" + Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` + ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCoreHRPreHireRespPreHireOnboardingStatusDisplay ... -type UpdateCoreHRPreHireRespPreHireOnboardingStatusDisplay struct { - Lang string `json:"lang,omitempty"` // 名称信息的语言 - Value string `json:"value,omitempty"` // 名称信息的内容 +// UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformation ... +type UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformation struct { + SeniorityAdjustment *float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年- 自动计算逻辑: 如果这个值为空, 司龄调整的开始日期和结束日期均不为空, 会自动计算出调整值示例值: 0.5 取值范围: `0` ~ `100` + SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "增加"可选值有: 减少增加 + ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因示例值: "工厂停产需要减去半年工龄" + StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-05-19" + EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-11-18" + CustomFields []*UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField ... +type UpdateCoreHRPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField struct { + FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" + Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" +} + +// UpdateCoreHRPreHireReqOfferInfoUpdateWorkEmail ... +type UpdateCoreHRPreHireReqOfferInfoUpdateWorkEmail struct { + Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" + IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true + IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true + EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" +} + +// UpdateCoreHRPreHireResp ... +type UpdateCoreHRPreHireResp struct { + PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID } // updateCoreHRPreHireResp ... diff --git a/api_corehr_pre_hire_update_v2.go b/api_corehr_pre_hire_update_v2.go index 225e5579..9fbb911d 100644 --- a/api_corehr_pre_hire_update_v2.go +++ b/api_corehr_pre_hire_update_v2.go @@ -21,91 +21,91 @@ import ( "context" ) -// UpdateCorehrPreHire 通过指定系统字段和自定义字段以更新待入职数据 +// UpdateCoreHRPreHireV2 通过指定系统字段和自定义字段以更新待入职数据 // // 该接口会按照应用拥有的「待入职人员」的权限范围返回数据, 请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/patch // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/patch -func (r *CoreHRService) UpdateCorehrPreHire(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrPreHire != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrPreHire mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrPreHire(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRPreHireV2(ctx context.Context, request *UpdateCoreHRPreHireV2Req, options ...MethodOptionFunc) (*UpdateCoreHRPreHireV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRPreHireV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRPreHireV2 mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRPreHireV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrPreHire", + API: "UpdateCoreHRPreHireV2", Method: "PATCH", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/:pre_hire_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrPreHireResp) + resp := new(updateCoreHRPreHireV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrPreHire mock CoreHRUpdateCorehrPreHire method -func (r *Mock) MockCoreHRUpdateCorehrPreHire(f func(ctx context.Context, request *UpdateCorehrPreHireReq, options ...MethodOptionFunc) (*UpdateCorehrPreHireResp, *Response, error)) { - r.mockCoreHRUpdateCorehrPreHire = f -} - -// UnMockCoreHRUpdateCorehrPreHire un-mock CoreHRUpdateCorehrPreHire method -func (r *Mock) UnMockCoreHRUpdateCorehrPreHire() { - r.mockCoreHRUpdateCorehrPreHire = nil -} - -// UpdateCorehrPreHireReq ... -type UpdateCorehrPreHireReq struct { - PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775411" - BasicInfoUpdate *UpdateCorehrPreHireReqBasicInfoUpdate `json:"basic_info_update,omitempty"` // 更新个人(person)信息 - OfferInfoUpdate *UpdateCorehrPreHireReqOfferInfoUpdate `json:"offer_info_update,omitempty"` // 更新待入职(prehire)信息 - StandardUpdateFields []string `json:"standard_update_fields,omitempty"` // 指定需要更新的系统字段, 只支持最多下钻一层, 格式如下: basic_info_update字段: basic_info_update.names(对name整体进行覆盖更新);basic_info_update.emails(对邮箱整体进行更新) - offer_info_update字段: offer_info_update.onboarding_method注意, 如果指定了要更新的系统字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["basic_info_update.names"] - CustomUpdateFields []string `json:"custom_update_fields,omitempty"` // 指定需要更新的pre_hire对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] - PersonCustomUpdateFields []string `json:"person_custom_update_fields,omitempty"` // 指定需要更新的person对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] -} - -// UpdateCorehrPreHireReqBasicInfoUpdate ... -type UpdateCorehrPreHireReqBasicInfoUpdate struct { - Names []*UpdateCorehrPreHireReqBasicInfoUpdateName `json:"names,omitempty"` // 姓名, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 - Phones []*UpdateCorehrPreHireReqBasicInfoUpdatePhone `json:"phones,omitempty"` // 电话, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 - Emails []*UpdateCorehrPreHireReqBasicInfoUpdateEmail `json:"emails,omitempty"` // 邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 - NationalityV2ID *string `json:"nationality_v2_id,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914824" - AdditionalNationalityIDList []string `json:"additional_nationality_id_list,omitempty"` // 其他国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: ["6862995757234914824"] - ResidentTaxList []*UpdateCorehrPreHireReqBasicInfoUpdateResidentTax `json:"resident_tax_list,omitempty"` // 纳税身份信息, 该值是一个list, 会全量更新 - BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" - IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true - DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "身份证号+残疾类型(1-7)+ 残疾程度分级(1-4)+[补发编号]" - IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true - IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true - MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "00001" - DependentList []*UpdateCorehrPreHireReqBasicInfoUpdateDependent `json:"dependent_list,omitempty"` // 家庭成员 - Religion *string `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: religion示例值: "buddism" - BankAccountList []*UpdateCorehrPreHireReqBasicInfoUpdateBankAccount `json:"bank_account_list,omitempty"` // 银行账号 - NationalIDList []*UpdateCorehrPreHireReqBasicInfoUpdateNationalID `json:"national_id_list,omitempty"` // 证件账号 - PersonalProfileList []*UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile `json:"personal_profile_list,omitempty"` // 个人资料 - EmergencyContactList []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人 - AddressList []*UpdateCorehrPreHireReqBasicInfoUpdateAddress `json:"address_list,omitempty"` // 联系地址 - MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: marital_status示例值: "single" - EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: ethnicity_race示例值: "han" - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 - NativeRegion *string `json:"native_region,omitempty"` // 籍贯, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6862995757234914824" - HukouType *string `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person_info_chn- custom_api_name: hukou_type示例值: "local_urban_residence" - HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京市海淀区北三环西路" - GenderID *string `json:"gender_id,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" - DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2011-99-99" - DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2100-09-09" - ExpectedGraduateDate *string `json:"expected_graduate_date,omitempty"` // 预计毕业日期示例值: "2023-01-10" - CitizenshipStatusIDList []string `json:"citizenship_status_id_list,omitempty"` // 公民身份示例值: ["6862995757234914824"] - WorkExperience []*UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience `json:"work_experience,omitempty"` // 工作履历 - EducationInfo []*UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo `json:"education_info,omitempty"` // 教育经历 -} - -// UpdateCorehrPreHireReqBasicInfoUpdateAddress ... -type UpdateCorehrPreHireReqBasicInfoUpdateAddress struct { +// MockCoreHRUpdateCoreHRPreHireV2 mock CoreHRUpdateCoreHRPreHireV2 method +func (r *Mock) MockCoreHRUpdateCoreHRPreHireV2(f func(ctx context.Context, request *UpdateCoreHRPreHireV2Req, options ...MethodOptionFunc) (*UpdateCoreHRPreHireV2Resp, *Response, error)) { + r.mockCoreHRUpdateCoreHRPreHireV2 = f +} + +// UnMockCoreHRUpdateCoreHRPreHireV2 un-mock CoreHRUpdateCoreHRPreHireV2 method +func (r *Mock) UnMockCoreHRUpdateCoreHRPreHireV2() { + r.mockCoreHRUpdateCoreHRPreHireV2 = nil +} + +// UpdateCoreHRPreHireV2Req ... +type UpdateCoreHRPreHireV2Req struct { + PreHireID string `path:"pre_hire_id" json:"-"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775411" + BasicInfoUpdate *UpdateCoreHRPreHireV2ReqBasicInfoUpdate `json:"basic_info_update,omitempty"` // 更新个人(person)信息 + OfferInfoUpdate *UpdateCoreHRPreHireV2ReqOfferInfoUpdate `json:"offer_info_update,omitempty"` // 更新待入职(prehire)信息 + StandardUpdateFields []string `json:"standard_update_fields,omitempty"` // 指定需要更新的系统字段, 只支持最多下钻一层, 格式如下: basic_info_update字段: basic_info_update.names(对name整体进行覆盖更新);basic_info_update.emails(对邮箱整体进行更新) - offer_info_update字段: offer_info_update.onboarding_method注意, 如果指定了要更新的系统字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["basic_info_update.names"] + CustomUpdateFields []string `json:"custom_update_fields,omitempty"` // 指定需要更新的pre_hire对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] + PersonCustomUpdateFields []string `json:"person_custom_update_fields,omitempty"` // 指定需要更新的person对象上的自定义字段, 可以通过[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得注意: 如果指定了要更新的自定义字段但是没有在结构体中传对应的值, 那么就会清空该字段的值示例值: ["custom_field1__c"] +} + +// UpdateCoreHRPreHireV2ReqBasicInfoUpdate ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdate struct { + Names []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateName `json:"names,omitempty"` // 姓名, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Phones []*UpdateCoreHRPreHireV2ReqBasicInfoUpdatePhone `json:"phones,omitempty"` // 电话, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + Emails []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmail `json:"emails,omitempty"` // 邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + NationalityV2ID *string `json:"nationality_v2_id,omitempty"` // 国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: "6862995757234914824" + AdditionalNationalityIDList []string `json:"additional_nationality_id_list,omitempty"` // 其他国籍, 可以通过[查询国籍信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search)接口获取示例值: ["6862995757234914824"] + ResidentTaxList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTax `json:"resident_tax_list,omitempty"` // 纳税身份信息, 该值是一个list, 会全量更新 + BornCountryRegion *string `json:"born_country_region,omitempty"` // 出生国家/地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + IsDisabled *bool `json:"is_disabled,omitempty"` // 是否残疾示例值: true + DisableCardNumber *string `json:"disable_card_number,omitempty"` // 残疾证号示例值: "身份证号+残疾类型(1-7)+ 残疾程度分级(1-4)+[补发编号]" + IsOldAlone *bool `json:"is_old_alone,omitempty"` // 是否孤老示例值: true + IsMartyrFamily *bool `json:"is_martyr_family,omitempty"` // 是否烈属示例值: true + MartyrCardNumber *string `json:"martyr_card_number,omitempty"` // 烈属证号示例值: "00001" + DependentList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependent `json:"dependent_list,omitempty"` // 家庭成员 + Religion *string `json:"religion,omitempty"` // 宗教信仰, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: religion示例值: "buddism" + BankAccountList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccount `json:"bank_account_list,omitempty"` // 银行账号 + NationalIDList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalID `json:"national_id_list,omitempty"` // 证件账号 + PersonalProfileList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfile `json:"personal_profile_list,omitempty"` // 个人资料 + EmergencyContactList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContact `json:"emergency_contact_list,omitempty"` // 紧急联系人 + AddressList []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateAddress `json:"address_list,omitempty"` // 联系地址 + MaritalStatus *string `json:"marital_status,omitempty"` // 婚姻状况, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: marital_status示例值: "single" + EthnicityRace *string `json:"ethnicity_race,omitempty"` // 民族 / 种族, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person- custom_api_name: ethnicity_race示例值: "han" + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + NativeRegion *string `json:"native_region,omitempty"` // 籍贯, 可以通过[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)接口获取示例值: "6862995757234914824" + HukouType *string `json:"hukou_type,omitempty"` // 户口类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: person_info_chn- custom_api_name: hukou_type示例值: "local_urban_residence" + HukouLocation *string `json:"hukou_location,omitempty"` // 户口所在地示例值: "北京市海淀区北三环西路" + GenderID *string `json:"gender_id,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2011-99-99" + DateEnteredWorkforce *string `json:"date_entered_workforce,omitempty"` // 参加工作日期示例值: "2100-09-09" + ExpectedGraduateDate *string `json:"expected_graduate_date,omitempty"` // 预计毕业日期示例值: "2023-01-10" + CitizenshipStatusIDList []string `json:"citizenship_status_id_list,omitempty"` // 公民身份示例值: ["6862995757234914824"] + WorkExperience []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateWorkExperience `json:"work_experience,omitempty"` // 工作履历 + EducationInfo []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateEducationInfo `json:"education_info,omitempty"` // 教育经历 +} + +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateAddress ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateAddress struct { CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" @@ -125,49 +125,49 @@ type UpdateCorehrPreHireReqBasicInfoUpdateAddress struct { DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" } -// UpdateCorehrPreHireReqBasicInfoUpdateBankAccount ... -type UpdateCorehrPreHireReqBasicInfoUpdateBankAccount struct { - BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" - BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" - BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200xxxx01223" - AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" - CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区 ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995745889322510" - BankAccountUsages []string `json:"bank_account_usages,omitempty"` // 银行卡用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_usage示例值: ["payment"] 长度范围: `0` ~ `100` - BankAccountType *string `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_type示例值: "checking" - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccount ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccount struct { + BankName *string `json:"bank_name,omitempty"` // 银行名称示例值: "中国农业银行" + BranchName *string `json:"branch_name,omitempty"` // 支行名称示例值: "中国农业银行支行" + BankAccountNumber string `json:"bank_account_number,omitempty"` // 银行账号示例值: "6231200xxxx01223" + AccountHolder string `json:"account_holder,omitempty"` // 开户人姓名示例值: "孟十五" + CountryRegionID *string `json:"country_region_id,omitempty"` // 国家/地区 ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995745889322510" + BankAccountUsages []string `json:"bank_account_usages,omitempty"` // 银行卡用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_usage示例值: ["payment"] 长度范围: `0` ~ `100` + BankAccountType *string `json:"bank_account_type,omitempty"` // 银行卡类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: bank_account- custom_api_name: bank_account_type示例值: "checking" + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccountCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateBankAccountCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccountCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateBankAccountCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05)示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateDependent ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependent struct { - Relationship string `json:"relationship,omitempty"` // 关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: relationship_with_dependent示例值: "parent" - Gender *string `json:"gender,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" - DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" - NationalIDs []string `json:"national_ids,omitempty"` // 证件号码 长度范围: `1` ~ `1000` - SpousesWorkingStatus *string `json:"spouses_working_status,omitempty"` // 配偶工作状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: spouses_working_status示例值: "working" - IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true - IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false - DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "王冰" - Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" - Job *string `json:"job,omitempty"` // 岗位信息描述示例值: "保安" - Phone *UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone `json:"phone,omitempty"` // 电话 - Address *UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress `json:"address,omitempty"` // 联系地址 - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 -} - -// UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependent ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependent struct { + Relationship string `json:"relationship,omitempty"` // 关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: relationship_with_dependent示例值: "parent" + Gender *string `json:"gender,omitempty"` // 性别, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: gender示例值: "male" + DateOfBirth *string `json:"date_of_birth,omitempty"` // 生日示例值: "2020-01-01" + NationalIDs []string `json:"national_ids,omitempty"` // 证件号码 长度范围: `1` ~ `1000` + SpousesWorkingStatus *string `json:"spouses_working_status,omitempty"` // 配偶工作状态, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: dependent- custom_api_name: spouses_working_status示例值: "working" + IsThisPersonCoveredByHealthInsurance *bool `json:"is_this_person_covered_by_health_insurance,omitempty"` // 包含家属医疗保险示例值: true + IsThisPersonAllowedForTaxDeduction *bool `json:"is_this_person_allowed_for_tax_deduction,omitempty"` // 允许家属抵扣税款示例值: false + DependentName *string `json:"dependent_name,omitempty"` // 家庭成员姓名示例值: "王冰" + Employer *string `json:"employer,omitempty"` // 工作单位示例值: "海淀区交警大队" + Job *string `json:"job,omitempty"` // 岗位信息描述示例值: "保安" + Phone *UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentPhone `json:"phone,omitempty"` // 电话 + Address *UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentAddress `json:"address,omitempty"` // 联系地址 + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentCustomField `json:"custom_fields,omitempty"` // 自定义字段 +} + +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentAddress ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentAddress struct { CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" @@ -187,31 +187,31 @@ type UpdateCorehrPreHireReqBasicInfoUpdateDependentAddress struct { DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" } -// UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependentCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalID ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalID struct { - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获得示例值: "6862995757234914824" - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333xxxx222" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentNationalID ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)接口获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333xxxx222" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependentNationalIDCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentNationalIDCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone ... -type UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentPhone ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateDependentPhone struct { InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" @@ -220,8 +220,8 @@ type UpdateCorehrPreHireReqBasicInfoUpdateDependentPhone struct { IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true } -// UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo ... -type UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEducationInfo ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEducationInfo struct { SchoolName *string `json:"school_name,omitempty"` // 学校名称示例值: "长安大学" Education *string `json:"education,omitempty"` // 学历, 枚举值可通过文档[枚举常量介绍](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)学历(level_of_education)枚举定义获得示例值: "phd" StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2017-04-01" @@ -229,27 +229,27 @@ type UpdateCorehrPreHireReqBasicInfoUpdateEducationInfo struct { FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "医学影像技术" } -// UpdateCorehrPreHireReqBasicInfoUpdateEmail ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmail struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmail ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmail struct { Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" } -// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContact struct { - LegalName *string `json:"legal_name,omitempty"` // 紧急联系人姓名示例值: "王冰" - Relationship *string `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: emergency_contact- custom_api_name: relationship示例值: "parent" - Phones []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone `json:"phones,omitempty"` // 电话 长度范围: `0` ~ `1000` - Address *UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress `json:"address,omitempty"` // 地址 - Email *UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail `json:"email,omitempty"` // 邮箱 - IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true示例值: true - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContact ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContact struct { + LegalName *string `json:"legal_name,omitempty"` // 紧急联系人姓名示例值: "王冰" + Relationship *string `json:"relationship,omitempty"` // 紧急联系人与本人亲属关系, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: emergency_contact- custom_api_name: relationship示例值: "parent" + Phones []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactPhone `json:"phones,omitempty"` // 电话 长度范围: `0` ~ `1000` + Address *UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactAddress `json:"address,omitempty"` // 地址 + Email *UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactEmail `json:"email,omitempty"` // 邮箱 + IsPrimary *bool `json:"is_primary,omitempty"` // 主要联系人, 若有多个联系人, 只能有一个联系人的「is_primary」为true示例值: true + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactAddress ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactAddress struct { CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" @@ -269,22 +269,22 @@ type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactAddress struct { DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县示例值: "6863333516579440141" } -// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactEmail struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactEmail ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactEmail struct { Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: email- custom_api_name: email_usage示例值: "work" } -// UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone ... -type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactPhone ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateEmergencyContactPhone struct { InternationalAreaCode string `json:"international_area_code,omitempty"` // 国家区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: international_area_code示例值: "86_china" PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1232" DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: phone- custom_api_name: device_type示例值: "mobile_phone" @@ -293,8 +293,8 @@ type UpdateCorehrPreHireReqBasicInfoUpdateEmergencyContactPhone struct { IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true } -// UpdateCorehrPreHireReqBasicInfoUpdateName ... -type UpdateCorehrPreHireReqBasicInfoUpdateName struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateName ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateName struct { FullName *string `json:"full_name,omitempty"` // 全名示例值: "李一一" FirstName *string `json:"first_name,omitempty"` // 名示例值: "一" MiddleName *string `json:"middle_name,omitempty"` // 中间名示例值: "一" @@ -309,36 +309,36 @@ type UpdateCorehrPreHireReqBasicInfoUpdateName struct { AdditionalName *string `json:"additional_name,omitempty"` // 别名示例值: "别名" } -// UpdateCorehrPreHireReqBasicInfoUpdateNationalID ... -type UpdateCorehrPreHireReqBasicInfoUpdateNationalID struct { - CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" - NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" - NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" - IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" - ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" - IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalID ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalID struct { + CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + NationalIDTypeID string `json:"national_id_type_id,omitempty"` // 国家证件类型, 可以通过[批量查询国家证件类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/national_id_type/list)接口获得示例值: "6863330041896371725" + NationalIDNumber string `json:"national_id_number,omitempty"` // 证件号码示例值: "1231131333" + IssueDate *string `json:"issue_date,omitempty"` // 证件签发日期示例值: "2020-04-01" + ExpirationDate *string `json:"expiration_date,omitempty"` // 证件到期日期示例值: "2020-05-21" + IssuedBy *string `json:"issued_by,omitempty"` // 证件签发机构示例值: "北京市公安局" + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalIDCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateNationalIDCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalIDCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateNationalIDCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile ... -type UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfile struct { - PersonalProfileType *string `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: personal_profile- custom_api_name: profile_type示例值: "profile_type_1_101_101011" - Files []*UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile `json:"files,omitempty"` // 资料文件列表 长度范围: `0` ~ `1000` +// UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfile ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfile struct { + PersonalProfileType *string `json:"personal_profile_type,omitempty"` // 资料类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: personal_profile- custom_api_name: profile_type示例值: "profile_type_1_101_101011" + Files []*UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfileFile `json:"files,omitempty"` // 资料文件列表 长度范围: `0` ~ `1000` } -// UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile ... -type UpdateCorehrPreHireReqBasicInfoUpdatePersonalProfileFile struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfileFile ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdatePersonalProfileFile struct { ID *string `json:"id,omitempty"` // 文件ID, 通过[上传文件](/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/person/upload)接口上传文件后, 获取文件ID示例值: "6655aa1b2ec326f983b91f9d_f9974583040c4b05ae71f92f5df16bbc" } -// UpdateCorehrPreHireReqBasicInfoUpdatePhone ... -type UpdateCorehrPreHireReqBasicInfoUpdatePhone struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdatePhone ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdatePhone struct { InternationalAreaCode string `json:"international_area_code,omitempty"` // 电话区号, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = international_area_code示例值: "86_china" PhoneNumber string `json:"phone_number,omitempty"` // 电话号码示例值: "178xxxx1234" DeviceType string `json:"device_type,omitempty"` // 设备类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = phone- custom_api_name = device_type示例值: "mobile_phone" @@ -347,24 +347,24 @@ type UpdateCorehrPreHireReqBasicInfoUpdatePhone struct { IsPublic bool `json:"is_public,omitempty"` // 公开电话示例值: true } -// UpdateCorehrPreHireReqBasicInfoUpdateResidentTax ... -type UpdateCorehrPreHireReqBasicInfoUpdateResidentTax struct { - TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" - ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份示例值: "tax_residence" - TaxAddress *UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress `json:"tax_address,omitempty"` // 纳税地址 - ResidentStatusSpecification *string `json:"resident_status_specification,omitempty"` // 居民纳税身份说明示例值: "文本内容, 对纳税身份的补充说明信息" - YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度示例值: "2006-01-01" - CustomFields []*UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTax ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTax struct { + TaxCountryRegion *string `json:"tax_country_region,omitempty"` // 国家 / 地区ID, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" + ResidentStatus *string `json:"resident_status,omitempty"` // 居民身份示例值: "tax_residence" + TaxAddress *UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxTaxAddress `json:"tax_address,omitempty"` // 纳税地址 + ResidentStatusSpecification *string `json:"resident_status_specification,omitempty"` // 居民纳税身份说明示例值: "文本内容, 对纳税身份的补充说明信息" + YearResidentTax *string `json:"year_resident_tax,omitempty"` // 年度示例值: "2006-01-01" + CustomFields []*UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField ... -type UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxCustomField struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxCustomField ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress ... -type UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxTaxAddress ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateResidentTaxTaxAddress struct { CountryRegionID string `json:"country_region_id,omitempty"` // 国家 / 地区, 可以通过接口[查询国家/地区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region/search)获得示例值: "6862995757234914824" RegionID *string `json:"region_id,omitempty"` // 主要行政区, 可以通过接口[查询省份/行政区信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-country_region_subdivision/search)获得示例值: "6863326815667095047" LocalAddressLine1 *string `json:"local_address_line1,omitempty"` // 地址行 1(非拉丁语系的本地文字)示例值: "北京市海淀区" @@ -384,8 +384,8 @@ type UpdateCorehrPreHireReqBasicInfoUpdateResidentTaxTaxAddress struct { DistrictIDV2 *string `json:"district_id_v2,omitempty"` // 区/县, 可以通过接口[查询区/县信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-district/search)获取详情示例值: "6863333516579440141" } -// UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience ... -type UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience struct { +// UpdateCoreHRPreHireV2ReqBasicInfoUpdateWorkExperience ... +type UpdateCoreHRPreHireV2ReqBasicInfoUpdateWorkExperience struct { CompanyName *string `json:"company_name,omitempty"` // 公司名称示例值: "猎豹" StartTime *string `json:"start_time,omitempty"` // 开始时间示例值: "2015-02-01" EndTime *string `json:"end_time,omitempty"` // 结束时间示例值: "2017-02-01" @@ -394,163 +394,163 @@ type UpdateCorehrPreHireReqBasicInfoUpdateWorkExperience struct { Department *string `json:"department,omitempty"` // 部门示例值: "部门名称" } -// UpdateCorehrPreHireReqOfferInfoUpdate ... -type UpdateCorehrPreHireReqOfferInfoUpdate struct { - OnboardingDate *string `json:"onboarding_date,omitempty"` // 入职日期示例值: "2022-10-08" - AtsApplicationID *string `json:"ats_application_id,omitempty"` // 招聘应用 ID, 仅支持飞书招聘 ID, 可以通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "7140946969586010376" - OnboardingLocationID *string `json:"onboarding_location_id,omitempty"` // 入职地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" - OnboardingAddressID *string `json:"onboarding_address_id,omitempty"` // 入职地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" - OfficeLocationID *string `json:"office_location_id,omitempty"` // 办公地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" - OfficeAddressID *string `json:"office_address_id,omitempty"` // 办公地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" - EmploymentType *string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type示例值: "employee" - OnboardingMethod *string `json:"onboarding_method,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = onboarding_method示例值: "onsite" - WorkEmails []*UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail `json:"work_emails,omitempty"` // 工作邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 - CostCenterRates []*UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation - CustomFields []*UpdateCorehrPreHireReqOfferInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 - PositionID *string `json:"position_id,omitempty"` // 岗位id, 如需获取具体值, 请联系人员档案管理员示例值: "697797668735092768" - ProbationPeriod *int64 `json:"probation_period,omitempty"` // 试用期时长示例值: 6 - ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期, 格式: "YYYY-MM-DD"示例值: "2022-07-29" - ProbationEndDate *string `json:"probation_end_date,omitempty"` // 试用期结束日期, 格式: "YYYY-MM-DD"示例值: "2023-04-07" - ContractStartDate *string `json:"contract_start_date,omitempty"` // 合同开始日期, 格式: "YYYY-MM-DD"示例值: "2022-10-08" - ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期, 格式: "YYYY-MM-DD"示例值: "2025-10-07" - ContractType *string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: contract_type示例值: "internship_agreement" - DurationTypeID *string `json:"duration_type_id,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: duration_type示例值: "fixed_term" - SigningTypeID *string `json:"signing_type_id,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: signing_type示例值: "new" - WorkerID *string `json:"worker_id,omitempty"` // 工号示例值: "DDD00001" - CheckInTime *string `json:"check_in_time,omitempty"` // 签到日期, 格式: "YYYY-MM-DD"示例值: "2024-12-31" - CheckInMethod *string `json:"check_in_method,omitempty"` // 签到方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: onboarding_method示例值: "onsite" - Company *string `json:"company,omitempty"` // 公司主体, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" - WorkShift *string `json:"work_shift,omitempty"` // 排班, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = work_shift示例值: "work_shift" - RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 招聘类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type示例值: "experienced_professionals" - CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = compensation_type示例值: "hourly" - PayGroupID *string `json:"pay_group_id,omitempty"` // 薪资组, 如需获取具体值, 请联系人员档案管理员示例值: "6977976687350924833" - OfferHRID *string `json:"offer_hr_id,omitempty"` // Offer HR 雇佣ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" - JobID *string `json:"job_id,omitempty"` // 职务 ID, 可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6977976735715378724" - JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6977972856625939999" - JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6977971894960145950" - JobGradeID *string `json:"job_grade_id,omitempty"` // 职等ID, 可以通过[查询职等](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "6738317738688661772" - EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过接口[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6977973225846343171" - EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型示例值: "xxx" - DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" - DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "xxx" - DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "7147562782945478177" - SocialSecurityCity *string `json:"social_security_city,omitempty"` // 社保城市ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" - WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" - WorkingCalendar *string `json:"working_calendar,omitempty"` // 工作日历, 可以通过[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得示例值: "6890452208593372141" - WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度, 可以通过[批量查询工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获得示例值: "6890452208593372679" - SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期示例值: "2022-10-08" - SeniorityAdjustInformationList []*UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - NoticePeriodProbationVoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx - NoticePeriodProbationInvoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx - NoticePeriodPositiveVoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx - NoticePeriodPositiveInvoluntary *UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx - ConditionWorker *bool `json:"condition_worker,omitempty"` // 是否外部人员示例值: true - CompanySponsoredVisa *bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证示例值: true - WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长(单位: 小时)示例值: 8.5 - WorkStation *string `json:"work_station,omitempty"` // 工位示例值: "5-1-2" - ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" - NonCompeteCovenant *bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款示例值: true - Pathway *string `json:"pathway,omitempty"` // 通道示例值: "7460865381179115052" - DefaultCostCenter *UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - CostAllocation *UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - ReuseFeishuAccount *string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号, 支持传入“reuse”或者“not_resue”, 当字段为“reuse”时, 需要传入reused_feishu_account_id- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "reuse" - ReusedFeishuAccountID *string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 仅支持Lark Union ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/search)接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "on_773dd2c4d14c5c980a4d89a2da5c86d3" -} - -// UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation ... -type UpdateCorehrPreHireReqOfferInfoUpdateCostAllocation struct { - EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" - ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" - CostCenterRates []*UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` -} - -// UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate ... -type UpdateCorehrPreHireReqOfferInfoUpdateCostAllocationCostCenterRate struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdate ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdate struct { + OnboardingDate *string `json:"onboarding_date,omitempty"` // 入职日期示例值: "2022-10-08" + AtsApplicationID *string `json:"ats_application_id,omitempty"` // 招聘应用 ID, 仅支持飞书招聘 ID, 可以通过[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)接口获取示例值: "7140946969586010376" + OnboardingLocationID *string `json:"onboarding_location_id,omitempty"` // 入职地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OnboardingAddressID *string `json:"onboarding_address_id,omitempty"` // 入职地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + OfficeLocationID *string `json:"office_location_id,omitempty"` // 办公地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + OfficeAddressID *string `json:"office_address_id,omitempty"` // 办公地址ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924832" + EmploymentType *string `json:"employment_type,omitempty"` // 雇佣类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = employment_type示例值: "employee" + OnboardingMethod *string `json:"onboarding_method,omitempty"` // 入职方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = onboarding_method示例值: "onsite" + WorkEmails []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateWorkEmail `json:"work_emails,omitempty"` // 工作邮箱, 该值是一个list, 会全量更新。即使只更新 list 中的某一个元素, 也需要把其它元素都完整传值, 否则将丢失数据。 + CostCenterRates []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostCenterRate `json:"cost_center_rates,omitempty"` // 成本中心分摊信息- 待废弃, 建议使用cost_allocation + CustomFields []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateCustomField `json:"custom_fields,omitempty"` // 自定义字段 + PositionID *string `json:"position_id,omitempty"` // 岗位id, 如需获取具体值, 请联系人员档案管理员示例值: "697797668735092768" + ProbationPeriod *int64 `json:"probation_period,omitempty"` // 试用期时长示例值: 6 + ProbationStartDate *string `json:"probation_start_date,omitempty"` // 试用期开始日期, 格式: "YYYY-MM-DD"示例值: "2022-07-29" + ProbationEndDate *string `json:"probation_end_date,omitempty"` // 试用期结束日期, 格式: "YYYY-MM-DD"示例值: "2023-04-07" + ContractStartDate *string `json:"contract_start_date,omitempty"` // 合同开始日期, 格式: "YYYY-MM-DD"示例值: "2022-10-08" + ContractEndDate *string `json:"contract_end_date,omitempty"` // 合同结束日期, 格式: "YYYY-MM-DD"示例值: "2025-10-07" + ContractType *string `json:"contract_type,omitempty"` // 合同类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: contract_type示例值: "internship_agreement" + DurationTypeID *string `json:"duration_type_id,omitempty"` // 期限类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: duration_type示例值: "fixed_term" + SigningTypeID *string `json:"signing_type_id,omitempty"` // 签订类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: signing_type示例值: "new" + WorkerID *string `json:"worker_id,omitempty"` // 工号示例值: "DDD00001" + CheckInTime *string `json:"check_in_time,omitempty"` // 签到日期, 格式: "YYYY-MM-DD"示例值: "2024-12-31" + CheckInMethod *string `json:"check_in_method,omitempty"` // 签到方式, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name: pre_hire- custom_api_name: onboarding_method示例值: "onsite" + Company *string `json:"company,omitempty"` // 公司主体, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + WorkShift *string `json:"work_shift,omitempty"` // 排班, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = work_shift示例值: "work_shift" + RecruitmentTypeID *string `json:"recruitment_type_id,omitempty"` // 招聘类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = recruitment_type示例值: "experienced_professionals" + CompensationType *string `json:"compensation_type,omitempty"` // 薪资类型, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = pre_hire- custom_api_name = compensation_type示例值: "hourly" + PayGroupID *string `json:"pay_group_id,omitempty"` // 薪资组, 如需获取具体值, 请联系人员档案管理员示例值: "6977976687350924833" + OfferHRID *string `json:"offer_hr_id,omitempty"` // Offer HR 雇佣ID, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + JobID *string `json:"job_id,omitempty"` // 职务 ID, 可以通过[批量查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)接口获取示例值: "6977976735715378724" + JobFamilyID *string `json:"job_family_id,omitempty"` // 序列 ID, 可以通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)接口获取示例值: "6977972856625939999" + JobLevelID *string `json:"job_level_id,omitempty"` // 职级 ID, 可以通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)接口获取示例值: "6977971894960145950" + JobGradeID *string `json:"job_grade_id,omitempty"` // 职等ID, 可以通过[查询职等](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)接口获取示例值: "6738317738688661772" + EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 可以通过接口[批量查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获取示例值: "6977973225846343171" + EmployeeSubtypeID *string `json:"employee_subtype_id,omitempty"` // 人员子类型示例值: "xxx" + DirectLeaderID *string `json:"direct_leader_id,omitempty"` // 直属上级, 可以通过[批量查询员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口获取示例值: "7032210902531327521" + DottedLineManagerID *string `json:"dotted_line_manager_id,omitempty"` // 虚线上级, 可以通过[搜索员工信息](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search)接口获取详情- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "xxx" + DepartmentID *string `json:"department_id,omitempty"` // 部门 ID, 可以通过[批量查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口获取示例值: "7147562782945478177" + SocialSecurityCity *string `json:"social_security_city,omitempty"` // 社保城市ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkLocationID *string `json:"work_location_id,omitempty"` // 工作地点ID, 可以通过[批量查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)接口获得示例值: "6977976687350924833" + WorkingCalendar *string `json:"working_calendar,omitempty"` // 工作日历, 可以通过[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)接口获得示例值: "6890452208593372141" + WorkingHoursType *string `json:"working_hours_type,omitempty"` // 工时制度, 可以通过[批量查询工时制度](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/list)接口获得示例值: "6890452208593372679" + SeniorityDate *string `json:"seniority_date,omitempty"` // 司龄起算日期示例值: "2022-10-08" + SeniorityAdjustInformationList []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformation `json:"seniority_adjust_information_list,omitempty"` // 司龄调整信息- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + NoticePeriodProbationVoluntary *UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationVoluntary `json:"notice_period_probation_voluntary,omitempty"` // 试用期内通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodProbationInvoluntary *UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationInvoluntary `json:"notice_period_probation_involuntary,omitempty"` // 试用期内通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveVoluntary *UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveVoluntary `json:"notice_period_positive_voluntary,omitempty"` // 转正后通知期(主动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + NoticePeriodPositiveInvoluntary *UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveInvoluntary `json:"notice_period_positive_involuntary,omitempty"` // 转正后通知期(被动离职)- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: xxx + ConditionWorker *bool `json:"condition_worker,omitempty"` // 是否外部人员示例值: true + CompanySponsoredVisa *bool `json:"company_sponsored_visa,omitempty"` // 需要公司办理签证示例值: true + WeeklyWorkingHoursV2 *float64 `json:"weekly_working_hours_v2,omitempty"` // 周工作时长(单位: 小时)示例值: 8.5 + WorkStation *string `json:"work_station,omitempty"` // 工位示例值: "5-1-2" + ServiceCompany *string `json:"service_company,omitempty"` // 任职公司, 可以通过[批量查询公司](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/company/list)接口查询示例值: "6738317738688661772" + NonCompeteCovenant *bool `json:"non_compete_covenant,omitempty"` // 是否包含竞业条款示例值: true + Pathway *string `json:"pathway,omitempty"` // 通道示例值: "7460865381179115052" + DefaultCostCenter *UpdateCoreHRPreHireV2ReqOfferInfoUpdateDefaultCostCenter `json:"default_cost_center,omitempty"` // 默认成本中心- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + CostAllocation *UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocation `json:"cost_allocation,omitempty"` // 成本分摊- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + ReuseFeishuAccount *string `json:"reuse_feishu_account,omitempty"` // 是否复用飞书账号, 支持传入“reuse”或者“not_resue”, 当字段为“reuse”时, 需要传入reused_feishu_account_id- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "reuse" + ReusedFeishuAccountID *string `json:"reused_feishu_account_id,omitempty"` // 复用的飞书账号, 仅支持Lark Union ID, 可以通过[搜索员工信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/directory-v1/employee/search)接口获取- 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "on_773dd2c4d14c5c980a4d89a2da5c86d3" +} + +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocation ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocation struct { + EffectiveTime *string `json:"effective_time,omitempty"` // 分摊生效日期示例值: "2025-01-01" + ExpirationTime *string `json:"expiration_time,omitempty"` // 分摊失效日期示例值: "2025-02-01" + CostCenterRates []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocationCostCenterRate `json:"cost_center_rates,omitempty"` // 成本分摊信息 长度范围: `0` ~ `50` +} + +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocationCostCenterRate ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostAllocationCostCenterRate struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" Rate *int64 `json:"rate,omitempty"` // 分摊比例(整数)示例值: 100 NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 } -// UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate ... -type UpdateCorehrPreHireReqOfferInfoUpdateCostCenterRate struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostCenterRate ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateCostCenterRate struct { CostCenterID *string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" Rate *int64 `json:"rate,omitempty"` // 分摊比例, 大于0小于等于100的正整数示例值: 100 NewRate *float64 `json:"new_rate,omitempty"` // 分摊比例示例值: 50.2 } -// UpdateCorehrPreHireReqOfferInfoUpdateCustomField ... -type UpdateCorehrPreHireReqOfferInfoUpdateCustomField struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateCustomField ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 该值是一个 string list 经转义后的字符串, 具体参考请求体示例示例值: "[\"Sandy\"]" } -// UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter ... -type UpdateCorehrPreHireReqOfferInfoUpdateDefaultCostCenter struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateDefaultCostCenter ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateDefaultCostCenter struct { CostCenterID string `json:"cost_center_id,omitempty"` // 成本中心 ID, 可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获得示例值: "6950635856373745165" IsHerit bool `json:"is_herit,omitempty"` // 是否继承岗位/部门的默认成本中心示例值: false } -// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary ... -type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveInvoluntary struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveInvoluntary ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveInvoluntary struct { WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary ... -type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodPositiveVoluntary struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveVoluntary ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodPositiveVoluntary struct { WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary ... -type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationInvoluntary struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationInvoluntary ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationInvoluntary struct { WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary ... -type UpdateCorehrPreHireReqOfferInfoUpdateNoticePeriodProbationVoluntary struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationVoluntary ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateNoticePeriodProbationVoluntary struct { WkID *string `json:"wk_id,omitempty"` // ID示例值: "4698019107896524633" Value *int64 `json:"value,omitempty"` // 数值示例值: 1 取值范围: `1` ~ `65535` ValueUnit *string `json:"value_unit,omitempty"` // 单位示例值: "月" } -// UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation ... -type UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformation struct { - SeniorityAdjustment *float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年- 自动计算逻辑: 如果这个值为空, 司龄调整的开始日期和结束日期均不为空, 会自动计算出调整值示例值: 0.5 取值范围: `0` ~ `100` - SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "增加"可选值有: 减少增加 - ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因示例值: "工厂停产需要减去半年工龄" - StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-05-19" - EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-11-18" - CustomFields []*UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformation ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformation struct { + SeniorityAdjustment *float64 `json:"seniority_adjustment,omitempty"` // 调整值- 精确度: 两位小数- 单位: 年- 自动计算逻辑: 如果这个值为空, 司龄调整的开始日期和结束日期均不为空, 会自动计算出调整值示例值: 0.5 取值范围: `0` ~ `100` + SeniorityAdjustmentType string `json:"seniority_adjustment_type,omitempty"` // 调整类型- 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询, 查询参数如下: - object_api_name: seniority_adjust_information - custom_api_name: seniority_adjustment_type示例值: "增加"可选值有: 减少增加 + ReasonsForSeniorityAdjustment *string `json:"reasons_for_seniority_adjustment,omitempty"` // 司龄调整原因示例值: "工厂停产需要减去半年工龄" + StartDate *string `json:"start_date,omitempty"` // 开始日期- 格式: yyyy-mm-dd示例值: "2024-05-19" + EndDate *string `json:"end_date,omitempty"` // 结束日期- 格式: yyyy-mm-dd示例值: "2024-11-18" + CustomFields []*UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformationCustomField `json:"custom_fields,omitempty"` // 自定义字段 } -// UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField ... -type UpdateCorehrPreHireReqOfferInfoUpdateSeniorityAdjustInformationCustomField struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformationCustomField ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateSeniorityAdjustInformationCustomField struct { FieldName string `json:"field_name,omitempty"` // 字段名示例值: "name" Value string `json:"value,omitempty"` // 字段值, 是json转义后的字符串, 根据元数据定义不同, 字段格式不同(123, 123.23, true, [\"id1\", \"id2\], 2006-01-02 15:04:05])示例值: "Sandy" } -// UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail ... -type UpdateCorehrPreHireReqOfferInfoUpdateWorkEmail struct { +// UpdateCoreHRPreHireV2ReqOfferInfoUpdateWorkEmail ... +type UpdateCoreHRPreHireV2ReqOfferInfoUpdateWorkEmail struct { Email string `json:"email,omitempty"` // 邮箱地址示例值: "1234567@bytedance.com" IsPrimary bool `json:"is_primary,omitempty"` // 是否为主要邮箱, 若有多个邮箱, 只能有一个邮箱的「is_primary」为true示例值: true IsPublic bool `json:"is_public,omitempty"` // 是否为公开邮箱示例值: true EmailUsage string `json:"email_usage,omitempty"` // 邮箱用途, 枚举值可查询[获取字段详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口获取, 按如下参数查询即可: object_api_name = email- custom_api_name = email_usage示例值: "work" } -// UpdateCorehrPreHireResp ... -type UpdateCorehrPreHireResp struct { +// UpdateCoreHRPreHireV2Resp ... +type UpdateCoreHRPreHireV2Resp struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID } -// updateCorehrPreHireResp ... -type updateCorehrPreHireResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrPreHireResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateCoreHRPreHireV2Resp ... +type updateCoreHRPreHireV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateCoreHRPreHireV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_pre_hire_withdraw_onboarding.go b/api_corehr_pre_hire_withdraw_onboarding.go index 5de5ceee..31637be9 100644 --- a/api_corehr_pre_hire_withdraw_onboarding.go +++ b/api_corehr_pre_hire_withdraw_onboarding.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateCorehrPreHireWithdrawOnboarding 通过本接口对指定待入职, 入职准备就绪的员工执行撤销入职操作, 对应入职管理页面撤销入职按钮 +// WithdrawCoreHRPreHireOnboarding 通过本接口对指定待入职, 入职准备就绪的员工执行撤销入职操作, 对应入职管理页面撤销入职按钮 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/withdraw_onboarding // new doc: https://open.feishu.cn/document/corehr-v1/pre_hire/withdraw_onboarding -func (r *CoreHRService) CreateCorehrPreHireWithdrawOnboarding(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrPreHireWithdrawOnboarding != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrPreHireWithdrawOnboarding mock enable") - return r.cli.mock.mockCoreHRCreateCorehrPreHireWithdrawOnboarding(ctx, request, options...) +func (r *CoreHRService) WithdrawCoreHRPreHireOnboarding(ctx context.Context, request *WithdrawCoreHRPreHireOnboardingReq, options ...MethodOptionFunc) (*WithdrawCoreHRPreHireOnboardingResp, *Response, error) { + if r.cli.mock.mockCoreHRWithdrawCoreHRPreHireOnboarding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#WithdrawCoreHRPreHireOnboarding mock enable") + return r.cli.mock.mockCoreHRWithdrawCoreHRPreHireOnboarding(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrPreHireWithdrawOnboarding", + API: "WithdrawCoreHRPreHireOnboarding", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/pre_hires/withdraw_onboarding", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrPreHireWithdrawOnboardingResp) + resp := new(withdrawCoreHRPreHireOnboardingResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrPreHireWithdrawOnboarding mock CoreHRCreateCorehrPreHireWithdrawOnboarding method -func (r *Mock) MockCoreHRCreateCorehrPreHireWithdrawOnboarding(f func(ctx context.Context, request *CreateCorehrPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCorehrPreHireWithdrawOnboardingResp, *Response, error)) { - r.mockCoreHRCreateCorehrPreHireWithdrawOnboarding = f +// MockCoreHRWithdrawCoreHRPreHireOnboarding mock CoreHRWithdrawCoreHRPreHireOnboarding method +func (r *Mock) MockCoreHRWithdrawCoreHRPreHireOnboarding(f func(ctx context.Context, request *WithdrawCoreHRPreHireOnboardingReq, options ...MethodOptionFunc) (*WithdrawCoreHRPreHireOnboardingResp, *Response, error)) { + r.mockCoreHRWithdrawCoreHRPreHireOnboarding = f } -// UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding un-mock CoreHRCreateCorehrPreHireWithdrawOnboarding method -func (r *Mock) UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding() { - r.mockCoreHRCreateCorehrPreHireWithdrawOnboarding = nil +// UnMockCoreHRWithdrawCoreHRPreHireOnboarding un-mock CoreHRWithdrawCoreHRPreHireOnboarding method +func (r *Mock) UnMockCoreHRWithdrawCoreHRPreHireOnboarding() { + r.mockCoreHRWithdrawCoreHRPreHireOnboarding = nil } -// CreateCorehrPreHireWithdrawOnboardingReq ... -type CreateCorehrPreHireWithdrawOnboardingReq struct { +// WithdrawCoreHRPreHireOnboardingReq ... +type WithdrawCoreHRPreHireOnboardingReq struct { PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得示例值: "7345005664477775407" WithdrawReason string `json:"withdraw_reason,omitempty"` // 撤销原因, 上限为500字示例值: "withdraw reason" } -// CreateCorehrPreHireWithdrawOnboardingResp ... -type CreateCorehrPreHireWithdrawOnboardingResp struct { +// WithdrawCoreHRPreHireOnboardingResp ... +type WithdrawCoreHRPreHireOnboardingResp struct { Success bool `json:"success,omitempty"` // 是否成功撤销入职 } -// createCorehrPreHireWithdrawOnboardingResp ... -type createCorehrPreHireWithdrawOnboardingResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrPreHireWithdrawOnboardingResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// withdrawCoreHRPreHireOnboardingResp ... +type withdrawCoreHRPreHireOnboardingResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *WithdrawCoreHRPreHireOnboardingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_probation_submit.go b/api_corehr_probation_submit.go index 462df9f8..f2eb8eae 100644 --- a/api_corehr_probation_submit.go +++ b/api_corehr_probation_submit.go @@ -21,176 +21,176 @@ import ( "context" ) -// CreateCorehrProbationSubmit 通过本接口可以为员工发起转正 +// SubmitCoreHRProbation 通过本接口可以为员工发起转正 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/probation/submit // new doc: https://open.feishu.cn/document/corehr-v1/probation/submit -func (r *CoreHRService) CreateCorehrProbationSubmit(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrProbationSubmit != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProbationSubmit mock enable") - return r.cli.mock.mockCoreHRCreateCorehrProbationSubmit(ctx, request, options...) +func (r *CoreHRService) SubmitCoreHRProbation(ctx context.Context, request *SubmitCoreHRProbationReq, options ...MethodOptionFunc) (*SubmitCoreHRProbationResp, *Response, error) { + if r.cli.mock.mockCoreHRSubmitCoreHRProbation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SubmitCoreHRProbation mock enable") + return r.cli.mock.mockCoreHRSubmitCoreHRProbation(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrProbationSubmit", + API: "SubmitCoreHRProbation", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/probation/submit", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrProbationSubmitResp) + resp := new(submitCoreHRProbationResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrProbationSubmit mock CoreHRCreateCorehrProbationSubmit method -func (r *Mock) MockCoreHRCreateCorehrProbationSubmit(f func(ctx context.Context, request *CreateCorehrProbationSubmitReq, options ...MethodOptionFunc) (*CreateCorehrProbationSubmitResp, *Response, error)) { - r.mockCoreHRCreateCorehrProbationSubmit = f +// MockCoreHRSubmitCoreHRProbation mock CoreHRSubmitCoreHRProbation method +func (r *Mock) MockCoreHRSubmitCoreHRProbation(f func(ctx context.Context, request *SubmitCoreHRProbationReq, options ...MethodOptionFunc) (*SubmitCoreHRProbationResp, *Response, error)) { + r.mockCoreHRSubmitCoreHRProbation = f } -// UnMockCoreHRCreateCorehrProbationSubmit un-mock CoreHRCreateCorehrProbationSubmit method -func (r *Mock) UnMockCoreHRCreateCorehrProbationSubmit() { - r.mockCoreHRCreateCorehrProbationSubmit = nil +// UnMockCoreHRSubmitCoreHRProbation un-mock CoreHRSubmitCoreHRProbation method +func (r *Mock) UnMockCoreHRSubmitCoreHRProbation() { + r.mockCoreHRSubmitCoreHRProbation = nil } -// CreateCorehrProbationSubmitReq ... -type CreateCorehrProbationSubmitReq struct { - ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 6822122262122064111 - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - EmploymentID string `json:"employment_id,omitempty"` // 试用期人员的雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" - ConversionMode int64 `json:"conversion_mode,omitempty"` // 转正方式示例值: 1可选值有: 直接转正发起转正 - ActualProbationEndDate *string `json:"actual_probation_end_date,omitempty"` // 实际结束日期, 如果为空则默认填入试用期预计结束日期, 填入日期需满足: 试用期开始时间 <= 实际结束日期 <= 试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2022-05-20" - SubmissionType string `json:"submission_type,omitempty"` // 发起方示例值: "system"可选值有: 员工系统HR - InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID, 当发起方为 HR 时填写, 为其他发起方时该字段会自动计算, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" - Notes *string `json:"notes,omitempty"` // 备注, 当为直接转正时必填示例值: "符合预期" - SelfReview *string `json:"self_review,omitempty"` // 员工自评示例值: "符合预期" - CustomFields []*CreateCorehrProbationSubmitReqCustomField `json:"custom_fields,omitempty"` // 自定义字段(试用期中如果有附件自定义字段, 当前不支持使用「上传文件」接口写入) +// SubmitCoreHRProbationReq ... +type SubmitCoreHRProbationReq struct { + ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 6822122262122064111 + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + EmploymentID string `json:"employment_id,omitempty"` // 试用期人员的雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" + ConversionMode int64 `json:"conversion_mode,omitempty"` // 转正方式示例值: 1可选值有: 直接转正发起转正 + ActualProbationEndDate *string `json:"actual_probation_end_date,omitempty"` // 实际结束日期, 如果为空则默认填入试用期预计结束日期, 填入日期需满足: 试用期开始时间 <= 实际结束日期 <= 试用期预计结束日期, 格式: "YYYY-MM-DD"示例值: "2022-05-20" + SubmissionType string `json:"submission_type,omitempty"` // 发起方示例值: "system"可选值有: 员工系统HR + InitiatorID *string `json:"initiator_id,omitempty"` // 发起人 ID, 当发起方为 HR 时填写, 为其他发起方时该字段会自动计算, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" + Notes *string `json:"notes,omitempty"` // 备注, 当为直接转正时必填示例值: "符合预期" + SelfReview *string `json:"self_review,omitempty"` // 员工自评示例值: "符合预期" + CustomFields []*SubmitCoreHRProbationReqCustomField `json:"custom_fields,omitempty"` // 自定义字段(试用期中如果有附件自定义字段, 当前不支持使用「上传文件」接口写入) } -// CreateCorehrProbationSubmitReqCustomField ... -type CreateCorehrProbationSubmitReqCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" - Name *CreateCorehrProbationSubmitReqCustomFieldName `json:"name,omitempty"` // 自定义字段名称(无需填写) - Type *int64 `json:"type,omitempty"` // 自定义字段类型(无需填写)示例值: 1 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01"示例值: "231" +// SubmitCoreHRProbationReqCustomField ... +type SubmitCoreHRProbationReqCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识示例值: "name" + Name *SubmitCoreHRProbationReqCustomFieldName `json:"name,omitempty"` // 自定义字段名称(无需填写) + Type *int64 `json:"type,omitempty"` // 自定义字段类型(无需填写)示例值: 1 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01"示例值: "231" } -// CreateCorehrProbationSubmitReqCustomFieldName ... -type CreateCorehrProbationSubmitReqCustomFieldName struct { +// SubmitCoreHRProbationReqCustomFieldName ... +type SubmitCoreHRProbationReqCustomFieldName struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文示例值: "自定义姓名" EnUs *string `json:"en_us,omitempty"` // 英文示例值: "Custom Name" } -// CreateCorehrProbationSubmitResp ... -type CreateCorehrProbationSubmitResp struct { - ProbationInfo *CreateCorehrProbationSubmitRespProbationInfo `json:"probation_info,omitempty"` // 试用期信息 -} - -// CreateCorehrProbationSubmitRespProbationInfo ... -type CreateCorehrProbationSubmitRespProbationInfo struct { - EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID - ProbationID string `json:"probation_id,omitempty"` // 试用期信息 ID - ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期 - ProbationExpectedEndDate string `json:"probation_expected_end_date,omitempty"` // 试用期预计结束日期 - ActualProbationEndDate string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期 - InitiatingTime string `json:"initiating_time,omitempty"` // 转正发起日期 - SubmissionType *CreateCorehrProbationSubmitRespProbationInfoSubmissionType `json:"submission_type,omitempty"` // 发起方 - InitiatorID string `json:"initiator_id,omitempty"` // 转正发起人的雇佣 ID, 当系统发起转正时该字段为空 - ProbationStatus *CreateCorehrProbationSubmitRespProbationInfoProbationStatus `json:"probation_status,omitempty"` // 试用期状态 - SelfReview string `json:"self_review,omitempty"` // 员工自评字段权限要求(满足任一): 读取员工自评信息读写员工自评信息 - Notes string `json:"notes,omitempty"` // 备注字段权限要求(满足任一): 读取试用期备注信息读写试用期备注信息 - ProcessID string `json:"process_id,omitempty"` // 流程实例 ID - ConvertedViaBpm bool `json:"converted_via_bpm,omitempty"` // 是否通过 BPM 转正 - CustomFields []*CreateCorehrProbationSubmitRespProbationInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取试用期自定义字段信息读写试用期自定义字段信息 - FinalAssessmentStatus *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus `json:"final_assessment_status,omitempty"` // 试用期考核最终状态 - FinalAssessmentResult *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult `json:"final_assessment_result,omitempty"` // 试用期考核最终结果 - FinalAssessmentScore float64 `json:"final_assessment_score,omitempty"` // 试用期考核最终得分字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 - FinalAssessmentGrade *CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade `json:"final_assessment_grade,omitempty"` // 试用期考核最终等级字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 - FinalAssessmentComment string `json:"final_assessment_comment,omitempty"` // 试用期考核最终评语字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 - FinalAssessmentDetail string `json:"final_assessment_detail,omitempty"` // 最终考核结果页面超链接字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 -} - -// CreateCorehrProbationSubmitRespProbationInfoCustomField ... -type CreateCorehrProbationSubmitRespProbationInfoCustomField struct { - CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 - Name *CreateCorehrProbationSubmitRespProbationInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 - Type int64 `json:"type,omitempty"` // 自定义字段类型 - Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01" -} - -// CreateCorehrProbationSubmitRespProbationInfoCustomFieldName ... -type CreateCorehrProbationSubmitRespProbationInfoCustomFieldName struct { +// SubmitCoreHRProbationResp ... +type SubmitCoreHRProbationResp struct { + ProbationInfo *SubmitCoreHRProbationRespProbationInfo `json:"probation_info,omitempty"` // 试用期信息 +} + +// SubmitCoreHRProbationRespProbationInfo ... +type SubmitCoreHRProbationRespProbationInfo struct { + EmploymentID string `json:"employment_id,omitempty"` // 雇佣 ID + ProbationID string `json:"probation_id,omitempty"` // 试用期信息 ID + ProbationStartDate string `json:"probation_start_date,omitempty"` // 试用期开始日期 + ProbationExpectedEndDate string `json:"probation_expected_end_date,omitempty"` // 试用期预计结束日期 + ActualProbationEndDate string `json:"actual_probation_end_date,omitempty"` // 试用期实际结束日期 + InitiatingTime string `json:"initiating_time,omitempty"` // 转正发起日期 + SubmissionType *SubmitCoreHRProbationRespProbationInfoSubmissionType `json:"submission_type,omitempty"` // 发起方 + InitiatorID string `json:"initiator_id,omitempty"` // 转正发起人的雇佣 ID, 当系统发起转正时该字段为空 + ProbationStatus *SubmitCoreHRProbationRespProbationInfoProbationStatus `json:"probation_status,omitempty"` // 试用期状态 + SelfReview string `json:"self_review,omitempty"` // 员工自评字段权限要求(满足任一): 读取员工自评信息读写员工自评信息 + Notes string `json:"notes,omitempty"` // 备注字段权限要求(满足任一): 读取试用期备注信息读写试用期备注信息 + ProcessID string `json:"process_id,omitempty"` // 流程实例 ID + ConvertedViaBpm bool `json:"converted_via_bpm,omitempty"` // 是否通过 BPM 转正 + CustomFields []*SubmitCoreHRProbationRespProbationInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段字段权限要求(满足任一): 获取试用期自定义字段信息读写试用期自定义字段信息 + FinalAssessmentStatus *SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatus `json:"final_assessment_status,omitempty"` // 试用期考核最终状态 + FinalAssessmentResult *SubmitCoreHRProbationRespProbationInfoFinalAssessmentResult `json:"final_assessment_result,omitempty"` // 试用期考核最终结果 + FinalAssessmentScore float64 `json:"final_assessment_score,omitempty"` // 试用期考核最终得分字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentGrade *SubmitCoreHRProbationRespProbationInfoFinalAssessmentGrade `json:"final_assessment_grade,omitempty"` // 试用期考核最终等级字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentComment string `json:"final_assessment_comment,omitempty"` // 试用期考核最终评语字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 + FinalAssessmentDetail string `json:"final_assessment_detail,omitempty"` // 最终考核结果页面超链接字段权限要求(满足任一): 获取试用期考核信息读写试用期考核信息 +} + +// SubmitCoreHRProbationRespProbationInfoCustomField ... +type SubmitCoreHRProbationRespProbationInfoCustomField struct { + CustomApiName string `json:"custom_api_name,omitempty"` // 自定义字段 apiname, 即自定义字段的唯一标识 + Name *SubmitCoreHRProbationRespProbationInfoCustomFieldName `json:"name,omitempty"` // 自定义字段名称 + Type int64 `json:"type,omitempty"` // 自定义字段类型 + Value string `json:"value,omitempty"` // 字段值, 是 json 转义后的字符串, 根据元数据定义不同, 字段格式不同, 不同类型字段传值格式如下- 文本, 示例: "你好"- 超链接, 示例: "https://www.baidu.com/"- 数字, 示例: "123"- 布尔, 示例: "true"- 单选, 示例: "option1"- 多选, 示例: "[\"option1\", \"option2\"]"- 人员(单选), 示例: "7140964208476371111"- 人员(多选), 示例: "[\"7140964208476371111\", \"7140964208476371112\"]"- 日期, 示例: "2025-01-01" +} + +// SubmitCoreHRProbationRespProbationInfoCustomFieldName ... +type SubmitCoreHRProbationRespProbationInfoCustomFieldName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文 EnUs string `json:"en_us,omitempty"` // 英文 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGrade struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay `json:"display,omitempty"` // 枚举多语展示 +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentGrade ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentGrade struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SubmitCoreHRProbationRespProbationInfoFinalAssessmentGradeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentGradeDisplay struct { +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentGradeDisplay ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentGradeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResult struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay `json:"display,omitempty"` // 枚举多语展示 +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentResult ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentResult struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SubmitCoreHRProbationRespProbationInfoFinalAssessmentResultDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentResultDisplay struct { +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentResultDisplay ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentResultDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatus ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay ... -type CreateCorehrProbationSubmitRespProbationInfoFinalAssessmentStatusDisplay struct { +// SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatusDisplay ... +type SubmitCoreHRProbationRespProbationInfoFinalAssessmentStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// CreateCorehrProbationSubmitRespProbationInfoProbationStatus ... -type CreateCorehrProbationSubmitRespProbationInfoProbationStatus struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay `json:"display,omitempty"` // 枚举多语展示 +// SubmitCoreHRProbationRespProbationInfoProbationStatus ... +type SubmitCoreHRProbationRespProbationInfoProbationStatus struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SubmitCoreHRProbationRespProbationInfoProbationStatusDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay ... -type CreateCorehrProbationSubmitRespProbationInfoProbationStatusDisplay struct { +// SubmitCoreHRProbationRespProbationInfoProbationStatusDisplay ... +type SubmitCoreHRProbationRespProbationInfoProbationStatusDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// CreateCorehrProbationSubmitRespProbationInfoSubmissionType ... -type CreateCorehrProbationSubmitRespProbationInfoSubmissionType struct { - EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay `json:"display,omitempty"` // 枚举多语展示 +// SubmitCoreHRProbationRespProbationInfoSubmissionType ... +type SubmitCoreHRProbationRespProbationInfoSubmissionType struct { + EnumName string `json:"enum_name,omitempty"` // 枚举值 + Display []*SubmitCoreHRProbationRespProbationInfoSubmissionTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay ... -type CreateCorehrProbationSubmitRespProbationInfoSubmissionTypeDisplay struct { +// SubmitCoreHRProbationRespProbationInfoSubmissionTypeDisplay ... +type SubmitCoreHRProbationRespProbationInfoSubmissionTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// createCorehrProbationSubmitResp ... -type createCorehrProbationSubmitResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrProbationSubmitResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// submitCoreHRProbationResp ... +type submitCoreHRProbationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SubmitCoreHRProbationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_probation_withdraw.go b/api_corehr_probation_withdraw.go index 135f49dd..3a770d49 100644 --- a/api_corehr_probation_withdraw.go +++ b/api_corehr_probation_withdraw.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateCorehrProbationWithdraw 可通过本接口撤销对员工之前发起的转正 +// WithdrawCoreHRProbation 可通过本接口撤销对员工之前发起的转正 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/probation/withdraw // new doc: https://open.feishu.cn/document/corehr-v1/probation/withdraw -func (r *CoreHRService) CreateCorehrProbationWithdraw(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrProbationWithdraw != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProbationWithdraw mock enable") - return r.cli.mock.mockCoreHRCreateCorehrProbationWithdraw(ctx, request, options...) +func (r *CoreHRService) WithdrawCoreHRProbation(ctx context.Context, request *WithdrawCoreHRProbationReq, options ...MethodOptionFunc) (*WithdrawCoreHRProbationResp, *Response, error) { + if r.cli.mock.mockCoreHRWithdrawCoreHRProbation != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#WithdrawCoreHRProbation mock enable") + return r.cli.mock.mockCoreHRWithdrawCoreHRProbation(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrProbationWithdraw", + API: "WithdrawCoreHRProbation", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/probation/withdraw", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrProbationWithdrawResp) + resp := new(withdrawCoreHRProbationResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrProbationWithdraw mock CoreHRCreateCorehrProbationWithdraw method -func (r *Mock) MockCoreHRCreateCorehrProbationWithdraw(f func(ctx context.Context, request *CreateCorehrProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCorehrProbationWithdrawResp, *Response, error)) { - r.mockCoreHRCreateCorehrProbationWithdraw = f +// MockCoreHRWithdrawCoreHRProbation mock CoreHRWithdrawCoreHRProbation method +func (r *Mock) MockCoreHRWithdrawCoreHRProbation(f func(ctx context.Context, request *WithdrawCoreHRProbationReq, options ...MethodOptionFunc) (*WithdrawCoreHRProbationResp, *Response, error)) { + r.mockCoreHRWithdrawCoreHRProbation = f } -// UnMockCoreHRCreateCorehrProbationWithdraw un-mock CoreHRCreateCorehrProbationWithdraw method -func (r *Mock) UnMockCoreHRCreateCorehrProbationWithdraw() { - r.mockCoreHRCreateCorehrProbationWithdraw = nil +// UnMockCoreHRWithdrawCoreHRProbation un-mock CoreHRWithdrawCoreHRProbation method +func (r *Mock) UnMockCoreHRWithdrawCoreHRProbation() { + r.mockCoreHRWithdrawCoreHRProbation = nil } -// CreateCorehrProbationWithdrawReq ... -type CreateCorehrProbationWithdrawReq struct { +// WithdrawCoreHRProbationReq ... +type WithdrawCoreHRProbationReq struct { ClientToken *string `query:"client_token" json:"-"` // 根据 client_token 是否一致来判断是否为同一请求示例值: 6822122262122064111 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID EmploymentID string `json:"employment_id,omitempty"` // 试用期人员的雇佣 ID, 可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)接口获取示例值: "7140964208476371111" } -// CreateCorehrProbationWithdrawResp ... -type CreateCorehrProbationWithdrawResp struct { +// WithdrawCoreHRProbationResp ... +type WithdrawCoreHRProbationResp struct { } -// createCorehrProbationWithdrawResp ... -type createCorehrProbationWithdrawResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrProbationWithdrawResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// withdrawCoreHRProbationResp ... +type withdrawCoreHRProbationResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *WithdrawCoreHRProbationResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_approver_update.go b/api_corehr_process_approver_update.go index d6b7e57a..4f4bdebe 100644 --- a/api_corehr_process_approver_update.go +++ b/api_corehr_process_approver_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrProcessApprover 对于单个审批任务进行通过(提交)或拒绝操作。对于多人或签节点, 一个审批任务通过则整个节点通过;对于多人会签节点, 所有审批任务通过则节点通过。在通过(提交)时, 若表单中有必填字段, 支持写入表单字段。 +// UpdateCoreHRProcessApprover 对于单个审批任务进行通过(提交)或拒绝操作。对于多人或签节点, 一个审批任务通过则整个节点通过;对于多人会签节点, 所有审批任务通过则节点通过。在通过(提交)时, 若表单中有必填字段, 支持写入表单字段。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-approver/update // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update -func (r *CoreHRService) UpdateCorehrProcessApprover(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrProcessApprover != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessApprover mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrProcessApprover(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRProcessApprover(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRProcessApprover != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRProcessApprover mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRProcessApprover(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrProcessApprover", + API: "UpdateCoreHRProcessApprover", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/approvers/:approver_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrProcessApproverResp) + resp := new(updateCoreHRProcessApproverResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrProcessApprover mock CoreHRUpdateCorehrProcessApprover method -func (r *Mock) MockCoreHRUpdateCorehrProcessApprover(f func(ctx context.Context, request *UpdateCorehrProcessApproverReq, options ...MethodOptionFunc) (*UpdateCorehrProcessApproverResp, *Response, error)) { - r.mockCoreHRUpdateCorehrProcessApprover = f +// MockCoreHRUpdateCoreHRProcessApprover mock CoreHRUpdateCoreHRProcessApprover method +func (r *Mock) MockCoreHRUpdateCoreHRProcessApprover(f func(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRProcessApprover = f } -// UnMockCoreHRUpdateCorehrProcessApprover un-mock CoreHRUpdateCorehrProcessApprover method -func (r *Mock) UnMockCoreHRUpdateCorehrProcessApprover() { - r.mockCoreHRUpdateCorehrProcessApprover = nil +// UnMockCoreHRUpdateCoreHRProcessApprover un-mock CoreHRUpdateCoreHRProcessApprover method +func (r *Mock) UnMockCoreHRUpdateCoreHRProcessApprover() { + r.mockCoreHRUpdateCoreHRProcessApprover = nil } -// UpdateCorehrProcessApproverReq ... -type UpdateCorehrProcessApproverReq struct { +// UpdateCoreHRProcessApproverReq ... +type UpdateCoreHRProcessApproverReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7328345170959681068" ApproverID string `path:"approver_id" json:"-"` // 标识流程中一个审批节点的一个审批人的审批任务。同一个审批节点如果有多个审批人, 不同审批人的 approver_id 不同。可通过 [获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)接口获取流程中各审批任务的 approver_id。示例值: "7381468648050787884" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID @@ -66,102 +66,102 @@ type UpdateCorehrProcessApproverReq struct { UserID *string `json:"user_id,omitempty"` // 用户id, 按user_id_type类型传递。如果system_approval为false, 则必填审批任务“approver_id”对应的原审批人的user_id;为true时非必填。示例值: "ou_91791271921729102012" SystemApproval *bool `json:"system_approval,omitempty"` // 是否为系统身份审批。true - 使用系统身份审批, 若使用系统身份, 将代替approver_id对应的原审批人进行审批, 原审批人将失去审批任务的查看权限;false - 按照所传的人员身份审批示例值: true默认值: `false` Reason *string `json:"reason,omitempty"` // 通过/拒绝原因, 当拒绝时原因必填默认值: ""示例值: "原因自定义字符串" 最大长度: `1000` 字符 - FieldValuesV2 []*UpdateCorehrProcessApproverReqFieldValuesV2 `json:"field_values_v2,omitempty"` // 表单数据 长度范围: `0` ~ `100000` + FieldValuesV2 []*UpdateCoreHRProcessApproverReqFieldValuesV2 `json:"field_values_v2,omitempty"` // 表单数据 长度范围: `0` ~ `100000` } -// UpdateCorehrProcessApproverReqFieldValuesV2 ... -type UpdateCorehrProcessApproverReqFieldValuesV2 struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2 ... +type UpdateCoreHRProcessApproverReqFieldValuesV2 struct { VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识, 可通过[获取流程表单数据](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get)查询变量示例值: "custom123" - VariableValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValue `json:"variable_value,omitempty"` // 变量值 - SubValues []*UpdateCorehrProcessApproverReqFieldValuesV2SubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` + VariableValue *UpdateCoreHRProcessApproverReqFieldValuesV2VariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*UpdateCoreHRProcessApproverReqFieldValuesV2SubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` } -// UpdateCorehrProcessApproverReqFieldValuesV2SubValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2SubValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2SubValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2SubValue struct { Key *string `json:"key,omitempty"` // 用于关联list_values和record_values类型变量值中的key示例值: "key1" - Value *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue `json:"value,omitempty"` // 变量值 + Value *UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValue `json:"value,omitempty"` // 变量值 } -// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValue struct { TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" - I18nValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 - ObjectValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + I18nValue *UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。示例值: "ou_c57053dad6eea0aea4696c48433d8562" ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应sub_values中的key示例值: ["key1"] 长度范围: `0` ~ `10000` - FileValue *UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + FileValue *UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 } -// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueFileValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueFileValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueFileValue struct { OpenFileID *string `json:"open_file_id,omitempty"` // 通过在[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)上传文件后获得的ID示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` } -// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueI18nValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueI18nValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueI18nValue struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" } -// UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2SubValueValueObjectValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueObjectValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2SubValueValueObjectValue struct { WkID *string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get)示例值: "6863326263210149383" WkApiName *string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口示例值: "country_region_subdivision" } -// UpdateCorehrProcessApproverReqFieldValuesV2VariableValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2VariableValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2VariableValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2VariableValue struct { TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" - I18nValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 - ObjectValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue `json:"object_value,omitempty"` // 对象值示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + I18nValue *UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueObjectValue `json:"object_value,omitempty"` // 对象值示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。示例值: "ou_c57053dad6eea0aea4696c48433d8562" ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应sub_values中的key示例值: ["key1"] 长度范围: `0` ~ `10000` - FileValue *UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + FileValue *UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 } -// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueFileValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueFileValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueFileValue struct { OpenFileID *string `json:"open_file_id,omitempty"` // 通过在[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)上传文件后获得的ID示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` } -// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueI18nValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueI18nValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueI18nValue struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" } -// UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue ... -type UpdateCorehrProcessApproverReqFieldValuesV2VariableValueObjectValue struct { +// UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueObjectValue ... +type UpdateCoreHRProcessApproverReqFieldValuesV2VariableValueObjectValue struct { WkID *string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get)示例值: "6863326263210149383" WkApiName *string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口示例值: "country_region_subdivision" } -// UpdateCorehrProcessApproverResp ... -type UpdateCorehrProcessApproverResp struct { +// UpdateCoreHRProcessApproverResp ... +type UpdateCoreHRProcessApproverResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 } -// updateCorehrProcessApproverResp ... -type updateCorehrProcessApproverResp struct { +// updateCoreHRProcessApproverResp ... +type updateCoreHRProcessApproverResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrProcessApproverResp `json:"data,omitempty"` + Data *UpdateCoreHRProcessApproverResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_extra_update.go b/api_corehr_process_extra_update.go index 70ffa32f..c6dd28c1 100644 --- a/api_corehr_process_extra_update.go +++ b/api_corehr_process_extra_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrProcessExtra 给单个流程中的节点或审批任务加签, 加签方式有前加签、并加签、后加签三种。 +// UpdateCoreHRProcessExtra 给单个流程中的节点或审批任务加签, 加签方式有前加签、并加签、后加签三种。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-extra/update // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update-3 -func (r *CoreHRService) UpdateCorehrProcessExtra(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrProcessExtra != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessExtra mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrProcessExtra(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRProcessExtra(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRProcessExtra != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRProcessExtra mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRProcessExtra(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrProcessExtra", + API: "UpdateCoreHRProcessExtra", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/extra", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrProcessExtraResp) + resp := new(updateCoreHRProcessExtraResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrProcessExtra mock CoreHRUpdateCorehrProcessExtra method -func (r *Mock) MockCoreHRUpdateCorehrProcessExtra(f func(ctx context.Context, request *UpdateCorehrProcessExtraReq, options ...MethodOptionFunc) (*UpdateCorehrProcessExtraResp, *Response, error)) { - r.mockCoreHRUpdateCorehrProcessExtra = f +// MockCoreHRUpdateCoreHRProcessExtra mock CoreHRUpdateCoreHRProcessExtra method +func (r *Mock) MockCoreHRUpdateCoreHRProcessExtra(f func(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRProcessExtra = f } -// UnMockCoreHRUpdateCorehrProcessExtra un-mock CoreHRUpdateCorehrProcessExtra method -func (r *Mock) UnMockCoreHRUpdateCorehrProcessExtra() { - r.mockCoreHRUpdateCorehrProcessExtra = nil +// UnMockCoreHRUpdateCoreHRProcessExtra un-mock CoreHRUpdateCoreHRProcessExtra method +func (r *Mock) UnMockCoreHRUpdateCoreHRProcessExtra() { + r.mockCoreHRUpdateCoreHRProcessExtra = nil } -// UpdateCorehrProcessExtraReq ... -type UpdateCorehrProcessExtraReq struct { +// UpdateCoreHRProcessExtraReq ... +type UpdateCoreHRProcessExtraReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7410664363763172908" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID Operator *string `json:"operator,omitempty"` // 操作人, 按user_id_type类型传递;如果system_user为true, 则此字段可以不填示例值: "7184703091806602796" @@ -70,14 +70,14 @@ type UpdateCorehrProcessExtraReq struct { SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为false, 则operator必填示例值: true默认值: `false` } -// UpdateCorehrProcessExtraResp ... -type UpdateCorehrProcessExtraResp struct { +// UpdateCoreHRProcessExtraResp ... +type UpdateCoreHRProcessExtraResp struct { } -// updateCorehrProcessExtraResp ... -type updateCorehrProcessExtraResp struct { +// updateCoreHRProcessExtraResp ... +type updateCoreHRProcessExtraResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrProcessExtraResp `json:"data,omitempty"` + Data *UpdateCoreHRProcessExtraResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_flow_variable_data.go b/api_corehr_process_flow_variable_data.go index 269d7f99..fe05bb62 100644 --- a/api_corehr_process_flow_variable_data.go +++ b/api_corehr_process_flow_variable_data.go @@ -21,169 +21,169 @@ import ( "context" ) -// GetCorehrProcessFlowVariableData 根据流程实例 id(process_id)获取流程字段数据, 包括业务字段和自定义字段, 还有流程的数据(比如流程发起人、发起时间等), 仅支持飞书人事、假勤相关业务流程。 +// GetCoreHRProcessFlowVariableData 根据流程实例 id(process_id)获取流程字段数据, 包括业务字段和自定义字段, 还有流程的数据(比如流程发起人、发起时间等), 仅支持飞书人事、假勤相关业务流程。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/flow_variable_data // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/flow_variable_data -func (r *CoreHRService) GetCorehrProcessFlowVariableData(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCorehrProcessFlowVariableData != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrProcessFlowVariableData mock enable") - return r.cli.mock.mockCoreHRGetCorehrProcessFlowVariableData(ctx, request, options...) +func (r *CoreHRService) GetCoreHRProcessFlowVariableData(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRProcessFlowVariableData != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRProcessFlowVariableData mock enable") + return r.cli.mock.mockCoreHRGetCoreHRProcessFlowVariableData(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCorehrProcessFlowVariableData", + API: "GetCoreHRProcessFlowVariableData", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/flow_variable_data", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCorehrProcessFlowVariableDataResp) + resp := new(getCoreHRProcessFlowVariableDataResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCorehrProcessFlowVariableData mock CoreHRGetCorehrProcessFlowVariableData method -func (r *Mock) MockCoreHRGetCorehrProcessFlowVariableData(f func(ctx context.Context, request *GetCorehrProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFlowVariableDataResp, *Response, error)) { - r.mockCoreHRGetCorehrProcessFlowVariableData = f +// MockCoreHRGetCoreHRProcessFlowVariableData mock CoreHRGetCoreHRProcessFlowVariableData method +func (r *Mock) MockCoreHRGetCoreHRProcessFlowVariableData(f func(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error)) { + r.mockCoreHRGetCoreHRProcessFlowVariableData = f } -// UnMockCoreHRGetCorehrProcessFlowVariableData un-mock CoreHRGetCorehrProcessFlowVariableData method -func (r *Mock) UnMockCoreHRGetCorehrProcessFlowVariableData() { - r.mockCoreHRGetCorehrProcessFlowVariableData = nil +// UnMockCoreHRGetCoreHRProcessFlowVariableData un-mock CoreHRGetCoreHRProcessFlowVariableData method +func (r *Mock) UnMockCoreHRGetCoreHRProcessFlowVariableData() { + r.mockCoreHRGetCoreHRProcessFlowVariableData = nil } -// GetCorehrProcessFlowVariableDataReq ... -type GetCorehrProcessFlowVariableDataReq struct { +// GetCoreHRProcessFlowVariableDataReq ... +type GetCoreHRProcessFlowVariableDataReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取示例值: "7341373094948242956" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 department_id 来标识部门默认值: `people_corehr_department_id` VariableKeys []string `query:"variable_keys" json:"-"` // 需要查询变量key示例值: changer } -// GetCorehrProcessFlowVariableDataResp ... -type GetCorehrProcessFlowVariableDataResp struct { - FieldVariableValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 流程数据 +// GetCoreHRProcessFlowVariableDataResp ... +type GetCoreHRProcessFlowVariableDataResp struct { + FieldVariableValues []*GetCoreHRProcessFlowVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 流程数据 ProcessID string `json:"process_id,omitempty"` // 流程实例id } -// GetCorehrProcessFlowVariableDataRespFieldVariableValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 - VariableName *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 - VariableValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 - SubValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 + VariableName *GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 + VariableValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValue struct { Key string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key - Value *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 + Value *GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValue struct { TextValue string `json:"text_value,omitempty"` // 文本值 BoolValue bool `json:"bool_value,omitempty"` // 布尔值 NumberValue string `json:"number_value,omitempty"` // 数字值 EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 - I18nValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + I18nValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 UserValue string `json:"user_value,omitempty"` // 用户id, 根据user_type选择对应的用户id DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id - RecordValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + RecordValues []*GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的数组下标 - FileValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 + FileValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据文件下载接口的id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueSubValueValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableName struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableName ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValue struct { TextValue string `json:"text_value,omitempty"` // 文本值 BoolValue bool `json:"bool_value,omitempty"` // 布尔值 NumberValue string `json:"number_value,omitempty"` // 数字值 EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 - I18nValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + I18nValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 UserValue string `json:"user_value,omitempty"` // 用户id, 根据user_type选择对应的用户id DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id - RecordValues []*GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + RecordValues []*GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的数组下标 - FileValue *GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 + FileValue *GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的文件下载Open API下载 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据文件下载接口的id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 } -// GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue ... -type GetCorehrProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue struct { +// GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue ... +type GetCoreHRProcessFlowVariableDataRespFieldVariableValueVariableValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// getCorehrProcessFlowVariableDataResp ... -type getCorehrProcessFlowVariableDataResp struct { +// getCoreHRProcessFlowVariableDataResp ... +type getCoreHRProcessFlowVariableDataResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCorehrProcessFlowVariableDataResp `json:"data,omitempty"` + Data *GetCoreHRProcessFlowVariableDataResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_form_variable_data_get.go b/api_corehr_process_form_variable_data_get.go index 7c8f7250..c5c7c977 100644 --- a/api_corehr_process_form_variable_data_get.go +++ b/api_corehr_process_form_variable_data_get.go @@ -23,10 +23,10 @@ import ( // GetCoreHRProcessFormVariableData 根据流程实例 id(process_id)获取流程表单字段数据, 包括表单里的业务字段和自定义字段。仅支持飞书人事、假勤相关业务流程。 // -// 建议使用新版本 API 文档。详情参见[获取流程表单数据](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get)。 +// 注: [旧版 API](https://open.larkoffice.com/document/server-docs/corehr-v1/process-form_variable_data/get) 文档已移动到【历史版本】目录。 // -// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/process-form_variable_data/get -// new doc: https://open.feishu.cn/document/server-docs/corehr-v1/process-form_variable_data/get +// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get +// new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/get-2 func (r *CoreHRService) GetCoreHRProcessFormVariableData(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) { if r.cli.mock.mockCoreHRGetCoreHRProcessFormVariableData != nil { r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRProcessFormVariableData mock enable") @@ -37,7 +37,7 @@ func (r *CoreHRService) GetCoreHRProcessFormVariableData(ctx context.Context, re Scope: "CoreHR", API: "GetCoreHRProcessFormVariableData", Method: "GET", - URL: r.cli.openBaseURL + "/open-apis/corehr/v1/processes/:process_id/form_variable_data", + URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/form_variable_data", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, @@ -60,269 +60,125 @@ func (r *Mock) UnMockCoreHRGetCoreHRProcessFormVariableData() { // GetCoreHRProcessFormVariableDataReq ... type GetCoreHRProcessFormVariableDataReq struct { - ProcessID string `path:"process_id" json:"-"` // 流程实例 ID示例值: "123456987" + ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7341373094948242956" + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` } // GetCoreHRProcessFormVariableDataResp ... type GetCoreHRProcessFormVariableDataResp struct { - FieldVariableValues []*GetCoreHRProcessFormVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 流程变量 + FieldVariableValues []*GetCoreHRProcessFormVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 表单数据 + ProcessID string `json:"process_id,omitempty"` // 流程实例id } // GetCoreHRProcessFormVariableDataRespFieldVariableValue ... type GetCoreHRProcessFormVariableDataRespFieldVariableValue struct { - VariableApiName string `json:"variable_api_name,omitempty"` // 变量api名称 - VariableName *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称的i18n描述 - VariableValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值的对象 + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableName *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 + VariableValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在 list_values 和 record_values 中引用的变量 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue struct { - TextValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueTextValue `json:"text_value,omitempty"` // 文本变量对象 - NumberValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueNumberValue `json:"number_value,omitempty"` // 数值变量对象 - DateValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateValue `json:"date_value,omitempty"` // 日期变量对象 - EmploymentValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEmploymentValue `json:"employment_value,omitempty"` // 员工变量对象 - DateTimeValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateTimeValue `json:"date_time_value,omitempty"` // 日期时间变量对象 - EnumValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValue `json:"enum_value,omitempty"` // 枚举变量对象 - BoolValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueBoolValue `json:"bool_value,omitempty"` // 布尔变量对象 - DepartmentValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDepartmentValue `json:"department_value,omitempty"` // 部门变量对象 - FileValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件变量对象 - I18nValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // i18n变量对象 - ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象变量 - ListValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValue `json:"list_value,omitempty"` // 列表对象 - RecordValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_value,omitempty"` // 记录对象 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueBoolValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueBoolValue struct { - Value bool `json:"value,omitempty"` // 布尔变量的值 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联 list 和 record 类型变量值中的 key + Value *GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateTimeValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateTimeValue struct { - Value int64 `json:"value,omitempty"` // 毫秒的时间戳。注: 此字段数据类型为 int64 - Zone string `json:"zone,omitempty"` // 时区, +08:00 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDateValue struct { - Value int64 `json:"value,omitempty"` // 日期变量的值, 从1970起的天数 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue struct { + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)接口的id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDepartmentValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueDepartmentValue struct { - Value string `json:"value,omitempty"` // 部门ID +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEmploymentValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEmploymentValue struct { - Value string `json:"value,omitempty"` // employmentID - UserID string `json:"user_id,omitempty"` // 员工ID 如3158117 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue struct { + WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) + WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValue struct { - Value string `json:"value,omitempty"` // 枚举值 - Name *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueName `json:"name,omitempty"` // 枚举的名称 - Desc *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueDesc `json:"desc,omitempty"` // 枚举的描述 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueDesc ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueDesc struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableName struct { + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueName ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueEnumValueName struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 +// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue ... +type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数示例值: 19688 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 } // GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueFileValue ... type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueFileValue struct { - SourceType int64 `json:"source_type,omitempty"` // 文件源类型(1BPM; 2主数据) - FileID string `json:"file_id,omitempty"` // 文件id - FileName string `json:"file_name,omitempty"` // 文件名称 - Length int64 `json:"length,omitempty"` // 文件长度 - MimeType string `json:"mime_type,omitempty"` // 扩展类型 + OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载接口的入参id + FileName string `json:"file_name,omitempty"` // 文件名称 + Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte + MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } // GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue ... type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue struct { - Value *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValueValue `json:"value,omitempty"` // i18n值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValueValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueI18nValueValue struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValue struct { - Values []*GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValue `json:"values,omitempty"` // 列表值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValue struct { - TextValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueTextValue `json:"text_value,omitempty"` // 文本变量对象 - NumberValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueNumberValue `json:"number_value,omitempty"` // 数值变量对象 - DateValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateValue `json:"date_value,omitempty"` // 日期变量对象 - EmploymentValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEmploymentValue `json:"employment_value,omitempty"` // 员工变量对象 - DateTimeValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateTimeValue `json:"date_time_value,omitempty"` // 日期时间变量对象 - EnumValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValue `json:"enum_value,omitempty"` // 枚举变量对象 - BoolValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueBoolValue `json:"bool_value,omitempty"` // 布尔变量对象 - DepartmentValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDepartmentValue `json:"department_value,omitempty"` // 部门变量对象 - FileValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueFileValue `json:"file_value,omitempty"` // 文件变量对象 - I18nValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValue `json:"i18n_value,omitempty"` // i18n变量对象 - ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueObjectValue `json:"object_value,omitempty"` // 对象变量 - RecordValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValue `json:"record_value,omitempty"` // 记录对象 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueBoolValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueBoolValue struct { - Value bool `json:"value,omitempty"` // 布尔变量的值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateTimeValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateTimeValue struct { - Value int64 `json:"value,omitempty"` // 毫秒的时间戳。注: 此字段数据类型为 int64 - Zone string `json:"zone,omitempty"` // 时区, +08:00 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDateValue struct { - Value int64 `json:"value,omitempty"` // 日期变量的值, 从1970起的天数 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDepartmentValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueDepartmentValue struct { - Value string `json:"value,omitempty"` // 部门ID -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEmploymentValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEmploymentValue struct { - Value string `json:"value,omitempty"` // employmentID - UserID string `json:"user_id,omitempty"` // 员工ID 如3158117 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValue struct { - Value string `json:"value,omitempty"` // 枚举值 - Name *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueName `json:"name,omitempty"` // 枚举的名称 - Desc *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueDesc `json:"desc,omitempty"` // 枚举的描述 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueDesc ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueDesc struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueName ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueEnumValueName struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueFileValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueFileValue struct { - SourceType int64 `json:"source_type,omitempty"` // 文件源类型(1BPM; 2主数据) - FileID string `json:"file_id,omitempty"` // 文件id - FileName string `json:"file_name,omitempty"` // 文件名称 - Length int64 `json:"length,omitempty"` // 文件长度 - MimeType string `json:"mime_type,omitempty"` // 扩展类型 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValue struct { - Value *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValueValue `json:"value,omitempty"` // i18n值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValueValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueI18nValueValue struct { - ZhCn string `json:"zh_cn,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为zh_cn, 但在实际返回的 JSON Key 中展示为 zh-CN)i18n类型字段, 中文值 - EnUs string `json:"en_us,omitempty"` // (基于系统兼容性, 该参数名称在文档中展示为en_us, 但在实际返回的 JSON Key 中展示为 en-US)i18n类型字段, 英文值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueNumberValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueNumberValue struct { - Value string `json:"value,omitempty"` // 数值类型变量的值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueObjectValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueObjectValue struct { - Value string `json:"value,omitempty"` // 对象ID - WkApiName string `json:"wk_api_name,omitempty"` // 主数据apiName -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValue struct { - Values *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValues `json:"values,omitempty"` // 注: 该参数实际为 Map 数据类型, Key 是变量唯一标识, Value 是变量值。 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValues ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValues struct { - CountryRegion *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegion `json:"country_region,omitempty"` // 这个属性名称是map的key的示例, 属性值是map的value的示例, 值和外层的variable_value是的一样的结构。 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegion ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegion struct { - ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegionObjectValue `json:"object_value,omitempty"` // 文本变量对象 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegionObjectValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueRecordValueValuesCountryRegionObjectValue struct { - Value string `json:"value,omitempty"` // 对象ID - WkApiName string `json:"wk_api_name,omitempty"` // 主数据apiName -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueTextValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueListValueValueTextValue struct { - Value string `json:"value,omitempty"` // 文本类型变量的值 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueNumberValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueNumberValue struct { - Value string `json:"value,omitempty"` // 数值类型变量的值 + ZhCn string `json:"zh_cn,omitempty"` // 中文值 + EnUs string `json:"en_us,omitempty"` // 英文值 } // GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue ... type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue struct { - Value string `json:"value,omitempty"` // 对象ID - WkApiName string `json:"wk_api_name,omitempty"` // 主数据apiName + WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) + WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 } // GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue ... type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue struct { - Values *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValues `json:"values,omitempty"` // 注: 该参数实际为 Map 数据类型, Key 是变量唯一标识, Value 是变量值。 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValues ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValues struct { - CountryRegion *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegion `json:"country_region,omitempty"` // 这个属性名称是map的key的示例, 属性值是map的value的示例, 值和外层的variable_value是的一样的结构。 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegion ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegion struct { - ObjectValue *GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegionObjectValue `json:"object_value,omitempty"` // 文本变量对象 -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegionObjectValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueRecordValueValuesCountryRegionObjectValue struct { - Value string `json:"value,omitempty"` // 对象ID - WkApiName string `json:"wk_api_name,omitempty"` // 主数据apiName -} - -// GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueTextValue ... -type GetCoreHRProcessFormVariableDataRespFieldVariableValueVariableValueTextValue struct { - Value string `json:"value,omitempty"` // 文本类型变量的值 + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key + RecordID string `json:"record_id,omitempty"` // 记录唯一ID } // getCoreHRProcessFormVariableDataResp ... diff --git a/api_corehr_process_form_variable_data_get_v2.go b/api_corehr_process_form_variable_data_get_v2.go index 71c06d0b..2cbb7a13 100644 --- a/api_corehr_process_form_variable_data_get_v2.go +++ b/api_corehr_process_form_variable_data_get_v2.go @@ -21,170 +21,170 @@ import ( "context" ) -// GetCorehrProcessFormVariableData 根据流程实例 id(process_id)获取流程表单字段数据, 包括表单里的业务字段和自定义字段。仅支持飞书人事、假勤相关业务流程。 +// GetCoreHRProcessFormVariableDataV2 根据流程实例 id(process_id)获取流程表单字段数据, 包括表单里的业务字段和自定义字段。仅支持飞书人事、假勤相关业务流程。 // // 注: [旧版 API](https://open.larkoffice.com/document/server-docs/corehr-v1/process-form_variable_data/get) 文档已移动到【历史版本】目录。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-form_variable_data/get // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/get-2 -func (r *CoreHRService) GetCorehrProcessFormVariableData(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error) { - if r.cli.mock.mockCoreHRGetCorehrProcessFormVariableData != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCorehrProcessFormVariableData mock enable") - return r.cli.mock.mockCoreHRGetCorehrProcessFormVariableData(ctx, request, options...) +func (r *CoreHRService) GetCoreHRProcessFormVariableDataV2(ctx context.Context, request *GetCoreHRProcessFormVariableDataV2Req, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRGetCoreHRProcessFormVariableDataV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#GetCoreHRProcessFormVariableDataV2 mock enable") + return r.cli.mock.mockCoreHRGetCoreHRProcessFormVariableDataV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "GetCorehrProcessFormVariableData", + API: "GetCoreHRProcessFormVariableDataV2", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/form_variable_data", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(getCorehrProcessFormVariableDataResp) + resp := new(getCoreHRProcessFormVariableDataV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRGetCorehrProcessFormVariableData mock CoreHRGetCorehrProcessFormVariableData method -func (r *Mock) MockCoreHRGetCorehrProcessFormVariableData(f func(ctx context.Context, request *GetCorehrProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCorehrProcessFormVariableDataResp, *Response, error)) { - r.mockCoreHRGetCorehrProcessFormVariableData = f +// MockCoreHRGetCoreHRProcessFormVariableDataV2 mock CoreHRGetCoreHRProcessFormVariableDataV2 method +func (r *Mock) MockCoreHRGetCoreHRProcessFormVariableDataV2(f func(ctx context.Context, request *GetCoreHRProcessFormVariableDataV2Req, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataV2Resp, *Response, error)) { + r.mockCoreHRGetCoreHRProcessFormVariableDataV2 = f } -// UnMockCoreHRGetCorehrProcessFormVariableData un-mock CoreHRGetCorehrProcessFormVariableData method -func (r *Mock) UnMockCoreHRGetCorehrProcessFormVariableData() { - r.mockCoreHRGetCorehrProcessFormVariableData = nil +// UnMockCoreHRGetCoreHRProcessFormVariableDataV2 un-mock CoreHRGetCoreHRProcessFormVariableDataV2 method +func (r *Mock) UnMockCoreHRGetCoreHRProcessFormVariableDataV2() { + r.mockCoreHRGetCoreHRProcessFormVariableDataV2 = nil } -// GetCorehrProcessFormVariableDataReq ... -type GetCorehrProcessFormVariableDataReq struct { +// GetCoreHRProcessFormVariableDataV2Req ... +type GetCoreHRProcessFormVariableDataV2Req struct { ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7341373094948242956" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: people_corehr_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `people_corehr_department_id` } -// GetCorehrProcessFormVariableDataResp ... -type GetCorehrProcessFormVariableDataResp struct { - FieldVariableValues []*GetCorehrProcessFormVariableDataRespFieldVariableValue `json:"field_variable_values,omitempty"` // 表单数据 - ProcessID string `json:"process_id,omitempty"` // 流程实例id +// GetCoreHRProcessFormVariableDataV2Resp ... +type GetCoreHRProcessFormVariableDataV2Resp struct { + FieldVariableValues []*GetCoreHRProcessFormVariableDataV2RespFieldVariableValue `json:"field_variable_values,omitempty"` // 表单数据 + ProcessID string `json:"process_id,omitempty"` // 流程实例id } -// GetCorehrProcessFormVariableDataRespFieldVariableValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValue struct { - VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 - VariableName *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 - VariableValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 - SubValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在 list_values 和 record_values 中引用的变量 +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableName *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableName `json:"variable_name,omitempty"` // 变量名称 + VariableValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValue `json:"sub_values,omitempty"` // 在 list_values 和 record_values 中引用的变量 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValue struct { - Key string `json:"key,omitempty"` // 用于关联 list 和 record 类型变量值中的 key - Value *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联 list 和 record 类型变量值中的 key + Value *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValue `json:"value,omitempty"` // 变量值 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValue struct { - TextValue string `json:"text_value,omitempty"` // 文本值 - BoolValue bool `json:"bool_value,omitempty"` // 布尔值 - NumberValue string `json:"number_value,omitempty"` // 数字值 - EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id - DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数 - DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 - I18nValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值 - UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id - DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 - RecordValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 - EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 - ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 - FileValue *GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueFileValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueFileValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)接口的id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueI18nValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueI18nValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueObjectValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueObjectValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueSubValueValueRecordValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueRecordValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueSubValueValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableName struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableName ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableName struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValue struct { - TextValue string `json:"text_value,omitempty"` // 文本值 - BoolValue bool `json:"bool_value,omitempty"` // 布尔值 - NumberValue string `json:"number_value,omitempty"` // 数字值 - EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id - DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数示例值: 19688 - DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 - I18nValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值 - UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id - DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 - RecordValues []*GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 - EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 - ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 - FileValue *GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 -} - -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueFileValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的 id + DateValue string `json:"date_value,omitempty"` // 日期值, 单位: 天。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的天数示例值: 19688 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间值, 单位: ms。从 1970 年 1 月 1 日 (UTC/GMT的午夜) 开始经过的毫秒数示例值: 1719549169735 + I18nValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值 + UserValue string `json:"user_value,omitempty"` // 用户 id, 根据查询参数 user_id_type 选择对应的用户 id + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据查询参数department_id_type类型选择对应的部门id。可通过[搜索部门信息](https://open.larkoffice.com/document/server-docs/corehr-v1/organization-management/department/search) 或 [批量查询部门( V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)接口查询详情。 + RecordValues []*GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueRecordValue `json:"record_values,omitempty"` // 记录类型字段值 + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择的user_id_type类型返回的用户id。可通过[搜索员工信息](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/search) 或 [批量查询员工信息](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get)接口查询详情。 + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应 sub_values 中的数组下标 + FileValue *GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值, 可通过主数据的[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载 +} + +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueFileValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 用于主数据[文件下载Open API](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/get-2)下载接口的入参id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte MimeType string `json:"mime_type,omitempty"` // 文件类型, 如`application/pdf` } -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueI18nValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueI18nValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueObjectValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueObjectValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // 飞书人事主数据对象唯一标识。例如: wk_api_name为"job"时, wk_id代表职务ID。详请可参考[查询单个职务(V2)](https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/get)wk_api_name为"job_level"时, wk_id代表职级ID。详情可参考[查询单个职级](https://open.larkoffice.com/document/server-docs/corehr-v1/job-management/job_level/get) WkApiName string `json:"wk_api_name,omitempty"` // 飞书人事元数据对象的唯一标识。例如: 职务的wk_api_name为"job";职级的wk_api_name为"job_level";如需获取更多对象信息, 可查询[获取飞书人事对象列表](https://open.larkoffice.com/document/server-docs/corehr-v1/basic-infomation/custom_field/list_object_api_name)接口 } -// GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue ... -type GetCorehrProcessFormVariableDataRespFieldVariableValueVariableValueRecordValue struct { +// GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueRecordValue ... +type GetCoreHRProcessFormVariableDataV2RespFieldVariableValueVariableValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// getCorehrProcessFormVariableDataResp ... -type getCorehrProcessFormVariableDataResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *GetCorehrProcessFormVariableDataResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// getCoreHRProcessFormVariableDataV2Resp ... +type getCoreHRProcessFormVariableDataV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *GetCoreHRProcessFormVariableDataV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_query_flow_data_template_create.go b/api_corehr_process_query_flow_data_template_create.go index 7af55497..125830c1 100644 --- a/api_corehr_process_query_flow_data_template_create.go +++ b/api_corehr_process_query_flow_data_template_create.go @@ -21,158 +21,158 @@ import ( "context" ) -// CreateCorehrProcessQueryFlowDataTemplate 通过传入流程定义 ID 和变量的 ApiName, 获取 process_form_variable_v2[] 类型参数模板。 +// QueryCoreHRProcessFlowDataTemplate 通过传入流程定义 ID 和变量的 ApiName, 获取 process_form_variable_v2[] 类型参数模板。 // // 该接口用于帮助开发人员理解 process_form_variable_v2[] 的数据结构, 业务生产环境不建议使用。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-query_flow_data_template/create -func (r *CoreHRService) CreateCorehrProcessQueryFlowDataTemplate(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProcessQueryFlowDataTemplate mock enable") - return r.cli.mock.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRProcessFlowDataTemplate(ctx context.Context, request *QueryCoreHRProcessFlowDataTemplateReq, options ...MethodOptionFunc) (*QueryCoreHRProcessFlowDataTemplateResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRProcessFlowDataTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRProcessFlowDataTemplate mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRProcessFlowDataTemplate(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrProcessQueryFlowDataTemplate", + API: "QueryCoreHRProcessFlowDataTemplate", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/query_flow_data_template", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrProcessQueryFlowDataTemplateResp) + resp := new(queryCoreHRProcessFlowDataTemplateResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrProcessQueryFlowDataTemplate mock CoreHRCreateCorehrProcessQueryFlowDataTemplate method -func (r *Mock) MockCoreHRCreateCorehrProcessQueryFlowDataTemplate(f func(ctx context.Context, request *CreateCorehrProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCorehrProcessQueryFlowDataTemplateResp, *Response, error)) { - r.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate = f +// MockCoreHRQueryCoreHRProcessFlowDataTemplate mock CoreHRQueryCoreHRProcessFlowDataTemplate method +func (r *Mock) MockCoreHRQueryCoreHRProcessFlowDataTemplate(f func(ctx context.Context, request *QueryCoreHRProcessFlowDataTemplateReq, options ...MethodOptionFunc) (*QueryCoreHRProcessFlowDataTemplateResp, *Response, error)) { + r.mockCoreHRQueryCoreHRProcessFlowDataTemplate = f } -// UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate un-mock CoreHRCreateCorehrProcessQueryFlowDataTemplate method -func (r *Mock) UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate() { - r.mockCoreHRCreateCorehrProcessQueryFlowDataTemplate = nil +// UnMockCoreHRQueryCoreHRProcessFlowDataTemplate un-mock CoreHRQueryCoreHRProcessFlowDataTemplate method +func (r *Mock) UnMockCoreHRQueryCoreHRProcessFlowDataTemplate() { + r.mockCoreHRQueryCoreHRProcessFlowDataTemplate = nil } -// CreateCorehrProcessQueryFlowDataTemplateReq ... -type CreateCorehrProcessQueryFlowDataTemplateReq struct { +// QueryCoreHRProcessFlowDataTemplateReq ... +type QueryCoreHRProcessFlowDataTemplateReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义ID。获取方式: 管理员在设置侧配置的流程, 浏览器 URL 为 `https://{域名}/people/approvals/flow-builder/people_7023711013443944467_7554571297192562476`, 其中 `people_7023711013443944467_7554571297192562476` 为当前流程的流程定义 ID。示例值: "people_7023711013443944467_7437160904904494892" VariableApiNames []string `json:"variable_api_names,omitempty"` // 需要传入的变量的ApiName。如果是多级下钻变量用"."分割。字段的ApiName查询方式: 1. 进入飞书人事 -> 设置 -> 流程设置 -> 流程管理。2. 点击flow_definition_id对应的流程的"编辑"按钮, 点击右上角"下一步", 进入"2. 流程设计"页面3. 点击左侧的“变量”, 找到你需要查询的变量, 点击变量右侧的“API”按钮, 复制变量的ApiName。多级下钻变量举例, 例如“批量异动.新部门”, 分别按上面的步骤找到"批量异动"的ApiName为"batch_job_change", 新部门的ApiName为"target_department", 并用"."分割, 则传参为"batch_job_change.target_department"。示例值: ["custome3adb7eb040.custom_field_2__c"] 长度范围: `1` ~ `1000` } -// CreateCorehrProcessQueryFlowDataTemplateResp ... -type CreateCorehrProcessQueryFlowDataTemplateResp struct { - FieldValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValue `json:"field_values,omitempty"` // 流程参数模板 - ErrorInfo string `json:"error_info,omitempty"` // 错误信息。说明如下: 1. "variableAPIName [custome3adb7eb040] is invalid, record type cannot assign value, must assign record's drill down apiName", 表示custome3adb7eb040 这个 Record 类型变量未传下钻变量值2. "variableAPIName [custome3adb7eb040.custom_field_3__c] is invalid, not found drill down apiName [custom_field_3__c]", 表示 custom_field_3__c 这个下钻变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试3. "variableAPIName [customc17e5b301ef] is invalid, not found root apiName [customc17e5b301ef]", 表示 customc17e5b301ef 这个变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试4. "variableAPIName [customc17e5b301ea.custom1dddafc864a] is invalid, [customc17e5b301ea] cannot drill down", 表示 customc17e5b301ea 不是Record 类型变量, 不可下钻 +// QueryCoreHRProcessFlowDataTemplateResp ... +type QueryCoreHRProcessFlowDataTemplateResp struct { + FieldValues []*QueryCoreHRProcessFlowDataTemplateRespFieldValue `json:"field_values,omitempty"` // 流程参数模板 + ErrorInfo string `json:"error_info,omitempty"` // 错误信息。说明如下: 1. "variableAPIName [custome3adb7eb040] is invalid, record type cannot assign value, must assign record's drill down apiName", 表示custome3adb7eb040 这个 Record 类型变量未传下钻变量值2. "variableAPIName [custome3adb7eb040.custom_field_3__c] is invalid, not found drill down apiName [custom_field_3__c]", 表示 custom_field_3__c 这个下钻变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试3. "variableAPIName [customc17e5b301ef] is invalid, not found root apiName [customc17e5b301ef]", 表示 customc17e5b301ef 这个变量未找到。请检查 ApiName 是否正确, 或重新发布流程后重试4. "variableAPIName [customc17e5b301ea.custom1dddafc864a] is invalid, [customc17e5b301ea] cannot drill down", 表示 customc17e5b301ea 不是Record 类型变量, 不可下钻 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValue struct { - VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 - VariableValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue `json:"variable_value,omitempty"` // 变量值 - SubValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 +// QueryCoreHRProcessFlowDataTemplateRespFieldValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValue struct { + VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 + VariableValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValue struct { - Key string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key - Value *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue `json:"value,omitempty"` // 变量值 +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValue struct { + Key string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key + Value *QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValue `json:"value,omitempty"` // 变量值 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValue struct { - TextValue string `json:"text_value,omitempty"` // 文本值 - BoolValue bool `json:"bool_value,omitempty"` // 布尔值 - NumberValue string `json:"number_value,omitempty"` // 数字值 - EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id - DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 - DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 - I18nValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 - DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id - EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id - ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key - FileValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 - RecordValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key + FileValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueFileValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueFileValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 主数据的文件id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueI18nValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueI18nValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueObjectValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueObjectValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueSubValueValueRecordValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueRecordValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueSubValueValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValue struct { - TextValue string `json:"text_value,omitempty"` // 文本值 - BoolValue bool `json:"bool_value,omitempty"` // 布尔值 - NumberValue string `json:"number_value,omitempty"` // 数字值 - EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id - DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 - DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 - I18nValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 - ObjectValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 - DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id - EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id - ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key - FileValue *CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 - RecordValues []*CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 -} - -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueFileValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValue struct { + TextValue string `json:"text_value,omitempty"` // 文本值 + BoolValue bool `json:"bool_value,omitempty"` // 布尔值 + NumberValue string `json:"number_value,omitempty"` // 数字值 + EnumValue string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id + DateValue string `json:"date_value,omitempty"` // 从 1970 开始的天数 + DateTimeValue string `json:"date_time_value,omitempty"` // 时间戳, 毫秒 + I18nValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值 + ObjectValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型 + DepartmentValue string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id + EmploymentValue string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id + ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key + FileValue *QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 +} + +// QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueFileValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueFileValue struct { OpenFileID string `json:"open_file_id,omitempty"` // 主数据的文件id FileName string `json:"file_name,omitempty"` // 文件名称 Length int64 `json:"length,omitempty"` // 文件大小, 单位: Byte } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueI18nValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueI18nValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueI18nValue struct { ZhCn string `json:"zh_cn,omitempty"` // 中文值 EnUs string `json:"en_us,omitempty"` // 英文值 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueObjectValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueObjectValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueObjectValue struct { WkID string `json:"wk_id,omitempty"` // wukong的对象唯一标识 WkApiName string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识 } -// CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue ... -type CreateCorehrProcessQueryFlowDataTemplateRespFieldValueVariableValueRecordValue struct { +// QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueRecordValue ... +type QueryCoreHRProcessFlowDataTemplateRespFieldValueVariableValueRecordValue struct { VariableApiName string `json:"variable_api_name,omitempty"` // 变量唯一标识 SubValueKey string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key RecordID string `json:"record_id,omitempty"` // 记录唯一ID } -// createCorehrProcessQueryFlowDataTemplateResp ... -type createCorehrProcessQueryFlowDataTemplateResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrProcessQueryFlowDataTemplateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// queryCoreHRProcessFlowDataTemplateResp ... +type queryCoreHRProcessFlowDataTemplateResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *QueryCoreHRProcessFlowDataTemplateResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_revoke_update.go b/api_corehr_process_revoke_update.go index 760a4842..d0b3440c 100644 --- a/api_corehr_process_revoke_update.go +++ b/api_corehr_process_revoke_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrProcessRevoke 撤销单个流程, 状态为已完成的流程能够进行撤销, 使用时需指定操作人, 目前支持流程管理员和审批单管理员。 +// UpdateCoreHRProcessRevoke 撤销单个流程, 状态为已完成的流程能够进行撤销, 使用时需指定操作人, 目前支持流程管理员和审批单管理员。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_revoke/update // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/update-2 -func (r *CoreHRService) UpdateCorehrProcessRevoke(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrProcessRevoke != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessRevoke mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrProcessRevoke(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRProcessRevoke(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRProcessRevoke != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRProcessRevoke mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRProcessRevoke(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrProcessRevoke", + API: "UpdateCoreHRProcessRevoke", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_revoke/:process_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrProcessRevokeResp) + resp := new(updateCoreHRProcessRevokeResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrProcessRevoke mock CoreHRUpdateCorehrProcessRevoke method -func (r *Mock) MockCoreHRUpdateCorehrProcessRevoke(f func(ctx context.Context, request *UpdateCorehrProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCorehrProcessRevokeResp, *Response, error)) { - r.mockCoreHRUpdateCorehrProcessRevoke = f +// MockCoreHRUpdateCoreHRProcessRevoke mock CoreHRUpdateCoreHRProcessRevoke method +func (r *Mock) MockCoreHRUpdateCoreHRProcessRevoke(f func(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRProcessRevoke = f } -// UnMockCoreHRUpdateCorehrProcessRevoke un-mock CoreHRUpdateCorehrProcessRevoke method -func (r *Mock) UnMockCoreHRUpdateCorehrProcessRevoke() { - r.mockCoreHRUpdateCorehrProcessRevoke = nil +// UnMockCoreHRUpdateCoreHRProcessRevoke un-mock CoreHRUpdateCoreHRProcessRevoke method +func (r *Mock) UnMockCoreHRUpdateCoreHRProcessRevoke() { + r.mockCoreHRUpdateCoreHRProcessRevoke = nil } -// UpdateCorehrProcessRevokeReq ... -type UpdateCorehrProcessRevokeReq struct { +// UpdateCoreHRProcessRevokeReq ... +type UpdateCoreHRProcessRevokeReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例 ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取 示例值: "7328345170959681068" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)people corehr系统的用户id默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID UserID *string `json:"user_id,omitempty"` // 按照查询参数中指定的用户ID类型传递对应的用户ID, 默认为Open ID。示例值: "ou_91791271921729102012" @@ -65,14 +65,14 @@ type UpdateCorehrProcessRevokeReq struct { SystemUser *bool `json:"system_user,omitempty"` // true-系统身份操作示例值: true默认值: `false` } -// UpdateCorehrProcessRevokeResp ... -type UpdateCorehrProcessRevokeResp struct { +// UpdateCoreHRProcessRevokeResp ... +type UpdateCoreHRProcessRevokeResp struct { } -// updateCorehrProcessRevokeResp ... -type updateCorehrProcessRevokeResp struct { +// updateCoreHRProcessRevokeResp ... +type updateCoreHRProcessRevokeResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrProcessRevokeResp `json:"data,omitempty"` + Data *UpdateCoreHRProcessRevokeResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_start_create.go b/api_corehr_process_start_create.go index 0b01d639..a264c4fc 100644 --- a/api_corehr_process_start_create.go +++ b/api_corehr_process_start_create.go @@ -21,159 +21,159 @@ import ( "context" ) -// CreateCorehrProcessStart 发起一个流程实例, 目前只支持发起自定义业务类型的流程。 +// CreateCoreHRProcessStart 发起一个流程实例, 目前只支持发起自定义业务类型的流程。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_start/create // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/create -func (r *CoreHRService) CreateCorehrProcessStart(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrProcessStart != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrProcessStart mock enable") - return r.cli.mock.mockCoreHRCreateCorehrProcessStart(ctx, request, options...) +func (r *CoreHRService) CreateCoreHRProcessStart(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error) { + if r.cli.mock.mockCoreHRCreateCoreHRProcessStart != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCoreHRProcessStart mock enable") + return r.cli.mock.mockCoreHRCreateCoreHRProcessStart(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrProcessStart", + API: "CreateCoreHRProcessStart", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_start", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrProcessStartResp) + resp := new(createCoreHRProcessStartResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrProcessStart mock CoreHRCreateCorehrProcessStart method -func (r *Mock) MockCoreHRCreateCorehrProcessStart(f func(ctx context.Context, request *CreateCorehrProcessStartReq, options ...MethodOptionFunc) (*CreateCorehrProcessStartResp, *Response, error)) { - r.mockCoreHRCreateCorehrProcessStart = f +// MockCoreHRCreateCoreHRProcessStart mock CoreHRCreateCoreHRProcessStart method +func (r *Mock) MockCoreHRCreateCoreHRProcessStart(f func(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error)) { + r.mockCoreHRCreateCoreHRProcessStart = f } -// UnMockCoreHRCreateCorehrProcessStart un-mock CoreHRCreateCorehrProcessStart method -func (r *Mock) UnMockCoreHRCreateCorehrProcessStart() { - r.mockCoreHRCreateCorehrProcessStart = nil +// UnMockCoreHRCreateCoreHRProcessStart un-mock CoreHRCreateCoreHRProcessStart method +func (r *Mock) UnMockCoreHRCreateCoreHRProcessStart() { + r.mockCoreHRCreateCoreHRProcessStart = nil } -// CreateCorehrProcessStartReq ... -type CreateCorehrProcessStartReq struct { +// CreateCoreHRProcessStartReq ... +type CreateCoreHRProcessStartReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 类型示例值: open_department_id可选值有: 以 open_department_id 来标识部门以 department_id 来标识部门以 people_corehr_department_id 来标识部门默认值: `open_department_id` FlowDefinitionID string `json:"flow_definition_id,omitempty"` // 流程定义id示例值: "people_7023711013443944467_7437160904904494892" InitiatorID *string `json:"initiator_id,omitempty"` // 发起人用户ID, 按user_id_type类型传递。如果system_initiator为false, 则必填;为true时非必填。示例值: "ou_91791271921729102012" SystemInitiator *bool `json:"system_initiator,omitempty"` // 是否为系统身份发起流程, 如果为false, 则initiator_id必填示例值: true - FlowData []*CreateCorehrProcessStartReqFlowData `json:"flow_data,omitempty"` // 业务数据 长度范围: `0` ~ `100000` + FlowData []*CreateCoreHRProcessStartReqFlowData `json:"flow_data,omitempty"` // 业务数据 长度范围: `0` ~ `100000` } -// CreateCorehrProcessStartReqFlowData ... -type CreateCorehrProcessStartReqFlowData struct { +// CreateCoreHRProcessStartReqFlowData ... +type CreateCoreHRProcessStartReqFlowData struct { VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "custom123" - VariableValue *CreateCorehrProcessStartReqFlowDataVariableValue `json:"variable_value,omitempty"` // 变量值 - SubValues []*CreateCorehrProcessStartReqFlowDataSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` + VariableValue *CreateCoreHRProcessStartReqFlowDataVariableValue `json:"variable_value,omitempty"` // 变量值 + SubValues []*CreateCoreHRProcessStartReqFlowDataSubValue `json:"sub_values,omitempty"` // 在list_values和record_values中引用的变量 长度范围: `0` ~ `100000` } -// CreateCorehrProcessStartReqFlowDataSubValue ... -type CreateCorehrProcessStartReqFlowDataSubValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValue ... +type CreateCoreHRProcessStartReqFlowDataSubValue struct { Key *string `json:"key,omitempty"` // 用于关联list和record类型变量值中的key示例值: "key1" - Value *CreateCorehrProcessStartReqFlowDataSubValueValue `json:"value,omitempty"` // 变量值 + Value *CreateCoreHRProcessStartReqFlowDataSubValueValue `json:"value,omitempty"` // 变量值 } -// CreateCorehrProcessStartReqFlowDataSubValueValue ... -type CreateCorehrProcessStartReqFlowDataSubValueValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValueValue ... +type CreateCoreHRProcessStartReqFlowDataSubValueValue struct { TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" - I18nValue *CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 - ObjectValue *CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + I18nValue *CreateCoreHRProcessStartReqFlowDataSubValueValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *CreateCoreHRProcessStartReqFlowDataSubValueValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id示例值: "ou_c57053dad6eea0aea4696c48433d8562" ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key示例值: ["key1"] 长度范围: `0` ~ `10000` - FileValue *CreateCorehrProcessStartReqFlowDataSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 - RecordValues []*CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 + FileValue *CreateCoreHRProcessStartReqFlowDataSubValueValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCoreHRProcessStartReqFlowDataSubValueValueRecordValue `json:"record_values,omitempty"` // record类型字段值 } -// CreateCorehrProcessStartReqFlowDataSubValueValueFileValue ... -type CreateCorehrProcessStartReqFlowDataSubValueValueFileValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValueValueFileValue ... +type CreateCoreHRProcessStartReqFlowDataSubValueValueFileValue struct { OpenFileID *string `json:"open_file_id,omitempty"` // 通过[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)获得的id示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` } -// CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue ... -type CreateCorehrProcessStartReqFlowDataSubValueValueI18nValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValueValueI18nValue ... +type CreateCoreHRProcessStartReqFlowDataSubValueValueI18nValue struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" } -// CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue ... -type CreateCorehrProcessStartReqFlowDataSubValueValueObjectValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValueValueObjectValue ... +type CreateCoreHRProcessStartReqFlowDataSubValueValueObjectValue struct { WkID *string `json:"wk_id,omitempty"` // wukong的对象唯一标识示例值: "6863326263210149383" WkApiName *string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识示例值: "country_region_subdivision" } -// CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue ... -type CreateCorehrProcessStartReqFlowDataSubValueValueRecordValue struct { +// CreateCoreHRProcessStartReqFlowDataSubValueValueRecordValue ... +type CreateCoreHRProcessStartReqFlowDataSubValueValueRecordValue struct { VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "city_v2" SubValueKey *string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key示例值: "key1" RecordID *string `json:"record_id,omitempty"` // 记录唯一ID示例值: "6863326263210149383" } -// CreateCorehrProcessStartReqFlowDataVariableValue ... -type CreateCorehrProcessStartReqFlowDataVariableValue struct { +// CreateCoreHRProcessStartReqFlowDataVariableValue ... +type CreateCoreHRProcessStartReqFlowDataVariableValue struct { TextValue *string `json:"text_value,omitempty"` // 文本值示例值: "测试测试" BoolValue *bool `json:"bool_value,omitempty"` // 布尔值示例值: true NumberValue *string `json:"number_value,omitempty"` // 数字值示例值: "100" EnumValue *string `json:"enum_value,omitempty"` // 枚举值, 这里是枚举的id示例值: "home_address" DateValue *string `json:"date_value,omitempty"` // 从 1970 开始的天数示例值: "19838" DateTimeValue *string `json:"date_time_value,omitempty"` // 时间戳, 毫秒示例值: "1714013877512" - I18nValue *CreateCorehrProcessStartReqFlowDataVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 - ObjectValue *CreateCorehrProcessStartReqFlowDataVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f + I18nValue *CreateCoreHRProcessStartReqFlowDataVariableValueI18nValue `json:"i18n_value,omitempty"` // 多语字段值示例值: ou_c57053dad6eea0aea4696c48433d8562 + ObjectValue *CreateCoreHRProcessStartReqFlowDataVariableValueObjectValue `json:"object_value,omitempty"` // 对象值, 包括对象id和对象类型示例值: od-a761814f6bc3f14bd3b00905ec1d7c6f DepartmentValue *string `json:"department_value,omitempty"` // 部门id, 根据入参选择对应的部门id示例值: "od-a761814f6bc3f14bd3b00905ec1d7c6f" EmploymentValue *string `json:"employment_value,omitempty"` // 员工类型字段值, 为用户id, 根据入参选择返回的用户id示例值: "ou_c57053dad6eea0aea4696c48433d8562" ListValues []string `json:"list_values,omitempty"` // 数组类型值, 里面包含多个值, 每个元素都对应subValues中的key示例值: ["key1"] 长度范围: `0` ~ `10000` - FileValue *CreateCorehrProcessStartReqFlowDataVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 - RecordValues []*CreateCorehrProcessStartReqFlowDataVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 + FileValue *CreateCoreHRProcessStartReqFlowDataVariableValueFileValue `json:"file_value,omitempty"` // 文件类型字段值 + RecordValues []*CreateCoreHRProcessStartReqFlowDataVariableValueRecordValue `json:"record_values,omitempty"` // record类型字段值 } -// CreateCorehrProcessStartReqFlowDataVariableValueFileValue ... -type CreateCorehrProcessStartReqFlowDataVariableValueFileValue struct { +// CreateCoreHRProcessStartReqFlowDataVariableValueFileValue ... +type CreateCoreHRProcessStartReqFlowDataVariableValueFileValue struct { OpenFileID *string `json:"open_file_id,omitempty"` // 通过[上传文件接口](https://open.larkoffice.com/document/server-docs/corehr-v1/employee/person/upload)获得的id示例值: "66867ed00740ddd4a0bad4a5_c99b5322dc744fe4b99b76426ffe5d53" FileName *string `json:"file_name,omitempty"` // 文件名称(需带有文件后缀), 如果填写, 则会覆盖上传文件的名称, 否则通过open_file_id获取原始名称示例值: "file_name.jpg" Length *int64 `json:"length,omitempty"` // 文件大小, 单位: Byte, 如果填写, 则会覆盖上传文件的大小, 否则通过open_file_id获取文件原始大小示例值: 65535 取值范围: `0` ~ `52428800` } -// CreateCorehrProcessStartReqFlowDataVariableValueI18nValue ... -type CreateCorehrProcessStartReqFlowDataVariableValueI18nValue struct { +// CreateCoreHRProcessStartReqFlowDataVariableValueI18nValue ... +type CreateCoreHRProcessStartReqFlowDataVariableValueI18nValue struct { ZhCn *string `json:"zh_cn,omitempty"` // 中文值示例值: "北京" EnUs *string `json:"en_us,omitempty"` // 英文值示例值: "Beijing" } -// CreateCorehrProcessStartReqFlowDataVariableValueObjectValue ... -type CreateCorehrProcessStartReqFlowDataVariableValueObjectValue struct { +// CreateCoreHRProcessStartReqFlowDataVariableValueObjectValue ... +type CreateCoreHRProcessStartReqFlowDataVariableValueObjectValue struct { WkID *string `json:"wk_id,omitempty"` // wukong的对象唯一标识示例值: "6863326263210149383" WkApiName *string `json:"wk_api_name,omitempty"` // wukong的元数据唯一标识示例值: "country_region_subdivision" } -// CreateCorehrProcessStartReqFlowDataVariableValueRecordValue ... -type CreateCorehrProcessStartReqFlowDataVariableValueRecordValue struct { +// CreateCoreHRProcessStartReqFlowDataVariableValueRecordValue ... +type CreateCoreHRProcessStartReqFlowDataVariableValueRecordValue struct { VariableApiName *string `json:"variable_api_name,omitempty"` // 变量唯一标识示例值: "city_v2" SubValueKey *string `json:"sub_value_key,omitempty"` // 变量值, 对应subValues中的key示例值: "key1" RecordID *string `json:"record_id,omitempty"` // 记录唯一ID示例值: "6863326263210149383" } -// CreateCorehrProcessStartResp ... -type CreateCorehrProcessStartResp struct { +// CreateCoreHRProcessStartResp ... +type CreateCoreHRProcessStartResp struct { ProcessID string `json:"process_id,omitempty"` // 流程运行实例 id, 详细信息可通过[获取单个流程详情](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/get)获取 } -// createCorehrProcessStartResp ... -type createCorehrProcessStartResp struct { +// createCoreHRProcessStartResp ... +type createCoreHRProcessStartResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrProcessStartResp `json:"data,omitempty"` + Data *CreateCoreHRProcessStartResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_transfer_update.go b/api_corehr_process_transfer_update.go index 81a4c8b7..4b3827b7 100644 --- a/api_corehr_process_transfer_update.go +++ b/api_corehr_process_transfer_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrProcessTransfer 对于单个审批任务进行转交操作。转交后审批流程流转给被转交人。 +// UpdateCoreHRProcessTransfer 对于单个审批任务进行转交操作。转交后审批流程流转给被转交人。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process-transfer/update // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/approver-task/update-2 -func (r *CoreHRService) UpdateCorehrProcessTransfer(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrProcessTransfer != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessTransfer mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrProcessTransfer(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRProcessTransfer(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRProcessTransfer != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRProcessTransfer mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRProcessTransfer(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrProcessTransfer", + API: "UpdateCoreHRProcessTransfer", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/processes/:process_id/transfer", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrProcessTransferResp) + resp := new(updateCoreHRProcessTransferResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrProcessTransfer mock CoreHRUpdateCorehrProcessTransfer method -func (r *Mock) MockCoreHRUpdateCorehrProcessTransfer(f func(ctx context.Context, request *UpdateCorehrProcessTransferReq, options ...MethodOptionFunc) (*UpdateCorehrProcessTransferResp, *Response, error)) { - r.mockCoreHRUpdateCorehrProcessTransfer = f +// MockCoreHRUpdateCoreHRProcessTransfer mock CoreHRUpdateCoreHRProcessTransfer method +func (r *Mock) MockCoreHRUpdateCoreHRProcessTransfer(f func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRProcessTransfer = f } -// UnMockCoreHRUpdateCorehrProcessTransfer un-mock CoreHRUpdateCorehrProcessTransfer method -func (r *Mock) UnMockCoreHRUpdateCorehrProcessTransfer() { - r.mockCoreHRUpdateCorehrProcessTransfer = nil +// UnMockCoreHRUpdateCoreHRProcessTransfer un-mock CoreHRUpdateCoreHRProcessTransfer method +func (r *Mock) UnMockCoreHRUpdateCoreHRProcessTransfer() { + r.mockCoreHRUpdateCoreHRProcessTransfer = nil } -// UpdateCorehrProcessTransferReq ... -type UpdateCorehrProcessTransferReq struct { +// UpdateCoreHRProcessTransferReq ... +type UpdateCoreHRProcessTransferReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例id, 是一个流程的唯一标识。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口返回的 process_ids 字段获取示例值: "7410664363763172908" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID Operator *string `json:"operator,omitempty"` // 操作人, 按user_id_type类型传递;如果system_user为true, 则此字段可以不填示例值: "7184703091806602796" @@ -67,14 +67,14 @@ type UpdateCorehrProcessTransferReq struct { SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为fasle, 则operator必填示例值: true默认值: `false` } -// UpdateCorehrProcessTransferResp ... -type UpdateCorehrProcessTransferResp struct { +// UpdateCoreHRProcessTransferResp ... +type UpdateCoreHRProcessTransferResp struct { } -// updateCorehrProcessTransferResp ... -type updateCorehrProcessTransferResp struct { +// updateCoreHRProcessTransferResp ... +type updateCoreHRProcessTransferResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrProcessTransferResp `json:"data,omitempty"` + Data *UpdateCoreHRProcessTransferResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_process_withdraw_update.go b/api_corehr_process_withdraw_update.go index d85a4155..f50afc34 100644 --- a/api_corehr_process_withdraw_update.go +++ b/api_corehr_process_withdraw_update.go @@ -21,43 +21,43 @@ import ( "context" ) -// UpdateCorehrProcessWithdraw 对状态为“审批中”的单个审批实例进行撤回操作, 撤回后审批流程结束 +// UpdateCoreHRProcessWithdraw 对状态为“审批中”的单个审批实例进行撤回操作, 撤回后审批流程结束 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process_withdraw/update // new doc: https://open.feishu.cn/document/corehr-v1/process-form_variable_data/process-instance/update -func (r *CoreHRService) UpdateCorehrProcessWithdraw(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error) { - if r.cli.mock.mockCoreHRUpdateCorehrProcessWithdraw != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCorehrProcessWithdraw mock enable") - return r.cli.mock.mockCoreHRUpdateCorehrProcessWithdraw(ctx, request, options...) +func (r *CoreHRService) UpdateCoreHRProcessWithdraw(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error) { + if r.cli.mock.mockCoreHRUpdateCoreHRProcessWithdraw != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#UpdateCoreHRProcessWithdraw mock enable") + return r.cli.mock.mockCoreHRUpdateCoreHRProcessWithdraw(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "UpdateCorehrProcessWithdraw", + API: "UpdateCoreHRProcessWithdraw", Method: "PUT", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/process_withdraw/:process_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(updateCorehrProcessWithdrawResp) + resp := new(updateCoreHRProcessWithdrawResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRUpdateCorehrProcessWithdraw mock CoreHRUpdateCorehrProcessWithdraw method -func (r *Mock) MockCoreHRUpdateCorehrProcessWithdraw(f func(ctx context.Context, request *UpdateCorehrProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCorehrProcessWithdrawResp, *Response, error)) { - r.mockCoreHRUpdateCorehrProcessWithdraw = f +// MockCoreHRUpdateCoreHRProcessWithdraw mock CoreHRUpdateCoreHRProcessWithdraw method +func (r *Mock) MockCoreHRUpdateCoreHRProcessWithdraw(f func(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error)) { + r.mockCoreHRUpdateCoreHRProcessWithdraw = f } -// UnMockCoreHRUpdateCorehrProcessWithdraw un-mock CoreHRUpdateCorehrProcessWithdraw method -func (r *Mock) UnMockCoreHRUpdateCorehrProcessWithdraw() { - r.mockCoreHRUpdateCorehrProcessWithdraw = nil +// UnMockCoreHRUpdateCoreHRProcessWithdraw un-mock CoreHRUpdateCoreHRProcessWithdraw method +func (r *Mock) UnMockCoreHRUpdateCoreHRProcessWithdraw() { + r.mockCoreHRUpdateCoreHRProcessWithdraw = nil } -// UpdateCorehrProcessWithdrawReq ... -type UpdateCorehrProcessWithdrawReq struct { +// UpdateCoreHRProcessWithdrawReq ... +type UpdateCoreHRProcessWithdrawReq struct { ProcessID string `path:"process_id" json:"-"` // 流程实例ID。可通过[查询流程实例列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/process/list)接口获取示例值: "7328345170959681068" UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)people corehr系统的用户id默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID UserID *string `json:"user_id,omitempty"` // 按照查询参数中指定的用户ID类型传递对应的用户ID, 默认为Open ID。如果system_user为true, 此字段可不填示例值: "ou_91791271921729102012" @@ -65,14 +65,14 @@ type UpdateCorehrProcessWithdrawReq struct { SystemUser *bool `json:"system_user,omitempty"` // 是否以系统身份操作, 如果为false, 则user_id必填示例值: true默认值: `false` } -// UpdateCorehrProcessWithdrawResp ... -type UpdateCorehrProcessWithdrawResp struct { +// UpdateCoreHRProcessWithdrawResp ... +type UpdateCoreHRProcessWithdrawResp struct { } -// updateCorehrProcessWithdrawResp ... -type updateCorehrProcessWithdrawResp struct { +// updateCoreHRProcessWithdrawResp ... +type updateCoreHRProcessWithdrawResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *UpdateCorehrProcessWithdrawResp `json:"data,omitempty"` + Data *UpdateCoreHRProcessWithdrawResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_report_detail_row_batchdelete.go b/api_corehr_report_detail_row_batchdelete.go index a68dba49..8aa74426 100644 --- a/api_corehr_report_detail_row_batchdelete.go +++ b/api_corehr_report_detail_row_batchdelete.go @@ -21,78 +21,78 @@ import ( "context" ) -// CreateCorehrReportDetailRowBatchdelete 批量删除填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 +// BatchDeleteCoreHRReportDetailRow 批量删除填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 // // 批量删除填报行说明: 同批次操作场景下, 禁止重复删除同一行。 // 删除填报行的时候请注意: 底层是将编制规划与预估在职人数清0, 如果被删除行的预增人员、预减人员不为0, 该行依旧会显示在页面上。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/report_detail_row/batchDelete // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchDelete -func (r *CoreHRService) CreateCorehrReportDetailRowBatchdelete(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchdelete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrReportDetailRowBatchdelete mock enable") - return r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchdelete(ctx, request, options...) +func (r *CoreHRService) BatchDeleteCoreHRReportDetailRow(ctx context.Context, request *BatchDeleteCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRReportDetailRowResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchDeleteCoreHRReportDetailRow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchDeleteCoreHRReportDetailRow mock enable") + return r.cli.mock.mockCoreHRBatchDeleteCoreHRReportDetailRow(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrReportDetailRowBatchdelete", + API: "BatchDeleteCoreHRReportDetailRow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/report_detail_row/batchDelete", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrReportDetailRowBatchdeleteResp) + resp := new(batchDeleteCoreHRReportDetailRowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrReportDetailRowBatchdelete mock CoreHRCreateCorehrReportDetailRowBatchdelete method -func (r *Mock) MockCoreHRCreateCorehrReportDetailRowBatchdelete(f func(ctx context.Context, request *CreateCorehrReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchdeleteResp, *Response, error)) { - r.mockCoreHRCreateCorehrReportDetailRowBatchdelete = f +// MockCoreHRBatchDeleteCoreHRReportDetailRow mock CoreHRBatchDeleteCoreHRReportDetailRow method +func (r *Mock) MockCoreHRBatchDeleteCoreHRReportDetailRow(f func(ctx context.Context, request *BatchDeleteCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRReportDetailRowResp, *Response, error)) { + r.mockCoreHRBatchDeleteCoreHRReportDetailRow = f } -// UnMockCoreHRCreateCorehrReportDetailRowBatchdelete un-mock CoreHRCreateCorehrReportDetailRowBatchdelete method -func (r *Mock) UnMockCoreHRCreateCorehrReportDetailRowBatchdelete() { - r.mockCoreHRCreateCorehrReportDetailRowBatchdelete = nil +// UnMockCoreHRBatchDeleteCoreHRReportDetailRow un-mock CoreHRBatchDeleteCoreHRReportDetailRow method +func (r *Mock) UnMockCoreHRBatchDeleteCoreHRReportDetailRow() { + r.mockCoreHRBatchDeleteCoreHRReportDetailRow = nil } -// CreateCorehrReportDetailRowBatchdeleteReq ... -type CreateCorehrReportDetailRowBatchdeleteReq struct { - WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" - CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" - Items []*CreateCorehrReportDetailRowBatchdeleteReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +// BatchDeleteCoreHRReportDetailRowReq ... +type BatchDeleteCoreHRReportDetailRowReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" + Items []*BatchDeleteCoreHRReportDetailRowReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` } -// CreateCorehrReportDetailRowBatchdeleteReqItem ... -type CreateCorehrReportDetailRowBatchdeleteReqItem struct { - Dimensions []*CreateCorehrReportDetailRowBatchdeleteReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` - EaiDetails []*CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` - PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" +// BatchDeleteCoreHRReportDetailRowReqItem ... +type BatchDeleteCoreHRReportDetailRowReqItem struct { + Dimensions []*BatchDeleteCoreHRReportDetailRowReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*BatchDeleteCoreHRReportDetailRowReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" } -// CreateCorehrReportDetailRowBatchdeleteReqItemDimension ... -type CreateCorehrReportDetailRowBatchdeleteReqItemDimension struct { +// BatchDeleteCoreHRReportDetailRowReqItemDimension ... +type BatchDeleteCoreHRReportDetailRowReqItemDimension struct { DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" } -// CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail ... -type CreateCorehrReportDetailRowBatchdeleteReqItemEaiDetail struct { +// BatchDeleteCoreHRReportDetailRowReqItemEaiDetail ... +type BatchDeleteCoreHRReportDetailRowReqItemEaiDetail struct { Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和集中填报页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" } -// CreateCorehrReportDetailRowBatchdeleteResp ... -type CreateCorehrReportDetailRowBatchdeleteResp struct { +// BatchDeleteCoreHRReportDetailRowResp ... +type BatchDeleteCoreHRReportDetailRowResp struct { } -// createCorehrReportDetailRowBatchdeleteResp ... -type createCorehrReportDetailRowBatchdeleteResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrReportDetailRowBatchdeleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchDeleteCoreHRReportDetailRowResp ... +type batchDeleteCoreHRReportDetailRowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchDeleteCoreHRReportDetailRowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_report_detail_row_batchsave.go b/api_corehr_report_detail_row_batchsave.go index 970bdc6c..9be4fd13 100644 --- a/api_corehr_report_detail_row_batchsave.go +++ b/api_corehr_report_detail_row_batchsave.go @@ -21,86 +21,86 @@ import ( "context" ) -// CreateCorehrReportDetailRowBatchsave 批量创建/更新填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 +// BatchSaveCoreHRReportDetailRow 批量创建/更新填报行后, 可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。 // // 批量创建/更新填报行说明: 同批次操作场景下, 禁止创建/更新重复行, 与此同时, 创建时若填报行已存在于系统中, 则会在底层自动触发更新机制;建议不要录入编制规划值和预估在职人数均为零值的填报行, 系统会对全0填报行进行过滤, 从而在页面上不显示该行, 可能会导致用户误以为填报行不存在。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/report_detail_row/batchSave // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchSave-2 -func (r *CoreHRService) CreateCorehrReportDetailRowBatchsave(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchsave != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrReportDetailRowBatchsave mock enable") - return r.cli.mock.mockCoreHRCreateCorehrReportDetailRowBatchsave(ctx, request, options...) +func (r *CoreHRService) BatchSaveCoreHRReportDetailRow(ctx context.Context, request *BatchSaveCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRReportDetailRowResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchSaveCoreHRReportDetailRow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchSaveCoreHRReportDetailRow mock enable") + return r.cli.mock.mockCoreHRBatchSaveCoreHRReportDetailRow(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrReportDetailRowBatchsave", + API: "BatchSaveCoreHRReportDetailRow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/report_detail_row/batchSave", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrReportDetailRowBatchsaveResp) + resp := new(batchSaveCoreHRReportDetailRowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrReportDetailRowBatchsave mock CoreHRCreateCorehrReportDetailRowBatchsave method -func (r *Mock) MockCoreHRCreateCorehrReportDetailRowBatchsave(f func(ctx context.Context, request *CreateCorehrReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrReportDetailRowBatchsaveResp, *Response, error)) { - r.mockCoreHRCreateCorehrReportDetailRowBatchsave = f +// MockCoreHRBatchSaveCoreHRReportDetailRow mock CoreHRBatchSaveCoreHRReportDetailRow method +func (r *Mock) MockCoreHRBatchSaveCoreHRReportDetailRow(f func(ctx context.Context, request *BatchSaveCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRReportDetailRowResp, *Response, error)) { + r.mockCoreHRBatchSaveCoreHRReportDetailRow = f } -// UnMockCoreHRCreateCorehrReportDetailRowBatchsave un-mock CoreHRCreateCorehrReportDetailRowBatchsave method -func (r *Mock) UnMockCoreHRCreateCorehrReportDetailRowBatchsave() { - r.mockCoreHRCreateCorehrReportDetailRowBatchsave = nil +// UnMockCoreHRBatchSaveCoreHRReportDetailRow un-mock CoreHRBatchSaveCoreHRReportDetailRow method +func (r *Mock) UnMockCoreHRBatchSaveCoreHRReportDetailRow() { + r.mockCoreHRBatchSaveCoreHRReportDetailRow = nil } -// CreateCorehrReportDetailRowBatchsaveReq ... -type CreateCorehrReportDetailRowBatchsaveReq struct { - WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" - CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" - Items []*CreateCorehrReportDetailRowBatchsaveReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +// BatchSaveCoreHRReportDetailRowReq ... +type BatchSaveCoreHRReportDetailRowReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报id, 可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。示例值: "7430470688844023340" + Items []*BatchSaveCoreHRReportDetailRowReqItem `json:"items,omitempty"` // 集中填报的填报行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` } -// CreateCorehrReportDetailRowBatchsaveReqItem ... -type CreateCorehrReportDetailRowBatchsaveReqItem struct { - Dimensions []*CreateCorehrReportDetailRowBatchsaveReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` - EaiDetails []*CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` - PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" - MultiPeriodValues []*CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` +// BatchSaveCoreHRReportDetailRowReqItem ... +type BatchSaveCoreHRReportDetailRowReqItem struct { + Dimensions []*BatchSaveCoreHRReportDetailRowReqItemDimension `json:"dimensions,omitempty"` // 集中填报的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*BatchSaveCoreHRReportDetailRowReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新填报行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" + MultiPeriodValues []*BatchSaveCoreHRReportDetailRowReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` } -// CreateCorehrReportDetailRowBatchsaveReqItemDimension ... -type CreateCorehrReportDetailRowBatchsaveReqItemDimension struct { +// BatchSaveCoreHRReportDetailRowReqItemDimension ... +type BatchSaveCoreHRReportDetailRowReqItemDimension struct { DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" } -// CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail ... -type CreateCorehrReportDetailRowBatchsaveReqItemEaiDetail struct { +// BatchSaveCoreHRReportDetailRowReqItemEaiDetail ... +type BatchSaveCoreHRReportDetailRowReqItemEaiDetail struct { Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和集中填报页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" } -// CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue ... -type CreateCorehrReportDetailRowBatchsaveReqItemMultiPeriodValue struct { +// BatchSaveCoreHRReportDetailRowReqItemMultiPeriodValue ... +type BatchSaveCoreHRReportDetailRowReqItemMultiPeriodValue struct { PeriodDate *string `json:"period_date,omitempty"` // 周期的最后一天。注意需要在填报选择的周期范围内。示例值: "2022-10-31" WorkforcePlan *string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值。编制规划值需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12.00" IndividualsToBeAdded *string `json:"individuals_to_be_added,omitempty"` // 对应自然周期预增员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" IndividualsToBeRemoved *string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期预减员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" } -// CreateCorehrReportDetailRowBatchsaveResp ... -type CreateCorehrReportDetailRowBatchsaveResp struct { +// BatchSaveCoreHRReportDetailRowResp ... +type BatchSaveCoreHRReportDetailRowResp struct { } -// createCorehrReportDetailRowBatchsaveResp ... -type createCorehrReportDetailRowBatchsaveResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrReportDetailRowBatchsaveResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchSaveCoreHRReportDetailRowResp ... +type batchSaveCoreHRReportDetailRowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchSaveCoreHRReportDetailRowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_file_download.go b/api_corehr_signature_file_download.go index 4beb6ecd..44aa69cb 100644 --- a/api_corehr_signature_file_download.go +++ b/api_corehr_signature_file_download.go @@ -22,62 +22,62 @@ import ( "io" ) -// DownloadCorehrSignatureFile 该接口用于下载电子签文件 +// DownloadCoreHRSignatureFile 该接口用于下载电子签文件 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/download // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/download -func (r *CoreHRService) DownloadCorehrSignatureFile(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error) { - if r.cli.mock.mockCoreHRDownloadCorehrSignatureFile != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DownloadCorehrSignatureFile mock enable") - return r.cli.mock.mockCoreHRDownloadCorehrSignatureFile(ctx, request, options...) +func (r *CoreHRService) DownloadCoreHRSignatureFile(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRDownloadCoreHRSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#DownloadCoreHRSignatureFile mock enable") + return r.cli.mock.mockCoreHRDownloadCoreHRSignatureFile(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "DownloadCorehrSignatureFile", + API: "DownloadCoreHRSignatureFile", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/:signature_file_id/download", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(downloadCorehrSignatureFileResp) + resp := new(downloadCoreHRSignatureFileResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRDownloadCorehrSignatureFile mock CoreHRDownloadCorehrSignatureFile method -func (r *Mock) MockCoreHRDownloadCorehrSignatureFile(f func(ctx context.Context, request *DownloadCorehrSignatureFileReq, options ...MethodOptionFunc) (*DownloadCorehrSignatureFileResp, *Response, error)) { - r.mockCoreHRDownloadCorehrSignatureFile = f +// MockCoreHRDownloadCoreHRSignatureFile mock CoreHRDownloadCoreHRSignatureFile method +func (r *Mock) MockCoreHRDownloadCoreHRSignatureFile(f func(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error)) { + r.mockCoreHRDownloadCoreHRSignatureFile = f } -// UnMockCoreHRDownloadCorehrSignatureFile un-mock CoreHRDownloadCorehrSignatureFile method -func (r *Mock) UnMockCoreHRDownloadCorehrSignatureFile() { - r.mockCoreHRDownloadCorehrSignatureFile = nil +// UnMockCoreHRDownloadCoreHRSignatureFile un-mock CoreHRDownloadCoreHRSignatureFile method +func (r *Mock) UnMockCoreHRDownloadCoreHRSignatureFile() { + r.mockCoreHRDownloadCoreHRSignatureFile = nil } -// DownloadCorehrSignatureFileReq ... -type DownloadCorehrSignatureFileReq struct { +// DownloadCoreHRSignatureFileReq ... +type DownloadCoreHRSignatureFileReq struct { SignatureFileID string `path:"signature_file_id" json:"-"` // 电子签文件id, [【获取电子签文件列表】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)示例值: "6891251722631890445" } -// downloadCorehrSignatureFileResp ... -type downloadCorehrSignatureFileResp struct { +// downloadCoreHRSignatureFileResp ... +type downloadCoreHRSignatureFileResp struct { Code int64 `json:"code,omitempty"` Msg string `json:"msg,omitempty"` - Data *DownloadCorehrSignatureFileResp `json:"data,omitempty"` + Data *DownloadCoreHRSignatureFileResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } -func (r *downloadCorehrSignatureFileResp) SetReader(file io.Reader) { +func (r *downloadCoreHRSignatureFileResp) SetReader(file io.Reader) { if r.Data == nil { - r.Data = &DownloadCorehrSignatureFileResp{} + r.Data = &DownloadCoreHRSignatureFileResp{} } r.Data.File = file } -// DownloadCorehrSignatureFileResp ... -type DownloadCorehrSignatureFileResp struct { +// DownloadCoreHRSignatureFileResp ... +type DownloadCoreHRSignatureFileResp struct { File io.Reader `json:"file,omitempty"` } diff --git a/api_corehr_signature_file_list.go b/api_corehr_signature_file_list.go index 2f64a4f4..f7c73fb4 100644 --- a/api_corehr_signature_file_list.go +++ b/api_corehr_signature_file_list.go @@ -21,19 +21,19 @@ import ( "context" ) -// ListCorehrSignatureFile 该接口用于获取电子签文件列表 +// ListCoreHRSignatureFile 该接口用于获取电子签文件列表 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list -func (r *CoreHRService) ListCorehrSignatureFile(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrSignatureFile != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureFile mock enable") - return r.cli.mock.mockCoreHRListCorehrSignatureFile(ctx, request, options...) +func (r *CoreHRService) ListCoreHRSignatureFile(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRSignatureFile mock enable") + return r.cli.mock.mockCoreHRListCoreHRSignatureFile(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrSignatureFile", + API: "ListCoreHRSignatureFile", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files", Body: request, @@ -41,24 +41,24 @@ func (r *CoreHRService) ListCorehrSignatureFile(ctx context.Context, request *Li NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(listCorehrSignatureFileResp) + resp := new(listCoreHRSignatureFileResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrSignatureFile mock CoreHRListCorehrSignatureFile method -func (r *Mock) MockCoreHRListCorehrSignatureFile(f func(ctx context.Context, request *ListCorehrSignatureFileReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileResp, *Response, error)) { - r.mockCoreHRListCorehrSignatureFile = f +// MockCoreHRListCoreHRSignatureFile mock CoreHRListCoreHRSignatureFile method +func (r *Mock) MockCoreHRListCoreHRSignatureFile(f func(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error)) { + r.mockCoreHRListCoreHRSignatureFile = f } -// UnMockCoreHRListCorehrSignatureFile un-mock CoreHRListCorehrSignatureFile method -func (r *Mock) UnMockCoreHRListCorehrSignatureFile() { - r.mockCoreHRListCorehrSignatureFile = nil +// UnMockCoreHRListCoreHRSignatureFile un-mock CoreHRListCoreHRSignatureFile method +func (r *Mock) UnMockCoreHRListCoreHRSignatureFile() { + r.mockCoreHRListCoreHRSignatureFile = nil } -// ListCorehrSignatureFileReq ... -type ListCorehrSignatureFileReq struct { +// ListCoreHRSignatureFileReq ... +type ListCoreHRSignatureFileReq struct { SignatureFileID *string `query:"signature_file_id" json:"-"` // 电子签文件ID示例值: 6891251722631890445 PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10 PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: {"cn":"[\"7371387495822411308\"]"} @@ -69,48 +69,48 @@ type ListCorehrSignatureFileReq struct { TemplateIDs []string `query:"template_ids" json:"-"` // 根据电子签模板id列表筛选电子签文件, 返回的电子签文件使用的模板id在该list中示例值: 7282756156156560940 长度范围: `0` ~ `4294967296` } -// ListCorehrSignatureFileResp ... -type ListCorehrSignatureFileResp struct { - Items []*ListCorehrSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 +// ListCoreHRSignatureFileResp ... +type ListCoreHRSignatureFileResp struct { + Items []*ListCoreHRSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// ListCorehrSignatureFileRespItem ... -type ListCorehrSignatureFileRespItem struct { +// ListCoreHRSignatureFileRespItem ... +type ListCoreHRSignatureFileRespItem struct { SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID, [【查询电子签文件详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query) - Names []*ListCorehrSignatureFileRespItemName `json:"names,omitempty"` // 名称 + Names []*ListCoreHRSignatureFileRespItemName `json:"names,omitempty"` // 名称 CreateTime string `json:"create_time,omitempty"` // 创建时间, 格式: YYYY-MM-DD 00:00:00 UpdateTime string `json:"update_time,omitempty"` // 更新时间, 格式: YYYY-MM-DD 00:00:00 EmploymentID string `json:"employment_id,omitempty"` // 雇员 id, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) - SignatureFileState *ListCorehrSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + SignatureFileState *ListCoreHRSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期, 格式: YYYY-MM-DD TemplateID string `json:"template_id,omitempty"` // 电子签模板ID, [【查询模板内容】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search) } -// ListCorehrSignatureFileRespItemName ... -type ListCorehrSignatureFileRespItemName struct { +// ListCoreHRSignatureFileRespItemName ... +type ListCoreHRSignatureFileRespItemName struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureFileRespItemSignatureFileState ... -type ListCorehrSignatureFileRespItemSignatureFileState struct { +// ListCoreHRSignatureFileRespItemSignatureFileState ... +type ListCoreHRSignatureFileRespItemSignatureFileState struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHRSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrSignatureFileRespItemSignatureFileStateDisplay ... -type ListCorehrSignatureFileRespItemSignatureFileStateDisplay struct { +// ListCoreHRSignatureFileRespItemSignatureFileStateDisplay ... +type ListCoreHRSignatureFileRespItemSignatureFileStateDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// listCorehrSignatureFileResp ... -type listCorehrSignatureFileResp struct { +// listCoreHRSignatureFileResp ... +type listCoreHRSignatureFileResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrSignatureFileResp `json:"data,omitempty"` + Data *ListCoreHRSignatureFileResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_file_list_by_biz_id.go b/api_corehr_signature_file_list_by_biz_id.go index 9d1576f8..d9bf56e5 100644 --- a/api_corehr_signature_file_list_by_biz_id.go +++ b/api_corehr_signature_file_list_by_biz_id.go @@ -21,92 +21,92 @@ import ( "context" ) -// ListCorehrSignatureFileByBizID 该接口可以根据传入的业务类型和流程ID获取该流程中签署的电子签文件信息 +// ListCoreHRSignatureFileByBizID 该接口可以根据传入的业务类型和流程ID获取该流程中签署的电子签文件信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list_by_biz_id // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list_by_biz_id -func (r *CoreHRService) ListCorehrSignatureFileByBizID(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrSignatureFileByBizID != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureFileByBizID mock enable") - return r.cli.mock.mockCoreHRListCorehrSignatureFileByBizID(ctx, request, options...) +func (r *CoreHRService) ListCoreHRSignatureFileByBizID(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRSignatureFileByBizID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRSignatureFileByBizID mock enable") + return r.cli.mock.mockCoreHRListCoreHRSignatureFileByBizID(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrSignatureFileByBizID", + API: "ListCoreHRSignatureFileByBizID", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/list_by_biz_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrSignatureFileByBizIDResp) + resp := new(listCoreHRSignatureFileByBizIDResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrSignatureFileByBizID mock CoreHRListCorehrSignatureFileByBizID method -func (r *Mock) MockCoreHRListCorehrSignatureFileByBizID(f func(ctx context.Context, request *ListCorehrSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureFileByBizIDResp, *Response, error)) { - r.mockCoreHRListCorehrSignatureFileByBizID = f +// MockCoreHRListCoreHRSignatureFileByBizID mock CoreHRListCoreHRSignatureFileByBizID method +func (r *Mock) MockCoreHRListCoreHRSignatureFileByBizID(f func(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error)) { + r.mockCoreHRListCoreHRSignatureFileByBizID = f } -// UnMockCoreHRListCorehrSignatureFileByBizID un-mock CoreHRListCorehrSignatureFileByBizID method -func (r *Mock) UnMockCoreHRListCorehrSignatureFileByBizID() { - r.mockCoreHRListCorehrSignatureFileByBizID = nil +// UnMockCoreHRListCoreHRSignatureFileByBizID un-mock CoreHRListCoreHRSignatureFileByBizID method +func (r *Mock) UnMockCoreHRListCoreHRSignatureFileByBizID() { + r.mockCoreHRListCoreHRSignatureFileByBizID = nil } -// ListCorehrSignatureFileByBizIDReq ... -type ListCorehrSignatureFileByBizIDReq struct { +// ListCoreHRSignatureFileByBizIDReq ... +type ListCoreHRSignatureFileByBizIDReq struct { BizProcessID string `query:"biz_process_id" json:"-"` // 业务自定义流程ID, 唯一不重复, 不要超过100字符示例值: 129b83f5-c023-4e85-b2c7-80ce777e57fd BizType string `query:"biz_type" json:"-"` // 业务类型, 开放平台发起的流程传OpenAPI, BPM发起的流程传入Bpm, 目前只支持这两种业务类型示例值: OpenAPI、Bpm UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID SelectSignURL *bool `query:"select_sign_url" json:"-"` // 是否需要返回签署链接示例值: true } -// ListCorehrSignatureFileByBizIDResp ... -type ListCorehrSignatureFileByBizIDResp struct { - SignatureFiles []*ListCorehrSignatureFileByBizIDRespSignatureFile `json:"signature_files,omitempty"` // 返回的流程关联的电子签文件列表 +// ListCoreHRSignatureFileByBizIDResp ... +type ListCoreHRSignatureFileByBizIDResp struct { + SignatureFiles []*ListCoreHRSignatureFileByBizIDRespSignatureFile `json:"signature_files,omitempty"` // 返回的流程关联的电子签文件列表 BatchSignURL string `json:"batch_sign_url,omitempty"` // 批量签署链接 } -// ListCorehrSignatureFileByBizIDRespSignatureFile ... -type ListCorehrSignatureFileByBizIDRespSignatureFile struct { +// ListCoreHRSignatureFileByBizIDRespSignatureFile ... +type ListCoreHRSignatureFileByBizIDRespSignatureFile struct { SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID - Names []*ListCorehrSignatureFileByBizIDRespSignatureFileName `json:"names,omitempty"` // 名称 + Names []*ListCoreHRSignatureFileByBizIDRespSignatureFileName `json:"names,omitempty"` // 名称 CreateTime string `json:"create_time,omitempty"` // 创建时间, 格式: YYYY-MM-DD 00:00:00 UpdateTime string `json:"update_time,omitempty"` // 更新时间, 格式: YYYY-MM-DD 00:00:00 EmploymentID string `json:"employment_id,omitempty"` // 员工雇佣ID;可以通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取该员工详细信息 PreHireID string `json:"pre_hire_id,omitempty"` // 待入职ID, 可以通过[【搜索待入职人员信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)搜索该待入职人员详细信息 - SignatureFileState *ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + SignatureFileState *ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期 TemplateID string `json:"template_id,omitempty"` // 电子签模板ID, 可以通过[【根据ID获取电子签模板】](/ssl:ttdc/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search)获取电子签模板详情信息 SignURL string `json:"sign_url,omitempty"` // 签署链接 } -// ListCorehrSignatureFileByBizIDRespSignatureFileName ... -type ListCorehrSignatureFileByBizIDRespSignatureFileName struct { +// ListCoreHRSignatureFileByBizIDRespSignatureFileName ... +type ListCoreHRSignatureFileByBizIDRespSignatureFileName struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState ... -type ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileState struct { +// ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileState ... +type ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileState struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay `json:"display,omitempty"` // 枚举值多语展示 + Display []*ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay `json:"display,omitempty"` // 枚举值多语展示 } -// ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay ... -type ListCorehrSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay struct { +// ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay ... +type ListCoreHRSignatureFileByBizIDRespSignatureFileSignatureFileStateDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// listCorehrSignatureFileByBizIDResp ... -type listCorehrSignatureFileByBizIDResp struct { +// listCoreHRSignatureFileByBizIDResp ... +type listCoreHRSignatureFileByBizIDResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrSignatureFileByBizIDResp `json:"data,omitempty"` + Data *ListCoreHRSignatureFileByBizIDResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_file_query.go b/api_corehr_signature_file_query.go index c228b85d..9901bba7 100644 --- a/api_corehr_signature_file_query.go +++ b/api_corehr_signature_file_query.go @@ -21,43 +21,43 @@ import ( "context" ) -// QueryCorehrSignatureFile 该接口可用于批量查询电子签文件列表, 并且支持根据文件ID、更新时间范围、文件状态、模板ID等条件检索 +// QueryCoreHRSignatureFile 该接口可用于批量查询电子签文件列表, 并且支持根据文件ID、更新时间范围、文件状态、模板ID等条件检索 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/query -func (r *CoreHRService) QueryCorehrSignatureFile(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error) { - if r.cli.mock.mockCoreHRQueryCorehrSignatureFile != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCorehrSignatureFile mock enable") - return r.cli.mock.mockCoreHRQueryCorehrSignatureFile(ctx, request, options...) +func (r *CoreHRService) QueryCoreHRSignatureFile(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRQueryCoreHRSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#QueryCoreHRSignatureFile mock enable") + return r.cli.mock.mockCoreHRQueryCoreHRSignatureFile(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "QueryCorehrSignatureFile", + API: "QueryCoreHRSignatureFile", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/query", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(queryCorehrSignatureFileResp) + resp := new(queryCoreHRSignatureFileResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRQueryCorehrSignatureFile mock CoreHRQueryCorehrSignatureFile method -func (r *Mock) MockCoreHRQueryCorehrSignatureFile(f func(ctx context.Context, request *QueryCorehrSignatureFileReq, options ...MethodOptionFunc) (*QueryCorehrSignatureFileResp, *Response, error)) { - r.mockCoreHRQueryCorehrSignatureFile = f +// MockCoreHRQueryCoreHRSignatureFile mock CoreHRQueryCoreHRSignatureFile method +func (r *Mock) MockCoreHRQueryCoreHRSignatureFile(f func(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error)) { + r.mockCoreHRQueryCoreHRSignatureFile = f } -// UnMockCoreHRQueryCorehrSignatureFile un-mock CoreHRQueryCorehrSignatureFile method -func (r *Mock) UnMockCoreHRQueryCorehrSignatureFile() { - r.mockCoreHRQueryCorehrSignatureFile = nil +// UnMockCoreHRQueryCoreHRSignatureFile un-mock CoreHRQueryCoreHRSignatureFile method +func (r *Mock) UnMockCoreHRQueryCoreHRSignatureFile() { + r.mockCoreHRQueryCoreHRSignatureFile = nil } -// QueryCorehrSignatureFileReq ... -type QueryCorehrSignatureFileReq struct { +// QueryCoreHRSignatureFileReq ... +type QueryCoreHRSignatureFileReq struct { SignatureFileID *string `query:"signature_file_id" json:"-"` // 电子签文件ID, 查询结果会返回满足所有筛选条件 signature_file_id 、states、template_ids的文件示例值: 6891251722631890445 PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 10范围: 0~100 PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: {"eu_nc":"[1724438210000, \"7405949343401772554\"]"} @@ -68,50 +68,50 @@ type QueryCorehrSignatureFileReq struct { TemplateIDs []string `json:"template_ids,omitempty"` // 电子签模板ID列表, 返回的电子签文件使用的模板在该数组中;可以通过[【获取电子签模板内容】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search)接口获取模板ID注意: 多个模板ID之间是或的关系示例值: ["7282756156156560940", "7282756156156560945"] 长度范围: `0` ~ `100` } -// QueryCorehrSignatureFileResp ... -type QueryCorehrSignatureFileResp struct { - Items []*QueryCorehrSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 +// QueryCoreHRSignatureFileResp ... +type QueryCoreHRSignatureFileResp struct { + Items []*QueryCoreHRSignatureFileRespItem `json:"items,omitempty"` // 电子签文件信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// QueryCorehrSignatureFileRespItem ... -type QueryCorehrSignatureFileRespItem struct { +// QueryCoreHRSignatureFileRespItem ... +type QueryCoreHRSignatureFileRespItem struct { SignatureFileID string `json:"signature_file_id,omitempty"` // 电子签文件ID, [【查询电子签文件信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/query) - Names []*QueryCorehrSignatureFileRespItemName `json:"names,omitempty"` // 名称 + Names []*QueryCoreHRSignatureFileRespItemName `json:"names,omitempty"` // 名称 CreateTime string `json:"create_time,omitempty"` // 创建时间 UpdateTime string `json:"update_time,omitempty"` // 更新时间 EmploymentID string `json:"employment_id,omitempty"` // 雇员 id PreHireID string `json:"pre_hire_id,omitempty"` // 待入职 id - SignatureFileState *QueryCorehrSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态状态列表, 多个状态之间为「或」的关系;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 + SignatureFileState *QueryCoreHRSignatureFileRespItemSignatureFileState `json:"signature_file_state,omitempty"` // 电子签文件状态状态列表, 多个状态之间为「或」的关系;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 ContractCode string `json:"contract_code,omitempty"` // 供应商侧的合同编号, 作为幂等key EffectiveDate string `json:"effective_date,omitempty"` // 电子签文件生效日期, 格式: yyyy-MM-dd TemplateID string `json:"template_id,omitempty"` // 电子签模板ID SignURL string `json:"sign_url,omitempty"` // 签署链接 } -// QueryCorehrSignatureFileRespItemName ... -type QueryCorehrSignatureFileRespItemName struct { +// QueryCoreHRSignatureFileRespItemName ... +type QueryCoreHRSignatureFileRespItemName struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// QueryCorehrSignatureFileRespItemSignatureFileState ... -type QueryCorehrSignatureFileRespItemSignatureFileState struct { +// QueryCoreHRSignatureFileRespItemSignatureFileState ... +type QueryCoreHRSignatureFileRespItemSignatureFileState struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*QueryCorehrSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*QueryCoreHRSignatureFileRespItemSignatureFileStateDisplay `json:"display,omitempty"` // 枚举多语展示 } -// QueryCorehrSignatureFileRespItemSignatureFileStateDisplay ... -type QueryCorehrSignatureFileRespItemSignatureFileStateDisplay struct { +// QueryCoreHRSignatureFileRespItemSignatureFileStateDisplay ... +type QueryCoreHRSignatureFileRespItemSignatureFileStateDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// queryCorehrSignatureFileResp ... -type queryCorehrSignatureFileResp struct { +// queryCoreHRSignatureFileResp ... +type queryCoreHRSignatureFileResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *QueryCorehrSignatureFileResp `json:"data,omitempty"` + Data *QueryCoreHRSignatureFileResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_file_terminate.go b/api_corehr_signature_file_terminate.go index 196ee497..cddc6574 100644 --- a/api_corehr_signature_file_terminate.go +++ b/api_corehr_signature_file_terminate.go @@ -21,68 +21,68 @@ import ( "context" ) -// CreateCorehrSignatureFileTerminate 该接口用于终止在签署流程中的电子签文件, 不再执行后续的签署流程 +// TerminateCoreHRSignatureFile 该接口用于终止在签署流程中的电子签文件, 不再执行后续的签署流程 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/terminate // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/terminate -func (r *CoreHRService) CreateCorehrSignatureFileTerminate(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrSignatureFileTerminate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrSignatureFileTerminate mock enable") - return r.cli.mock.mockCoreHRCreateCorehrSignatureFileTerminate(ctx, request, options...) +func (r *CoreHRService) TerminateCoreHRSignatureFile(ctx context.Context, request *TerminateCoreHRSignatureFileReq, options ...MethodOptionFunc) (*TerminateCoreHRSignatureFileResp, *Response, error) { + if r.cli.mock.mockCoreHRTerminateCoreHRSignatureFile != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#TerminateCoreHRSignatureFile mock enable") + return r.cli.mock.mockCoreHRTerminateCoreHRSignatureFile(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrSignatureFileTerminate", + API: "TerminateCoreHRSignatureFile", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_files/terminate", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrSignatureFileTerminateResp) + resp := new(terminateCoreHRSignatureFileResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrSignatureFileTerminate mock CoreHRCreateCorehrSignatureFileTerminate method -func (r *Mock) MockCoreHRCreateCorehrSignatureFileTerminate(f func(ctx context.Context, request *CreateCorehrSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCorehrSignatureFileTerminateResp, *Response, error)) { - r.mockCoreHRCreateCorehrSignatureFileTerminate = f +// MockCoreHRTerminateCoreHRSignatureFile mock CoreHRTerminateCoreHRSignatureFile method +func (r *Mock) MockCoreHRTerminateCoreHRSignatureFile(f func(ctx context.Context, request *TerminateCoreHRSignatureFileReq, options ...MethodOptionFunc) (*TerminateCoreHRSignatureFileResp, *Response, error)) { + r.mockCoreHRTerminateCoreHRSignatureFile = f } -// UnMockCoreHRCreateCorehrSignatureFileTerminate un-mock CoreHRCreateCorehrSignatureFileTerminate method -func (r *Mock) UnMockCoreHRCreateCorehrSignatureFileTerminate() { - r.mockCoreHRCreateCorehrSignatureFileTerminate = nil +// UnMockCoreHRTerminateCoreHRSignatureFile un-mock CoreHRTerminateCoreHRSignatureFile method +func (r *Mock) UnMockCoreHRTerminateCoreHRSignatureFile() { + r.mockCoreHRTerminateCoreHRSignatureFile = nil } -// CreateCorehrSignatureFileTerminateReq ... -type CreateCorehrSignatureFileTerminateReq struct { +// TerminateCoreHRSignatureFileReq ... +type TerminateCoreHRSignatureFileReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID IDs []string `json:"ids,omitempty"` // 欲终止的电子签文件id列表, 文件ID可以通过调用「获取电子签文件列表」接口获取示例值: ["7410063506638112300"] 长度范围: `0` ~ `100` Operator string `json:"operator,omitempty"` // 操作人ID, ID的格式取决于query传参中传入的user_id_type字段;ID获取方式见「查询参数」示例值: "7386593105085988xxx" TerminateReason string `json:"terminate_reason,omitempty"` // 终止原因, 不得超过300字符示例值: "请求流程发生变化, 需要重新签署, 因此终止签署流程中的文件" } -// CreateCorehrSignatureFileTerminateResp ... -type CreateCorehrSignatureFileTerminateResp struct { - TotalCount int64 `json:"total_count,omitempty"` // 欲终止的文件总数量 - SuccessCount int64 `json:"success_count,omitempty"` // 成功总数量 - FailCount int64 `json:"fail_count,omitempty"` // 失败总数量 - SuccessFileIDList []string `json:"success_file_id_list,omitempty"` // 终止成功的文件id列表, 可以通过[【获取电子签文件列表】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)接口获取文件详情信息 - FailFileIDAndReasons []*CreateCorehrSignatureFileTerminateRespFailFileIDAndReason `json:"fail_file_id_and_reasons,omitempty"` // 终止失败的文件id和对应的原因列表 +// TerminateCoreHRSignatureFileResp ... +type TerminateCoreHRSignatureFileResp struct { + TotalCount int64 `json:"total_count,omitempty"` // 欲终止的文件总数量 + SuccessCount int64 `json:"success_count,omitempty"` // 成功总数量 + FailCount int64 `json:"fail_count,omitempty"` // 失败总数量 + SuccessFileIDList []string `json:"success_file_id_list,omitempty"` // 终止成功的文件id列表, 可以通过[【获取电子签文件列表】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)接口获取文件详情信息 + FailFileIDAndReasons []*TerminateCoreHRSignatureFileRespFailFileIDAndReason `json:"fail_file_id_and_reasons,omitempty"` // 终止失败的文件id和对应的原因列表 } -// CreateCorehrSignatureFileTerminateRespFailFileIDAndReason ... -type CreateCorehrSignatureFileTerminateRespFailFileIDAndReason struct { +// TerminateCoreHRSignatureFileRespFailFileIDAndReason ... +type TerminateCoreHRSignatureFileRespFailFileIDAndReason struct { SignatureFileID string `json:"signature_file_id,omitempty"` // 终止操作失败的文件ID, 可以通过[【获取电子签文件列表】](ssl:/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)接口获取文件详情信息 FailReason string `json:"fail_reason,omitempty"` // 终止失败的原因 } -// createCorehrSignatureFileTerminateResp ... -type createCorehrSignatureFileTerminateResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrSignatureFileTerminateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// terminateCoreHRSignatureFileResp ... +type terminateCoreHRSignatureFileResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *TerminateCoreHRSignatureFileResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_node_list_by_file_id.go b/api_corehr_signature_node_list_by_file_id.go index 19c64195..e95f2d9d 100644 --- a/api_corehr_signature_node_list_by_file_id.go +++ b/api_corehr_signature_node_list_by_file_id.go @@ -21,78 +21,78 @@ import ( "context" ) -// ListCorehrSignatureNodeByFileID 该接口可以通过电子签文件ID查询到该电子签文件的签署流程的各个节点信息, 包括签署节点、盖章节点、审阅节点等, 各个节点有对应的内容、完成时间、审阅人、盖章人等信息 +// ListCoreHRSignatureNodeByFileID 该接口可以通过电子签文件ID查询到该电子签文件的签署流程的各个节点信息, 包括签署节点、盖章节点、审阅节点等, 各个节点有对应的内容、完成时间、审阅人、盖章人等信息 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_node/list_by_file_id // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_file/list_by_file_id -func (r *CoreHRService) ListCorehrSignatureNodeByFileID(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrSignatureNodeByFileID != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureNodeByFileID mock enable") - return r.cli.mock.mockCoreHRListCorehrSignatureNodeByFileID(ctx, request, options...) +func (r *CoreHRService) ListCoreHRSignatureNodeByFileID(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRSignatureNodeByFileID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRSignatureNodeByFileID mock enable") + return r.cli.mock.mockCoreHRListCoreHRSignatureNodeByFileID(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrSignatureNodeByFileID", + API: "ListCoreHRSignatureNodeByFileID", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_nodes/list_by_file_id", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrSignatureNodeByFileIDResp) + resp := new(listCoreHRSignatureNodeByFileIDResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrSignatureNodeByFileID mock CoreHRListCorehrSignatureNodeByFileID method -func (r *Mock) MockCoreHRListCorehrSignatureNodeByFileID(f func(ctx context.Context, request *ListCorehrSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCorehrSignatureNodeByFileIDResp, *Response, error)) { - r.mockCoreHRListCorehrSignatureNodeByFileID = f +// MockCoreHRListCoreHRSignatureNodeByFileID mock CoreHRListCoreHRSignatureNodeByFileID method +func (r *Mock) MockCoreHRListCoreHRSignatureNodeByFileID(f func(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error)) { + r.mockCoreHRListCoreHRSignatureNodeByFileID = f } -// UnMockCoreHRListCorehrSignatureNodeByFileID un-mock CoreHRListCorehrSignatureNodeByFileID method -func (r *Mock) UnMockCoreHRListCorehrSignatureNodeByFileID() { - r.mockCoreHRListCorehrSignatureNodeByFileID = nil +// UnMockCoreHRListCoreHRSignatureNodeByFileID un-mock CoreHRListCoreHRSignatureNodeByFileID method +func (r *Mock) UnMockCoreHRListCoreHRSignatureNodeByFileID() { + r.mockCoreHRListCoreHRSignatureNodeByFileID = nil } -// ListCorehrSignatureNodeByFileIDReq ... -type ListCorehrSignatureNodeByFileIDReq struct { +// ListCoreHRSignatureNodeByFileIDReq ... +type ListCoreHRSignatureNodeByFileIDReq struct { FileID string `query:"file_id" json:"-"` // 电子签文件ID, 可以通过[【批量获取电子签文件】](/ssl:ttdc/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_file/list)获取示例值: 7149088311624091180 UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: people_corehr_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以飞书人事的 ID 来识别用户默认值: `people_corehr_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID } -// ListCorehrSignatureNodeByFileIDResp ... -type ListCorehrSignatureNodeByFileIDResp struct { - SignatureNodes []*ListCorehrSignatureNodeByFileIDRespSignatureNode `json:"signature_nodes,omitempty"` // 电子签文件签署流程各个节点列表信息 +// ListCoreHRSignatureNodeByFileIDResp ... +type ListCoreHRSignatureNodeByFileIDResp struct { + SignatureNodes []*ListCoreHRSignatureNodeByFileIDRespSignatureNode `json:"signature_nodes,omitempty"` // 电子签文件签署流程各个节点列表信息 } -// ListCorehrSignatureNodeByFileIDRespSignatureNode ... -type ListCorehrSignatureNodeByFileIDRespSignatureNode struct { - UserInfos []*ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo `json:"user_infos,omitempty"` // 节点相关的角色信息 +// ListCoreHRSignatureNodeByFileIDRespSignatureNode ... +type ListCoreHRSignatureNodeByFileIDRespSignatureNode struct { + UserInfos []*ListCoreHRSignatureNodeByFileIDRespSignatureNodeUserInfo `json:"user_infos,omitempty"` // 节点相关的角色信息 State string `json:"state,omitempty"` // 节点状态, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件状态(signature_file_state)枚举定义部分获得 FinishTime string `json:"finish_time,omitempty"` // 节点完成时间 UpdatedTime string `json:"updated_time,omitempty"` // 节点最近更新时间 IsOngoing bool `json:"is_ongoing,omitempty"` // 当前节点是否为正在处理的节点 - RoleLabel *ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel `json:"role_label,omitempty"` // 当前节点操作名称 + RoleLabel *ListCoreHRSignatureNodeByFileIDRespSignatureNodeRoleLabel `json:"role_label,omitempty"` // 当前节点操作名称 SignRole string `json:"sign_role,omitempty"` // 操作人类型, 如: 发起人、审阅人、签字人枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签文件流程节点签署角色(signature_node_sign_role)枚举定义部分获得 } -// ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel ... -type ListCorehrSignatureNodeByFileIDRespSignatureNodeRoleLabel struct { +// ListCoreHRSignatureNodeByFileIDRespSignatureNodeRoleLabel ... +type ListCoreHRSignatureNodeByFileIDRespSignatureNodeRoleLabel struct { Zh string `json:"zh,omitempty"` // 当前节点的操作名称中文展示, 如: 发起 En string `json:"en,omitempty"` // 当前节点的操作名称英文展示, 如: Initiate } -// ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo ... -type ListCorehrSignatureNodeByFileIDRespSignatureNodeUserInfo struct { +// ListCoreHRSignatureNodeByFileIDRespSignatureNodeUserInfo ... +type ListCoreHRSignatureNodeByFileIDRespSignatureNodeUserInfo struct { ID string `json:"id,omitempty"` // 员工雇佣ID, 可以通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取员工详细信息 } -// listCorehrSignatureNodeByFileIDResp ... -type listCorehrSignatureNodeByFileIDResp struct { +// listCoreHRSignatureNodeByFileIDResp ... +type listCoreHRSignatureNodeByFileIDResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrSignatureNodeByFileIDResp `json:"data,omitempty"` + Data *ListCoreHRSignatureNodeByFileIDResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_template_info_with_thumbnail_list.go b/api_corehr_signature_template_info_with_thumbnail_list.go index 6811aded..47eef99d 100644 --- a/api_corehr_signature_template_info_with_thumbnail_list.go +++ b/api_corehr_signature_template_info_with_thumbnail_list.go @@ -21,43 +21,43 @@ import ( "context" ) -// ListCorehrSignatureTemplateInfoWithThumbnail 该接口用于批量获取电子签模板信息, 包括模板类别、用途、适用区域等。 +// ListCoreHRSignatureTemplateInfoWithThumbnail 该接口用于批量获取电子签模板信息, 包括模板类别、用途、适用区域等。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template_info_with_thumbnail/list // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_template_info_with_thumbnail/list -func (r *CoreHRService) ListCorehrSignatureTemplateInfoWithThumbnail(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrSignatureTemplateInfoWithThumbnail mock enable") - return r.cli.mock.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(ctx, request, options...) +func (r *CoreHRService) ListCoreHRSignatureTemplateInfoWithThumbnail(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRSignatureTemplateInfoWithThumbnail mock enable") + return r.cli.mock.mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrSignatureTemplateInfoWithThumbnail", + API: "ListCoreHRSignatureTemplateInfoWithThumbnail", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_template_info_with_thumbnails", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrSignatureTemplateInfoWithThumbnailResp) + resp := new(listCoreHRSignatureTemplateInfoWithThumbnailResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail mock CoreHRListCorehrSignatureTemplateInfoWithThumbnail method -func (r *Mock) MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(f func(ctx context.Context, request *ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCorehrSignatureTemplateInfoWithThumbnailResp, *Response, error)) { - r.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail = f +// MockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail mock CoreHRListCoreHRSignatureTemplateInfoWithThumbnail method +func (r *Mock) MockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail(f func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error)) { + r.mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail = f } -// UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail un-mock CoreHRListCorehrSignatureTemplateInfoWithThumbnail method -func (r *Mock) UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail() { - r.mockCoreHRListCorehrSignatureTemplateInfoWithThumbnail = nil +// UnMockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail un-mock CoreHRListCoreHRSignatureTemplateInfoWithThumbnail method +func (r *Mock) UnMockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail() { + r.mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail = nil } -// ListCorehrSignatureTemplateInfoWithThumbnailReq ... -type ListCorehrSignatureTemplateInfoWithThumbnailReq struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailReq ... +type ListCoreHRSignatureTemplateInfoWithThumbnailReq struct { PageSize *int64 `query:"page_size" json:"-"` // 分页大小;如果不填, 默认为10示例值: 10 PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: 0 Name *string `query:"name" json:"-"` // 模版名示例值: 入职模板 @@ -67,118 +67,118 @@ type ListCorehrSignatureTemplateInfoWithThumbnailReq struct { ApplicabilityApinames []string `query:"applicability_apinames" json:"-"` // 电子签模板适用范围, 多个用途之间使用英文逗号分隔;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板适用范围(signature_template_applicability)枚举定义部分获得示例值: document_print, 文件打印 长度范围: `0` ~ `4294967296` } -// ListCorehrSignatureTemplateInfoWithThumbnailResp ... -type ListCorehrSignatureTemplateInfoWithThumbnailResp struct { - Items []*ListCorehrSignatureTemplateInfoWithThumbnailRespItem `json:"items,omitempty"` // 电子签模板列表 +// ListCoreHRSignatureTemplateInfoWithThumbnailResp ... +type ListCoreHRSignatureTemplateInfoWithThumbnailResp struct { + Items []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItem `json:"items,omitempty"` // 电子签模板列表 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token Count int64 `json:"count,omitempty"` // 数据总数 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItem ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItem struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItem ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItem struct { ID string `json:"id,omitempty"` // id - Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel `json:"label,omitempty"` // 名称 支持多语 + Label []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemLabel `json:"label,omitempty"` // 名称 支持多语 Category *HelpdeskCategory `json:"category,omitempty"` // 模版类别, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得 - Usage *ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage `json:"usage,omitempty"` // 模版用途;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得 + Usage *ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsage `json:"usage,omitempty"` // 模版用途;枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类别(signature_template_category)枚举定义部分获得 CreateTime string `json:"create_time,omitempty"` // 创建日期 ModifyTime string `json:"modify_time,omitempty"` // 修改日期 - CreatedBy *ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy `json:"created_by,omitempty"` // 创建人 - UpdatedBy *ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy `json:"updated_by,omitempty"` // 修改人 + CreatedBy *ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCreatedBy `json:"created_by,omitempty"` // 创建人 + UpdatedBy *ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUpdatedBy `json:"updated_by,omitempty"` // 修改人 ThumbnailURL string `json:"thumbnail_url,omitempty"` // 缩略图url - SignatoryLabels []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署人标签 + SignatoryLabels []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署人标签 TemplateCode string `json:"template_code,omitempty"` // 模板编码 TemplateDesc string `json:"template_desc,omitempty"` // 模板描述 - TemplateRegionInfo *ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 + TemplateRegionInfo *ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategory ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategory struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCategory ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCategory struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCategoryDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemCreatedBy struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCreatedBy ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemCreatedBy struct { ID string `json:"id,omitempty"` // 雇佣ID, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemLabel struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemLabel ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel struct { - TemplateSignatoryType *ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签订人类型 - Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel `json:"label,omitempty"` // 中英文描述 +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabel struct { + TemplateSignatoryType *ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签订人类型 + Label []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel `json:"label,omitempty"` // 中英文描述 Apiname string `json:"apiname,omitempty"` // 主数据apiname } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemSignatoryLabelTemplateSignatoryTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfo struct { IsGlobalScope string `json:"is_global_scope,omitempty"` // 是否全球适用 - MetaInfos []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 + MetaInfos []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfo struct { ApiName string `json:"api_name,omitempty"` // 元数据api_name WkID string `json:"wk_id,omitempty"` // wukong id - Label []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 + Label []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemTemplateRegionInfoMetaInfoLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUpdatedBy struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUpdatedBy ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUpdatedBy struct { ID string `json:"id,omitempty"` // 雇佣ID, [【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsage struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsage ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsage struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsageDisplay `json:"display,omitempty"` // 枚举多语展示 } -// ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay ... -type ListCorehrSignatureTemplateInfoWithThumbnailRespItemUsageDisplay struct { +// ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsageDisplay ... +type ListCoreHRSignatureTemplateInfoWithThumbnailRespItemUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 内容 } -// listCorehrSignatureTemplateInfoWithThumbnailResp ... -type listCorehrSignatureTemplateInfoWithThumbnailResp struct { +// listCoreHRSignatureTemplateInfoWithThumbnailResp ... +type listCoreHRSignatureTemplateInfoWithThumbnailResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrSignatureTemplateInfoWithThumbnailResp `json:"data,omitempty"` + Data *ListCoreHRSignatureTemplateInfoWithThumbnailResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_signature_template_search.go b/api_corehr_signature_template_search.go index 0a81bc49..45f7c5b9 100644 --- a/api_corehr_signature_template_search.go +++ b/api_corehr_signature_template_search.go @@ -21,422 +21,422 @@ import ( "context" ) -// SearchCorehrSignatureTemplate 根据多个模板ID获取电子签模板基本信息和内容列表。 +// SearchCoreHRSignatureTemplate 根据多个模板ID获取电子签模板基本信息和内容列表。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/signature_template/search // new doc: https://open.feishu.cn/document/corehr-v1/siganture/signature_template_info_with_thumbnail/search -func (r *CoreHRService) SearchCorehrSignatureTemplate(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error) { - if r.cli.mock.mockCoreHRSearchCorehrSignatureTemplate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCorehrSignatureTemplate mock enable") - return r.cli.mock.mockCoreHRSearchCorehrSignatureTemplate(ctx, request, options...) +func (r *CoreHRService) SearchCoreHRSignatureTemplate(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error) { + if r.cli.mock.mockCoreHRSearchCoreHRSignatureTemplate != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#SearchCoreHRSignatureTemplate mock enable") + return r.cli.mock.mockCoreHRSearchCoreHRSignatureTemplate(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "SearchCorehrSignatureTemplate", + API: "SearchCoreHRSignatureTemplate", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/signature_templates/search", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(searchCorehrSignatureTemplateResp) + resp := new(searchCoreHRSignatureTemplateResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRSearchCorehrSignatureTemplate mock CoreHRSearchCorehrSignatureTemplate method -func (r *Mock) MockCoreHRSearchCorehrSignatureTemplate(f func(ctx context.Context, request *SearchCorehrSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCorehrSignatureTemplateResp, *Response, error)) { - r.mockCoreHRSearchCorehrSignatureTemplate = f +// MockCoreHRSearchCoreHRSignatureTemplate mock CoreHRSearchCoreHRSignatureTemplate method +func (r *Mock) MockCoreHRSearchCoreHRSignatureTemplate(f func(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error)) { + r.mockCoreHRSearchCoreHRSignatureTemplate = f } -// UnMockCoreHRSearchCorehrSignatureTemplate un-mock CoreHRSearchCorehrSignatureTemplate method -func (r *Mock) UnMockCoreHRSearchCorehrSignatureTemplate() { - r.mockCoreHRSearchCorehrSignatureTemplate = nil +// UnMockCoreHRSearchCoreHRSignatureTemplate un-mock CoreHRSearchCoreHRSignatureTemplate method +func (r *Mock) UnMockCoreHRSearchCoreHRSignatureTemplate() { + r.mockCoreHRSearchCoreHRSignatureTemplate = nil } -// SearchCorehrSignatureTemplateReq ... -type SearchCorehrSignatureTemplateReq struct { +// SearchCoreHRSignatureTemplateReq ... +type SearchCoreHRSignatureTemplateReq struct { TemplateIDs []string `query:"template_ids" json:"-"` // 电子签模板ids, 用英文逗号分隔;如果不传 则返回所有电子签模版信息示例值: 7223256427270260268, 7182520625066475540 SelectCustomField *bool `query:"select_custom_field" json:"-"` // 是否需要模板自定义字段, 如果不需要, 则默认只返回模板的系统字段。示例值: true } -// SearchCorehrSignatureTemplateResp ... -type SearchCorehrSignatureTemplateResp struct { - SignatureTemplates []*SearchCorehrSignatureTemplateRespSignatureTemplate `json:"signature_templates,omitempty"` // 返回的电子签模板列表 +// SearchCoreHRSignatureTemplateResp ... +type SearchCoreHRSignatureTemplateResp struct { + SignatureTemplates []*SearchCoreHRSignatureTemplateRespSignatureTemplate `json:"signature_templates,omitempty"` // 返回的电子签模板列表 } -// SearchCorehrSignatureTemplateRespSignatureTemplate ... -type SearchCorehrSignatureTemplateRespSignatureTemplate struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplate ... +type SearchCoreHRSignatureTemplateRespSignatureTemplate struct { ID string `json:"id,omitempty"` // 电子签模板id - BriefInfo *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo `json:"brief_info,omitempty"` // 模板基本信息 - ContentInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo `json:"content_info,omitempty"` // 模板内容 + BriefInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfo `json:"brief_info,omitempty"` // 模板基本信息 + ContentInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfo `json:"content_info,omitempty"` // 模板内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfo struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfo struct { ID string `json:"id,omitempty"` // 电子签模板id - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel `json:"label,omitempty"` // 模板名称 + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoLabel `json:"label,omitempty"` // 模板名称 Category *HelpdeskCategory `json:"category,omitempty"` // 电子签模板分类, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板类型(signature_template_category)枚举定义部分获得 - Usage *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage `json:"usage,omitempty"` // 电子签模板用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板用途(signature_template_usage)枚举定义部分获得 - SignatoryLabels []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署对象 + Usage *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsage `json:"usage,omitempty"` // 电子签模板用途, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板用途(signature_template_usage)枚举定义部分获得 + SignatoryLabels []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel `json:"signatory_labels,omitempty"` // 模版签署对象 Active bool `json:"active,omitempty"` // 是否激活 CreateBy string `json:"create_by,omitempty"` // 创建人的雇佣ID, 详细信息可通过[【查询员工信息接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取 ModifyBy string `json:"modify_by,omitempty"` // 修改人的雇佣ID, 详细信息可通过[【查询员工信息接口】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search)获取 - Applicability *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability `json:"applicability,omitempty"` // 电子签模板适用范围, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板适用范围(signature_template_applicability)枚举定义部分 + Applicability *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicability `json:"applicability,omitempty"` // 电子签模板适用范围, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板适用范围(signature_template_applicability)枚举定义部分 CreationMethod string `json:"creation_method,omitempty"` // 模板创建方式 Version string `json:"version,omitempty"` // 版本 UpdateTime string `json:"update_time,omitempty"` // 更新时间 CreateTime string `json:"create_time,omitempty"` // 创建时间 - TemplateSetting *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting `json:"template_setting,omitempty"` // 模板设置 - TemplateRegionInfo *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 + TemplateSetting *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting `json:"template_setting,omitempty"` // 模板设置 + TemplateRegionInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo `json:"template_region_info,omitempty"` // 模板适用区域 TemplateCode string `json:"template_code,omitempty"` // 模板编码 - TemplateDesc []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc `json:"template_desc,omitempty"` // 模板描述 支持多语 + TemplateDesc []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc `json:"template_desc,omitempty"` // 模板描述 支持多语 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicability struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicability ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicability struct { EnumName string `json:"enum_name,omitempty"` // 模板适用范围枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoApplicabilityDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategory ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategory struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoCategory ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoCategory struct { EnumName string `json:"enum_name,omitempty"` // 模板类别名称 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay `json:"display,omitempty"` // 模板类别对应的多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay `json:"display,omitempty"` // 模板类别对应的多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoCategoryDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 中文 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 模板名 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel struct { - TemplateSignatoryType *SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签署对象类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板签署对象类型(signature_template_signatory_type)枚举定义部分获得 - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel `json:"label,omitempty"` // 字段多语展示 +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabel struct { + TemplateSignatoryType *SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType `json:"template_signatory_type,omitempty"` // 电子签模板签署对象类型, 枚举值可通过文档[【飞书人事枚举常量】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)电子签模板签署对象类型(signature_template_signatory_type)枚举定义部分获得 + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel `json:"label,omitempty"` // 字段多语展示 Apiname string `json:"apiname,omitempty"` // 模板签署类型名 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryType struct { EnumName string `json:"enum_name,omitempty"` // 模板签署对象类型对应的枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoSignatoryLabelTemplateSignatoryTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 中文 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateDesc struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfo struct { IsGlobalScope string `json:"is_global_scope,omitempty"` // 是否全球适用 - MetaInfos []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 + MetaInfos []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo `json:"meta_infos,omitempty"` // 适用区域名称 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfo struct { ApiName string `json:"api_name,omitempty"` // 区域名称apiName WkID string `json:"wk_id,omitempty"` // 区域对应的唯一ID - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel `json:"label,omitempty"` // 多语描述 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateRegionInfoMetaInfoLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoTemplateSetting struct { PageSealTypes []string `json:"page_seal_types,omitempty"` // 骑缝章类型 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsage struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsage ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsage struct { EnumName string `json:"enum_name,omitempty"` // 模板用途名称 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay `json:"display,omitempty"` // 模板用途的多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay `json:"display,omitempty"` // 模板用途的多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateBriefInfoUsageDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 人事合同 / 协议 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfo struct { - Contents []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent `json:"contents,omitempty"` // 【已废弃, 无需关注】 - CustomFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段列表 - FilterFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField `json:"filter_fields,omitempty"` // 【已废弃, 无需关注】 - UsingFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField `json:"using_fields,omitempty"` // 【已废弃, 无需关注】 - SystemSettingFields []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField `json:"system_setting_fields,omitempty"` // 系统字段列表 +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfo struct { + Contents []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContent `json:"contents,omitempty"` // 【已废弃, 无需关注】 + CustomFields []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomField `json:"custom_fields,omitempty"` // 自定义字段列表 + FilterFields []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterField `json:"filter_fields,omitempty"` // 【已废弃, 无需关注】 + UsingFields []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingField `json:"using_fields,omitempty"` // 【已废弃, 无需关注】 + SystemSettingFields []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField `json:"system_setting_fields,omitempty"` // 系统字段列表 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContent struct { - ContentType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType `json:"content_type,omitempty"` // 电子签模版内容的类型 +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContent ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContent struct { + ContentType *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentType `json:"content_type,omitempty"` // 电子签模版内容的类型 FilterApiname string `json:"filter_apiname,omitempty"` // 显示规则左值 Content string `json:"content,omitempty"` // 模版内容 - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel `json:"label,omitempty"` // 中英文描述 + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentLabel `json:"label,omitempty"` // 中英文描述 ContentDesc string `json:"content_desc,omitempty"` // 内容描述 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentType struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentType ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentContentTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoContentLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoContentLabel struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomField struct { - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel `json:"label,omitempty"` // 中英文描述 +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomField ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomField struct { + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel `json:"label,omitempty"` // 中英文描述 Apiname string `json:"apiname,omitempty"` // 字段名 - CustomFieldType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType `json:"custom_field_type,omitempty"` // 用户自定义字段类型 + CustomFieldType *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType `json:"custom_field_type,omitempty"` // 用户自定义字段类型 Used bool `json:"used,omitempty"` // 是否使用到 IsRequired bool `json:"is_required,omitempty"` // 是否需要 CustomDesc string `json:"custom_desc,omitempty"` // 自定义描述 - CommonInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo `json:"common_info,omitempty"` // 电子签模版公共字段信息 + CommonInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo `json:"common_info,omitempty"` // 电子签模版公共字段信息 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo struct { - Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfo struct { + Source *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" Apiname string `json:"apiname,omitempty"` // 主数据apiname } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSource struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCommonInfoSourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldCustomFieldTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoCustomFieldLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterField struct { - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel `json:"label,omitempty"` // 双语描述 +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterField ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterField struct { + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel `json:"label,omitempty"` // 双语描述 Apiname string `json:"apiname,omitempty"` // 主数据apiname - Filters []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter `json:"filters,omitempty"` // 过滤条件列表 - Logic *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic `json:"logic,omitempty"` // 多个生效条件的logic + Filters []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter `json:"filters,omitempty"` // 过滤条件列表 + Logic *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic `json:"logic,omitempty"` // 多个生效条件的logic IsChecked bool `json:"is_checked,omitempty"` // 是否被校验 FilterDesc string `json:"filter_desc,omitempty"` // 过滤条件描述 CriterionList string `json:"criterion_list,omitempty"` // 过滤条件列表, 使用string类型描述list的原因是为了避免循环引用问题, 因为该list的item类型就是这个数据类型 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilter struct { Left string `json:"left,omitempty"` // 左值 Rights []string `json:"rights,omitempty"` // 右值列表 - Op *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp `json:"op,omitempty"` // 操作符 + Op *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp `json:"op,omitempty"` // 操作符 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOp struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldFilterOpDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLabel struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogic struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoFilterFieldLogicDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField struct { - FieldType *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType `json:"field_type,omitempty"` // 模板字段值类型枚举 - Label []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel `json:"label,omitempty"` // 双语描述 - CommonInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo `json:"common_info,omitempty"` // 【无需关注】通用字段信息 - CombinationInfo *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo `json:"combination_info,omitempty"` // 【无需关注】组合字段信息 +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingField struct { + FieldType *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType `json:"field_type,omitempty"` // 模板字段值类型枚举 + Label []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel `json:"label,omitempty"` // 双语描述 + CommonInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo `json:"common_info,omitempty"` // 【无需关注】通用字段信息 + CombinationInfo *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo `json:"combination_info,omitempty"` // 【无需关注】组合字段信息 Children string `json:"children,omitempty"` // 【无需关注】子模板配置信息列表对应的string, 避免循环引用问题 - CombinationInfoV2 *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 `json:"combination_info_v2,omitempty"` // 弃用, 无需关注 + CombinationInfoV2 *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 `json:"combination_info_v2,omitempty"` // 弃用, 无需关注 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfo struct { TotalApiname int64 `json:"total_apiname,omitempty"` // 【无需关注】组合字段名 Apiname string `json:"apiname,omitempty"` // 字段名 - Title []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle `json:"title,omitempty"` // 中英文描述 + Title []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle `json:"title,omitempty"` // 中英文描述 Contents [][]interface{} `json:"contents,omitempty"` // 适用区域名称 - Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource `json:"source,omitempty"` // 【无需关注】电子签模板字段源类型 + Source *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource `json:"source,omitempty"` // 【无需关注】电子签模板字段源类型 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSource struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoSourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoTitle struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2 struct { TotalApiname int64 `json:"total_apiname,omitempty"` // 弃用, 无需关注 Apiname string `json:"apiname,omitempty"` // 弃用, 无需关注 - Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source `json:"source,omitempty"` // 弃用, 无需关注 + Source *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source `json:"source,omitempty"` // 弃用, 无需关注 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2Source struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCombinationInfoV2SourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo struct { - Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型- System- MainData +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfo struct { + Source *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource `json:"source,omitempty"` // 模板字段源类型- System- MainData Apiname string `json:"apiname,omitempty"` // 字段名称 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSource struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldCommonInfoSourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldType struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldFieldTypeDisplay struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoSystemSettingFieldLabel struct { Lang string `json:"lang,omitempty"` // 语言 Value string `json:"value,omitempty"` // 文本内容 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingField struct { - Source *SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingField ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingField struct { + Source *SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource `json:"source,omitempty"` // 模板字段源类型;枚举值填到enum_name中, 如: "System" "MainData" Apiname string `json:"apiname,omitempty"` // 字段名 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSource struct { EnumName string `json:"enum_name,omitempty"` // 枚举值 - Display []*SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay `json:"display,omitempty"` // 枚举多语展示 + Display []*SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay `json:"display,omitempty"` // 枚举多语展示 } -// SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay ... -type SearchCorehrSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay struct { +// SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay ... +type SearchCoreHRSignatureTemplateRespSignatureTemplateContentInfoUsingFieldSourceDisplay struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// searchCorehrSignatureTemplateResp ... -type searchCorehrSignatureTemplateResp struct { +// searchCoreHRSignatureTemplateResp ... +type searchCoreHRSignatureTemplateResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchCorehrSignatureTemplateResp `json:"data,omitempty"` + Data *SearchCoreHRSignatureTemplateResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_workforce_plan_detail_batch_query.go b/api_corehr_workforce_plan_detail_batch_query.go index b529dd44..11721d24 100644 --- a/api_corehr_workforce_plan_detail_batch_query.go +++ b/api_corehr_workforce_plan_detail_batch_query.go @@ -21,7 +21,7 @@ import ( "context" ) -// BatchQueryCorehrWorkforcePlanDetail 查询编制规划明细, 包括维度信息、编制数和预估在职人数 +// BatchQueryCoreHRWorkforcePlanDetail 查询编制规划明细, 包括维度信息、编制数和预估在职人数 // // - 本接口可查询编制规划或集中填报明细信息。 // - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 @@ -31,39 +31,39 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail/batch // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batch -func (r *CoreHRService) BatchQueryCorehrWorkforcePlanDetail(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error) { - if r.cli.mock.mockCoreHRBatchQueryCorehrWorkforcePlanDetail != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCorehrWorkforcePlanDetail mock enable") - return r.cli.mock.mockCoreHRBatchQueryCorehrWorkforcePlanDetail(ctx, request, options...) +func (r *CoreHRService) BatchQueryCoreHRWorkforcePlanDetail(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCoreHRWorkforcePlanDetail != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHRWorkforcePlanDetail mock enable") + return r.cli.mock.mockCoreHRBatchQueryCoreHRWorkforcePlanDetail(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchQueryCorehrWorkforcePlanDetail", + API: "BatchQueryCoreHRWorkforcePlanDetail", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_details/batch", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchQueryCorehrWorkforcePlanDetailResp) + resp := new(batchQueryCoreHRWorkforcePlanDetailResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchQueryCorehrWorkforcePlanDetail mock CoreHRBatchQueryCorehrWorkforcePlanDetail method -func (r *Mock) MockCoreHRBatchQueryCorehrWorkforcePlanDetail(f func(ctx context.Context, request *BatchQueryCorehrWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCorehrWorkforcePlanDetailResp, *Response, error)) { - r.mockCoreHRBatchQueryCorehrWorkforcePlanDetail = f +// MockCoreHRBatchQueryCoreHRWorkforcePlanDetail mock CoreHRBatchQueryCoreHRWorkforcePlanDetail method +func (r *Mock) MockCoreHRBatchQueryCoreHRWorkforcePlanDetail(f func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error)) { + r.mockCoreHRBatchQueryCoreHRWorkforcePlanDetail = f } -// UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail un-mock CoreHRBatchQueryCorehrWorkforcePlanDetail method -func (r *Mock) UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail() { - r.mockCoreHRBatchQueryCorehrWorkforcePlanDetail = nil +// UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetail un-mock CoreHRBatchQueryCoreHRWorkforcePlanDetail method +func (r *Mock) UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetail() { + r.mockCoreHRBatchQueryCoreHRWorkforcePlanDetail = nil } -// BatchQueryCorehrWorkforcePlanDetailReq ... -type BatchQueryCorehrWorkforcePlanDetailReq struct { +// BatchQueryCoreHRWorkforcePlanDetailReq ... +type BatchQueryCoreHRWorkforcePlanDetailReq struct { PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: ["123456"] PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` WorkforcePlanID *string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID, ID及详细信息可通过[获取编制规划方案列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list)接口查询获得。查询编制规划明细信息时, 编制规划方案 ID 必填。示例值: "781234834512" @@ -79,124 +79,124 @@ type BatchQueryCorehrWorkforcePlanDetailReq struct { IncludeMissingDimensionRows *bool `json:"include_missing_dimension_rows,omitempty"` // 是否包含缺维度明细行数据, true为包含缺维度明细行数据, false为仅获取所有维度都有值的明细行数据, 默认为 false示例值: false } -// BatchQueryCorehrWorkforcePlanDetailResp ... -type BatchQueryCorehrWorkforcePlanDetailResp struct { +// BatchQueryCoreHRWorkforcePlanDetailResp ... +type BatchQueryCoreHRWorkforcePlanDetailResp struct { WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报项目 ID - Items []*BatchQueryCorehrWorkforcePlanDetailRespItem `json:"items,omitempty"` // 编制规划明细信息 + Items []*BatchQueryCoreHRWorkforcePlanDetailRespItem `json:"items,omitempty"` // 编制规划明细信息 PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// BatchQueryCorehrWorkforcePlanDetailRespItem ... -type BatchQueryCorehrWorkforcePlanDetailRespItem struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItem ... +type BatchQueryCoreHRWorkforcePlanDetailRespItem struct { WorkforcePlanDetailID string `json:"workforce_plan_detail_id,omitempty"` // 编制规划明细 ID - Department *BatchQueryCorehrWorkforcePlanDetailRespItemDepartment `json:"department,omitempty"` // 部门信息 - EmployeeType *BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType `json:"employee_type,omitempty"` // 人员类型信息 - WorkLocation *BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation `json:"work_location,omitempty"` // 工作地点信息 - JobFamily *BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily `json:"job_family,omitempty"` // 序列信息 - JobLevel *BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel `json:"job_level,omitempty"` // 职级信息 - Job *BatchQueryCorehrWorkforcePlanDetailRespItemJob `json:"job,omitempty"` // 职务信息 - CostCenter *BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter `json:"cost_center,omitempty"` // 成本中心信息 + Department *BatchQueryCoreHRWorkforcePlanDetailRespItemDepartment `json:"department,omitempty"` // 部门信息 + EmployeeType *BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeType `json:"employee_type,omitempty"` // 人员类型信息 + WorkLocation *BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocation `json:"work_location,omitempty"` // 工作地点信息 + JobFamily *BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamily `json:"job_family,omitempty"` // 序列信息 + JobLevel *BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevel `json:"job_level,omitempty"` // 职级信息 + Job *BatchQueryCoreHRWorkforcePlanDetailRespItemJob `json:"job,omitempty"` // 职务信息 + CostCenter *BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenter `json:"cost_center,omitempty"` // 成本中心信息 WorkforcePlan string `json:"workforce_plan,omitempty"` // 编制规划值 - EstimatedActiveIndividualsDetail []*BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_detail,omitempty"` // 预估在职人数明细 + EstimatedActiveIndividualsDetail []*BatchQueryCoreHRWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_detail,omitempty"` // 预估在职人数明细 IsMissingDimension bool `json:"is_missing_dimension,omitempty"` // 是否为缺维度的明细行, true为缺维度明细行, false为非缺维度明细行 } -// BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter ... -type BatchQueryCorehrWorkforcePlanDetailRespItemCostCenter struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenter ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenter struct { ID string `json:"id,omitempty"` // 成本中心ID- 可通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获取详情。 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenterName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemCostCenterName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenterName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemCostCenterName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemDepartment ... -type BatchQueryCorehrWorkforcePlanDetailRespItemDepartment struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemDepartment ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemDepartment struct { ID string `json:"id,omitempty"` // 部门ID。可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemDepartmentName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemDepartmentName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemDepartmentName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemDepartmentName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType ... -type BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeType struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeType ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeType struct { ID string `json:"id,omitempty"` // 人员类型 ID - 可通过[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获取详情。 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeTypeName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemEmployeeTypeName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeTypeName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemEmployeeTypeName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail ... -type BatchQueryCorehrWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemEstimatedActiveIndividualsDetail struct { Date string `json:"date,omitempty"` // 预估月份 EstimatedActiveIndividuals string `json:"estimated_active_individuals,omitempty"` // 预估在职人数 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJob ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJob struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJob ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJob struct { ID string `json:"id,omitempty"` // 职务 ID- 可通过[查询单个职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详情。 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemJobName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJobFamily struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamily ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamily struct { ID string `json:"id,omitempty"` // 序列ID- 可通过[批量查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_family/batch_get)获取详情 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamilyName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJobFamilyName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamilyName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJobFamilyName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJobLevel struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevel ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevel struct { ID string `json:"id,omitempty"` // 职级ID- 可通过[批量查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_level/batch_get)获取详情 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevelName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJobLevelName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevelName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJobLevelName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemJobName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemJobName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemJobName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemJobName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation ... -type BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocation struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocation ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocation struct { ID string `json:"id,omitempty"` // 地点ID- 可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)获取详情。 - Name []*BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName `json:"name,omitempty"` // 维度名称 + Name []*BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocationName `json:"name,omitempty"` // 维度名称 } -// BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName ... -type BatchQueryCorehrWorkforcePlanDetailRespItemWorkLocationName struct { +// BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocationName ... +type BatchQueryCoreHRWorkforcePlanDetailRespItemWorkLocationName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文是 zh-CN, 英文是 en-US Value string `json:"value,omitempty"` // 文本内容 } -// batchQueryCorehrWorkforcePlanDetailResp ... -type batchQueryCorehrWorkforcePlanDetailResp struct { +// batchQueryCoreHRWorkforcePlanDetailResp ... +type batchQueryCoreHRWorkforcePlanDetailResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchQueryCorehrWorkforcePlanDetailResp `json:"data,omitempty"` + Data *BatchQueryCoreHRWorkforcePlanDetailResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_workforce_plan_detail_batch_v2.go b/api_corehr_workforce_plan_detail_batch_v2.go index 3b403769..acdd7752 100644 --- a/api_corehr_workforce_plan_detail_batch_v2.go +++ b/api_corehr_workforce_plan_detail_batch_v2.go @@ -21,7 +21,7 @@ import ( "context" ) -// BatchCorehrWorkforcePlanDetailV2 查询编制规划明细, 包括维度信息、编制数、预估在职人数、在职人数和预增/预减人数。 +// BatchQueryCoreHRWorkforcePlanDetailV2 查询编制规划明细, 包括维度信息、编制数、预估在职人数、在职人数和预增/预减人数。 // // - 本接口可查询编制规划或集中填报明细信息。 // - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 @@ -31,114 +31,114 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail/batch_v2 // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batch_v2 -func (r *CoreHRService) BatchCorehrWorkforcePlanDetailV2(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error) { - if r.cli.mock.mockCoreHRBatchCorehrWorkforcePlanDetailV2 != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchCorehrWorkforcePlanDetailV2 mock enable") - return r.cli.mock.mockCoreHRBatchCorehrWorkforcePlanDetailV2(ctx, request, options...) +func (r *CoreHRService) BatchQueryCoreHRWorkforcePlanDetailV2(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailV2Resp, *Response, error) { + if r.cli.mock.mockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchQueryCoreHRWorkforcePlanDetailV2 mock enable") + return r.cli.mock.mockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "BatchCorehrWorkforcePlanDetailV2", + API: "BatchQueryCoreHRWorkforcePlanDetailV2", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_details/batch_v2", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(batchCorehrWorkforcePlanDetailV2Resp) + resp := new(batchQueryCoreHRWorkforcePlanDetailV2Resp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRBatchCorehrWorkforcePlanDetailV2 mock CoreHRBatchCorehrWorkforcePlanDetailV2 method -func (r *Mock) MockCoreHRBatchCorehrWorkforcePlanDetailV2(f func(ctx context.Context, request *BatchCorehrWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCorehrWorkforcePlanDetailV2Resp, *Response, error)) { - r.mockCoreHRBatchCorehrWorkforcePlanDetailV2 = f +// MockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 mock CoreHRBatchQueryCoreHRWorkforcePlanDetailV2 method +func (r *Mock) MockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2(f func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailV2Resp, *Response, error)) { + r.mockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 = f } -// UnMockCoreHRBatchCorehrWorkforcePlanDetailV2 un-mock CoreHRBatchCorehrWorkforcePlanDetailV2 method -func (r *Mock) UnMockCoreHRBatchCorehrWorkforcePlanDetailV2() { - r.mockCoreHRBatchCorehrWorkforcePlanDetailV2 = nil +// UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 un-mock CoreHRBatchQueryCoreHRWorkforcePlanDetailV2 method +func (r *Mock) UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2() { + r.mockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 = nil } -// BatchCorehrWorkforcePlanDetailV2Req ... -type BatchCorehrWorkforcePlanDetailV2Req struct { - PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: ["123456"] - PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` - WorkforcePlanID *string `json:"workforce_plan_id,omitempty"` // 编制规划方案ID, ID及详细信息可通过[获取编制规划方案列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list)接口查询获得。查询编制规划明细信息时, 编制规划方案ID必填, 是否为集中填报项目设置为false, 不填写集中填报项目ID(是否填写不影响返回结果)示例值: "781234834512" - IsCentralizedReportingProject *bool `json:"is_centralized_reporting_project,omitempty"` // 是否为集中填报项目。如果租户未使用集中填报功能, 将此参数置空即可。如果查询集中填报明细, 将此参数设置为true。字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: false默认值: `false` - CentralizedReportingProjectID *string `json:"centralized_reporting_project_id,omitempty"` // 编制规划集中填报项目ID, ID可通过访问集中填报页面, 从URL中提取report_id参数。如果租户未使用集中填报功能, 将此参数置空即可。查询集中填报信息时, 集中填报项目ID必填, 是否为集中填报项目设置为true, 不填写编制规划方案ID(是否填写不影响返回结果)字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: "7140964208476371111" - DimensionIDInDatas []*BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData `json:"dimension_id_in_datas,omitempty"` // 维度筛选 长度范围: `0` ~ `100` - IncludeMissingDimensionRows *bool `json:"include_missing_dimension_rows,omitempty"` // 是否包含缺维度的明细行数据, true为包含缺维度明细行数据, false为仅获取所有维度都有值的明细行数据, 默认为 false示例值: false - FilterAllZeroValueRows *bool `json:"filter_all_zero_value_rows,omitempty"` // 是否过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true为过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false为不过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, 默认为 false示例值: false +// BatchQueryCoreHRWorkforcePlanDetailV2Req ... +type BatchQueryCoreHRWorkforcePlanDetailV2Req struct { + PageToken *string `query:"page_token" json:"-"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: ["123456"] + PageSize *int64 `query:"page_size" json:"-"` // 分页大小示例值: 100默认值: `100` 取值范围: `1` ~ `100` + WorkforcePlanID *string `json:"workforce_plan_id,omitempty"` // 编制规划方案ID, ID及详细信息可通过[获取编制规划方案列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list)接口查询获得。查询编制规划明细信息时, 编制规划方案ID必填, 是否为集中填报项目设置为false, 不填写集中填报项目ID(是否填写不影响返回结果)示例值: "781234834512" + IsCentralizedReportingProject *bool `json:"is_centralized_reporting_project,omitempty"` // 是否为集中填报项目。如果租户未使用集中填报功能, 将此参数置空即可。如果查询集中填报明细, 将此参数设置为true。字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: false默认值: `false` + CentralizedReportingProjectID *string `json:"centralized_reporting_project_id,omitempty"` // 编制规划集中填报项目ID, ID可通过访问集中填报页面, 从URL中提取report_id参数。如果租户未使用集中填报功能, 将此参数置空即可。查询集中填报信息时, 集中填报项目ID必填, 是否为集中填报项目设置为true, 不填写编制规划方案ID(是否填写不影响返回结果)字段权限要求: 获取编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:read)示例值: "7140964208476371111" + DimensionIDInDatas []*BatchQueryCoreHRWorkforcePlanDetailV2ReqDimensionIDInData `json:"dimension_id_in_datas,omitempty"` // 维度筛选 长度范围: `0` ~ `100` + IncludeMissingDimensionRows *bool `json:"include_missing_dimension_rows,omitempty"` // 是否包含缺维度的明细行数据, true为包含缺维度明细行数据, false为仅获取所有维度都有值的明细行数据, 默认为 false示例值: false + FilterAllZeroValueRows *bool `json:"filter_all_zero_value_rows,omitempty"` // 是否过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true为过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false为不过滤在职、预增/预减人员、编制数、预估在职人数都为0的明细行, 默认为 false示例值: false } -// BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData ... -type BatchCorehrWorkforcePlanDetailV2ReqDimensionIDInData struct { +// BatchQueryCoreHRWorkforcePlanDetailV2ReqDimensionIDInData ... +type BatchQueryCoreHRWorkforcePlanDetailV2ReqDimensionIDInData struct { DimensionKey *string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" DimensionIDs []string `json:"dimension_ids,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: ["7210266650427033132"] 长度范围: `0` ~ `1000` } -// BatchCorehrWorkforcePlanDetailV2Resp ... -type BatchCorehrWorkforcePlanDetailV2Resp struct { - WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID - CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报项目 ID - Items []*BatchCorehrWorkforcePlanDetailV2RespItem `json:"items,omitempty"` // 编制规划明细信息 - PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token - HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 +// BatchQueryCoreHRWorkforcePlanDetailV2Resp ... +type BatchQueryCoreHRWorkforcePlanDetailV2Resp struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID + CentralizedReportingProjectID string `json:"centralized_reporting_project_id,omitempty"` // 集中填报项目 ID + Items []*BatchQueryCoreHRWorkforcePlanDetailV2RespItem `json:"items,omitempty"` // 编制规划明细信息 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 } -// BatchCorehrWorkforcePlanDetailV2RespItem ... -type BatchCorehrWorkforcePlanDetailV2RespItem struct { - WorkforcePlanDetailID string `json:"workforce_plan_detail_id,omitempty"` // 编制规划明细 ID - DimensionInfoDatas []*BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData `json:"dimension_info_datas,omitempty"` // 维度信息 - WorkforcePlan string `json:"workforce_plan,omitempty"` // 编制规划值 - ActiveIndividuals string `json:"active_individuals,omitempty"` // 在职人数 - IndividualsToBeAdded string `json:"individuals_to_be_added,omitempty"` // 预增员数量 - IndividualsToBeRemoved string `json:"individuals_to_be_removed,omitempty"` // 预减员数量 - EstimatedActiveIndividualsDetails []*BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_details,omitempty"` // 预估在职人数明细 - MultiPeriodValues []*BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - IsMissingDimension bool `json:"is_missing_dimension,omitempty"` // 是否为缺维度的明细行, true为缺维度明细行, false为非缺维度明细行 - IsAllZeroValue bool `json:"is_all_zero_value,omitempty"` // 是否在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true代表在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false代表在职、预增/预减人员、编制数、预估在职人数不全为0的明细行 +// BatchQueryCoreHRWorkforcePlanDetailV2RespItem ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItem struct { + WorkforcePlanDetailID string `json:"workforce_plan_detail_id,omitempty"` // 编制规划明细 ID + DimensionInfoDatas []*BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoData `json:"dimension_info_datas,omitempty"` // 维度信息 + WorkforcePlan string `json:"workforce_plan,omitempty"` // 编制规划值 + ActiveIndividuals string `json:"active_individuals,omitempty"` // 在职人数 + IndividualsToBeAdded string `json:"individuals_to_be_added,omitempty"` // 预增员数量 + IndividualsToBeRemoved string `json:"individuals_to_be_removed,omitempty"` // 预减员数量 + EstimatedActiveIndividualsDetails []*BatchQueryCoreHRWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail `json:"estimated_active_individuals_details,omitempty"` // 预估在职人数明细 + MultiPeriodValues []*BatchQueryCoreHRWorkforcePlanDetailV2RespItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + IsMissingDimension bool `json:"is_missing_dimension,omitempty"` // 是否为缺维度的明细行, true为缺维度明细行, false为非缺维度明细行 + IsAllZeroValue bool `json:"is_all_zero_value,omitempty"` // 是否在职、预增/预减人员、编制数、预估在职人数都为0的明细行, true代表在职、预增/预减人员、编制数、预估在职人数都为0的明细行, false代表在职、预增/预减人员、编制数、预估在职人数不全为0的明细行 } -// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData ... -type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoData struct { - DimensionKey string `json:"dimension_key,omitempty"` // 维度 key- "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05" - DimensionInfo *BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo `json:"dimension_info,omitempty"` // 维度信息 +// BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoData ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoData struct { + DimensionKey string `json:"dimension_key,omitempty"` // 维度 key- "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05" + DimensionInfo *BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo `json:"dimension_info,omitempty"` // 维度信息 } -// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo ... -type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo struct { - ID string `json:"id,omitempty"` // 维度id- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) - Name []*BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName `json:"name,omitempty"` // 维度名称 +// BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfo struct { + ID string `json:"id,omitempty"` // 维度id- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW) + Name []*BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName `json:"name,omitempty"` // 维度名称 } -// BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName ... -type BatchCorehrWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName struct { +// BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItemDimensionInfoDataDimensionInfoName struct { Lang string `json:"lang,omitempty"` // 语言编码(IETF BCP 47) Value string `json:"value,omitempty"` // 文本内容 } -// BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail ... -type BatchCorehrWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail struct { +// BatchQueryCoreHRWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItemEstimatedActiveIndividualsDetail struct { Date string `json:"date,omitempty"` // 预估月份 EstimatedActiveIndividuals string `json:"estimated_active_individuals,omitempty"` // 预估在职人数 } -// BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue ... -type BatchCorehrWorkforcePlanDetailV2RespItemMultiPeriodValue struct { +// BatchQueryCoreHRWorkforcePlanDetailV2RespItemMultiPeriodValue ... +type BatchQueryCoreHRWorkforcePlanDetailV2RespItemMultiPeriodValue struct { PeriodDate string `json:"period_date,omitempty"` // 自然周期的最后一天 WorkforcePlan string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值 IndividualsToBeAdded string `json:"individuals_to_be_added,omitempty"` // 对应自然周期的预增员数量 IndividualsToBeRemoved string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期的预减员数量 } -// batchCorehrWorkforcePlanDetailV2Resp ... -type batchCorehrWorkforcePlanDetailV2Resp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *BatchCorehrWorkforcePlanDetailV2Resp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchQueryCoreHRWorkforcePlanDetailV2Resp ... +type batchQueryCoreHRWorkforcePlanDetailV2Resp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchQueryCoreHRWorkforcePlanDetailV2Resp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_workforce_plan_detail_row_batchdelete.go b/api_corehr_workforce_plan_detail_row_batchdelete.go index 949c4bcb..be442b47 100644 --- a/api_corehr_workforce_plan_detail_row_batchdelete.go +++ b/api_corehr_workforce_plan_detail_row_batchdelete.go @@ -21,77 +21,77 @@ import ( "context" ) -// CreateCorehrWorkforcePlanDetailRowBatchdelete 批量删除明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看明细行是否被删除。 +// BatchDeleteCoreHRWorkforcePlanDetailRow 批量删除明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看明细行是否被删除。 // // 批量删除明细行说明: 同批次操作场景下, 禁止重复删除同一行。 // 删除明细行的时候请注意: 底层是将编制规划与预估在职人数清0, 如果被删除行的预增人员、预减人员不为0, 该行依旧会显示在页面上。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail_row/batchDelete // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchDelete-2 -func (r *CoreHRService) CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrWorkforcePlanDetailRowBatchdelete mock enable") - return r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, request, options...) +func (r *CoreHRService) BatchDeleteCoreHRWorkforcePlanDetailRow(ctx context.Context, request *BatchDeleteCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRWorkforcePlanDetailRowResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchDeleteCoreHRWorkforcePlanDetailRow mock enable") + return r.cli.mock.mockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrWorkforcePlanDetailRowBatchdelete", + API: "BatchDeleteCoreHRWorkforcePlanDetailRow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_detail_row/batchDelete", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrWorkforcePlanDetailRowBatchdeleteResp) + resp := new(batchDeleteCoreHRWorkforcePlanDetailRowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete method -func (r *Mock) MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(f func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *Response, error)) { - r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete = f +// MockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow mock CoreHRBatchDeleteCoreHRWorkforcePlanDetailRow method +func (r *Mock) MockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow(f func(ctx context.Context, request *BatchDeleteCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRWorkforcePlanDetailRowResp, *Response, error)) { + r.mockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow = f } -// UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete un-mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete method -func (r *Mock) UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete() { - r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete = nil +// UnMockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow un-mock CoreHRBatchDeleteCoreHRWorkforcePlanDetailRow method +func (r *Mock) UnMockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow() { + r.mockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow = nil } -// CreateCorehrWorkforcePlanDetailRowBatchdeleteReq ... -type CreateCorehrWorkforcePlanDetailRowBatchdeleteReq struct { - WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" - Items []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +// BatchDeleteCoreHRWorkforcePlanDetailRowReq ... +type BatchDeleteCoreHRWorkforcePlanDetailRowReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + Items []*BatchDeleteCoreHRWorkforcePlanDetailRowReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` } -// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem ... -type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItem struct { - Dimensions []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` - EaiDetails []*CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` - PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" +// BatchDeleteCoreHRWorkforcePlanDetailRowReqItem ... +type BatchDeleteCoreHRWorkforcePlanDetailRowReqItem struct { + Dimensions []*BatchDeleteCoreHRWorkforcePlanDetailRowReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*BatchDeleteCoreHRWorkforcePlanDetailRowReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量删除明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12" } -// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension ... -type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemDimension struct { +// BatchDeleteCoreHRWorkforcePlanDetailRowReqItemDimension ... +type BatchDeleteCoreHRWorkforcePlanDetailRowReqItemDimension struct { DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系技术支持- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系技术支持- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系技术支持示例值: "7322790168290739756" } -// CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail ... -type CreateCorehrWorkforcePlanDetailRowBatchdeleteReqItemEaiDetail struct { +// BatchDeleteCoreHRWorkforcePlanDetailRowReqItemEaiDetail ... +type BatchDeleteCoreHRWorkforcePlanDetailRowReqItemEaiDetail struct { Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和编制规划页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" } -// CreateCorehrWorkforcePlanDetailRowBatchdeleteResp ... -type CreateCorehrWorkforcePlanDetailRowBatchdeleteResp struct { +// BatchDeleteCoreHRWorkforcePlanDetailRowResp ... +type BatchDeleteCoreHRWorkforcePlanDetailRowResp struct { } -// createCorehrWorkforcePlanDetailRowBatchdeleteResp ... -type createCorehrWorkforcePlanDetailRowBatchdeleteResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrWorkforcePlanDetailRowBatchdeleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchDeleteCoreHRWorkforcePlanDetailRowResp ... +type batchDeleteCoreHRWorkforcePlanDetailRowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchDeleteCoreHRWorkforcePlanDetailRowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_workforce_plan_detail_row_batchsave.go b/api_corehr_workforce_plan_detail_row_batchsave.go index 506eeda9..660e7bf2 100644 --- a/api_corehr_workforce_plan_detail_row_batchsave.go +++ b/api_corehr_workforce_plan_detail_row_batchsave.go @@ -21,85 +21,85 @@ import ( "context" ) -// CreateCorehrWorkforcePlanDetailRowBatchsave 批量创建/更新明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看。 +// BatchSaveCoreHRWorkforcePlanDetailRow 批量创建/更新明细行后, 可在【设置-编制规划设置-编制规划XXX-编辑数据】进行查看。 // // 批量创建/更新明细行说明: 同批次操作场景下, 禁止创建/更新重复行, 与此同时, 创建时若明细行已存在于系统中, 则会在底层自动触发更新机制;建议不要录入编制规划值和预估在职人数均为零值的明细行, 系统会对全0明细行进行过滤, 从而在页面上不显示该行, 可能会导致用户误以为该明细行不存在。 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan_detail_row/batchSave // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/batchSave -func (r *CoreHRService) CreateCorehrWorkforcePlanDetailRowBatchsave(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error) { - if r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#CreateCorehrWorkforcePlanDetailRowBatchsave mock enable") - return r.cli.mock.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(ctx, request, options...) +func (r *CoreHRService) BatchSaveCoreHRWorkforcePlanDetailRow(ctx context.Context, request *BatchSaveCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRWorkforcePlanDetailRowResp, *Response, error) { + if r.cli.mock.mockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#BatchSaveCoreHRWorkforcePlanDetailRow mock enable") + return r.cli.mock.mockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "CreateCorehrWorkforcePlanDetailRowBatchsave", + API: "BatchSaveCoreHRWorkforcePlanDetailRow", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plan_detail_row/batchSave", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createCorehrWorkforcePlanDetailRowBatchsaveResp) + resp := new(batchSaveCoreHRWorkforcePlanDetailRowResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchsave method -func (r *Mock) MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(f func(ctx context.Context, request *CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *Response, error)) { - r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave = f +// MockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow mock CoreHRBatchSaveCoreHRWorkforcePlanDetailRow method +func (r *Mock) MockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow(f func(ctx context.Context, request *BatchSaveCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRWorkforcePlanDetailRowResp, *Response, error)) { + r.mockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow = f } -// UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave un-mock CoreHRCreateCorehrWorkforcePlanDetailRowBatchsave method -func (r *Mock) UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave() { - r.mockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave = nil +// UnMockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow un-mock CoreHRBatchSaveCoreHRWorkforcePlanDetailRow method +func (r *Mock) UnMockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow() { + r.mockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow = nil } -// CreateCorehrWorkforcePlanDetailRowBatchsaveReq ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveReq struct { - WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" - Items []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` +// BatchSaveCoreHRWorkforcePlanDetailRowReq ... +type BatchSaveCoreHRWorkforcePlanDetailRowReq struct { + WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划id, 可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。示例值: "7430330781544564268" + Items []*BatchSaveCoreHRWorkforcePlanDetailRowReqItem `json:"items,omitempty"` // 编制规划的明细行数量应介于 1 至 5 个之间。 长度范围: `1` ~ `5` } -// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItem struct { - Dimensions []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` - EaiDetails []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` - PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" - MultiPeriodValues []*CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` +// BatchSaveCoreHRWorkforcePlanDetailRowReqItem ... +type BatchSaveCoreHRWorkforcePlanDetailRowReqItem struct { + Dimensions []*BatchSaveCoreHRWorkforcePlanDetailRowReqItemDimension `json:"dimensions,omitempty"` // 编制规划的维度信息要和用户创建的维度匹配, 即传入除自动匹配维度外的所有维度, 不多不少。通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。自定义组织暂时不支持【为组织设置自动匹配规则】, 请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)了解如何判断该字段是否为自动匹配字段。 长度范围: `1` ~ `20` + EaiDetails []*BatchSaveCoreHRWorkforcePlanDetailRowReqItemEaiDetail `json:"eai_details,omitempty"` // 预估在职人数相关信息。可从「设置-编制规划设置-编辑编制规划XXX」查看预估在职人数的时间, 如果不存在该字段说明用户创建时即没有允许填写该字段, 批量创建/更新明细行时则无需给该字段, 如果存在, 用户需要查看预估在职人数的日期, 使用示例值格式进行传参。 长度范围: `0` ~ `15` + PlanValue *string `json:"plan_value,omitempty"` // 编制规划值。需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时, 该值必须为空, 需要设置自然周期的编制规划信息multi_period_values。示例值: "12" + MultiPeriodValues []*BatchSaveCoreHRWorkforcePlanDetailRowReqItemMultiPeriodValue `json:"multi_period_values,omitempty"` // 自然周期的编制规划信息。当编制规划方案是按自然周期选择时, 设置该字段。 长度范围: `0` ~ `15` } -// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemDimension struct { +// BatchSaveCoreHRWorkforcePlanDetailRowReqItemDimension ... +type BatchSaveCoreHRWorkforcePlanDetailRowReqItemDimension struct { DimensionKey string `json:"dimension_key,omitempty"` // 维度key, 可从下面列表中进行选择: "department": 部门。- "employee_type" : 人员类型。- "location": 地点。- "position" : 岗位。- "cost_center" : 成本中心/业务线。- "job_family" : 序列。- "job_level" : 职级。- "job" : 职务。自定义组织: "custom_org_01" - "custom_org_02"- "custom_org_03"- "custom_org_04" - "custom_org_05"示例值: "department" DimensionValue string `json:"dimension_value,omitempty"` // 维度value。- department_id: 可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。- location_id: 可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。- cost_center_id: 可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。- job_id: 可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。- job_level_id: 可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。- job_family_id: 可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。- employee_type_id: 可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。- position_id: 岗位, 功能灰度中, 如有需求请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_01_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_02_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_03_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_04_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)- custom_org_05_id: 自定义组织, 功能灰度中, 有需要请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)示例值: "7322790168290739756" } -// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemEaiDetail struct { +// BatchSaveCoreHRWorkforcePlanDetailRowReqItemEaiDetail ... +type BatchSaveCoreHRWorkforcePlanDetailRowReqItemEaiDetail struct { Date *string `json:"date,omitempty"` // 预估在职人数的日期, 和编制规划页面上显示的预估在职人数的日期一致, 且格式要依照示例给定, 若二者不匹配, 则无法完成识别更新。示例值: "2020-10-31" EstimatedActiveIndividuals *string `json:"estimated_active_individuals,omitempty"` // 预估在职人数应与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。示例值: "10" } -// CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveReqItemMultiPeriodValue struct { +// BatchSaveCoreHRWorkforcePlanDetailRowReqItemMultiPeriodValue ... +type BatchSaveCoreHRWorkforcePlanDetailRowReqItemMultiPeriodValue struct { PeriodDate *string `json:"period_date,omitempty"` // 周期的最后一天示例值: "2022-10-31" WorkforcePlan *string `json:"workforce_plan,omitempty"` // 对应自然周期的编制规划值。编制规划值需与创建编制规划时指定的小数位数相匹配, 若不匹配, 则无法更新。小数位查看方式: 「设置-编制规划-编制规划XXX」查看编制规划的小数位数。示例值: "12.00" IndividualsToBeAdded *string `json:"individuals_to_be_added,omitempty"` // 对应自然周期的预增员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" IndividualsToBeRemoved *string `json:"individuals_to_be_removed,omitempty"` // 对应自然周期的预减员数量。批量创建更新时, 无需写入此字段。示例值: "10.00" } -// CreateCorehrWorkforcePlanDetailRowBatchsaveResp ... -type CreateCorehrWorkforcePlanDetailRowBatchsaveResp struct { +// BatchSaveCoreHRWorkforcePlanDetailRowResp ... +type BatchSaveCoreHRWorkforcePlanDetailRowResp struct { } -// createCorehrWorkforcePlanDetailRowBatchsaveResp ... -type createCorehrWorkforcePlanDetailRowBatchsaveResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateCorehrWorkforcePlanDetailRowBatchsaveResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// batchSaveCoreHRWorkforcePlanDetailRowResp ... +type batchSaveCoreHRWorkforcePlanDetailRowResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *BatchSaveCoreHRWorkforcePlanDetailRowResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_corehr_workforce_plan_list.go b/api_corehr_workforce_plan_list.go index c19d2043..c6c5c2fa 100644 --- a/api_corehr_workforce_plan_list.go +++ b/api_corehr_workforce_plan_list.go @@ -21,7 +21,7 @@ import ( "context" ) -// ListCorehrWorkforcePlan 根据传入的筛选项获取编制规划的方案列表 +// ListCoreHRWorkforcePlan 根据传入的筛选项获取编制规划的方案列表 // // - 请求体入参如果没有特殊说明, 不填写默认为空, 不参与筛选。 // - 所有筛选项可一起使用, 之间为 AND 关系。 @@ -29,68 +29,68 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/workforce_plan/list // new doc: https://open.feishu.cn/document/corehr-v1/workforce_plan/list -func (r *CoreHRService) ListCorehrWorkforcePlan(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error) { - if r.cli.mock.mockCoreHRListCorehrWorkforcePlan != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCorehrWorkforcePlan mock enable") - return r.cli.mock.mockCoreHRListCorehrWorkforcePlan(ctx, request, options...) +func (r *CoreHRService) ListCoreHRWorkforcePlan(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error) { + if r.cli.mock.mockCoreHRListCoreHRWorkforcePlan != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] CoreHR#ListCoreHRWorkforcePlan mock enable") + return r.cli.mock.mockCoreHRListCoreHRWorkforcePlan(ctx, request, options...) } req := &RawRequestReq{ Scope: "CoreHR", - API: "ListCorehrWorkforcePlan", + API: "ListCoreHRWorkforcePlan", Method: "GET", URL: r.cli.openBaseURL + "/open-apis/corehr/v2/workforce_plans", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(listCorehrWorkforcePlanResp) + resp := new(listCoreHRWorkforcePlanResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockCoreHRListCorehrWorkforcePlan mock CoreHRListCorehrWorkforcePlan method -func (r *Mock) MockCoreHRListCorehrWorkforcePlan(f func(ctx context.Context, request *ListCorehrWorkforcePlanReq, options ...MethodOptionFunc) (*ListCorehrWorkforcePlanResp, *Response, error)) { - r.mockCoreHRListCorehrWorkforcePlan = f +// MockCoreHRListCoreHRWorkforcePlan mock CoreHRListCoreHRWorkforcePlan method +func (r *Mock) MockCoreHRListCoreHRWorkforcePlan(f func(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error)) { + r.mockCoreHRListCoreHRWorkforcePlan = f } -// UnMockCoreHRListCorehrWorkforcePlan un-mock CoreHRListCorehrWorkforcePlan method -func (r *Mock) UnMockCoreHRListCorehrWorkforcePlan() { - r.mockCoreHRListCorehrWorkforcePlan = nil +// UnMockCoreHRListCoreHRWorkforcePlan un-mock CoreHRListCoreHRWorkforcePlan method +func (r *Mock) UnMockCoreHRListCoreHRWorkforcePlan() { + r.mockCoreHRListCoreHRWorkforcePlan = nil } -// ListCorehrWorkforcePlanReq ... -type ListCorehrWorkforcePlanReq struct { +// ListCoreHRWorkforcePlanReq ... +type ListCoreHRWorkforcePlanReq struct { GetAllPlan *bool `query:"get_all_plan" json:"-"` // 是否获取所有编制规划方案, 默认为 false。- true 所有编制规划方案列表。- false 为仅获取当前生效的编制规划方案。示例值: false Active *bool `query:"active" json:"-"` // 是否只获取已启用的方案, 默认为 true。- true 获取已启用编制规划方案- false 获取所有编制规划方案, 示例值: false } -// ListCorehrWorkforcePlanResp ... -type ListCorehrWorkforcePlanResp struct { - Items []*ListCorehrWorkforcePlanRespItem `json:"items,omitempty"` // 编制规划方案列表 +// ListCoreHRWorkforcePlanResp ... +type ListCoreHRWorkforcePlanResp struct { + Items []*ListCoreHRWorkforcePlanRespItem `json:"items,omitempty"` // 编制规划方案列表 Total int64 `json:"total,omitempty"` // 满足条件的方案总数 } -// ListCorehrWorkforcePlanRespItem ... -type ListCorehrWorkforcePlanRespItem struct { +// ListCoreHRWorkforcePlanRespItem ... +type ListCoreHRWorkforcePlanRespItem struct { WorkforcePlanID string `json:"workforce_plan_id,omitempty"` // 编制规划方案 ID - WorkforcePlanName []*ListCorehrWorkforcePlanRespItemWorkforcePlanName `json:"workforce_plan_name,omitempty"` // 编制规划方案名称 + WorkforcePlanName []*ListCoreHRWorkforcePlanRespItemWorkforcePlanName `json:"workforce_plan_name,omitempty"` // 编制规划方案名称 StartDate string `json:"start_date,omitempty"` // 开始日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01 ~ 9999-12-31 EndDate string `json:"end_date,omitempty"` // 结束日期- 返回格式: YYYY-MM-DD(最小单位到日)- 日期范围:1900-01-01 ~ 9999-12-31 Active bool `json:"active,omitempty"` // 是否启用- true 表示启用- false 表示停用 } -// ListCorehrWorkforcePlanRespItemWorkforcePlanName ... -type ListCorehrWorkforcePlanRespItemWorkforcePlanName struct { +// ListCoreHRWorkforcePlanRespItemWorkforcePlanName ... +type ListCoreHRWorkforcePlanRespItemWorkforcePlanName struct { Lang string `json:"lang,omitempty"` // 语言信息, 中文为 zh-CN, 英文为 en-US Value string `json:"value,omitempty"` // 内容 } -// listCorehrWorkforcePlanResp ... -type listCorehrWorkforcePlanResp struct { +// listCoreHRWorkforcePlanResp ... +type listCoreHRWorkforcePlanResp struct { Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 Msg string `json:"msg,omitempty"` // 错误描述 - Data *ListCorehrWorkforcePlanResp `json:"data,omitempty"` + Data *ListCoreHRWorkforcePlanResp `json:"data,omitempty"` Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_docs_content_get.go b/api_docs_content_get.go index e8c2e350..2b64a154 100644 --- a/api_docs_content_get.go +++ b/api_docs_content_get.go @@ -26,9 +26,9 @@ import ( // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/docs-v1/content/get // new doc: https://open.feishu.cn/document/docs/docs-v1/get func (r *DriveService) GetDocsContent(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) { - if r.cli.mock.mockDocsGetDocsContent != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Docs#GetDocsContent mock enable") - return r.cli.mock.mockDocsGetDocsContent(ctx, request, options...) + if r.cli.mock.mockDriveGetDocsContent != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Drive#GetDocsContent mock enable") + return r.cli.mock.mockDriveGetDocsContent(ctx, request, options...) } req := &RawRequestReq{ @@ -47,14 +47,14 @@ func (r *DriveService) GetDocsContent(ctx context.Context, request *GetDocsConte return resp.Data, response, err } -// MockDocsGetDocsContent mock DocsGetDocsContent method -func (r *Mock) MockDocsGetDocsContent(f func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error)) { - r.mockDocsGetDocsContent = f +// MockDriveGetDocsContent mock DriveGetDocsContent method +func (r *Mock) MockDriveGetDocsContent(f func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error)) { + r.mockDriveGetDocsContent = f } -// UnMockDocsGetDocsContent un-mock DocsGetDocsContent method -func (r *Mock) UnMockDocsGetDocsContent() { - r.mockDocsGetDocsContent = nil +// UnMockDriveGetDocsContent un-mock DriveGetDocsContent method +func (r *Mock) UnMockDriveGetDocsContent() { + r.mockDriveGetDocsContent = nil } // GetDocsContentReq ... diff --git a/api_event_callback_module.go b/api_event_callback_module.go index ba6402b5..37702a11 100644 --- a/api_event_callback_module.go +++ b/api_event_callback_module.go @@ -27,155 +27,155 @@ import ( type EventType string const ( - EventTypeV2ElearningCourseRegistrationCreatedV2 EventType = "elearning.course_registration.created_v2" - EventTypeV2ElearningCourseRegistrationUpdatedV2 EventType = "elearning.course_registration.updated_v2" - EventTypeV2ElearningCourseRegistrationDeletedV2 EventType = "elearning.course_registration.deleted_v2" - EventTypeV2URLPreviewGet EventType = "url.preview.get" - EventTypeV2HireApplicationStageChangedV1 EventType = "hire.application.stage_changed_v1" - EventTypeV2HireApplicationDeletedV1 EventType = "hire.application.deleted_v1" - EventTypeV2CoreHRJobCreatedV1 EventType = "corehr.job.created_v1" - EventTypeV2CoreHRJobUpdatedV1 EventType = "corehr.job.updated_v1" - EventTypeV2CoreHRJobDeletedV1 EventType = "corehr.job.deleted_v1" - EventTypeV2CoreHRProcessUpdatedV2 EventType = "corehr.process.updated_v2" - EventTypeV2CoreHRProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" - EventTypeV2CoreHRProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" - EventTypeV2CoreHRProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" - EventTypeV2ContactCustomAttrEventUpdatedV3 EventType = "contact.custom_attr_event.updated_v3" - EventTypeV2ApplicationApplicationCreatedV6 EventType = "application.application.created_v6" + EventTypeV1AddBot EventType = "add_bot" + EventTypeV1AddUserToChat EventType = "add_user_to_chat" EventTypeV1AppOpen EventType = "app_open" EventTypeV1AppStatusChange EventType = "app_status_change" - EventTypeV1OrderPaid EventType = "order_paid" EventTypeV1AppTicket EventType = "app_ticket" EventTypeV1AppUninstalled EventType = "app_uninstalled" - EventTypeV2ApplicationApplicationVisibilityAddedV6 EventType = "application.application.visibility.added_v6" - EventTypeV2ApplicationApplicationAppVersionPublishApplyV6 EventType = "application.application.app_version.publish_apply_v6" - EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6 EventType = "application.application.app_version.publish_revoke_v6" - EventTypeV2ApplicationApplicationAppVersionAuditV6 EventType = "application.application.app_version.audit_v6" + EventTypeV1ApprovalCc EventType = "approval_cc" + EventTypeV1ApprovalInstance EventType = "approval_instance" + EventTypeV1ApprovalTask EventType = "approval_task" + EventTypeV1ChatDisband EventType = "chat_disband" + EventTypeV1LeaveApprovalRevert EventType = "leave_approval" + EventTypeV1LeaveApprovalV2 EventType = "leave_approval" + EventTypeV1OrderPaid EventType = "order_paid" EventTypeV1OutApproval EventType = "out_approval" + EventTypeV1P2PChatCreate EventType = "p2p_chat_create" + EventTypeV1ReceiveMessage EventType = "message" EventTypeV1RemedyApproval EventType = "approval.instance.remedy_group_update_v4" + EventTypeV1RemoveBot EventType = "remove_bot" + EventTypeV1RemoveUserFromChat EventType = "remove_user_from_chat" + EventTypeV1RevokeAddUserFromChat EventType = "revoke_add_user_from_chat" EventTypeV1ShiftApproval EventType = "shift_approval" - EventTypeV1WorkApproval EventType = "work_approval" - EventTypeV1LeaveApprovalV2 EventType = "leave_approval" - EventTypeV1LeaveApprovalRevert EventType = "leave_approval_revert" - EventTypeV1TripApproval EventType = "APPROVED" - EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" - EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" - EventTypeV2DriveFileBitableRecordChangedV1 EventType = "drive.file.bitable_record_changed_v1" - EventTypeV2DriveFileTitleUpdatedV1 EventType = "drive.file.title_updated_v1" - EventTypeV2DriveFileReadV1 EventType = "drive.file.read_v1" - EventTypeV2DriveFileEditV1 EventType = "drive.file.edit_v1" - EventTypeV2DriveFilePermissionMemberAddedV1 EventType = "drive.file.permission_member_added_v1" - EventTypeV2DriveFilePermissionMemberRemovedV1 EventType = "drive.file.permission_member_removed_v1" - EventTypeV2DriveFileTrashedV1 EventType = "drive.file.trashed_v1" - EventTypeV2DriveFileDeletedV1 EventType = "drive.file.deleted_v1" - EventTypeV2ApprovalApprovalUpdatedV4 EventType = "approval.approval.updated_v4" - EventTypeV1ThirdPartyMeetingRoomEventUpdated EventType = "third_party_meeting_room_event_updated" - EventTypeV1ThirdPartyMeetingRoomEventDeleted EventType = "third_party_meeting_room_event_deleted" - EventTypeV2MeetingRoomMeetingRoomCreatedV1 EventType = "meeting_room.meeting_room.created_v1" - EventTypeV2MeetingRoomMeetingRoomUpdatedV1 EventType = "meeting_room.meeting_room.updated_v1" - EventTypeV2MeetingRoomMeetingRoomStatusChangedV1 EventType = "meeting_room.meeting_room.status_changed_v1" - EventTypeV2MeetingRoomMeetingRoomDeletedV1 EventType = "meeting_room.meeting_room.deleted_v1" EventTypeV1ThirdPartyMeetingRoomEventCreated EventType = "third_party_meeting_room_event_created" + EventTypeV1ThirdPartyMeetingRoomEventDeleted EventType = "third_party_meeting_room_event_deleted" + EventTypeV1ThirdPartyMeetingRoomEventUpdated EventType = "third_party_meeting_room_event_updated" + EventTypeV1TripApproval EventType = "trip_approval" + EventTypeV1WorkApproval EventType = "work_approval" + EventTypeV2ACSAccessRecordCreatedV1 EventType = "acs.access_record.created_v1" + EventTypeV2ACSUserUpdatedV1 EventType = "acs.user.updated_v1" + EventTypeV2ApplicationApplicationAppVersionAuditV6 EventType = "application.application.app_version.audit_v6" + EventTypeV2ApplicationApplicationAppVersionPublishApplyV6 EventType = "application.application.app_version.publish_apply_v6" + EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6 EventType = "application.application.app_version.publish_revoke_v6" + EventTypeV2ApplicationApplicationCreatedV6 EventType = "application.application.created_v6" EventTypeV2ApplicationApplicationFeedbackCreatedV6 EventType = "application.application.feedback.created_v6" EventTypeV2ApplicationApplicationFeedbackUpdatedV6 EventType = "application.application.feedback.updated_v6" - EventTypeV2TaskTaskUpdateTenantV1 EventType = "task.task.update_tenant_v1" - EventTypeV2TaskTaskUpdatedV1 EventType = "task.task.updated_v1" - EventTypeV2TaskTaskCommentUpdatedV1 EventType = "task.task.comment.updated_v1" - EventTypeV2HelpdeskTicketMessageCreatedV1 EventType = "helpdesk.ticket_message.created_v1" - EventTypeV2HelpdeskTicketCreatedV1 EventType = "helpdesk.ticket.created_v1" - EventTypeV2HelpdeskTicketUpdatedV1 EventType = "helpdesk.ticket.updated_v1" - EventTypeV2HelpdeskNotificationApproveV1 EventType = "helpdesk.notification.approve_v1" + EventTypeV2ApplicationApplicationVisibilityAddedV6 EventType = "application.application.visibility.added_v6" + EventTypeV2ApplicationBotMenuV6 EventType = "application.bot.menu_v6" + EventTypeV2ApprovalApprovalUpdatedV4 EventType = "approval.approval.updated_v4" + EventTypeV2AttendanceUserFlowCreatedV1 EventType = "attendance.user_flow.created_v1" + EventTypeV2AttendanceUserTaskUpdatedV1 EventType = "attendance.user_task.updated_v1" + EventTypeV2CalendarCalendarACLCreatedV4 EventType = "calendar.calendar.acl.created_v4" + EventTypeV2CalendarCalendarACLDeletedV4 EventType = "calendar.calendar.acl.deleted_v4" + EventTypeV2CalendarCalendarChangedV4 EventType = "calendar.calendar.changed_v4" + EventTypeV2CalendarCalendarEventChangedV4 EventType = "calendar.calendar.event.changed_v4" + EventTypeV2ContactCustomAttrEventUpdatedV3 EventType = "contact.custom_attr_event.updated_v3" EventTypeV2ContactDepartmentCreatedV3 EventType = "contact.department.created_v3" EventTypeV2ContactDepartmentDeletedV3 EventType = "contact.department.deleted_v3" EventTypeV2ContactDepartmentUpdatedV3 EventType = "contact.department.updated_v3" - EventTypeV2ContactUserUpdatedV3 EventType = "contact.user.updated_v3" - EventTypeV2ContactUserCreatedV3 EventType = "contact.user.created_v3" - EventTypeV2ContactUserDeletedV3 EventType = "contact.user.deleted_v3" - EventTypeV2ContactScopeUpdatedV3 EventType = "contact.scope.updated_v3" - EventTypeV2ContactEmployeeTypeEnumCreatedV3 EventType = "contact.employee_type_enum.created_v3" EventTypeV2ContactEmployeeTypeEnumActivedV3 EventType = "contact.employee_type_enum.actived_v3" + EventTypeV2ContactEmployeeTypeEnumCreatedV3 EventType = "contact.employee_type_enum.created_v3" EventTypeV2ContactEmployeeTypeEnumDeactivatedV3 EventType = "contact.employee_type_enum.deactivated_v3" - EventTypeV2ContactEmployeeTypeEnumUpdatedV3 EventType = "contact.employee_type_enum.updated_v3" EventTypeV2ContactEmployeeTypeEnumDeletedV3 EventType = "contact.employee_type_enum.deleted_v3" - EventTypeV2IMMessageReceiveV1 EventType = "im.message.receive_v1" - EventTypeV2IMMessageReadV1 EventType = "im.message.message_read_v1" - EventTypeV2IMMessageReactionDeletedV1 EventType = "im.message.reaction.deleted_v1" - EventTypeV2IMMessageReactionCreatedV1 EventType = "im.message.reaction.created_v1" + EventTypeV2ContactEmployeeTypeEnumUpdatedV3 EventType = "contact.employee_type_enum.updated_v3" + EventTypeV2ContactScopeUpdatedV3 EventType = "contact.scope.updated_v3" + EventTypeV2ContactUserCreatedV3 EventType = "contact.user.created_v3" + EventTypeV2ContactUserDeletedV3 EventType = "contact.user.deleted_v3" + EventTypeV2ContactUserUpdatedV3 EventType = "contact.user.updated_v3" + EventTypeV2CoreHRContractCreatedV1 EventType = "corehr.contract.created_v1" + EventTypeV2CoreHRContractDeletedV1 EventType = "corehr.contract.deleted_v1" + EventTypeV2CoreHRContractUpdatedV1 EventType = "corehr.contract.updated_v1" + EventTypeV2CoreHRDepartmentCreatedV1 EventType = "corehr.department.created_v1" + EventTypeV2CoreHRDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" + EventTypeV2CoreHRDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" + EventTypeV2CoreHREmploymentConvertedV1 EventType = "corehr.employment.converted_v1" + EventTypeV2CoreHREmploymentCreatedV1 EventType = "corehr.employment.created_v1" + EventTypeV2CoreHREmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" + EventTypeV2CoreHREmploymentResignedV1 EventType = "corehr.employment.resigned_v1" + EventTypeV2CoreHREmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" + EventTypeV2CoreHRJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" + EventTypeV2CoreHRJobCreatedV1 EventType = "corehr.job.created_v1" + EventTypeV2CoreHRJobDataChangedV1 EventType = "corehr.job_data.changed_v1" + EventTypeV2CoreHRJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" + EventTypeV2CoreHRJobDeletedV1 EventType = "corehr.job.deleted_v1" + EventTypeV2CoreHRJobUpdatedV1 EventType = "corehr.job.updated_v1" + EventTypeV2CoreHROffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" + EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" + EventTypeV2CoreHRPersonCreatedV1 EventType = "corehr.person.created_v1" + EventTypeV2CoreHRPersonDeletedV1 EventType = "corehr.person.deleted_v1" + EventTypeV2CoreHRPersonUpdatedV1 EventType = "corehr.person.updated_v1" + EventTypeV2CoreHRPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" + EventTypeV2CoreHRProbationUpdatedV2 EventType = "corehr.probation.updated_v2" + EventTypeV2CoreHRProcessApproverUpdatedV2 EventType = "corehr.process.approver.updated_v2" + EventTypeV2CoreHRProcessCcUpdatedV2 EventType = "corehr.process.cc.updated_v2" + EventTypeV2CoreHRProcessNodeUpdatedV2 EventType = "corehr.process.node.updated_v2" + EventTypeV2CoreHRProcessUpdatedV2 EventType = "corehr.process.updated_v2" + EventTypeV2DriveFileBitableFieldChangedV1 EventType = "drive.file.bitable_field_changed_v1" + EventTypeV2DriveFileBitableRecordChangedV1 EventType = "drive.file.bitable_record_changed_v1" + EventTypeV2DriveFileCreatedInFolderV1 EventType = "drive.file.created_in_folder_v1" + EventTypeV2DriveFileDeletedV1 EventType = "drive.file.deleted_v1" + EventTypeV2DriveFileEditV1 EventType = "drive.file.edit_v1" + EventTypeV2DriveFilePermissionMemberAddedV1 EventType = "drive.file.permission_member_added_v1" + EventTypeV2DriveFilePermissionMemberRemovedV1 EventType = "drive.file.permission_member_removed_v1" + EventTypeV2DriveFileReadV1 EventType = "drive.file.read_v1" + EventTypeV2DriveFileTitleUpdatedV1 EventType = "drive.file.title_updated_v1" + EventTypeV2DriveFileTrashedV1 EventType = "drive.file.trashed_v1" + EventTypeV2ElearningCourseRegistrationCreatedV2 EventType = "elearning.course_registration.created_v2" + EventTypeV2ElearningCourseRegistrationDeletedV2 EventType = "elearning.course_registration.deleted_v2" + EventTypeV2ElearningCourseRegistrationUpdatedV2 EventType = "elearning.course_registration.updated_v2" + EventTypeV2HelpdeskNotificationApproveV1 EventType = "helpdesk.notification.approve_v1" + EventTypeV2HelpdeskTicketCreatedV1 EventType = "helpdesk.ticket.created_v1" + EventTypeV2HelpdeskTicketMessageCreatedV1 EventType = "helpdesk.ticket_message.created_v1" + EventTypeV2HelpdeskTicketUpdatedV1 EventType = "helpdesk.ticket.updated_v1" + EventTypeV2HireApplicationDeletedV1 EventType = "hire.application.deleted_v1" + EventTypeV2HireApplicationStageChangedV1 EventType = "hire.application.stage_changed_v1" + EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1 EventType = "hire.ehr_import_task_for_internship_offer.imported_v1" + EventTypeV2HireEHRImportTaskImportedV1 EventType = "hire.ehr_import_task.imported_v1" + EventTypeV2HireEcoAccountCreatedV1 EventType = "hire.eco_account.created_v1" + EventTypeV2HireEcoBackgroundCheckCanceledV1 EventType = "hire.eco_background_check.canceled_v1" + EventTypeV2HireEcoBackgroundCheckCreatedV1 EventType = "hire.eco_background_check.created_v1" + EventTypeV2HireEcoExamCreatedV1 EventType = "hire.eco_exam.created_v1" + EventTypeV2HireOfferStatusChangedV1 EventType = "hire.offer.status_changed_v1" + EventTypeV2HireReferralAccountAssetsUpdateV1 EventType = "hire.referral_account.assets_update_v1" EventTypeV2IMChatDisbandedV1 EventType = "im.chat.disbanded_v1" - EventTypeV2IMChatUpdatedV1 EventType = "im.chat.updated_v1" EventTypeV2IMChatMemberBotAddedV1 EventType = "im.chat.member.bot.added_v1" EventTypeV2IMChatMemberBotDeletedV1 EventType = "im.chat.member.bot.deleted_v1" EventTypeV2IMChatMemberUserAddedV1 EventType = "im.chat.member.user.added_v1" - EventTypeV2IMChatMemberUserWithdrawnV1 EventType = "im.chat.member.user.withdrawn_v1" EventTypeV2IMChatMemberUserDeletedV1 EventType = "im.chat.member.user.deleted_v1" - EventTypeV2VCMeetingMeetingStartedV1 EventType = "vc.meeting.meeting_started_v1" - EventTypeV2VCMeetingMeetingEndedV1 EventType = "vc.meeting.meeting_ended_v1" + EventTypeV2IMChatMemberUserWithdrawnV1 EventType = "im.chat.member.user.withdrawn_v1" + EventTypeV2IMChatUpdatedV1 EventType = "im.chat.updated_v1" + EventTypeV2IMMessageReactionCreatedV1 EventType = "im.message.reaction.created_v1" + EventTypeV2IMMessageReactionDeletedV1 EventType = "im.message.reaction.deleted_v1" + EventTypeV2IMMessageReadV1 EventType = "im.message.message_read_v1" + EventTypeV2IMMessageRecalledV1 EventType = "im.message.recalled_v1" + EventTypeV2IMMessageReceiveV1 EventType = "im.message.receive_v1" + EventTypeV2MeetingRoomMeetingRoomCreatedV1 EventType = "meeting_room.meeting_room.created_v1" + EventTypeV2MeetingRoomMeetingRoomDeletedV1 EventType = "meeting_room.meeting_room.deleted_v1" + EventTypeV2MeetingRoomMeetingRoomStatusChangedV1 EventType = "meeting_room.meeting_room.status_changed_v1" + EventTypeV2MeetingRoomMeetingRoomUpdatedV1 EventType = "meeting_room.meeting_room.updated_v1" + EventTypeV2TaskTaskCommentUpdatedV1 EventType = "task.task.comment.updated_v1" + EventTypeV2TaskTaskUpdateTenantV1 EventType = "task.task.update_tenant_v1" + EventTypeV2TaskTaskUpdatedV1 EventType = "task.task.updated_v1" + EventTypeV2URLPreviewGet EventType = "url.preview.get" + EventTypeV2VCMeetingAllMeetingEndedV1 EventType = "vc.meeting.all_meeting_ended_v1" + EventTypeV2VCMeetingAllMeetingStartedV1 EventType = "vc.meeting.all_meeting_started_v1" EventTypeV2VCMeetingJoinMeetingV1 EventType = "vc.meeting.join_meeting_v1" EventTypeV2VCMeetingLeaveMeetingV1 EventType = "vc.meeting.leave_meeting_v1" - EventTypeV2VCMeetingRecordingStartedV1 EventType = "vc.meeting.recording_started_v1" + EventTypeV2VCMeetingMeetingEndedV1 EventType = "vc.meeting.meeting_ended_v1" + EventTypeV2VCMeetingMeetingStartedV1 EventType = "vc.meeting.meeting_started_v1" EventTypeV2VCMeetingRecordingEndedV1 EventType = "vc.meeting.recording_ended_v1" EventTypeV2VCMeetingRecordingReadyV1 EventType = "vc.meeting.recording_ready_v1" - EventTypeV2VCMeetingShareStartedV1 EventType = "vc.meeting.share_started_v1" + EventTypeV2VCMeetingRecordingStartedV1 EventType = "vc.meeting.recording_started_v1" EventTypeV2VCMeetingShareEndedV1 EventType = "vc.meeting.share_ended_v1" - EventTypeV2ACSAccessRecordCreatedV1 EventType = "acs.access_record.created_v1" - EventTypeV2ACSUserUpdatedV1 EventType = "acs.user.updated_v1" - EventTypeV2CalendarCalendarACLCreatedV4 EventType = "calendar.calendar.acl.created_v4" - EventTypeV2CalendarCalendarACLDeletedV4 EventType = "calendar.calendar.acl.deleted_v4" - EventTypeV2CalendarCalendarEventChangedV4 EventType = "calendar.calendar.event.changed_v4" - EventTypeV2CalendarCalendarChangedV4 EventType = "calendar.calendar.changed_v4" - EventTypeV1AddBot EventType = "add_bot" - EventTypeV1RemoveBot EventType = "remove_bot" - EventTypeV1P2PChatCreate EventType = "p2p_chat_create" - EventTypeV1ReceiveMessage EventType = "message" - EventTypeV1AddUserToChat EventType = "add_user_to_chat" - EventTypeV1RemoveUserFromChat EventType = "remove_user_from_chat" - EventTypeV1RevokeAddUserFromChat EventType = "revoke_add_user_from_chat" - EventTypeV1ChatDisband EventType = "chat_disband" - EventTypeV1ApprovalInstance EventType = "approval_instance" - EventTypeV1ApprovalTask EventType = "approval_task" - EventTypeV1ApprovalCc EventType = "approval_cc" - EventTypeV2AttendanceUserTaskUpdatedV1 EventType = "attendance.user_task.updated_v1" - EventTypeV2AttendanceUserFlowCreatedV1 EventType = "attendance.user_flow.created_v1" - EventTypeV2IMMessageRecalledV1 EventType = "im.message.recalled_v1" + EventTypeV2VCMeetingShareStartedV1 EventType = "vc.meeting.share_started_v1" + EventTypeV2VCReserveConfigUpdatedV1 EventType = "vc.reserve_config.updated_v1" EventTypeV2VCRoomCreatedV1 EventType = "vc.room.created_v1" EventTypeV2VCRoomDeletedV1 EventType = "vc.room.deleted_v1" - EventTypeV2VCRoomUpdatedV1 EventType = "vc.room.updated_v1" - EventTypeV2VCMeetingAllMeetingStartedV1 EventType = "vc.meeting.all_meeting_started_v1" - EventTypeV2VCMeetingAllMeetingEndedV1 EventType = "vc.meeting.all_meeting_ended_v1" EventTypeV2VCRoomLevelCreatedV1 EventType = "vc.room_level.created_v1" EventTypeV2VCRoomLevelDeletedV1 EventType = "vc.room_level.deleted_v1" EventTypeV2VCRoomLevelUpdatedV1 EventType = "vc.room_level.updated_v1" - EventTypeV2VCReserveConfigUpdatedV1 EventType = "vc.reserve_config.updated_v1" - EventTypeV2ApplicationBotMenuV6 EventType = "application.bot.menu_v6" - EventTypeV2HireOfferStatusChangedV1 EventType = "hire.offer.status_changed_v1" - EventTypeV2CoreHREmploymentCreatedV1 EventType = "corehr.employment.created_v1" - EventTypeV2CoreHREmploymentUpdatedV1 EventType = "corehr.employment.updated_v1" - EventTypeV2CoreHREmploymentDeletedV1 EventType = "corehr.employment.deleted_v1" - EventTypeV2CoreHRPersonCreatedV1 EventType = "corehr.person.created_v1" - EventTypeV2CoreHRPersonUpdatedV1 EventType = "corehr.person.updated_v1" - EventTypeV2CoreHRPersonDeletedV1 EventType = "corehr.person.deleted_v1" - EventTypeV2CoreHRDepartmentCreatedV1 EventType = "corehr.department.created_v1" - EventTypeV2CoreHRDepartmentUpdatedV1 EventType = "corehr.department.updated_v1" - EventTypeV2CoreHRDepartmentDeletedV1 EventType = "corehr.department.deleted_v1" - EventTypeV2CoreHRJobDataEmployedV1 EventType = "corehr.job_data.employed_v1" - EventTypeV2CoreHRContractCreatedV1 EventType = "corehr.contract.created_v1" - EventTypeV2CoreHREmploymentConvertedV1 EventType = "corehr.employment.converted_v1" - EventTypeV2CoreHRJobChangeUpdatedV1 EventType = "corehr.job_change.updated_v1" - EventTypeV2CoreHRJobDataChangedV1 EventType = "corehr.job_data.changed_v1" - EventTypeV2CoreHROffboardingUpdatedV1 EventType = "corehr.offboarding.updated_v1" - EventTypeV2CoreHREmploymentResignedV1 EventType = "corehr.employment.resigned_v1" - EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1 EventType = "corehr.org_role_authorization.updated_v1" - EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1 EventType = "hire.ehr_import_task_for_internship_offer.imported_v1" - EventTypeV2HireEHRImportTaskImportedV1 EventType = "hire.ehr_import_task.imported_v1" - EventTypeV2CoreHRProbationUpdatedV2 EventType = "corehr.probation.updated_v2" - EventTypeV2CoreHRPreHireUpdatedV1 EventType = "corehr.pre_hire.updated_v1" - EventTypeV2HireEcoAccountCreatedV1 EventType = "hire.eco_account.created_v1" - EventTypeV2HireEcoBackgroundCheckCreatedV1 EventType = "hire.eco_background_check.created_v1" - EventTypeV2HireEcoBackgroundCheckCanceledV1 EventType = "hire.eco_background_check.canceled_v1" - EventTypeV2HireEcoExamCreatedV1 EventType = "hire.eco_exam.created_v1" - EventTypeV2HireReferralAccountAssetsUpdateV1 EventType = "hire.referral_account.assets_update_v1" - EventTypeV2CoreHRContractDeletedV1 EventType = "corehr.contract.deleted_v1" - EventTypeV2CoreHRContractUpdatedV1 EventType = "corehr.contract.updated_v1" + EventTypeV2VCRoomUpdatedV1 EventType = "vc.room.updated_v1" ) type eventHandler struct { @@ -656,749 +656,745 @@ func (r *EventCallbackService) parserEventV2(req *eventReq) error { } switch req.Header.EventType { - case EventTypeV2ElearningCourseRegistrationCreatedV2: - event := new(EventV2ElearningCourseRegistrationCreatedV2) + + case EventTypeV2ACSAccessRecordCreatedV1: + event := new(EventV2ACSAccessRecordCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ElearningCourseRegistrationCreatedV2 = event - case EventTypeV2ElearningCourseRegistrationUpdatedV2: - event := new(EventV2ElearningCourseRegistrationUpdatedV2) + req.eventV2ACSAccessRecordCreatedV1 = event + case EventTypeV2ACSUserUpdatedV1: + event := new(EventV2ACSUserUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ElearningCourseRegistrationUpdatedV2 = event - case EventTypeV2ElearningCourseRegistrationDeletedV2: - event := new(EventV2ElearningCourseRegistrationDeletedV2) + req.eventV2ACSUserUpdatedV1 = event + case EventTypeV2ApplicationApplicationAppVersionAuditV6: + event := new(EventV2ApplicationApplicationAppVersionAuditV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ElearningCourseRegistrationDeletedV2 = event - case EventTypeV2URLPreviewGet: - event := new(EventV2URLPreviewGet) + req.eventV2ApplicationApplicationAppVersionAuditV6 = event + case EventTypeV2ApplicationApplicationAppVersionPublishApplyV6: + event := new(EventV2ApplicationApplicationAppVersionPublishApplyV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2URLPreviewGet = event - case EventTypeV2HireApplicationStageChangedV1: - event := new(EventV2HireApplicationStageChangedV1) + req.eventV2ApplicationApplicationAppVersionPublishApplyV6 = event + case EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6: + event := new(EventV2ApplicationApplicationAppVersionPublishRevokeV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireApplicationStageChangedV1 = event - case EventTypeV2HireApplicationDeletedV1: - event := new(EventV2HireApplicationDeletedV1) + req.eventV2ApplicationApplicationAppVersionPublishRevokeV6 = event + case EventTypeV2ApplicationApplicationCreatedV6: + event := new(EventV2ApplicationApplicationCreatedV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireApplicationDeletedV1 = event - case EventTypeV2CoreHRJobCreatedV1: - event := new(EventV2CoreHRJobCreatedV1) + req.eventV2ApplicationApplicationCreatedV6 = event + case EventTypeV2ApplicationApplicationFeedbackCreatedV6: + event := new(EventV2ApplicationApplicationFeedbackCreatedV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobCreatedV1 = event - case EventTypeV2CoreHRJobUpdatedV1: - event := new(EventV2CoreHRJobUpdatedV1) + req.eventV2ApplicationApplicationFeedbackCreatedV6 = event + case EventTypeV2ApplicationApplicationFeedbackUpdatedV6: + event := new(EventV2ApplicationApplicationFeedbackUpdatedV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobUpdatedV1 = event - case EventTypeV2CoreHRJobDeletedV1: - event := new(EventV2CoreHRJobDeletedV1) + req.eventV2ApplicationApplicationFeedbackUpdatedV6 = event + case EventTypeV2ApplicationApplicationVisibilityAddedV6: + event := new(EventV2ApplicationApplicationVisibilityAddedV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobDeletedV1 = event - case EventTypeV2CoreHRProcessUpdatedV2: - event := new(EventV2CoreHRProcessUpdatedV2) + req.eventV2ApplicationApplicationVisibilityAddedV6 = event + case EventTypeV2ApplicationBotMenuV6: + event := new(EventV2ApplicationBotMenuV6) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRProcessUpdatedV2 = event - case EventTypeV2CoreHRProcessNodeUpdatedV2: - event := new(EventV2CoreHRProcessNodeUpdatedV2) + req.eventV2ApplicationBotMenuV6 = event + case EventTypeV2ApprovalApprovalUpdatedV4: + event := new(EventV2ApprovalApprovalUpdatedV4) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRProcessNodeUpdatedV2 = event - case EventTypeV2CoreHRProcessApproverUpdatedV2: - event := new(EventV2CoreHRProcessApproverUpdatedV2) + req.eventV2ApprovalApprovalUpdatedV4 = event + case EventTypeV2AttendanceUserFlowCreatedV1: + event := new(EventV2AttendanceUserFlowCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRProcessApproverUpdatedV2 = event - case EventTypeV2CoreHRProcessCcUpdatedV2: - event := new(EventV2CoreHRProcessCcUpdatedV2) + req.eventV2AttendanceUserFlowCreatedV1 = event + case EventTypeV2AttendanceUserTaskUpdatedV1: + event := new(EventV2AttendanceUserTaskUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRProcessCcUpdatedV2 = event - case EventTypeV2ContactCustomAttrEventUpdatedV3: - event := new(EventV2ContactCustomAttrEventUpdatedV3) + req.eventV2AttendanceUserTaskUpdatedV1 = event + case EventTypeV2CalendarCalendarACLCreatedV4: + event := new(EventV2CalendarCalendarACLCreatedV4) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactCustomAttrEventUpdatedV3 = event - case EventTypeV2ApplicationApplicationCreatedV6: - event := new(EventV2ApplicationApplicationCreatedV6) + req.eventV2CalendarCalendarACLCreatedV4 = event + case EventTypeV2CalendarCalendarACLDeletedV4: + event := new(EventV2CalendarCalendarACLDeletedV4) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationCreatedV6 = event - - case EventTypeV2ApplicationApplicationVisibilityAddedV6: - event := new(EventV2ApplicationApplicationVisibilityAddedV6) + req.eventV2CalendarCalendarACLDeletedV4 = event + case EventTypeV2CalendarCalendarChangedV4: + event := new(EventV2CalendarCalendarChangedV4) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationVisibilityAddedV6 = event - case EventTypeV2ApplicationApplicationAppVersionPublishApplyV6: - event := new(EventV2ApplicationApplicationAppVersionPublishApplyV6) + req.eventV2CalendarCalendarChangedV4 = event + case EventTypeV2CalendarCalendarEventChangedV4: + event := new(EventV2CalendarCalendarEventChangedV4) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationAppVersionPublishApplyV6 = event - case EventTypeV2ApplicationApplicationAppVersionPublishRevokeV6: - event := new(EventV2ApplicationApplicationAppVersionPublishRevokeV6) + req.eventV2CalendarCalendarEventChangedV4 = event + case EventTypeV2ContactCustomAttrEventUpdatedV3: + event := new(EventV2ContactCustomAttrEventUpdatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationAppVersionPublishRevokeV6 = event - case EventTypeV2ApplicationApplicationAppVersionAuditV6: - event := new(EventV2ApplicationApplicationAppVersionAuditV6) + req.eventV2ContactCustomAttrEventUpdatedV3 = event + case EventTypeV2ContactDepartmentCreatedV3: + event := new(EventV2ContactDepartmentCreatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationAppVersionAuditV6 = event - - case EventTypeV2DriveFileCreatedInFolderV1: - event := new(EventV2DriveFileCreatedInFolderV1) + req.eventV2ContactDepartmentCreatedV3 = event + case EventTypeV2ContactDepartmentDeletedV3: + event := new(EventV2ContactDepartmentDeletedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileCreatedInFolderV1 = event - case EventTypeV2DriveFileBitableFieldChangedV1: - event := new(EventV2DriveFileBitableFieldChangedV1) + req.eventV2ContactDepartmentDeletedV3 = event + case EventTypeV2ContactDepartmentUpdatedV3: + event := new(EventV2ContactDepartmentUpdatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileBitableFieldChangedV1 = event - case EventTypeV2DriveFileBitableRecordChangedV1: - event := new(EventV2DriveFileBitableRecordChangedV1) + req.eventV2ContactDepartmentUpdatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumActivedV3: + event := new(EventV2ContactEmployeeTypeEnumActivedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileBitableRecordChangedV1 = event - case EventTypeV2DriveFileTitleUpdatedV1: - event := new(EventV2DriveFileTitleUpdatedV1) + req.eventV2ContactEmployeeTypeEnumActivedV3 = event + case EventTypeV2ContactEmployeeTypeEnumCreatedV3: + event := new(EventV2ContactEmployeeTypeEnumCreatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileTitleUpdatedV1 = event - case EventTypeV2DriveFileReadV1: - event := new(EventV2DriveFileReadV1) + req.eventV2ContactEmployeeTypeEnumCreatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumDeactivatedV3: + event := new(EventV2ContactEmployeeTypeEnumDeactivatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileReadV1 = event - case EventTypeV2DriveFileEditV1: - event := new(EventV2DriveFileEditV1) + req.eventV2ContactEmployeeTypeEnumDeactivatedV3 = event + case EventTypeV2ContactEmployeeTypeEnumDeletedV3: + event := new(EventV2ContactEmployeeTypeEnumDeletedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileEditV1 = event - case EventTypeV2DriveFilePermissionMemberAddedV1: - event := new(EventV2DriveFilePermissionMemberAddedV1) + req.eventV2ContactEmployeeTypeEnumDeletedV3 = event + case EventTypeV2ContactEmployeeTypeEnumUpdatedV3: + event := new(EventV2ContactEmployeeTypeEnumUpdatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFilePermissionMemberAddedV1 = event - case EventTypeV2DriveFilePermissionMemberRemovedV1: - event := new(EventV2DriveFilePermissionMemberRemovedV1) + req.eventV2ContactEmployeeTypeEnumUpdatedV3 = event + case EventTypeV2ContactScopeUpdatedV3: + event := new(EventV2ContactScopeUpdatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFilePermissionMemberRemovedV1 = event - case EventTypeV2DriveFileTrashedV1: - event := new(EventV2DriveFileTrashedV1) + req.eventV2ContactScopeUpdatedV3 = event + case EventTypeV2ContactUserCreatedV3: + event := new(EventV2ContactUserCreatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileTrashedV1 = event - case EventTypeV2DriveFileDeletedV1: - event := new(EventV2DriveFileDeletedV1) + req.eventV2ContactUserCreatedV3 = event + case EventTypeV2ContactUserDeletedV3: + event := new(EventV2ContactUserDeletedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2DriveFileDeletedV1 = event - case EventTypeV2ApprovalApprovalUpdatedV4: - event := new(EventV2ApprovalApprovalUpdatedV4) + req.eventV2ContactUserDeletedV3 = event + case EventTypeV2ContactUserUpdatedV3: + event := new(EventV2ContactUserUpdatedV3) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApprovalApprovalUpdatedV4 = event - - case EventTypeV2MeetingRoomMeetingRoomCreatedV1: - event := new(EventV2MeetingRoomMeetingRoomCreatedV1) + req.eventV2ContactUserUpdatedV3 = event + case EventTypeV2CoreHRContractCreatedV1: + event := new(EventV2CoreHRContractCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2MeetingRoomMeetingRoomCreatedV1 = event - case EventTypeV2MeetingRoomMeetingRoomUpdatedV1: - event := new(EventV2MeetingRoomMeetingRoomUpdatedV1) + req.eventV2CoreHRContractCreatedV1 = event + case EventTypeV2CoreHRContractDeletedV1: + event := new(EventV2CoreHRContractDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2MeetingRoomMeetingRoomUpdatedV1 = event - case EventTypeV2MeetingRoomMeetingRoomStatusChangedV1: - event := new(EventV2MeetingRoomMeetingRoomStatusChangedV1) + req.eventV2CoreHRContractDeletedV1 = event + case EventTypeV2CoreHRContractUpdatedV1: + event := new(EventV2CoreHRContractUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2MeetingRoomMeetingRoomStatusChangedV1 = event - case EventTypeV2MeetingRoomMeetingRoomDeletedV1: - event := new(EventV2MeetingRoomMeetingRoomDeletedV1) + req.eventV2CoreHRContractUpdatedV1 = event + case EventTypeV2CoreHRDepartmentCreatedV1: + event := new(EventV2CoreHRDepartmentCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2MeetingRoomMeetingRoomDeletedV1 = event - - case EventTypeV2ApplicationApplicationFeedbackCreatedV6: - event := new(EventV2ApplicationApplicationFeedbackCreatedV6) + req.eventV2CoreHRDepartmentCreatedV1 = event + case EventTypeV2CoreHRDepartmentDeletedV1: + event := new(EventV2CoreHRDepartmentDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationFeedbackCreatedV6 = event - case EventTypeV2ApplicationApplicationFeedbackUpdatedV6: - event := new(EventV2ApplicationApplicationFeedbackUpdatedV6) + req.eventV2CoreHRDepartmentDeletedV1 = event + case EventTypeV2CoreHRDepartmentUpdatedV1: + event := new(EventV2CoreHRDepartmentUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationApplicationFeedbackUpdatedV6 = event - case EventTypeV2TaskTaskUpdateTenantV1: - event := new(EventV2TaskTaskUpdateTenantV1) + req.eventV2CoreHRDepartmentUpdatedV1 = event + case EventTypeV2CoreHREmploymentConvertedV1: + event := new(EventV2CoreHREmploymentConvertedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2TaskTaskUpdateTenantV1 = event - case EventTypeV2TaskTaskUpdatedV1: - event := new(EventV2TaskTaskUpdatedV1) + req.eventV2CoreHREmploymentConvertedV1 = event + case EventTypeV2CoreHREmploymentCreatedV1: + event := new(EventV2CoreHREmploymentCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2TaskTaskUpdatedV1 = event - case EventTypeV2TaskTaskCommentUpdatedV1: - event := new(EventV2TaskTaskCommentUpdatedV1) + req.eventV2CoreHREmploymentCreatedV1 = event + case EventTypeV2CoreHREmploymentDeletedV1: + event := new(EventV2CoreHREmploymentDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2TaskTaskCommentUpdatedV1 = event - case EventTypeV2HelpdeskTicketMessageCreatedV1: - event := new(EventV2HelpdeskTicketMessageCreatedV1) + req.eventV2CoreHREmploymentDeletedV1 = event + case EventTypeV2CoreHREmploymentResignedV1: + event := new(EventV2CoreHREmploymentResignedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HelpdeskTicketMessageCreatedV1 = event - case EventTypeV2HelpdeskTicketCreatedV1: - event := new(EventV2HelpdeskTicketCreatedV1) + req.eventV2CoreHREmploymentResignedV1 = event + case EventTypeV2CoreHREmploymentUpdatedV1: + event := new(EventV2CoreHREmploymentUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HelpdeskTicketCreatedV1 = event - case EventTypeV2HelpdeskTicketUpdatedV1: - event := new(EventV2HelpdeskTicketUpdatedV1) + req.eventV2CoreHREmploymentUpdatedV1 = event + case EventTypeV2CoreHRJobChangeUpdatedV1: + event := new(EventV2CoreHRJobChangeUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HelpdeskTicketUpdatedV1 = event - case EventTypeV2HelpdeskNotificationApproveV1: - event := new(EventV2HelpdeskNotificationApproveV1) + req.eventV2CoreHRJobChangeUpdatedV1 = event + case EventTypeV2CoreHRJobCreatedV1: + event := new(EventV2CoreHRJobCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HelpdeskNotificationApproveV1 = event - case EventTypeV2ContactDepartmentCreatedV3: - event := new(EventV2ContactDepartmentCreatedV3) + req.eventV2CoreHRJobCreatedV1 = event + case EventTypeV2CoreHRJobDataChangedV1: + event := new(EventV2CoreHRJobDataChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactDepartmentCreatedV3 = event - case EventTypeV2ContactDepartmentDeletedV3: - event := new(EventV2ContactDepartmentDeletedV3) + req.eventV2CoreHRJobDataChangedV1 = event + case EventTypeV2CoreHRJobDataEmployedV1: + event := new(EventV2CoreHRJobDataEmployedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactDepartmentDeletedV3 = event - case EventTypeV2ContactDepartmentUpdatedV3: - event := new(EventV2ContactDepartmentUpdatedV3) + req.eventV2CoreHRJobDataEmployedV1 = event + case EventTypeV2CoreHRJobDeletedV1: + event := new(EventV2CoreHRJobDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactDepartmentUpdatedV3 = event - case EventTypeV2ContactUserUpdatedV3: - event := new(EventV2ContactUserUpdatedV3) + req.eventV2CoreHRJobDeletedV1 = event + case EventTypeV2CoreHRJobUpdatedV1: + event := new(EventV2CoreHRJobUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactUserUpdatedV3 = event - case EventTypeV2ContactUserCreatedV3: - event := new(EventV2ContactUserCreatedV3) + req.eventV2CoreHRJobUpdatedV1 = event + case EventTypeV2CoreHROffboardingUpdatedV1: + event := new(EventV2CoreHROffboardingUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactUserCreatedV3 = event - case EventTypeV2ContactUserDeletedV3: - event := new(EventV2ContactUserDeletedV3) + req.eventV2CoreHROffboardingUpdatedV1 = event + case EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1: + event := new(EventV2CoreHROrgRoleAuthorizationUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactUserDeletedV3 = event - case EventTypeV2ContactScopeUpdatedV3: - event := new(EventV2ContactScopeUpdatedV3) + req.eventV2CoreHROrgRoleAuthorizationUpdatedV1 = event + case EventTypeV2CoreHRPersonCreatedV1: + event := new(EventV2CoreHRPersonCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactScopeUpdatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumCreatedV3: - event := new(EventV2ContactEmployeeTypeEnumCreatedV3) + req.eventV2CoreHRPersonCreatedV1 = event + case EventTypeV2CoreHRPersonDeletedV1: + event := new(EventV2CoreHRPersonDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactEmployeeTypeEnumCreatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumActivedV3: - event := new(EventV2ContactEmployeeTypeEnumActivedV3) + req.eventV2CoreHRPersonDeletedV1 = event + case EventTypeV2CoreHRPersonUpdatedV1: + event := new(EventV2CoreHRPersonUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactEmployeeTypeEnumActivedV3 = event - case EventTypeV2ContactEmployeeTypeEnumDeactivatedV3: - event := new(EventV2ContactEmployeeTypeEnumDeactivatedV3) + req.eventV2CoreHRPersonUpdatedV1 = event + case EventTypeV2CoreHRPreHireUpdatedV1: + event := new(EventV2CoreHRPreHireUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactEmployeeTypeEnumDeactivatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumUpdatedV3: - event := new(EventV2ContactEmployeeTypeEnumUpdatedV3) + req.eventV2CoreHRPreHireUpdatedV1 = event + case EventTypeV2CoreHRProbationUpdatedV2: + event := new(EventV2CoreHRProbationUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactEmployeeTypeEnumUpdatedV3 = event - case EventTypeV2ContactEmployeeTypeEnumDeletedV3: - event := new(EventV2ContactEmployeeTypeEnumDeletedV3) + req.eventV2CoreHRProbationUpdatedV2 = event + case EventTypeV2CoreHRProcessApproverUpdatedV2: + event := new(EventV2CoreHRProcessApproverUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ContactEmployeeTypeEnumDeletedV3 = event - case EventTypeV2IMMessageReceiveV1: - event := new(EventV2IMMessageReceiveV1) + req.eventV2CoreHRProcessApproverUpdatedV2 = event + case EventTypeV2CoreHRProcessCcUpdatedV2: + event := new(EventV2CoreHRProcessCcUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMMessageReceiveV1 = event - case EventTypeV2IMMessageReadV1: - event := new(EventV2IMMessageReadV1) + req.eventV2CoreHRProcessCcUpdatedV2 = event + case EventTypeV2CoreHRProcessNodeUpdatedV2: + event := new(EventV2CoreHRProcessNodeUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMMessageReadV1 = event - case EventTypeV2IMMessageReactionDeletedV1: - event := new(EventV2IMMessageReactionDeletedV1) + req.eventV2CoreHRProcessNodeUpdatedV2 = event + case EventTypeV2CoreHRProcessUpdatedV2: + event := new(EventV2CoreHRProcessUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMMessageReactionDeletedV1 = event - case EventTypeV2IMMessageReactionCreatedV1: - event := new(EventV2IMMessageReactionCreatedV1) + req.eventV2CoreHRProcessUpdatedV2 = event + case EventTypeV2DriveFileBitableFieldChangedV1: + event := new(EventV2DriveFileBitableFieldChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMMessageReactionCreatedV1 = event - case EventTypeV2IMChatDisbandedV1: - event := new(EventV2IMChatDisbandedV1) + req.eventV2DriveFileBitableFieldChangedV1 = event + case EventTypeV2DriveFileBitableRecordChangedV1: + event := new(EventV2DriveFileBitableRecordChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatDisbandedV1 = event - case EventTypeV2IMChatUpdatedV1: - event := new(EventV2IMChatUpdatedV1) + req.eventV2DriveFileBitableRecordChangedV1 = event + case EventTypeV2DriveFileCreatedInFolderV1: + event := new(EventV2DriveFileCreatedInFolderV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatUpdatedV1 = event - case EventTypeV2IMChatMemberBotAddedV1: - event := new(EventV2IMChatMemberBotAddedV1) + req.eventV2DriveFileCreatedInFolderV1 = event + case EventTypeV2DriveFileDeletedV1: + event := new(EventV2DriveFileDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatMemberBotAddedV1 = event - case EventTypeV2IMChatMemberBotDeletedV1: - event := new(EventV2IMChatMemberBotDeletedV1) + req.eventV2DriveFileDeletedV1 = event + case EventTypeV2DriveFileEditV1: + event := new(EventV2DriveFileEditV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatMemberBotDeletedV1 = event - case EventTypeV2IMChatMemberUserAddedV1: - event := new(EventV2IMChatMemberUserAddedV1) + req.eventV2DriveFileEditV1 = event + case EventTypeV2DriveFilePermissionMemberAddedV1: + event := new(EventV2DriveFilePermissionMemberAddedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatMemberUserAddedV1 = event - case EventTypeV2IMChatMemberUserWithdrawnV1: - event := new(EventV2IMChatMemberUserWithdrawnV1) + req.eventV2DriveFilePermissionMemberAddedV1 = event + case EventTypeV2DriveFilePermissionMemberRemovedV1: + event := new(EventV2DriveFilePermissionMemberRemovedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatMemberUserWithdrawnV1 = event - case EventTypeV2IMChatMemberUserDeletedV1: - event := new(EventV2IMChatMemberUserDeletedV1) + req.eventV2DriveFilePermissionMemberRemovedV1 = event + case EventTypeV2DriveFileReadV1: + event := new(EventV2DriveFileReadV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMChatMemberUserDeletedV1 = event - case EventTypeV2VCMeetingMeetingStartedV1: - event := new(EventV2VCMeetingMeetingStartedV1) + req.eventV2DriveFileReadV1 = event + case EventTypeV2DriveFileTitleUpdatedV1: + event := new(EventV2DriveFileTitleUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingMeetingStartedV1 = event - case EventTypeV2VCMeetingMeetingEndedV1: - event := new(EventV2VCMeetingMeetingEndedV1) + req.eventV2DriveFileTitleUpdatedV1 = event + case EventTypeV2DriveFileTrashedV1: + event := new(EventV2DriveFileTrashedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingMeetingEndedV1 = event - case EventTypeV2VCMeetingJoinMeetingV1: - event := new(EventV2VCMeetingJoinMeetingV1) + req.eventV2DriveFileTrashedV1 = event + case EventTypeV2ElearningCourseRegistrationCreatedV2: + event := new(EventV2ElearningCourseRegistrationCreatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingJoinMeetingV1 = event - case EventTypeV2VCMeetingLeaveMeetingV1: - event := new(EventV2VCMeetingLeaveMeetingV1) + req.eventV2ElearningCourseRegistrationCreatedV2 = event + case EventTypeV2ElearningCourseRegistrationDeletedV2: + event := new(EventV2ElearningCourseRegistrationDeletedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingLeaveMeetingV1 = event - case EventTypeV2VCMeetingRecordingStartedV1: - event := new(EventV2VCMeetingRecordingStartedV1) + req.eventV2ElearningCourseRegistrationDeletedV2 = event + case EventTypeV2ElearningCourseRegistrationUpdatedV2: + event := new(EventV2ElearningCourseRegistrationUpdatedV2) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingRecordingStartedV1 = event - case EventTypeV2VCMeetingRecordingEndedV1: - event := new(EventV2VCMeetingRecordingEndedV1) + req.eventV2ElearningCourseRegistrationUpdatedV2 = event + case EventTypeV2HelpdeskNotificationApproveV1: + event := new(EventV2HelpdeskNotificationApproveV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingRecordingEndedV1 = event - case EventTypeV2VCMeetingRecordingReadyV1: - event := new(EventV2VCMeetingRecordingReadyV1) + req.eventV2HelpdeskNotificationApproveV1 = event + case EventTypeV2HelpdeskTicketCreatedV1: + event := new(EventV2HelpdeskTicketCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingRecordingReadyV1 = event - case EventTypeV2VCMeetingShareStartedV1: - event := new(EventV2VCMeetingShareStartedV1) + req.eventV2HelpdeskTicketCreatedV1 = event + case EventTypeV2HelpdeskTicketMessageCreatedV1: + event := new(EventV2HelpdeskTicketMessageCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingShareStartedV1 = event - case EventTypeV2VCMeetingShareEndedV1: - event := new(EventV2VCMeetingShareEndedV1) + req.eventV2HelpdeskTicketMessageCreatedV1 = event + case EventTypeV2HelpdeskTicketUpdatedV1: + event := new(EventV2HelpdeskTicketUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingShareEndedV1 = event - case EventTypeV2ACSAccessRecordCreatedV1: - event := new(EventV2ACSAccessRecordCreatedV1) + req.eventV2HelpdeskTicketUpdatedV1 = event + case EventTypeV2HireApplicationDeletedV1: + event := new(EventV2HireApplicationDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ACSAccessRecordCreatedV1 = event - case EventTypeV2ACSUserUpdatedV1: - event := new(EventV2ACSUserUpdatedV1) + req.eventV2HireApplicationDeletedV1 = event + case EventTypeV2HireApplicationStageChangedV1: + event := new(EventV2HireApplicationStageChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ACSUserUpdatedV1 = event - case EventTypeV2CalendarCalendarACLCreatedV4: - event := new(EventV2CalendarCalendarACLCreatedV4) + req.eventV2HireApplicationStageChangedV1 = event + case EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1: + event := new(EventV2HireEHRImportTaskForInternshipOfferImportedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CalendarCalendarACLCreatedV4 = event - case EventTypeV2CalendarCalendarACLDeletedV4: - event := new(EventV2CalendarCalendarACLDeletedV4) + req.eventV2HireEHRImportTaskForInternshipOfferImportedV1 = event + case EventTypeV2HireEHRImportTaskImportedV1: + event := new(EventV2HireEHRImportTaskImportedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CalendarCalendarACLDeletedV4 = event - case EventTypeV2CalendarCalendarEventChangedV4: - event := new(EventV2CalendarCalendarEventChangedV4) + req.eventV2HireEHRImportTaskImportedV1 = event + case EventTypeV2HireEcoAccountCreatedV1: + event := new(EventV2HireEcoAccountCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CalendarCalendarEventChangedV4 = event - case EventTypeV2CalendarCalendarChangedV4: - event := new(EventV2CalendarCalendarChangedV4) + req.eventV2HireEcoAccountCreatedV1 = event + case EventTypeV2HireEcoBackgroundCheckCanceledV1: + event := new(EventV2HireEcoBackgroundCheckCanceledV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CalendarCalendarChangedV4 = event - - case EventTypeV2AttendanceUserTaskUpdatedV1: - event := new(EventV2AttendanceUserTaskUpdatedV1) + req.eventV2HireEcoBackgroundCheckCanceledV1 = event + case EventTypeV2HireEcoBackgroundCheckCreatedV1: + event := new(EventV2HireEcoBackgroundCheckCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2AttendanceUserTaskUpdatedV1 = event - case EventTypeV2AttendanceUserFlowCreatedV1: - event := new(EventV2AttendanceUserFlowCreatedV1) + req.eventV2HireEcoBackgroundCheckCreatedV1 = event + case EventTypeV2HireEcoExamCreatedV1: + event := new(EventV2HireEcoExamCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2AttendanceUserFlowCreatedV1 = event - case EventTypeV2IMMessageRecalledV1: - event := new(EventV2IMMessageRecalledV1) + req.eventV2HireEcoExamCreatedV1 = event + case EventTypeV2HireOfferStatusChangedV1: + event := new(EventV2HireOfferStatusChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2IMMessageRecalledV1 = event - case EventTypeV2VCRoomCreatedV1: - event := new(EventV2VCRoomCreatedV1) + req.eventV2HireOfferStatusChangedV1 = event + case EventTypeV2HireReferralAccountAssetsUpdateV1: + event := new(EventV2HireReferralAccountAssetsUpdateV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomCreatedV1 = event - case EventTypeV2VCRoomDeletedV1: - event := new(EventV2VCRoomDeletedV1) + req.eventV2HireReferralAccountAssetsUpdateV1 = event + case EventTypeV2IMChatDisbandedV1: + event := new(EventV2IMChatDisbandedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomDeletedV1 = event - case EventTypeV2VCRoomUpdatedV1: - event := new(EventV2VCRoomUpdatedV1) + req.eventV2IMChatDisbandedV1 = event + case EventTypeV2IMChatMemberBotAddedV1: + event := new(EventV2IMChatMemberBotAddedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomUpdatedV1 = event - case EventTypeV2VCMeetingAllMeetingStartedV1: - event := new(EventV2VCMeetingAllMeetingStartedV1) + req.eventV2IMChatMemberBotAddedV1 = event + case EventTypeV2IMChatMemberBotDeletedV1: + event := new(EventV2IMChatMemberBotDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingAllMeetingStartedV1 = event - case EventTypeV2VCMeetingAllMeetingEndedV1: - event := new(EventV2VCMeetingAllMeetingEndedV1) + req.eventV2IMChatMemberBotDeletedV1 = event + case EventTypeV2IMChatMemberUserAddedV1: + event := new(EventV2IMChatMemberUserAddedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCMeetingAllMeetingEndedV1 = event - case EventTypeV2VCRoomLevelCreatedV1: - event := new(EventV2VCRoomLevelCreatedV1) + req.eventV2IMChatMemberUserAddedV1 = event + case EventTypeV2IMChatMemberUserDeletedV1: + event := new(EventV2IMChatMemberUserDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomLevelCreatedV1 = event - case EventTypeV2VCRoomLevelDeletedV1: - event := new(EventV2VCRoomLevelDeletedV1) + req.eventV2IMChatMemberUserDeletedV1 = event + case EventTypeV2IMChatMemberUserWithdrawnV1: + event := new(EventV2IMChatMemberUserWithdrawnV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomLevelDeletedV1 = event - case EventTypeV2VCRoomLevelUpdatedV1: - event := new(EventV2VCRoomLevelUpdatedV1) + req.eventV2IMChatMemberUserWithdrawnV1 = event + case EventTypeV2IMChatUpdatedV1: + event := new(EventV2IMChatUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCRoomLevelUpdatedV1 = event - case EventTypeV2VCReserveConfigUpdatedV1: - event := new(EventV2VCReserveConfigUpdatedV1) + req.eventV2IMChatUpdatedV1 = event + case EventTypeV2IMMessageReactionCreatedV1: + event := new(EventV2IMMessageReactionCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2VCReserveConfigUpdatedV1 = event - case EventTypeV2ApplicationBotMenuV6: - event := new(EventV2ApplicationBotMenuV6) + req.eventV2IMMessageReactionCreatedV1 = event + case EventTypeV2IMMessageReactionDeletedV1: + event := new(EventV2IMMessageReactionDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2ApplicationBotMenuV6 = event - case EventTypeV2HireOfferStatusChangedV1: - event := new(EventV2HireOfferStatusChangedV1) + req.eventV2IMMessageReactionDeletedV1 = event + case EventTypeV2IMMessageReadV1: + event := new(EventV2IMMessageReadV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireOfferStatusChangedV1 = event - case EventTypeV2CoreHREmploymentCreatedV1: - event := new(EventV2CoreHREmploymentCreatedV1) + req.eventV2IMMessageReadV1 = event + case EventTypeV2IMMessageRecalledV1: + event := new(EventV2IMMessageRecalledV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHREmploymentCreatedV1 = event - case EventTypeV2CoreHREmploymentUpdatedV1: - event := new(EventV2CoreHREmploymentUpdatedV1) + req.eventV2IMMessageRecalledV1 = event + case EventTypeV2IMMessageReceiveV1: + event := new(EventV2IMMessageReceiveV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHREmploymentUpdatedV1 = event - case EventTypeV2CoreHREmploymentDeletedV1: - event := new(EventV2CoreHREmploymentDeletedV1) + req.eventV2IMMessageReceiveV1 = event + case EventTypeV2MeetingRoomMeetingRoomCreatedV1: + event := new(EventV2MeetingRoomMeetingRoomCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHREmploymentDeletedV1 = event - case EventTypeV2CoreHRPersonCreatedV1: - event := new(EventV2CoreHRPersonCreatedV1) + req.eventV2MeetingRoomMeetingRoomCreatedV1 = event + case EventTypeV2MeetingRoomMeetingRoomDeletedV1: + event := new(EventV2MeetingRoomMeetingRoomDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRPersonCreatedV1 = event - case EventTypeV2CoreHRPersonUpdatedV1: - event := new(EventV2CoreHRPersonUpdatedV1) + req.eventV2MeetingRoomMeetingRoomDeletedV1 = event + case EventTypeV2MeetingRoomMeetingRoomStatusChangedV1: + event := new(EventV2MeetingRoomMeetingRoomStatusChangedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRPersonUpdatedV1 = event - case EventTypeV2CoreHRPersonDeletedV1: - event := new(EventV2CoreHRPersonDeletedV1) + req.eventV2MeetingRoomMeetingRoomStatusChangedV1 = event + case EventTypeV2MeetingRoomMeetingRoomUpdatedV1: + event := new(EventV2MeetingRoomMeetingRoomUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRPersonDeletedV1 = event - case EventTypeV2CoreHRDepartmentCreatedV1: - event := new(EventV2CoreHRDepartmentCreatedV1) + req.eventV2MeetingRoomMeetingRoomUpdatedV1 = event + case EventTypeV2TaskTaskCommentUpdatedV1: + event := new(EventV2TaskTaskCommentUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRDepartmentCreatedV1 = event - case EventTypeV2CoreHRDepartmentUpdatedV1: - event := new(EventV2CoreHRDepartmentUpdatedV1) + req.eventV2TaskTaskCommentUpdatedV1 = event + case EventTypeV2TaskTaskUpdateTenantV1: + event := new(EventV2TaskTaskUpdateTenantV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRDepartmentUpdatedV1 = event - case EventTypeV2CoreHRDepartmentDeletedV1: - event := new(EventV2CoreHRDepartmentDeletedV1) + req.eventV2TaskTaskUpdateTenantV1 = event + case EventTypeV2TaskTaskUpdatedV1: + event := new(EventV2TaskTaskUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRDepartmentDeletedV1 = event - case EventTypeV2CoreHRJobDataEmployedV1: - event := new(EventV2CoreHRJobDataEmployedV1) + req.eventV2TaskTaskUpdatedV1 = event + case EventTypeV2URLPreviewGet: + event := new(EventV2URLPreviewGet) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobDataEmployedV1 = event - case EventTypeV2CoreHRContractCreatedV1: - event := new(EventV2CoreHRContractCreatedV1) + req.eventV2URLPreviewGet = event + case EventTypeV2VCMeetingAllMeetingEndedV1: + event := new(EventV2VCMeetingAllMeetingEndedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRContractCreatedV1 = event - case EventTypeV2CoreHREmploymentConvertedV1: - event := new(EventV2CoreHREmploymentConvertedV1) + req.eventV2VCMeetingAllMeetingEndedV1 = event + case EventTypeV2VCMeetingAllMeetingStartedV1: + event := new(EventV2VCMeetingAllMeetingStartedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHREmploymentConvertedV1 = event - case EventTypeV2CoreHRJobChangeUpdatedV1: - event := new(EventV2CoreHRJobChangeUpdatedV1) + req.eventV2VCMeetingAllMeetingStartedV1 = event + case EventTypeV2VCMeetingJoinMeetingV1: + event := new(EventV2VCMeetingJoinMeetingV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobChangeUpdatedV1 = event - case EventTypeV2CoreHRJobDataChangedV1: - event := new(EventV2CoreHRJobDataChangedV1) + req.eventV2VCMeetingJoinMeetingV1 = event + case EventTypeV2VCMeetingLeaveMeetingV1: + event := new(EventV2VCMeetingLeaveMeetingV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRJobDataChangedV1 = event - case EventTypeV2CoreHROffboardingUpdatedV1: - event := new(EventV2CoreHROffboardingUpdatedV1) + req.eventV2VCMeetingLeaveMeetingV1 = event + case EventTypeV2VCMeetingMeetingEndedV1: + event := new(EventV2VCMeetingMeetingEndedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHROffboardingUpdatedV1 = event - case EventTypeV2CoreHREmploymentResignedV1: - event := new(EventV2CoreHREmploymentResignedV1) + req.eventV2VCMeetingMeetingEndedV1 = event + case EventTypeV2VCMeetingMeetingStartedV1: + event := new(EventV2VCMeetingMeetingStartedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHREmploymentResignedV1 = event - case EventTypeV2CoreHROrgRoleAuthorizationUpdatedV1: - event := new(EventV2CoreHROrgRoleAuthorizationUpdatedV1) + req.eventV2VCMeetingMeetingStartedV1 = event + case EventTypeV2VCMeetingRecordingEndedV1: + event := new(EventV2VCMeetingRecordingEndedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHROrgRoleAuthorizationUpdatedV1 = event - case EventTypeV2HireEHRImportTaskForInternshipOfferImportedV1: - event := new(EventV2HireEHRImportTaskForInternshipOfferImportedV1) + req.eventV2VCMeetingRecordingEndedV1 = event + case EventTypeV2VCMeetingRecordingReadyV1: + event := new(EventV2VCMeetingRecordingReadyV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEHRImportTaskForInternshipOfferImportedV1 = event - case EventTypeV2HireEHRImportTaskImportedV1: - event := new(EventV2HireEHRImportTaskImportedV1) + req.eventV2VCMeetingRecordingReadyV1 = event + case EventTypeV2VCMeetingRecordingStartedV1: + event := new(EventV2VCMeetingRecordingStartedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEHRImportTaskImportedV1 = event - case EventTypeV2CoreHRProbationUpdatedV2: - event := new(EventV2CoreHRProbationUpdatedV2) + req.eventV2VCMeetingRecordingStartedV1 = event + case EventTypeV2VCMeetingShareEndedV1: + event := new(EventV2VCMeetingShareEndedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRProbationUpdatedV2 = event - case EventTypeV2CoreHRPreHireUpdatedV1: - event := new(EventV2CoreHRPreHireUpdatedV1) + req.eventV2VCMeetingShareEndedV1 = event + case EventTypeV2VCMeetingShareStartedV1: + event := new(EventV2VCMeetingShareStartedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRPreHireUpdatedV1 = event - case EventTypeV2HireEcoAccountCreatedV1: - event := new(EventV2HireEcoAccountCreatedV1) + req.eventV2VCMeetingShareStartedV1 = event + case EventTypeV2VCReserveConfigUpdatedV1: + event := new(EventV2VCReserveConfigUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEcoAccountCreatedV1 = event - case EventTypeV2HireEcoBackgroundCheckCreatedV1: - event := new(EventV2HireEcoBackgroundCheckCreatedV1) + req.eventV2VCReserveConfigUpdatedV1 = event + case EventTypeV2VCRoomCreatedV1: + event := new(EventV2VCRoomCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEcoBackgroundCheckCreatedV1 = event - case EventTypeV2HireEcoBackgroundCheckCanceledV1: - event := new(EventV2HireEcoBackgroundCheckCanceledV1) + req.eventV2VCRoomCreatedV1 = event + case EventTypeV2VCRoomDeletedV1: + event := new(EventV2VCRoomDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEcoBackgroundCheckCanceledV1 = event - case EventTypeV2HireEcoExamCreatedV1: - event := new(EventV2HireEcoExamCreatedV1) + req.eventV2VCRoomDeletedV1 = event + case EventTypeV2VCRoomLevelCreatedV1: + event := new(EventV2VCRoomLevelCreatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireEcoExamCreatedV1 = event - case EventTypeV2HireReferralAccountAssetsUpdateV1: - event := new(EventV2HireReferralAccountAssetsUpdateV1) + req.eventV2VCRoomLevelCreatedV1 = event + case EventTypeV2VCRoomLevelDeletedV1: + event := new(EventV2VCRoomLevelDeletedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2HireReferralAccountAssetsUpdateV1 = event - case EventTypeV2CoreHRContractDeletedV1: - event := new(EventV2CoreHRContractDeletedV1) + req.eventV2VCRoomLevelDeletedV1 = event + case EventTypeV2VCRoomLevelUpdatedV1: + event := new(EventV2VCRoomLevelUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRContractDeletedV1 = event - case EventTypeV2CoreHRContractUpdatedV1: - event := new(EventV2CoreHRContractUpdatedV1) + req.eventV2VCRoomLevelUpdatedV1 = event + case EventTypeV2VCRoomUpdatedV1: + event := new(EventV2VCRoomUpdatedV1) if err := req.unmarshalEvent(event); err != nil { return err } - req.eventV2CoreHRContractUpdatedV1 = event + req.eventV2VCRoomUpdatedV1 = event } @@ -1422,7 +1418,18 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { } switch v1type.Type { - + case EventTypeV1AddBot: + event := new(EventV1AddBot) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AddBot = event + case EventTypeV1AddUserToChat: + event := new(EventV1AddUserToChat) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1AddUserToChat = event case EventTypeV1AppOpen: event := new(EventV1AppOpen) if err := json.Unmarshal(bs, event); err != nil { @@ -1435,12 +1442,6 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { return fmt.Errorf("lark event unmarshal event %s failed", bs) } req.eventV1AppStatusChange = event - case EventTypeV1OrderPaid: - event := new(EventV1OrderPaid) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1OrderPaid = event case EventTypeV1AppTicket: event := new(EventV1AppTicket) if err := json.Unmarshal(bs, event); err != nil { @@ -1453,70 +1454,48 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { return fmt.Errorf("lark event unmarshal event %s failed", bs) } req.eventV1AppUninstalled = event - - case EventTypeV1OutApproval: - event := new(EventV1OutApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1OutApproval = event - case EventTypeV1RemedyApproval: - event := new(EventV1RemedyApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1RemedyApproval = event - case EventTypeV1ShiftApproval: - event := new(EventV1ShiftApproval) - if err := json.Unmarshal(bs, event); err != nil { - return fmt.Errorf("lark event unmarshal event %s failed", bs) - } - req.eventV1ShiftApproval = event - case EventTypeV1WorkApproval: - event := new(EventV1WorkApproval) + case EventTypeV1ApprovalCc: + event := new(EventV1ApprovalCc) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1WorkApproval = event - case EventTypeV1LeaveApprovalV2: - event := new(EventV1LeaveApprovalV2) + req.eventV1ApprovalCc = event + case EventTypeV1ApprovalInstance: + event := new(EventV1ApprovalInstance) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1LeaveApprovalV2 = event - - case EventTypeV1ThirdPartyMeetingRoomEventUpdated: - event := new(EventV1ThirdPartyMeetingRoomEventUpdated) + req.eventV1ApprovalInstance = event + case EventTypeV1ApprovalTask: + event := new(EventV1ApprovalTask) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ThirdPartyMeetingRoomEventUpdated = event - case EventTypeV1ThirdPartyMeetingRoomEventDeleted: - event := new(EventV1ThirdPartyMeetingRoomEventDeleted) + req.eventV1ApprovalTask = event + case EventTypeV1ChatDisband: + event := new(EventV1ChatDisband) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ThirdPartyMeetingRoomEventDeleted = event - - case EventTypeV1ThirdPartyMeetingRoomEventCreated: - event := new(EventV1ThirdPartyMeetingRoomEventCreated) + req.eventV1ChatDisband = event + case EventTypeV1LeaveApprovalRevert: + event := new(EventV1LeaveApprovalRevert) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ThirdPartyMeetingRoomEventCreated = event - - case EventTypeV1AddBot: - event := new(EventV1AddBot) + req.eventV1LeaveApprovalRevert = event + case EventTypeV1OrderPaid: + event := new(EventV1OrderPaid) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1AddBot = event - case EventTypeV1RemoveBot: - event := new(EventV1RemoveBot) + req.eventV1OrderPaid = event + case EventTypeV1OutApproval: + event := new(EventV1OutApproval) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1RemoveBot = event + req.eventV1OutApproval = event case EventTypeV1P2PChatCreate: event := new(EventV1P2PChatCreate) if err := json.Unmarshal(bs, event); err != nil { @@ -1529,12 +1508,18 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { return fmt.Errorf("lark event unmarshal event %s failed", bs) } req.eventV1ReceiveMessage = event - case EventTypeV1AddUserToChat: - event := new(EventV1AddUserToChat) + case EventTypeV1RemedyApproval: + event := new(EventV1RemedyApproval) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1AddUserToChat = event + req.eventV1RemedyApproval = event + case EventTypeV1RemoveBot: + event := new(EventV1RemoveBot) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1RemoveBot = event case EventTypeV1RemoveUserFromChat: event := new(EventV1RemoveUserFromChat) if err := json.Unmarshal(bs, event); err != nil { @@ -1547,30 +1532,42 @@ func (r *EventCallbackService) parserEventV1(req *eventReq) error { return fmt.Errorf("lark event unmarshal event %s failed", bs) } req.eventV1RevokeAddUserFromChat = event - case EventTypeV1ChatDisband: - event := new(EventV1ChatDisband) + case EventTypeV1ShiftApproval: + event := new(EventV1ShiftApproval) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ChatDisband = event - case EventTypeV1ApprovalInstance: - event := new(EventV1ApprovalInstance) + req.eventV1ShiftApproval = event + case EventTypeV1ThirdPartyMeetingRoomEventCreated: + event := new(EventV1ThirdPartyMeetingRoomEventCreated) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ApprovalInstance = event - case EventTypeV1ApprovalTask: - event := new(EventV1ApprovalTask) + req.eventV1ThirdPartyMeetingRoomEventCreated = event + case EventTypeV1ThirdPartyMeetingRoomEventDeleted: + event := new(EventV1ThirdPartyMeetingRoomEventDeleted) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ApprovalTask = event - case EventTypeV1ApprovalCc: - event := new(EventV1ApprovalCc) + req.eventV1ThirdPartyMeetingRoomEventDeleted = event + case EventTypeV1ThirdPartyMeetingRoomEventUpdated: + event := new(EventV1ThirdPartyMeetingRoomEventUpdated) if err := json.Unmarshal(bs, event); err != nil { return fmt.Errorf("lark event unmarshal event %s failed", bs) } - req.eventV1ApprovalCc = event + req.eventV1ThirdPartyMeetingRoomEventUpdated = event + case EventTypeV1TripApproval: + event := new(EventV1TripApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1TripApproval = event + case EventTypeV1WorkApproval: + event := new(EventV1WorkApproval) + if err := json.Unmarshal(bs, event); err != nil { + return fmt.Errorf("lark event unmarshal event %s failed", bs) + } + req.eventV1WorkApproval = event } diff --git a/api_hire_application_cancel_onboard.go b/api_hire_application_cancel_onboard.go index ff2f40ce..54b6ecc8 100644 --- a/api_hire_application_cancel_onboard.go +++ b/api_hire_application_cancel_onboard.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateHireApplicationCancelOnboard 取消待入职状态的候选人入职。 +// CancelHireApplicationOnboard 取消待入职状态的候选人入职。 // // ## 注意事项 // - 本接口适用于对待入职阶段的候选人取消入职。对于已入职的候选人, 取消入职请使用[更新入职状态](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/employee/patch) @@ -30,53 +30,53 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/cancel_onboard // new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/onboard/cancel_onboard -func (r *HireService) CreateHireApplicationCancelOnboard(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) { - if r.cli.mock.mockHireCreateHireApplicationCancelOnboard != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireApplicationCancelOnboard mock enable") - return r.cli.mock.mockHireCreateHireApplicationCancelOnboard(ctx, request, options...) +func (r *HireService) CancelHireApplicationOnboard(ctx context.Context, request *CancelHireApplicationOnboardReq, options ...MethodOptionFunc) (*CancelHireApplicationOnboardResp, *Response, error) { + if r.cli.mock.mockHireCancelHireApplicationOnboard != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CancelHireApplicationOnboard mock enable") + return r.cli.mock.mockHireCancelHireApplicationOnboard(ctx, request, options...) } req := &RawRequestReq{ Scope: "Hire", - API: "CreateHireApplicationCancelOnboard", + API: "CancelHireApplicationOnboard", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/hire/v1/applications/:application_id/cancel_onboard", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createHireApplicationCancelOnboardResp) + resp := new(cancelHireApplicationOnboardResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockHireCreateHireApplicationCancelOnboard mock HireCreateHireApplicationCancelOnboard method -func (r *Mock) MockHireCreateHireApplicationCancelOnboard(f func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error)) { - r.mockHireCreateHireApplicationCancelOnboard = f +// MockHireCancelHireApplicationOnboard mock HireCancelHireApplicationOnboard method +func (r *Mock) MockHireCancelHireApplicationOnboard(f func(ctx context.Context, request *CancelHireApplicationOnboardReq, options ...MethodOptionFunc) (*CancelHireApplicationOnboardResp, *Response, error)) { + r.mockHireCancelHireApplicationOnboard = f } -// UnMockHireCreateHireApplicationCancelOnboard un-mock HireCreateHireApplicationCancelOnboard method -func (r *Mock) UnMockHireCreateHireApplicationCancelOnboard() { - r.mockHireCreateHireApplicationCancelOnboard = nil +// UnMockHireCancelHireApplicationOnboard un-mock HireCancelHireApplicationOnboard method +func (r *Mock) UnMockHireCancelHireApplicationOnboard() { + r.mockHireCancelHireApplicationOnboard = nil } -// CreateHireApplicationCancelOnboardReq ... -type CreateHireApplicationCancelOnboardReq struct { +// CancelHireApplicationOnboardReq ... +type CancelHireApplicationOnboardReq struct { ApplicationID string `path:"application_id" json:"-"` // 投递 ID, 如何获取投递 ID 请参考[获取投递列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/application/list)示例值: "1111111111" TerminationType int64 `json:"termination_type,omitempty"` // 终止类型示例值: 1可选值有: 我们拒绝了候选人候选人拒绝了我们其他 TerminationReasonIDList []string `json:"termination_reason_id_list,omitempty"` // 终止的具体原因的id列表, 详细信息请参考[获取终止投递原因](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/termination_reason/list)示例值: ["6959090661225640000"] TerminationReasonNotes *string `json:"termination_reason_notes,omitempty"` // 备注示例值: "候选人经历不匹配" } -// CreateHireApplicationCancelOnboardResp ... -type CreateHireApplicationCancelOnboardResp struct { +// CancelHireApplicationOnboardResp ... +type CancelHireApplicationOnboardResp struct { } -// createHireApplicationCancelOnboardResp ... -type createHireApplicationCancelOnboardResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateHireApplicationCancelOnboardResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// cancelHireApplicationOnboardResp ... +type cancelHireApplicationOnboardResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CancelHireApplicationOnboardResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_hire_talent_combined_create.go b/api_hire_talent_combined_create.go index 3f85530a..7357b32a 100644 --- a/api_hire_talent_combined_create.go +++ b/api_hire_talent_combined_create.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateHireTalentCombinedCreate 用于在企业内创建一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) +// CreateHireTalentCombined 用于在企业内创建一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) // // 接口获取自定义字段信息使用。 // ## 注意事项 @@ -29,290 +29,290 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/combined_create // new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/combined_create -func (r *HireService) CreateHireTalentCombinedCreate(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) { - if r.cli.mock.mockHireCreateHireTalentCombinedCreate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentCombinedCreate mock enable") - return r.cli.mock.mockHireCreateHireTalentCombinedCreate(ctx, request, options...) +func (r *HireService) CreateHireTalentCombined(ctx context.Context, request *CreateHireTalentCombinedReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedResp, *Response, error) { + if r.cli.mock.mockHireCreateHireTalentCombined != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentCombined mock enable") + return r.cli.mock.mockHireCreateHireTalentCombined(ctx, request, options...) } req := &RawRequestReq{ Scope: "Hire", - API: "CreateHireTalentCombinedCreate", + API: "CreateHireTalentCombined", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/combined_create", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createHireTalentCombinedCreateResp) + resp := new(createHireTalentCombinedResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockHireCreateHireTalentCombinedCreate mock HireCreateHireTalentCombinedCreate method -func (r *Mock) MockHireCreateHireTalentCombinedCreate(f func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error)) { - r.mockHireCreateHireTalentCombinedCreate = f +// MockHireCreateHireTalentCombined mock HireCreateHireTalentCombined method +func (r *Mock) MockHireCreateHireTalentCombined(f func(ctx context.Context, request *CreateHireTalentCombinedReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedResp, *Response, error)) { + r.mockHireCreateHireTalentCombined = f } -// UnMockHireCreateHireTalentCombinedCreate un-mock HireCreateHireTalentCombinedCreate method -func (r *Mock) UnMockHireCreateHireTalentCombinedCreate() { - r.mockHireCreateHireTalentCombinedCreate = nil +// UnMockHireCreateHireTalentCombined un-mock HireCreateHireTalentCombined method +func (r *Mock) UnMockHireCreateHireTalentCombined() { + r.mockHireCreateHireTalentCombined = nil } -// CreateHireTalentCombinedCreateReq ... -type CreateHireTalentCombinedCreateReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 已弃用, 请使用 resume_source_id 字段示例值: "1" - ResumeSourceID *string `json:"resume_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询示例值: "1" - FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["6942778198054125570"] 最大长度: `100` - CreatorID *string `json:"creator_id,omitempty"` // 创建人 ID, 和入参 `user_id_type` 类型保持一致, 默认为系统用户 ID, 当创建人类型为「系统」时无需填写该字段示例值: "ou_84aad35d084aa403a838cf73ee18467" - CreatorAccountType *int64 `json:"creator_account_type,omitempty"` // 创建人类型示例值: 1可选值有: 员工系统 - ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)示例值: "7383906146040678700" - BasicInfo *CreateHireTalentCombinedCreateReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 - EducationList []*CreateHireTalentCombinedCreateReqEducation `json:"education_list,omitempty"` // 教育经历 最大长度: `100` - CareerList []*CreateHireTalentCombinedCreateReqCareer `json:"career_list,omitempty"` // 工作经历 最大长度: `100` - ProjectList []*CreateHireTalentCombinedCreateReqProject `json:"project_list,omitempty"` // 项目经历 最大长度: `100` - WorksList []*CreateHireTalentCombinedCreateReqWorks `json:"works_list,omitempty"` // 作品 最大长度: `100` - AwardList []*CreateHireTalentCombinedCreateReqAward `json:"award_list,omitempty"` // 获奖 最大长度: `100` - LanguageList []*CreateHireTalentCombinedCreateReqLanguage `json:"language_list,omitempty"` // 语言能力 最大长度: `100` - SnsList []*CreateHireTalentCombinedCreateReqSns `json:"sns_list,omitempty"` // 社交账号示例值: [CN_1] 最大长度: `100` - PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["6942778198054125571"] 最大长度: `100` - SelfEvaluation *CreateHireTalentCombinedCreateReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 - CustomizedData []*CreateHireTalentCombinedCreateReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例 +// CreateHireTalentCombinedReq ... +type CreateHireTalentCombinedReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 已弃用, 请使用 resume_source_id 字段示例值: "1" + ResumeSourceID *string `json:"resume_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询示例值: "1" + FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["6942778198054125570"] 最大长度: `100` + CreatorID *string `json:"creator_id,omitempty"` // 创建人 ID, 和入参 `user_id_type` 类型保持一致, 默认为系统用户 ID, 当创建人类型为「系统」时无需填写该字段示例值: "ou_84aad35d084aa403a838cf73ee18467" + CreatorAccountType *int64 `json:"creator_account_type,omitempty"` // 创建人类型示例值: 1可选值有: 员工系统 + ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)示例值: "7383906146040678700" + BasicInfo *CreateHireTalentCombinedReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*CreateHireTalentCombinedReqEducation `json:"education_list,omitempty"` // 教育经历 最大长度: `100` + CareerList []*CreateHireTalentCombinedReqCareer `json:"career_list,omitempty"` // 工作经历 最大长度: `100` + ProjectList []*CreateHireTalentCombinedReqProject `json:"project_list,omitempty"` // 项目经历 最大长度: `100` + WorksList []*CreateHireTalentCombinedReqWorks `json:"works_list,omitempty"` // 作品 最大长度: `100` + AwardList []*CreateHireTalentCombinedReqAward `json:"award_list,omitempty"` // 获奖 最大长度: `100` + LanguageList []*CreateHireTalentCombinedReqLanguage `json:"language_list,omitempty"` // 语言能力 最大长度: `100` + SnsList []*CreateHireTalentCombinedReqSns `json:"sns_list,omitempty"` // 社交账号示例值: [CN_1] 最大长度: `100` + PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["6942778198054125571"] 最大长度: `100` + SelfEvaluation *CreateHireTalentCombinedReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 + CustomizedData []*CreateHireTalentCombinedReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例 } -// CreateHireTalentCombinedCreateReqAward ... -type CreateHireTalentCombinedCreateReqAward struct { - ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" - AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "1687180087000" - Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" - CustomizedData []*CreateHireTalentCombinedCreateReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqAward ... +type CreateHireTalentCombinedReqAward struct { + ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" + AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "1687180087000" + Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" + CustomizedData []*CreateHireTalentCombinedReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqAwardCustomizedData ... -type CreateHireTalentCombinedCreateReqAwardCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqAwardCustomizedData ... +type CreateHireTalentCombinedReqAwardCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqAwardCustomizedDataChildren struct { +// CreateHireTalentCombinedReqAwardCustomizedDataChildren ... +type CreateHireTalentCombinedReqAwardCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqBasicInfo ... -type CreateHireTalentCombinedCreateReqBasicInfo struct { - Name string `json:"name,omitempty"` // 名字示例值: "小明" - Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182900291190" - MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" - Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" - Identification *CreateHireTalentCombinedCreateReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 - StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" - Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "1293016767159" - Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 - NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" - CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" - HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" - CustomizedData []*CreateHireTalentCombinedCreateReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` -} - -// CreateHireTalentCombinedCreateReqBasicInfoCustomizedData ... -type CreateHireTalentCombinedCreateReqBasicInfoCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqBasicInfo ... +type CreateHireTalentCombinedReqBasicInfo struct { + Name string `json:"name,omitempty"` // 名字示例值: "小明" + Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182900291190" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" + Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" + Identification *CreateHireTalentCombinedReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 + StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" + Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "1293016767159" + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 + NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" + CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + CustomizedData []*CreateHireTalentCombinedReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// CreateHireTalentCombinedReqBasicInfoCustomizedData ... +type CreateHireTalentCombinedReqBasicInfoCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqBasicInfoCustomizedDataChildren struct { +// CreateHireTalentCombinedReqBasicInfoCustomizedDataChildren ... +type CreateHireTalentCombinedReqBasicInfoCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqBasicInfoIdentification ... -type CreateHireTalentCombinedCreateReqBasicInfoIdentification struct { +// CreateHireTalentCombinedReqBasicInfoIdentification ... +type CreateHireTalentCombinedReqBasicInfoIdentification struct { IdentificationType *int64 `json:"identification_type,omitempty"` // 证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号示例值: "511699199x1x111234" } -// CreateHireTalentCombinedCreateReqCareer ... -type CreateHireTalentCombinedCreateReqCareer struct { - ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Company *string `json:"company,omitempty"` // 工作经历公司名称示例值: "明日科技公司" - Title *string `json:"title,omitempty"` // 工作经历职位名称示例值: "高级工程师" - Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" - StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "1655644087000" - EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "1687180087000" - CareerType *int64 `json:"career_type,omitempty"` // 工作经历经历类型示例值: 1可选值有: 实习经历工作经历 - CustomizedData []*CreateHireTalentCombinedCreateReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqCareer ... +type CreateHireTalentCombinedReqCareer struct { + ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Company *string `json:"company,omitempty"` // 工作经历公司名称示例值: "明日科技公司" + Title *string `json:"title,omitempty"` // 工作经历职位名称示例值: "高级工程师" + Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" + StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "1687180087000" + CareerType *int64 `json:"career_type,omitempty"` // 工作经历经历类型示例值: 1可选值有: 实习经历工作经历 + CustomizedData []*CreateHireTalentCombinedReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqCareerCustomizedData ... -type CreateHireTalentCombinedCreateReqCareerCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqCareerCustomizedData ... +type CreateHireTalentCombinedReqCareerCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqCareerCustomizedDataChildren struct { +// CreateHireTalentCombinedReqCareerCustomizedDataChildren ... +type CreateHireTalentCombinedReqCareerCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqCustomizedData ... -type CreateHireTalentCombinedCreateReqCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqCustomizedData ... +type CreateHireTalentCombinedReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqCustomizedDataChildren struct { +// CreateHireTalentCombinedReqCustomizedDataChildren ... +type CreateHireTalentCombinedReqCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqEducation ... -type CreateHireTalentCombinedCreateReqEducation struct { - ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 - School *string `json:"school,omitempty"` // 教育经历学校示例值: "香港大学" - FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" - StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "1655644087000" - EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "1687180087000" - EducationType *int64 `json:"education_type,omitempty"` // 教育经历学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 - AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 教育经历成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 - CustomizedData []*CreateHireTalentCombinedCreateReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqEducation ... +type CreateHireTalentCombinedReqEducation struct { + ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 + School *string `json:"school,omitempty"` // 教育经历学校示例值: "香港大学" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" + StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "1687180087000" + EducationType *int64 `json:"education_type,omitempty"` // 教育经历学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 教育经历成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedData []*CreateHireTalentCombinedReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqEducationCustomizedData ... -type CreateHireTalentCombinedCreateReqEducationCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqEducationCustomizedData ... +type CreateHireTalentCombinedReqEducationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqEducationCustomizedDataChildren struct { +// CreateHireTalentCombinedReqEducationCustomizedDataChildren ... +type CreateHireTalentCombinedReqEducationCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqLanguage ... -type CreateHireTalentCombinedCreateReqLanguage struct { - ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 - Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 - CustomizedData []*CreateHireTalentCombinedCreateReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqLanguage ... +type CreateHireTalentCombinedReqLanguage struct { + ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 + Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 + CustomizedData []*CreateHireTalentCombinedReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqLanguageCustomizedData ... -type CreateHireTalentCombinedCreateReqLanguageCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqLanguageCustomizedData ... +type CreateHireTalentCombinedReqLanguageCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqLanguageCustomizedDataChildren struct { +// CreateHireTalentCombinedReqLanguageCustomizedDataChildren ... +type CreateHireTalentCombinedReqLanguageCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqProject ... -type CreateHireTalentCombinedCreateReqProject struct { - ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" - Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" - Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" - Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" - StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "1655644087000" - EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "1687180087000" - CustomizedData []*CreateHireTalentCombinedCreateReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqProject ... +type CreateHireTalentCombinedReqProject struct { + ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" + Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" + Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" + StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "1655644087000" + EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "1687180087000" + CustomizedData []*CreateHireTalentCombinedReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqProjectCustomizedData ... -type CreateHireTalentCombinedCreateReqProjectCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqProjectCustomizedData ... +type CreateHireTalentCombinedReqProjectCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqProjectCustomizedDataChildren struct { +// CreateHireTalentCombinedReqProjectCustomizedDataChildren ... +type CreateHireTalentCombinedReqProjectCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqSelfEvaluation ... -type CreateHireTalentCombinedCreateReqSelfEvaluation struct { - ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" - CustomizedData []*CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqSelfEvaluation ... +type CreateHireTalentCombinedReqSelfEvaluation struct { + ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" + CustomizedData []*CreateHireTalentCombinedReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData ... -type CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqSelfEvaluationCustomizedData ... +type CreateHireTalentCombinedReqSelfEvaluationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqSelfEvaluationCustomizedDataChildren struct { +// CreateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren ... +type CreateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqSns ... -type CreateHireTalentCombinedCreateReqSns struct { - ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ - Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" - CustomizedData []*CreateHireTalentCombinedCreateReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqSns ... +type CreateHireTalentCombinedReqSns struct { + ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" + CustomizedData []*CreateHireTalentCombinedReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqSnsCustomizedData ... -type CreateHireTalentCombinedCreateReqSnsCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqSnsCustomizedData ... +type CreateHireTalentCombinedReqSnsCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqSnsCustomizedDataChildren struct { +// CreateHireTalentCombinedReqSnsCustomizedDataChildren ... +type CreateHireTalentCombinedReqSnsCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateReqWorks ... -type CreateHireTalentCombinedCreateReqWorks struct { - ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" - Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" - AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" - CustomizedData []*CreateHireTalentCombinedCreateReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// CreateHireTalentCombinedReqWorks ... +type CreateHireTalentCombinedReqWorks struct { + ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" + AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" + CustomizedData []*CreateHireTalentCombinedReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedCreateReqWorksCustomizedData ... -type CreateHireTalentCombinedCreateReqWorksCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// CreateHireTalentCombinedReqWorksCustomizedData ... +type CreateHireTalentCombinedReqWorksCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" + Children []*CreateHireTalentCombinedReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren ... -type CreateHireTalentCombinedCreateReqWorksCustomizedDataChildren struct { +// CreateHireTalentCombinedReqWorksCustomizedDataChildren ... +type CreateHireTalentCombinedReqWorksCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取。示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」。示例值: "张三" } -// CreateHireTalentCombinedCreateResp ... -type CreateHireTalentCombinedCreateResp struct { +// CreateHireTalentCombinedResp ... +type CreateHireTalentCombinedResp struct { TalentID string `json:"talent_id,omitempty"` // 人才 ID CreatorID string `json:"creator_id,omitempty"` // 创建人 ID, 与入参 `user_id_type` 类型一致 CreatorAccountType int64 `json:"creator_account_type,omitempty"` // 创建人类型可选值有: 员工系统 } -// createHireTalentCombinedCreateResp ... -type createHireTalentCombinedCreateResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateHireTalentCombinedCreateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// createHireTalentCombinedResp ... +type createHireTalentCombinedResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *CreateHireTalentCombinedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_hire_talent_combined_update.go b/api_hire_talent_combined_update.go index d28ab6dd..31faed1b 100644 --- a/api_hire_talent_combined_update.go +++ b/api_hire_talent_combined_update.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateHireTalentCombinedUpdate 用于在企业内更新一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) +// UpdateHireTalentCombined 用于在企业内更新一个人才。支持自定义字段数据, 可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query) // // 接口获取自定义字段信息使用。 // ## 注意事项 @@ -29,290 +29,290 @@ import ( // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/combined_update // new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/talent/combined_update -func (r *HireService) CreateHireTalentCombinedUpdate(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) { - if r.cli.mock.mockHireCreateHireTalentCombinedUpdate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireTalentCombinedUpdate mock enable") - return r.cli.mock.mockHireCreateHireTalentCombinedUpdate(ctx, request, options...) +func (r *HireService) UpdateHireTalentCombined(ctx context.Context, request *UpdateHireTalentCombinedReq, options ...MethodOptionFunc) (*UpdateHireTalentCombinedResp, *Response, error) { + if r.cli.mock.mockHireUpdateHireTalentCombined != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#UpdateHireTalentCombined mock enable") + return r.cli.mock.mockHireUpdateHireTalentCombined(ctx, request, options...) } req := &RawRequestReq{ Scope: "Hire", - API: "CreateHireTalentCombinedUpdate", + API: "UpdateHireTalentCombined", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/hire/v1/talents/combined_update", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createHireTalentCombinedUpdateResp) + resp := new(updateHireTalentCombinedResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockHireCreateHireTalentCombinedUpdate mock HireCreateHireTalentCombinedUpdate method -func (r *Mock) MockHireCreateHireTalentCombinedUpdate(f func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error)) { - r.mockHireCreateHireTalentCombinedUpdate = f +// MockHireUpdateHireTalentCombined mock HireUpdateHireTalentCombined method +func (r *Mock) MockHireUpdateHireTalentCombined(f func(ctx context.Context, request *UpdateHireTalentCombinedReq, options ...MethodOptionFunc) (*UpdateHireTalentCombinedResp, *Response, error)) { + r.mockHireUpdateHireTalentCombined = f } -// UnMockHireCreateHireTalentCombinedUpdate un-mock HireCreateHireTalentCombinedUpdate method -func (r *Mock) UnMockHireCreateHireTalentCombinedUpdate() { - r.mockHireCreateHireTalentCombinedUpdate = nil +// UnMockHireUpdateHireTalentCombined un-mock HireUpdateHireTalentCombined method +func (r *Mock) UnMockHireUpdateHireTalentCombined() { + r.mockHireUpdateHireTalentCombined = nil } -// CreateHireTalentCombinedUpdateReq ... -type CreateHireTalentCombinedUpdateReq struct { - UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID - TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "7158793341499426348" - InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询, 已弃用, 请使用 resume_source_id 字段示例值: "1" - FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["702551782317613290"] 最大长度: `100` - OperatorID *string `json:"operator_id,omitempty"` // 更新人 ID, 与入参 `user_id_type` 类型一致示例值: "ou_84aad35d084aa403a838cf73ee18467" - OperatorAccountType *int64 `json:"operator_account_type,omitempty"` // 更新人类型示例值: 1可选值有: 员工系统 - ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment);请注意: 本接口仅会给人才增加一个附件简历, 不会解析附件简历中的内容并更新人才示例值: "7383906146040678700" - BasicInfo *CreateHireTalentCombinedUpdateReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 - EducationList []*CreateHireTalentCombinedUpdateReqEducation `json:"education_list,omitempty"` // 教育经历 注意: 更新时会全量覆盖 最大长度: `100` - CareerList []*CreateHireTalentCombinedUpdateReqCareer `json:"career_list,omitempty"` // 工作经历 注意: 更新时会全量覆盖 最大长度: `100` - ProjectList []*CreateHireTalentCombinedUpdateReqProject `json:"project_list,omitempty"` // 项目经历 注意: 更新时会全量覆盖 最大长度: `100` - WorksList []*CreateHireTalentCombinedUpdateReqWorks `json:"works_list,omitempty"` // 作品 注意: 更新时会全量覆盖 最大长度: `100` - AwardList []*CreateHireTalentCombinedUpdateReqAward `json:"award_list,omitempty"` // 获奖 注意: 更新时会全量覆盖 最大长度: `100` - LanguageList []*CreateHireTalentCombinedUpdateReqLanguage `json:"language_list,omitempty"` // 语言能力 注意: 更新时会全量覆盖 最大长度: `100` - SnsList []*CreateHireTalentCombinedUpdateReqSns `json:"sns_list,omitempty"` // 社交账号 注意: 更新时会全量覆盖 最大长度: `100` - PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["CT_1"] 最大长度: `100` - SelfEvaluation *CreateHireTalentCombinedUpdateReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 - CustomizedData []*CreateHireTalentCombinedUpdateReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例- 更新时会全量覆盖 +// UpdateHireTalentCombinedReq ... +type UpdateHireTalentCombinedReq struct { + UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)以people_admin_id来识别用户默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID + TalentID string `json:"talent_id,omitempty"` // 人才 ID, 可通过[获取人才列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent/list)接口获取示例值: "7158793341499426348" + InitSourceID *string `json:"init_source_id,omitempty"` // 简历来源 ID, 可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/resume_source/list)接口查询, 已弃用, 请使用 resume_source_id 字段示例值: "1" + FolderIDList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表, 可通过[获取人才文件夹列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_folder/list)接口获取示例值: ["702551782317613290"] 最大长度: `100` + OperatorID *string `json:"operator_id,omitempty"` // 更新人 ID, 与入参 `user_id_type` 类型一致示例值: "ou_84aad35d084aa403a838cf73ee18467" + OperatorAccountType *int64 `json:"operator_account_type,omitempty"` // 更新人类型示例值: 1可选值有: 员工系统 + ResumeAttachmentID *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID, 如何创建附件请参考[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment);请注意: 本接口仅会给人才增加一个附件简历, 不会解析附件简历中的内容并更新人才示例值: "7383906146040678700" + BasicInfo *UpdateHireTalentCombinedReqBasicInfo `json:"basic_info,omitempty"` // 基本信息 + EducationList []*UpdateHireTalentCombinedReqEducation `json:"education_list,omitempty"` // 教育经历 注意: 更新时会全量覆盖 最大长度: `100` + CareerList []*UpdateHireTalentCombinedReqCareer `json:"career_list,omitempty"` // 工作经历 注意: 更新时会全量覆盖 最大长度: `100` + ProjectList []*UpdateHireTalentCombinedReqProject `json:"project_list,omitempty"` // 项目经历 注意: 更新时会全量覆盖 最大长度: `100` + WorksList []*UpdateHireTalentCombinedReqWorks `json:"works_list,omitempty"` // 作品 注意: 更新时会全量覆盖 最大长度: `100` + AwardList []*UpdateHireTalentCombinedReqAward `json:"award_list,omitempty"` // 获奖 注意: 更新时会全量覆盖 最大长度: `100` + LanguageList []*UpdateHireTalentCombinedReqLanguage `json:"language_list,omitempty"` // 语言能力 注意: 更新时会全量覆盖 最大长度: `100` + SnsList []*UpdateHireTalentCombinedReqSns `json:"sns_list,omitempty"` // 社交账号 注意: 更新时会全量覆盖 最大长度: `100` + PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: ["CT_1"] 最大长度: `100` + SelfEvaluation *UpdateHireTalentCombinedReqSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价 + CustomizedData []*UpdateHireTalentCombinedReqCustomizedData `json:"customized_data,omitempty"` // 自定义模块列表 注意: `children` 字段为二维数组, 请参考请求体示例- 更新时会全量覆盖 } -// CreateHireTalentCombinedUpdateReqAward ... -type CreateHireTalentCombinedUpdateReqAward struct { - ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" - AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "293016767159" - Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" - CustomizedData []*CreateHireTalentCombinedUpdateReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqAward ... +type UpdateHireTalentCombinedReqAward struct { + ID *string `json:"id,omitempty"` // 获奖 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Title *string `json:"title,omitempty"` // 获奖名称示例值: "最佳新人奖" + AwardTime *string `json:"award_time,omitempty"` // 获奖时间, 毫秒时间戳示例值: "293016767159" + Desc *string `json:"desc,omitempty"` // 获奖描述示例值: "最优秀的新人奖" + CustomizedData []*UpdateHireTalentCombinedReqAwardCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqAwardCustomizedData ... -type CreateHireTalentCombinedUpdateReqAwardCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqAwardCustomizedData ... +type UpdateHireTalentCombinedReqAwardCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqAwardCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqAwardCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqAwardCustomizedDataChildren ... +type UpdateHireTalentCombinedReqAwardCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqBasicInfo ... -type CreateHireTalentCombinedUpdateReqBasicInfo struct { - Name *string `json:"name,omitempty"` // 名字示例值: "张三" - Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182xxxx9190" - MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" - Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" - Identification *CreateHireTalentCombinedUpdateReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 - StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" - Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "293016767159" - Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 - NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" - CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" - HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" - CustomizedData []*CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` -} - -// CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData ... -type CreateHireTalentCombinedUpdateReqBasicInfoCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqBasicInfo ... +type UpdateHireTalentCombinedReqBasicInfo struct { + Name *string `json:"name,omitempty"` // 名字示例值: "张三" + Mobile *string `json:"mobile,omitempty"` // 手机示例值: "182xxxx9190" + MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)接口获取示例值: "CN_1" + Email *string `json:"email,omitempty"` // 邮箱示例值: "16xx1@126.com" + Identification *UpdateHireTalentCombinedReqBasicInfoIdentification `json:"identification,omitempty"` // 证件信息 + StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间, 毫秒时间戳示例值: "1686832459000" + Birthday *string `json:"birthday,omitempty"` // 出生日期时间, 毫秒时间戳示例值: "293016767159" + Gender *int64 `json:"gender,omitempty"` // 性别示例值: 1可选值有: 男女其他 + NationalityID *string `json:"nationality_id,omitempty"` // 国籍编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CN_112" + CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码, 可通过[查询地点列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/location/query)获取示例值: "CT_159" + CustomizedData []*UpdateHireTalentCombinedReqBasicInfoCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +} + +// UpdateHireTalentCombinedReqBasicInfoCustomizedData ... +type UpdateHireTalentCombinedReqBasicInfoCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqBasicInfoCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqBasicInfoCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqBasicInfoCustomizedDataChildren ... +type UpdateHireTalentCombinedReqBasicInfoCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqBasicInfoIdentification ... -type CreateHireTalentCombinedUpdateReqBasicInfoIdentification struct { +// UpdateHireTalentCombinedReqBasicInfoIdentification ... +type UpdateHireTalentCombinedReqBasicInfoIdentification struct { IdentificationType *int64 `json:"identification_type,omitempty"` // 证件类型示例值: 1可选值有: 中国 - 居民身份证护照中国 - 港澳居民居住证中国 - 台湾居民来往大陆通行证其他中国 - 港澳居民来往内地通行证中国 - 台湾居民居住证 IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号示例值: "511699199x1x111234" } -// CreateHireTalentCombinedUpdateReqCareer ... -type CreateHireTalentCombinedUpdateReqCareer struct { - ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Company *string `json:"company,omitempty"` // 公司名称示例值: "明日科技公司" - Title *string `json:"title,omitempty"` // 职位名称示例值: "高级工程师" - Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" - StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "293016767159" - EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "293016767159" - CareerType *int64 `json:"career_type,omitempty"` // 工作经历类型示例值: 1可选值有: 实习经历工作经历 - CustomizedData []*CreateHireTalentCombinedUpdateReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqCareer ... +type UpdateHireTalentCombinedReqCareer struct { + ID *string `json:"id,omitempty"` // 工作经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Company *string `json:"company,omitempty"` // 公司名称示例值: "明日科技公司" + Title *string `json:"title,omitempty"` // 职位名称示例值: "高级工程师" + Desc *string `json:"desc,omitempty"` // 工作经历描述示例值: "测试" + StartTime *string `json:"start_time,omitempty"` // 工作经历开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 工作经历结束时间, 毫秒时间戳示例值: "293016767159" + CareerType *int64 `json:"career_type,omitempty"` // 工作经历类型示例值: 1可选值有: 实习经历工作经历 + CustomizedData []*UpdateHireTalentCombinedReqCareerCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqCareerCustomizedData ... -type CreateHireTalentCombinedUpdateReqCareerCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqCareerCustomizedData ... +type UpdateHireTalentCombinedReqCareerCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqCareerCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqCareerCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqCareerCustomizedDataChildren ... +type UpdateHireTalentCombinedReqCareerCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqCustomizedData ... -type CreateHireTalentCombinedUpdateReqCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqCustomizedData ... +type UpdateHireTalentCombinedReqCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义模块 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqCustomizedDataChildren ... +type UpdateHireTalentCombinedReqCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqEducation ... -type CreateHireTalentCombinedUpdateReqEducation struct { - ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 - School *string `json:"school,omitempty"` // 学校示例值: "香港大学" - FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" - StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "293016767159" - EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "293016767159" - EducationType *int64 `json:"education_type,omitempty"` // 学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 - AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 - CustomizedData []*CreateHireTalentCombinedUpdateReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqEducation ... +type UpdateHireTalentCombinedReqEducation struct { + ID *string `json:"id,omitempty"` // 教育经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Degree *int64 `json:"degree,omitempty"` // 学历示例值: 1可选值有: 小学初中专职高中大专本科硕士博士其他 + School *string `json:"school,omitempty"` // 学校示例值: "香港大学" + FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业示例值: "考古" + StartTime *string `json:"start_time,omitempty"` // 教育经历开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 教育经历结束时间, 毫秒时间戳示例值: "293016767159" + EducationType *int64 `json:"education_type,omitempty"` // 学历类型示例值: 1可选值有: 海外及港台统招全日制非全日制自考其他 + AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 成绩排名示例值: 5可选值有: 前 5 %前 10 %前 20 %前 30 %前 50 %其他 + CustomizedData []*UpdateHireTalentCombinedReqEducationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqEducationCustomizedData ... -type CreateHireTalentCombinedUpdateReqEducationCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqEducationCustomizedData ... +type UpdateHireTalentCombinedReqEducationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqEducationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqEducationCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqEducationCustomizedDataChildren ... +type UpdateHireTalentCombinedReqEducationCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqLanguage ... -type CreateHireTalentCombinedUpdateReqLanguage struct { - ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 - Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 - CustomizedData []*CreateHireTalentCombinedUpdateReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqLanguage ... +type UpdateHireTalentCombinedReqLanguage struct { + ID *string `json:"id,omitempty"` // 语言能力 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Language *int64 `json:"language,omitempty"` // 语言类型示例值: 1可选值有: 英语法语日语韩语德语俄语西班牙语葡萄牙语阿拉伯语印地语印度斯坦语孟加拉语豪萨语旁遮普语波斯语斯瓦西里语泰卢固语土耳其语意大利语爪哇语泰米尔语马拉地语越南语普通话粤语印尼语马来语泰语塞尔维亚语 + Proficiency *int64 `json:"proficiency,omitempty"` // 语言精通程度示例值: 1可选值有: 入门日常会话商务会话无障碍沟通母语 + CustomizedData []*UpdateHireTalentCombinedReqLanguageCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqLanguageCustomizedData ... -type CreateHireTalentCombinedUpdateReqLanguageCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqLanguageCustomizedData ... +type UpdateHireTalentCombinedReqLanguageCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqLanguageCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqLanguageCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqLanguageCustomizedDataChildren ... +type UpdateHireTalentCombinedReqLanguageCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqProject ... -type CreateHireTalentCombinedUpdateReqProject struct { - ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" - Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" - Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" - Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" - StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "293016767159" - EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "293016767159" - CustomizedData []*CreateHireTalentCombinedUpdateReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqProject ... +type UpdateHireTalentCombinedReqProject struct { + ID *string `json:"id,omitempty"` // 项目经历 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Name *string `json:"name,omitempty"` // 项目名称示例值: "系统稳定性提升项目" + Role *string `json:"role,omitempty"` // 项目角色示例值: "研发人员" + Link *string `json:"link,omitempty"` // 项目链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 项目描述示例值: "该项目目标是提升整个系统的稳定性, 达到行业一流水准。" + StartTime *string `json:"start_time,omitempty"` // 项目开始时间, 毫秒时间戳示例值: "293016767159" + EndTime *string `json:"end_time,omitempty"` // 项目结束时间, 毫秒时间戳示例值: "293016767159" + CustomizedData []*UpdateHireTalentCombinedReqProjectCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqProjectCustomizedData ... -type CreateHireTalentCombinedUpdateReqProjectCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqProjectCustomizedData ... +type UpdateHireTalentCombinedReqProjectCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqProjectCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqProjectCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqProjectCustomizedDataChildren ... +type UpdateHireTalentCombinedReqProjectCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqSelfEvaluation ... -type CreateHireTalentCombinedUpdateReqSelfEvaluation struct { - ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" - CustomizedData []*CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqSelfEvaluation ... +type UpdateHireTalentCombinedReqSelfEvaluation struct { + ID *string `json:"id,omitempty"` // 自我评价 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Content *string `json:"content,omitempty"` // 自我评价内容示例值: "自我评价: 平常心" + CustomizedData []*UpdateHireTalentCombinedReqSelfEvaluationCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData ... -type CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqSelfEvaluationCustomizedData ... +type UpdateHireTalentCombinedReqSelfEvaluationCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqSelfEvaluationCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren ... +type UpdateHireTalentCombinedReqSelfEvaluationCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqSns ... -type CreateHireTalentCombinedUpdateReqSns struct { - ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ - Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" - CustomizedData []*CreateHireTalentCombinedUpdateReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqSns ... +type UpdateHireTalentCombinedReqSns struct { + ID *string `json:"id,omitempty"` // 社交账号 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + SnsType *int64 `json:"sns_type,omitempty"` // 社交平台示例值: 1可选值有: 领英脉脉微信微博Github知乎脸书推特Whatsapp个人网站QQ + Link *string `json:"link,omitempty"` // URL/ID示例值: "https://www.a.com" + CustomizedData []*UpdateHireTalentCombinedReqSnsCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqSnsCustomizedData ... -type CreateHireTalentCombinedUpdateReqSnsCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqSnsCustomizedData ... +type UpdateHireTalentCombinedReqSnsCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqSnsCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqSnsCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqSnsCustomizedDataChildren ... +type UpdateHireTalentCombinedReqSnsCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateReqWorks ... -type CreateHireTalentCombinedUpdateReqWorks struct { - ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" - Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" - Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" - AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" - CustomizedData []*CreateHireTalentCombinedUpdateReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` +// UpdateHireTalentCombinedReqWorks ... +type UpdateHireTalentCombinedReqWorks struct { + ID *string `json:"id,omitempty"` // 作品 ID, 无效字段, 请勿使用示例值: "6891560630172518670" + Link *string `json:"link,omitempty"` // 作品链接示例值: "https://www.a.com" + Desc *string `json:"desc,omitempty"` // 作品描述示例值: "个人设计作品" + AttachmentID *string `json:"attachment_id,omitempty"` // 作品附件 ID示例值: "12345678" + CustomizedData []*UpdateHireTalentCombinedReqWorksCustomizedData `json:"customized_data,omitempty"` // 自定义字段列表 注意: `children` 字段无效, 请参考请求体示例在当前层级传入 `object_id` 和 `value` } -// CreateHireTalentCombinedUpdateReqWorksCustomizedData ... -type CreateHireTalentCombinedUpdateReqWorksCustomizedData struct { - ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" - Children []*CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 +// UpdateHireTalentCombinedReqWorksCustomizedData ... +type UpdateHireTalentCombinedReqWorksCustomizedData struct { + ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" + Children []*UpdateHireTalentCombinedReqWorksCustomizedDataChildren `json:"children,omitempty"` // 子字段列表 } -// CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren ... -type CreateHireTalentCombinedUpdateReqWorksCustomizedDataChildren struct { +// UpdateHireTalentCombinedReqWorksCustomizedDataChildren ... +type UpdateHireTalentCombinedReqWorksCustomizedDataChildren struct { ObjectID *string `json:"object_id,omitempty"` // 自定义字段 ID, 可通过[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取示例值: "6934193211960330504" Value *string `json:"value,omitempty"` // 自定义字段值, 请参考本文「自定义字段数据格式说明」示例值: "张三" } -// CreateHireTalentCombinedUpdateResp ... -type CreateHireTalentCombinedUpdateResp struct { +// UpdateHireTalentCombinedResp ... +type UpdateHireTalentCombinedResp struct { TalentID string `json:"talent_id,omitempty"` // 人才 ID OperatorID string `json:"operator_id,omitempty"` // 更新人 ID, 与入参 `user_id_type` 类型一致 OperatorAccountType int64 `json:"operator_account_type,omitempty"` // 更新人类型可选值有: 员工系统 } -// createHireTalentCombinedUpdateResp ... -type createHireTalentCombinedUpdateResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateHireTalentCombinedUpdateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateHireTalentCombinedResp ... +type updateHireTalentCombinedResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *UpdateHireTalentCombinedResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_mail_user_mailbox_message_send.go b/api_mail_user_mailbox_message_send.go index 331e5bb9..0eccbaa0 100644 --- a/api_mail_user_mailbox_message_send.go +++ b/api_mail_user_mailbox_message_send.go @@ -21,7 +21,7 @@ import ( "context" ) -// CreateMailUserMailboxMessageSend 发送邮件 +// SendMailUserMailboxMessage 发送邮件 // // 该接口基于单个用户加锁, 只能串行调用 // 发送邮件使用 base64url 编码。与普通 base64 的区别是将「+/」替换为「-_」。 @@ -29,93 +29,93 @@ import ( // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-message/send // new doc: https://open.feishu.cn/document/server-docs/mail-v1/user_mailbox-message/send -func (r *MailService) CreateMailUserMailboxMessageSend(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) { - if r.cli.mock.mockMailCreateMailUserMailboxMessageSend != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxMessageSend mock enable") - return r.cli.mock.mockMailCreateMailUserMailboxMessageSend(ctx, request, options...) +func (r *MailService) SendMailUserMailboxMessage(ctx context.Context, request *SendMailUserMailboxMessageReq, options ...MethodOptionFunc) (*SendMailUserMailboxMessageResp, *Response, error) { + if r.cli.mock.mockMailSendMailUserMailboxMessage != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#SendMailUserMailboxMessage mock enable") + return r.cli.mock.mockMailSendMailUserMailboxMessage(ctx, request, options...) } req := &RawRequestReq{ Scope: "Mail", - API: "CreateMailUserMailboxMessageSend", + API: "SendMailUserMailboxMessage", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/send", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(createMailUserMailboxMessageSendResp) + resp := new(sendMailUserMailboxMessageResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockMailCreateMailUserMailboxMessageSend mock MailCreateMailUserMailboxMessageSend method -func (r *Mock) MockMailCreateMailUserMailboxMessageSend(f func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error)) { - r.mockMailCreateMailUserMailboxMessageSend = f +// MockMailSendMailUserMailboxMessage mock MailSendMailUserMailboxMessage method +func (r *Mock) MockMailSendMailUserMailboxMessage(f func(ctx context.Context, request *SendMailUserMailboxMessageReq, options ...MethodOptionFunc) (*SendMailUserMailboxMessageResp, *Response, error)) { + r.mockMailSendMailUserMailboxMessage = f } -// UnMockMailCreateMailUserMailboxMessageSend un-mock MailCreateMailUserMailboxMessageSend method -func (r *Mock) UnMockMailCreateMailUserMailboxMessageSend() { - r.mockMailCreateMailUserMailboxMessageSend = nil +// UnMockMailSendMailUserMailboxMessage un-mock MailSendMailUserMailboxMessage method +func (r *Mock) UnMockMailSendMailUserMailboxMessage() { + r.mockMailSendMailUserMailboxMessage = nil } -// CreateMailUserMailboxMessageSendReq ... -type CreateMailUserMailboxMessageSendReq struct { - UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" - Subject *string `json:"subject,omitempty"` // 主题示例值: "邮件标题" - To []*CreateMailUserMailboxMessageSendReqTo `json:"to,omitempty"` // 收件人 - Raw *string `json:"raw,omitempty"` // eml数据示例值: "U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo=" - Cc []*CreateMailUserMailboxMessageSendReqCc `json:"cc,omitempty"` // 抄送 - Bcc []*CreateMailUserMailboxMessageSendReqBcc `json:"bcc,omitempty"` // 密送 - BodyHtml *string `json:"body_html,omitempty"` // 正文示例值: "xxxx" - BodyPlainText *string `json:"body_plain_text,omitempty"` // 正文纯文本示例值: "xxxx" - Attachments []*CreateMailUserMailboxMessageSendReqAttachment `json:"attachments,omitempty"` // 附件 - DedupeKey *string `json:"dedupe_key,omitempty"` // 去重键示例值: "abc-ddd-eee-fff-ggg" - HeadFrom *CreateMailUserMailboxMessageSendReqHeadFrom `json:"head_from,omitempty"` // EML中发件人信息 +// SendMailUserMailboxMessageReq ... +type SendMailUserMailboxMessageReq struct { + UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址 或 输入me代表当前调用接口用户示例值: "user@xxx.xx 或 me" + Subject *string `json:"subject,omitempty"` // 主题示例值: "邮件标题" + To []*SendMailUserMailboxMessageReqTo `json:"to,omitempty"` // 收件人 + Raw *string `json:"raw,omitempty"` // eml数据示例值: "U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo=" + Cc []*SendMailUserMailboxMessageReqCc `json:"cc,omitempty"` // 抄送 + Bcc []*SendMailUserMailboxMessageReqBcc `json:"bcc,omitempty"` // 密送 + BodyHtml *string `json:"body_html,omitempty"` // 正文示例值: "xxxx" + BodyPlainText *string `json:"body_plain_text,omitempty"` // 正文纯文本示例值: "xxxx" + Attachments []*SendMailUserMailboxMessageReqAttachment `json:"attachments,omitempty"` // 附件 + DedupeKey *string `json:"dedupe_key,omitempty"` // 去重键示例值: "abc-ddd-eee-fff-ggg" + HeadFrom *SendMailUserMailboxMessageReqHeadFrom `json:"head_from,omitempty"` // EML中发件人信息 } -// CreateMailUserMailboxMessageSendReqAttachment ... -type CreateMailUserMailboxMessageSendReqAttachment struct { +// SendMailUserMailboxMessageReqAttachment ... +type SendMailUserMailboxMessageReqAttachment struct { Body string `json:"body,omitempty"` // 附件的正文, 使用 base64url 编码(支持的文件最大 37MB)示例值: "aGVsbG8gd29ybGQK" 最大长度: `51729750` 字符 Filename string `json:"filename,omitempty"` // 附件文件名示例值: "helloworld.txt" IsInline *bool `json:"is_inline,omitempty"` // 是否为内联图片, true 表示是内联图片示例值: false默认值: `false` Cid *string `json:"cid,omitempty"` // 内容 ID, HTML 中通过 cid: 协议引用该图片示例值: "image1@example.com" } -// CreateMailUserMailboxMessageSendReqBcc ... -type CreateMailUserMailboxMessageSendReqBcc struct { +// SendMailUserMailboxMessageReqBcc ... +type SendMailUserMailboxMessageReqBcc struct { MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } -// CreateMailUserMailboxMessageSendReqCc ... -type CreateMailUserMailboxMessageSendReqCc struct { +// SendMailUserMailboxMessageReqCc ... +type SendMailUserMailboxMessageReqCc struct { MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } -// CreateMailUserMailboxMessageSendReqHeadFrom ... -type CreateMailUserMailboxMessageSendReqHeadFrom struct { +// SendMailUserMailboxMessageReqHeadFrom ... +type SendMailUserMailboxMessageReqHeadFrom struct { Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } -// CreateMailUserMailboxMessageSendReqTo ... -type CreateMailUserMailboxMessageSendReqTo struct { +// SendMailUserMailboxMessageReqTo ... +type SendMailUserMailboxMessageReqTo struct { MailAddress string `json:"mail_address,omitempty"` // 邮件地址示例值: "user@xxx.xx" Name *string `json:"name,omitempty"` // 名称示例值: "Mike" } -// CreateMailUserMailboxMessageSendResp ... -type CreateMailUserMailboxMessageSendResp struct { +// SendMailUserMailboxMessageResp ... +type SendMailUserMailboxMessageResp struct { MessageID string `json:"message_id,omitempty"` // 邮件ID ThreadID string `json:"thread_id,omitempty"` // 会话ID } -// createMailUserMailboxMessageSendResp ... -type createMailUserMailboxMessageSendResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateMailUserMailboxMessageSendResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// sendMailUserMailboxMessageResp ... +type sendMailUserMailboxMessageResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SendMailUserMailboxMessageResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_mail_user_mailbox_rule_reorder.go b/api_mail_user_mailbox_rule_reorder.go index 8593f710..44483c7c 100644 --- a/api_mail_user_mailbox_rule_reorder.go +++ b/api_mail_user_mailbox_rule_reorder.go @@ -21,22 +21,22 @@ import ( "context" ) -// CreateMailUserMailboxRuleReorder 对收信规则进行排序 +// ReorderMailUserMailboxRule 对收信规则进行排序 // // 使用 tenant_access_token 时, 需要申请收信规则资源的数据权限。 // 当使用该接口时, 需要传递所有规则 id // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/reorder // new doc: https://open.feishu.cn/document/mail-v1/user_mailbox-rule/reorder -func (r *MailService) CreateMailUserMailboxRuleReorder(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) { - if r.cli.mock.mockMailCreateMailUserMailboxRuleReorder != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#CreateMailUserMailboxRuleReorder mock enable") - return r.cli.mock.mockMailCreateMailUserMailboxRuleReorder(ctx, request, options...) +func (r *MailService) ReorderMailUserMailboxRule(ctx context.Context, request *ReorderMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ReorderMailUserMailboxRuleResp, *Response, error) { + if r.cli.mock.mockMailReorderMailUserMailboxRule != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Mail#ReorderMailUserMailboxRule mock enable") + return r.cli.mock.mockMailReorderMailUserMailboxRule(ctx, request, options...) } req := &RawRequestReq{ Scope: "Mail", - API: "CreateMailUserMailboxRuleReorder", + API: "ReorderMailUserMailboxRule", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/rules/reorder", Body: request, @@ -44,36 +44,36 @@ func (r *MailService) CreateMailUserMailboxRuleReorder(ctx context.Context, requ NeedTenantAccessToken: true, NeedUserAccessToken: true, } - resp := new(createMailUserMailboxRuleReorderResp) + resp := new(reorderMailUserMailboxRuleResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockMailCreateMailUserMailboxRuleReorder mock MailCreateMailUserMailboxRuleReorder method -func (r *Mock) MockMailCreateMailUserMailboxRuleReorder(f func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error)) { - r.mockMailCreateMailUserMailboxRuleReorder = f +// MockMailReorderMailUserMailboxRule mock MailReorderMailUserMailboxRule method +func (r *Mock) MockMailReorderMailUserMailboxRule(f func(ctx context.Context, request *ReorderMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ReorderMailUserMailboxRuleResp, *Response, error)) { + r.mockMailReorderMailUserMailboxRule = f } -// UnMockMailCreateMailUserMailboxRuleReorder un-mock MailCreateMailUserMailboxRuleReorder method -func (r *Mock) UnMockMailCreateMailUserMailboxRuleReorder() { - r.mockMailCreateMailUserMailboxRuleReorder = nil +// UnMockMailReorderMailUserMailboxRule un-mock MailReorderMailUserMailboxRule method +func (r *Mock) UnMockMailReorderMailUserMailboxRule() { + r.mockMailReorderMailUserMailboxRule = nil } -// CreateMailUserMailboxRuleReorderReq ... -type CreateMailUserMailboxRuleReorderReq struct { +// ReorderMailUserMailboxRuleReq ... +type ReorderMailUserMailboxRuleReq struct { UserMailboxID string `path:"user_mailbox_id" json:"-"` // 用户邮箱地址, 使用 user_access_token 时可使用 me示例值: "user@xxx.xx 或 me" RuleIDs []string `json:"rule_ids,omitempty"` // 规则 id 列表, 获取方式见 [列出收信规则](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-rule/list)示例值: ["11111111"] 最小长度: `1` } -// CreateMailUserMailboxRuleReorderResp ... -type CreateMailUserMailboxRuleReorderResp struct { +// ReorderMailUserMailboxRuleResp ... +type ReorderMailUserMailboxRuleResp struct { } -// createMailUserMailboxRuleReorderResp ... -type createMailUserMailboxRuleReorderResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreateMailUserMailboxRuleReorderResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// reorderMailUserMailboxRuleResp ... +type reorderMailUserMailboxRuleResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *ReorderMailUserMailboxRuleResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_passport_session_logout.go b/api_passport_session_logout.go index 2f9901bd..9895b608 100644 --- a/api_passport_session_logout.go +++ b/api_passport_session_logout.go @@ -21,43 +21,43 @@ import ( "context" ) -// CreatePassportSessionLogout 该接口用于退出用户的登录态 +// LogoutPassportSession 该接口用于退出用户的登录态 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/passport-v1/session/logout // new doc: https://open.feishu.cn/document/authentication-management/login-state-management/logout -func (r *PassportService) CreatePassportSessionLogout(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) { - if r.cli.mock.mockPassportCreatePassportSessionLogout != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Passport#CreatePassportSessionLogout mock enable") - return r.cli.mock.mockPassportCreatePassportSessionLogout(ctx, request, options...) +func (r *PassportService) LogoutPassportSession(ctx context.Context, request *LogoutPassportSessionReq, options ...MethodOptionFunc) (*LogoutPassportSessionResp, *Response, error) { + if r.cli.mock.mockPassportLogoutPassportSession != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Passport#LogoutPassportSession mock enable") + return r.cli.mock.mockPassportLogoutPassportSession(ctx, request, options...) } req := &RawRequestReq{ Scope: "Passport", - API: "CreatePassportSessionLogout", + API: "LogoutPassportSession", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/passport/v1/sessions/logout", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createPassportSessionLogoutResp) + resp := new(logoutPassportSessionResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockPassportCreatePassportSessionLogout mock PassportCreatePassportSessionLogout method -func (r *Mock) MockPassportCreatePassportSessionLogout(f func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error)) { - r.mockPassportCreatePassportSessionLogout = f +// MockPassportLogoutPassportSession mock PassportLogoutPassportSession method +func (r *Mock) MockPassportLogoutPassportSession(f func(ctx context.Context, request *LogoutPassportSessionReq, options ...MethodOptionFunc) (*LogoutPassportSessionResp, *Response, error)) { + r.mockPassportLogoutPassportSession = f } -// UnMockPassportCreatePassportSessionLogout un-mock PassportCreatePassportSessionLogout method -func (r *Mock) UnMockPassportCreatePassportSessionLogout() { - r.mockPassportCreatePassportSessionLogout = nil +// UnMockPassportLogoutPassportSession un-mock PassportLogoutPassportSession method +func (r *Mock) UnMockPassportLogoutPassportSession() { + r.mockPassportLogoutPassportSession = nil } -// CreatePassportSessionLogoutReq ... -type CreatePassportSessionLogoutReq struct { +// LogoutPassportSessionReq ... +type LogoutPassportSessionReq struct { UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型示例值: open_id可选值有: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)默认值: `open_id`当值为 `user_id`, 字段权限要求: 获取用户 user ID IdpCredentialID *string `json:"idp_credential_id,omitempty"` // idp 侧的唯一标识, logout_type = 2 时必填示例值: "user@xxx.xx" LogoutType int64 `json:"logout_type,omitempty"` // 登出的方式示例值: 1可选值有: UserID, 使用开放平台的维度登出IdpCredentialID, 使用 idp 侧的唯一标识登出Session 标识符, 基于session uuid 登出 @@ -67,14 +67,14 @@ type CreatePassportSessionLogoutReq struct { Sid *string `json:"sid,omitempty"` // 需要精确登出的 session 标识符, logout_type = 3 时必填示例值: "AAAAAAAAAANll6nQoIAAFA[" } -// CreatePassportSessionLogoutResp ... -type CreatePassportSessionLogoutResp struct { +// LogoutPassportSessionResp ... +type LogoutPassportSessionResp struct { } -// createPassportSessionLogoutResp ... -type createPassportSessionLogoutResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *CreatePassportSessionLogoutResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// logoutPassportSessionResp ... +type logoutPassportSessionResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *LogoutPassportSessionResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_search_doc_wiki_search.go b/api_search_doc_wiki_search.go index 0bd17ea6..d47c55ee 100644 --- a/api_search_doc_wiki_search.go +++ b/api_search_doc_wiki_search.go @@ -21,113 +21,113 @@ import ( "context" ) -// SearchSearchDocWiki 该接口用于根据搜索关键词(query)对当前用户可见的云文档进行搜索 +// SearchDocWiki 该接口用于根据搜索关键词(query)对当前用户可见的云文档进行搜索 // // doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/search-v2/doc_wiki/search -func (r *SearchService) SearchSearchDocWiki(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) { - if r.cli.mock.mockSearchSearchSearchDocWiki != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] Search#SearchSearchDocWiki mock enable") - return r.cli.mock.mockSearchSearchSearchDocWiki(ctx, request, options...) +func (r *SearchService) SearchDocWiki(ctx context.Context, request *SearchDocWikiReq, options ...MethodOptionFunc) (*SearchDocWikiResp, *Response, error) { + if r.cli.mock.mockSearchSearchDocWiki != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] Search#SearchDocWiki mock enable") + return r.cli.mock.mockSearchSearchDocWiki(ctx, request, options...) } req := &RawRequestReq{ Scope: "Search", - API: "SearchSearchDocWiki", + API: "SearchDocWiki", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/search/v2/doc_wiki/search", Body: request, MethodOption: newMethodOption(options), NeedUserAccessToken: true, } - resp := new(searchSearchDocWikiResp) + resp := new(searchDocWikiResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockSearchSearchSearchDocWiki mock SearchSearchSearchDocWiki method -func (r *Mock) MockSearchSearchSearchDocWiki(f func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error)) { - r.mockSearchSearchSearchDocWiki = f +// MockSearchSearchDocWiki mock SearchSearchDocWiki method +func (r *Mock) MockSearchSearchDocWiki(f func(ctx context.Context, request *SearchDocWikiReq, options ...MethodOptionFunc) (*SearchDocWikiResp, *Response, error)) { + r.mockSearchSearchDocWiki = f } -// UnMockSearchSearchSearchDocWiki un-mock SearchSearchSearchDocWiki method -func (r *Mock) UnMockSearchSearchSearchDocWiki() { - r.mockSearchSearchSearchDocWiki = nil +// UnMockSearchSearchDocWiki un-mock SearchSearchDocWiki method +func (r *Mock) UnMockSearchSearchDocWiki() { + r.mockSearchSearchDocWiki = nil } -// SearchSearchDocWikiReq ... -type SearchSearchDocWikiReq struct { - Query string `json:"query,omitempty"` // 搜索关键词(query至少搭配一种doc/wiki筛选器)示例值: "飞书文档使用指南" 长度范围: `0` ~ `50` 字符 - DocFilter *SearchSearchDocWikiReqDocFilter `json:"doc_filter,omitempty"` // 文档过滤参数示例值: {"folder_tokens": ["fld_123456"]} - WikiFilter *SearchSearchDocWikiReqWikiFilter `json:"wiki_filter,omitempty"` // Wiki过滤参数示例值: {"creator_ids": ["ou_789012"], "space_ids": ["space_123456"]} - PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "token_1234567890fedcba" - PageSize *int64 `json:"page_size,omitempty"` // 分页大小示例值: 15默认值: `0` 取值范围: `0` ~ `20` +// SearchDocWikiReq ... +type SearchDocWikiReq struct { + Query string `json:"query,omitempty"` // 搜索关键词(query至少搭配一种doc/wiki筛选器)示例值: "飞书文档使用指南" 长度范围: `0` ~ `50` 字符 + DocFilter *SearchDocWikiReqDocFilter `json:"doc_filter,omitempty"` // 文档过滤参数示例值: {"folder_tokens": ["fld_123456"]} + WikiFilter *SearchDocWikiReqWikiFilter `json:"wiki_filter,omitempty"` // Wiki过滤参数示例值: {"creator_ids": ["ou_789012"], "space_ids": ["space_123456"]} + PageToken *string `json:"page_token,omitempty"` // 分页标记, 第一次请求不填, 表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token, 下次遍历可采用该 page_token 获取查询结果示例值: "token_1234567890fedcba" + PageSize *int64 `json:"page_size,omitempty"` // 分页大小示例值: 15默认值: `0` 取值范围: `0` ~ `20` } -// SearchSearchDocWikiReqDocFilter ... -type SearchSearchDocWikiReqDocFilter struct { - CreatorIDs []string `json:"creator_ids,omitempty"` // 文档所有者OpenID示例值: ["ou_789012"] 长度范围: `0` ~ `20` - DocTypes []string `json:"doc_types,omitempty"` // 文档类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件wiki新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` - FolderTokens []string `json:"folder_tokens,omitempty"` // 搜索文件夹内的文档(文件夹token列表)注: 如果存在该字段则wiki筛选器失效示例值: ["fld_123456"] 长度范围: `0` ~ `50` - OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜文档标题示例值: false默认值: `false` - OpenTime *SearchSearchDocWikiReqDocFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) - SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) - CreateTime *SearchSearchDocWikiReqDocFilterCreateTime `json:"create_time,omitempty"` // 文档创建的时间范围(秒级时间戳, 包含start和end字段) +// SearchDocWikiReqDocFilter ... +type SearchDocWikiReqDocFilter struct { + CreatorIDs []string `json:"creator_ids,omitempty"` // 文档所有者OpenID示例值: ["ou_789012"] 长度范围: `0` ~ `20` + DocTypes []string `json:"doc_types,omitempty"` // 文档类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件wiki新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` + FolderTokens []string `json:"folder_tokens,omitempty"` // 搜索文件夹内的文档(文件夹token列表)注: 如果存在该字段则wiki筛选器失效示例值: ["fld_123456"] 长度范围: `0` ~ `50` + OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜文档标题示例值: false默认值: `false` + OpenTime *SearchDocWikiReqDocFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) + SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) + CreateTime *SearchDocWikiReqDocFilterCreateTime `json:"create_time,omitempty"` // 文档创建的时间范围(秒级时间戳, 包含start和end字段) } -// SearchSearchDocWikiReqDocFilterCreateTime ... -type SearchSearchDocWikiReqDocFilterCreateTime struct { +// SearchDocWikiReqDocFilterCreateTime ... +type SearchDocWikiReqDocFilterCreateTime struct { Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` } -// SearchSearchDocWikiReqDocFilterOpenTime ... -type SearchSearchDocWikiReqDocFilterOpenTime struct { +// SearchDocWikiReqDocFilterOpenTime ... +type SearchDocWikiReqDocFilterOpenTime struct { Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` } -// SearchSearchDocWikiReqWikiFilter ... -type SearchSearchDocWikiReqWikiFilter struct { - CreatorIDs []string `json:"creator_ids,omitempty"` // Wiki所有者OpenID示例值: ["ou_7890123456abcdef"] 长度范围: `0` ~ `20` - DocTypes []string `json:"doc_types,omitempty"` // Wiki类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件维基新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` - SpaceIDs []string `json:"space_ids,omitempty"` // 搜索某个Space下的Wiki(Space ID列表)示例值: ["space_1234567890fedcba"] 长度范围: `0` ~ `50` - OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜Wiki标题示例值: false默认值: `false` - OpenTime *SearchSearchDocWikiReqWikiFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) - SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) - CreateTime *SearchSearchDocWikiReqWikiFilterCreateTime `json:"create_time,omitempty"` // Wiki创建的时间范围(秒级时间戳, 包含start和end字段) +// SearchDocWikiReqWikiFilter ... +type SearchDocWikiReqWikiFilter struct { + CreatorIDs []string `json:"creator_ids,omitempty"` // Wiki所有者OpenID示例值: ["ou_7890123456abcdef"] 长度范围: `0` ~ `20` + DocTypes []string `json:"doc_types,omitempty"` // Wiki类型示例值: ["SHORTCUT"]可选值有: 文档表格多维表格思维导图文件维基新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 长度范围: `0` ~ `10` + SpaceIDs []string `json:"space_ids,omitempty"` // 搜索某个Space下的Wiki(Space ID列表)示例值: ["space_1234567890fedcba"] 长度范围: `0` ~ `50` + OnlyTitle *bool `json:"only_title,omitempty"` // 仅搜Wiki标题示例值: false默认值: `false` + OpenTime *SearchDocWikiReqWikiFilterOpenTime `json:"open_time,omitempty"` // 浏览文档的时间范围(秒级时间戳, 包含start和end字段) + SortType *string `json:"sort_type,omitempty"` // 排序方式示例值: "CREATE_TIME"可选值有: 默认排序User打开时间排序User编辑时间降序User编辑时间升序实体创建时间升序实体创建时间降序按文档创建时间排序按文档创建时间正序(该排序暂不支持) + CreateTime *SearchDocWikiReqWikiFilterCreateTime `json:"create_time,omitempty"` // Wiki创建的时间范围(秒级时间戳, 包含start和end字段) } -// SearchSearchDocWikiReqWikiFilterCreateTime ... -type SearchSearchDocWikiReqWikiFilterCreateTime struct { +// SearchDocWikiReqWikiFilterCreateTime ... +type SearchDocWikiReqWikiFilterCreateTime struct { Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` } -// SearchSearchDocWikiReqWikiFilterOpenTime ... -type SearchSearchDocWikiReqWikiFilterOpenTime struct { +// SearchDocWikiReqWikiFilterOpenTime ... +type SearchDocWikiReqWikiFilterOpenTime struct { Start *int64 `json:"start,omitempty"` // 时间范围的起始时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` End *int64 `json:"end,omitempty"` // 时间范围的截止时间戳示例值: 1742348544 取值范围: `0` ~ `9223372036854775807` } -// SearchSearchDocWikiResp ... -type SearchSearchDocWikiResp struct { - Total int64 `json:"total,omitempty"` // 匹配结果总数(辅助分页参考) - HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 - ResUnits []*SearchSearchDocWikiRespResUnit `json:"res_units,omitempty"` // 搜索结果列表 - PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token +// SearchDocWikiResp ... +type SearchDocWikiResp struct { + Total int64 `json:"total,omitempty"` // 匹配结果总数(辅助分页参考) + HasMore bool `json:"has_more,omitempty"` // 是否还有更多项 + ResUnits []*SearchDocWikiRespResUnit `json:"res_units,omitempty"` // 搜索结果列表 + PageToken string `json:"page_token,omitempty"` // 分页标记, 当 has_more 为 true 时, 会同时返回新的 page_token, 否则不返回 page_token } -// SearchSearchDocWikiRespResUnit ... -type SearchSearchDocWikiRespResUnit struct { - TitleHighlighted string `json:"title_highlighted,omitempty"` // 标题高亮 - SummaryHighlighted string `json:"summary_highlighted,omitempty"` // 摘要高亮 - EntityType string `json:"entity_type,omitempty"` // 结果类型可选值有: doc实体wiki类型 - ResultMeta *SearchSearchDocWikiRespResUnitResultMeta `json:"result_meta,omitempty"` // 文档搜索元信息 +// SearchDocWikiRespResUnit ... +type SearchDocWikiRespResUnit struct { + TitleHighlighted string `json:"title_highlighted,omitempty"` // 标题高亮 + SummaryHighlighted string `json:"summary_highlighted,omitempty"` // 摘要高亮 + EntityType string `json:"entity_type,omitempty"` // 结果类型可选值有: doc实体wiki类型 + ResultMeta *SearchDocWikiRespResUnitResultMeta `json:"result_meta,omitempty"` // 文档搜索元信息 } -// SearchSearchDocWikiRespResUnitResultMeta ... -type SearchSearchDocWikiRespResUnitResultMeta struct { +// SearchDocWikiRespResUnitResultMeta ... +type SearchDocWikiRespResUnitResultMeta struct { DocTypes string `json:"doc_types,omitempty"` // 文档类型可选值有: 文档表格多维表格思维导图文件维基新版文档space文件夹wiki2.0文件夹新版本幻灯片快捷方式 UpdateTime int64 `json:"update_time,omitempty"` // 更新时间戳(秒) URL string `json:"url,omitempty"` // 文档链接 @@ -141,10 +141,10 @@ type SearchSearchDocWikiRespResUnitResultMeta struct { Token string `json:"token,omitempty"` // 文档token } -// searchSearchDocWikiResp ... -type searchSearchDocWikiResp struct { - Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 错误描述 - Data *SearchSearchDocWikiResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// searchDocWikiResp ... +type searchDocWikiResp struct { + Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 错误描述 + Data *SearchDocWikiResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_batch_get.go b/api_vc_meeting_default_building_batch_get.go index a52ffd97..9390bb85 100644 --- a/api_vc_meeting_default_building_batch_get.go +++ b/api_vc_meeting_default_building_batch_get.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) { - if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGet mock enable") - return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet(ctx, request, options...) + if r.cli.mock.mockVCGetVCMeetingDefaultBuildingBatchGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#GetVCMeetingDefaultBuildingBatchGet mock enable") + return r.cli.mock.mockVCGetVCMeetingDefaultBuildingBatchGet(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) GetVCMeetingDefaultBuildingBatchGet(ctx context.Context, req return resp.Data, response, err } -// MockVCMeetingGetVCMeetingDefaultBuildingBatchGet mock VCMeetingGetVCMeetingDefaultBuildingBatchGet method -func (r *Mock) MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error)) { - r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet = f +// MockVCGetVCMeetingDefaultBuildingBatchGet mock VCGetVCMeetingDefaultBuildingBatchGet method +func (r *Mock) MockVCGetVCMeetingDefaultBuildingBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error)) { + r.mockVCGetVCMeetingDefaultBuildingBatchGet = f } -// UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet un-mock VCMeetingGetVCMeetingDefaultBuildingBatchGet method -func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() { - r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGet = nil +// UnMockVCGetVCMeetingDefaultBuildingBatchGet un-mock VCGetVCMeetingDefaultBuildingBatchGet method +func (r *Mock) UnMockVCGetVCMeetingDefaultBuildingBatchGet() { + r.mockVCGetVCMeetingDefaultBuildingBatchGet = nil } // GetVCMeetingDefaultBuildingBatchGetReq ... diff --git a/api_vc_meeting_default_building_batch_get_id.go b/api_vc_meeting_default_building_batch_get_id.go index 94c5bd8a..601b2038 100644 --- a/api_vc_meeting_default_building_batch_get_id.go +++ b/api_vc_meeting_default_building_batch_get_id.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) { - if r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultBuildingBatchGetID mock enable") - return r.cli.mock.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(ctx, request, options...) + if r.cli.mock.mockVCGetVCMeetingDefaultBuildingBatchGetID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#GetVCMeetingDefaultBuildingBatchGetID mock enable") + return r.cli.mock.mockVCGetVCMeetingDefaultBuildingBatchGetID(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) GetVCMeetingDefaultBuildingBatchGetID(ctx context.Context, r return resp.Data, response, err } -// MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID mock VCMeetingGetVCMeetingDefaultBuildingBatchGetID method -func (r *Mock) MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error)) { - r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID = f +// MockVCGetVCMeetingDefaultBuildingBatchGetID mock VCGetVCMeetingDefaultBuildingBatchGetID method +func (r *Mock) MockVCGetVCMeetingDefaultBuildingBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error)) { + r.mockVCGetVCMeetingDefaultBuildingBatchGetID = f } -// UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID un-mock VCMeetingGetVCMeetingDefaultBuildingBatchGetID method -func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() { - r.mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID = nil +// UnMockVCGetVCMeetingDefaultBuildingBatchGetID un-mock VCGetVCMeetingDefaultBuildingBatchGetID method +func (r *Mock) UnMockVCGetVCMeetingDefaultBuildingBatchGetID() { + r.mockVCGetVCMeetingDefaultBuildingBatchGetID = nil } // GetVCMeetingDefaultBuildingBatchGetIDReq ... diff --git a/api_vc_meeting_default_building_create.go b/api_vc_meeting_default_building_create.go index 59c0a5b8..762e23c4 100644 --- a/api_vc_meeting_default_building_create.go +++ b/api_vc_meeting_default_building_create.go @@ -21,45 +21,45 @@ import ( "context" ) -// CreateVCMeetingDefaultBuildingCreate 该接口对应管理后台的添加建筑, 添加楼层的功能, 可用于创建建筑物和建筑物的楼层信息。 +// CreateVCMeetingDefaultBuilding 该接口对应管理后台的添加建筑, 添加楼层的功能, 可用于创建建筑物和建筑物的楼层信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uATNwYjLwUDM24CM1AjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-building // // Deprecated -func (r *VCService) CreateVCMeetingDefaultBuildingCreate(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingCreate mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingCreate(ctx, request, options...) +func (r *VCService) CreateVCMeetingDefaultBuilding(ctx context.Context, request *CreateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingResp, *Response, error) { + if r.cli.mock.mockVCCreateVCMeetingDefaultBuilding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#CreateVCMeetingDefaultBuilding mock enable") + return r.cli.mock.mockVCCreateVCMeetingDefaultBuilding(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultBuildingCreate", + API: "CreateVCMeetingDefaultBuilding", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/create", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultBuildingCreateResp) + resp := new(createVCMeetingDefaultBuildingResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultBuildingCreate mock VCMeetingCreateVCMeetingDefaultBuildingCreate method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingCreate(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultBuildingCreate = f +// MockVCCreateVCMeetingDefaultBuilding mock VCCreateVCMeetingDefaultBuilding method +func (r *Mock) MockVCCreateVCMeetingDefaultBuilding(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingResp, *Response, error)) { + r.mockVCCreateVCMeetingDefaultBuilding = f } -// UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate un-mock VCMeetingCreateVCMeetingDefaultBuildingCreate method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() { - r.mockVCMeetingCreateVCMeetingDefaultBuildingCreate = nil +// UnMockVCCreateVCMeetingDefaultBuilding un-mock VCCreateVCMeetingDefaultBuilding method +func (r *Mock) UnMockVCCreateVCMeetingDefaultBuilding() { + r.mockVCCreateVCMeetingDefaultBuilding = nil } -// CreateVCMeetingDefaultBuildingCreateReq ... -type CreateVCMeetingDefaultBuildingCreateReq struct { +// CreateVCMeetingDefaultBuildingReq ... +type CreateVCMeetingDefaultBuildingReq struct { Name string `json:"name,omitempty"` // 建筑名称 Floors []string `json:"floors,omitempty"` // 楼层列表 CountryID string `json:"country_id,omitempty"` // 国家/地区ID @@ -67,15 +67,15 @@ type CreateVCMeetingDefaultBuildingCreateReq struct { CustomBuildingID *string `json:"custom_building_id,omitempty"` // 租户自定义建筑ID } -// CreateVCMeetingDefaultBuildingCreateResp ... -type CreateVCMeetingDefaultBuildingCreateResp struct { +// CreateVCMeetingDefaultBuildingResp ... +type CreateVCMeetingDefaultBuildingResp struct { BuildingID string `json:"building_id,omitempty"` // 成功创建的建筑ID } -// createVCMeetingDefaultBuildingCreateResp ... -type createVCMeetingDefaultBuildingCreateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingCreateResp `json:"data,omitempty"` // 返回业务信息 - Error *ErrorDetail `json:"error,omitempty"` +// createVCMeetingDefaultBuildingResp ... +type createVCMeetingDefaultBuildingResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultBuildingResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_delete.go b/api_vc_meeting_default_building_delete.go index f87a24a0..71a99aed 100644 --- a/api_vc_meeting_default_building_delete.go +++ b/api_vc_meeting_default_building_delete.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateVCMeetingDefaultBuildingDelete 该接口用于删除建筑物(办公大楼)。 +// DeleteVCMeetingDefaultBuilding 该接口用于删除建筑物(办公大楼)。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzMxYjLzMTM24yMzEjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-building // // Deprecated -func (r *VCService) CreateVCMeetingDefaultBuildingDelete(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingDelete mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingDelete(ctx, request, options...) +func (r *VCService) DeleteVCMeetingDefaultBuilding(ctx context.Context, request *DeleteVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultBuildingResp, *Response, error) { + if r.cli.mock.mockVCDeleteVCMeetingDefaultBuilding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#DeleteVCMeetingDefaultBuilding mock enable") + return r.cli.mock.mockVCDeleteVCMeetingDefaultBuilding(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultBuildingDelete", + API: "DeleteVCMeetingDefaultBuilding", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/delete", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultBuildingDeleteResp) + resp := new(deleteVCMeetingDefaultBuildingResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultBuildingDelete mock VCMeetingCreateVCMeetingDefaultBuildingDelete method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingDelete(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultBuildingDelete = f +// MockVCDeleteVCMeetingDefaultBuilding mock VCDeleteVCMeetingDefaultBuilding method +func (r *Mock) MockVCDeleteVCMeetingDefaultBuilding(f func(ctx context.Context, request *DeleteVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultBuildingResp, *Response, error)) { + r.mockVCDeleteVCMeetingDefaultBuilding = f } -// UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete un-mock VCMeetingCreateVCMeetingDefaultBuildingDelete method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete() { - r.mockVCMeetingCreateVCMeetingDefaultBuildingDelete = nil +// UnMockVCDeleteVCMeetingDefaultBuilding un-mock VCDeleteVCMeetingDefaultBuilding method +func (r *Mock) UnMockVCDeleteVCMeetingDefaultBuilding() { + r.mockVCDeleteVCMeetingDefaultBuilding = nil } -// CreateVCMeetingDefaultBuildingDeleteReq ... -type CreateVCMeetingDefaultBuildingDeleteReq struct { +// DeleteVCMeetingDefaultBuildingReq ... +type DeleteVCMeetingDefaultBuildingReq struct { BuildingID string `json:"building_id,omitempty"` // 要删除的建筑ID } -// CreateVCMeetingDefaultBuildingDeleteResp ... -type CreateVCMeetingDefaultBuildingDeleteResp struct { +// DeleteVCMeetingDefaultBuildingResp ... +type DeleteVCMeetingDefaultBuildingResp struct { } -// createVCMeetingDefaultBuildingDeleteResp ... -type createVCMeetingDefaultBuildingDeleteResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingDeleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteVCMeetingDefaultBuildingResp ... +type deleteVCMeetingDefaultBuildingResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *DeleteVCMeetingDefaultBuildingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_building_list.go b/api_vc_meeting_default_building_list.go index 4048e5cd..c550a5cd 100644 --- a/api_vc_meeting_default_building_list.go +++ b/api_vc_meeting_default_building_list.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) ListVCMeetingDefaultBuilding(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) { - if r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultBuilding mock enable") - return r.cli.mock.mockVCMeetingListVCMeetingDefaultBuilding(ctx, request, options...) + if r.cli.mock.mockVCListVCMeetingDefaultBuilding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#ListVCMeetingDefaultBuilding mock enable") + return r.cli.mock.mockVCListVCMeetingDefaultBuilding(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) ListVCMeetingDefaultBuilding(ctx context.Context, request *L return resp.Data, response, err } -// MockVCMeetingListVCMeetingDefaultBuilding mock VCMeetingListVCMeetingDefaultBuilding method -func (r *Mock) MockVCMeetingListVCMeetingDefaultBuilding(f func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error)) { - r.mockVCMeetingListVCMeetingDefaultBuilding = f +// MockVCListVCMeetingDefaultBuilding mock VCListVCMeetingDefaultBuilding method +func (r *Mock) MockVCListVCMeetingDefaultBuilding(f func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error)) { + r.mockVCListVCMeetingDefaultBuilding = f } -// UnMockVCMeetingListVCMeetingDefaultBuilding un-mock VCMeetingListVCMeetingDefaultBuilding method -func (r *Mock) UnMockVCMeetingListVCMeetingDefaultBuilding() { - r.mockVCMeetingListVCMeetingDefaultBuilding = nil +// UnMockVCListVCMeetingDefaultBuilding un-mock VCListVCMeetingDefaultBuilding method +func (r *Mock) UnMockVCListVCMeetingDefaultBuilding() { + r.mockVCListVCMeetingDefaultBuilding = nil } // ListVCMeetingDefaultBuildingReq ... diff --git a/api_vc_meeting_default_building_update.go b/api_vc_meeting_default_building_update.go index 85def24e..23791bd2 100644 --- a/api_vc_meeting_default_building_update.go +++ b/api_vc_meeting_default_building_update.go @@ -21,45 +21,45 @@ import ( "context" ) -// CreateVCMeetingDefaultBuildingUpdate 该接口用于编辑建筑信息, 添加楼层, 删除楼层, 编辑楼层信息。 +// UpdateVCMeetingDefaultBuilding 该接口用于编辑建筑信息, 添加楼层, 删除楼层, 编辑楼层信息。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uETNwYjLxUDM24SM1AjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-building // // Deprecated -func (r *VCService) CreateVCMeetingDefaultBuildingUpdate(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultBuildingUpdate mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate(ctx, request, options...) +func (r *VCService) UpdateVCMeetingDefaultBuilding(ctx context.Context, request *UpdateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultBuildingResp, *Response, error) { + if r.cli.mock.mockVCUpdateVCMeetingDefaultBuilding != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#UpdateVCMeetingDefaultBuilding mock enable") + return r.cli.mock.mockVCUpdateVCMeetingDefaultBuilding(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultBuildingUpdate", + API: "UpdateVCMeetingDefaultBuilding", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/building/update", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultBuildingUpdateResp) + resp := new(updateVCMeetingDefaultBuildingResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultBuildingUpdate mock VCMeetingCreateVCMeetingDefaultBuildingUpdate method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(f func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate = f +// MockVCUpdateVCMeetingDefaultBuilding mock VCUpdateVCMeetingDefaultBuilding method +func (r *Mock) MockVCUpdateVCMeetingDefaultBuilding(f func(ctx context.Context, request *UpdateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultBuildingResp, *Response, error)) { + r.mockVCUpdateVCMeetingDefaultBuilding = f } -// UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate un-mock VCMeetingCreateVCMeetingDefaultBuildingUpdate method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() { - r.mockVCMeetingCreateVCMeetingDefaultBuildingUpdate = nil +// UnMockVCUpdateVCMeetingDefaultBuilding un-mock VCUpdateVCMeetingDefaultBuilding method +func (r *Mock) UnMockVCUpdateVCMeetingDefaultBuilding() { + r.mockVCUpdateVCMeetingDefaultBuilding = nil } -// CreateVCMeetingDefaultBuildingUpdateReq ... -type CreateVCMeetingDefaultBuildingUpdateReq struct { +// UpdateVCMeetingDefaultBuildingReq ... +type UpdateVCMeetingDefaultBuildingReq struct { BuildingID string `json:"building_id,omitempty"` // 要更新的建筑ID Name *string `json:"name,omitempty"` // 建筑名称 Floors []string `json:"floors,omitempty"` // 楼层列表 @@ -68,14 +68,14 @@ type CreateVCMeetingDefaultBuildingUpdateReq struct { CustomBuildingID *string `json:"custom_building_id,omitempty"` // 租户自定义建筑ID } -// CreateVCMeetingDefaultBuildingUpdateResp ... -type CreateVCMeetingDefaultBuildingUpdateResp struct { +// UpdateVCMeetingDefaultBuildingResp ... +type UpdateVCMeetingDefaultBuildingResp struct { } -// createVCMeetingDefaultBuildingUpdateResp ... -type createVCMeetingDefaultBuildingUpdateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultBuildingUpdateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateVCMeetingDefaultBuildingResp ... +type updateVCMeetingDefaultBuildingResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *UpdateVCMeetingDefaultBuildingResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_country_list.go b/api_vc_meeting_default_country_list.go index 488ae960..652f2e34 100644 --- a/api_vc_meeting_default_country_list.go +++ b/api_vc_meeting_default_country_list.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) ListVCMeetingDefaultCountry(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) { - if r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultCountry mock enable") - return r.cli.mock.mockVCMeetingListVCMeetingDefaultCountry(ctx, request, options...) + if r.cli.mock.mockVCListVCMeetingDefaultCountry != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#ListVCMeetingDefaultCountry mock enable") + return r.cli.mock.mockVCListVCMeetingDefaultCountry(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) ListVCMeetingDefaultCountry(ctx context.Context, request *Li return resp.Data, response, err } -// MockVCMeetingListVCMeetingDefaultCountry mock VCMeetingListVCMeetingDefaultCountry method -func (r *Mock) MockVCMeetingListVCMeetingDefaultCountry(f func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error)) { - r.mockVCMeetingListVCMeetingDefaultCountry = f +// MockVCListVCMeetingDefaultCountry mock VCListVCMeetingDefaultCountry method +func (r *Mock) MockVCListVCMeetingDefaultCountry(f func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error)) { + r.mockVCListVCMeetingDefaultCountry = f } -// UnMockVCMeetingListVCMeetingDefaultCountry un-mock VCMeetingListVCMeetingDefaultCountry method -func (r *Mock) UnMockVCMeetingListVCMeetingDefaultCountry() { - r.mockVCMeetingListVCMeetingDefaultCountry = nil +// UnMockVCListVCMeetingDefaultCountry un-mock VCListVCMeetingDefaultCountry method +func (r *Mock) UnMockVCListVCMeetingDefaultCountry() { + r.mockVCListVCMeetingDefaultCountry = nil } // ListVCMeetingDefaultCountryReq ... diff --git a/api_vc_meeting_default_district_list.go b/api_vc_meeting_default_district_list.go index 6f6d0c1a..59fa7844 100644 --- a/api_vc_meeting_default_district_list.go +++ b/api_vc_meeting_default_district_list.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) ListVCMeetingDefaultDistrict(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) { - if r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultDistrict mock enable") - return r.cli.mock.mockVCMeetingListVCMeetingDefaultDistrict(ctx, request, options...) + if r.cli.mock.mockVCListVCMeetingDefaultDistrict != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#ListVCMeetingDefaultDistrict mock enable") + return r.cli.mock.mockVCListVCMeetingDefaultDistrict(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) ListVCMeetingDefaultDistrict(ctx context.Context, request *L return resp.Data, response, err } -// MockVCMeetingListVCMeetingDefaultDistrict mock VCMeetingListVCMeetingDefaultDistrict method -func (r *Mock) MockVCMeetingListVCMeetingDefaultDistrict(f func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error)) { - r.mockVCMeetingListVCMeetingDefaultDistrict = f +// MockVCListVCMeetingDefaultDistrict mock VCListVCMeetingDefaultDistrict method +func (r *Mock) MockVCListVCMeetingDefaultDistrict(f func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error)) { + r.mockVCListVCMeetingDefaultDistrict = f } -// UnMockVCMeetingListVCMeetingDefaultDistrict un-mock VCMeetingListVCMeetingDefaultDistrict method -func (r *Mock) UnMockVCMeetingListVCMeetingDefaultDistrict() { - r.mockVCMeetingListVCMeetingDefaultDistrict = nil +// UnMockVCListVCMeetingDefaultDistrict un-mock VCListVCMeetingDefaultDistrict method +func (r *Mock) UnMockVCListVCMeetingDefaultDistrict() { + r.mockVCListVCMeetingDefaultDistrict = nil } // ListVCMeetingDefaultDistrictReq ... diff --git a/api_vc_meeting_default_room_batch_get.go b/api_vc_meeting_default_room_batch_get.go index 4ea141cd..3b3e8186 100644 --- a/api_vc_meeting_default_room_batch_get.go +++ b/api_vc_meeting_default_room_batch_get.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) { - if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGet mock enable") - return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGet(ctx, request, options...) + if r.cli.mock.mockVCGetVCMeetingDefaultRoomBatchGet != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#GetVCMeetingDefaultRoomBatchGet mock enable") + return r.cli.mock.mockVCGetVCMeetingDefaultRoomBatchGet(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) GetVCMeetingDefaultRoomBatchGet(ctx context.Context, request return resp.Data, response, err } -// MockVCMeetingGetVCMeetingDefaultRoomBatchGet mock VCMeetingGetVCMeetingDefaultRoomBatchGet method -func (r *Mock) MockVCMeetingGetVCMeetingDefaultRoomBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error)) { - r.mockVCMeetingGetVCMeetingDefaultRoomBatchGet = f +// MockVCGetVCMeetingDefaultRoomBatchGet mock VCGetVCMeetingDefaultRoomBatchGet method +func (r *Mock) MockVCGetVCMeetingDefaultRoomBatchGet(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error)) { + r.mockVCGetVCMeetingDefaultRoomBatchGet = f } -// UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet un-mock VCMeetingGetVCMeetingDefaultRoomBatchGet method -func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet() { - r.mockVCMeetingGetVCMeetingDefaultRoomBatchGet = nil +// UnMockVCGetVCMeetingDefaultRoomBatchGet un-mock VCGetVCMeetingDefaultRoomBatchGet method +func (r *Mock) UnMockVCGetVCMeetingDefaultRoomBatchGet() { + r.mockVCGetVCMeetingDefaultRoomBatchGet = nil } // GetVCMeetingDefaultRoomBatchGetReq ... diff --git a/api_vc_meeting_default_room_batch_get_id.go b/api_vc_meeting_default_room_batch_get_id.go index c6a9b04d..7cb8bffb 100644 --- a/api_vc_meeting_default_room_batch_get_id.go +++ b/api_vc_meeting_default_room_batch_get_id.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) { - if r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#GetVCMeetingDefaultRoomBatchGetID mock enable") - return r.cli.mock.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID(ctx, request, options...) + if r.cli.mock.mockVCGetVCMeetingDefaultRoomBatchGetID != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#GetVCMeetingDefaultRoomBatchGetID mock enable") + return r.cli.mock.mockVCGetVCMeetingDefaultRoomBatchGetID(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) GetVCMeetingDefaultRoomBatchGetID(ctx context.Context, reque return resp.Data, response, err } -// MockVCMeetingGetVCMeetingDefaultRoomBatchGetID mock VCMeetingGetVCMeetingDefaultRoomBatchGetID method -func (r *Mock) MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error)) { - r.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID = f +// MockVCGetVCMeetingDefaultRoomBatchGetID mock VCGetVCMeetingDefaultRoomBatchGetID method +func (r *Mock) MockVCGetVCMeetingDefaultRoomBatchGetID(f func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error)) { + r.mockVCGetVCMeetingDefaultRoomBatchGetID = f } -// UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID un-mock VCMeetingGetVCMeetingDefaultRoomBatchGetID method -func (r *Mock) UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() { - r.mockVCMeetingGetVCMeetingDefaultRoomBatchGetID = nil +// UnMockVCGetVCMeetingDefaultRoomBatchGetID un-mock VCGetVCMeetingDefaultRoomBatchGetID method +func (r *Mock) UnMockVCGetVCMeetingDefaultRoomBatchGetID() { + r.mockVCGetVCMeetingDefaultRoomBatchGetID = nil } // GetVCMeetingDefaultRoomBatchGetIDReq ... diff --git a/api_vc_meeting_default_room_create.go b/api_vc_meeting_default_room_create.go index 18654b35..2e963a21 100644 --- a/api_vc_meeting_default_room_create.go +++ b/api_vc_meeting_default_room_create.go @@ -21,45 +21,45 @@ import ( "context" ) -// CreateVCMeetingDefaultRoomCreate 该接口用于创建会议室。 +// CreateVCMeetingDefaultRoom 该接口用于创建会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uITNwYjLyUDM24iM1AjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/create-meeting-room // // Deprecated -func (r *VCService) CreateVCMeetingDefaultRoomCreate(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomCreate mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomCreate(ctx, request, options...) +func (r *VCService) CreateVCMeetingDefaultRoom(ctx context.Context, request *CreateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomResp, *Response, error) { + if r.cli.mock.mockVCCreateVCMeetingDefaultRoom != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#CreateVCMeetingDefaultRoom mock enable") + return r.cli.mock.mockVCCreateVCMeetingDefaultRoom(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultRoomCreate", + API: "CreateVCMeetingDefaultRoom", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/create", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultRoomCreateResp) + resp := new(createVCMeetingDefaultRoomResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultRoomCreate mock VCMeetingCreateVCMeetingDefaultRoomCreate method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomCreate(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultRoomCreate = f +// MockVCCreateVCMeetingDefaultRoom mock VCCreateVCMeetingDefaultRoom method +func (r *Mock) MockVCCreateVCMeetingDefaultRoom(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomResp, *Response, error)) { + r.mockVCCreateVCMeetingDefaultRoom = f } -// UnMockVCMeetingCreateVCMeetingDefaultRoomCreate un-mock VCMeetingCreateVCMeetingDefaultRoomCreate method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() { - r.mockVCMeetingCreateVCMeetingDefaultRoomCreate = nil +// UnMockVCCreateVCMeetingDefaultRoom un-mock VCCreateVCMeetingDefaultRoom method +func (r *Mock) UnMockVCCreateVCMeetingDefaultRoom() { + r.mockVCCreateVCMeetingDefaultRoom = nil } -// CreateVCMeetingDefaultRoomCreateReq ... -type CreateVCMeetingDefaultRoomCreateReq struct { +// CreateVCMeetingDefaultRoomReq ... +type CreateVCMeetingDefaultRoomReq struct { BuildingID string `json:"building_id,omitempty"` // 会议室所在的建筑ID Floor string `json:"floor,omitempty"` // 会议室所在的建筑楼层 Name string `json:"name,omitempty"` // 会议室名称 @@ -68,15 +68,15 @@ type CreateVCMeetingDefaultRoomCreateReq struct { CustomRoomID *string `json:"custom_room_id,omitempty"` // 租户自定义会议室ID } -// CreateVCMeetingDefaultRoomCreateResp ... -type CreateVCMeetingDefaultRoomCreateResp struct { +// CreateVCMeetingDefaultRoomResp ... +type CreateVCMeetingDefaultRoomResp struct { RoomID string `json:"room_id,omitempty"` // 成功创建的会议室ID } -// createVCMeetingDefaultRoomCreateResp ... -type createVCMeetingDefaultRoomCreateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomCreateResp `json:"data,omitempty"` // 返回业务信息 - Error *ErrorDetail `json:"error,omitempty"` +// createVCMeetingDefaultRoomResp ... +type createVCMeetingDefaultRoomResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *CreateVCMeetingDefaultRoomResp `json:"data,omitempty"` // 返回业务信息 + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_delete.go b/api_vc_meeting_default_room_delete.go index 26e5ec82..672ef085 100644 --- a/api_vc_meeting_default_room_delete.go +++ b/api_vc_meeting_default_room_delete.go @@ -21,56 +21,56 @@ import ( "context" ) -// CreateVCMeetingDefaultRoomDelete 该接口用于删除会议室。 +// DeleteVCMeetingDefaultRoom 该接口用于删除会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uUzMxYjL1MTM24SNzEjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/delete-meeting-room // // Deprecated -func (r *VCService) CreateVCMeetingDefaultRoomDelete(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomDelete mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomDelete(ctx, request, options...) +func (r *VCService) DeleteVCMeetingDefaultRoom(ctx context.Context, request *DeleteVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultRoomResp, *Response, error) { + if r.cli.mock.mockVCDeleteVCMeetingDefaultRoom != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#DeleteVCMeetingDefaultRoom mock enable") + return r.cli.mock.mockVCDeleteVCMeetingDefaultRoom(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultRoomDelete", + API: "DeleteVCMeetingDefaultRoom", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/delete", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultRoomDeleteResp) + resp := new(deleteVCMeetingDefaultRoomResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultRoomDelete mock VCMeetingCreateVCMeetingDefaultRoomDelete method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomDelete(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultRoomDelete = f +// MockVCDeleteVCMeetingDefaultRoom mock VCDeleteVCMeetingDefaultRoom method +func (r *Mock) MockVCDeleteVCMeetingDefaultRoom(f func(ctx context.Context, request *DeleteVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultRoomResp, *Response, error)) { + r.mockVCDeleteVCMeetingDefaultRoom = f } -// UnMockVCMeetingCreateVCMeetingDefaultRoomDelete un-mock VCMeetingCreateVCMeetingDefaultRoomDelete method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() { - r.mockVCMeetingCreateVCMeetingDefaultRoomDelete = nil +// UnMockVCDeleteVCMeetingDefaultRoom un-mock VCDeleteVCMeetingDefaultRoom method +func (r *Mock) UnMockVCDeleteVCMeetingDefaultRoom() { + r.mockVCDeleteVCMeetingDefaultRoom = nil } -// CreateVCMeetingDefaultRoomDeleteReq ... -type CreateVCMeetingDefaultRoomDeleteReq struct { +// DeleteVCMeetingDefaultRoomReq ... +type DeleteVCMeetingDefaultRoomReq struct { RoomID string `json:"room_id,omitempty"` // 要删除的会议室ID } -// CreateVCMeetingDefaultRoomDeleteResp ... -type CreateVCMeetingDefaultRoomDeleteResp struct { +// DeleteVCMeetingDefaultRoomResp ... +type DeleteVCMeetingDefaultRoomResp struct { } -// createVCMeetingDefaultRoomDeleteResp ... -type createVCMeetingDefaultRoomDeleteResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomDeleteResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// deleteVCMeetingDefaultRoomResp ... +type deleteVCMeetingDefaultRoomResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *DeleteVCMeetingDefaultRoomResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/api_vc_meeting_default_room_list.go b/api_vc_meeting_default_room_list.go index dad87d37..13622100 100644 --- a/api_vc_meeting_default_room_list.go +++ b/api_vc_meeting_default_room_list.go @@ -28,9 +28,9 @@ import ( // // Deprecated func (r *VCService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) { - if r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#ListVCMeetingDefaultRoom mock enable") - return r.cli.mock.mockVCMeetingListVCMeetingDefaultRoom(ctx, request, options...) + if r.cli.mock.mockVCListVCMeetingDefaultRoom != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#ListVCMeetingDefaultRoom mock enable") + return r.cli.mock.mockVCListVCMeetingDefaultRoom(ctx, request, options...) } req := &RawRequestReq{ @@ -48,14 +48,14 @@ func (r *VCService) ListVCMeetingDefaultRoom(ctx context.Context, request *ListV return resp.Data, response, err } -// MockVCMeetingListVCMeetingDefaultRoom mock VCMeetingListVCMeetingDefaultRoom method -func (r *Mock) MockVCMeetingListVCMeetingDefaultRoom(f func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error)) { - r.mockVCMeetingListVCMeetingDefaultRoom = f +// MockVCListVCMeetingDefaultRoom mock VCListVCMeetingDefaultRoom method +func (r *Mock) MockVCListVCMeetingDefaultRoom(f func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error)) { + r.mockVCListVCMeetingDefaultRoom = f } -// UnMockVCMeetingListVCMeetingDefaultRoom un-mock VCMeetingListVCMeetingDefaultRoom method -func (r *Mock) UnMockVCMeetingListVCMeetingDefaultRoom() { - r.mockVCMeetingListVCMeetingDefaultRoom = nil +// UnMockVCListVCMeetingDefaultRoom un-mock VCListVCMeetingDefaultRoom method +func (r *Mock) UnMockVCListVCMeetingDefaultRoom() { + r.mockVCListVCMeetingDefaultRoom = nil } // ListVCMeetingDefaultRoomReq ... diff --git a/api_vc_meeting_default_room_update.go b/api_vc_meeting_default_room_update.go index d18a56be..be767b66 100644 --- a/api_vc_meeting_default_room_update.go +++ b/api_vc_meeting_default_room_update.go @@ -21,59 +21,59 @@ import ( "context" ) -// CreateVCMeetingDefaultRoomUpdate 该接口用于更新会议室。 +// UpdateVCMeetingDefaultRoom 该接口用于更新会议室。 // // doc: https://open.feishu.cn/document/ukTMukTMukTM/uMTNwYjLzUDM24yM1AjN // new doc: https://open.feishu.cn/document/server-docs/historic-version/meeting_room-v1/api-reference/update-meeting-room // // Deprecated -func (r *VCService) CreateVCMeetingDefaultRoomUpdate(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) { - if r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate != nil { - r.cli.Log(ctx, LogLevelDebug, "[lark] VCMeeting#CreateVCMeetingDefaultRoomUpdate mock enable") - return r.cli.mock.mockVCMeetingCreateVCMeetingDefaultRoomUpdate(ctx, request, options...) +func (r *VCService) UpdateVCMeetingDefaultRoom(ctx context.Context, request *UpdateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultRoomResp, *Response, error) { + if r.cli.mock.mockVCUpdateVCMeetingDefaultRoom != nil { + r.cli.Log(ctx, LogLevelDebug, "[lark] VC#UpdateVCMeetingDefaultRoom mock enable") + return r.cli.mock.mockVCUpdateVCMeetingDefaultRoom(ctx, request, options...) } req := &RawRequestReq{ Scope: "VC", - API: "CreateVCMeetingDefaultRoomUpdate", + API: "UpdateVCMeetingDefaultRoom", Method: "POST", URL: r.cli.openBaseURL + "/open-apis/meeting_room/room/update", Body: request, MethodOption: newMethodOption(options), NeedTenantAccessToken: true, } - resp := new(createVCMeetingDefaultRoomUpdateResp) + resp := new(updateVCMeetingDefaultRoomResp) response, err := r.cli.RawRequest(ctx, req, resp) return resp.Data, response, err } -// MockVCMeetingCreateVCMeetingDefaultRoomUpdate mock VCMeetingCreateVCMeetingDefaultRoomUpdate method -func (r *Mock) MockVCMeetingCreateVCMeetingDefaultRoomUpdate(f func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error)) { - r.mockVCMeetingCreateVCMeetingDefaultRoomUpdate = f +// MockVCUpdateVCMeetingDefaultRoom mock VCUpdateVCMeetingDefaultRoom method +func (r *Mock) MockVCUpdateVCMeetingDefaultRoom(f func(ctx context.Context, request *UpdateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultRoomResp, *Response, error)) { + r.mockVCUpdateVCMeetingDefaultRoom = f } -// UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate un-mock VCMeetingCreateVCMeetingDefaultRoomUpdate method -func (r *Mock) UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() { - r.mockVCMeetingCreateVCMeetingDefaultRoomUpdate = nil +// UnMockVCUpdateVCMeetingDefaultRoom un-mock VCUpdateVCMeetingDefaultRoom method +func (r *Mock) UnMockVCUpdateVCMeetingDefaultRoom() { + r.mockVCUpdateVCMeetingDefaultRoom = nil } -// CreateVCMeetingDefaultRoomUpdateReq ... -type CreateVCMeetingDefaultRoomUpdateReq struct { +// UpdateVCMeetingDefaultRoomReq ... +type UpdateVCMeetingDefaultRoomReq struct { RoomID string `json:"room_id,omitempty"` // 要更新的会议室ID Name *string `json:"name,omitempty"` // 会议室名称 Capacity *int64 `json:"capacity,omitempty"` // 容量 CustomRoomID *string `json:"custom_room_id,omitempty"` // 租户自定义会议室ID } -// CreateVCMeetingDefaultRoomUpdateResp ... -type CreateVCMeetingDefaultRoomUpdateResp struct { +// UpdateVCMeetingDefaultRoomResp ... +type UpdateVCMeetingDefaultRoomResp struct { } -// createVCMeetingDefaultRoomUpdateResp ... -type createVCMeetingDefaultRoomUpdateResp struct { - Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 - Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 - Data *CreateVCMeetingDefaultRoomUpdateResp `json:"data,omitempty"` - Error *ErrorDetail `json:"error,omitempty"` +// updateVCMeetingDefaultRoomResp ... +type updateVCMeetingDefaultRoomResp struct { + Code int64 `json:"code,omitempty"` // 返回码, 非 0 表示失败 + Msg string `json:"msg,omitempty"` // 返回码的描述, "success" 表示成功, 其他为错误提示信息 + Data *UpdateVCMeetingDefaultRoomResp `json:"data,omitempty"` + Error *ErrorDetail `json:"error,omitempty"` } diff --git a/mock.go b/mock.go index 9d870a1e..e5338fa9 100644 --- a/mock.go +++ b/mock.go @@ -26,69 +26,69 @@ type Mock struct { mockRawRequest func(ctx context.Context, req *RawRequestReq, resp interface{}) (response *Response, err error) mockGetTenantAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) mockGetAppAccessToken func(ctx context.Context) (*TokenExpire, *Response, error) - mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) - mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) - mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) - mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) - mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) + mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) mockACSDeviceBindACSRuleExternal func(ctx context.Context, request *DeviceBindACSRuleExternalReq, options ...MethodOptionFunc) (*DeviceBindACSRuleExternalResp, *Response, error) mockACSGetACSRuleExternal func(ctx context.Context, request *GetACSRuleExternalReq, options ...MethodOptionFunc) (*GetACSRuleExternalResp, *Response, error) - mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) - mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSDeleteACSRuleExternal func(ctx context.Context, request *DeleteACSRuleExternalReq, options ...MethodOptionFunc) (*DeleteACSRuleExternalResp, *Response, error) + mockACSCreateACSRuleExternal func(ctx context.Context, request *CreateACSRuleExternalReq, options ...MethodOptionFunc) (*CreateACSRuleExternalResp, *Response, error) + mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) mockACSGetACSUser func(ctx context.Context, request *GetACSUserReq, options ...MethodOptionFunc) (*GetACSUserResp, *Response, error) mockACSGetACSUserList func(ctx context.Context, request *GetACSUserListReq, options ...MethodOptionFunc) (*GetACSUserListResp, *Response, error) - mockACSUpdateACSUser func(ctx context.Context, request *UpdateACSUserReq, options ...MethodOptionFunc) (*UpdateACSUserResp, *Response, error) - mockACSCreateACSVisitor func(ctx context.Context, request *CreateACSVisitorReq, options ...MethodOptionFunc) (*CreateACSVisitorResp, *Response, error) - mockACSDeleteACSVisitor func(ctx context.Context, request *DeleteACSVisitorReq, options ...MethodOptionFunc) (*DeleteACSVisitorResp, *Response, error) - mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) - mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) - mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) - mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) - mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) - mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) - mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) - mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) - mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) - mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockACSUpdateACSUserFace func(ctx context.Context, request *UpdateACSUserFaceReq, options ...MethodOptionFunc) (*UpdateACSUserFaceResp, *Response, error) + mockACSGetACSUserFace func(ctx context.Context, request *GetACSUserFaceReq, options ...MethodOptionFunc) (*GetACSUserFaceResp, *Response, error) + mockACSGetACSDeviceList func(ctx context.Context, request *GetACSDeviceListReq, options ...MethodOptionFunc) (*GetACSDeviceListResp, *Response, error) + mockACSGetACSAccessRecordList func(ctx context.Context, request *GetACSAccessRecordListReq, options ...MethodOptionFunc) (*GetACSAccessRecordListResp, *Response, error) + mockACSGetACSAccessRecordPhoto func(ctx context.Context, request *GetACSAccessRecordPhotoReq, options ...MethodOptionFunc) (*GetACSAccessRecordPhotoResp, *Response, error) + mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) + mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) mockAIRecognizeAIHealthCertificate func(ctx context.Context, request *RecognizeAIHealthCertificateReq, options ...MethodOptionFunc) (*RecognizeAIHealthCertificateResp, *Response, error) mockAIRecognizeAIHkmMainlandTravelPermit func(ctx context.Context, request *RecognizeAIHkmMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAIHkmMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) + mockAIRecognizeAIChinesePassport func(ctx context.Context, request *RecognizeAIChinesePassportReq, options ...MethodOptionFunc) (*RecognizeAIChinesePassportResp, *Response, error) + mockAIRecognizeAIBankCard func(ctx context.Context, request *RecognizeAIBankCardReq, options ...MethodOptionFunc) (*RecognizeAIBankCardResp, *Response, error) + mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) + mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) mockAIRecognizeAiidCard func(ctx context.Context, request *RecognizeAiidCardReq, options ...MethodOptionFunc) (*RecognizeAiidCardResp, *Response, error) + mockAIRecognizeAIFoodProduceLicense func(ctx context.Context, request *RecognizeAIFoodProduceLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodProduceLicenseResp, *Response, error) + mockAIRecognizeAIFoodManageLicense func(ctx context.Context, request *RecognizeAIFoodManageLicenseReq, options ...MethodOptionFunc) (*RecognizeAIFoodManageLicenseResp, *Response, error) + mockAIRecognizeAIDrivingLicense func(ctx context.Context, request *RecognizeAIDrivingLicenseReq, options ...MethodOptionFunc) (*RecognizeAIDrivingLicenseResp, *Response, error) + mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) + mockAIRecognizeAIBusinessLicense func(ctx context.Context, request *RecognizeAIBusinessLicenseReq, options ...MethodOptionFunc) (*RecognizeAIBusinessLicenseResp, *Response, error) + mockAIExtractAIContractField func(ctx context.Context, request *ExtractAIContractFieldReq, options ...MethodOptionFunc) (*ExtractAIContractFieldResp, *Response, error) + mockAIRecognizeAIBusinessCard func(ctx context.Context, request *RecognizeAIBusinessCardReq, options ...MethodOptionFunc) (*RecognizeAIBusinessCardResp, *Response, error) mockAIRecognizeBasicImage func(ctx context.Context, request *RecognizeBasicImageReq, options ...MethodOptionFunc) (*RecognizeBasicImageResp, *Response, error) - mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAIRecognizeSpeechStream func(ctx context.Context, request *RecognizeSpeechStreamReq, options ...MethodOptionFunc) (*RecognizeSpeechStreamResp, *Response, error) - mockAIParseAIResume func(ctx context.Context, request *ParseAIResumeReq, options ...MethodOptionFunc) (*ParseAIResumeResp, *Response, error) - mockAIRecognizeAITaxiInvoice func(ctx context.Context, request *RecognizeAITaxiInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITaxiInvoiceResp, *Response, error) - mockAIRecognizeAITrainInvoice func(ctx context.Context, request *RecognizeAITrainInvoiceReq, options ...MethodOptionFunc) (*RecognizeAITrainInvoiceResp, *Response, error) + mockAIRecognizeSpeechFile func(ctx context.Context, request *RecognizeSpeechFileReq, options ...MethodOptionFunc) (*RecognizeSpeechFileResp, *Response, error) mockAITranslateText func(ctx context.Context, request *TranslateTextReq, options ...MethodOptionFunc) (*TranslateTextResp, *Response, error) - mockAIRecognizeAITwMainlandTravelPermit func(ctx context.Context, request *RecognizeAITwMainlandTravelPermitReq, options ...MethodOptionFunc) (*RecognizeAITwMainlandTravelPermitResp, *Response, error) - mockAIRecognizeAIVatInvoice func(ctx context.Context, request *RecognizeAIVatInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVatInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleInvoice func(ctx context.Context, request *RecognizeAIVehicleInvoiceReq, options ...MethodOptionFunc) (*RecognizeAIVehicleInvoiceResp, *Response, error) - mockAIRecognizeAIVehicleLicense func(ctx context.Context, request *RecognizeAIVehicleLicenseReq, options ...MethodOptionFunc) (*RecognizeAIVehicleLicenseResp, *Response, error) - mockAPaaSGetAPaaSApplicationRoleMember func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) - mockAPaaSCreateAPaaSApplicationObjectOqlQuery func(ctx context.Context, request *CreateAPaaSApplicationObjectOqlQueryReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectOqlQueryResp, *Response, error) + mockAIDetectTextLanguage func(ctx context.Context, request *DetectTextLanguageReq, options ...MethodOptionFunc) (*DetectTextLanguageResp, *Response, error) + mockAIDetectFaceAttributes func(ctx context.Context, request *DetectFaceAttributesReq, options ...MethodOptionFunc) (*DetectFaceAttributesResp, *Response, error) + mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogAuditLog func(ctx context.Context, request *ListAPaaSApplicationAuditLogAuditLogReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLogDataChangeLogDetail func(ctx context.Context, request *GetAPaaSApplicationAuditLogDataChangeLogDetailReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogDataChangeLogDetailResp, *Response, error) mockAPaaSListAPaaSApplicationAuditLogDataChangeLogs func(ctx context.Context, request *ListAPaaSApplicationAuditLogDataChangeLogsReq, options ...MethodOptionFunc) (*ListAPaaSApplicationAuditLogDataChangeLogsResp, *Response, error) mockAPaaSGetAPaaSApplicationAuditLog func(ctx context.Context, request *GetAPaaSApplicationAuditLogReq, options ...MethodOptionFunc) (*GetAPaaSApplicationAuditLogResp, *Response, error) mockAPaaSGetAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *GetAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*GetAPaaSApplicationEnvironmentVariableResp, *Response, error) mockAPaaSQueryAPaaSApplicationEnvironmentVariable func(ctx context.Context, request *QueryAPaaSApplicationEnvironmentVariableReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationEnvironmentVariableResp, *Response, error) - mockAPaaSCreateAPaaSApplicationFlowExecute func(ctx context.Context, request *CreateAPaaSApplicationFlowExecuteReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFlowExecuteResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceViewViewsGet func(ctx context.Context, request *GetAPaaSWorkspaceViewViewsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewViewsGetResp, *Response, error) - mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) + mockAPaaSExecuteAPaaSApplicationFlow func(ctx context.Context, request *ExecuteAPaaSApplicationFlowReq, options ...MethodOptionFunc) (*ExecuteAPaaSApplicationFlowResp, *Response, error) + mockAPaaSInvokeAPaaSApplicationFunction func(ctx context.Context, request *InvokeAPaaSApplicationFunctionReq, options ...MethodOptionFunc) (*InvokeAPaaSApplicationFunctionResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchCreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchDeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchDeleteAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchQueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchQueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSBatchUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *BatchUpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSCreateAPaaSApplicationObjectRecord func(ctx context.Context, request *CreateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSDeleteAPaaSApplicationObjectRecord func(ctx context.Context, request *DeleteAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*DeleteAPaaSApplicationObjectRecordResp, *Response, error) - mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) mockAPaaSUpdateAPaaSApplicationObjectRecord func(ctx context.Context, request *UpdateAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*UpdateAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSQueryAPaaSApplicationObjectRecord func(ctx context.Context, request *QueryAPaaSApplicationObjectRecordReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectRecordResp, *Response, error) + mockAPaaSQueryAPaaSApplicationObjectOql func(ctx context.Context, request *QueryAPaaSApplicationObjectOqlReq, options ...MethodOptionFunc) (*QueryAPaaSApplicationObjectOqlResp, *Response, error) mockAPaaSSearchAPaaSApplicationObject func(ctx context.Context, request *SearchAPaaSApplicationObjectReq, options ...MethodOptionFunc) (*SearchAPaaSApplicationObjectResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) mockAPaaSBatchRemoveAPaaSApplicationRecordPermissionMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRecordPermissionMemberAuthorizationResp, *Response, error) - mockAPaaSListAPaaSApp func(ctx context.Context, request *ListAPaaSAppReq, options ...MethodOptionFunc) (*ListAPaaSAppResp, *Response, error) mockAPaaSBatchCreateAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchCreateAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchCreateAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) - mockAPaaSCreateAPaaSApplicationFunctionInvoke func(ctx context.Context, request *CreateAPaaSApplicationFunctionInvokeReq, options ...MethodOptionFunc) (*CreateAPaaSApplicationFunctionInvokeResp, *Response, error) + mockAPaaSBatchRemoveAPaaSApplicationRoleMemberAuthorization func(ctx context.Context, request *BatchRemoveAPaaSApplicationRoleMemberAuthorizationReq, options ...MethodOptionFunc) (*BatchRemoveAPaaSApplicationRoleMemberAuthorizationResp, *Response, error) + mockAPaaSGetAPaaSApplicationRoleMember func(ctx context.Context, request *GetAPaaSApplicationRoleMemberReq, options ...MethodOptionFunc) (*GetAPaaSApplicationRoleMemberResp, *Response, error) + mockAPaaSCancelAPaaSApprovalInstance func(ctx context.Context, request *CancelAPaaSApprovalInstanceReq, options ...MethodOptionFunc) (*CancelAPaaSApprovalInstanceResp, *Response, error) mockAPaaSAddAPaaSApprovalTaskAssignee func(ctx context.Context, request *AddAPaaSApprovalTaskAssigneeReq, options ...MethodOptionFunc) (*AddAPaaSApprovalTaskAssigneeResp, *Response, error) mockAPaaSAgreeAPaaSApprovalTask func(ctx context.Context, request *AgreeAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*AgreeAPaaSApprovalTaskResp, *Response, error) mockAPaaSRejectAPaaSApprovalTask func(ctx context.Context, request *RejectAPaaSApprovalTaskReq, options ...MethodOptionFunc) (*RejectAPaaSApprovalTaskResp, *Response, error) @@ -101,321 +101,330 @@ type Mock struct { mockAPaaSQueryAPaaSUserTask func(ctx context.Context, request *QueryAPaaSUserTaskReq, options ...MethodOptionFunc) (*QueryAPaaSUserTaskResp, *Response, error) mockAPaaSCreateAPaaSUserTaskRollback func(ctx context.Context, request *CreateAPaaSUserTaskRollbackReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackResp, *Response, error) mockAPaaSCreateAPaaSUserTaskRollbackPoints func(ctx context.Context, request *CreateAPaaSUserTaskRollbackPointsReq, options ...MethodOptionFunc) (*CreateAPaaSUserTaskRollbackPointsResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceEnumGet func(ctx context.Context, request *GetAPaaSWorkspaceEnumGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumGetResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceEnum func(ctx context.Context, request *GetAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceEnumResp, *Response, error) mockAPaaSListAPaaSWorkspaceEnum func(ctx context.Context, request *ListAPaaSWorkspaceEnumReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceEnumResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableGet func(ctx context.Context, request *GetAPaaSWorkspaceTableGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableGetResp, *Response, error) mockAPaaSListAPaaSWorkspaceTable func(ctx context.Context, request *ListAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*ListAPaaSWorkspaceTableResp, *Response, error) - mockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *Response, error) - mockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsDeleteResp, *Response, error) - mockAPaaSGetAPaaSWorkspaceTableRecordsGet func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsGetReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsGetResp, *Response, error) - mockAPaaSCreateAPaaSWorkspaceTableRecordsPost func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsPostReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsPostResp, *Response, error) + mockAPaaSBatchUpdateAPaaSWorkspaceTableRecords func(ctx context.Context, request *BatchUpdateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*BatchUpdateAPaaSWorkspaceTableRecordsResp, *Response, error) + mockAPaaSDeleteAPaaSWorkspaceTableRecords func(ctx context.Context, request *DeleteAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*DeleteAPaaSWorkspaceTableRecordsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTableRecords func(ctx context.Context, request *GetAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableRecordsResp, *Response, error) mockAPaaSUpdateAPaaSWorkspaceTableRecordsPatch func(ctx context.Context, request *UpdateAPaaSWorkspaceTableRecordsPatchReq, options ...MethodOptionFunc) (*UpdateAPaaSWorkspaceTableRecordsPatchResp, *Response, error) - mockAPaaSCancelAPaaSApprovalInstance func(ctx context.Context, request *CancelAPaaSApprovalInstanceReq, options ...MethodOptionFunc) (*CancelAPaaSApprovalInstanceResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceTableRecords func(ctx context.Context, request *CreateAPaaSWorkspaceTableRecordsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceTableRecordsResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceTable func(ctx context.Context, request *GetAPaaSWorkspaceTableReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceTableResp, *Response, error) + mockAPaaSGetAPaaSWorkspaceViews func(ctx context.Context, request *GetAPaaSWorkspaceViewsReq, options ...MethodOptionFunc) (*GetAPaaSWorkspaceViewsResp, *Response, error) + mockAPaaSCreateAPaaSWorkspaceSqlCommands func(ctx context.Context, request *CreateAPaaSWorkspaceSqlCommandsReq, options ...MethodOptionFunc) (*CreateAPaaSWorkspaceSqlCommandsResp, *Response, error) + mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) mockAdminGetAdminDeptStats func(ctx context.Context, request *GetAdminDeptStatsReq, options ...MethodOptionFunc) (*GetAdminDeptStatsResp, *Response, error) mockAdminGetAdminUserStats func(ctx context.Context, request *GetAdminUserStatsReq, options ...MethodOptionFunc) (*GetAdminUserStatsResp, *Response, error) + mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) mockAdminCreateAdminBadge func(ctx context.Context, request *CreateAdminBadgeReq, options ...MethodOptionFunc) (*CreateAdminBadgeResp, *Response, error) + mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) + mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) mockAdminGetAdminBadge func(ctx context.Context, request *GetAdminBadgeReq, options ...MethodOptionFunc) (*GetAdminBadgeResp, *Response, error) mockAdminCreateAdminBadgeGrant func(ctx context.Context, request *CreateAdminBadgeGrantReq, options ...MethodOptionFunc) (*CreateAdminBadgeGrantResp, *Response, error) - mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) - mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) mockAdminUpdateAdminBadgeGrant func(ctx context.Context, request *UpdateAdminBadgeGrantReq, options ...MethodOptionFunc) (*UpdateAdminBadgeGrantResp, *Response, error) - mockAdminUploadAdminBadgeImage func(ctx context.Context, request *UploadAdminBadgeImageReq, options ...MethodOptionFunc) (*UploadAdminBadgeImageResp, *Response, error) - mockAdminGetAdminBadgeList func(ctx context.Context, request *GetAdminBadgeListReq, options ...MethodOptionFunc) (*GetAdminBadgeListResp, *Response, error) - mockAdminUpdateAdminBadge func(ctx context.Context, request *UpdateAdminBadgeReq, options ...MethodOptionFunc) (*UpdateAdminBadgeResp, *Response, error) - mockAdminAdminResetPassword func(ctx context.Context, request *AdminResetPasswordReq, options ...MethodOptionFunc) (*AdminResetPasswordResp, *Response, error) + mockAdminGetAdminBadgeGrantList func(ctx context.Context, request *GetAdminBadgeGrantListReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantListResp, *Response, error) + mockAdminGetAdminBadgeGrant func(ctx context.Context, request *GetAdminBadgeGrantReq, options ...MethodOptionFunc) (*GetAdminBadgeGrantResp, *Response, error) + mockAdminDeleteAdminBadgeGrant func(ctx context.Context, request *DeleteAdminBadgeGrantReq, options ...MethodOptionFunc) (*DeleteAdminBadgeGrantResp, *Response, error) mockAilyCreateAilySessionAilyMessage func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) mockAilyGetAilySessionAilyMessage func(ctx context.Context, request *GetAilySessionAilyMessageReq, options ...MethodOptionFunc) (*GetAilySessionAilyMessageResp, *Response, error) mockAilyListAilySessionAilyMessage func(ctx context.Context, request *ListAilySessionAilyMessageReq, options ...MethodOptionFunc) (*ListAilySessionAilyMessageResp, *Response, error) - mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) - mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) - mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyCancelAilySessionRun func(ctx context.Context, request *CancelAilySessionRunReq, options ...MethodOptionFunc) (*CancelAilySessionRunResp, *Response, error) mockAilyCreateAilySessionRun func(ctx context.Context, request *CreateAilySessionRunReq, options ...MethodOptionFunc) (*CreateAilySessionRunResp, *Response, error) mockAilyGetAilySessionRun func(ctx context.Context, request *GetAilySessionRunReq, options ...MethodOptionFunc) (*GetAilySessionRunResp, *Response, error) mockAilyListAilySessionRun func(ctx context.Context, request *ListAilySessionRunReq, options ...MethodOptionFunc) (*ListAilySessionRunResp, *Response, error) + mockAilyCreateAilySession func(ctx context.Context, request *CreateAilySessionReq, options ...MethodOptionFunc) (*CreateAilySessionResp, *Response, error) + mockAilyDeleteAilySession func(ctx context.Context, request *DeleteAilySessionReq, options ...MethodOptionFunc) (*DeleteAilySessionResp, *Response, error) + mockAilyGetAilySession func(ctx context.Context, request *GetAilySessionReq, options ...MethodOptionFunc) (*GetAilySessionResp, *Response, error) mockAilyUpdateAilySession func(ctx context.Context, request *UpdateAilySessionReq, options ...MethodOptionFunc) (*UpdateAilySessionResp, *Response, error) mockAilyCreateAilyAppDataAsset func(ctx context.Context, request *CreateAilyAppDataAssetReq, options ...MethodOptionFunc) (*CreateAilyAppDataAssetResp, *Response, error) mockAilyDeleteAilyAppDataAsset func(ctx context.Context, request *DeleteAilyAppDataAssetReq, options ...MethodOptionFunc) (*DeleteAilyAppDataAssetResp, *Response, error) mockAilyGetAilyAppDataAsset func(ctx context.Context, request *GetAilyAppDataAssetReq, options ...MethodOptionFunc) (*GetAilyAppDataAssetResp, *Response, error) mockAilyListAilyAppDataAsset func(ctx context.Context, request *ListAilyAppDataAssetReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetResp, *Response, error) - mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyUploadAilyAppDataAssetFile func(ctx context.Context, request *UploadAilyAppDataAssetFileReq, options ...MethodOptionFunc) (*UploadAilyAppDataAssetFileResp, *Response, error) + mockAilyListAilyAppDataAssetTag func(ctx context.Context, request *ListAilyAppDataAssetTagReq, options ...MethodOptionFunc) (*ListAilyAppDataAssetTagResp, *Response, error) mockAilyCreateAilyAppKnowledgeAsk func(ctx context.Context, request *CreateAilyAppKnowledgeAskReq, options ...MethodOptionFunc) (*CreateAilyAppKnowledgeAskResp, *Response, error) mockAilyGetAilyAppSkill func(ctx context.Context, request *GetAilyAppSkillReq, options ...MethodOptionFunc) (*GetAilyAppSkillResp, *Response, error) mockAilyListAilyAppSkill func(ctx context.Context, request *ListAilyAppSkillReq, options ...MethodOptionFunc) (*ListAilyAppSkillResp, *Response, error) - mockAilyCreateAilyAppSkillStart func(ctx context.Context, request *CreateAilyAppSkillStartReq, options ...MethodOptionFunc) (*CreateAilyAppSkillStartResp, *Response, error) - mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) - mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) - mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) - mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) - mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) - mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) - mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) - mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) - mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) - mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) - mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) - mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) - mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) + mockAilyStartAilyAppSkill func(ctx context.Context, request *StartAilyAppSkillReq, options ...MethodOptionFunc) (*StartAilyAppSkillResp, *Response, error) + mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) mockApplicationSearchApplicationCustomWorkplaceAccessData func(ctx context.Context, request *SearchApplicationCustomWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationCustomWorkplaceAccessDataResp, *Response, error) + mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) mockApplicationGetApplicationFavourite func(ctx context.Context, request *GetApplicationFavouriteReq, options ...MethodOptionFunc) (*GetApplicationFavouriteResp, *Response, error) - mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) - mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) - mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) - mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) - mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) - mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) - mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) mockApplicationGetApplicationRecommend func(ctx context.Context, request *GetApplicationRecommendReq, options ...MethodOptionFunc) (*GetApplicationRecommendResp, *Response, error) mockApplicationGetApplicationRecommendRuleList func(ctx context.Context, request *GetApplicationRecommendRuleListReq, options ...MethodOptionFunc) (*GetApplicationRecommendRuleListResp, *Response, error) - mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) - mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) - mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) - mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) - mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) - mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) - mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationIsApplicationUserAdmin func(ctx context.Context, request *IsApplicationUserAdminReq, options ...MethodOptionFunc) (*IsApplicationUserAdminResp, *Response, error) mockApplicationGetApplicationUserAdminScope func(ctx context.Context, request *GetApplicationUserAdminScopeReq, options ...MethodOptionFunc) (*GetApplicationUserAdminScopeResp, *Response, error) + mockApplicationGetApplicationAppVisibility func(ctx context.Context, request *GetApplicationAppVisibilityReq, options ...MethodOptionFunc) (*GetApplicationAppVisibilityResp, *Response, error) + mockApplicationGetApplicationContactsRangeConfiguration func(ctx context.Context, request *GetApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*GetApplicationContactsRangeConfigurationResp, *Response, error) + mockApplicationUpdateApplicationContactsRangeConfiguration func(ctx context.Context, request *UpdateApplicationContactsRangeConfigurationReq, options ...MethodOptionFunc) (*UpdateApplicationContactsRangeConfigurationResp, *Response, error) mockApplicationGetApplicationUserVisibleApp func(ctx context.Context, request *GetApplicationUserVisibleAppReq, options ...MethodOptionFunc) (*GetApplicationUserVisibleAppResp, *Response, error) - mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) + mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) + mockApplicationGetApplicationAppList func(ctx context.Context, request *GetApplicationAppListReq, options ...MethodOptionFunc) (*GetApplicationAppListResp, *Response, error) + mockApplicationUpdateApplicationAppVisibility func(ctx context.Context, request *UpdateApplicationAppVisibilityReq, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityResp, *Response, error) + mockApplicationUpdateApplicationAppVisibilityV6 func(ctx context.Context, request *UpdateApplicationAppVisibilityV6Req, options ...MethodOptionFunc) (*UpdateApplicationAppVisibilityV6Resp, *Response, error) + mockApplicationUpdateApplicationAppManagement func(ctx context.Context, request *UpdateApplicationAppManagementReq, options ...MethodOptionFunc) (*UpdateApplicationAppManagementResp, *Response, error) + mockApplicationGetApplicationAppAdminUserList func(ctx context.Context, request *GetApplicationAppAdminUserListReq, options ...MethodOptionFunc) (*GetApplicationAppAdminUserListResp, *Response, error) + mockApplicationCheckUserIsInApplicationPaidScope func(ctx context.Context, request *CheckUserIsInApplicationPaidScopeReq, options ...MethodOptionFunc) (*CheckUserIsInApplicationPaidScopeResp, *Response, error) + mockApplicationGetApplicationOrderList func(ctx context.Context, request *GetApplicationOrderListReq, options ...MethodOptionFunc) (*GetApplicationOrderListResp, *Response, error) + mockApplicationGetApplicationOrder func(ctx context.Context, request *GetApplicationOrderReq, options ...MethodOptionFunc) (*GetApplicationOrderResp, *Response, error) + mockApplicationGetApplicationUnderAuditList func(ctx context.Context, request *GetApplicationUnderAuditListReq, options ...MethodOptionFunc) (*GetApplicationUnderAuditListResp, *Response, error) + mockApplicationGetApplication func(ctx context.Context, request *GetApplicationReq, options ...MethodOptionFunc) (*GetApplicationResp, *Response, error) mockApplicationGetApplicationVersion func(ctx context.Context, request *GetApplicationVersionReq, options ...MethodOptionFunc) (*GetApplicationVersionResp, *Response, error) mockApplicationGetApplicationVersionList func(ctx context.Context, request *GetApplicationVersionListReq, options ...MethodOptionFunc) (*GetApplicationVersionListResp, *Response, error) + mockApplicationGetApplicationVersionContactsRangeSuggest func(ctx context.Context, request *GetApplicationVersionContactsRangeSuggestReq, options ...MethodOptionFunc) (*GetApplicationVersionContactsRangeSuggestResp, *Response, error) mockApplicationUpdateApplicationVersion func(ctx context.Context, request *UpdateApplicationVersionReq, options ...MethodOptionFunc) (*UpdateApplicationVersionResp, *Response, error) - mockApplicationCheckApplicationVisibleWhiteBlackList func(ctx context.Context, request *CheckApplicationVisibleWhiteBlackListReq, options ...MethodOptionFunc) (*CheckApplicationVisibleWhiteBlackListResp, *Response, error) - mockApplicationSearchApplicationWorkplaceAccessData func(ctx context.Context, request *SearchApplicationWorkplaceAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceAccessDataResp, *Response, error) - mockApplicationSearchApplicationWorkplaceBlockAccessData func(ctx context.Context, request *SearchApplicationWorkplaceBlockAccessDataReq, options ...MethodOptionFunc) (*SearchApplicationWorkplaceBlockAccessDataResp, *Response, error) + mockApplicationUpdateApplication func(ctx context.Context, request *UpdateApplicationReq, options ...MethodOptionFunc) (*UpdateApplicationResp, *Response, error) + mockApplicationGetApplicationUsageDepartmentOverview func(ctx context.Context, request *GetApplicationUsageDepartmentOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageDepartmentOverviewResp, *Response, error) + mockApplicationGetApplicationUsageOverview func(ctx context.Context, request *GetApplicationUsageOverviewReq, options ...MethodOptionFunc) (*GetApplicationUsageOverviewResp, *Response, error) + mockApplicationGetApplicationUsageTrend func(ctx context.Context, request *GetApplicationUsageTrendReq, options ...MethodOptionFunc) (*GetApplicationUsageTrendResp, *Response, error) + mockApplicationUpdateApplicationFeedback func(ctx context.Context, request *UpdateApplicationFeedbackReq, options ...MethodOptionFunc) (*UpdateApplicationFeedbackResp, *Response, error) + mockApplicationGetApplicationFeedbackList func(ctx context.Context, request *GetApplicationFeedbackListReq, options ...MethodOptionFunc) (*GetApplicationFeedbackListResp, *Response, error) + mockApplicationSetApplicationAppBadge func(ctx context.Context, request *SetApplicationAppBadgeReq, options ...MethodOptionFunc) (*SetApplicationAppBadgeResp, *Response, error) + mockApplicationCreateApplicationAppUsageMessagePushOverview func(ctx context.Context, request *CreateApplicationAppUsageMessagePushOverviewReq, options ...MethodOptionFunc) (*CreateApplicationAppUsageMessagePushOverviewResp, *Response, error) + mockApplicationGetApplicationCollaborators func(ctx context.Context, request *GetApplicationCollaboratorsReq, options ...MethodOptionFunc) (*GetApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationCollaborators func(ctx context.Context, request *UpdateApplicationCollaboratorsReq, options ...MethodOptionFunc) (*UpdateApplicationCollaboratorsResp, *Response, error) + mockApplicationUpdateApplicationOwner func(ctx context.Context, request *UpdateApplicationOwnerReq, options ...MethodOptionFunc) (*UpdateApplicationOwnerResp, *Response, error) + mockApplicationListApplication func(ctx context.Context, request *ListApplicationReq, options ...MethodOptionFunc) (*ListApplicationResp, *Response, error) + mockApplicationCreateApplicationScopeApply func(ctx context.Context, request *CreateApplicationScopeApplyReq, options ...MethodOptionFunc) (*CreateApplicationScopeApplyResp, *Response, error) + mockApplicationListApplicationScope func(ctx context.Context, request *ListApplicationScopeReq, options ...MethodOptionFunc) (*ListApplicationScopeResp, *Response, error) mockApprovalCreateApproval func(ctx context.Context, request *CreateApprovalReq, options ...MethodOptionFunc) (*CreateApprovalResp, *Response, error) mockApprovalGetApproval func(ctx context.Context, request *GetApprovalReq, options ...MethodOptionFunc) (*GetApprovalResp, *Response, error) mockApprovalGetApprovalList func(ctx context.Context, request *GetApprovalListReq, options ...MethodOptionFunc) (*GetApprovalListResp, *Response, error) + mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) + mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) + mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) mockApprovalCreateApprovalCarbonCopy func(ctx context.Context, request *CreateApprovalCarbonCopyReq, options ...MethodOptionFunc) (*CreateApprovalCarbonCopyResp, *Response, error) - mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) + mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) + mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) + mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) + mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) + mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) + mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) + mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) mockApprovalCreateApprovalComment func(ctx context.Context, request *CreateApprovalCommentReq, options ...MethodOptionFunc) (*CreateApprovalCommentResp, *Response, error) - mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalGetApprovalComment func(ctx context.Context, request *GetApprovalCommentReq, options ...MethodOptionFunc) (*GetApprovalCommentResp, *Response, error) + mockApprovalDeleteApprovalComment func(ctx context.Context, request *DeleteApprovalCommentReq, options ...MethodOptionFunc) (*DeleteApprovalCommentResp, *Response, error) mockApprovalRemoveApprovalComment func(ctx context.Context, request *RemoveApprovalCommentReq, options ...MethodOptionFunc) (*RemoveApprovalCommentResp, *Response, error) - mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalCreateApprovalExternalApproval func(ctx context.Context, request *CreateApprovalExternalApprovalReq, options ...MethodOptionFunc) (*CreateApprovalExternalApprovalResp, *Response, error) mockApprovalGetApprovalExternalApproval func(ctx context.Context, request *GetApprovalExternalApprovalReq, options ...MethodOptionFunc) (*GetApprovalExternalApprovalResp, *Response, error) mockApprovalCreateApprovalExternalInstance func(ctx context.Context, request *CreateApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalExternalInstanceResp, *Response, error) + mockApprovalCheckApprovalExternalInstance func(ctx context.Context, request *CheckApprovalExternalInstanceReq, options ...MethodOptionFunc) (*CheckApprovalExternalInstanceResp, *Response, error) mockApprovalGetApprovalExternalList func(ctx context.Context, request *GetApprovalExternalListReq, options ...MethodOptionFunc) (*GetApprovalExternalListResp, *Response, error) mockApprovalUploadApprovalFile func(ctx context.Context, request *UploadApprovalFileReq, options ...MethodOptionFunc) (*UploadApprovalFileResp, *Response, error) - mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) - mockApprovalAddApprovalInstanceSign func(ctx context.Context, request *AddApprovalInstanceSignReq, options ...MethodOptionFunc) (*AddApprovalInstanceSignResp, *Response, error) - mockApprovalApproveApprovalInstance func(ctx context.Context, request *ApproveApprovalInstanceReq, options ...MethodOptionFunc) (*ApproveApprovalInstanceResp, *Response, error) - mockApprovalCancelApprovalInstance func(ctx context.Context, request *CancelApprovalInstanceReq, options ...MethodOptionFunc) (*CancelApprovalInstanceResp, *Response, error) - mockApprovalCreateApprovalInstance func(ctx context.Context, request *CreateApprovalInstanceReq, options ...MethodOptionFunc) (*CreateApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstance func(ctx context.Context, request *GetApprovalInstanceReq, options ...MethodOptionFunc) (*GetApprovalInstanceResp, *Response, error) - mockApprovalGetApprovalInstanceList func(ctx context.Context, request *GetApprovalInstanceListReq, options ...MethodOptionFunc) (*GetApprovalInstanceListResp, *Response, error) - mockApprovalPreviewApprovalInstance func(ctx context.Context, request *PreviewApprovalInstanceReq, options ...MethodOptionFunc) (*PreviewApprovalInstanceResp, *Response, error) - mockApprovalRejectApprovalInstance func(ctx context.Context, request *RejectApprovalInstanceReq, options ...MethodOptionFunc) (*RejectApprovalInstanceResp, *Response, error) - mockApprovalRollbackApprovalInstance func(ctx context.Context, request *RollbackApprovalInstanceReq, options ...MethodOptionFunc) (*RollbackApprovalInstanceResp, *Response, error) - mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) - mockApprovalResubmitApprovalInstanceTask func(ctx context.Context, request *ResubmitApprovalInstanceTaskReq, options ...MethodOptionFunc) (*ResubmitApprovalInstanceTaskResp, *Response, error) - mockApprovalTransferApprovalInstance func(ctx context.Context, request *TransferApprovalInstanceReq, options ...MethodOptionFunc) (*TransferApprovalInstanceResp, *Response, error) - mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) mockApprovalUpdateApprovalMessage func(ctx context.Context, request *UpdateApprovalMessageReq, options ...MethodOptionFunc) (*UpdateApprovalMessageResp, *Response, error) - mockApprovalSubscribeApprovalSubscription func(ctx context.Context, request *SubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*SubscribeApprovalSubscriptionResp, *Response, error) - mockApprovalUnsubscribeApprovalSubscription func(ctx context.Context, request *UnsubscribeApprovalSubscriptionReq, options ...MethodOptionFunc) (*UnsubscribeApprovalSubscriptionResp, *Response, error) + mockApprovalSendApprovalMessage func(ctx context.Context, request *SendApprovalMessageReq, options ...MethodOptionFunc) (*SendApprovalMessageResp, *Response, error) + mockApprovalSearchApprovalInstance func(ctx context.Context, request *SearchApprovalInstanceReq, options ...MethodOptionFunc) (*SearchApprovalInstanceResp, *Response, error) + mockApprovalSearchApprovalCarbonCopy func(ctx context.Context, request *SearchApprovalCarbonCopyReq, options ...MethodOptionFunc) (*SearchApprovalCarbonCopyResp, *Response, error) mockApprovalSearchApprovalTask func(ctx context.Context, request *SearchApprovalTaskReq, options ...MethodOptionFunc) (*SearchApprovalTaskResp, *Response, error) + mockApprovalGetApprovalUserTaskList func(ctx context.Context, request *GetApprovalUserTaskListReq, options ...MethodOptionFunc) (*GetApprovalUserTaskListResp, *Response, error) mockApprovalTransformApprovalUserID func(ctx context.Context, request *TransformApprovalUserIDReq, options ...MethodOptionFunc) (*TransformApprovalUserIDResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleDelReport func(ctx context.Context, request *CreateAttendanceArchiveRuleDelReportReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleDelReportResp, *Response, error) - mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) - mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) - mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) - mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) - mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) - mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) - mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) - mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) mockAttendanceGetAttendanceGroupList func(ctx context.Context, request *GetAttendanceGroupListReq, options ...MethodOptionFunc) (*GetAttendanceGroupListResp, *Response, error) - mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceCreateAttendanceGroup func(ctx context.Context, request *CreateAttendanceGroupReq, options ...MethodOptionFunc) (*CreateAttendanceGroupResp, *Response, error) mockAttendanceSearchAttendanceGroup func(ctx context.Context, request *SearchAttendanceGroupReq, options ...MethodOptionFunc) (*SearchAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceGroup func(ctx context.Context, request *GetAttendanceGroupReq, options ...MethodOptionFunc) (*GetAttendanceGroupResp, *Response, error) + mockAttendanceDeleteAttendanceGroup func(ctx context.Context, request *DeleteAttendanceGroupReq, options ...MethodOptionFunc) (*DeleteAttendanceGroupResp, *Response, error) + mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) + mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) + mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) + mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) mockAttendanceUpdateAttendanceLeaveAccrualRecord func(ctx context.Context, request *UpdateAttendanceLeaveAccrualRecordReq, options ...MethodOptionFunc) (*UpdateAttendanceLeaveAccrualRecordResp, *Response, error) mockAttendanceGetAttendanceLeaveEmployExpireRecord func(ctx context.Context, request *GetAttendanceLeaveEmployExpireRecordReq, options ...MethodOptionFunc) (*GetAttendanceLeaveEmployExpireRecordResp, *Response, error) - mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) mockAttendanceCreateAttendanceShift func(ctx context.Context, request *CreateAttendanceShiftReq, options ...MethodOptionFunc) (*CreateAttendanceShiftResp, *Response, error) - mockAttendanceDeleteAttendanceShift func(ctx context.Context, request *DeleteAttendanceShiftReq, options ...MethodOptionFunc) (*DeleteAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShift func(ctx context.Context, request *GetAttendanceShiftReq, options ...MethodOptionFunc) (*GetAttendanceShiftResp, *Response, error) - mockAttendanceGetAttendanceShiftDetail func(ctx context.Context, request *GetAttendanceShiftDetailReq, options ...MethodOptionFunc) (*GetAttendanceShiftDetailResp, *Response, error) - mockAttendanceGetAttendanceShiftList func(ctx context.Context, request *GetAttendanceShiftListReq, options ...MethodOptionFunc) (*GetAttendanceShiftListResp, *Response, error) - mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) - mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) mockAttendanceGetAttendanceUserDailyShift func(ctx context.Context, request *GetAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*GetAttendanceUserDailyShiftResp, *Response, error) - mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) - mockAttendanceBatchAttendanceUserFlowDel func(ctx context.Context, request *BatchAttendanceUserFlowDelReq, options ...MethodOptionFunc) (*BatchAttendanceUserFlowDelResp, *Response, error) - mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) - mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) - mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) - mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShift func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftResp, *Response, error) mockAttendanceGetAttendanceUserStatsField func(ctx context.Context, request *GetAttendanceUserStatsFieldReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsFieldResp, *Response, error) mockAttendanceGetAttendanceUserStatsView func(ctx context.Context, request *GetAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsViewResp, *Response, error) mockAttendanceUpdateAttendanceUserStatsView func(ctx context.Context, request *UpdateAttendanceUserStatsViewReq, options ...MethodOptionFunc) (*UpdateAttendanceUserStatsViewResp, *Response, error) + mockAttendanceGetAttendanceUserStatsData func(ctx context.Context, request *GetAttendanceUserStatsDataReq, options ...MethodOptionFunc) (*GetAttendanceUserStatsDataResp, *Response, error) + mockAttendanceGetAttendanceUserApproval func(ctx context.Context, request *GetAttendanceUserApprovalReq, options ...MethodOptionFunc) (*GetAttendanceUserApprovalResp, *Response, error) + mockAttendanceCreateAttendanceUserApproval func(ctx context.Context, request *CreateAttendanceUserApprovalReq, options ...MethodOptionFunc) (*CreateAttendanceUserApprovalResp, *Response, error) + mockAttendanceUpdateAttendanceRemedyApproval func(ctx context.Context, request *UpdateAttendanceRemedyApprovalReq, options ...MethodOptionFunc) (*UpdateAttendanceRemedyApprovalResp, *Response, error) + mockAttendanceBatchGetAttendanceUserFlow func(ctx context.Context, request *BatchGetAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchGetAttendanceUserFlowResp, *Response, error) + mockAttendanceGetAttendanceUserFlow func(ctx context.Context, request *GetAttendanceUserFlowReq, options ...MethodOptionFunc) (*GetAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTask func(ctx context.Context, request *GetAttendanceUserTaskReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserFlow func(ctx context.Context, request *BatchCreateAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserFlowResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedyAllowedRemedyList func(ctx context.Context, request *GetAttendanceUserTaskRemedyAllowedRemedyListReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyAllowedRemedyListResp, *Response, error) - mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) mockAttendanceGetAttendanceUserTaskRemedy func(ctx context.Context, request *GetAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*GetAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceCreateAttendanceUserTaskRemedy func(ctx context.Context, request *CreateAttendanceUserTaskRemedyReq, options ...MethodOptionFunc) (*CreateAttendanceUserTaskRemedyResp, *Response, error) + mockAttendanceGetAttendanceUserSettingList func(ctx context.Context, request *GetAttendanceUserSettingListReq, options ...MethodOptionFunc) (*GetAttendanceUserSettingListResp, *Response, error) + mockAttendanceUpdateAttendanceUserSetting func(ctx context.Context, request *UpdateAttendanceUserSettingReq, options ...MethodOptionFunc) (*UpdateAttendanceUserSettingResp, *Response, error) + mockAttendanceDownloadAttendanceFile func(ctx context.Context, request *DownloadAttendanceFileReq, options ...MethodOptionFunc) (*DownloadAttendanceFileResp, *Response, error) + mockAttendanceUploadAttendanceFile func(ctx context.Context, request *UploadAttendanceFileReq, options ...MethodOptionFunc) (*UploadAttendanceFileResp, *Response, error) + mockAttendanceDeleteAttendanceArchiveRuleReport func(ctx context.Context, request *DeleteAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*DeleteAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceListAttendanceArchiveRule func(ctx context.Context, request *ListAttendanceArchiveRuleReq, options ...MethodOptionFunc) (*ListAttendanceArchiveRuleResp, *Response, error) + mockAttendanceUploadAttendanceArchiveRuleReport func(ctx context.Context, request *UploadAttendanceArchiveRuleReportReq, options ...MethodOptionFunc) (*UploadAttendanceArchiveRuleReportResp, *Response, error) + mockAttendanceCreateAttendanceArchiveRuleUserStatsFieldsQuery func(ctx context.Context, request *CreateAttendanceArchiveRuleUserStatsFieldsQueryReq, options ...MethodOptionFunc) (*CreateAttendanceArchiveRuleUserStatsFieldsQueryResp, *Response, error) + mockAttendanceListAttendanceGroupUser func(ctx context.Context, request *ListAttendanceGroupUserReq, options ...MethodOptionFunc) (*ListAttendanceGroupUserResp, *Response, error) + mockAttendanceBatchCreateAttendanceUserDailyShiftTemp func(ctx context.Context, request *BatchCreateAttendanceUserDailyShiftTempReq, options ...MethodOptionFunc) (*BatchCreateAttendanceUserDailyShiftTempResp, *Response, error) + mockAttendanceBatchDeleteAttendanceUserFlow func(ctx context.Context, request *BatchDeleteAttendanceUserFlowReq, options ...MethodOptionFunc) (*BatchDeleteAttendanceUserFlowResp, *Response, error) + mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetAccessToken func(ctx context.Context, request *GetAccessTokenReq, options ...MethodOptionFunc) (*GetAccessTokenResp, *Response, error) mockAuthRefreshAccessToken func(ctx context.Context, request *RefreshAccessTokenReq, options ...MethodOptionFunc) (*RefreshAccessTokenResp, *Response, error) - mockAuthResendAppTicket func(ctx context.Context, request *ResendAppTicketReq, options ...MethodOptionFunc) (*ResendAppTicketResp, *Response, error) mockAuthGetUserInfo func(ctx context.Context, request *GetUserInfoReq, options ...MethodOptionFunc) (*GetUserInfoResp, *Response, error) mockAuthenCreateAuthenAccessToken func(ctx context.Context, request *CreateAuthenAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenAccessTokenResp, *Response, error) mockAuthenCreateAuthenRefreshAccessToken func(ctx context.Context, request *CreateAuthenRefreshAccessTokenReq, options ...MethodOptionFunc) (*CreateAuthenRefreshAccessTokenResp, *Response, error) - mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeCreateBaikeDraft func(ctx context.Context, request *CreateBaikeDraftReq, options ...MethodOptionFunc) (*CreateBaikeDraftResp, *Response, error) mockBaikeCreateBaikeUpdate func(ctx context.Context, request *CreateBaikeUpdateReq, options ...MethodOptionFunc) (*CreateBaikeUpdateResp, *Response, error) mockBaikeCreateBaikeEntity func(ctx context.Context, request *CreateBaikeEntityReq, options ...MethodOptionFunc) (*CreateBaikeEntityResp, *Response, error) - mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntity func(ctx context.Context, request *GetBaikeEntityReq, options ...MethodOptionFunc) (*GetBaikeEntityResp, *Response, error) - mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) mockBaikeGetBaikeEntityList func(ctx context.Context, request *GetBaikeEntityListReq, options ...MethodOptionFunc) (*GetBaikeEntityListResp, *Response, error) mockBaikeMatchBaikeEntity func(ctx context.Context, request *MatchBaikeEntityReq, options ...MethodOptionFunc) (*MatchBaikeEntityResp, *Response, error) mockBaikeSearchBaikeEntity func(ctx context.Context, request *SearchBaikeEntityReq, options ...MethodOptionFunc) (*SearchBaikeEntityResp, *Response, error) - mockBaikeUpdateBaikeEntity func(ctx context.Context, request *UpdateBaikeEntityReq, options ...MethodOptionFunc) (*UpdateBaikeEntityResp, *Response, error) - mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaikeHighlightBaikeEntity func(ctx context.Context, request *HighlightBaikeEntityReq, options ...MethodOptionFunc) (*HighlightBaikeEntityResp, *Response, error) + mockBaikeExtractBaikeEntity func(ctx context.Context, request *ExtractBaikeEntityReq, options ...MethodOptionFunc) (*ExtractBaikeEntityResp, *Response, error) + mockBaikeGetBaikeClassificationList func(ctx context.Context, request *GetBaikeClassificationListReq, options ...MethodOptionFunc) (*GetBaikeClassificationListResp, *Response, error) mockBaikeUploadBaikeImage func(ctx context.Context, request *UploadBaikeImageReq, options ...MethodOptionFunc) (*UploadBaikeImageResp, *Response, error) - mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) - mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) - mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) - mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) - mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) - mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) - mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) - mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) - mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) - mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) - mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) - mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) - mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) - mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) - mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) + mockBaikeDownloadBaikeImage func(ctx context.Context, request *DownloadBaikeImageReq, options ...MethodOptionFunc) (*DownloadBaikeImageResp, *Response, error) + mockBaseCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) + mockBaseListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) + mockBaseUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) mockBitableCopyBitableDashboard func(ctx context.Context, request *CopyBitableDashboardReq, options ...MethodOptionFunc) (*CopyBitableDashboardResp, *Response, error) mockBitableGetBitableDashboardList func(ctx context.Context, request *GetBitableDashboardListReq, options ...MethodOptionFunc) (*GetBitableDashboardListResp, *Response, error) - mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) - mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) - mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) - mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) - mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) - mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) - mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) - mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) - mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) - mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) - mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) + mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) + mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) + mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) + mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) mockBitableGetBitableRecord func(ctx context.Context, request *GetBitableRecordReq, options ...MethodOptionFunc) (*GetBitableRecordResp, *Response, error) mockBitableGetBitableRecordList func(ctx context.Context, request *GetBitableRecordListReq, options ...MethodOptionFunc) (*GetBitableRecordListResp, *Response, error) mockBitableSearchBitableRecord func(ctx context.Context, request *SearchBitableRecordReq, options ...MethodOptionFunc) (*SearchBitableRecordResp, *Response, error) + mockBitableCreateBitableRecord func(ctx context.Context, request *CreateBitableRecordReq, options ...MethodOptionFunc) (*CreateBitableRecordResp, *Response, error) mockBitableUpdateBitableRecord func(ctx context.Context, request *UpdateBitableRecordReq, options ...MethodOptionFunc) (*UpdateBitableRecordResp, *Response, error) - mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) - mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) + mockBitableDeleteBitableRecord func(ctx context.Context, request *DeleteBitableRecordReq, options ...MethodOptionFunc) (*DeleteBitableRecordResp, *Response, error) + mockBitableBatchCreateBitableRecord func(ctx context.Context, request *BatchCreateBitableRecordReq, options ...MethodOptionFunc) (*BatchCreateBitableRecordResp, *Response, error) + mockBitableBatchUpdateBitableRecord func(ctx context.Context, request *BatchUpdateBitableRecordReq, options ...MethodOptionFunc) (*BatchUpdateBitableRecordResp, *Response, error) + mockBitableBatchDeleteBitableRecord func(ctx context.Context, request *BatchDeleteBitableRecordReq, options ...MethodOptionFunc) (*BatchDeleteBitableRecordResp, *Response, error) + mockBitableGetBitableFieldList func(ctx context.Context, request *GetBitableFieldListReq, options ...MethodOptionFunc) (*GetBitableFieldListResp, *Response, error) + mockBitableCreateBitableField func(ctx context.Context, request *CreateBitableFieldReq, options ...MethodOptionFunc) (*CreateBitableFieldResp, *Response, error) + mockBitableUpdateBitableField func(ctx context.Context, request *UpdateBitableFieldReq, options ...MethodOptionFunc) (*UpdateBitableFieldResp, *Response, error) + mockBitableDeleteBitableField func(ctx context.Context, request *DeleteBitableFieldReq, options ...MethodOptionFunc) (*DeleteBitableFieldResp, *Response, error) + mockBitableGetBitableAppRoleList func(ctx context.Context, request *GetBitableAppRoleListReq, options ...MethodOptionFunc) (*GetBitableAppRoleListResp, *Response, error) + mockBitableCreateBitableAppRole func(ctx context.Context, request *CreateBitableAppRoleReq, options ...MethodOptionFunc) (*CreateBitableAppRoleResp, *Response, error) + mockBitableDeleteBitableAppRole func(ctx context.Context, request *DeleteBitableAppRoleReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleResp, *Response, error) + mockBitableUpdateBitableAppRole func(ctx context.Context, request *UpdateBitableAppRoleReq, options ...MethodOptionFunc) (*UpdateBitableAppRoleResp, *Response, error) + mockBitableBatchDeleteBitableAppRoleMember func(ctx context.Context, request *BatchDeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteBitableAppRoleMemberResp, *Response, error) + mockBitableBatchCreateBitableAppRoleMember func(ctx context.Context, request *BatchCreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateBitableAppRoleMemberResp, *Response, error) + mockBitableGetBitableAppRoleMemberList func(ctx context.Context, request *GetBitableAppRoleMemberListReq, options ...MethodOptionFunc) (*GetBitableAppRoleMemberListResp, *Response, error) + mockBitableCreateBitableAppRoleMember func(ctx context.Context, request *CreateBitableAppRoleMemberReq, options ...MethodOptionFunc) (*CreateBitableAppRoleMemberResp, *Response, error) + mockBitableDeleteBitableAppRoleMember func(ctx context.Context, request *DeleteBitableAppRoleMemberReq, options ...MethodOptionFunc) (*DeleteBitableAppRoleMemberResp, *Response, error) mockBitableCreateBitableTable func(ctx context.Context, request *CreateBitableTableReq, options ...MethodOptionFunc) (*CreateBitableTableResp, *Response, error) + mockBitableBatchCreateBitableTable func(ctx context.Context, request *BatchCreateBitableTableReq, options ...MethodOptionFunc) (*BatchCreateBitableTableResp, *Response, error) mockBitableDeleteBitableTable func(ctx context.Context, request *DeleteBitableTableReq, options ...MethodOptionFunc) (*DeleteBitableTableResp, *Response, error) - mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) - mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) - mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) - mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) - mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableBatchDeleteBitableTable func(ctx context.Context, request *BatchDeleteBitableTableReq, options ...MethodOptionFunc) (*BatchDeleteBitableTableResp, *Response, error) mockBitableUpdateBitableTable func(ctx context.Context, request *UpdateBitableTableReq, options ...MethodOptionFunc) (*UpdateBitableTableResp, *Response, error) - mockBitableCreateBitableView func(ctx context.Context, request *CreateBitableViewReq, options ...MethodOptionFunc) (*CreateBitableViewResp, *Response, error) - mockBitableDeleteBitableView func(ctx context.Context, request *DeleteBitableViewReq, options ...MethodOptionFunc) (*DeleteBitableViewResp, *Response, error) - mockBitableGetBitableView func(ctx context.Context, request *GetBitableViewReq, options ...MethodOptionFunc) (*GetBitableViewResp, *Response, error) - mockBitableGetBitableViewList func(ctx context.Context, request *GetBitableViewListReq, options ...MethodOptionFunc) (*GetBitableViewListResp, *Response, error) - mockBitableUpdateBitableView func(ctx context.Context, request *UpdateBitableViewReq, options ...MethodOptionFunc) (*UpdateBitableViewResp, *Response, error) - mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) + mockBitableGetBitableTableList func(ctx context.Context, request *GetBitableTableListReq, options ...MethodOptionFunc) (*GetBitableTableListResp, *Response, error) + mockBitableUpdateBitableTableForm func(ctx context.Context, request *UpdateBitableTableFormReq, options ...MethodOptionFunc) (*UpdateBitableTableFormResp, *Response, error) + mockBitableGetBitableTableForm func(ctx context.Context, request *GetBitableTableFormReq, options ...MethodOptionFunc) (*GetBitableTableFormResp, *Response, error) + mockBitableUpdateBitableTableFormField func(ctx context.Context, request *UpdateBitableTableFormFieldReq, options ...MethodOptionFunc) (*UpdateBitableTableFormFieldResp, *Response, error) + mockBitableGetBitableTableFormFieldList func(ctx context.Context, request *GetBitableTableFormFieldListReq, options ...MethodOptionFunc) (*GetBitableTableFormFieldListResp, *Response, error) + mockBitableCopyBitableApp func(ctx context.Context, request *CopyBitableAppReq, options ...MethodOptionFunc) (*CopyBitableAppResp, *Response, error) + mockBitableCreateBitableApp func(ctx context.Context, request *CreateBitableAppReq, options ...MethodOptionFunc) (*CreateBitableAppResp, *Response, error) + mockBitableGetBitableMeta func(ctx context.Context, request *GetBitableMetaReq, options ...MethodOptionFunc) (*GetBitableMetaResp, *Response, error) + mockBitableUpdateBitableMeta func(ctx context.Context, request *UpdateBitableMetaReq, options ...MethodOptionFunc) (*UpdateBitableMetaResp, *Response, error) + mockBitableListBitableAppBlockWorkflow func(ctx context.Context, request *ListBitableAppBlockWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppBlockWorkflowResp, *Response, error) + mockBitableBatchGetBitableAppTableRecord func(ctx context.Context, request *BatchGetBitableAppTableRecordReq, options ...MethodOptionFunc) (*BatchGetBitableAppTableRecordResp, *Response, error) + mockBitableListBitableAppWorkflow func(ctx context.Context, request *ListBitableAppWorkflowReq, options ...MethodOptionFunc) (*ListBitableAppWorkflowResp, *Response, error) + mockBitableUpdateBitableAppWorkflow func(ctx context.Context, request *UpdateBitableAppWorkflowReq, options ...MethodOptionFunc) (*UpdateBitableAppWorkflowResp, *Response, error) + mockBoardCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) + mockBoardCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockBoardDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockBoardGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) + mockBoardUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) mockBotGetBotInfo func(ctx context.Context, request *GetBotInfoReq, options ...MethodOptionFunc) (*GetBotInfoResp, *Response, error) + mockBotAddBotToChat func(ctx context.Context, request *AddBotToChatReq, options ...MethodOptionFunc) (*AddBotToChatResp, *Response, error) mockCalendarCreateCalendarACL func(ctx context.Context, request *CreateCalendarACLReq, options ...MethodOptionFunc) (*CreateCalendarACLResp, *Response, error) mockCalendarDeleteCalendarACL func(ctx context.Context, request *DeleteCalendarACLReq, options ...MethodOptionFunc) (*DeleteCalendarACLResp, *Response, error) mockCalendarGetCalendarACLList func(ctx context.Context, request *GetCalendarACLListReq, options ...MethodOptionFunc) (*GetCalendarACLListResp, *Response, error) mockCalendarSubscribeCalendarACL func(ctx context.Context, request *SubscribeCalendarACLReq, options ...MethodOptionFunc) (*SubscribeCalendarACLResp, *Response, error) mockCalendarUnsubscribeCalendarACL func(ctx context.Context, request *UnsubscribeCalendarACLReq, options ...MethodOptionFunc) (*UnsubscribeCalendarACLResp, *Response, error) + mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) mockCalendarCreateCalendar func(ctx context.Context, request *CreateCalendarReq, options ...MethodOptionFunc) (*CreateCalendarResp, *Response, error) mockCalendarDeleteCalendar func(ctx context.Context, request *DeleteCalendarReq, options ...MethodOptionFunc) (*DeleteCalendarResp, *Response, error) - mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) - mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) - mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) - mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) + mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) + mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) + mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) + mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) + mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) + mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) mockCalendarCreateCalendarEvent func(ctx context.Context, request *CreateCalendarEventReq, options ...MethodOptionFunc) (*CreateCalendarEventResp, *Response, error) mockCalendarDeleteCalendarEvent func(ctx context.Context, request *DeleteCalendarEventReq, options ...MethodOptionFunc) (*DeleteCalendarEventResp, *Response, error) mockCalendarGetCalendarEvent func(ctx context.Context, request *GetCalendarEventReq, options ...MethodOptionFunc) (*GetCalendarEventResp, *Response, error) mockCalendarGetCalendarEventList func(ctx context.Context, request *GetCalendarEventListReq, options ...MethodOptionFunc) (*GetCalendarEventListResp, *Response, error) - mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) - mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) - mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) - mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) - mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) mockCalendarUpdateCalendarEvent func(ctx context.Context, request *UpdateCalendarEventReq, options ...MethodOptionFunc) (*UpdateCalendarEventResp, *Response, error) - mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) mockCalendarSearchCalendarEvent func(ctx context.Context, request *SearchCalendarEventReq, options ...MethodOptionFunc) (*SearchCalendarEventResp, *Response, error) mockCalendarSubscribeCalendarEvent func(ctx context.Context, request *SubscribeCalendarEventReq, options ...MethodOptionFunc) (*SubscribeCalendarEventResp, *Response, error) mockCalendarUnsubscribeCalendarEvent func(ctx context.Context, request *UnsubscribeCalendarEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarEventResp, *Response, error) - mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) - mockCalendarGetCalendar func(ctx context.Context, request *GetCalendarReq, options ...MethodOptionFunc) (*GetCalendarResp, *Response, error) - mockCalendarGetCalendarList func(ctx context.Context, request *GetCalendarListReq, options ...MethodOptionFunc) (*GetCalendarListResp, *Response, error) - mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) - mockCalendarUpdateCalendar func(ctx context.Context, request *UpdateCalendarReq, options ...MethodOptionFunc) (*UpdateCalendarResp, *Response, error) - mockCalendarGetPrimaryCalendar func(ctx context.Context, request *GetPrimaryCalendarReq, options ...MethodOptionFunc) (*GetPrimaryCalendarResp, *Response, error) - mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) - mockCalendarSearchCalendar func(ctx context.Context, request *SearchCalendarReq, options ...MethodOptionFunc) (*SearchCalendarResp, *Response, error) - mockCalendarSubscribeCalendar func(ctx context.Context, request *SubscribeCalendarReq, options ...MethodOptionFunc) (*SubscribeCalendarResp, *Response, error) - mockCalendarSubscribeCalendarChangeEvent func(ctx context.Context, request *SubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*SubscribeCalendarChangeEventResp, *Response, error) + mockCalendarReplyCalendarEvent func(ctx context.Context, request *ReplyCalendarEventReq, options ...MethodOptionFunc) (*ReplyCalendarEventResp, *Response, error) + mockCalendarGetCalendarEventInstanceList func(ctx context.Context, request *GetCalendarEventInstanceListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceListResp, *Response, error) + mockCalendarGetCalendarEventInstanceViewList func(ctx context.Context, request *GetCalendarEventInstanceViewListReq, options ...MethodOptionFunc) (*GetCalendarEventInstanceViewListResp, *Response, error) + mockCalendarDeleteCalendarEventMeetingChat func(ctx context.Context, request *DeleteCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*DeleteCalendarEventMeetingChatResp, *Response, error) + mockCalendarCreateCalendarEventMeetingChat func(ctx context.Context, request *CreateCalendarEventMeetingChatReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingChatResp, *Response, error) mockCalendarCreateCalendarTimeoffEvent func(ctx context.Context, request *CreateCalendarTimeoffEventReq, options ...MethodOptionFunc) (*CreateCalendarTimeoffEventResp, *Response, error) mockCalendarDeleteCalendarTimeoffEvent func(ctx context.Context, request *DeleteCalendarTimeoffEventReq, options ...MethodOptionFunc) (*DeleteCalendarTimeoffEventResp, *Response, error) - mockCalendarUnsubscribeCalendar func(ctx context.Context, request *UnsubscribeCalendarReq, options ...MethodOptionFunc) (*UnsubscribeCalendarResp, *Response, error) - mockCalendarUnsubscribeCalendarChangeEvent func(ctx context.Context, request *UnsubscribeCalendarChangeEventReq, options ...MethodOptionFunc) (*UnsubscribeCalendarChangeEventResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) + mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) + mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) + mockCalendarCreateCalendarEventAttendee func(ctx context.Context, request *CreateCalendarEventAttendeeReq, options ...MethodOptionFunc) (*CreateCalendarEventAttendeeResp, *Response, error) + mockCalendarDeleteCalendarEventAttendee func(ctx context.Context, request *DeleteCalendarEventAttendeeReq, options ...MethodOptionFunc) (*DeleteCalendarEventAttendeeResp, *Response, error) + mockCalendarGetCalendarEventAttendeeList func(ctx context.Context, request *GetCalendarEventAttendeeListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeListResp, *Response, error) + mockCalendarGetCalendarEventAttendeeChatMemberList func(ctx context.Context, request *GetCalendarEventAttendeeChatMemberListReq, options ...MethodOptionFunc) (*GetCalendarEventAttendeeChatMemberListResp, *Response, error) + mockCalendarGetCalendarFreeBusyList func(ctx context.Context, request *GetCalendarFreeBusyListReq, options ...MethodOptionFunc) (*GetCalendarFreeBusyListResp, *Response, error) + mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) mockCalendarCreateCalendarExchangeBinding func(ctx context.Context, request *CreateCalendarExchangeBindingReq, options ...MethodOptionFunc) (*CreateCalendarExchangeBindingResp, *Response, error) mockCalendarDeleteCalendarExchangeBinding func(ctx context.Context, request *DeleteCalendarExchangeBindingReq, options ...MethodOptionFunc) (*DeleteCalendarExchangeBindingResp, *Response, error) mockCalendarGetCalendarExchangeBinding func(ctx context.Context, request *GetCalendarExchangeBindingReq, options ...MethodOptionFunc) (*GetCalendarExchangeBindingResp, *Response, error) + mockCalendarCreateCalendarEventMeetingMinute func(ctx context.Context, request *CreateCalendarEventMeetingMinuteReq, options ...MethodOptionFunc) (*CreateCalendarEventMeetingMinuteResp, *Response, error) + mockCalendarMGetCalendar func(ctx context.Context, request *MGetCalendarReq, options ...MethodOptionFunc) (*MGetCalendarResp, *Response, error) + mockCalendarCreateCalendarPrimarys func(ctx context.Context, request *CreateCalendarPrimarysReq, options ...MethodOptionFunc) (*CreateCalendarPrimarysResp, *Response, error) mockCalendarBatchQueryCalendarFreebusy func(ctx context.Context, request *BatchQueryCalendarFreebusyReq, options ...MethodOptionFunc) (*BatchQueryCalendarFreebusyResp, *Response, error) - mockCalendarGenerateCaldavConf func(ctx context.Context, request *GenerateCaldavConfReq, options ...MethodOptionFunc) (*GenerateCaldavConfResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomFreebusy func(ctx context.Context, request *BatchGetCalendarMeetingRoomFreebusyReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomFreebusyResp, *Response, error) - mockCalendarReplyCalendarMeetingRoomInstance func(ctx context.Context, request *ReplyCalendarMeetingRoomInstanceReq, options ...MethodOptionFunc) (*ReplyCalendarMeetingRoomInstanceResp, *Response, error) - mockCalendarBatchGetCalendarMeetingRoomSummary func(ctx context.Context, request *BatchGetCalendarMeetingRoomSummaryReq, options ...MethodOptionFunc) (*BatchGetCalendarMeetingRoomSummaryResp, *Response, error) - mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) - mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitUpdateCardkitCardElementContent func(ctx context.Context, request *UpdateCardkitCardElementContentReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementContentResp, *Response, error) mockCardkitCreateCardkitCardElement func(ctx context.Context, request *CreateCardkitCardElementReq, options ...MethodOptionFunc) (*CreateCardkitCardElementResp, *Response, error) mockCardkitDeleteCardkitCardElement func(ctx context.Context, request *DeleteCardkitCardElementReq, options ...MethodOptionFunc) (*DeleteCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElement func(ctx context.Context, request *UpdateCardkitCardElementReq, options ...MethodOptionFunc) (*UpdateCardkitCardElementResp, *Response, error) mockCardkitUpdateCardkitCardElementV1 func(ctx context.Context, request *UpdateCardkitCardElementV1Req, options ...MethodOptionFunc) (*UpdateCardkitCardElementV1Resp, *Response, error) + mockCardkitBatchUpdateCardkitCard func(ctx context.Context, request *BatchUpdateCardkitCardReq, options ...MethodOptionFunc) (*BatchUpdateCardkitCardResp, *Response, error) + mockCardkitCreateCardkitCard func(ctx context.Context, request *CreateCardkitCardReq, options ...MethodOptionFunc) (*CreateCardkitCardResp, *Response, error) mockCardkitCreateCardkitCardIDConvert func(ctx context.Context, request *CreateCardkitCardIDConvertReq, options ...MethodOptionFunc) (*CreateCardkitCardIDConvertResp, *Response, error) mockCardkitUpdateCardkitCardSettings func(ctx context.Context, request *UpdateCardkitCardSettingsReq, options ...MethodOptionFunc) (*UpdateCardkitCardSettingsResp, *Response, error) mockCardkitUpdateCardkitCard func(ctx context.Context, request *UpdateCardkitCardReq, options ...MethodOptionFunc) (*UpdateCardkitCardResp, *Response, error) - mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) - mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) + mockCcmDocsCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) mockChatCreateChat func(ctx context.Context, request *CreateChatReq, options ...MethodOptionFunc) (*CreateChatResp, *Response, error) - mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) mockChatGetChat func(ctx context.Context, request *GetChatReq, options ...MethodOptionFunc) (*GetChatResp, *Response, error) - mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) mockChatGetChatOld func(ctx context.Context, request *GetChatOldReq, options ...MethodOptionFunc) (*GetChatOldResp, *Response, error) - mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) + mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatDeleteChat func(ctx context.Context, request *DeleteChatReq, options ...MethodOptionFunc) (*DeleteChatResp, *Response, error) + mockChatGetChatListOfSelf func(ctx context.Context, request *GetChatListOfSelfReq, options ...MethodOptionFunc) (*GetChatListOfSelfResp, *Response, error) + mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) + mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) mockChatCreateChatManager func(ctx context.Context, request *CreateChatManagerReq, options ...MethodOptionFunc) (*CreateChatManagerResp, *Response, error) mockChatDeleteChatManager func(ctx context.Context, request *DeleteChatManagerReq, options ...MethodOptionFunc) (*DeleteChatManagerResp, *Response, error) mockChatAddChatMember func(ctx context.Context, request *AddChatMemberReq, options ...MethodOptionFunc) (*AddChatMemberResp, *Response, error) mockChatDeleteChatMember func(ctx context.Context, request *DeleteChatMemberReq, options ...MethodOptionFunc) (*DeleteChatMemberResp, *Response, error) - mockChatGetChatMemberList func(ctx context.Context, request *GetChatMemberListReq, options ...MethodOptionFunc) (*GetChatMemberListResp, *Response, error) - mockChatIsInChat func(ctx context.Context, request *IsInChatReq, options ...MethodOptionFunc) (*IsInChatResp, *Response, error) - mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) - mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) - mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) - mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) - mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatJoinChat func(ctx context.Context, request *JoinChatReq, options ...MethodOptionFunc) (*JoinChatResp, *Response, error) mockChatGetChatModeration func(ctx context.Context, request *GetChatModerationReq, options ...MethodOptionFunc) (*GetChatModerationResp, *Response, error) mockChatUpdateChatModeration func(ctx context.Context, request *UpdateChatModerationReq, options ...MethodOptionFunc) (*UpdateChatModerationResp, *Response, error) - mockChatSearchChat func(ctx context.Context, request *SearchChatReq, options ...MethodOptionFunc) (*SearchChatResp, *Response, error) + mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) + mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) mockChatGenChatShareLink func(ctx context.Context, request *GenChatShareLinkReq, options ...MethodOptionFunc) (*GenChatShareLinkResp, *Response, error) + mockChatGetChatAnnouncement func(ctx context.Context, request *GetChatAnnouncementReq, options ...MethodOptionFunc) (*GetChatAnnouncementResp, *Response, error) + mockChatUpdateChatAnnouncement func(ctx context.Context, request *UpdateChatAnnouncementReq, options ...MethodOptionFunc) (*UpdateChatAnnouncementResp, *Response, error) mockChatCreateChatTab func(ctx context.Context, request *CreateChatTabReq, options ...MethodOptionFunc) (*CreateChatTabResp, *Response, error) mockChatDeleteChatTab func(ctx context.Context, request *DeleteChatTabReq, options ...MethodOptionFunc) (*DeleteChatTabResp, *Response, error) mockChatGetChatTabList func(ctx context.Context, request *GetChatTabListReq, options ...MethodOptionFunc) (*GetChatTabListResp, *Response, error) - mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) mockChatUpdateChatTab func(ctx context.Context, request *UpdateChatTabReq, options ...MethodOptionFunc) (*UpdateChatTabResp, *Response, error) - mockChatDeleteChatTopNotice func(ctx context.Context, request *DeleteChatTopNoticeReq, options ...MethodOptionFunc) (*DeleteChatTopNoticeResp, *Response, error) - mockChatUpdateChatTopNotice func(ctx context.Context, request *UpdateChatTopNoticeReq, options ...MethodOptionFunc) (*UpdateChatTopNoticeResp, *Response, error) - mockChatUpdateChat func(ctx context.Context, request *UpdateChatReq, options ...MethodOptionFunc) (*UpdateChatResp, *Response, error) + mockChatSortChatTab func(ctx context.Context, request *SortChatTabReq, options ...MethodOptionFunc) (*SortChatTabResp, *Response, error) + mockChatCreateChatMenuTree func(ctx context.Context, request *CreateChatMenuTreeReq, options ...MethodOptionFunc) (*CreateChatMenuTreeResp, *Response, error) + mockChatDeleteChatMenuTree func(ctx context.Context, request *DeleteChatMenuTreeReq, options ...MethodOptionFunc) (*DeleteChatMenuTreeResp, *Response, error) + mockChatUpdateChatMenuTree func(ctx context.Context, request *UpdateChatMenuTreeReq, options ...MethodOptionFunc) (*UpdateChatMenuTreeResp, *Response, error) + mockChatSortChatMenuTree func(ctx context.Context, request *SortChatMenuTreeReq, options ...MethodOptionFunc) (*SortChatMenuTreeResp, *Response, error) + mockChatGetChatMenuTree func(ctx context.Context, request *GetChatMenuTreeReq, options ...MethodOptionFunc) (*GetChatMenuTreeResp, *Response, error) mockCompensationCreateCompensationArchive func(ctx context.Context, request *CreateCompensationArchiveReq, options ...MethodOptionFunc) (*CreateCompensationArchiveResp, *Response, error) mockCompensationBatchCreateCompensationLumpSumPayment func(ctx context.Context, request *BatchCreateCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchCreateCompensationLumpSumPaymentResp, *Response, error) mockCompensationBatchRemoveCompensationLumpSumPayment func(ctx context.Context, request *BatchRemoveCompensationLumpSumPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationLumpSumPaymentResp, *Response, error) @@ -426,189 +435,271 @@ type Mock struct { mockCompensationBatchRemoveCompensationRecurringPayment func(ctx context.Context, request *BatchRemoveCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchRemoveCompensationRecurringPaymentResp, *Response, error) mockCompensationBatchUpdateCompensationRecurringPayment func(ctx context.Context, request *BatchUpdateCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*BatchUpdateCompensationRecurringPaymentResp, *Response, error) mockCompensationQueryCompensationRecurringPayment func(ctx context.Context, request *QueryCompensationRecurringPaymentReq, options ...MethodOptionFunc) (*QueryCompensationRecurringPaymentResp, *Response, error) - mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationQueryCompensationSocialArchive func(ctx context.Context, request *QueryCompensationSocialArchiveReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveResp, *Response, error) + mockCompensationQueryCompensationSocialArchiveAdjustRecord func(ctx context.Context, request *QueryCompensationSocialArchiveAdjustRecordReq, options ...MethodOptionFunc) (*QueryCompensationSocialArchiveAdjustRecordResp, *Response, error) mockCompensationListCompensationSocialInsurance func(ctx context.Context, request *ListCompensationSocialInsuranceReq, options ...MethodOptionFunc) (*ListCompensationSocialInsuranceResp, *Response, error) mockCompensationListCompensationSocialPlan func(ctx context.Context, request *ListCompensationSocialPlanReq, options ...MethodOptionFunc) (*ListCompensationSocialPlanResp, *Response, error) mockCompensationQueryCompensationSocialPlan func(ctx context.Context, request *QueryCompensationSocialPlanReq, options ...MethodOptionFunc) (*QueryCompensationSocialPlanResp, *Response, error) - mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) + mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) + mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) + mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) + mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) + mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) + mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) + mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) + mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) + mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) + mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) + mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) + mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) + mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) mockContactCreateDepartment func(ctx context.Context, request *CreateDepartmentReq, options ...MethodOptionFunc) (*CreateDepartmentResp, *Response, error) - mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) - mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) mockContactGetDepartment func(ctx context.Context, request *GetDepartmentReq, options ...MethodOptionFunc) (*GetDepartmentResp, *Response, error) mockContactBatchGetDepartment func(ctx context.Context, request *BatchGetDepartmentReq, options ...MethodOptionFunc) (*BatchGetDepartmentResp, *Response, error) mockContactGetDepartmentList func(ctx context.Context, request *GetDepartmentListReq, options ...MethodOptionFunc) (*GetDepartmentListResp, *Response, error) + mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) + mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) mockContactGetDepartmentListOld func(ctx context.Context, request *GetDepartmentListOldReq, options ...MethodOptionFunc) (*GetDepartmentListOldResp, *Response, error) mockContactGetParentDepartment func(ctx context.Context, request *GetParentDepartmentReq, options ...MethodOptionFunc) (*GetParentDepartmentResp, *Response, error) mockContactSearchDepartment func(ctx context.Context, request *SearchDepartmentReq, options ...MethodOptionFunc) (*SearchDepartmentResp, *Response, error) + mockContactUpdateDepartmentID func(ctx context.Context, request *UpdateDepartmentIDReq, options ...MethodOptionFunc) (*UpdateDepartmentIDResp, *Response, error) + mockContactDeleteDepartment func(ctx context.Context, request *DeleteDepartmentReq, options ...MethodOptionFunc) (*DeleteDepartmentResp, *Response, error) mockContactUnbindDepartmentChat func(ctx context.Context, request *UnbindDepartmentChatReq, options ...MethodOptionFunc) (*UnbindDepartmentChatResp, *Response, error) - mockContactUpdateDepartment func(ctx context.Context, request *UpdateDepartmentReq, options ...MethodOptionFunc) (*UpdateDepartmentResp, *Response, error) - mockContactUpdateDepartmentPatch func(ctx context.Context, request *UpdateDepartmentPatchReq, options ...MethodOptionFunc) (*UpdateDepartmentPatchResp, *Response, error) - mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) - mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) - mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) - mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) - mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) - mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) - mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) - mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) - mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) - mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) + mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) mockContactDeleteContactGroup func(ctx context.Context, request *DeleteContactGroupReq, options ...MethodOptionFunc) (*DeleteContactGroupResp, *Response, error) mockContactGetContactGroup func(ctx context.Context, request *GetContactGroupReq, options ...MethodOptionFunc) (*GetContactGroupResp, *Response, error) - mockContactCreateContactGroup func(ctx context.Context, request *CreateContactGroupReq, options ...MethodOptionFunc) (*CreateContactGroupResp, *Response, error) mockContactGetContactGroupList func(ctx context.Context, request *GetContactGroupListReq, options ...MethodOptionFunc) (*GetContactGroupListResp, *Response, error) + mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactAddContactGroupMember func(ctx context.Context, request *AddContactGroupMemberReq, options ...MethodOptionFunc) (*AddContactGroupMemberResp, *Response, error) mockContactBatchAddContactGroupMember func(ctx context.Context, request *BatchAddContactGroupMemberReq, options ...MethodOptionFunc) (*BatchAddContactGroupMemberResp, *Response, error) - mockContactGetContactMemberGroupList func(ctx context.Context, request *GetContactMemberGroupListReq, options ...MethodOptionFunc) (*GetContactMemberGroupListResp, *Response, error) mockContactDeleteContactGroupMember func(ctx context.Context, request *DeleteContactGroupMemberReq, options ...MethodOptionFunc) (*DeleteContactGroupMemberResp, *Response, error) mockContactBatchDeleteContactGroupMember func(ctx context.Context, request *BatchDeleteContactGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactGroupMemberResp, *Response, error) mockContactGetContactGroupMember func(ctx context.Context, request *GetContactGroupMemberReq, options ...MethodOptionFunc) (*GetContactGroupMemberResp, *Response, error) - mockContactUpdateContactGroup func(ctx context.Context, request *UpdateContactGroupReq, options ...MethodOptionFunc) (*UpdateContactGroupResp, *Response, error) - mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) - mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) - mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) - mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactCreateContactFunctionalRole func(ctx context.Context, request *CreateContactFunctionalRoleReq, options ...MethodOptionFunc) (*CreateContactFunctionalRoleResp, *Response, error) + mockContactDeleteContactFunctionalRole func(ctx context.Context, request *DeleteContactFunctionalRoleReq, options ...MethodOptionFunc) (*DeleteContactFunctionalRoleResp, *Response, error) + mockContactUpdateContactFunctionalRole func(ctx context.Context, request *UpdateContactFunctionalRoleReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleResp, *Response, error) + mockContactBatchCreateContactFunctionalRoleMember func(ctx context.Context, request *BatchCreateContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchCreateContactFunctionalRoleMemberResp, *Response, error) + mockContactBatchDeleteContactFunctionalRoleMember func(ctx context.Context, request *BatchDeleteContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*BatchDeleteContactFunctionalRoleMemberResp, *Response, error) + mockContactUpdateContactFunctionalRoleMemberScope func(ctx context.Context, request *UpdateContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*UpdateContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMemberScope func(ctx context.Context, request *GetContactFunctionalRoleMemberScopeReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberScopeResp, *Response, error) + mockContactGetContactFunctionalRoleMember func(ctx context.Context, request *GetContactFunctionalRoleMemberReq, options ...MethodOptionFunc) (*GetContactFunctionalRoleMemberResp, *Response, error) mockContactCreateContactJobLevel func(ctx context.Context, request *CreateContactJobLevelReq, options ...MethodOptionFunc) (*CreateContactJobLevelResp, *Response, error) mockContactDeleteContactJobLevel func(ctx context.Context, request *DeleteContactJobLevelReq, options ...MethodOptionFunc) (*DeleteContactJobLevelResp, *Response, error) + mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) mockContactGetContactJobLevel func(ctx context.Context, request *GetContactJobLevelReq, options ...MethodOptionFunc) (*GetContactJobLevelResp, *Response, error) mockContactGetContactJobLevelList func(ctx context.Context, request *GetContactJobLevelListReq, options ...MethodOptionFunc) (*GetContactJobLevelListResp, *Response, error) - mockContactUpdateContactJobLevel func(ctx context.Context, request *UpdateContactJobLevelReq, options ...MethodOptionFunc) (*UpdateContactJobLevelResp, *Response, error) + mockContactCreateContactJobFamily func(ctx context.Context, request *CreateContactJobFamilyReq, options ...MethodOptionFunc) (*CreateContactJobFamilyResp, *Response, error) + mockContactDeleteContactJobFamily func(ctx context.Context, request *DeleteContactJobFamilyReq, options ...MethodOptionFunc) (*DeleteContactJobFamilyResp, *Response, error) + mockContactUpdateContactJobFamily func(ctx context.Context, request *UpdateContactJobFamilyReq, options ...MethodOptionFunc) (*UpdateContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamily func(ctx context.Context, request *GetContactJobFamilyReq, options ...MethodOptionFunc) (*GetContactJobFamilyResp, *Response, error) + mockContactGetContactJobFamilyList func(ctx context.Context, request *GetContactJobFamilyListReq, options ...MethodOptionFunc) (*GetContactJobFamilyListResp, *Response, error) mockContactGetContactJobTitle func(ctx context.Context, request *GetContactJobTitleReq, options ...MethodOptionFunc) (*GetContactJobTitleResp, *Response, error) mockContactGetContactJobTitleList func(ctx context.Context, request *GetContactJobTitleListReq, options ...MethodOptionFunc) (*GetContactJobTitleListResp, *Response, error) - mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) - mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) + mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) + mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) + mockContactGetEmployeeTypeEnumList func(ctx context.Context, request *GetEmployeeTypeEnumListReq, options ...MethodOptionFunc) (*GetEmployeeTypeEnumListResp, *Response, error) + mockContactUpdateEmployeeTypeEnumPatch func(ctx context.Context, request *UpdateEmployeeTypeEnumPatchReq, options ...MethodOptionFunc) (*UpdateEmployeeTypeEnumPatchResp, *Response, error) + mockContactDeleteEmployeeTypeEnum func(ctx context.Context, request *DeleteEmployeeTypeEnumReq, options ...MethodOptionFunc) (*DeleteEmployeeTypeEnumResp, *Response, error) + mockContactCreateEmployeeTypeEnum func(ctx context.Context, request *CreateEmployeeTypeEnumReq, options ...MethodOptionFunc) (*CreateEmployeeTypeEnumResp, *Response, error) + mockContactGetContactCustomAttrList func(ctx context.Context, request *GetContactCustomAttrListReq, options ...MethodOptionFunc) (*GetContactCustomAttrListResp, *Response, error) mockContactCreateContactUnit func(ctx context.Context, request *CreateContactUnitReq, options ...MethodOptionFunc) (*CreateContactUnitResp, *Response, error) + mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) mockContactDeleteContactUnit func(ctx context.Context, request *DeleteContactUnitReq, options ...MethodOptionFunc) (*DeleteContactUnitResp, *Response, error) mockContactGetContactUnit func(ctx context.Context, request *GetContactUnitReq, options ...MethodOptionFunc) (*GetContactUnitResp, *Response, error) mockContactGetContactUnitList func(ctx context.Context, request *GetContactUnitListReq, options ...MethodOptionFunc) (*GetContactUnitListResp, *Response, error) - mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactBindContactUnitDepartment func(ctx context.Context, request *BindContactUnitDepartmentReq, options ...MethodOptionFunc) (*BindContactUnitDepartmentResp, *Response, error) mockContactUnbindContactUnitDepartment func(ctx context.Context, request *UnbindContactUnitDepartmentReq, options ...MethodOptionFunc) (*UnbindContactUnitDepartmentResp, *Response, error) - mockContactUpdateContactUnit func(ctx context.Context, request *UpdateContactUnitReq, options ...MethodOptionFunc) (*UpdateContactUnitResp, *Response, error) - mockContactBatchGetUserByID func(ctx context.Context, request *BatchGetUserByIDReq, options ...MethodOptionFunc) (*BatchGetUserByIDResp, *Response, error) - mockContactCreateUser func(ctx context.Context, request *CreateUserReq, options ...MethodOptionFunc) (*CreateUserResp, *Response, error) - mockContactDeleteUser func(ctx context.Context, request *DeleteUserReq, options ...MethodOptionFunc) (*DeleteUserResp, *Response, error) - mockContactGetUser func(ctx context.Context, request *GetUserReq, options ...MethodOptionFunc) (*GetUserResp, *Response, error) - mockContactBatchGetUser func(ctx context.Context, request *BatchGetUserReq, options ...MethodOptionFunc) (*BatchGetUserResp, *Response, error) - mockContactBatchGetUserByIDOld func(ctx context.Context, request *BatchGetUserByIDOldReq, options ...MethodOptionFunc) (*BatchGetUserByIDOldResp, *Response, error) - mockContactGetUserList func(ctx context.Context, request *GetUserListReq, options ...MethodOptionFunc) (*GetUserListResp, *Response, error) - mockContactGetUserListOld func(ctx context.Context, request *GetUserListOldReq, options ...MethodOptionFunc) (*GetUserListOldResp, *Response, error) - mockContactUpdateUserID func(ctx context.Context, request *UpdateUserIDReq, options ...MethodOptionFunc) (*UpdateUserIDResp, *Response, error) - mockContactResurrectUser func(ctx context.Context, request *ResurrectUserReq, options ...MethodOptionFunc) (*ResurrectUserResp, *Response, error) - mockContactSearchUserOld func(ctx context.Context, request *SearchUserOldReq, options ...MethodOptionFunc) (*SearchUserOldResp, *Response, error) - mockContactUpdateUser func(ctx context.Context, request *UpdateUserReq, options ...MethodOptionFunc) (*UpdateUserResp, *Response, error) - mockContactUpdateUserPatch func(ctx context.Context, request *UpdateUserPatchReq, options ...MethodOptionFunc) (*UpdateUserPatchResp, *Response, error) - mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) - mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) - mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactGetContactUnitDepartmentList func(ctx context.Context, request *GetContactUnitDepartmentListReq, options ...MethodOptionFunc) (*GetContactUnitDepartmentListResp, *Response, error) + mockContactGetContactScopeList func(ctx context.Context, request *GetContactScopeListReq, options ...MethodOptionFunc) (*GetContactScopeListResp, *Response, error) mockContactBatchAddContactV2User func(ctx context.Context, request *BatchAddContactV2UserReq, options ...MethodOptionFunc) (*BatchAddContactV2UserResp, *Response, error) - mockContactGetContactWorkCity func(ctx context.Context, request *GetContactWorkCityReq, options ...MethodOptionFunc) (*GetContactWorkCityResp, *Response, error) - mockContactGetContactWorkCityList func(ctx context.Context, request *GetContactWorkCityListReq, options ...MethodOptionFunc) (*GetContactWorkCityListResp, *Response, error) - mockCoreHRGetCoreHRApprovalGroups func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) - mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) - mockCoreHRListCoreHRApprover func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) - mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) - mockCoreHRAddCoreHRAuthorizationRoleAssign func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) - mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) - mockCoreHRRemoveCoreHRAuthorizationRoleAssign func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRUpdateCoreHRAuthorizationRoleAssign func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) - mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockContactBatchAddContactV2Department func(ctx context.Context, request *BatchAddContactV2DepartmentReq, options ...MethodOptionFunc) (*BatchAddContactV2DepartmentResp, *Response, error) + mockContactGetContactV2Task func(ctx context.Context, request *GetContactV2TaskReq, options ...MethodOptionFunc) (*GetContactV2TaskResp, *Response, error) + mockContactListContactV2Role func(ctx context.Context, request *ListContactV2RoleReq, options ...MethodOptionFunc) (*ListContactV2RoleResp, *Response, error) + mockCoreHRDeleteCoreHRDepartmentV2 func(ctx context.Context, request *DeleteCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentV2Resp, *Response, error) + mockCoreHRUpdateCoreHRDepartmentV2 func(ctx context.Context, request *UpdateCoreHRDepartmentV2Req, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentV2Resp, *Response, error) + mockCoreHRCreateCoreHRJobChangeV2 func(ctx context.Context, request *CreateCoreHRJobChangeV2Req, options ...MethodOptionFunc) (*CreateCoreHRJobChangeV2Resp, *Response, error) + mockCoreHRCreateCoreHRPersonV1 func(ctx context.Context, request *CreateCoreHRPersonV1Req, options ...MethodOptionFunc) (*CreateCoreHRPersonV1Resp, *Response, error) + mockCoreHRUpdateCoreHRPersonV1 func(ctx context.Context, request *UpdateCoreHRPersonV1Req, options ...MethodOptionFunc) (*UpdateCoreHRPersonV1Resp, *Response, error) + mockCoreHRDeleteCoreHRPreHireV2 func(ctx context.Context, request *DeleteCoreHRPreHireV2Req, options ...MethodOptionFunc) (*DeleteCoreHRPreHireV2Resp, *Response, error) + mockCoreHRUpdateCoreHRPreHireV2 func(ctx context.Context, request *UpdateCoreHRPreHireV2Req, options ...MethodOptionFunc) (*UpdateCoreHRPreHireV2Resp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableDataV2 func(ctx context.Context, request *GetCoreHRProcessFormVariableDataV2Req, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataV2Resp, *Response, error) + mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) mockCoreHRSearchCoreHRBank func(ctx context.Context, request *SearchCoreHRBankReq, options ...MethodOptionFunc) (*SearchCoreHRBankResp, *Response, error) - mockCoreHRSearchCoreHRBasicInfoLanguage func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) - mockCoreHRSearchCoreHRBasicInfoTimeZone func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) - mockCoreHRGetCoreHrpByDepartment func(ctx context.Context, request *GetCoreHrpByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHrpByDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHrpByEmployee func(ctx context.Context, request *BatchGetCoreHrpByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHrpByEmployeeResp, *Response, error) - mockCoreHRGetCoreHrpList func(ctx context.Context, request *GetCoreHrpListReq, options ...MethodOptionFunc) (*GetCoreHrpListResp, *Response, error) + mockCoreHRSearchCoreHRBankBranch func(ctx context.Context, request *SearchCoreHRBankBranchReq, options ...MethodOptionFunc) (*SearchCoreHRBankBranchResp, *Response, error) + mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) + mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) + mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) mockCoreHRSearchCoreHRCity func(ctx context.Context, request *SearchCoreHRCityReq, options ...MethodOptionFunc) (*SearchCoreHRCityResp, *Response, error) - mockCoreHRCreateCoreHRCommonDataIDConvert func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) - mockCoreHRAddCoreHRCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) - mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) - mockCoreHRCreateCoreHRCompanyActive func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) - mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) - mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) + mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) + mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) + mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) + mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) + mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) + mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) + mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) + mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) + mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) + mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) + mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) + mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) + mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) + mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) + mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) + mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) + mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) + mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) + mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) + mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) + mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) + mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) + mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) + mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) + mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) + mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) + mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) + mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) + mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) + mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) + mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) + mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) + mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) + mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) + mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) + mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) + mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) + mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) + mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) + mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) + mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) mockCoreHRGetCoreHRCompany func(ctx context.Context, request *GetCoreHRCompanyReq, options ...MethodOptionFunc) (*GetCoreHRCompanyResp, *Response, error) - mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) mockCoreHRGetCoreHRCompanyList func(ctx context.Context, request *GetCoreHRCompanyListReq, options ...MethodOptionFunc) (*GetCoreHRCompanyListResp, *Response, error) - mockCoreHRQueryCoreHRCompanyMultiTimeline func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRCompanyRecentChange func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) + mockCoreHRBatchGetCoreHRCompany func(ctx context.Context, request *BatchGetCoreHRCompanyReq, options ...MethodOptionFunc) (*BatchGetCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCompany func(ctx context.Context, request *CreateCoreHRCompanyReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyResp, *Response, error) mockCoreHRUpdateCoreHRCompany func(ctx context.Context, request *UpdateCoreHRCompanyReq, options ...MethodOptionFunc) (*UpdateCoreHRCompanyResp, *Response, error) + mockCoreHRDeleteCoreHRCompany func(ctx context.Context, request *DeleteCoreHRCompanyReq, options ...MethodOptionFunc) (*DeleteCoreHRCompanyResp, *Response, error) + mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) + mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) + mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) + mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) + mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) + mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) + mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) + mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) + mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) + mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) + mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) + mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) + mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) + mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) + mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) + mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) + mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) + mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) + mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) + mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) + mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) + mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) + mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) + mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) + mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) + mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) + mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) + mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) + mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) + mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) + mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) + mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) + mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) + mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) + mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) + mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) + mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) + mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) + mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) + mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) + mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) + mockCoreHRBatchGetCoreHRByEmployee func(ctx context.Context, request *BatchGetCoreHRByEmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHRByEmployeeResp, *Response, error) + mockCoreHRGetCoreHRByDepartment func(ctx context.Context, request *GetCoreHRByDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRByDepartmentResp, *Response, error) + mockCoreHRGetCoreHRList func(ctx context.Context, request *GetCoreHRListReq, options ...MethodOptionFunc) (*GetCoreHRListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) + mockCoreHRSearchCoreHRAssignedUser func(ctx context.Context, request *SearchCoreHRAssignedUserReq, options ...MethodOptionFunc) (*SearchCoreHRAssignedUserResp, *Response, error) + mockCoreHRGetCoreHRAuthorization func(ctx context.Context, request *GetCoreHRAuthorizationReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationResp, *Response, error) + mockCoreHRGetCoreHRAuthorizationList func(ctx context.Context, request *GetCoreHRAuthorizationListReq, options ...MethodOptionFunc) (*GetCoreHRAuthorizationListResp, *Response, error) + mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) + mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) + mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) + mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) + mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) mockCoreHRQueryCoreHRCompensationArchive func(ctx context.Context, request *QueryCoreHRCompensationArchiveReq, options ...MethodOptionFunc) (*QueryCoreHRCompensationArchiveResp, *Response, error) mockCoreHRGetCoreHRCompensationChangeReasonList func(ctx context.Context, request *GetCoreHRCompensationChangeReasonListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationChangeReasonListResp, *Response, error) mockCoreHRGetCoreHRCompensationIndicatorList func(ctx context.Context, request *GetCoreHRCompensationIndicatorListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationIndicatorListResp, *Response, error) - mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) mockCoreHRGetCoreHRCompensationItemList func(ctx context.Context, request *GetCoreHRCompensationItemListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemListResp, *Response, error) + mockCoreHRGetCoreHRCompensationItemCategoryList func(ctx context.Context, request *GetCoreHRCompensationItemCategoryListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationItemCategoryListResp, *Response, error) mockCoreHRGetCoreHRCompensationPlanList func(ctx context.Context, request *GetCoreHRCompensationPlanListReq, options ...MethodOptionFunc) (*GetCoreHRCompensationPlanListResp, *Response, error) - mockCoreHRMatchCoreHRCompensationStandard func(ctx context.Context, request *MatchCoreHRCompensationStandardReq, options ...MethodOptionFunc) (*MatchCoreHRCompensationStandardResp, *Response, error) - mockCoreHRCreateCoreHRContract func(ctx context.Context, request *CreateCoreHRContractReq, options ...MethodOptionFunc) (*CreateCoreHRContractResp, *Response, error) - mockCoreHRDeleteCoreHRContract func(ctx context.Context, request *DeleteCoreHRContractReq, options ...MethodOptionFunc) (*DeleteCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContract func(ctx context.Context, request *GetCoreHRContractReq, options ...MethodOptionFunc) (*GetCoreHRContractResp, *Response, error) - mockCoreHRGetCoreHRContractList func(ctx context.Context, request *GetCoreHRContractListReq, options ...MethodOptionFunc) (*GetCoreHRContractListResp, *Response, error) - mockCoreHRSearchCoreHRContract func(ctx context.Context, request *SearchCoreHRContractReq, options ...MethodOptionFunc) (*SearchCoreHRContractResp, *Response, error) - mockCoreHRUpdateCoreHRContract func(ctx context.Context, request *UpdateCoreHRContractReq, options ...MethodOptionFunc) (*UpdateCoreHRContractResp, *Response, error) + mockCoreHRGetCoreHRApprovalGroups func(ctx context.Context, request *GetCoreHRApprovalGroupsReq, options ...MethodOptionFunc) (*GetCoreHRApprovalGroupsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *Response, error) + mockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs func(ctx context.Context, request *QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...MethodOptionFunc) (*QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *Response, error) + mockCoreHRListCoreHRApprover func(ctx context.Context, request *ListCoreHRApproverReq, options ...MethodOptionFunc) (*ListCoreHRApproverResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoLanguage func(ctx context.Context, request *SearchCoreHRBasicInfoLanguageReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoLanguageResp, *Response, error) + mockCoreHRSearchCoreHRBasicInfoTimeZone func(ctx context.Context, request *SearchCoreHRBasicInfoTimeZoneReq, options ...MethodOptionFunc) (*SearchCoreHRBasicInfoTimeZoneResp, *Response, error) + mockCoreHRCreateCoreHRCompanyActive func(ctx context.Context, request *CreateCoreHRCompanyActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCompanyActiveResp, *Response, error) + mockCoreHRQueryCoreHRCompanyMultiTimeline func(ctx context.Context, request *QueryCoreHRCompanyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRCompanyRecentChange func(ctx context.Context, request *QueryCoreHRCompanyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCompanyRecentChangeResp, *Response, error) mockCoreHRBatchQueryCoreHRCostAllocation func(ctx context.Context, request *BatchQueryCoreHRCostAllocationReq, options ...MethodOptionFunc) (*BatchQueryCoreHRCostAllocationResp, *Response, error) mockCoreHRCreateCoreHRCostAllocationVersion func(ctx context.Context, request *CreateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostAllocationVersionResp, *Response, error) mockCoreHRRemoveCoreHRCostAllocationVersion func(ctx context.Context, request *RemoveCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRCostAllocationVersionResp, *Response, error) mockCoreHRUpdateCoreHRCostAllocationVersion func(ctx context.Context, request *UpdateCoreHRCostAllocationVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostAllocationVersionResp, *Response, error) - mockCoreHRActiveCoreHRCostCenter func(ctx context.Context, request *ActiveCoreHRCostCenterReq, options ...MethodOptionFunc) (*ActiveCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenter func(ctx context.Context, request *CreateCoreHRCostCenterReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenter func(ctx context.Context, request *DeleteCoreHRCostCenterReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterResp, *Response, error) mockCoreHRQueryCoreHRCostCenterRecentChange func(ctx context.Context, request *QueryCoreHRCostCenterRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCostCenterRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRCostCenter func(ctx context.Context, request *SearchCoreHRCostCenterReq, options ...MethodOptionFunc) (*SearchCoreHRCostCenterResp, *Response, error) - mockCoreHRCreateCoreHRCostCenterVersion func(ctx context.Context, request *CreateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRDeleteCoreHRCostCenterVersion func(ctx context.Context, request *DeleteCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*DeleteCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRUpdateCoreHRCostCenterVersion func(ctx context.Context, request *UpdateCoreHRCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRCostCenterVersionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegion func(ctx context.Context, request *GetCoreHRCountryRegionReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionResp, *Response, error) - mockCoreHRGetCoreHRCountryRegionList func(ctx context.Context, request *GetCoreHRCountryRegionListReq, options ...MethodOptionFunc) (*GetCoreHRCountryRegionListResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegion func(ctx context.Context, request *SearchCoreHRCountryRegionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionResp, *Response, error) - mockCoreHRSearchCoreHRCountryRegionSubdivision func(ctx context.Context, request *SearchCoreHRCountryRegionSubdivisionReq, options ...MethodOptionFunc) (*SearchCoreHRCountryRegionSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRCurrency func(ctx context.Context, request *GetCoreHRCurrencyReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCurrencyList func(ctx context.Context, request *GetCoreHRCurrencyListReq, options ...MethodOptionFunc) (*GetCoreHRCurrencyListResp, *Response, error) - mockCoreHRSearchCoreHRCurrency func(ctx context.Context, request *SearchCoreHRCurrencyReq, options ...MethodOptionFunc) (*SearchCoreHRCurrencyResp, *Response, error) - mockCoreHRGetCoreHRCustomField func(ctx context.Context, request *GetCoreHRCustomFieldReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldList func(ctx context.Context, request *GetCoreHRCustomFieldListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldListResp, *Response, error) - mockCoreHRGetCoreHRCustomFieldObjectApiNameList func(ctx context.Context, request *GetCoreHRCustomFieldObjectApiNameListReq, options ...MethodOptionFunc) (*GetCoreHRCustomFieldObjectApiNameListResp, *Response, error) mockCoreHRCreateCoreHRCustomOrgActive func(ctx context.Context, request *CreateCoreHRCustomOrgActiveReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgActiveResp, *Response, error) mockCoreHRCreateCoreHRCustomOrg func(ctx context.Context, request *CreateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*CreateCoreHRCustomOrgResp, *Response, error) mockCoreHRDeleteCoreHRCustomOrg func(ctx context.Context, request *DeleteCoreHRCustomOrgReq, options ...MethodOptionFunc) (*DeleteCoreHRCustomOrgResp, *Response, error) + mockCoreHRUpdateCoreHRCustomOrg func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) mockCoreHRQueryCoreHRCustomOrg func(ctx context.Context, request *QueryCoreHRCustomOrgReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgResp, *Response, error) mockCoreHRQueryCoreHRCustomOrgRecentChange func(ctx context.Context, request *QueryCoreHRCustomOrgRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRCustomOrgRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRCustomOrg func(ctx context.Context, request *UpdateCoreHRCustomOrgReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgResp, *Response, error) mockCoreHRUpdateCoreHRCustomOrgRule func(ctx context.Context, request *UpdateCoreHRCustomOrgRuleReq, options ...MethodOptionFunc) (*UpdateCoreHRCustomOrgRuleResp, *Response, error) mockCoreHRBatchQueryCoreHRDefaultCostCenter func(ctx context.Context, request *BatchQueryCoreHRDefaultCostCenterReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDefaultCostCenterResp, *Response, error) mockCoreHRCreateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *CreateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*CreateCoreHRDefaultCostCenterVersionResp, *Response, error) mockCoreHRRemoveCoreHRDefaultCostCenterVersion func(ctx context.Context, request *RemoveCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*RemoveCoreHRDefaultCostCenterVersionResp, *Response, error) mockCoreHRUpdateCoreHRDefaultCostCenterVersion func(ctx context.Context, request *UpdateCoreHRDefaultCostCenterVersionReq, options ...MethodOptionFunc) (*UpdateCoreHRDefaultCostCenterVersionResp, *Response, error) - mockCoreHRCreateCoreHRDepartment func(ctx context.Context, request *CreateCoreHRDepartmentReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRDeleteCoreHRDepartment func(ctx context.Context, request *DeleteCoreHRDepartmentReq, options ...MethodOptionFunc) (*DeleteCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartment func(ctx context.Context, request *GetCoreHRDepartmentReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchGetCoreHRDepartment func(ctx context.Context, request *BatchGetCoreHRDepartmentReq, options ...MethodOptionFunc) (*BatchGetCoreHRDepartmentResp, *Response, error) - mockCoreHRGetCoreHRDepartmentList func(ctx context.Context, request *GetCoreHRDepartmentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentListResp, *Response, error) - mockCoreHRGetCoreHRDepartmentParentList func(ctx context.Context, request *GetCoreHRDepartmentParentListReq, options ...MethodOptionFunc) (*GetCoreHRDepartmentParentListResp, *Response, error) + mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) mockCoreHRQueryCoreHRDepartmentOperationLogs func(ctx context.Context, request *QueryCoreHRDepartmentOperationLogsReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentOperationLogsResp, *Response, error) mockCoreHRQueryCoreHRDepartmentRecentChange func(ctx context.Context, request *QueryCoreHRDepartmentRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentRecentChangeResp, *Response, error) - mockCoreHRSearchCoreHRDepartment func(ctx context.Context, request *SearchCoreHRDepartmentReq, options ...MethodOptionFunc) (*SearchCoreHRDepartmentResp, *Response, error) - mockCoreHRBatchQueryCoreHRDepartmentTimeline func(ctx context.Context, request *BatchQueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*BatchQueryCoreHRDepartmentTimelineResp, *Response, error) mockCoreHRQueryCoreHRDepartmentTimeline func(ctx context.Context, request *QueryCoreHRDepartmentTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRDepartmentTimelineResp, *Response, error) mockCoreHRCreateCoreHRDepartmentTree func(ctx context.Context, request *CreateCoreHRDepartmentTreeReq, options ...MethodOptionFunc) (*CreateCoreHRDepartmentTreeResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRUpdateCoreHRDepartment func(ctx context.Context, request *UpdateCoreHRDepartmentReq, options ...MethodOptionFunc) (*UpdateCoreHRDepartmentResp, *Response, error) - mockCoreHRSearchCoreHRDistrict func(ctx context.Context, request *SearchCoreHRDistrictReq, options ...MethodOptionFunc) (*SearchCoreHRDistrictResp, *Response, error) mockCoreHRGetCoreHRDraft func(ctx context.Context, request *GetCoreHRDraftReq, options ...MethodOptionFunc) (*GetCoreHRDraftResp, *Response, error) mockCoreHRCreateCoreHREmployee func(ctx context.Context, request *CreateCoreHREmployeeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeResp, *Response, error) - mockCoreHRBatchGetCoreHREmployee func(ctx context.Context, request *BatchGetCoreHREmployeeReq, options ...MethodOptionFunc) (*BatchGetCoreHREmployeeResp, *Response, error) - mockCoreHRSearchCoreHREmployee func(ctx context.Context, request *SearchCoreHREmployeeReq, options ...MethodOptionFunc) (*SearchCoreHREmployeeResp, *Response, error) - mockCoreHRCreateCoreHREmployeeType func(ctx context.Context, request *CreateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*CreateCoreHREmployeeTypeResp, *Response, error) - mockCoreHRDeleteCoreHREmployeeType func(ctx context.Context, request *DeleteCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeType func(ctx context.Context, request *GetCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeResp, *Response, error) - mockCoreHRGetCoreHREmployeeTypeList func(ctx context.Context, request *GetCoreHREmployeeTypeListReq, options ...MethodOptionFunc) (*GetCoreHREmployeeTypeListResp, *Response, error) - mockCoreHRUpdateCoreHREmployeeType func(ctx context.Context, request *UpdateCoreHREmployeeTypeReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeeTypeResp, *Response, error) mockCoreHRBatchQueryCoreHREmployeesAdditionalJob func(ctx context.Context, request *BatchQueryCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*BatchQueryCoreHREmployeesAdditionalJobResp, *Response, error) mockCoreHRCreateCoreHREmployeesAdditionalJob func(ctx context.Context, request *CreateCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*CreateCoreHREmployeesAdditionalJobResp, *Response, error) mockCoreHRDeleteCoreHREmployeesAdditionalJob func(ctx context.Context, request *DeleteCoreHREmployeesAdditionalJobReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesAdditionalJobResp, *Response, error) @@ -617,163 +708,81 @@ type Mock struct { mockCoreHRDeleteCoreHREmployeesInternationalAssignment func(ctx context.Context, request *DeleteCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*DeleteCoreHREmployeesInternationalAssignmentResp, *Response, error) mockCoreHRListCoreHREmployeesInternationalAssignment func(ctx context.Context, request *ListCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*ListCoreHREmployeesInternationalAssignmentResp, *Response, error) mockCoreHRUpdateCoreHREmployeesInternationalAssignment func(ctx context.Context, request *UpdateCoreHREmployeesInternationalAssignmentReq, options ...MethodOptionFunc) (*UpdateCoreHREmployeesInternationalAssignmentResp, *Response, error) - mockCoreHRCreateCoreHREmployment func(ctx context.Context, request *CreateCoreHREmploymentReq, options ...MethodOptionFunc) (*CreateCoreHREmploymentResp, *Response, error) - mockCoreHRDeleteCoreHREmployment func(ctx context.Context, request *DeleteCoreHREmploymentReq, options ...MethodOptionFunc) (*DeleteCoreHREmploymentResp, *Response, error) - mockCoreHRUpdateCoreHREmployment func(ctx context.Context, request *UpdateCoreHREmploymentReq, options ...MethodOptionFunc) (*UpdateCoreHREmploymentResp, *Response, error) mockCoreHRSearchCoreHREnum func(ctx context.Context, request *SearchCoreHREnumReq, options ...MethodOptionFunc) (*SearchCoreHREnumResp, *Response, error) mockCoreHRBatchGetCoreHRJob func(ctx context.Context, request *BatchGetCoreHRJobReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJobChange func(ctx context.Context, request *CreateCoreHRJobChangeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJobChangeRevoke func(ctx context.Context, request *CreateCoreHRJobChangeRevokeReq, options ...MethodOptionFunc) (*CreateCoreHRJobChangeRevokeResp, *Response, error) - mockCoreHRSearchCoreHRJobChange func(ctx context.Context, request *SearchCoreHRJobChangeReq, options ...MethodOptionFunc) (*SearchCoreHRJobChangeResp, *Response, error) - mockCoreHRCreateCoreHRJob func(ctx context.Context, request *CreateCoreHRJobReq, options ...MethodOptionFunc) (*CreateCoreHRJobResp, *Response, error) - mockCoreHRBatchGetCoreHRJobData func(ctx context.Context, request *BatchGetCoreHRJobDataReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobDataResp, *Response, error) - mockCoreHRCreateCoreHRJobData func(ctx context.Context, request *CreateCoreHRJobDataReq, options ...MethodOptionFunc) (*CreateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJobData func(ctx context.Context, request *DeleteCoreHRJobDataReq, options ...MethodOptionFunc) (*DeleteCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobData func(ctx context.Context, request *GetCoreHRJobDataReq, options ...MethodOptionFunc) (*GetCoreHRJobDataResp, *Response, error) - mockCoreHRGetCoreHRJobDataList func(ctx context.Context, request *GetCoreHRJobDataListReq, options ...MethodOptionFunc) (*GetCoreHRJobDataListResp, *Response, error) - mockCoreHRQueryCoreHRJobData func(ctx context.Context, request *QueryCoreHRJobDataReq, options ...MethodOptionFunc) (*QueryCoreHRJobDataResp, *Response, error) - mockCoreHRUpdateCoreHRJobData func(ctx context.Context, request *UpdateCoreHRJobDataReq, options ...MethodOptionFunc) (*UpdateCoreHRJobDataResp, *Response, error) - mockCoreHRDeleteCoreHRJob func(ctx context.Context, request *DeleteCoreHRJobReq, options ...MethodOptionFunc) (*DeleteCoreHRJobResp, *Response, error) - mockCoreHRCreateCoreHRJobFamily func(ctx context.Context, request *CreateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*CreateCoreHRJobFamilyResp, *Response, error) - mockCoreHRDeleteCoreHRJobFamily func(ctx context.Context, request *DeleteCoreHRJobFamilyReq, options ...MethodOptionFunc) (*DeleteCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJobFamily func(ctx context.Context, request *GetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyResp, *Response, error) - mockCoreHRBatchGetCoreHRJobFamily func(ctx context.Context, request *BatchGetCoreHRJobFamilyReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJobFamilyList func(ctx context.Context, request *GetCoreHRJobFamilyListReq, options ...MethodOptionFunc) (*GetCoreHRJobFamilyListResp, *Response, error) + mockCoreHRQueryCoreHRJobMultiTimeline func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) + mockCoreHRQueryCoreHRJobRecentChange func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) + mockCoreHRRevokeCoreHRJobChange func(ctx context.Context, request *RevokeCoreHRJobChangeReq, options ...MethodOptionFunc) (*RevokeCoreHRJobChangeResp, *Response, error) mockCoreHRQueryCoreHRJobFamilyMultiTimeline func(ctx context.Context, request *QueryCoreHRJobFamilyMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyMultiTimelineResp, *Response, error) mockCoreHRQueryCoreHRJobFamilyRecentChange func(ctx context.Context, request *QueryCoreHRJobFamilyRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobFamilyRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobFamily func(ctx context.Context, request *UpdateCoreHRJobFamilyReq, options ...MethodOptionFunc) (*UpdateCoreHRJobFamilyResp, *Response, error) - mockCoreHRGetCoreHRJob func(ctx context.Context, request *GetCoreHRJobReq, options ...MethodOptionFunc) (*GetCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRJobV2 func(ctx context.Context, request *GetCoreHRJobV2Req, options ...MethodOptionFunc) (*GetCoreHRJobV2Resp, *Response, error) mockCoreHRCreateCoreHRJobGrade func(ctx context.Context, request *CreateCoreHRJobGradeReq, options ...MethodOptionFunc) (*CreateCoreHRJobGradeResp, *Response, error) mockCoreHRDeleteCoreHRJobGrade func(ctx context.Context, request *DeleteCoreHRJobGradeReq, options ...MethodOptionFunc) (*DeleteCoreHRJobGradeResp, *Response, error) + mockCoreHRUpdateCoreHRJobGrade func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) mockCoreHRQueryCoreHRJobGrade func(ctx context.Context, request *QueryCoreHRJobGradeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeResp, *Response, error) mockCoreHRQueryCoreHRJobGradeRecentChange func(ctx context.Context, request *QueryCoreHRJobGradeRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobGradeRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobGrade func(ctx context.Context, request *UpdateCoreHRJobGradeReq, options ...MethodOptionFunc) (*UpdateCoreHRJobGradeResp, *Response, error) - mockCoreHRCreateCoreHRJobLevel func(ctx context.Context, request *CreateCoreHRJobLevelReq, options ...MethodOptionFunc) (*CreateCoreHRJobLevelResp, *Response, error) - mockCoreHRDeleteCoreHRJobLevel func(ctx context.Context, request *DeleteCoreHRJobLevelReq, options ...MethodOptionFunc) (*DeleteCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevel func(ctx context.Context, request *GetCoreHRJobLevelReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelResp, *Response, error) - mockCoreHRBatchGetCoreHRJobLevel func(ctx context.Context, request *BatchGetCoreHRJobLevelReq, options ...MethodOptionFunc) (*BatchGetCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobLevelList func(ctx context.Context, request *GetCoreHRJobLevelListReq, options ...MethodOptionFunc) (*GetCoreHRJobLevelListResp, *Response, error) mockCoreHRQueryCoreHRJobLevelRecentChange func(ctx context.Context, request *QueryCoreHRJobLevelRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobLevelRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJobLevel func(ctx context.Context, request *UpdateCoreHRJobLevelReq, options ...MethodOptionFunc) (*UpdateCoreHRJobLevelResp, *Response, error) - mockCoreHRGetCoreHRJobList func(ctx context.Context, request *GetCoreHRJobListReq, options ...MethodOptionFunc) (*GetCoreHRJobListResp, *Response, error) - mockCoreHRGetCoreHRJobListV2 func(ctx context.Context, request *GetCoreHRJobListV2Req, options ...MethodOptionFunc) (*GetCoreHRJobListV2Resp, *Response, error) - mockCoreHRQueryCoreHRJobMultiTimeline func(ctx context.Context, request *QueryCoreHRJobMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRJobMultiTimelineResp, *Response, error) - mockCoreHRQueryCoreHRJobRecentChange func(ctx context.Context, request *QueryCoreHRJobRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRJobRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRJob func(ctx context.Context, request *UpdateCoreHRJobReq, options ...MethodOptionFunc) (*UpdateCoreHRJobResp, *Response, error) - mockCoreHRGetCoreHRLeaveCalendarByScope func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) - mockCoreHRCreateCoreHRLeaveGrantingRecord func(ctx context.Context, request *CreateCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRDeleteCoreHRLeaveGrantingRecord func(ctx context.Context, request *DeleteCoreHRLeaveGrantingRecordReq, options ...MethodOptionFunc) (*DeleteCoreHRLeaveGrantingRecordResp, *Response, error) - mockCoreHRGetCoreHRLeaveBalanceList func(ctx context.Context, request *GetCoreHRLeaveBalanceListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveBalanceListResp, *Response, error) - mockCoreHRGetCoreHRLeaveRequestHistoryList func(ctx context.Context, request *GetCoreHRLeaveRequestHistoryListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveRequestHistoryListResp, *Response, error) - mockCoreHRGetCoreHRLeaveTypeList func(ctx context.Context, request *GetCoreHRLeaveTypeListReq, options ...MethodOptionFunc) (*GetCoreHRLeaveTypeListResp, *Response, error) - mockCoreHRCreateCoreHRLeaveWorkCalendar func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) - mockCoreHRCreateCoreHRLeaveWorkCalendarDate func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) - mockCoreHRCreateCoreHRLocationActive func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) mockCoreHRCreateCoreHRLocationAddress func(ctx context.Context, request *CreateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*CreateCoreHRLocationAddressResp, *Response, error) mockCoreHRDeleteCoreHRLocationAddress func(ctx context.Context, request *DeleteCoreHRLocationAddressReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationAddressResp, *Response, error) mockCoreHRUpdateCoreHRLocationAddress func(ctx context.Context, request *UpdateCoreHRLocationAddressReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationAddressResp, *Response, error) - mockCoreHRCreateCoreHRLocation func(ctx context.Context, request *CreateCoreHRLocationReq, options ...MethodOptionFunc) (*CreateCoreHRLocationResp, *Response, error) - mockCoreHRDeleteCoreHRLocation func(ctx context.Context, request *DeleteCoreHRLocationReq, options ...MethodOptionFunc) (*DeleteCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocation func(ctx context.Context, request *GetCoreHRLocationReq, options ...MethodOptionFunc) (*GetCoreHRLocationResp, *Response, error) - mockCoreHRBatchGetCoreHRLocation func(ctx context.Context, request *BatchGetCoreHRLocationReq, options ...MethodOptionFunc) (*BatchGetCoreHRLocationResp, *Response, error) - mockCoreHRGetCoreHRLocationList func(ctx context.Context, request *GetCoreHRLocationListReq, options ...MethodOptionFunc) (*GetCoreHRLocationListResp, *Response, error) + mockCoreHRCreateCoreHRLocationActive func(ctx context.Context, request *CreateCoreHRLocationActiveReq, options ...MethodOptionFunc) (*CreateCoreHRLocationActiveResp, *Response, error) + mockCoreHRUpdateCoreHRLocation func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) mockCoreHRQueryCoreHRLocationMultiTimeline func(ctx context.Context, request *QueryCoreHRLocationMultiTimelineReq, options ...MethodOptionFunc) (*QueryCoreHRLocationMultiTimelineResp, *Response, error) mockCoreHRQueryCoreHRLocationRecentChange func(ctx context.Context, request *QueryCoreHRLocationRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRLocationRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRLocation func(ctx context.Context, request *UpdateCoreHRLocationReq, options ...MethodOptionFunc) (*UpdateCoreHRLocationResp, *Response, error) - mockCoreHRCreateCoreHRNationalIDType func(ctx context.Context, request *CreateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*CreateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRDeleteCoreHRNationalIDType func(ctx context.Context, request *DeleteCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDType func(ctx context.Context, request *GetCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRGetCoreHRNationalIDTypeList func(ctx context.Context, request *GetCoreHRNationalIDTypeListReq, options ...MethodOptionFunc) (*GetCoreHRNationalIDTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRNationalIDType func(ctx context.Context, request *UpdateCoreHRNationalIDTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRNationalIDTypeResp, *Response, error) - mockCoreHRSearchCoreHRNationality func(ctx context.Context, request *SearchCoreHRNationalityReq, options ...MethodOptionFunc) (*SearchCoreHRNationalityResp, *Response, error) - mockCoreHRCreateCoreHROffboarding func(ctx context.Context, request *CreateCoreHROffboardingReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingResp, *Response, error) mockCoreHRCreateCoreHROffboardingEdit func(ctx context.Context, request *CreateCoreHROffboardingEditReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingEditResp, *Response, error) - mockCoreHRGetCoreHROffboardingList func(ctx context.Context, request *GetCoreHROffboardingListReq, options ...MethodOptionFunc) (*GetCoreHROffboardingListResp, *Response, error) - mockCoreHRCreateCoreHROffboardingRevoke func(ctx context.Context, request *CreateCoreHROffboardingRevokeReq, options ...MethodOptionFunc) (*CreateCoreHROffboardingRevokeResp, *Response, error) - mockCoreHRSearchCoreHROffboarding func(ctx context.Context, request *SearchCoreHROffboardingReq, options ...MethodOptionFunc) (*SearchCoreHROffboardingResp, *Response, error) - mockCoreHRCreateCoreHROffboardingSubmitV2 func(ctx context.Context, request *CreateCoreHROffboardingSubmitV2Req, options ...MethodOptionFunc) (*CreateCoreHROffboardingSubmitV2Resp, *Response, error) + mockCoreHRRevokeCoreHROffboarding func(ctx context.Context, request *RevokeCoreHROffboardingReq, options ...MethodOptionFunc) (*RevokeCoreHROffboardingResp, *Response, error) + mockCoreHRSubmitCoreHROffboardingV2 func(ctx context.Context, request *SubmitCoreHROffboardingV2Req, options ...MethodOptionFunc) (*SubmitCoreHROffboardingV2Resp, *Response, error) mockCoreHRCreateCoreHRPathwayActive func(ctx context.Context, request *CreateCoreHRPathwayActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayActiveResp, *Response, error) mockCoreHRBatchGetCoreHRPathway func(ctx context.Context, request *BatchGetCoreHRPathwayReq, options ...MethodOptionFunc) (*BatchGetCoreHRPathwayResp, *Response, error) mockCoreHRCreateCoreHRPathway func(ctx context.Context, request *CreateCoreHRPathwayReq, options ...MethodOptionFunc) (*CreateCoreHRPathwayResp, *Response, error) mockCoreHRDeleteCoreHRPathway func(ctx context.Context, request *DeleteCoreHRPathwayReq, options ...MethodOptionFunc) (*DeleteCoreHRPathwayResp, *Response, error) mockCoreHRUpdateCoreHRPathway func(ctx context.Context, request *UpdateCoreHRPathwayReq, options ...MethodOptionFunc) (*UpdateCoreHRPathwayResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRCreateCoreHRPerson func(ctx context.Context, request *CreateCoreHRPersonReq, options ...MethodOptionFunc) (*CreateCoreHRPersonResp, *Response, error) - mockCoreHRDeleteCoreHRPerson func(ctx context.Context, request *DeleteCoreHRPersonReq, options ...MethodOptionFunc) (*DeleteCoreHRPersonResp, *Response, error) - mockCoreHRDownloadCoreHRPersonFile func(ctx context.Context, request *DownloadCoreHRPersonFileReq, options ...MethodOptionFunc) (*DownloadCoreHRPersonFileResp, *Response, error) - mockCoreHRUploadCoreHRPersonFile func(ctx context.Context, request *UploadCoreHRPersonFileReq, options ...MethodOptionFunc) (*UploadCoreHRPersonFileResp, *Response, error) - mockCoreHRGetCoreHRPerson func(ctx context.Context, request *GetCoreHRPersonReq, options ...MethodOptionFunc) (*GetCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) - mockCoreHRUpdateCoreHRPerson func(ctx context.Context, request *UpdateCoreHRPersonReq, options ...MethodOptionFunc) (*UpdateCoreHRPersonResp, *Response, error) mockCoreHRCreateCoreHRPositionActive func(ctx context.Context, request *CreateCoreHRPositionActiveReq, options ...MethodOptionFunc) (*CreateCoreHRPositionActiveResp, *Response, error) mockCoreHRCreateCoreHRPosition func(ctx context.Context, request *CreateCoreHRPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionResp, *Response, error) - mockCoreHRCreateCoreHRPositionDelPosition func(ctx context.Context, request *CreateCoreHRPositionDelPositionReq, options ...MethodOptionFunc) (*CreateCoreHRPositionDelPositionResp, *Response, error) + mockCoreHRDeleteCoreHRPosition func(ctx context.Context, request *DeleteCoreHRPositionReq, options ...MethodOptionFunc) (*DeleteCoreHRPositionResp, *Response, error) + mockCoreHRUpdateCoreHRPosition func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) mockCoreHRQueryCoreHRPosition func(ctx context.Context, request *QueryCoreHRPositionReq, options ...MethodOptionFunc) (*QueryCoreHRPositionResp, *Response, error) mockCoreHRQueryCoreHRPositionRecentChange func(ctx context.Context, request *QueryCoreHRPositionRecentChangeReq, options ...MethodOptionFunc) (*QueryCoreHRPositionRecentChangeResp, *Response, error) - mockCoreHRUpdateCoreHRPosition func(ctx context.Context, request *UpdateCoreHRPositionReq, options ...MethodOptionFunc) (*UpdateCoreHRPositionResp, *Response, error) - mockCoreHRCreateCoreHRPreHireComplete func(ctx context.Context, request *CreateCoreHRPreHireCompleteReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireCompleteResp, *Response, error) - mockCoreHRCreateCoreHRPreHire func(ctx context.Context, request *CreateCoreHRPreHireReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireResp, *Response, error) - mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRDeleteCoreHRPreHire func(ctx context.Context, request *DeleteCoreHRPreHireReq, options ...MethodOptionFunc) (*DeleteCoreHRPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHire func(ctx context.Context, request *GetCoreHRPreHireReq, options ...MethodOptionFunc) (*GetCoreHRPreHireResp, *Response, error) - mockCoreHRGetCoreHRPreHireList func(ctx context.Context, request *GetCoreHRPreHireListReq, options ...MethodOptionFunc) (*GetCoreHRPreHireListResp, *Response, error) + mockCoreHRCompleteCoreHRPreHire func(ctx context.Context, request *CompleteCoreHRPreHireReq, options ...MethodOptionFunc) (*CompleteCoreHRPreHireResp, *Response, error) mockCoreHRQueryCoreHRPreHire func(ctx context.Context, request *QueryCoreHRPreHireReq, options ...MethodOptionFunc) (*QueryCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireRestoreFlowInstance func(ctx context.Context, request *CreateCoreHRPreHireRestoreFlowInstanceReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireRestoreFlowInstanceResp, *Response, error) + mockCoreHRRestoreCoreHRPreHireFlowInstance func(ctx context.Context, request *RestoreCoreHRPreHireFlowInstanceReq, options ...MethodOptionFunc) (*RestoreCoreHRPreHireFlowInstanceResp, *Response, error) mockCoreHRSearchCoreHRPreHire func(ctx context.Context, request *SearchCoreHRPreHireReq, options ...MethodOptionFunc) (*SearchCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireTransformOnboardingTask func(ctx context.Context, request *CreateCoreHRPreHireTransformOnboardingTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransformOnboardingTaskResp, *Response, error) - mockCoreHRCreateCoreHRPreHireTransitTask func(ctx context.Context, request *CreateCoreHRPreHireTransitTaskReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireTransitTaskResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRUpdateCoreHRPreHire func(ctx context.Context, request *UpdateCoreHRPreHireReq, options ...MethodOptionFunc) (*UpdateCoreHRPreHireResp, *Response, error) - mockCoreHRCreateCoreHRPreHireWithdrawOnboarding func(ctx context.Context, request *CreateCoreHRPreHireWithdrawOnboardingReq, options ...MethodOptionFunc) (*CreateCoreHRPreHireWithdrawOnboardingResp, *Response, error) - mockCoreHRCreateCoreHRProbationAssessment func(ctx context.Context, request *CreateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*CreateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRDeleteCoreHRProbationAssessment func(ctx context.Context, request *DeleteCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*DeleteCoreHRProbationAssessmentResp, *Response, error) - mockCoreHREnableDisableCoreHRProbationAssessment func(ctx context.Context, request *EnableDisableCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*EnableDisableCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRUpdateCoreHRProbationAssessment func(ctx context.Context, request *UpdateCoreHRProbationAssessmentReq, options ...MethodOptionFunc) (*UpdateCoreHRProbationAssessmentResp, *Response, error) - mockCoreHRSearchCoreHRProbation func(ctx context.Context, request *SearchCoreHRProbationReq, options ...MethodOptionFunc) (*SearchCoreHRProbationResp, *Response, error) - mockCoreHRCreateCoreHRProbationSubmit func(ctx context.Context, request *CreateCoreHRProbationSubmitReq, options ...MethodOptionFunc) (*CreateCoreHRProbationSubmitResp, *Response, error) - mockCoreHRCreateCoreHRProbationWithdraw func(ctx context.Context, request *CreateCoreHRProbationWithdrawReq, options ...MethodOptionFunc) (*CreateCoreHRProbationWithdrawResp, *Response, error) + mockCoreHRTransformCoreHRPreHireOnboardingTask func(ctx context.Context, request *TransformCoreHRPreHireOnboardingTaskReq, options ...MethodOptionFunc) (*TransformCoreHRPreHireOnboardingTaskResp, *Response, error) + mockCoreHRTransitCoreHRPreHireTask func(ctx context.Context, request *TransitCoreHRPreHireTaskReq, options ...MethodOptionFunc) (*TransitCoreHRPreHireTaskResp, *Response, error) + mockCoreHRWithdrawCoreHRPreHireOnboarding func(ctx context.Context, request *WithdrawCoreHRPreHireOnboardingReq, options ...MethodOptionFunc) (*WithdrawCoreHRPreHireOnboardingResp, *Response, error) + mockCoreHRSubmitCoreHRProbation func(ctx context.Context, request *SubmitCoreHRProbationReq, options ...MethodOptionFunc) (*SubmitCoreHRProbationResp, *Response, error) + mockCoreHRWithdrawCoreHRProbation func(ctx context.Context, request *WithdrawCoreHRProbationReq, options ...MethodOptionFunc) (*WithdrawCoreHRProbationResp, *Response, error) mockCoreHRUpdateCoreHRProcessApprover func(ctx context.Context, request *UpdateCoreHRProcessApproverReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessApproverResp, *Response, error) mockCoreHRUpdateCoreHRProcessExtra func(ctx context.Context, request *UpdateCoreHRProcessExtraReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessExtraResp, *Response, error) + mockCoreHRQueryCoreHRProcessFlowDataTemplate func(ctx context.Context, request *QueryCoreHRProcessFlowDataTemplateReq, options ...MethodOptionFunc) (*QueryCoreHRProcessFlowDataTemplateResp, *Response, error) + mockCoreHRUpdateCoreHRProcessTransfer func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) mockCoreHRGetCoreHRProcessFlowVariableData func(ctx context.Context, request *GetCoreHRProcessFlowVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFlowVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcessFormVariableData func(ctx context.Context, request *GetCoreHRProcessFormVariableDataReq, options ...MethodOptionFunc) (*GetCoreHRProcessFormVariableDataResp, *Response, error) - mockCoreHRGetCoreHRProcess func(ctx context.Context, request *GetCoreHRProcessReq, options ...MethodOptionFunc) (*GetCoreHRProcessResp, *Response, error) - mockCoreHRGetCoreHRProcessList func(ctx context.Context, request *GetCoreHRProcessListReq, options ...MethodOptionFunc) (*GetCoreHRProcessListResp, *Response, error) - mockCoreHRCreateCoreHRProcessQueryFlowDataTemplate func(ctx context.Context, request *CreateCoreHRProcessQueryFlowDataTemplateReq, options ...MethodOptionFunc) (*CreateCoreHRProcessQueryFlowDataTemplateResp, *Response, error) mockCoreHRUpdateCoreHRProcessRevoke func(ctx context.Context, request *UpdateCoreHRProcessRevokeReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessRevokeResp, *Response, error) mockCoreHRCreateCoreHRProcessStart func(ctx context.Context, request *CreateCoreHRProcessStartReq, options ...MethodOptionFunc) (*CreateCoreHRProcessStartResp, *Response, error) - mockCoreHRUpdateCoreHRProcessTransfer func(ctx context.Context, request *UpdateCoreHRProcessTransferReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessTransferResp, *Response, error) mockCoreHRUpdateCoreHRProcessWithdraw func(ctx context.Context, request *UpdateCoreHRProcessWithdrawReq, options ...MethodOptionFunc) (*UpdateCoreHRProcessWithdrawResp, *Response, error) - mockCoreHRCreateCoreHRReportDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCoreHRReportDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRReportDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRReportDetailRowBatchsaveResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupBp func(ctx context.Context, request *GetCoreHRSecurityGroupBpReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupBpResp, *Response, error) - mockCoreHRGetCoreHRSecurityGroupList func(ctx context.Context, request *GetCoreHRSecurityGroupListReq, options ...MethodOptionFunc) (*GetCoreHRSecurityGroupListResp, *Response, error) + mockCoreHRBatchDeleteCoreHRReportDetailRow func(ctx context.Context, request *BatchDeleteCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRReportDetailRowResp, *Response, error) + mockCoreHRBatchSaveCoreHRReportDetailRow func(ctx context.Context, request *BatchSaveCoreHRReportDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRReportDetailRowResp, *Response, error) mockCoreHRDownloadCoreHRSignatureFile func(ctx context.Context, request *DownloadCoreHRSignatureFileReq, options ...MethodOptionFunc) (*DownloadCoreHRSignatureFileResp, *Response, error) mockCoreHRListCoreHRSignatureFile func(ctx context.Context, request *ListCoreHRSignatureFileReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileResp, *Response, error) mockCoreHRListCoreHRSignatureFileByBizID func(ctx context.Context, request *ListCoreHRSignatureFileByBizIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureFileByBizIDResp, *Response, error) mockCoreHRQueryCoreHRSignatureFile func(ctx context.Context, request *QueryCoreHRSignatureFileReq, options ...MethodOptionFunc) (*QueryCoreHRSignatureFileResp, *Response, error) - mockCoreHRCreateCoreHRSignatureFileTerminate func(ctx context.Context, request *CreateCoreHRSignatureFileTerminateReq, options ...MethodOptionFunc) (*CreateCoreHRSignatureFileTerminateResp, *Response, error) + mockCoreHRTerminateCoreHRSignatureFile func(ctx context.Context, request *TerminateCoreHRSignatureFileReq, options ...MethodOptionFunc) (*TerminateCoreHRSignatureFileResp, *Response, error) mockCoreHRListCoreHRSignatureNodeByFileID func(ctx context.Context, request *ListCoreHRSignatureNodeByFileIDReq, options ...MethodOptionFunc) (*ListCoreHRSignatureNodeByFileIDResp, *Response, error) - mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) mockCoreHRSearchCoreHRSignatureTemplate func(ctx context.Context, request *SearchCoreHRSignatureTemplateReq, options ...MethodOptionFunc) (*SearchCoreHRSignatureTemplateResp, *Response, error) - mockCoreHRGetCoreHRSubdivision func(ctx context.Context, request *GetCoreHRSubdivisionReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionResp, *Response, error) - mockCoreHRGetCoreHRSubdivisionList func(ctx context.Context, request *GetCoreHRSubdivisionListReq, options ...MethodOptionFunc) (*GetCoreHRSubdivisionListResp, *Response, error) - mockCoreHRGetCoreHRSubregion func(ctx context.Context, request *GetCoreHRSubregionReq, options ...MethodOptionFunc) (*GetCoreHRSubregionResp, *Response, error) - mockCoreHRGetCoreHRSubregionList func(ctx context.Context, request *GetCoreHRSubregionListReq, options ...MethodOptionFunc) (*GetCoreHRSubregionListResp, *Response, error) - mockCoreHRGetCoreHRTransferReasonList func(ctx context.Context, request *GetCoreHRTransferReasonListReq, options ...MethodOptionFunc) (*GetCoreHRTransferReasonListResp, *Response, error) - mockCoreHRGetCoreHRTransferTypeList func(ctx context.Context, request *GetCoreHRTransferTypeListReq, options ...MethodOptionFunc) (*GetCoreHRTransferTypeListResp, *Response, error) - mockCoreHRBatchQueryCoreHRWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) - mockCoreHRBatchCoreHRWorkforcePlanDetailV2 func(ctx context.Context, request *BatchCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchCoreHRWorkforcePlanDetailV2Resp, *Response, error) - mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchdelete func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchdeleteReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchdeleteResp, *Response, error) - mockCoreHRCreateCoreHRWorkforcePlanDetailRowBatchsave func(ctx context.Context, request *CreateCoreHRWorkforcePlanDetailRowBatchsaveReq, options ...MethodOptionFunc) (*CreateCoreHRWorkforcePlanDetailRowBatchsaveResp, *Response, error) + mockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail func(ctx context.Context, request *ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...MethodOptionFunc) (*ListCoreHRSignatureTemplateInfoWithThumbnailResp, *Response, error) mockCoreHRListCoreHRWorkforcePlan func(ctx context.Context, request *ListCoreHRWorkforcePlanReq, options ...MethodOptionFunc) (*ListCoreHRWorkforcePlanResp, *Response, error) - mockCoreHRCreateCoreHRWorkingHoursType func(ctx context.Context, request *CreateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*CreateCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRDeleteCoreHRWorkingHoursType func(ctx context.Context, request *DeleteCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*DeleteCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursType func(ctx context.Context, request *GetCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeResp, *Response, error) - mockCoreHRGetCoreHRWorkingHoursTypeList func(ctx context.Context, request *GetCoreHRWorkingHoursTypeListReq, options ...MethodOptionFunc) (*GetCoreHRWorkingHoursTypeListResp, *Response, error) - mockCoreHRUpdateCoreHRWorkingHoursType func(ctx context.Context, request *UpdateCoreHRWorkingHoursTypeReq, options ...MethodOptionFunc) (*UpdateCoreHRWorkingHoursTypeResp, *Response, error) + mockCoreHRBatchQueryCoreHRWorkforcePlanDetail func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailReq, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailResp, *Response, error) + mockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2 func(ctx context.Context, request *BatchQueryCoreHRWorkforcePlanDetailV2Req, options ...MethodOptionFunc) (*BatchQueryCoreHRWorkforcePlanDetailV2Resp, *Response, error) + mockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow func(ctx context.Context, request *BatchDeleteCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchDeleteCoreHRWorkforcePlanDetailRowResp, *Response, error) + mockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow func(ctx context.Context, request *BatchSaveCoreHRWorkforcePlanDetailRowReq, options ...MethodOptionFunc) (*BatchSaveCoreHRWorkforcePlanDetailRowResp, *Response, error) + mockCoreHRAddCoreHRAuthorizationRoleAssign func(ctx context.Context, request *AddCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*AddCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRRemoveCoreHRAuthorizationRoleAssign func(ctx context.Context, request *RemoveCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*RemoveCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRUpdateCoreHRAuthorizationRoleAssign func(ctx context.Context, request *UpdateCoreHRAuthorizationRoleAssignReq, options ...MethodOptionFunc) (*UpdateCoreHRAuthorizationRoleAssignResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataIDConvert func(ctx context.Context, request *CreateCoreHRCommonDataIDConvertReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataIDConvertResp, *Response, error) + mockCoreHRAddCoreHRCommonDataMetaDataEnumOption func(ctx context.Context, request *AddCoreHRCommonDataMetaDataEnumOptionReq, options ...MethodOptionFunc) (*AddCoreHRCommonDataMetaDataEnumOptionResp, *Response, error) + mockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption func(ctx context.Context, request *CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...MethodOptionFunc) (*CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *Response, error) + mockCoreHRGetCoreHRLeaveCalendarByScope func(ctx context.Context, request *GetCoreHRLeaveCalendarByScopeReq, options ...MethodOptionFunc) (*GetCoreHRLeaveCalendarByScopeResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendar func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarResp, *Response, error) + mockCoreHRCreateCoreHRLeaveWorkCalendarDate func(ctx context.Context, request *CreateCoreHRLeaveWorkCalendarDateReq, options ...MethodOptionFunc) (*CreateCoreHRLeaveWorkCalendarDateResp, *Response, error) mockDirectoryCreateDirectoryCollaborationRule func(ctx context.Context, request *CreateDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*CreateDirectoryCollaborationRuleResp, *Response, error) mockDirectoryDeleteDirectoryCollaborationRule func(ctx context.Context, request *DeleteDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*DeleteDirectoryCollaborationRuleResp, *Response, error) mockDirectoryListDirectoryCollaborationRule func(ctx context.Context, request *ListDirectoryCollaborationRuleReq, options ...MethodOptionFunc) (*ListDirectoryCollaborationRuleResp, *Response, error) @@ -784,256 +793,332 @@ type Mock struct { mockDirectoryDeleteDirectoryDepartment func(ctx context.Context, request *DeleteDirectoryDepartmentReq, options ...MethodOptionFunc) (*DeleteDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryDepartmentFilter func(ctx context.Context, request *CreateDirectoryDepartmentFilterReq, options ...MethodOptionFunc) (*CreateDirectoryDepartmentFilterResp, *Response, error) mockDirectoryMGetDirectoryDepartment func(ctx context.Context, request *MGetDirectoryDepartmentReq, options ...MethodOptionFunc) (*MGetDirectoryDepartmentResp, *Response, error) - mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryUpdateDirectoryDepartment func(ctx context.Context, request *UpdateDirectoryDepartmentReq, options ...MethodOptionFunc) (*UpdateDirectoryDepartmentResp, *Response, error) + mockDirectorySearchDirectoryDepartment func(ctx context.Context, request *SearchDirectoryDepartmentReq, options ...MethodOptionFunc) (*SearchDirectoryDepartmentResp, *Response, error) mockDirectoryCreateDirectoryEmployee func(ctx context.Context, request *CreateDirectoryEmployeeReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResp, *Response, error) mockDirectoryDeleteDirectoryEmployee func(ctx context.Context, request *DeleteDirectoryEmployeeReq, options ...MethodOptionFunc) (*DeleteDirectoryEmployeeResp, *Response, error) mockDirectoryCreateDirectoryEmployeeFilter func(ctx context.Context, request *CreateDirectoryEmployeeFilterReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeFilterResp, *Response, error) mockDirectoryMGetDirectoryEmployee func(ctx context.Context, request *MGetDirectoryEmployeeReq, options ...MethodOptionFunc) (*MGetDirectoryEmployeeResp, *Response, error) + mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeRegular func(ctx context.Context, request *UpdateDirectoryEmployeeRegularReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeRegularResp, *Response, error) mockDirectoryCreateDirectoryEmployeeResurrect func(ctx context.Context, request *CreateDirectoryEmployeeResurrectReq, options ...MethodOptionFunc) (*CreateDirectoryEmployeeResurrectResp, *Response, error) mockDirectorySearchDirectoryEmployee func(ctx context.Context, request *SearchDirectoryEmployeeReq, options ...MethodOptionFunc) (*SearchDirectoryEmployeeResp, *Response, error) mockDirectoryUpdateDirectoryEmployeeToBeResigned func(ctx context.Context, request *UpdateDirectoryEmployeeToBeResignedReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeToBeResignedResp, *Response, error) - mockDirectoryUpdateDirectoryEmployee func(ctx context.Context, request *UpdateDirectoryEmployeeReq, options ...MethodOptionFunc) (*UpdateDirectoryEmployeeResp, *Response, error) - mockDriveCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) - mockDriveListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) - mockDriveUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) - mockDriveDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) - mockDriveCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) - mockDriveCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) - mockDriveGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) - mockDriveUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) - mockDriveCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) - mockDriveGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) - mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) - mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) - mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) - mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) - mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) - mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) - mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) - mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) + mockDocsMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) + mockDocsGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) + mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) + mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) + mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) + mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) + mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) + mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) + mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) + mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) + mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) + mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) + mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) + mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) + mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) + mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) + mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) + mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) mockDriveCreateDriveComment func(ctx context.Context, request *CreateDriveCommentReq, options ...MethodOptionFunc) (*CreateDriveCommentResp, *Response, error) + mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) + mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) + mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) + mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) + mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) + mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) + mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) + mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) + mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) + mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) + mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) + mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) + mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) + mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) + mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) + mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) + mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) + mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) + mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) mockDriveDeleteDriveComment func(ctx context.Context, request *DeleteDriveCommentReq, options ...MethodOptionFunc) (*DeleteDriveCommentResp, *Response, error) - mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) - mockDriveBatchGetDriveComment func(ctx context.Context, request *BatchGetDriveCommentReq, options ...MethodOptionFunc) (*BatchGetDriveCommentResp, *Response, error) + mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) + mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) + mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) + mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) + mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) + mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) + mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) + mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) + mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) + mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) + mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) + mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) + mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) + mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) + mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) + mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) + mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) + mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) + mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) + mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) + mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) + mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) + mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) + mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) mockDriveGetDriveCommentList func(ctx context.Context, request *GetDriveCommentListReq, options ...MethodOptionFunc) (*GetDriveCommentListResp, *Response, error) - mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) mockDriveGetDriveCommentReplyList func(ctx context.Context, request *GetDriveCommentReplyListReq, options ...MethodOptionFunc) (*GetDriveCommentReplyListResp, *Response, error) - mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveGetDriveComment func(ctx context.Context, request *GetDriveCommentReq, options ...MethodOptionFunc) (*GetDriveCommentResp, *Response, error) mockDriveGetDriveDocContent func(ctx context.Context, request *GetDriveDocContentReq, options ...MethodOptionFunc) (*GetDriveDocContentResp, *Response, error) - mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) - mockDriveCreateDriveDoc func(ctx context.Context, request *CreateDriveDocReq, options ...MethodOptionFunc) (*CreateDriveDocResp, *Response, error) mockDriveGetDriveDocMeta func(ctx context.Context, request *GetDriveDocMetaReq, options ...MethodOptionFunc) (*GetDriveDocMetaResp, *Response, error) mockDriveGetDriveDocRawContent func(ctx context.Context, request *GetDriveDocRawContentReq, options ...MethodOptionFunc) (*GetDriveDocRawContentResp, *Response, error) - mockDriveBatchDeleteDocxBlock func(ctx context.Context, request *BatchDeleteDocxBlockReq, options ...MethodOptionFunc) (*BatchDeleteDocxBlockResp, *Response, error) - mockDriveCreateDocxBlock func(ctx context.Context, request *CreateDocxBlockReq, options ...MethodOptionFunc) (*CreateDocxBlockResp, *Response, error) - mockDriveGetDocxBlock func(ctx context.Context, request *GetDocxBlockReq, options ...MethodOptionFunc) (*GetDocxBlockResp, *Response, error) - mockDriveGetDocxBlockListOfBlock func(ctx context.Context, request *GetDocxBlockListOfBlockReq, options ...MethodOptionFunc) (*GetDocxBlockListOfBlockResp, *Response, error) - mockDriveGetDocxBlockListOfDocument func(ctx context.Context, request *GetDocxBlockListOfDocumentReq, options ...MethodOptionFunc) (*GetDocxBlockListOfDocumentResp, *Response, error) - mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) - mockDriveCreateDocx func(ctx context.Context, request *CreateDocxReq, options ...MethodOptionFunc) (*CreateDocxResp, *Response, error) - mockDriveGetDocxDocument func(ctx context.Context, request *GetDocxDocumentReq, options ...MethodOptionFunc) (*GetDocxDocumentResp, *Response, error) - mockDriveGetDocxDocumentRawContent func(ctx context.Context, request *GetDocxDocumentRawContentReq, options ...MethodOptionFunc) (*GetDocxDocumentRawContentResp, *Response, error) - mockDriveCreateDriveExportTask func(ctx context.Context, request *CreateDriveExportTaskReq, options ...MethodOptionFunc) (*CreateDriveExportTaskResp, *Response, error) - mockDriveDownloadDriveExportTask func(ctx context.Context, request *DownloadDriveExportTaskReq, options ...MethodOptionFunc) (*DownloadDriveExportTaskResp, *Response, error) mockDriveGetDriveExportTask func(ctx context.Context, request *GetDriveExportTaskReq, options ...MethodOptionFunc) (*GetDriveExportTaskResp, *Response, error) - mockDriveCopyDriveFile func(ctx context.Context, request *CopyDriveFileReq, options ...MethodOptionFunc) (*CopyDriveFileResp, *Response, error) - mockDriveCreateDriveFile func(ctx context.Context, request *CreateDriveFileReq, options ...MethodOptionFunc) (*CreateDriveFileResp, *Response, error) - mockDriveDownloadDriveFile func(ctx context.Context, request *DownloadDriveFileReq, options ...MethodOptionFunc) (*DownloadDriveFileResp, *Response, error) - mockDriveDeleteDriveFile func(ctx context.Context, request *DeleteDriveFileReq, options ...MethodOptionFunc) (*DeleteDriveFileResp, *Response, error) - mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) mockDriveGetDriveFileList func(ctx context.Context, request *GetDriveFileListReq, options ...MethodOptionFunc) (*GetDriveFileListResp, *Response, error) mockDriveGetDriveFileMeta func(ctx context.Context, request *GetDriveFileMetaReq, options ...MethodOptionFunc) (*GetDriveFileMetaResp, *Response, error) - mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) - mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) - mockDriveDeleteDriveSheetFile func(ctx context.Context, request *DeleteDriveSheetFileReq, options ...MethodOptionFunc) (*DeleteDriveSheetFileResp, *Response, error) - mockDriveCreateDriveFileShortcut func(ctx context.Context, request *CreateDriveFileShortcutReq, options ...MethodOptionFunc) (*CreateDriveFileShortcutResp, *Response, error) mockDriveGetDriveFileStatistics func(ctx context.Context, request *GetDriveFileStatisticsReq, options ...MethodOptionFunc) (*GetDriveFileStatisticsResp, *Response, error) - mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) - mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) - mockDriveCreateDriveFileSubscription func(ctx context.Context, request *CreateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*CreateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileSubscription func(ctx context.Context, request *GetDriveFileSubscriptionReq, options ...MethodOptionFunc) (*GetDriveFileSubscriptionResp, *Response, error) - mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) mockDriveGetDriveFileTask func(ctx context.Context, request *GetDriveFileTaskReq, options ...MethodOptionFunc) (*GetDriveFileTaskResp, *Response, error) - mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) - mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) - mockDriveFinishUploadDriveFile func(ctx context.Context, request *FinishUploadDriveFileReq, options ...MethodOptionFunc) (*FinishUploadDriveFileResp, *Response, error) - mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) - mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) - mockDriveCreateDriveFileVersion func(ctx context.Context, request *CreateDriveFileVersionReq, options ...MethodOptionFunc) (*CreateDriveFileVersionResp, *Response, error) - mockDriveDeleteDriveFileVersion func(ctx context.Context, request *DeleteDriveFileVersionReq, options ...MethodOptionFunc) (*DeleteDriveFileVersionResp, *Response, error) - mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileVersionList func(ctx context.Context, request *GetDriveFileVersionListReq, options ...MethodOptionFunc) (*GetDriveFileVersionListResp, *Response, error) + mockDriveGetDriveFileVersion func(ctx context.Context, request *GetDriveFileVersionReq, options ...MethodOptionFunc) (*GetDriveFileVersionResp, *Response, error) mockDriveGetDriveFileViewRecordList func(ctx context.Context, request *GetDriveFileViewRecordListReq, options ...MethodOptionFunc) (*GetDriveFileViewRecordListResp, *Response, error) mockDriveGetDriveFolderChildren func(ctx context.Context, request *GetDriveFolderChildrenReq, options ...MethodOptionFunc) (*GetDriveFolderChildrenResp, *Response, error) - mockDriveCreateDriveFolder func(ctx context.Context, request *CreateDriveFolderReq, options ...MethodOptionFunc) (*CreateDriveFolderResp, *Response, error) mockDriveGetDriveFolderMeta func(ctx context.Context, request *GetDriveFolderMetaReq, options ...MethodOptionFunc) (*GetDriveFolderMetaResp, *Response, error) - mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) - mockDriveCreateDriveImportTask func(ctx context.Context, request *CreateDriveImportTaskReq, options ...MethodOptionFunc) (*CreateDriveImportTaskResp, *Response, error) mockDriveGetDriveImportTask func(ctx context.Context, request *GetDriveImportTaskReq, options ...MethodOptionFunc) (*GetDriveImportTaskResp, *Response, error) - mockDriveBatchGetDriveMediaTmpDownloadURL func(ctx context.Context, request *BatchGetDriveMediaTmpDownloadURLReq, options ...MethodOptionFunc) (*BatchGetDriveMediaTmpDownloadURLResp, *Response, error) - mockDriveDownloadDriveMedia func(ctx context.Context, request *DownloadDriveMediaReq, options ...MethodOptionFunc) (*DownloadDriveMediaResp, *Response, error) - mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) - mockDriveFinishUploadDriveMedia func(ctx context.Context, request *FinishUploadDriveMediaReq, options ...MethodOptionFunc) (*FinishUploadDriveMediaResp, *Response, error) - mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) - mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) - mockDriveBatchCreateDrivePermissionMember func(ctx context.Context, request *BatchCreateDrivePermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateDrivePermissionMemberResp, *Response, error) - mockDriveCheckDriveMemberPermission func(ctx context.Context, request *CheckDriveMemberPermissionReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionResp, *Response, error) - mockDriveCheckDriveMemberPermissionOld func(ctx context.Context, request *CheckDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CheckDriveMemberPermissionOldResp, *Response, error) - mockDriveCreateDriveMemberPermission func(ctx context.Context, request *CreateDriveMemberPermissionReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionResp, *Response, error) - mockDriveCreateDriveMemberPermissionOld func(ctx context.Context, request *CreateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*CreateDriveMemberPermissionOldResp, *Response, error) - mockDriveDeleteDriveMemberPermission func(ctx context.Context, request *DeleteDriveMemberPermissionReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionResp, *Response, error) - mockDriveDeleteDriveMemberPermissionOld func(ctx context.Context, request *DeleteDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*DeleteDriveMemberPermissionOldResp, *Response, error) - mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDriveMemberPermissionListOld func(ctx context.Context, request *GetDriveMemberPermissionListOldReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListOldResp, *Response, error) - mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) - mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) - mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) - mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveMemberPermissionList func(ctx context.Context, request *GetDriveMemberPermissionListReq, options ...MethodOptionFunc) (*GetDriveMemberPermissionListResp, *Response, error) mockDriveGetDrivePublicPermissionOld func(ctx context.Context, request *GetDrivePublicPermissionOldReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionOldResp, *Response, error) mockDriveGetDrivePublicPermissionV2 func(ctx context.Context, request *GetDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*GetDrivePublicPermissionV2Resp, *Response, error) - mockDriveCreateDrivePermissionPublicPassword func(ctx context.Context, request *CreateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*CreateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveDeleteDrivePermissionPublicPassword func(ctx context.Context, request *DeleteDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*DeleteDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) - mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) - mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) - mockDriveBatchUpdateSheet func(ctx context.Context, request *BatchUpdateSheetReq, options ...MethodOptionFunc) (*BatchUpdateSheetResp, *Response, error) - mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) - mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) - mockDriveCreateSheetConditionFormat func(ctx context.Context, request *CreateSheetConditionFormatReq, options ...MethodOptionFunc) (*CreateSheetConditionFormatResp, *Response, error) - mockDriveDeleteSheetConditionFormat func(ctx context.Context, request *DeleteSheetConditionFormatReq, options ...MethodOptionFunc) (*DeleteSheetConditionFormatResp, *Response, error) + mockDriveGetDrivePublicPermission func(ctx context.Context, request *GetDrivePublicPermissionReq, options ...MethodOptionFunc) (*GetDrivePublicPermissionResp, *Response, error) + mockDriveGetDriveRootFolderMeta func(ctx context.Context, request *GetDriveRootFolderMetaReq, options ...MethodOptionFunc) (*GetDriveRootFolderMetaResp, *Response, error) + mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) mockDriveGetSheetConditionFormat func(ctx context.Context, request *GetSheetConditionFormatReq, options ...MethodOptionFunc) (*GetSheetConditionFormatResp, *Response, error) - mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) - mockDriveCreateSheetDataValidationDropdown func(ctx context.Context, request *CreateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*CreateSheetDataValidationDropdownResp, *Response, error) - mockDriveDeleteSheetDataValidationDropdown func(ctx context.Context, request *DeleteSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*DeleteSheetDataValidationDropdownResp, *Response, error) mockDriveGetSheetDataValidationDropdown func(ctx context.Context, request *GetSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*GetSheetDataValidationDropdownResp, *Response, error) - mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) - mockDriveGetDriveSheetDefaultImportResult func(ctx context.Context, request *GetDriveSheetDefaultImportResultReq, options ...MethodOptionFunc) (*GetDriveSheetDefaultImportResultResp, *Response, error) - mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) - mockDriveAddSheetDimensionRange func(ctx context.Context, request *AddSheetDimensionRangeReq, options ...MethodOptionFunc) (*AddSheetDimensionRangeResp, *Response, error) - mockDriveDeleteSheetDimensionRange func(ctx context.Context, request *DeleteSheetDimensionRangeReq, options ...MethodOptionFunc) (*DeleteSheetDimensionRangeResp, *Response, error) - mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) - mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) - mockDriveCreateSheetFilter func(ctx context.Context, request *CreateSheetFilterReq, options ...MethodOptionFunc) (*CreateSheetFilterResp, *Response, error) - mockDriveDeleteSheetFilter func(ctx context.Context, request *DeleteSheetFilterReq, options ...MethodOptionFunc) (*DeleteSheetFilterResp, *Response, error) - mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) - mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) - mockDriveCreateSheetFilterViewCondition func(ctx context.Context, request *CreateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*CreateSheetFilterViewConditionResp, *Response, error) - mockDriveDeleteSheetFilterViewCondition func(ctx context.Context, request *DeleteSheetFilterViewConditionReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewConditionResp, *Response, error) mockDriveGetSheetFilterViewCondition func(ctx context.Context, request *GetSheetFilterViewConditionReq, options ...MethodOptionFunc) (*GetSheetFilterViewConditionResp, *Response, error) - mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) - mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) - mockDriveCreateSheetFilterView func(ctx context.Context, request *CreateSheetFilterViewReq, options ...MethodOptionFunc) (*CreateSheetFilterViewResp, *Response, error) - mockDriveDeleteSheetFilterView func(ctx context.Context, request *DeleteSheetFilterViewReq, options ...MethodOptionFunc) (*DeleteSheetFilterViewResp, *Response, error) mockDriveGetSheetFilterView func(ctx context.Context, request *GetSheetFilterViewReq, options ...MethodOptionFunc) (*GetSheetFilterViewResp, *Response, error) - mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) - mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) - mockDriveFindSheet func(ctx context.Context, request *FindSheetReq, options ...MethodOptionFunc) (*FindSheetResp, *Response, error) - mockDriveCreateSheetFloatImage func(ctx context.Context, request *CreateSheetFloatImageReq, options ...MethodOptionFunc) (*CreateSheetFloatImageResp, *Response, error) - mockDriveDeleteSheetFloatImage func(ctx context.Context, request *DeleteSheetFloatImageReq, options ...MethodOptionFunc) (*DeleteSheetFloatImageResp, *Response, error) + mockDriveGetSheetFilter func(ctx context.Context, request *GetSheetFilterReq, options ...MethodOptionFunc) (*GetSheetFilterResp, *Response, error) mockDriveGetSheetFloatImage func(ctx context.Context, request *GetSheetFloatImageReq, options ...MethodOptionFunc) (*GetSheetFloatImageResp, *Response, error) - mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) - mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) - mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) - mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) - mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) mockDriveGetSheetList func(ctx context.Context, request *GetSheetListReq, options ...MethodOptionFunc) (*GetSheetListResp, *Response, error) mockDriveGetSheetMeta func(ctx context.Context, request *GetSheetMetaReq, options ...MethodOptionFunc) (*GetSheetMetaResp, *Response, error) - mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) - mockDriveCreateSheetProtectedDimension func(ctx context.Context, request *CreateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*CreateSheetProtectedDimensionResp, *Response, error) - mockDriveDeleteSheetProtectedDimension func(ctx context.Context, request *DeleteSheetProtectedDimensionReq, options ...MethodOptionFunc) (*DeleteSheetProtectedDimensionResp, *Response, error) mockDriveGetSheetProtectedDimension func(ctx context.Context, request *GetSheetProtectedDimensionReq, options ...MethodOptionFunc) (*GetSheetProtectedDimensionResp, *Response, error) - mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) - mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) - mockDriveBatchSetSheetStyle func(ctx context.Context, request *BatchSetSheetStyleReq, options ...MethodOptionFunc) (*BatchSetSheetStyleResp, *Response, error) - mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) - mockDriveAppendSheetValue func(ctx context.Context, request *AppendSheetValueReq, options ...MethodOptionFunc) (*AppendSheetValueResp, *Response, error) - mockDriveBatchGetSheetValue func(ctx context.Context, request *BatchGetSheetValueReq, options ...MethodOptionFunc) (*BatchGetSheetValueResp, *Response, error) - mockDriveBatchSetSheetValue func(ctx context.Context, request *BatchSetSheetValueReq, options ...MethodOptionFunc) (*BatchSetSheetValueResp, *Response, error) mockDriveGetSheetValue func(ctx context.Context, request *GetSheetValueReq, options ...MethodOptionFunc) (*GetSheetValueResp, *Response, error) - mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) - mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) - mockDriveCreateSpreadsheet func(ctx context.Context, request *CreateSpreadsheetReq, options ...MethodOptionFunc) (*CreateSpreadsheetResp, *Response, error) + mockDriveGetSheet func(ctx context.Context, request *GetSheetReq, options ...MethodOptionFunc) (*GetSheetResp, *Response, error) mockDriveGetSpreadsheet func(ctx context.Context, request *GetSpreadsheetReq, options ...MethodOptionFunc) (*GetSpreadsheetResp, *Response, error) - mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) - mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) - mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) - mockDriveCopyWikiNode func(ctx context.Context, request *CopyWikiNodeReq, options ...MethodOptionFunc) (*CopyWikiNodeResp, *Response, error) - mockDriveCreateWikiNode func(ctx context.Context, request *CreateWikiNodeReq, options ...MethodOptionFunc) (*CreateWikiNodeResp, *Response, error) - mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetSubscribeDriveFile func(ctx context.Context, request *GetSubscribeDriveFileReq, options ...MethodOptionFunc) (*GetSubscribeDriveFileResp, *Response, error) mockDriveGetWikiNodeList func(ctx context.Context, request *GetWikiNodeListReq, options ...MethodOptionFunc) (*GetWikiNodeListResp, *Response, error) + mockDriveGetWikiNode func(ctx context.Context, request *GetWikiNodeReq, options ...MethodOptionFunc) (*GetWikiNodeResp, *Response, error) + mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) + mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) + mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) + mockDriveImportSheet func(ctx context.Context, request *ImportSheetReq, options ...MethodOptionFunc) (*ImportSheetResp, *Response, error) + mockDriveInsertSheetDimensionRange func(ctx context.Context, request *InsertSheetDimensionRangeReq, options ...MethodOptionFunc) (*InsertSheetDimensionRangeResp, *Response, error) + mockDriveListDriveFileLike func(ctx context.Context, request *ListDriveFileLikeReq, options ...MethodOptionFunc) (*ListDriveFileLikeResp, *Response, error) + mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) + mockDriveMergeSheetCell func(ctx context.Context, request *MergeSheetCellReq, options ...MethodOptionFunc) (*MergeSheetCellResp, *Response, error) + mockDriveMoveDocsToWiki func(ctx context.Context, request *MoveDocsToWikiReq, options ...MethodOptionFunc) (*MoveDocsToWikiResp, *Response, error) + mockDriveMoveDriveFile func(ctx context.Context, request *MoveDriveFileReq, options ...MethodOptionFunc) (*MoveDriveFileResp, *Response, error) + mockDriveMoveSheetDimension func(ctx context.Context, request *MoveSheetDimensionReq, options ...MethodOptionFunc) (*MoveSheetDimensionResp, *Response, error) mockDriveMoveWikiNode func(ctx context.Context, request *MoveWikiNodeReq, options ...MethodOptionFunc) (*MoveWikiNodeResp, *Response, error) + mockDrivePartUploadDriveFile func(ctx context.Context, request *PartUploadDriveFileReq, options ...MethodOptionFunc) (*PartUploadDriveFileResp, *Response, error) + mockDrivePartUploadDriveMedia func(ctx context.Context, request *PartUploadDriveMediaReq, options ...MethodOptionFunc) (*PartUploadDriveMediaResp, *Response, error) + mockDrivePrepareUploadDriveFile func(ctx context.Context, request *PrepareUploadDriveFileReq, options ...MethodOptionFunc) (*PrepareUploadDriveFileResp, *Response, error) + mockDrivePrepareUploadDriveMedia func(ctx context.Context, request *PrepareUploadDriveMediaReq, options ...MethodOptionFunc) (*PrepareUploadDriveMediaResp, *Response, error) + mockDrivePrependSheetValue func(ctx context.Context, request *PrependSheetValueReq, options ...MethodOptionFunc) (*PrependSheetValueResp, *Response, error) + mockDriveQuerySheetFilterViewCondition func(ctx context.Context, request *QuerySheetFilterViewConditionReq, options ...MethodOptionFunc) (*QuerySheetFilterViewConditionResp, *Response, error) + mockDriveQuerySheetFilterView func(ctx context.Context, request *QuerySheetFilterViewReq, options ...MethodOptionFunc) (*QuerySheetFilterViewResp, *Response, error) + mockDriveQuerySheetFloatImage func(ctx context.Context, request *QuerySheetFloatImageReq, options ...MethodOptionFunc) (*QuerySheetFloatImageResp, *Response, error) + mockDriveReplaceSheet func(ctx context.Context, request *ReplaceSheetReq, options ...MethodOptionFunc) (*ReplaceSheetResp, *Response, error) + mockDriveSearchDriveFile func(ctx context.Context, request *SearchDriveFileReq, options ...MethodOptionFunc) (*SearchDriveFileResp, *Response, error) mockDriveSearchWikiNode func(ctx context.Context, request *SearchWikiNodeReq, options ...MethodOptionFunc) (*SearchWikiNodeResp, *Response, error) + mockDriveSetSheetStyle func(ctx context.Context, request *SetSheetStyleReq, options ...MethodOptionFunc) (*SetSheetStyleResp, *Response, error) + mockDriveSetSheetValueImage func(ctx context.Context, request *SetSheetValueImageReq, options ...MethodOptionFunc) (*SetSheetValueImageResp, *Response, error) + mockDriveSetSheetValue func(ctx context.Context, request *SetSheetValueReq, options ...MethodOptionFunc) (*SetSheetValueResp, *Response, error) + mockDriveSubscribeDriveFile func(ctx context.Context, request *SubscribeDriveFileReq, options ...MethodOptionFunc) (*SubscribeDriveFileResp, *Response, error) + mockDriveTransferDriveMemberPermission func(ctx context.Context, request *TransferDriveMemberPermissionReq, options ...MethodOptionFunc) (*TransferDriveMemberPermissionResp, *Response, error) + mockDriveTransferDriveOwnerPermission func(ctx context.Context, request *TransferDriveOwnerPermissionReq, options ...MethodOptionFunc) (*TransferDriveOwnerPermissionResp, *Response, error) + mockDriveUnmergeSheetCell func(ctx context.Context, request *UnmergeSheetCellReq, options ...MethodOptionFunc) (*UnmergeSheetCellResp, *Response, error) + mockDriveUnsubscribeDriveFile func(ctx context.Context, request *UnsubscribeDriveFileReq, options ...MethodOptionFunc) (*UnsubscribeDriveFileResp, *Response, error) + mockDriveUpdateDocxBlock func(ctx context.Context, request *UpdateDocxBlockReq, options ...MethodOptionFunc) (*UpdateDocxBlockResp, *Response, error) + mockDriveUpdateDriveCommentPatch func(ctx context.Context, request *UpdateDriveCommentPatchReq, options ...MethodOptionFunc) (*UpdateDriveCommentPatchResp, *Response, error) + mockDriveUpdateDriveComment func(ctx context.Context, request *UpdateDriveCommentReq, options ...MethodOptionFunc) (*UpdateDriveCommentResp, *Response, error) + mockDriveUpdateDriveDocContent func(ctx context.Context, request *UpdateDriveDocContentReq, options ...MethodOptionFunc) (*UpdateDriveDocContentResp, *Response, error) + mockDriveUpdateDriveFileSubscription func(ctx context.Context, request *UpdateDriveFileSubscriptionReq, options ...MethodOptionFunc) (*UpdateDriveFileSubscriptionResp, *Response, error) + mockDriveUpdateDriveMemberPermissionOld func(ctx context.Context, request *UpdateDriveMemberPermissionOldReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionOldResp, *Response, error) + mockDriveUpdateDriveMemberPermission func(ctx context.Context, request *UpdateDriveMemberPermissionReq, options ...MethodOptionFunc) (*UpdateDriveMemberPermissionResp, *Response, error) + mockDriveUpdateDrivePermissionPublicPassword func(ctx context.Context, request *UpdateDrivePermissionPublicPasswordReq, options ...MethodOptionFunc) (*UpdateDrivePermissionPublicPasswordResp, *Response, error) + mockDriveUpdateDrivePublicPermissionV2 func(ctx context.Context, request *UpdateDrivePublicPermissionV2Req, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionV2Resp, *Response, error) + mockDriveUpdateDrivePublicPermission func(ctx context.Context, request *UpdateDrivePublicPermissionReq, options ...MethodOptionFunc) (*UpdateDrivePublicPermissionResp, *Response, error) + mockDriveUpdateSheetConditionFormat func(ctx context.Context, request *UpdateSheetConditionFormatReq, options ...MethodOptionFunc) (*UpdateSheetConditionFormatResp, *Response, error) + mockDriveUpdateSheetDataValidationDropdown func(ctx context.Context, request *UpdateSheetDataValidationDropdownReq, options ...MethodOptionFunc) (*UpdateSheetDataValidationDropdownResp, *Response, error) + mockDriveUpdateSheetDimensionRange func(ctx context.Context, request *UpdateSheetDimensionRangeReq, options ...MethodOptionFunc) (*UpdateSheetDimensionRangeResp, *Response, error) + mockDriveUpdateSheetFilterViewCondition func(ctx context.Context, request *UpdateSheetFilterViewConditionReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewConditionResp, *Response, error) + mockDriveUpdateSheetFilterView func(ctx context.Context, request *UpdateSheetFilterViewReq, options ...MethodOptionFunc) (*UpdateSheetFilterViewResp, *Response, error) + mockDriveUpdateSheetFilter func(ctx context.Context, request *UpdateSheetFilterReq, options ...MethodOptionFunc) (*UpdateSheetFilterResp, *Response, error) + mockDriveUpdateSheetFloatImage func(ctx context.Context, request *UpdateSheetFloatImageReq, options ...MethodOptionFunc) (*UpdateSheetFloatImageResp, *Response, error) + mockDriveUpdateSheetProperty func(ctx context.Context, request *UpdateSheetPropertyReq, options ...MethodOptionFunc) (*UpdateSheetPropertyResp, *Response, error) + mockDriveUpdateSheetProtectedDimension func(ctx context.Context, request *UpdateSheetProtectedDimensionReq, options ...MethodOptionFunc) (*UpdateSheetProtectedDimensionResp, *Response, error) + mockDriveUpdateSpreadsheet func(ctx context.Context, request *UpdateSpreadsheetReq, options ...MethodOptionFunc) (*UpdateSpreadsheetResp, *Response, error) mockDriveUpdateWikiNodeTitle func(ctx context.Context, request *UpdateWikiNodeTitleReq, options ...MethodOptionFunc) (*UpdateWikiNodeTitleResp, *Response, error) - mockDriveCreateWikiSpace func(ctx context.Context, request *CreateWikiSpaceReq, options ...MethodOptionFunc) (*CreateWikiSpaceResp, *Response, error) - mockDriveGetWikiSpace func(ctx context.Context, request *GetWikiSpaceReq, options ...MethodOptionFunc) (*GetWikiSpaceResp, *Response, error) - mockDriveGetWikiSpaceList func(ctx context.Context, request *GetWikiSpaceListReq, options ...MethodOptionFunc) (*GetWikiSpaceListResp, *Response, error) - mockDriveAddWikiSpaceMember func(ctx context.Context, request *AddWikiSpaceMemberReq, options ...MethodOptionFunc) (*AddWikiSpaceMemberResp, *Response, error) - mockDriveDeleteWikiSpaceMember func(ctx context.Context, request *DeleteWikiSpaceMemberReq, options ...MethodOptionFunc) (*DeleteWikiSpaceMemberResp, *Response, error) mockDriveUpdateWikiSpaceSetting func(ctx context.Context, request *UpdateWikiSpaceSettingReq, options ...MethodOptionFunc) (*UpdateWikiSpaceSettingResp, *Response, error) - mockDriveGetWikiTask func(ctx context.Context, request *GetWikiTaskReq, options ...MethodOptionFunc) (*GetWikiTaskResp, *Response, error) - mockDriveListWikiSpaceMember func(ctx context.Context, request *ListWikiSpaceMemberReq, options ...MethodOptionFunc) (*ListWikiSpaceMemberResp, *Response, error) - mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) + mockDriveUploadDriveFile func(ctx context.Context, request *UploadDriveFileReq, options ...MethodOptionFunc) (*UploadDriveFileResp, *Response, error) + mockDriveUploadDriveMedia func(ctx context.Context, request *UploadDriveMediaReq, options ...MethodOptionFunc) (*UploadDriveMediaResp, *Response, error) + mockDriveCreateBaseAppRole func(ctx context.Context, request *CreateBaseAppRoleReq, options ...MethodOptionFunc) (*CreateBaseAppRoleResp, *Response, error) + mockDriveListBaseAppRole func(ctx context.Context, request *ListBaseAppRoleReq, options ...MethodOptionFunc) (*ListBaseAppRoleResp, *Response, error) + mockDriveUpdateBaseAppRole func(ctx context.Context, request *UpdateBaseAppRoleReq, options ...MethodOptionFunc) (*UpdateBaseAppRoleResp, *Response, error) + mockDriveCreateCcmDocsDefaultDocsApiMeta func(ctx context.Context, request *CreateCcmDocsDefaultDocsApiMetaReq, options ...MethodOptionFunc) (*CreateCcmDocsDefaultDocsApiMetaResp, *Response, error) + mockDriveCreateBoardWhiteboardNode func(ctx context.Context, request *CreateBoardWhiteboardNodeReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodeResp, *Response, error) + mockDriveCreateBoardWhiteboardNodePlantuml func(ctx context.Context, request *CreateBoardWhiteboardNodePlantumlReq, options ...MethodOptionFunc) (*CreateBoardWhiteboardNodePlantumlResp, *Response, error) + mockDriveGetWhiteboardNodeList func(ctx context.Context, request *GetWhiteboardNodeListReq, options ...MethodOptionFunc) (*GetWhiteboardNodeListResp, *Response, error) + mockDriveDownloadBoardWhiteboardAsImage func(ctx context.Context, request *DownloadBoardWhiteboardAsImageReq, options ...MethodOptionFunc) (*DownloadBoardWhiteboardAsImageResp, *Response, error) + mockDriveGetBoardWhiteboardTheme func(ctx context.Context, request *GetBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*GetBoardWhiteboardThemeResp, *Response, error) + mockDriveUpdateBoardWhiteboardTheme func(ctx context.Context, request *UpdateBoardWhiteboardThemeReq, options ...MethodOptionFunc) (*UpdateBoardWhiteboardThemeResp, *Response, error) + mockDriveGetDocsContent func(ctx context.Context, request *GetDocsContentReq, options ...MethodOptionFunc) (*GetDocsContentResp, *Response, error) + mockDriveBatchDeleteDocxChatAnnouncementBlockChildren func(ctx context.Context, request *BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*BatchDeleteDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveCreateDocxChatAnnouncementBlockChildren func(ctx context.Context, request *CreateDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*CreateDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlockChildren func(ctx context.Context, request *GetDocxChatAnnouncementBlockChildrenReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockChildrenResp, *Response, error) + mockDriveBatchUpdateDocxChatAnnouncementBlock func(ctx context.Context, request *BatchUpdateDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncementBlock func(ctx context.Context, request *GetDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementBlockResp, *Response, error) + mockDriveListDocxChatAnnouncementBlock func(ctx context.Context, request *ListDocxChatAnnouncementBlockReq, options ...MethodOptionFunc) (*ListDocxChatAnnouncementBlockResp, *Response, error) + mockDriveGetDocxChatAnnouncement func(ctx context.Context, request *GetDocxChatAnnouncementReq, options ...MethodOptionFunc) (*GetDocxChatAnnouncementResp, *Response, error) + mockDriveCreateDocxDocumentBlockDescendant func(ctx context.Context, request *CreateDocxDocumentBlockDescendantReq, options ...MethodOptionFunc) (*CreateDocxDocumentBlockDescendantResp, *Response, error) + mockDriveBatchUpdateDocxDocumentBlock func(ctx context.Context, request *BatchUpdateDocxDocumentBlockReq, options ...MethodOptionFunc) (*BatchUpdateDocxDocumentBlockResp, *Response, error) + mockDriveCreateDocxDocumentConvert func(ctx context.Context, request *CreateDocxDocumentConvertReq, options ...MethodOptionFunc) (*CreateDocxDocumentConvertResp, *Response, error) mockEHRGetEHREmployeeList func(ctx context.Context, request *GetEHREmployeeListReq, options ...MethodOptionFunc) (*GetEHREmployeeListResp, *Response, error) + mockEHRDownloadEHRAttachments func(ctx context.Context, request *DownloadEHRAttachmentsReq, options ...MethodOptionFunc) (*DownloadEHRAttachmentsResp, *Response, error) mockEventGetEventOutboundIpList func(ctx context.Context, request *GetEventOutboundIpListReq, options ...MethodOptionFunc) (*GetEventOutboundIpListResp, *Response, error) - mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) mockFileDownloadImage func(ctx context.Context, request *DownloadImageReq, options ...MethodOptionFunc) (*DownloadImageResp, *Response, error) mockFileUploadFile func(ctx context.Context, request *UploadFileReq, options ...MethodOptionFunc) (*UploadFileResp, *Response, error) - mockFileUploadImage func(ctx context.Context, request *UploadImageReq, options ...MethodOptionFunc) (*UploadImageResp, *Response, error) - mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) + mockFileDownloadFile func(ctx context.Context, request *DownloadFileReq, options ...MethodOptionFunc) (*DownloadFileResp, *Response, error) + mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) + mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) + mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) + mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) + mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) + mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) + mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) + mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) + mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) + mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) + mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) + mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) + mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) + mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) + mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) + mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) + mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) + mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) + mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) + mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) + mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) + mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) + mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) + mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) mockHelpdeskUpdateHelpdeskAgent func(ctx context.Context, request *UpdateHelpdeskAgentReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentResp, *Response, error) + mockHelpdeskGetHelpdeskAgentEmail func(ctx context.Context, request *GetHelpdeskAgentEmailReq, options ...MethodOptionFunc) (*GetHelpdeskAgentEmailResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSchedule func(ctx context.Context, request *CreateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskDeleteHelpdeskAgentSchedule func(ctx context.Context, request *DeleteHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentScheduleResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentSchedule func(ctx context.Context, request *GetHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskGetHelpdeskAgentScheduleList func(ctx context.Context, request *GetHelpdeskAgentScheduleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentScheduleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSchedule func(ctx context.Context, request *UpdateHelpdeskAgentScheduleReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentScheduleResp, *Response, error) mockHelpdeskCreateHelpdeskAgentSkill func(ctx context.Context, request *CreateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*CreateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkill func(ctx context.Context, request *GetHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) + mockHelpdeskDeleteHelpdeskAgentSkill func(ctx context.Context, request *DeleteHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*DeleteHelpdeskAgentSkillResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillList func(ctx context.Context, request *GetHelpdeskAgentSkillListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillListResp, *Response, error) mockHelpdeskGetHelpdeskAgentSkillRuleList func(ctx context.Context, request *GetHelpdeskAgentSkillRuleListReq, options ...MethodOptionFunc) (*GetHelpdeskAgentSkillRuleListResp, *Response, error) - mockHelpdeskUpdateHelpdeskAgentSkill func(ctx context.Context, request *UpdateHelpdeskAgentSkillReq, options ...MethodOptionFunc) (*UpdateHelpdeskAgentSkillResp, *Response, error) - mockHelpdeskCreateHelpdeskCategory func(ctx context.Context, request *CreateHelpdeskCategoryReq, options ...MethodOptionFunc) (*CreateHelpdeskCategoryResp, *Response, error) - mockHelpdeskDeleteHelpdeskCategory func(ctx context.Context, request *DeleteHelpdeskCategoryReq, options ...MethodOptionFunc) (*DeleteHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategory func(ctx context.Context, request *GetHelpdeskCategoryReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryResp, *Response, error) - mockHelpdeskGetHelpdeskCategoryList func(ctx context.Context, request *GetHelpdeskCategoryListReq, options ...MethodOptionFunc) (*GetHelpdeskCategoryListResp, *Response, error) - mockHelpdeskUpdateHelpdeskCategory func(ctx context.Context, request *UpdateHelpdeskCategoryReq, options ...MethodOptionFunc) (*UpdateHelpdeskCategoryResp, *Response, error) mockHelpdeskSubscribeHelpdeskEvent func(ctx context.Context, request *SubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*SubscribeHelpdeskEventResp, *Response, error) mockHelpdeskUnsubscribeHelpdeskEvent func(ctx context.Context, request *UnsubscribeHelpdeskEventReq, options ...MethodOptionFunc) (*UnsubscribeHelpdeskEventResp, *Response, error) - mockHelpdeskCreateHelpdeskFAQ func(ctx context.Context, request *CreateHelpdeskFAQReq, options ...MethodOptionFunc) (*CreateHelpdeskFAQResp, *Response, error) - mockHelpdeskDeleteHelpdeskFAQ func(ctx context.Context, request *DeleteHelpdeskFAQReq, options ...MethodOptionFunc) (*DeleteHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQ func(ctx context.Context, request *GetHelpdeskFAQReq, options ...MethodOptionFunc) (*GetHelpdeskFAQResp, *Response, error) - mockHelpdeskGetHelpdeskFAQImage func(ctx context.Context, request *GetHelpdeskFAQImageReq, options ...MethodOptionFunc) (*GetHelpdeskFAQImageResp, *Response, error) - mockHelpdeskGetHelpdeskFAQList func(ctx context.Context, request *GetHelpdeskFAQListReq, options ...MethodOptionFunc) (*GetHelpdeskFAQListResp, *Response, error) - mockHelpdeskSearchHelpdeskFAQ func(ctx context.Context, request *SearchHelpdeskFAQReq, options ...MethodOptionFunc) (*SearchHelpdeskFAQResp, *Response, error) - mockHelpdeskUpdateHelpdeskFAQ func(ctx context.Context, request *UpdateHelpdeskFAQReq, options ...MethodOptionFunc) (*UpdateHelpdeskFAQResp, *Response, error) - mockHelpdeskSendHelpdeskMessage func(ctx context.Context, request *SendHelpdeskMessageReq, options ...MethodOptionFunc) (*SendHelpdeskMessageResp, *Response, error) - mockHelpdeskCancelApproveHelpdeskNotification func(ctx context.Context, request *CancelApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskCancelSendHelpdeskNotification func(ctx context.Context, request *CancelSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*CancelSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskCreateHelpdeskNotification func(ctx context.Context, request *CreateHelpdeskNotificationReq, options ...MethodOptionFunc) (*CreateHelpdeskNotificationResp, *Response, error) - mockHelpdeskExecuteSendHelpdeskNotification func(ctx context.Context, request *ExecuteSendHelpdeskNotificationReq, options ...MethodOptionFunc) (*ExecuteSendHelpdeskNotificationResp, *Response, error) - mockHelpdeskGetHelpdeskNotification func(ctx context.Context, request *GetHelpdeskNotificationReq, options ...MethodOptionFunc) (*GetHelpdeskNotificationResp, *Response, error) - mockHelpdeskPreviewHelpdeskNotification func(ctx context.Context, request *PreviewHelpdeskNotificationReq, options ...MethodOptionFunc) (*PreviewHelpdeskNotificationResp, *Response, error) - mockHelpdeskSubmitApproveHelpdeskNotification func(ctx context.Context, request *SubmitApproveHelpdeskNotificationReq, options ...MethodOptionFunc) (*SubmitApproveHelpdeskNotificationResp, *Response, error) - mockHelpdeskUpdateHelpdeskNotification func(ctx context.Context, request *UpdateHelpdeskNotificationReq, options ...MethodOptionFunc) (*UpdateHelpdeskNotificationResp, *Response, error) - mockHelpdeskStartHelpdeskService func(ctx context.Context, request *StartHelpdeskServiceReq, options ...MethodOptionFunc) (*StartHelpdeskServiceResp, *Response, error) - mockHelpdeskAnswerHelpdeskTicketUserQuery func(ctx context.Context, request *AnswerHelpdeskTicketUserQueryReq, options ...MethodOptionFunc) (*AnswerHelpdeskTicketUserQueryResp, *Response, error) - mockHelpdeskCreateHelpdeskTicketCustomizedField func(ctx context.Context, request *CreateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*CreateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskDeleteHelpdeskTicketCustomizedField func(ctx context.Context, request *DeleteHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*DeleteHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedField func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFieldList func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldListResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicketCustomizedField func(ctx context.Context, request *UpdateHelpdeskTicketCustomizedFieldReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketCustomizedFieldResp, *Response, error) - mockHelpdeskGetHelpdeskTicketCustomizedFields func(ctx context.Context, request *GetHelpdeskTicketCustomizedFieldsReq, options ...MethodOptionFunc) (*GetHelpdeskTicketCustomizedFieldsResp, *Response, error) - mockHelpdeskGetHelpdeskTicket func(ctx context.Context, request *GetHelpdeskTicketReq, options ...MethodOptionFunc) (*GetHelpdeskTicketResp, *Response, error) - mockHelpdeskGetHelpdeskTicketList func(ctx context.Context, request *GetHelpdeskTicketListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketListResp, *Response, error) - mockHelpdeskDownloadHelpdeskTicketImage func(ctx context.Context, request *DownloadHelpdeskTicketImageReq, options ...MethodOptionFunc) (*DownloadHelpdeskTicketImageResp, *Response, error) - mockHelpdeskGetHelpdeskTicketMessageList func(ctx context.Context, request *GetHelpdeskTicketMessageListReq, options ...MethodOptionFunc) (*GetHelpdeskTicketMessageListResp, *Response, error) - mockHelpdeskSendHelpdeskTicketMessage func(ctx context.Context, request *SendHelpdeskTicketMessageReq, options ...MethodOptionFunc) (*SendHelpdeskTicketMessageResp, *Response, error) - mockHelpdeskUpdateHelpdeskTicket func(ctx context.Context, request *UpdateHelpdeskTicketReq, options ...MethodOptionFunc) (*UpdateHelpdeskTicketResp, *Response, error) + mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) + mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) + mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) + mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) + mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) + mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) + mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) + mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) + mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) + mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) + mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) + mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) + mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) + mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) + mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) + mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) + mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) + mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) + mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) + mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) + mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) + mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) + mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) + mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) + mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) + mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) + mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) + mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) + mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) + mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) + mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) + mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) + mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) + mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) + mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) + mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) + mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) + mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) + mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) + mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) + mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) + mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) + mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) + mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) + mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) + mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) + mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) + mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) + mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) + mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) + mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) + mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) + mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) + mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) + mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) + mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) + mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) + mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) + mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) + mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) + mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) + mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) + mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) mockHireCreateHireAdvertisementPublish func(ctx context.Context, request *CreateHireAdvertisementPublishReq, options ...MethodOptionFunc) (*CreateHireAdvertisementPublishResp, *Response, error) mockHireBatchQueryHireAgency func(ctx context.Context, request *BatchQueryHireAgencyReq, options ...MethodOptionFunc) (*BatchQueryHireAgencyResp, *Response, error) mockHireGetHireAgency func(ctx context.Context, request *GetHireAgencyReq, options ...MethodOptionFunc) (*GetHireAgencyResp, *Response, error) @@ -1042,74 +1127,34 @@ type Mock struct { mockHireCreateHireAgencyProtect func(ctx context.Context, request *CreateHireAgencyProtectReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectResp, *Response, error) mockHireCreateHireAgencyProtectSearch func(ctx context.Context, request *CreateHireAgencyProtectSearchReq, options ...MethodOptionFunc) (*CreateHireAgencyProtectSearchResp, *Response, error) mockHireQueryHireAgency func(ctx context.Context, request *QueryHireAgencyReq, options ...MethodOptionFunc) (*QueryHireAgencyResp, *Response, error) - mockHireCreateHireApplicationCancelOnboard func(ctx context.Context, request *CreateHireApplicationCancelOnboardReq, options ...MethodOptionFunc) (*CreateHireApplicationCancelOnboardResp, *Response, error) - mockHireCreateHireApplication func(ctx context.Context, request *CreateHireApplicationReq, options ...MethodOptionFunc) (*CreateHireApplicationResp, *Response, error) - mockHireGetHireApplication func(ctx context.Context, request *GetHireApplicationReq, options ...MethodOptionFunc) (*GetHireApplicationResp, *Response, error) + mockHireCancelHireApplicationOnboard func(ctx context.Context, request *CancelHireApplicationOnboardReq, options ...MethodOptionFunc) (*CancelHireApplicationOnboardResp, *Response, error) mockHireGetHireApplicationDetail func(ctx context.Context, request *GetHireApplicationDetailReq, options ...MethodOptionFunc) (*GetHireApplicationDetailResp, *Response, error) - mockHireGetHireApplicationInterviewList func(ctx context.Context, request *GetHireApplicationInterviewListReq, options ...MethodOptionFunc) (*GetHireApplicationInterviewListResp, *Response, error) - mockHireGetHireApplicationList func(ctx context.Context, request *GetHireApplicationListReq, options ...MethodOptionFunc) (*GetHireApplicationListResp, *Response, error) mockHireCreateHireApplicationRecover func(ctx context.Context, request *CreateHireApplicationRecoverReq, options ...MethodOptionFunc) (*CreateHireApplicationRecoverResp, *Response, error) - mockHireTerminateHireApplication func(ctx context.Context, request *TerminateHireApplicationReq, options ...MethodOptionFunc) (*TerminateHireApplicationResp, *Response, error) mockHireTransferHireApplicationStage func(ctx context.Context, request *TransferHireApplicationStageReq, options ...MethodOptionFunc) (*TransferHireApplicationStageResp, *Response, error) - mockHireCreateHireAttachment func(ctx context.Context, request *CreateHireAttachmentReq, options ...MethodOptionFunc) (*CreateHireAttachmentResp, *Response, error) - mockHireGetHireAttachment func(ctx context.Context, request *GetHireAttachmentReq, options ...MethodOptionFunc) (*GetHireAttachmentResp, *Response, error) - mockHireGetHireAttachmentPreview func(ctx context.Context, request *GetHireAttachmentPreviewReq, options ...MethodOptionFunc) (*GetHireAttachmentPreviewResp, *Response, error) mockHireBatchQueryHireBackgroundCheckOrder func(ctx context.Context, request *BatchQueryHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*BatchQueryHireBackgroundCheckOrderResp, *Response, error) mockHireListHireBackgroundCheckOrder func(ctx context.Context, request *ListHireBackgroundCheckOrderReq, options ...MethodOptionFunc) (*ListHireBackgroundCheckOrderResp, *Response, error) mockHireSearchHireDiversityInclusion func(ctx context.Context, request *SearchHireDiversityInclusionReq, options ...MethodOptionFunc) (*SearchHireDiversityInclusionResp, *Response, error) - mockHireCreateHireEcoAccountCustomField func(ctx context.Context, request *CreateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoAccountCustomField func(ctx context.Context, request *BatchDeleteHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoAccountCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoAccountCustomField func(ctx context.Context, request *BatchUpdateHireEcoAccountCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoAccountCustomFieldResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *CreateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckCustomField func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckCustomFieldReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckCustomFieldResp, *Response, error) - mockHireBatchDeleteHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchDeleteHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireBatchUpdateHireEcoBackgroundCheckPackage func(ctx context.Context, request *BatchUpdateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireCreateHireEcoBackgroundCheckPackage func(ctx context.Context, request *CreateHireEcoBackgroundCheckPackageReq, options ...MethodOptionFunc) (*CreateHireEcoBackgroundCheckPackageResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckProgress func(ctx context.Context, request *UpdateHireEcoBackgroundCheckProgressReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckProgressResp, *Response, error) - mockHireCancelHireEcoBackgroundCheck func(ctx context.Context, request *CancelHireEcoBackgroundCheckReq, options ...MethodOptionFunc) (*CancelHireEcoBackgroundCheckResp, *Response, error) - mockHireUpdateHireEcoBackgroundCheckResult func(ctx context.Context, request *UpdateHireEcoBackgroundCheckResultReq, options ...MethodOptionFunc) (*UpdateHireEcoBackgroundCheckResultResp, *Response, error) - mockHireCreateHireEcoExamLoginInfo func(ctx context.Context, request *CreateHireEcoExamLoginInfoReq, options ...MethodOptionFunc) (*CreateHireEcoExamLoginInfoResp, *Response, error) - mockHireBatchDeleteHireEcoExamPaper func(ctx context.Context, request *BatchDeleteHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchDeleteHireEcoExamPaperResp, *Response, error) - mockHireBatchUpdateHireEcoExamPaper func(ctx context.Context, request *BatchUpdateHireEcoExamPaperReq, options ...MethodOptionFunc) (*BatchUpdateHireEcoExamPaperResp, *Response, error) - mockHireCreateHireEcoExamPaper func(ctx context.Context, request *CreateHireEcoExamPaperReq, options ...MethodOptionFunc) (*CreateHireEcoExamPaperResp, *Response, error) - mockHireUpdateHiredEcoExamResult func(ctx context.Context, request *UpdateHiredEcoExamResultReq, options ...MethodOptionFunc) (*UpdateHiredEcoExamResultResp, *Response, error) - mockHireUpdateHireEHRImportTask func(ctx context.Context, request *UpdateHireEHRImportTaskReq, options ...MethodOptionFunc) (*UpdateHireEHRImportTaskResp, *Response, error) - mockHireGetHireEmployee func(ctx context.Context, request *GetHireEmployeeReq, options ...MethodOptionFunc) (*GetHireEmployeeResp, *Response, error) - mockHireGetHireEmployeeByApplication func(ctx context.Context, request *GetHireEmployeeByApplicationReq, options ...MethodOptionFunc) (*GetHireEmployeeByApplicationResp, *Response, error) - mockHireUpdateHireEmployee func(ctx context.Context, request *UpdateHireEmployeeReq, options ...MethodOptionFunc) (*UpdateHireEmployeeResp, *Response, error) - mockHireGetHireEvaluationList func(ctx context.Context, request *GetHireEvaluationListReq, options ...MethodOptionFunc) (*GetHireEvaluationListResp, *Response, error) mockHireListHireEvaluationTask func(ctx context.Context, request *ListHireEvaluationTaskReq, options ...MethodOptionFunc) (*ListHireEvaluationTaskResp, *Response, error) mockHireCreateHireExam func(ctx context.Context, request *CreateHireExamReq, options ...MethodOptionFunc) (*CreateHireExamResp, *Response, error) mockHireListHireExamMarkingTask func(ctx context.Context, request *ListHireExamMarkingTaskReq, options ...MethodOptionFunc) (*ListHireExamMarkingTaskResp, *Response, error) - mockHireCreateHireExternalApplication func(ctx context.Context, request *CreateHireExternalApplicationReq, options ...MethodOptionFunc) (*CreateHireExternalApplicationResp, *Response, error) - mockHireDeleteHireExternalApplication func(ctx context.Context, request *DeleteHireExternalApplicationReq, options ...MethodOptionFunc) (*DeleteHireExternalApplicationResp, *Response, error) mockHireListHireExternalApplication func(ctx context.Context, request *ListHireExternalApplicationReq, options ...MethodOptionFunc) (*ListHireExternalApplicationResp, *Response, error) - mockHireUpdateHireExternalApplication func(ctx context.Context, request *UpdateHireExternalApplicationReq, options ...MethodOptionFunc) (*UpdateHireExternalApplicationResp, *Response, error) mockHireBatchQueryHireExternalBackgroundCheck func(ctx context.Context, request *BatchQueryHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*BatchQueryHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalBackgroundCheck func(ctx context.Context, request *CreateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*CreateHireExternalBackgroundCheckResp, *Response, error) mockHireDeleteHireExternalBackgroundCheck func(ctx context.Context, request *DeleteHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*DeleteHireExternalBackgroundCheckResp, *Response, error) mockHireUpdateHireExternalBackgroundCheck func(ctx context.Context, request *UpdateHireExternalBackgroundCheckReq, options ...MethodOptionFunc) (*UpdateHireExternalBackgroundCheckResp, *Response, error) - mockHireCreateHireExternalInterviewAssessment func(ctx context.Context, request *CreateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewAssessmentResp, *Response, error) - mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalInterview func(ctx context.Context, request *BatchQueryHireExternalInterviewReq, options ...MethodOptionFunc) (*BatchQueryHireExternalInterviewResp, *Response, error) - mockHireCreateHireExternalInterview func(ctx context.Context, request *CreateHireExternalInterviewReq, options ...MethodOptionFunc) (*CreateHireExternalInterviewResp, *Response, error) mockHireDeleteHireExternalInterview func(ctx context.Context, request *DeleteHireExternalInterviewReq, options ...MethodOptionFunc) (*DeleteHireExternalInterviewResp, *Response, error) mockHireUpdateHireExternalInterview func(ctx context.Context, request *UpdateHireExternalInterviewReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewResp, *Response, error) + mockHireUpdateHireExternalInterviewAssessment func(ctx context.Context, request *UpdateHireExternalInterviewAssessmentReq, options ...MethodOptionFunc) (*UpdateHireExternalInterviewAssessmentResp, *Response, error) mockHireBatchQueryHireExternalOffer func(ctx context.Context, request *BatchQueryHireExternalOfferReq, options ...MethodOptionFunc) (*BatchQueryHireExternalOfferResp, *Response, error) mockHireCreateHireExternalOffer func(ctx context.Context, request *CreateHireExternalOfferReq, options ...MethodOptionFunc) (*CreateHireExternalOfferResp, *Response, error) mockHireDeleteHireExternalOffer func(ctx context.Context, request *DeleteHireExternalOfferReq, options ...MethodOptionFunc) (*DeleteHireExternalOfferResp, *Response, error) mockHireUpdateHireExternalOffer func(ctx context.Context, request *UpdateHireExternalOfferReq, options ...MethodOptionFunc) (*UpdateHireExternalOfferResp, *Response, error) mockHireCreateHireExternalReferralReward func(ctx context.Context, request *CreateHireExternalReferralRewardReq, options ...MethodOptionFunc) (*CreateHireExternalReferralRewardResp, *Response, error) mockHireDeleteHireExternalReferralReward func(ctx context.Context, request *DeleteHireExternalReferralRewardReq, options ...MethodOptionFunc) (*DeleteHireExternalReferralRewardResp, *Response, error) - mockHireUpdateHireOfferInternStatus func(ctx context.Context, request *UpdateHireOfferInternStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferInternStatusResp, *Response, error) - mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewByTalent func(ctx context.Context, request *GetHireInterviewByTalentReq, options ...MethodOptionFunc) (*GetHireInterviewByTalentResp, *Response, error) - mockHireGetHireInterviewList func(ctx context.Context, request *GetHireInterviewListReq, options ...MethodOptionFunc) (*GetHireInterviewListResp, *Response, error) + mockHireListHireInterviewFeedbackForm func(ctx context.Context, request *ListHireInterviewFeedbackFormReq, options ...MethodOptionFunc) (*ListHireInterviewFeedbackFormResp, *Response, error) mockHireGetHireInterviewRecordAttachment func(ctx context.Context, request *GetHireInterviewRecordAttachmentReq, options ...MethodOptionFunc) (*GetHireInterviewRecordAttachmentResp, *Response, error) - mockHireGetHireInterviewRecord func(ctx context.Context, request *GetHireInterviewRecordReq, options ...MethodOptionFunc) (*GetHireInterviewRecordResp, *Response, error) mockHireGetHireInterviewRecordV1 func(ctx context.Context, request *GetHireInterviewRecordV1Req, options ...MethodOptionFunc) (*GetHireInterviewRecordV1Resp, *Response, error) - mockHireListHireInterviewRecord func(ctx context.Context, request *ListHireInterviewRecordReq, options ...MethodOptionFunc) (*ListHireInterviewRecordResp, *Response, error) mockHireListHireInterviewRecordV1 func(ctx context.Context, request *ListHireInterviewRecordV1Req, options ...MethodOptionFunc) (*ListHireInterviewRecordV1Resp, *Response, error) mockHireListHireInterviewRegistrationSchema func(ctx context.Context, request *ListHireInterviewRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireInterviewRegistrationSchemaResp, *Response, error) mockHireListHireInterviewRoundType func(ctx context.Context, request *ListHireInterviewRoundTypeReq, options ...MethodOptionFunc) (*ListHireInterviewRoundTypeResp, *Response, error) @@ -1117,87 +1162,53 @@ type Mock struct { mockHireListHireInterviewer func(ctx context.Context, request *ListHireInterviewerReq, options ...MethodOptionFunc) (*ListHireInterviewerResp, *Response, error) mockHireUpdateHireInterviewer func(ctx context.Context, request *UpdateHireInterviewerReq, options ...MethodOptionFunc) (*UpdateHireInterviewerResp, *Response, error) mockHireCloseHireJob func(ctx context.Context, request *CloseHireJobReq, options ...MethodOptionFunc) (*CloseHireJobResp, *Response, error) - mockHireGetHireJobConfig func(ctx context.Context, request *GetHireJobConfigReq, options ...MethodOptionFunc) (*GetHireJobConfigResp, *Response, error) - mockHireUpdateHireJobConfig func(ctx context.Context, request *UpdateHireJobConfigReq, options ...MethodOptionFunc) (*UpdateHireJobConfigResp, *Response, error) - mockHireCreateHireJob func(ctx context.Context, request *CreateHireJobReq, options ...MethodOptionFunc) (*CreateHireJobResp, *Response, error) - mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) - mockHireGetHireJob func(ctx context.Context, request *GetHireJobReq, options ...MethodOptionFunc) (*GetHireJobResp, *Response, error) mockHireGetHireJobDetail func(ctx context.Context, request *GetHireJobDetailReq, options ...MethodOptionFunc) (*GetHireJobDetailResp, *Response, error) mockHireListHireJob func(ctx context.Context, request *ListHireJobReq, options ...MethodOptionFunc) (*ListHireJobResp, *Response, error) - mockHireGetHireJobManager func(ctx context.Context, request *GetHireJobManagerReq, options ...MethodOptionFunc) (*GetHireJobManagerResp, *Response, error) mockHireOpenHireJob func(ctx context.Context, request *OpenHireJobReq, options ...MethodOptionFunc) (*OpenHireJobResp, *Response, error) - mockHireGetHireJobProcessList func(ctx context.Context, request *GetHireJobProcessListReq, options ...MethodOptionFunc) (*GetHireJobProcessListResp, *Response, error) - mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireGetHireJobRecruiter func(ctx context.Context, request *GetHireJobRecruiterReq, options ...MethodOptionFunc) (*GetHireJobRecruiterResp, *Response, error) + mockHireListHireJobFunction func(ctx context.Context, request *ListHireJobFunctionReq, options ...MethodOptionFunc) (*ListHireJobFunctionResp, *Response, error) + mockHireSearchHireJobPublishRecord func(ctx context.Context, request *SearchHireJobPublishRecordReq, options ...MethodOptionFunc) (*SearchHireJobPublishRecordResp, *Response, error) mockHireCreateHireJobRequirement func(ctx context.Context, request *CreateHireJobRequirementReq, options ...MethodOptionFunc) (*CreateHireJobRequirementResp, *Response, error) mockHireDeleteHireJobRequirement func(ctx context.Context, request *DeleteHireJobRequirementReq, options ...MethodOptionFunc) (*DeleteHireJobRequirementResp, *Response, error) mockHireListHireJobRequirement func(ctx context.Context, request *ListHireJobRequirementReq, options ...MethodOptionFunc) (*ListHireJobRequirementResp, *Response, error) mockHireListHireJobRequirementByID func(ctx context.Context, request *ListHireJobRequirementByIDReq, options ...MethodOptionFunc) (*ListHireJobRequirementByIDResp, *Response, error) - mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireUpdateHireJobRequirement func(ctx context.Context, request *UpdateHireJobRequirementReq, options ...MethodOptionFunc) (*UpdateHireJobRequirementResp, *Response, error) + mockHireListHireJobRequirementSchema func(ctx context.Context, request *ListHireJobRequirementSchemaReq, options ...MethodOptionFunc) (*ListHireJobRequirementSchemaResp, *Response, error) mockHireListHireJobSchema func(ctx context.Context, request *ListHireJobSchemaReq, options ...MethodOptionFunc) (*ListHireJobSchemaResp, *Response, error) mockHireListHireJobType func(ctx context.Context, request *ListHireJobTypeReq, options ...MethodOptionFunc) (*ListHireJobTypeResp, *Response, error) - mockHireUpdateHireJob func(ctx context.Context, request *UpdateHireJobReq, options ...MethodOptionFunc) (*UpdateHireJobResp, *Response, error) mockHireListHireLocation func(ctx context.Context, request *ListHireLocationReq, options ...MethodOptionFunc) (*ListHireLocationResp, *Response, error) mockHireQueryHireLocation func(ctx context.Context, request *QueryHireLocationReq, options ...MethodOptionFunc) (*QueryHireLocationResp, *Response, error) mockHireGetHireMinutes func(ctx context.Context, request *GetHireMinutesReq, options ...MethodOptionFunc) (*GetHireMinutesResp, *Response, error) - mockHireCreateHireNote func(ctx context.Context, request *CreateHireNoteReq, options ...MethodOptionFunc) (*CreateHireNoteResp, *Response, error) mockHireDeleteHireNote func(ctx context.Context, request *DeleteHireNoteReq, options ...MethodOptionFunc) (*DeleteHireNoteResp, *Response, error) - mockHireGetHireNote func(ctx context.Context, request *GetHireNoteReq, options ...MethodOptionFunc) (*GetHireNoteResp, *Response, error) - mockHireGetHireNoteList func(ctx context.Context, request *GetHireNoteListReq, options ...MethodOptionFunc) (*GetHireNoteListResp, *Response, error) - mockHireUpdateHireNote func(ctx context.Context, request *UpdateHireNoteReq, options ...MethodOptionFunc) (*UpdateHireNoteResp, *Response, error) mockHireGetHireOfferApplicationForm func(ctx context.Context, request *GetHireOfferApplicationFormReq, options ...MethodOptionFunc) (*GetHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApplicationForm func(ctx context.Context, request *ListHireOfferApplicationFormReq, options ...MethodOptionFunc) (*ListHireOfferApplicationFormResp, *Response, error) mockHireListHireOfferApprovalTemplate func(ctx context.Context, request *ListHireOfferApprovalTemplateReq, options ...MethodOptionFunc) (*ListHireOfferApprovalTemplateResp, *Response, error) mockHireUpdateHireOfferCustomField func(ctx context.Context, request *UpdateHireOfferCustomFieldReq, options ...MethodOptionFunc) (*UpdateHireOfferCustomFieldResp, *Response, error) - mockHireGetHireOffer func(ctx context.Context, request *GetHireOfferReq, options ...MethodOptionFunc) (*GetHireOfferResp, *Response, error) - mockHireGetHireOfferByApplication func(ctx context.Context, request *GetHireOfferByApplicationReq, options ...MethodOptionFunc) (*GetHireOfferByApplicationResp, *Response, error) - mockHireGetHireOfferList func(ctx context.Context, request *GetHireOfferListReq, options ...MethodOptionFunc) (*GetHireOfferListResp, *Response, error) - mockHireGetHireOfferSchema func(ctx context.Context, request *GetHireOfferSchemaReq, options ...MethodOptionFunc) (*GetHireOfferSchemaResp, *Response, error) - mockHireCreateHireOffer func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) - mockHireUpdateHireOfferStatus func(ctx context.Context, request *UpdateHireOfferStatusReq, options ...MethodOptionFunc) (*UpdateHireOfferStatusResp, *Response, error) - mockHireUpdateHireOffer func(ctx context.Context, request *UpdateHireOfferReq, options ...MethodOptionFunc) (*UpdateHireOfferResp, *Response, error) mockHireListHirePortalApplySchema func(ctx context.Context, request *ListHirePortalApplySchemaReq, options ...MethodOptionFunc) (*ListHirePortalApplySchemaResp, *Response, error) - mockHireGetHireQuestionnaireList func(ctx context.Context, request *GetHireQuestionnaireListReq, options ...MethodOptionFunc) (*GetHireQuestionnaireListResp, *Response, error) - mockHireCreateHireReferralAccount func(ctx context.Context, request *CreateHireReferralAccountReq, options ...MethodOptionFunc) (*CreateHireReferralAccountResp, *Response, error) - mockHireDeactivateHireReferralAccount func(ctx context.Context, request *DeactivateHireReferralAccountReq, options ...MethodOptionFunc) (*DeactivateHireReferralAccountResp, *Response, error) + mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) mockHireCreateHireReferralAccountEnable func(ctx context.Context, request *CreateHireReferralAccountEnableReq, options ...MethodOptionFunc) (*CreateHireReferralAccountEnableResp, *Response, error) mockHireGetHireReferralAccountAssets func(ctx context.Context, request *GetHireReferralAccountAssetsReq, options ...MethodOptionFunc) (*GetHireReferralAccountAssetsResp, *Response, error) - mockHireReconcileHireReferralAccount func(ctx context.Context, request *ReconcileHireReferralAccountReq, options ...MethodOptionFunc) (*ReconcileHireReferralAccountResp, *Response, error) - mockHireWithdrawHireReferralAccount func(ctx context.Context, request *WithdrawHireReferralAccountReq, options ...MethodOptionFunc) (*WithdrawHireReferralAccountResp, *Response, error) - mockHireGetHireReferralByApplication func(ctx context.Context, request *GetHireReferralByApplicationReq, options ...MethodOptionFunc) (*GetHireReferralByApplicationResp, *Response, error) - mockHireSearchHireReferral func(ctx context.Context, request *SearchHireReferralReq, options ...MethodOptionFunc) (*SearchHireReferralResp, *Response, error) - mockHireGetHireReferralWebsiteJobPost func(ctx context.Context, request *GetHireReferralWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostResp, *Response, error) - mockHireGetHireReferralWebsiteJobPostList func(ctx context.Context, request *GetHireReferralWebsiteJobPostListReq, options ...MethodOptionFunc) (*GetHireReferralWebsiteJobPostListResp, *Response, error) mockHireListHireRegistrationSchema func(ctx context.Context, request *ListHireRegistrationSchemaReq, options ...MethodOptionFunc) (*ListHireRegistrationSchemaResp, *Response, error) - mockHireGetHireResumeSource func(ctx context.Context, request *GetHireResumeSourceReq, options ...MethodOptionFunc) (*GetHireResumeSourceResp, *Response, error) mockHireGetHireRole func(ctx context.Context, request *GetHireRoleReq, options ...MethodOptionFunc) (*GetHireRoleResp, *Response, error) mockHireListHireRole func(ctx context.Context, request *ListHireRoleReq, options ...MethodOptionFunc) (*ListHireRoleResp, *Response, error) mockHireListHireSubject func(ctx context.Context, request *ListHireSubjectReq, options ...MethodOptionFunc) (*ListHireSubjectResp, *Response, error) - mockHireAddHireTalentToFolder func(ctx context.Context, request *AddHireTalentToFolderReq, options ...MethodOptionFunc) (*AddHireTalentToFolderResp, *Response, error) - mockHireBatchGetHireTalent func(ctx context.Context, request *BatchGetHireTalentReq, options ...MethodOptionFunc) (*BatchGetHireTalentResp, *Response, error) - mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) - mockHireCreateHireTalentCombinedCreate func(ctx context.Context, request *CreateHireTalentCombinedCreateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedCreateResp, *Response, error) - mockHireCreateHireTalentCombinedUpdate func(ctx context.Context, request *CreateHireTalentCombinedUpdateReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedUpdateResp, *Response, error) mockHireCreateHireTalentExternalInfo func(ctx context.Context, request *CreateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*CreateHireTalentExternalInfoResp, *Response, error) mockHireUpdateHireTalentExternalInfo func(ctx context.Context, request *UpdateHireTalentExternalInfoReq, options ...MethodOptionFunc) (*UpdateHireTalentExternalInfoResp, *Response, error) - mockHireGetHireTalentFolderList func(ctx context.Context, request *GetHireTalentFolderListReq, options ...MethodOptionFunc) (*GetHireTalentFolderListResp, *Response, error) - mockHireGetHireTalent func(ctx context.Context, request *GetHireTalentReq, options ...MethodOptionFunc) (*GetHireTalentResp, *Response, error) - mockHireGetHireTalentV2 func(ctx context.Context, request *GetHireTalentV2Req, options ...MethodOptionFunc) (*GetHireTalentV2Resp, *Response, error) + mockHireCreateHireTalentCombined func(ctx context.Context, request *CreateHireTalentCombinedReq, options ...MethodOptionFunc) (*CreateHireTalentCombinedResp, *Response, error) + mockHireUpdateHireTalentCombined func(ctx context.Context, request *UpdateHireTalentCombinedReq, options ...MethodOptionFunc) (*UpdateHireTalentCombinedResp, *Response, error) mockHireGetHireTalentList func(ctx context.Context, request *GetHireTalentListReq, options ...MethodOptionFunc) (*GetHireTalentListResp, *Response, error) - mockHireQueryHireTalentObject func(ctx context.Context, request *QueryHireTalentObjectReq, options ...MethodOptionFunc) (*QueryHireTalentObjectResp, *Response, error) mockHireCreateHireTalentOnboardStatus func(ctx context.Context, request *CreateHireTalentOnboardStatusReq, options ...MethodOptionFunc) (*CreateHireTalentOnboardStatusResp, *Response, error) + mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) + mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireSearchHireTalentOperationLog func(ctx context.Context, request *SearchHireTalentOperationLogReq, options ...MethodOptionFunc) (*SearchHireTalentOperationLogResp, *Response, error) + mockHireCreateHireTalentBlocklistChangeTalentBlock func(ctx context.Context, request *CreateHireTalentBlocklistChangeTalentBlockReq, options ...MethodOptionFunc) (*CreateHireTalentBlocklistChangeTalentBlockResp, *Response, error) mockHireBatchHireTalentPoolChangeTalentPool func(ctx context.Context, request *BatchHireTalentPoolChangeTalentPoolReq, options ...MethodOptionFunc) (*BatchHireTalentPoolChangeTalentPoolResp, *Response, error) mockHireCreateHireTalentPoolMoveTalent func(ctx context.Context, request *CreateHireTalentPoolMoveTalentReq, options ...MethodOptionFunc) (*CreateHireTalentPoolMoveTalentResp, *Response, error) mockHireSearchHireTalentPool func(ctx context.Context, request *SearchHireTalentPoolReq, options ...MethodOptionFunc) (*SearchHireTalentPoolResp, *Response, error) - mockHireRemoveHireTalentToFolder func(ctx context.Context, request *RemoveHireTalentToFolderReq, options ...MethodOptionFunc) (*RemoveHireTalentToFolderResp, *Response, error) - mockHireCreateHireTalentTag func(ctx context.Context, request *CreateHireTalentTagReq, options ...MethodOptionFunc) (*CreateHireTalentTagResp, *Response, error) mockHireListHireTalentTag func(ctx context.Context, request *ListHireTalentTagReq, options ...MethodOptionFunc) (*ListHireTalentTagResp, *Response, error) mockHireListHireTerminationReason func(ctx context.Context, request *ListHireTerminationReasonReq, options ...MethodOptionFunc) (*ListHireTerminationReasonResp, *Response, error) mockHireSearchHireTest func(ctx context.Context, request *SearchHireTestReq, options ...MethodOptionFunc) (*SearchHireTestResp, *Response, error) mockHireListHireTodo func(ctx context.Context, request *ListHireTodoReq, options ...MethodOptionFunc) (*ListHireTodoResp, *Response, error) - mockHireMakeHireTransferOnboardByApplication func(ctx context.Context, request *MakeHireTransferOnboardByApplicationReq, options ...MethodOptionFunc) (*MakeHireTransferOnboardByApplicationResp, *Response, error) mockHireCreateHireTripartiteAgreement func(ctx context.Context, request *CreateHireTripartiteAgreementReq, options ...MethodOptionFunc) (*CreateHireTripartiteAgreementResp, *Response, error) mockHireDeleteHireTripartiteAgreement func(ctx context.Context, request *DeleteHireTripartiteAgreementReq, options ...MethodOptionFunc) (*DeleteHireTripartiteAgreementResp, *Response, error) mockHireListHireTripartiteAgreement func(ctx context.Context, request *ListHireTripartiteAgreementReq, options ...MethodOptionFunc) (*ListHireTripartiteAgreementResp, *Response, error) @@ -1213,82 +1224,82 @@ type Mock struct { mockHireGetHireWebsiteJobPost func(ctx context.Context, request *GetHireWebsiteJobPostReq, options ...MethodOptionFunc) (*GetHireWebsiteJobPostResp, *Response, error) mockHireListHireWebsiteJobPost func(ctx context.Context, request *ListHireWebsiteJobPostReq, options ...MethodOptionFunc) (*ListHireWebsiteJobPostResp, *Response, error) mockHireSearchHireWebsiteJobPost func(ctx context.Context, request *SearchHireWebsiteJobPostReq, options ...MethodOptionFunc) (*SearchHireWebsiteJobPostResp, *Response, error) - mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHireCreateHireWebsiteSiteUser func(ctx context.Context, request *CreateHireWebsiteSiteUserReq, options ...MethodOptionFunc) (*CreateHireWebsiteSiteUserResp, *Response, error) - mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) + mockHireListHireWebsite func(ctx context.Context, request *ListHireWebsiteReq, options ...MethodOptionFunc) (*ListHireWebsiteResp, *Response, error) mockHumanAuthGetFaceVerifyAuthResult func(ctx context.Context, request *GetFaceVerifyAuthResultReq, options ...MethodOptionFunc) (*GetFaceVerifyAuthResultResp, *Response, error) mockHumanAuthUploadFaceVerifyImage func(ctx context.Context, request *UploadFaceVerifyImageReq, options ...MethodOptionFunc) (*UploadFaceVerifyImageResp, *Response, error) + mockHumanAuthCropFaceVerifyImage func(ctx context.Context, request *CropFaceVerifyImageReq, options ...MethodOptionFunc) (*CropFaceVerifyImageResp, *Response, error) mockHumanAuthCreateIdentity func(ctx context.Context, request *CreateIdentityReq, options ...MethodOptionFunc) (*CreateIdentityResp, *Response, error) mockJssdkGetJssdkTicket func(ctx context.Context, request *GetJssdkTicketReq, options ...MethodOptionFunc) (*GetJssdkTicketResp, *Response, error) - mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) + mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoCreateLingoDraft func(ctx context.Context, request *CreateLingoDraftReq, options ...MethodOptionFunc) (*CreateLingoDraftResp, *Response, error) mockLingoUpdateLingoDraft func(ctx context.Context, request *UpdateLingoDraftReq, options ...MethodOptionFunc) (*UpdateLingoDraftResp, *Response, error) - mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) mockLingoDeleteLingoEntity func(ctx context.Context, request *DeleteLingoEntityReq, options ...MethodOptionFunc) (*DeleteLingoEntityResp, *Response, error) - mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoCreateLingoEntity func(ctx context.Context, request *CreateLingoEntityReq, options ...MethodOptionFunc) (*CreateLingoEntityResp, *Response, error) + mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) mockLingoGetLingoEntity func(ctx context.Context, request *GetLingoEntityReq, options ...MethodOptionFunc) (*GetLingoEntityResp, *Response, error) - mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) - mockLingoBatchHighlightLingoEntity func(ctx context.Context, request *BatchHighlightLingoEntityReq, options ...MethodOptionFunc) (*BatchHighlightLingoEntityResp, *Response, error) mockLingoGetLingoEntityList func(ctx context.Context, request *GetLingoEntityListReq, options ...MethodOptionFunc) (*GetLingoEntityListResp, *Response, error) mockLingoMatchLingoEntity func(ctx context.Context, request *MatchLingoEntityReq, options ...MethodOptionFunc) (*MatchLingoEntityResp, *Response, error) mockLingoSearchLingoEntity func(ctx context.Context, request *SearchLingoEntityReq, options ...MethodOptionFunc) (*SearchLingoEntityResp, *Response, error) - mockLingoUpdateLingoEntity func(ctx context.Context, request *UpdateLingoEntityReq, options ...MethodOptionFunc) (*UpdateLingoEntityResp, *Response, error) - mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) - mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoHighlightLingoEntity func(ctx context.Context, request *HighlightLingoEntityReq, options ...MethodOptionFunc) (*HighlightLingoEntityResp, *Response, error) + mockLingoExtractLingoEntity func(ctx context.Context, request *ExtractLingoEntityReq, options ...MethodOptionFunc) (*ExtractLingoEntityResp, *Response, error) + mockLingoGetLingoClassificationList func(ctx context.Context, request *GetLingoClassificationListReq, options ...MethodOptionFunc) (*GetLingoClassificationListResp, *Response, error) mockLingoGetLingoRepoList func(ctx context.Context, request *GetLingoRepoListReq, options ...MethodOptionFunc) (*GetLingoRepoListResp, *Response, error) - mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) - mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockLingoUploadLingoFile func(ctx context.Context, request *UploadLingoFileReq, options ...MethodOptionFunc) (*UploadLingoFileResp, *Response, error) + mockLingoDownloadLingoFile func(ctx context.Context, request *DownloadLingoFileReq, options ...MethodOptionFunc) (*DownloadLingoFileResp, *Response, error) mockMDMBindMDMUserAuthDataRelation func(ctx context.Context, request *BindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*BindMDMUserAuthDataRelationResp, *Response, error) mockMDMUnbindMDMUserAuthDataRelation func(ctx context.Context, request *UnbindMDMUserAuthDataRelationReq, options ...MethodOptionFunc) (*UnbindMDMUserAuthDataRelationResp, *Response, error) - mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) - mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) - mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMDMGetMDMBatchCountryRegion func(ctx context.Context, request *GetMDMBatchCountryRegionReq, options ...MethodOptionFunc) (*GetMDMBatchCountryRegionResp, *Response, error) + mockMDMListMDMCountryRegion func(ctx context.Context, request *ListMDMCountryRegionReq, options ...MethodOptionFunc) (*ListMDMCountryRegionResp, *Response, error) + mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) + mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) + mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) + mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) mockMailCreateMailGroup func(ctx context.Context, request *CreateMailGroupReq, options ...MethodOptionFunc) (*CreateMailGroupResp, *Response, error) mockMailDeleteMailGroup func(ctx context.Context, request *DeleteMailGroupReq, options ...MethodOptionFunc) (*DeleteMailGroupResp, *Response, error) + mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) + mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) mockMailGetMailGroup func(ctx context.Context, request *GetMailGroupReq, options ...MethodOptionFunc) (*GetMailGroupResp, *Response, error) mockMailGetMailGroupList func(ctx context.Context, request *GetMailGroupListReq, options ...MethodOptionFunc) (*GetMailGroupListResp, *Response, error) mockMailBatchCreateMailGroupManager func(ctx context.Context, request *BatchCreateMailGroupManagerReq, options ...MethodOptionFunc) (*BatchCreateMailGroupManagerResp, *Response, error) mockMailBatchDeleteMailGroupManager func(ctx context.Context, request *BatchDeleteMailGroupManagerReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupManagerResp, *Response, error) mockMailGetMailGroupManagerList func(ctx context.Context, request *GetMailGroupManagerListReq, options ...MethodOptionFunc) (*GetMailGroupManagerListResp, *Response, error) - mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) - mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupMember func(ctx context.Context, request *CreateMailGroupMemberReq, options ...MethodOptionFunc) (*CreateMailGroupMemberResp, *Response, error) mockMailDeleteMailGroupMember func(ctx context.Context, request *DeleteMailGroupMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupMemberResp, *Response, error) mockMailGetMailGroupMember func(ctx context.Context, request *GetMailGroupMemberReq, options ...MethodOptionFunc) (*GetMailGroupMemberResp, *Response, error) mockMailGetMailGroupMemberList func(ctx context.Context, request *GetMailGroupMemberListReq, options ...MethodOptionFunc) (*GetMailGroupMemberListResp, *Response, error) - mockMailUpdateMailGroupPatch func(ctx context.Context, request *UpdateMailGroupPatchReq, options ...MethodOptionFunc) (*UpdateMailGroupPatchResp, *Response, error) - mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) - mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailBatchCreateMailGroupMember func(ctx context.Context, request *BatchCreateMailGroupMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupMemberResp, *Response, error) + mockMailBatchDeleteMailGroupMember func(ctx context.Context, request *BatchDeleteMailGroupMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupMemberResp, *Response, error) mockMailCreateMailGroupPermissionMember func(ctx context.Context, request *CreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*CreateMailGroupPermissionMemberResp, *Response, error) mockMailDeleteMailGroupPermissionMember func(ctx context.Context, request *DeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*DeleteMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMember func(ctx context.Context, request *GetMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberResp, *Response, error) mockMailGetMailGroupPermissionMemberList func(ctx context.Context, request *GetMailGroupPermissionMemberListReq, options ...MethodOptionFunc) (*GetMailGroupPermissionMemberListResp, *Response, error) - mockMailUpdateMailGroup func(ctx context.Context, request *UpdateMailGroupReq, options ...MethodOptionFunc) (*UpdateMailGroupResp, *Response, error) - mockMailSubscribeMailMessage func(ctx context.Context, request *SubscribeMailMessageReq, options ...MethodOptionFunc) (*SubscribeMailMessageResp, *Response, error) - mockMailGetMailMessageSubscription func(ctx context.Context, request *GetMailMessageSubscriptionReq, options ...MethodOptionFunc) (*GetMailMessageSubscriptionResp, *Response, error) - mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) - mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) - mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) + mockMailBatchCreateMailGroupPermissionMember func(ctx context.Context, request *BatchCreateMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchCreateMailGroupPermissionMemberResp, *Response, error) + mockMailBatchDeleteMailGroupPermissionMember func(ctx context.Context, request *BatchDeleteMailGroupPermissionMemberReq, options ...MethodOptionFunc) (*BatchDeleteMailGroupPermissionMemberResp, *Response, error) + mockMailCreateMailGroupAlias func(ctx context.Context, request *CreateMailGroupAliasReq, options ...MethodOptionFunc) (*CreateMailGroupAliasResp, *Response, error) + mockMailGetMailGroupAliasList func(ctx context.Context, request *GetMailGroupAliasListReq, options ...MethodOptionFunc) (*GetMailGroupAliasListResp, *Response, error) + mockMailDeleteMailGroupAlias func(ctx context.Context, request *DeleteMailGroupAliasReq, options ...MethodOptionFunc) (*DeleteMailGroupAliasResp, *Response, error) mockMailCreatePublicMailbox func(ctx context.Context, request *CreatePublicMailboxReq, options ...MethodOptionFunc) (*CreatePublicMailboxResp, *Response, error) - mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailGetPublicMailbox func(ctx context.Context, request *GetPublicMailboxReq, options ...MethodOptionFunc) (*GetPublicMailboxResp, *Response, error) mockMailGetPublicMailboxList func(ctx context.Context, request *GetPublicMailboxListReq, options ...MethodOptionFunc) (*GetPublicMailboxListResp, *Response, error) - mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) - mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) - mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) + mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) + mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) + mockMailDeletePublicMailbox func(ctx context.Context, request *DeletePublicMailboxReq, options ...MethodOptionFunc) (*DeletePublicMailboxResp, *Response, error) mockMailCreatePublicMailboxMember func(ctx context.Context, request *CreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*CreatePublicMailboxMemberResp, *Response, error) - mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) mockMailGetPublicMailboxMember func(ctx context.Context, request *GetPublicMailboxMemberReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberResp, *Response, error) mockMailGetPublicMailboxMemberList func(ctx context.Context, request *GetPublicMailboxMemberListReq, options ...MethodOptionFunc) (*GetPublicMailboxMemberListResp, *Response, error) - mockMailUpdatePublicMailboxPatch func(ctx context.Context, request *UpdatePublicMailboxPatchReq, options ...MethodOptionFunc) (*UpdatePublicMailboxPatchResp, *Response, error) - mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) - mockMailUpdatePublicMailbox func(ctx context.Context, request *UpdatePublicMailboxReq, options ...MethodOptionFunc) (*UpdatePublicMailboxResp, *Response, error) - mockMailApplyMailRule func(ctx context.Context, request *ApplyMailRuleReq, options ...MethodOptionFunc) (*ApplyMailRuleResp, *Response, error) - mockMailGetMailUser func(ctx context.Context, request *GetMailUserReq, options ...MethodOptionFunc) (*GetMailUserResp, *Response, error) + mockMailBatchCreatePublicMailboxMember func(ctx context.Context, request *BatchCreatePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchCreatePublicMailboxMemberResp, *Response, error) + mockMailBatchDeletePublicMailboxMember func(ctx context.Context, request *BatchDeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*BatchDeletePublicMailboxMemberResp, *Response, error) + mockMailDeletePublicMailboxMember func(ctx context.Context, request *DeletePublicMailboxMemberReq, options ...MethodOptionFunc) (*DeletePublicMailboxMemberResp, *Response, error) + mockMailClearPublicMailboxMember func(ctx context.Context, request *ClearPublicMailboxMemberReq, options ...MethodOptionFunc) (*ClearPublicMailboxMemberResp, *Response, error) + mockMailCreateMailPublicMailboxAlias func(ctx context.Context, request *CreateMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailPublicMailboxAliasResp, *Response, error) + mockMailGetMailPublicMailboxAliasList func(ctx context.Context, request *GetMailPublicMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailPublicMailboxAliasListResp, *Response, error) + mockMailDeleteMailPublicMailboxAlias func(ctx context.Context, request *DeleteMailPublicMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailPublicMailboxAliasResp, *Response, error) mockMailCreateMailUserMailboxAlias func(ctx context.Context, request *CreateMailUserMailboxAliasReq, options ...MethodOptionFunc) (*CreateMailUserMailboxAliasResp, *Response, error) mockMailDeleteMailUserMailboxAlias func(ctx context.Context, request *DeleteMailUserMailboxAliasReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxAliasResp, *Response, error) mockMailGetMailUserMailboxAliasList func(ctx context.Context, request *GetMailUserMailboxAliasListReq, options ...MethodOptionFunc) (*GetMailUserMailboxAliasListResp, *Response, error) mockMailDeleteMailUserMailbox func(ctx context.Context, request *DeleteMailUserMailboxReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxResp, *Response, error) + mockMailRemoveMailPublicMailboxToRecycleBin func(ctx context.Context, request *RemoveMailPublicMailboxToRecycleBinReq, options ...MethodOptionFunc) (*RemoveMailPublicMailboxToRecycleBinResp, *Response, error) mockMailSubscribeMailUserMailboxEvent func(ctx context.Context, request *SubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*SubscribeMailUserMailboxEventResp, *Response, error) mockMailGetMailUserMailboxEventSubscription func(ctx context.Context, request *GetMailUserMailboxEventSubscriptionReq, options ...MethodOptionFunc) (*GetMailUserMailboxEventSubscriptionResp, *Response, error) mockMailUnsubscribeMailUserMailboxEvent func(ctx context.Context, request *UnsubscribeMailUserMailboxEventReq, options ...MethodOptionFunc) (*UnsubscribeMailUserMailboxEventResp, *Response, error) @@ -1304,83 +1315,84 @@ type Mock struct { mockMailGetMailUserMailboxMessage func(ctx context.Context, request *GetMailUserMailboxMessageReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageResp, *Response, error) mockMailGetMailUserMailboxMessageByCard func(ctx context.Context, request *GetMailUserMailboxMessageByCardReq, options ...MethodOptionFunc) (*GetMailUserMailboxMessageByCardResp, *Response, error) mockMailListMailUserMailboxMessage func(ctx context.Context, request *ListMailUserMailboxMessageReq, options ...MethodOptionFunc) (*ListMailUserMailboxMessageResp, *Response, error) - mockMailCreateMailUserMailboxMessageSend func(ctx context.Context, request *CreateMailUserMailboxMessageSendReq, options ...MethodOptionFunc) (*CreateMailUserMailboxMessageSendResp, *Response, error) + mockMailSendMailUserMailboxMessage func(ctx context.Context, request *SendMailUserMailboxMessageReq, options ...MethodOptionFunc) (*SendMailUserMailboxMessageResp, *Response, error) mockMailCreateMailUserMailboxRule func(ctx context.Context, request *CreateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleResp, *Response, error) mockMailDeleteMailUserMailboxRule func(ctx context.Context, request *DeleteMailUserMailboxRuleReq, options ...MethodOptionFunc) (*DeleteMailUserMailboxRuleResp, *Response, error) mockMailListMailUserMailboxRule func(ctx context.Context, request *ListMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ListMailUserMailboxRuleResp, *Response, error) - mockMailCreateMailUserMailboxRuleReorder func(ctx context.Context, request *CreateMailUserMailboxRuleReorderReq, options ...MethodOptionFunc) (*CreateMailUserMailboxRuleReorderResp, *Response, error) + mockMailReorderMailUserMailboxRule func(ctx context.Context, request *ReorderMailUserMailboxRuleReq, options ...MethodOptionFunc) (*ReorderMailUserMailboxRuleResp, *Response, error) mockMailUpdateMailUserMailboxRule func(ctx context.Context, request *UpdateMailUserMailboxRuleReq, options ...MethodOptionFunc) (*UpdateMailUserMailboxRuleResp, *Response, error) - mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) - mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) - mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) - mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) - mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) - mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) - mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) - mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) + mockMeetingRoomGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) mockMessageMGetIMTag func(ctx context.Context, request *MGetIMTagReq, options ...MethodOptionFunc) (*MGetIMTagResp, *Response, error) - mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) - mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) - mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) - mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) - mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) + mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) + mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) + mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) + mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) mockMessageBatchSendOldRawMessage func(ctx context.Context, request *BatchSendOldRawMessageReq, options ...MethodOptionFunc) (*BatchSendOldRawMessageResp, *Response, error) + mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) + mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) + mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) mockMessageDeleteMessage func(ctx context.Context, request *DeleteMessageReq, options ...MethodOptionFunc) (*DeleteMessageResp, *Response, error) - mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) mockMessageForwardMessage func(ctx context.Context, request *ForwardMessageReq, options ...MethodOptionFunc) (*ForwardMessageResp, *Response, error) - mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) - mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) - mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) - mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) + mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) + mockMessageBatchDeleteMessage func(ctx context.Context, request *BatchDeleteMessageReq, options ...MethodOptionFunc) (*BatchDeleteMessageResp, *Response, error) + mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) + mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) mockMessageGetMessageReadUserList func(ctx context.Context, request *GetMessageReadUserListReq, options ...MethodOptionFunc) (*GetMessageReadUserListResp, *Response, error) + mockMessageGetBatchSentMessageReadUser func(ctx context.Context, request *GetBatchSentMessageReadUserReq, options ...MethodOptionFunc) (*GetBatchSentMessageReadUserResp, *Response, error) + mockMessageGetBatchSentMessageProgress func(ctx context.Context, request *GetBatchSentMessageProgressReq, options ...MethodOptionFunc) (*GetBatchSentMessageProgressResp, *Response, error) mockMessageGetMessageList func(ctx context.Context, request *GetMessageListReq, options ...MethodOptionFunc) (*GetMessageListResp, *Response, error) - mockMessageMergeForwardMessage func(ctx context.Context, request *MergeForwardMessageReq, options ...MethodOptionFunc) (*MergeForwardMessageResp, *Response, error) + mockMessageGetMessageFile func(ctx context.Context, request *GetMessageFileReq, options ...MethodOptionFunc) (*GetMessageFileResp, *Response, error) + mockMessageGetMessage func(ctx context.Context, request *GetMessageReq, options ...MethodOptionFunc) (*GetMessageResp, *Response, error) + mockMessageDeleteEphemeralMessage func(ctx context.Context, request *DeleteEphemeralMessageReq, options ...MethodOptionFunc) (*DeleteEphemeralMessageResp, *Response, error) + mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) + mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) + mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) mockMessageCreateMessagePin func(ctx context.Context, request *CreateMessagePinReq, options ...MethodOptionFunc) (*CreateMessagePinResp, *Response, error) mockMessageDeleteMessagePin func(ctx context.Context, request *DeleteMessagePinReq, options ...MethodOptionFunc) (*DeleteMessagePinResp, *Response, error) mockMessageGetMessagePinList func(ctx context.Context, request *GetMessagePinListReq, options ...MethodOptionFunc) (*GetMessagePinListResp, *Response, error) - mockMessageCreateMessageReaction func(ctx context.Context, request *CreateMessageReactionReq, options ...MethodOptionFunc) (*CreateMessageReactionResp, *Response, error) - mockMessageDeleteMessageReaction func(ctx context.Context, request *DeleteMessageReactionReq, options ...MethodOptionFunc) (*DeleteMessageReactionResp, *Response, error) - mockMessageGetMessageReactionList func(ctx context.Context, request *GetMessageReactionListReq, options ...MethodOptionFunc) (*GetMessageReactionListResp, *Response, error) - mockMessageReplyRawMessage func(ctx context.Context, request *ReplyRawMessageReq, options ...MethodOptionFunc) (*ReplyRawMessageResp, *Response, error) - mockMessageSendRawMessage func(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error) - mockMessageSendEphemeralMessage func(ctx context.Context, request *SendEphemeralMessageReq, options ...MethodOptionFunc) (*SendEphemeralMessageResp, *Response, error) - mockMessageSendRawMessageOld func(ctx context.Context, request *SendRawMessageOldReq, options ...MethodOptionFunc) (*SendRawMessageOldResp, *Response, error) - mockMessageSendUrgentAppMessage func(ctx context.Context, request *SendUrgentAppMessageReq, options ...MethodOptionFunc) (*SendUrgentAppMessageResp, *Response, error) - mockMessageSendUrgentPhoneMessage func(ctx context.Context, request *SendUrgentPhoneMessageReq, options ...MethodOptionFunc) (*SendUrgentPhoneMessageResp, *Response, error) - mockMessageSendUrgentSmsMessage func(ctx context.Context, request *SendUrgentSmsMessageReq, options ...MethodOptionFunc) (*SendUrgentSmsMessageResp, *Response, error) mockMessageGetMessageSpecialFocusList func(ctx context.Context, request *GetMessageSpecialFocusListReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusListResp, *Response, error) mockMessageGetMessageSpecialFocusUnread func(ctx context.Context, request *GetMessageSpecialFocusUnreadReq, options ...MethodOptionFunc) (*GetMessageSpecialFocusUnreadResp, *Response, error) - mockMessageForwardThreadMessage func(ctx context.Context, request *ForwardThreadMessageReq, options ...MethodOptionFunc) (*ForwardThreadMessageResp, *Response, error) - mockMessageUpdateMessage func(ctx context.Context, request *UpdateMessageReq, options ...MethodOptionFunc) (*UpdateMessageResp, *Response, error) - mockMessageUpdateMessageDelay func(ctx context.Context, request *UpdateMessageDelayReq, options ...MethodOptionFunc) (*UpdateMessageDelayResp, *Response, error) - mockMessageUpdateMessageEdit func(ctx context.Context, request *UpdateMessageEditReq, options ...MethodOptionFunc) (*UpdateMessageEditResp, *Response, error) + mockMessageDeleteAppFeedCard func(ctx context.Context, request *DeleteAppFeedCardReq, options ...MethodOptionFunc) (*DeleteAppFeedCardResp, *Response, error) + mockMessageUpdateAppFeedCard func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) + mockMessageCreateAppFeedCard func(ctx context.Context, request *CreateAppFeedCardReq, options ...MethodOptionFunc) (*CreateAppFeedCardResp, *Response, error) + mockMessageCreateIMTagRelation func(ctx context.Context, request *CreateIMTagRelationReq, options ...MethodOptionFunc) (*CreateIMTagRelationResp, *Response, error) + mockMessageListIMTagRelation func(ctx context.Context, request *ListIMTagRelationReq, options ...MethodOptionFunc) (*ListIMTagRelationResp, *Response, error) + mockMessageDeleteIMTagRelation func(ctx context.Context, request *DeleteIMTagRelationReq, options ...MethodOptionFunc) (*DeleteIMTagRelationResp, *Response, error) + mockMessageUpdateAppFeedCardButton func(ctx context.Context, request *UpdateAppFeedCardButtonReq, options ...MethodOptionFunc) (*UpdateAppFeedCardButtonResp, *Response, error) + mockMessageUpdateIMFeedCardBotTimeSentive func(ctx context.Context, request *UpdateIMFeedCardBotTimeSentiveReq, options ...MethodOptionFunc) (*UpdateIMFeedCardBotTimeSentiveResp, *Response, error) + mockMessageInstantReminderAppFeedCard func(ctx context.Context, request *InstantReminderAppFeedCardReq, options ...MethodOptionFunc) (*InstantReminderAppFeedCardResp, *Response, error) + mockMessageCreateIMTag func(ctx context.Context, request *CreateIMTagReq, options ...MethodOptionFunc) (*CreateIMTagResp, *Response, error) + mockMessageUpdateIMTag func(ctx context.Context, request *UpdateIMTagReq, options ...MethodOptionFunc) (*UpdateIMTagResp, *Response, error) mockMessageBatchUpdateURLPreview func(ctx context.Context, request *BatchUpdateURLPreviewReq, options ...MethodOptionFunc) (*BatchUpdateURLPreviewResp, *Response, error) + mockMessageCreateIMMessagePushFollowUp func(ctx context.Context, request *CreateIMMessagePushFollowUpReq, options ...MethodOptionFunc) (*CreateIMMessagePushFollowUpResp, *Response, error) mockMinaMinaCodeToSession func(ctx context.Context, request *MinaCodeToSessionReq, options ...MethodOptionFunc) (*MinaCodeToSessionResp, *Response, error) + mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMinutesGetMinutesMinute func(ctx context.Context, request *GetMinutesMinuteReq, options ...MethodOptionFunc) (*GetMinutesMinuteResp, *Response, error) mockMinutesGetMinutesMinuteMedia func(ctx context.Context, request *GetMinutesMinuteMediaReq, options ...MethodOptionFunc) (*GetMinutesMinuteMediaResp, *Response, error) mockMinutesGetMinutesMinuteTranscript func(ctx context.Context, request *GetMinutesMinuteTranscriptReq, options ...MethodOptionFunc) (*GetMinutesMinuteTranscriptResp, *Response, error) - mockMinutesGetMinutesStatistics func(ctx context.Context, request *GetMinutesStatisticsReq, options ...MethodOptionFunc) (*GetMinutesStatisticsResp, *Response, error) mockMomentsGetMomentsPost func(ctx context.Context, request *GetMomentsPostReq, options ...MethodOptionFunc) (*GetMomentsPostResp, *Response, error) - mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) - mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) - mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) - mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) - mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) - mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) mockOKRCreateOKRPeriod func(ctx context.Context, request *CreateOKRPeriodReq, options ...MethodOptionFunc) (*CreateOKRPeriodResp, *Response, error) + mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) mockOKRGetOKRPeriodList func(ctx context.Context, request *GetOKRPeriodListReq, options ...MethodOptionFunc) (*GetOKRPeriodListResp, *Response, error) mockOKRGetOKRPeriodRuleList func(ctx context.Context, request *GetOKRPeriodRuleListReq, options ...MethodOptionFunc) (*GetOKRPeriodRuleListResp, *Response, error) - mockOKRUpdateOKRPeriod func(ctx context.Context, request *UpdateOKRPeriodReq, options ...MethodOptionFunc) (*UpdateOKRPeriodResp, *Response, error) - mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRBatchGetOKR func(ctx context.Context, request *BatchGetOKRReq, options ...MethodOptionFunc) (*BatchGetOKRResp, *Response, error) + mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockOKRDeleteOKRProgressRecord func(ctx context.Context, request *DeleteOKRProgressRecordReq, options ...MethodOptionFunc) (*DeleteOKRProgressRecordResp, *Response, error) - mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) mockOKRUpdateOKRProgressRecord func(ctx context.Context, request *UpdateOKRProgressRecordReq, options ...MethodOptionFunc) (*UpdateOKRProgressRecordResp, *Response, error) + mockOKRGetOKRProgressRecord func(ctx context.Context, request *GetOKRProgressRecordReq, options ...MethodOptionFunc) (*GetOKRProgressRecordResp, *Response, error) + mockOKRCreateOKRProgressRecord func(ctx context.Context, request *CreateOKRProgressRecordReq, options ...MethodOptionFunc) (*CreateOKRProgressRecordResp, *Response, error) + mockOKRUploadOKRImage func(ctx context.Context, request *UploadOKRImageReq, options ...MethodOptionFunc) (*UploadOKRImageResp, *Response, error) + mockOKRGetOKRMetricSourceList func(ctx context.Context, request *GetOKRMetricSourceListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceListResp, *Response, error) + mockOKRGetOKRMetricSourceTableList func(ctx context.Context, request *GetOKRMetricSourceTableListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableListResp, *Response, error) + mockOKRBatchUpdateOKRMetricSourceTableItem func(ctx context.Context, request *BatchUpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*BatchUpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRUpdateOKRMetricSourceTableItem func(ctx context.Context, request *UpdateOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*UpdateOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItem func(ctx context.Context, request *GetOKRMetricSourceTableItemReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemResp, *Response, error) + mockOKRGetOKRMetricSourceTableItemList func(ctx context.Context, request *GetOKRMetricSourceTableItemListReq, options ...MethodOptionFunc) (*GetOKRMetricSourceTableItemListResp, *Response, error) mockOKRGetOKRReview func(ctx context.Context, request *GetOKRReviewReq, options ...MethodOptionFunc) (*GetOKRReviewResp, *Response, error) - mockOKRGetUserOKRList func(ctx context.Context, request *GetUserOKRListReq, options ...MethodOptionFunc) (*GetUserOKRListResp, *Response, error) mockPassportGetPassportSession func(ctx context.Context, request *GetPassportSessionReq, options ...MethodOptionFunc) (*GetPassportSessionResp, *Response, error) - mockPassportCreatePassportSessionLogout func(ctx context.Context, request *CreatePassportSessionLogoutReq, options ...MethodOptionFunc) (*CreatePassportSessionLogoutResp, *Response, error) + mockPassportLogoutPassportSession func(ctx context.Context, request *LogoutPassportSessionReq, options ...MethodOptionFunc) (*LogoutPassportSessionResp, *Response, error) mockPayrollListPayrollAcctItem func(ctx context.Context, request *ListPayrollAcctItemReq, options ...MethodOptionFunc) (*ListPayrollAcctItemResp, *Response, error) mockPayrollListPayrollCostAllocationDetail func(ctx context.Context, request *ListPayrollCostAllocationDetailReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationDetailResp, *Response, error) mockPayrollListPayrollCostAllocationPlan func(ctx context.Context, request *ListPayrollCostAllocationPlanReq, options ...MethodOptionFunc) (*ListPayrollCostAllocationPlanResp, *Response, error) @@ -1390,9 +1402,13 @@ type Mock struct { mockPayrollCreatePayrollDatasourceRecordSave func(ctx context.Context, request *CreatePayrollDatasourceRecordSaveReq, options ...MethodOptionFunc) (*CreatePayrollDatasourceRecordSaveResp, *Response, error) mockPayrollListPayrollPaygroup func(ctx context.Context, request *ListPayrollPaygroupReq, options ...MethodOptionFunc) (*ListPayrollPaygroupResp, *Response, error) mockPayrollCreatePayrollPaymentActivityArchive func(ctx context.Context, request *CreatePayrollPaymentActivityArchiveReq, options ...MethodOptionFunc) (*CreatePayrollPaymentActivityArchiveResp, *Response, error) - mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollListPayrollPaymentActivity func(ctx context.Context, request *ListPayrollPaymentActivityReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityResp, *Response, error) + mockPayrollListPayrollPaymentActivityDetail func(ctx context.Context, request *ListPayrollPaymentActivityDetailReq, options ...MethodOptionFunc) (*ListPayrollPaymentActivityDetailResp, *Response, error) mockPayrollQueryPayrollPaymentDetail func(ctx context.Context, request *QueryPayrollPaymentDetailReq, options ...MethodOptionFunc) (*QueryPayrollPaymentDetailResp, *Response, error) + mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) + mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) + mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceActivity func(ctx context.Context, request *QueryPerformanceActivityReq, options ...MethodOptionFunc) (*QueryPerformanceActivityResp, *Response, error) mockPerformanceCreatePerformanceAdditionalInformationImport func(ctx context.Context, request *CreatePerformanceAdditionalInformationImportReq, options ...MethodOptionFunc) (*CreatePerformanceAdditionalInformationImportResp, *Response, error) mockPerformanceQueryPerformanceAdditionalInformation func(ctx context.Context, request *QueryPerformanceAdditionalInformationReq, options ...MethodOptionFunc) (*QueryPerformanceAdditionalInformationResp, *Response, error) @@ -1405,40 +1421,37 @@ type Mock struct { mockPerformanceListPerformanceMetricTag func(ctx context.Context, request *ListPerformanceMetricTagReq, options ...MethodOptionFunc) (*ListPerformanceMetricTagResp, *Response, error) mockPerformanceQueryPerformanceMetricTemplate func(ctx context.Context, request *QueryPerformanceMetricTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceMetricTemplateResp, *Response, error) mockPerformanceQueryPerformanceQuestion func(ctx context.Context, request *QueryPerformanceQuestionReq, options ...MethodOptionFunc) (*QueryPerformanceQuestionResp, *Response, error) - mockPerformanceGetPerformanceReviewData func(ctx context.Context, request *GetPerformanceReviewDataReq, options ...MethodOptionFunc) (*GetPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewData func(ctx context.Context, request *QueryPerformanceReviewDataReq, options ...MethodOptionFunc) (*QueryPerformanceReviewDataResp, *Response, error) mockPerformanceQueryPerformanceReviewTemplate func(ctx context.Context, request *QueryPerformanceReviewTemplateReq, options ...MethodOptionFunc) (*QueryPerformanceReviewTemplateResp, *Response, error) mockPerformanceQueryPerformanceReviewee func(ctx context.Context, request *QueryPerformanceRevieweeReq, options ...MethodOptionFunc) (*QueryPerformanceRevieweeResp, *Response, error) - mockPerformanceGetPerformanceSemesterList func(ctx context.Context, request *GetPerformanceSemesterListReq, options ...MethodOptionFunc) (*GetPerformanceSemesterListResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByPage func(ctx context.Context, request *GetPerformanceStageTaskByPageReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByPageResp, *Response, error) - mockPerformanceGetPerformanceStageTaskByUser func(ctx context.Context, request *GetPerformanceStageTaskByUserReq, options ...MethodOptionFunc) (*GetPerformanceStageTaskByUserResp, *Response, error) mockPerformanceCreatePerformanceUserGroupUserRelWrite func(ctx context.Context, request *CreatePerformanceUserGroupUserRelWriteReq, options ...MethodOptionFunc) (*CreatePerformanceUserGroupUserRelWriteResp, *Response, error) mockPerformanceQueryPerformanceUserInfo func(ctx context.Context, request *QueryPerformanceUserInfoReq, options ...MethodOptionFunc) (*QueryPerformanceUserInfoResp, *Response, error) - mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsCreatePersonalSettingsSystemStatus func(ctx context.Context, request *CreatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*CreatePersonalSettingsSystemStatusResp, *Response, error) mockPersonalSettingsDeletePersonalSettingsSystemStatus func(ctx context.Context, request *DeletePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*DeletePersonalSettingsSystemStatusResp, *Response, error) - mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) mockPersonalSettingsUpdatePersonalSettingsSystemStatus func(ctx context.Context, request *UpdatePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*UpdatePersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsGetPersonalSettingsSystemStatusList func(ctx context.Context, request *GetPersonalSettingsSystemStatusListReq, options ...MethodOptionFunc) (*GetPersonalSettingsSystemStatusListResp, *Response, error) + mockPersonalSettingsBatchOpenPersonalSettingsSystemStatus func(ctx context.Context, request *BatchOpenPersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchOpenPersonalSettingsSystemStatusResp, *Response, error) + mockPersonalSettingsBatchClosePersonalSettingsSystemStatus func(ctx context.Context, request *BatchClosePersonalSettingsSystemStatusReq, options ...MethodOptionFunc) (*BatchClosePersonalSettingsSystemStatusResp, *Response, error) + mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) mockReportQueryReportRule func(ctx context.Context, request *QueryReportRuleReq, options ...MethodOptionFunc) (*QueryReportRuleResp, *Response, error) mockReportQueryReportTask func(ctx context.Context, request *QueryReportTaskReq, options ...MethodOptionFunc) (*QueryReportTaskResp, *Response, error) - mockReportRemoveReportView func(ctx context.Context, request *RemoveReportViewReq, options ...MethodOptionFunc) (*RemoveReportViewResp, *Response, error) + mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) mockSearchSearchApp func(ctx context.Context, request *SearchAppReq, options ...MethodOptionFunc) (*SearchAppResp, *Response, error) mockSearchCreateSearchDataSource func(ctx context.Context, request *CreateSearchDataSourceReq, options ...MethodOptionFunc) (*CreateSearchDataSourceResp, *Response, error) - mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchGetSearchDataSource func(ctx context.Context, request *GetSearchDataSourceReq, options ...MethodOptionFunc) (*GetSearchDataSourceResp, *Response, error) - mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) + mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) + mockSearchDeleteSearchDataSource func(ctx context.Context, request *DeleteSearchDataSourceReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceResp, *Response, error) mockSearchBatchCreateSearchDataSourceItem func(ctx context.Context, request *BatchCreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*BatchCreateSearchDataSourceItemResp, *Response, error) - mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchCreateSearchDataSourceItem func(ctx context.Context, request *CreateSearchDataSourceItemReq, options ...MethodOptionFunc) (*CreateSearchDataSourceItemResp, *Response, error) mockSearchGetSearchDataSourceItem func(ctx context.Context, request *GetSearchDataSourceItemReq, options ...MethodOptionFunc) (*GetSearchDataSourceItemResp, *Response, error) - mockSearchGetSearchDataSourceList func(ctx context.Context, request *GetSearchDataSourceListReq, options ...MethodOptionFunc) (*GetSearchDataSourceListResp, *Response, error) - mockSearchUpdateSearchDataSource func(ctx context.Context, request *UpdateSearchDataSourceReq, options ...MethodOptionFunc) (*UpdateSearchDataSourceResp, *Response, error) - mockSearchSearchSearchDocWiki func(ctx context.Context, request *SearchSearchDocWikiReq, options ...MethodOptionFunc) (*SearchSearchDocWikiResp, *Response, error) - mockSearchSearchMessage func(ctx context.Context, request *SearchMessageReq, options ...MethodOptionFunc) (*SearchMessageResp, *Response, error) - mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchDeleteSearchDataSourceItem func(ctx context.Context, request *DeleteSearchDataSourceItemReq, options ...MethodOptionFunc) (*DeleteSearchDataSourceItemResp, *Response, error) + mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) mockSearchDeleteSearchSchema func(ctx context.Context, request *DeleteSearchSchemaReq, options ...MethodOptionFunc) (*DeleteSearchSchemaResp, *Response, error) mockSearchGetSearchSchema func(ctx context.Context, request *GetSearchSchemaReq, options ...MethodOptionFunc) (*GetSearchSchemaResp, *Response, error) - mockSearchUpdateSearchSchema func(ctx context.Context, request *UpdateSearchSchemaReq, options ...MethodOptionFunc) (*UpdateSearchSchemaResp, *Response, error) + mockSearchCreateSearchSchema func(ctx context.Context, request *CreateSearchSchemaReq, options ...MethodOptionFunc) (*CreateSearchSchemaResp, *Response, error) + mockSearchSearchDocWiki func(ctx context.Context, request *SearchDocWikiReq, options ...MethodOptionFunc) (*SearchDocWikiResp, *Response, error) + mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceApplyRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceApplyRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceApplyRecordResp, *Response, error) mockSecurityAndComplianceCreateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *CreateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*CreateSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceDeleteSecurityAndComplianceDeviceRecord func(ctx context.Context, request *DeleteSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*DeleteSecurityAndComplianceDeviceRecordResp, *Response, error) @@ -1446,98 +1459,97 @@ type Mock struct { mockSecurityAndComplianceListSecurityAndComplianceDeviceRecord func(ctx context.Context, request *ListSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceDeviceRecordResp, *Response, error) mockSecurityAndComplianceGetSecurityAndComplianceDeviceRecordMine func(ctx context.Context, request *GetSecurityAndComplianceDeviceRecordMineReq, options ...MethodOptionFunc) (*GetSecurityAndComplianceDeviceRecordMineResp, *Response, error) mockSecurityAndComplianceUpdateSecurityAndComplianceDeviceRecord func(ctx context.Context, request *UpdateSecurityAndComplianceDeviceRecordReq, options ...MethodOptionFunc) (*UpdateSecurityAndComplianceDeviceRecordResp, *Response, error) - mockSecurityAndComplianceListSecurityAndComplianceOpenapiLogData func(ctx context.Context, request *ListSecurityAndComplianceOpenapiLogDataReq, options ...MethodOptionFunc) (*ListSecurityAndComplianceOpenapiLogDataResp, *Response, error) - mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) - mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) - mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) - mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) + mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) + mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) + mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) mockTaskCreateTaskCollaborator func(ctx context.Context, request *CreateTaskCollaboratorReq, options ...MethodOptionFunc) (*CreateTaskCollaboratorResp, *Response, error) mockTaskDeleteTaskCollaborator func(ctx context.Context, request *DeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskCollaboratorResp, *Response, error) mockTaskBatchDeleteTaskCollaborator func(ctx context.Context, request *BatchDeleteTaskCollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskCollaboratorResp, *Response, error) mockTaskGetTaskCollaboratorList func(ctx context.Context, request *GetTaskCollaboratorListReq, options ...MethodOptionFunc) (*GetTaskCollaboratorListResp, *Response, error) + mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) + mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) + mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) + mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) + mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) + mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) + mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) + mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) + mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) mockTaskCreateTaskComment func(ctx context.Context, request *CreateTaskCommentReq, options ...MethodOptionFunc) (*CreateTaskCommentResp, *Response, error) - mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) + mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskDeleteTaskComment func(ctx context.Context, request *DeleteTaskCommentReq, options ...MethodOptionFunc) (*DeleteTaskCommentResp, *Response, error) + mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) + mockTaskDeleteTaskAttachment func(ctx context.Context, request *DeleteTaskAttachmentReq, options ...MethodOptionFunc) (*DeleteTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachment func(ctx context.Context, request *GetTaskAttachmentReq, options ...MethodOptionFunc) (*GetTaskAttachmentResp, *Response, error) + mockTaskGetTaskAttachmentList func(ctx context.Context, request *GetTaskAttachmentListReq, options ...MethodOptionFunc) (*GetTaskAttachmentListResp, *Response, error) + mockTaskUploadTaskAttachment func(ctx context.Context, request *UploadTaskAttachmentReq, options ...MethodOptionFunc) (*UploadTaskAttachmentResp, *Response, error) + mockTaskCreateTaskCommentV2 func(ctx context.Context, request *CreateTaskCommentV2Req, options ...MethodOptionFunc) (*CreateTaskCommentV2Resp, *Response, error) mockTaskDeleteTaskCommentV2 func(ctx context.Context, request *DeleteTaskCommentV2Req, options ...MethodOptionFunc) (*DeleteTaskCommentV2Resp, *Response, error) - mockTaskGetTaskComment func(ctx context.Context, request *GetTaskCommentReq, options ...MethodOptionFunc) (*GetTaskCommentResp, *Response, error) mockTaskGetTaskCommentV2 func(ctx context.Context, request *GetTaskCommentV2Req, options ...MethodOptionFunc) (*GetTaskCommentV2Resp, *Response, error) mockTaskListTaskComment func(ctx context.Context, request *ListTaskCommentReq, options ...MethodOptionFunc) (*ListTaskCommentResp, *Response, error) - mockTaskUpdateTaskComment func(ctx context.Context, request *UpdateTaskCommentReq, options ...MethodOptionFunc) (*UpdateTaskCommentResp, *Response, error) mockTaskUpdateTaskCommentV2 func(ctx context.Context, request *UpdateTaskCommentV2Req, options ...MethodOptionFunc) (*UpdateTaskCommentV2Resp, *Response, error) + mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) + mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) mockTaskAddTaskCustomField func(ctx context.Context, request *AddTaskCustomFieldReq, options ...MethodOptionFunc) (*AddTaskCustomFieldResp, *Response, error) mockTaskCreateTaskCustomField func(ctx context.Context, request *CreateTaskCustomFieldReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldResp, *Response, error) mockTaskGetTaskCustomField func(ctx context.Context, request *GetTaskCustomFieldReq, options ...MethodOptionFunc) (*GetTaskCustomFieldResp, *Response, error) mockTaskListTaskCustomField func(ctx context.Context, request *ListTaskCustomFieldReq, options ...MethodOptionFunc) (*ListTaskCustomFieldResp, *Response, error) - mockTaskCreateTaskCustomFieldOption func(ctx context.Context, request *CreateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*CreateTaskCustomFieldOptionResp, *Response, error) - mockTaskUpdateTaskCustomFieldOption func(ctx context.Context, request *UpdateTaskCustomFieldOptionReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldOptionResp, *Response, error) - mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) mockTaskUpdateTaskCustomField func(ctx context.Context, request *UpdateTaskCustomFieldReq, options ...MethodOptionFunc) (*UpdateTaskCustomFieldResp, *Response, error) - mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) - mockTaskCreateTaskFollower func(ctx context.Context, request *CreateTaskFollowerReq, options ...MethodOptionFunc) (*CreateTaskFollowerResp, *Response, error) - mockTaskDeleteTaskFollower func(ctx context.Context, request *DeleteTaskFollowerReq, options ...MethodOptionFunc) (*DeleteTaskFollowerResp, *Response, error) - mockTaskBatchDeleteTaskFollower func(ctx context.Context, request *BatchDeleteTaskFollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskFollowerResp, *Response, error) - mockTaskGetTaskFollowerList func(ctx context.Context, request *GetTaskFollowerListReq, options ...MethodOptionFunc) (*GetTaskFollowerListResp, *Response, error) - mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) - mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) - mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) - mockTaskCreateTaskReminder func(ctx context.Context, request *CreateTaskReminderReq, options ...MethodOptionFunc) (*CreateTaskReminderResp, *Response, error) - mockTaskDeleteTaskReminder func(ctx context.Context, request *DeleteTaskReminderReq, options ...MethodOptionFunc) (*DeleteTaskReminderResp, *Response, error) - mockTaskGetTaskReminderList func(ctx context.Context, request *GetTaskReminderListReq, options ...MethodOptionFunc) (*GetTaskReminderListResp, *Response, error) - mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) + mockTaskRemoveTaskCustomField func(ctx context.Context, request *RemoveTaskCustomFieldReq, options ...MethodOptionFunc) (*RemoveTaskCustomFieldResp, *Response, error) mockTaskCreateTaskSection func(ctx context.Context, request *CreateTaskSectionReq, options ...MethodOptionFunc) (*CreateTaskSectionResp, *Response, error) mockTaskDeleteTaskSection func(ctx context.Context, request *DeleteTaskSectionReq, options ...MethodOptionFunc) (*DeleteTaskSectionResp, *Response, error) mockTaskGetTaskSection func(ctx context.Context, request *GetTaskSectionReq, options ...MethodOptionFunc) (*GetTaskSectionResp, *Response, error) mockTaskGetTaskSectionList func(ctx context.Context, request *GetTaskSectionListReq, options ...MethodOptionFunc) (*GetTaskSectionListResp, *Response, error) - mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) mockTaskUpdateTaskSection func(ctx context.Context, request *UpdateTaskSectionReq, options ...MethodOptionFunc) (*UpdateTaskSectionResp, *Response, error) + mockTaskGetTaskTaskListOfSection func(ctx context.Context, request *GetTaskTaskListOfSectionReq, options ...MethodOptionFunc) (*GetTaskTaskListOfSectionResp, *Response, error) mockTaskCreateTaskSubtask func(ctx context.Context, request *CreateTaskSubtaskReq, options ...MethodOptionFunc) (*CreateTaskSubtaskResp, *Response, error) mockTaskGetTaskSubtaskList func(ctx context.Context, request *GetTaskSubtaskListReq, options ...MethodOptionFunc) (*GetTaskSubtaskListResp, *Response, error) - mockTaskCompleteTask func(ctx context.Context, request *CompleteTaskReq, options ...MethodOptionFunc) (*CompleteTaskResp, *Response, error) - mockTaskCreateTask func(ctx context.Context, request *CreateTaskReq, options ...MethodOptionFunc) (*CreateTaskResp, *Response, error) - mockTaskDeleteTask func(ctx context.Context, request *DeleteTaskReq, options ...MethodOptionFunc) (*DeleteTaskResp, *Response, error) - mockTaskGetTask func(ctx context.Context, request *GetTaskReq, options ...MethodOptionFunc) (*GetTaskResp, *Response, error) - mockTaskGetTaskList func(ctx context.Context, request *GetTaskListReq, options ...MethodOptionFunc) (*GetTaskListResp, *Response, error) + mockTaskAddTaskDependency func(ctx context.Context, request *AddTaskDependencyReq, options ...MethodOptionFunc) (*AddTaskDependencyResp, *Response, error) + mockTaskAddTaskMember func(ctx context.Context, request *AddTaskMemberReq, options ...MethodOptionFunc) (*AddTaskMemberResp, *Response, error) + mockTaskAddTaskReminder func(ctx context.Context, request *AddTaskReminderReq, options ...MethodOptionFunc) (*AddTaskReminderResp, *Response, error) + mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) + mockTaskRemoveTaskDependency func(ctx context.Context, request *RemoveTaskDependencyReq, options ...MethodOptionFunc) (*RemoveTaskDependencyResp, *Response, error) + mockTaskRemoveTaskMember func(ctx context.Context, request *RemoveTaskMemberReq, options ...MethodOptionFunc) (*RemoveTaskMemberResp, *Response, error) + mockTaskRemoveTaskReminder func(ctx context.Context, request *RemoveTaskReminderReq, options ...MethodOptionFunc) (*RemoveTaskReminderResp, *Response, error) + mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTasklists func(ctx context.Context, request *GetTaskTasklistsReq, options ...MethodOptionFunc) (*GetTaskTasklistsResp, *Response, error) - mockTaskUncompleteTask func(ctx context.Context, request *UncompleteTaskReq, options ...MethodOptionFunc) (*UncompleteTaskResp, *Response, error) - mockTaskUpdateTask func(ctx context.Context, request *UpdateTaskReq, options ...MethodOptionFunc) (*UpdateTaskResp, *Response, error) mockTaskCreateTaskTasklistActivitySubscription func(ctx context.Context, request *CreateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*CreateTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskDeleteTaskTasklistActivitySubscription func(ctx context.Context, request *DeleteTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*DeleteTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscription func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionResp, *Response, error) mockTaskGetTaskTasklistActivitySubscriptionList func(ctx context.Context, request *GetTaskTasklistActivitySubscriptionListReq, options ...MethodOptionFunc) (*GetTaskTasklistActivitySubscriptionListResp, *Response, error) mockTaskUpdateTaskTasklistActivitySubscription func(ctx context.Context, request *UpdateTaskTasklistActivitySubscriptionReq, options ...MethodOptionFunc) (*UpdateTaskTasklistActivitySubscriptionResp, *Response, error) - mockTaskAddTaskTasklist func(ctx context.Context, request *AddTaskTasklistReq, options ...MethodOptionFunc) (*AddTaskTasklistResp, *Response, error) + mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) mockTaskCreateTaskTasklist func(ctx context.Context, request *CreateTaskTasklistReq, options ...MethodOptionFunc) (*CreateTaskTasklistResp, *Response, error) mockTaskDeleteTaskTasklist func(ctx context.Context, request *DeleteTaskTasklistReq, options ...MethodOptionFunc) (*DeleteTaskTasklistResp, *Response, error) mockTaskGetTaskTasklist func(ctx context.Context, request *GetTaskTasklistReq, options ...MethodOptionFunc) (*GetTaskTasklistResp, *Response, error) mockTaskGetTaskTasklistList func(ctx context.Context, request *GetTaskTasklistListReq, options ...MethodOptionFunc) (*GetTaskTasklistListResp, *Response, error) - mockTaskAddTaskTasklistMember func(ctx context.Context, request *AddTaskTasklistMemberReq, options ...MethodOptionFunc) (*AddTaskTasklistMemberResp, *Response, error) + mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) mockTaskRemoveTaskTasklistMember func(ctx context.Context, request *RemoveTaskTasklistMemberReq, options ...MethodOptionFunc) (*RemoveTaskTasklistMemberResp, *Response, error) - mockTaskRemoveTaskTasklist func(ctx context.Context, request *RemoveTaskTasklistReq, options ...MethodOptionFunc) (*RemoveTaskTasklistResp, *Response, error) mockTaskGetTaskTaskListOfTasklist func(ctx context.Context, request *GetTaskTaskListOfTasklistReq, options ...MethodOptionFunc) (*GetTaskTaskListOfTasklistResp, *Response, error) - mockTaskUpdateTaskTasklist func(ctx context.Context, request *UpdateTaskTasklistReq, options ...MethodOptionFunc) (*UpdateTaskTasklistResp, *Response, error) - mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) - mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) mockTaskV1BatchDeleteTaskV1Collaborator func(ctx context.Context, request *BatchDeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1CollaboratorResp, *Response, error) + mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) + mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) + mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) + mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) + mockTaskV1CreateTaskV1Collaborator func(ctx context.Context, request *CreateTaskV1CollaboratorReq, options ...MethodOptionFunc) (*CreateTaskV1CollaboratorResp, *Response, error) + mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) + mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) mockTaskV1GetTaskV1CollaboratorList func(ctx context.Context, request *GetTaskV1CollaboratorListReq, options ...MethodOptionFunc) (*GetTaskV1CollaboratorListResp, *Response, error) + mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) mockTaskV1CreateTaskV1Comment func(ctx context.Context, request *CreateTaskV1CommentReq, options ...MethodOptionFunc) (*CreateTaskV1CommentResp, *Response, error) - mockTaskV1DeleteTaskV1Comment func(ctx context.Context, request *DeleteTaskV1CommentReq, options ...MethodOptionFunc) (*DeleteTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1Comment func(ctx context.Context, request *GetTaskV1CommentReq, options ...MethodOptionFunc) (*GetTaskV1CommentResp, *Response, error) - mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) + mockTaskV1DeleteTaskV1Collaborator func(ctx context.Context, request *DeleteTaskV1CollaboratorReq, options ...MethodOptionFunc) (*DeleteTaskV1CollaboratorResp, *Response, error) mockTaskV1UpdateTaskV1Comment func(ctx context.Context, request *UpdateTaskV1CommentReq, options ...MethodOptionFunc) (*UpdateTaskV1CommentResp, *Response, error) mockTaskV1CreateTaskV1Follower func(ctx context.Context, request *CreateTaskV1FollowerReq, options ...MethodOptionFunc) (*CreateTaskV1FollowerResp, *Response, error) - mockTaskV1DeleteTaskV1Follower func(ctx context.Context, request *DeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*DeleteTaskV1FollowerResp, *Response, error) - mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) mockTaskV1GetTaskFollowerV1List func(ctx context.Context, request *GetTaskFollowerV1ListReq, options ...MethodOptionFunc) (*GetTaskFollowerV1ListResp, *Response, error) - mockTaskV1CreateTaskV1Reminder func(ctx context.Context, request *CreateTaskV1ReminderReq, options ...MethodOptionFunc) (*CreateTaskV1ReminderResp, *Response, error) - mockTaskV1DeleteTaskV1Reminder func(ctx context.Context, request *DeleteTaskV1ReminderReq, options ...MethodOptionFunc) (*DeleteTaskV1ReminderResp, *Response, error) - mockTaskV1GetTaskV1ReminderList func(ctx context.Context, request *GetTaskV1ReminderListReq, options ...MethodOptionFunc) (*GetTaskV1ReminderListResp, *Response, error) - mockTaskV1CompleteTaskV1 func(ctx context.Context, request *CompleteTaskV1Req, options ...MethodOptionFunc) (*CompleteTaskV1Resp, *Response, error) + mockTaskV1BatchDeleteTaskV1Follower func(ctx context.Context, request *BatchDeleteTaskV1FollowerReq, options ...MethodOptionFunc) (*BatchDeleteTaskV1FollowerResp, *Response, error) + mockTaskV1GetTaskV1CommentList func(ctx context.Context, request *GetTaskV1CommentListReq, options ...MethodOptionFunc) (*GetTaskV1CommentListResp, *Response, error) mockTaskV1CreateTaskV1 func(ctx context.Context, request *CreateTaskV1Req, options ...MethodOptionFunc) (*CreateTaskV1Resp, *Response, error) mockTaskV1DeleteTaskV1 func(ctx context.Context, request *DeleteTaskV1Req, options ...MethodOptionFunc) (*DeleteTaskV1Resp, *Response, error) mockTaskV1GetTaskV1 func(ctx context.Context, request *GetTaskV1Req, options ...MethodOptionFunc) (*GetTaskV1Resp, *Response, error) mockTaskV1GetTaskV1List func(ctx context.Context, request *GetTaskV1ListReq, options ...MethodOptionFunc) (*GetTaskV1ListResp, *Response, error) - mockTaskV1UncompleteTaskV1 func(ctx context.Context, request *UncompleteTaskV1Req, options ...MethodOptionFunc) (*UncompleteTaskV1Resp, *Response, error) mockTaskV1UpdateTaskV1 func(ctx context.Context, request *UpdateTaskV1Req, options ...MethodOptionFunc) (*UpdateTaskV1Resp, *Response, error) mockTenantGetTenantProductAssignInfo func(ctx context.Context, request *GetTenantProductAssignInfoReq, options ...MethodOptionFunc) (*GetTenantProductAssignInfoResp, *Response, error) mockTenantGetTenant func(ctx context.Context, request *GetTenantReq, options ...MethodOptionFunc) (*GetTenantResp, *Response, error) @@ -1547,76 +1559,96 @@ type Mock struct { mockTrustPartyListTrustPartyCollaborationTenant func(ctx context.Context, request *ListTrustPartyCollaborationTenantReq, options ...MethodOptionFunc) (*ListTrustPartyCollaborationTenantResp, *Response, error) mockTrustPartyGetTrustPartyCollaborationTenantVisibleOrganization func(ctx context.Context, request *GetTrustPartyCollaborationTenantVisibleOrganizationReq, options ...MethodOptionFunc) (*GetTrustPartyCollaborationTenantVisibleOrganizationResp, *Response, error) mockVCGetMeetingRoomCustomization func(ctx context.Context, request *GetMeetingRoomCustomizationReq, options ...MethodOptionFunc) (*GetMeetingRoomCustomizationResp, *Response, error) - mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) - mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) - mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) - mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) - mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) - mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) - mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) - mockVCGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) - mockVCGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) - mockVCCreateVCMeetingDefaultBuildingCreate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingCreateResp, *Response, error) - mockVCCreateVCMeetingDefaultBuildingDelete func(ctx context.Context, request *CreateVCMeetingDefaultBuildingDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingDeleteResp, *Response, error) - mockVCListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) - mockVCCreateVCMeetingDefaultBuildingUpdate func(ctx context.Context, request *CreateVCMeetingDefaultBuildingUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingUpdateResp, *Response, error) - mockVCListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) - mockVCListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) - mockVCGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) - mockVCGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) - mockVCCreateVCMeetingDefaultRoomCreate func(ctx context.Context, request *CreateVCMeetingDefaultRoomCreateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomCreateResp, *Response, error) - mockVCCreateVCMeetingDefaultRoomDelete func(ctx context.Context, request *CreateVCMeetingDefaultRoomDeleteReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomDeleteResp, *Response, error) - mockVCListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) - mockVCCreateVCMeetingDefaultRoomUpdate func(ctx context.Context, request *CreateVCMeetingDefaultRoomUpdateReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomUpdateResp, *Response, error) - mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) + mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) + mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) + mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) mockVCGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) + mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) mockVCInviteVCMeeting func(ctx context.Context, request *InviteVCMeetingReq, options ...MethodOptionFunc) (*InviteVCMeetingResp, *Response, error) mockVCKickoutVCMeeting func(ctx context.Context, request *KickoutVCMeetingReq, options ...MethodOptionFunc) (*KickoutVCMeetingResp, *Response, error) - mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) - mockVCListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) - mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) - mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) + mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) + mockVCEndVCMeeting func(ctx context.Context, request *EndVCMeetingReq, options ...MethodOptionFunc) (*EndVCMeetingResp, *Response, error) mockVCStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) mockVCStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) - mockVCSetVCHostMeeting func(ctx context.Context, request *SetVCHostMeetingReq, options ...MethodOptionFunc) (*SetVCHostMeetingResp, *Response, error) - mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) - mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) + mockVCGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) + mockVCSetVCPermissionMeetingRecording func(ctx context.Context, request *SetVCPermissionMeetingRecordingReq, options ...MethodOptionFunc) (*SetVCPermissionMeetingRecordingResp, *Response, error) mockVCGetVCDailyReport func(ctx context.Context, request *GetVCDailyReportReq, options ...MethodOptionFunc) (*GetVCDailyReportResp, *Response, error) mockVCGetVCTopUserReport func(ctx context.Context, request *GetVCTopUserReportReq, options ...MethodOptionFunc) (*GetVCTopUserReportResp, *Response, error) - mockVCApplyVCReserve func(ctx context.Context, request *ApplyVCReserveReq, options ...MethodOptionFunc) (*ApplyVCReserveResp, *Response, error) + mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) + mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) + mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) + mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) + mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) + mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) + mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) + mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) + mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) + mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) + mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) + mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) + mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) + mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) + mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) + mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) + mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) + mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) + mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) mockVCGetVCReserveConfigAdmin func(ctx context.Context, request *GetVCReserveConfigAdminReq, options ...MethodOptionFunc) (*GetVCReserveConfigAdminResp, *Response, error) mockVCUpdateVCReserveConfigAdmin func(ctx context.Context, request *UpdateVCReserveConfigAdminReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigAdminResp, *Response, error) mockVCGetVCReserveConfigDisableInform func(ctx context.Context, request *GetVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*GetVCReserveConfigDisableInformResp, *Response, error) mockVCUpdateVCReserveConfigDisableInform func(ctx context.Context, request *UpdateVCReserveConfigDisableInformReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigDisableInformResp, *Response, error) - mockVCGetVCReserveConfigForm func(ctx context.Context, request *GetVCReserveConfigFormReq, options ...MethodOptionFunc) (*GetVCReserveConfigFormResp, *Response, error) - mockVCUpdateVCReserveConfigForm func(ctx context.Context, request *UpdateVCReserveConfigFormReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigFormResp, *Response, error) - mockVCGetVCReserveConfig func(ctx context.Context, request *GetVCReserveConfigReq, options ...MethodOptionFunc) (*GetVCReserveConfigResp, *Response, error) - mockVCUpdateVCReserveConfig func(ctx context.Context, request *UpdateVCReserveConfigReq, options ...MethodOptionFunc) (*UpdateVCReserveConfigResp, *Response, error) - mockVCDeleteVCReserve func(ctx context.Context, request *DeleteVCReserveReq, options ...MethodOptionFunc) (*DeleteVCReserveResp, *Response, error) - mockVCGetVCReserve func(ctx context.Context, request *GetVCReserveReq, options ...MethodOptionFunc) (*GetVCReserveResp, *Response, error) - mockVCGetVCReserveActiveMeeting func(ctx context.Context, request *GetVCReserveActiveMeetingReq, options ...MethodOptionFunc) (*GetVCReserveActiveMeetingResp, *Response, error) - mockVCUpdateVCReserve func(ctx context.Context, request *UpdateVCReserveReq, options ...MethodOptionFunc) (*UpdateVCReserveResp, *Response, error) + mockVCExportVCMeetingList func(ctx context.Context, request *ExportVCMeetingListReq, options ...MethodOptionFunc) (*ExportVCMeetingListResp, *Response, error) + mockVCExportVCParticipantList func(ctx context.Context, request *ExportVCParticipantListReq, options ...MethodOptionFunc) (*ExportVCParticipantListResp, *Response, error) + mockVCExportVCParticipantQualityList func(ctx context.Context, request *ExportVCParticipantQualityListReq, options ...MethodOptionFunc) (*ExportVCParticipantQualityListResp, *Response, error) + mockVCExportVCResourceReservationList func(ctx context.Context, request *ExportVCResourceReservationListReq, options ...MethodOptionFunc) (*ExportVCResourceReservationListResp, *Response, error) + mockVCGetVCExportTask func(ctx context.Context, request *GetVCExportTaskReq, options ...MethodOptionFunc) (*GetVCExportTaskResp, *Response, error) + mockVCDownloadVCExportFile func(ctx context.Context, request *DownloadVCExportFileReq, options ...MethodOptionFunc) (*DownloadVCExportFileResp, *Response, error) + mockVCGetVCAlertList func(ctx context.Context, request *GetVCAlertListReq, options ...MethodOptionFunc) (*GetVCAlertListResp, *Response, error) + mockVCGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCGetVCParticipantList func(ctx context.Context, request *GetVCParticipantListReq, options ...MethodOptionFunc) (*GetVCParticipantListResp, *Response, error) + mockVCGetVCParticipantQualityList func(ctx context.Context, request *GetVCParticipantQualityListReq, options ...MethodOptionFunc) (*GetVCParticipantQualityListResp, *Response, error) mockVCGetVCResourceReservationList func(ctx context.Context, request *GetVCResourceReservationListReq, options ...MethodOptionFunc) (*GetVCResourceReservationListResp, *Response, error) - mockVCBatchGetVCRoom func(ctx context.Context, request *BatchGetVCRoomReq, options ...MethodOptionFunc) (*BatchGetVCRoomResp, *Response, error) mockVCQueryVCRoomConfig func(ctx context.Context, request *QueryVCRoomConfigReq, options ...MethodOptionFunc) (*QueryVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfig func(ctx context.Context, request *SetVCRoomConfigReq, options ...MethodOptionFunc) (*SetVCRoomConfigResp, *Response, error) mockVCSetVCRoomConfigCheckboardAccessCode func(ctx context.Context, request *SetVCRoomConfigCheckboardAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigCheckboardAccessCodeResp, *Response, error) mockVCSetVCRoomConfigRoomAccessCode func(ctx context.Context, request *SetVCRoomConfigRoomAccessCodeReq, options ...MethodOptionFunc) (*SetVCRoomConfigRoomAccessCodeResp, *Response, error) - mockVCCreateVCRoom func(ctx context.Context, request *CreateVCRoomReq, options ...MethodOptionFunc) (*CreateVCRoomResp, *Response, error) - mockVCDeleteVCRoom func(ctx context.Context, request *DeleteVCRoomReq, options ...MethodOptionFunc) (*DeleteVCRoomResp, *Response, error) - mockVCGetVCRoom func(ctx context.Context, request *GetVCRoomReq, options ...MethodOptionFunc) (*GetVCRoomResp, *Response, error) - mockVCGetVCRoomList func(ctx context.Context, request *GetVCRoomListReq, options ...MethodOptionFunc) (*GetVCRoomListResp, *Response, error) - mockVCCreateVCRoomLevel func(ctx context.Context, request *CreateVCRoomLevelReq, options ...MethodOptionFunc) (*CreateVCRoomLevelResp, *Response, error) - mockVCDeleteVCRoomLevel func(ctx context.Context, request *DeleteVCRoomLevelReq, options ...MethodOptionFunc) (*DeleteVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevel func(ctx context.Context, request *GetVCRoomLevelReq, options ...MethodOptionFunc) (*GetVCRoomLevelResp, *Response, error) - mockVCGetVCRoomLevelList func(ctx context.Context, request *GetVCRoomLevelListReq, options ...MethodOptionFunc) (*GetVCRoomLevelListResp, *Response, error) - mockVCBatchGetVCRoomLevel func(ctx context.Context, request *BatchGetVCRoomLevelReq, options ...MethodOptionFunc) (*BatchGetVCRoomLevelResp, *Response, error) - mockVCSearchVCRoomLevel func(ctx context.Context, request *SearchVCRoomLevelReq, options ...MethodOptionFunc) (*SearchVCRoomLevelResp, *Response, error) - mockVCUpdateVCRoomLevel func(ctx context.Context, request *UpdateVCRoomLevelReq, options ...MethodOptionFunc) (*UpdateVCRoomLevelResp, *Response, error) - mockVCSearchVCRoom func(ctx context.Context, request *SearchVCRoomReq, options ...MethodOptionFunc) (*SearchVCRoomResp, *Response, error) - mockVCUpdateVCRoom func(ctx context.Context, request *UpdateVCRoomReq, options ...MethodOptionFunc) (*UpdateVCRoomResp, *Response, error) - mockVCGetVCScopeConfig func(ctx context.Context, request *GetVCScopeConfigReq, options ...MethodOptionFunc) (*GetVCScopeConfigResp, *Response, error) - mockVCSetVCScopeConfig func(ctx context.Context, request *SetVCScopeConfigReq, options ...MethodOptionFunc) (*SetVCScopeConfigResp, *Response, error) + mockVCListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCCreateVCMeetingDefaultBuilding func(ctx context.Context, request *CreateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingResp, *Response, error) + mockVCGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) + mockVCUpdateVCMeetingDefaultBuilding func(ctx context.Context, request *UpdateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultBuildingResp, *Response, error) + mockVCCreateVCMeetingDefaultRoom func(ctx context.Context, request *CreateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomResp, *Response, error) + mockVCUpdateVCMeetingDefaultRoom func(ctx context.Context, request *UpdateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultRoomResp, *Response, error) + mockVCDeleteVCMeetingDefaultBuilding func(ctx context.Context, request *DeleteVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultBuildingResp, *Response, error) + mockVCListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) + mockVCListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) + mockVCDeleteVCMeetingDefaultRoom func(ctx context.Context, request *DeleteVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultRoomResp, *Response, error) + mockVCGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) + mockVCMeetingGetVCMeeting func(ctx context.Context, request *GetVCMeetingReq, options ...MethodOptionFunc) (*GetVCMeetingResp, *Response, error) + mockVCMeetingListVCMeetingByNo func(ctx context.Context, request *ListVCMeetingByNoReq, options ...MethodOptionFunc) (*ListVCMeetingByNoResp, *Response, error) + mockVCMeetingStartVCMeetingRecording func(ctx context.Context, request *StartVCMeetingRecordingReq, options ...MethodOptionFunc) (*StartVCMeetingRecordingResp, *Response, error) + mockVCMeetingStopVCMeetingRecording func(ctx context.Context, request *StopVCMeetingRecordingReq, options ...MethodOptionFunc) (*StopVCMeetingRecordingResp, *Response, error) + mockVCMeetingGetVCMeetingRecording func(ctx context.Context, request *GetVCMeetingRecordingReq, options ...MethodOptionFunc) (*GetVCMeetingRecordingResp, *Response, error) + mockVCMeetingGetVCMeetingList func(ctx context.Context, request *GetVCMeetingListReq, options ...MethodOptionFunc) (*GetVCMeetingListResp, *Response, error) + mockVCMeetingListVCMeetingDefaultRoom func(ctx context.Context, request *ListVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultBuilding func(ctx context.Context, request *CreateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGet func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetResp, *Response, error) + mockVCMeetingUpdateVCMeetingDefaultBuilding func(ctx context.Context, request *UpdateVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingCreateVCMeetingDefaultRoom func(ctx context.Context, request *CreateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*CreateVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingUpdateVCMeetingDefaultRoom func(ctx context.Context, request *UpdateVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*UpdateVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingDeleteVCMeetingDefaultBuilding func(ctx context.Context, request *DeleteVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingListVCMeetingDefaultCountry func(ctx context.Context, request *ListVCMeetingDefaultCountryReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultCountryResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetIDResp, *Response, error) + mockVCMeetingListVCMeetingDefaultDistrict func(ctx context.Context, request *ListVCMeetingDefaultDistrictReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultDistrictResp, *Response, error) + mockVCMeetingDeleteVCMeetingDefaultRoom func(ctx context.Context, request *DeleteVCMeetingDefaultRoomReq, options ...MethodOptionFunc) (*DeleteVCMeetingDefaultRoomResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultRoomBatchGetID func(ctx context.Context, request *GetVCMeetingDefaultRoomBatchGetIDReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultRoomBatchGetIDResp, *Response, error) + mockVCMeetingListVCMeetingDefaultBuilding func(ctx context.Context, request *ListVCMeetingDefaultBuildingReq, options ...MethodOptionFunc) (*ListVCMeetingDefaultBuildingResp, *Response, error) + mockVCMeetingGetVCMeetingDefaultBuildingBatchGet func(ctx context.Context, request *GetVCMeetingDefaultBuildingBatchGetReq, options ...MethodOptionFunc) (*GetVCMeetingDefaultBuildingBatchGetResp, *Response, error) mockVerificationGetVerification func(ctx context.Context, request *GetVerificationReq, options ...MethodOptionFunc) (*GetVerificationResp, *Response, error) } diff --git a/test/aily_sample_test.go b/test/aily_sample_test.go index 2b8544ad..73f6079f 100644 --- a/test/aily_sample_test.go +++ b/test/aily_sample_test.go @@ -291,12 +291,12 @@ func Test_Aily_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAilyCreateAilyAppSkillStart(func(ctx context.Context, request *lark.CreateAilyAppSkillStartReq, options ...lark.MethodOptionFunc) (*lark.CreateAilyAppSkillStartResp, *lark.Response, error) { + cli.Mock().MockAilyStartAilyAppSkill(func(ctx context.Context, request *lark.StartAilyAppSkillReq, options ...lark.MethodOptionFunc) (*lark.StartAilyAppSkillResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAilyCreateAilyAppSkillStart() + defer cli.Mock().UnMockAilyStartAilyAppSkill() - _, _, err := moduleCli.CreateAilyAppSkillStart(ctx, &lark.CreateAilyAppSkillStartReq{}) + _, _, err := moduleCli.StartAilyAppSkill(ctx, &lark.StartAilyAppSkillReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -496,7 +496,7 @@ func Test_Aily_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAilyAppSkillStart(ctx, &lark.CreateAilyAppSkillStartReq{ + _, _, err := moduleCli.StartAilyAppSkill(ctx, &lark.StartAilyAppSkillReq{ AppID: "x", SkillID: "x", }) diff --git a/test/apaas_sample_test.go b/test/apaas_sample_test.go index 47788598..f4b125e4 100644 --- a/test/apaas_sample_test.go +++ b/test/apaas_sample_test.go @@ -135,24 +135,24 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSCreateAPaaSApplicationFlowExecute(func(ctx context.Context, request *lark.CreateAPaaSApplicationFlowExecuteReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationFlowExecuteResp, *lark.Response, error) { + cli.Mock().MockAPaaSExecuteAPaaSApplicationFlow(func(ctx context.Context, request *lark.ExecuteAPaaSApplicationFlowReq, options ...lark.MethodOptionFunc) (*lark.ExecuteAPaaSApplicationFlowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationFlowExecute() + defer cli.Mock().UnMockAPaaSExecuteAPaaSApplicationFlow() - _, _, err := moduleCli.CreateAPaaSApplicationFlowExecute(ctx, &lark.CreateAPaaSApplicationFlowExecuteReq{}) + _, _, err := moduleCli.ExecuteAPaaSApplicationFlow(ctx, &lark.ExecuteAPaaSApplicationFlowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSCreateAPaaSApplicationFunctionInvoke(func(ctx context.Context, request *lark.CreateAPaaSApplicationFunctionInvokeReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationFunctionInvokeResp, *lark.Response, error) { + cli.Mock().MockAPaaSInvokeAPaaSApplicationFunction(func(ctx context.Context, request *lark.InvokeAPaaSApplicationFunctionReq, options ...lark.MethodOptionFunc) (*lark.InvokeAPaaSApplicationFunctionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationFunctionInvoke() + defer cli.Mock().UnMockAPaaSInvokeAPaaSApplicationFunction() - _, _, err := moduleCli.CreateAPaaSApplicationFunctionInvoke(ctx, &lark.CreateAPaaSApplicationFunctionInvokeReq{}) + _, _, err := moduleCli.InvokeAPaaSApplicationFunction(ctx, &lark.InvokeAPaaSApplicationFunctionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -255,12 +255,12 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSCreateAPaaSApplicationObjectOqlQuery(func(ctx context.Context, request *lark.CreateAPaaSApplicationObjectOqlQueryReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSApplicationObjectOqlQueryResp, *lark.Response, error) { + cli.Mock().MockAPaaSQueryAPaaSApplicationObjectOql(func(ctx context.Context, request *lark.QueryAPaaSApplicationObjectOqlReq, options ...lark.MethodOptionFunc) (*lark.QueryAPaaSApplicationObjectOqlResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSCreateAPaaSApplicationObjectOqlQuery() + defer cli.Mock().UnMockAPaaSQueryAPaaSApplicationObjectOql() - _, _, err := moduleCli.CreateAPaaSApplicationObjectOqlQuery(ctx, &lark.CreateAPaaSApplicationObjectOqlQueryReq{}) + _, _, err := moduleCli.QueryAPaaSApplicationObjectOql(ctx, &lark.QueryAPaaSApplicationObjectOqlReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -495,12 +495,12 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSGetAPaaSWorkspaceEnumGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceEnumGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceEnumGetResp, *lark.Response, error) { + cli.Mock().MockAPaaSGetAPaaSWorkspaceEnum(func(ctx context.Context, request *lark.GetAPaaSWorkspaceEnumReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceEnumResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceEnumGet() + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceEnum() - _, _, err := moduleCli.GetAPaaSWorkspaceEnumGet(ctx, &lark.GetAPaaSWorkspaceEnumGetReq{}) + _, _, err := moduleCli.GetAPaaSWorkspaceEnum(ctx, &lark.GetAPaaSWorkspaceEnumReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -531,36 +531,36 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate(func(ctx context.Context, request *lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq, options ...lark.MethodOptionFunc) (*lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateResp, *lark.Response, error) { + cli.Mock().MockAPaaSBatchUpdateAPaaSWorkspaceTableRecords(func(ctx context.Context, request *lark.BatchUpdateAPaaSWorkspaceTableRecordsReq, options ...lark.MethodOptionFunc) (*lark.BatchUpdateAPaaSWorkspaceTableRecordsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSUpdateAPaaSWorkspaceTableRecordsBatchUpdate() + defer cli.Mock().UnMockAPaaSBatchUpdateAPaaSWorkspaceTableRecords() - _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq{}) + _, _, err := moduleCli.BatchUpdateAPaaSWorkspaceTableRecords(ctx, &lark.BatchUpdateAPaaSWorkspaceTableRecordsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete(func(ctx context.Context, request *lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq, options ...lark.MethodOptionFunc) (*lark.DeleteAPaaSWorkspaceTableRecordsDeleteResp, *lark.Response, error) { + cli.Mock().MockAPaaSDeleteAPaaSWorkspaceTableRecords(func(ctx context.Context, request *lark.DeleteAPaaSWorkspaceTableRecordsReq, options ...lark.MethodOptionFunc) (*lark.DeleteAPaaSWorkspaceTableRecordsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSDeleteAPaaSWorkspaceTableRecordsDelete() + defer cli.Mock().UnMockAPaaSDeleteAPaaSWorkspaceTableRecords() - _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecordsDelete(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq{}) + _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecords(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSGetAPaaSWorkspaceTableRecordsGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableRecordsGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableRecordsGetResp, *lark.Response, error) { + cli.Mock().MockAPaaSGetAPaaSWorkspaceTableRecords(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableRecordsReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableRecordsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTableRecordsGet() + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTableRecords() - _, _, err := moduleCli.GetAPaaSWorkspaceTableRecordsGet(ctx, &lark.GetAPaaSWorkspaceTableRecordsGetReq{}) + _, _, err := moduleCli.GetAPaaSWorkspaceTableRecords(ctx, &lark.GetAPaaSWorkspaceTableRecordsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -579,36 +579,36 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSCreateAPaaSWorkspaceTableRecordsPost(func(ctx context.Context, request *lark.CreateAPaaSWorkspaceTableRecordsPostReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSWorkspaceTableRecordsPostResp, *lark.Response, error) { + cli.Mock().MockAPaaSCreateAPaaSWorkspaceTableRecords(func(ctx context.Context, request *lark.CreateAPaaSWorkspaceTableRecordsReq, options ...lark.MethodOptionFunc) (*lark.CreateAPaaSWorkspaceTableRecordsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSCreateAPaaSWorkspaceTableRecordsPost() + defer cli.Mock().UnMockAPaaSCreateAPaaSWorkspaceTableRecords() - _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecordsPost(ctx, &lark.CreateAPaaSWorkspaceTableRecordsPostReq{}) + _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecords(ctx, &lark.CreateAPaaSWorkspaceTableRecordsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSGetAPaaSWorkspaceTableGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableGetResp, *lark.Response, error) { + cli.Mock().MockAPaaSGetAPaaSWorkspaceTable(func(ctx context.Context, request *lark.GetAPaaSWorkspaceTableReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceTableResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTableGet() + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceTable() - _, _, err := moduleCli.GetAPaaSWorkspaceTableGet(ctx, &lark.GetAPaaSWorkspaceTableGetReq{}) + _, _, err := moduleCli.GetAPaaSWorkspaceTable(ctx, &lark.GetAPaaSWorkspaceTableReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockAPaaSGetAPaaSWorkspaceViewViewsGet(func(ctx context.Context, request *lark.GetAPaaSWorkspaceViewViewsGetReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceViewViewsGetResp, *lark.Response, error) { + cli.Mock().MockAPaaSGetAPaaSWorkspaceViews(func(ctx context.Context, request *lark.GetAPaaSWorkspaceViewsReq, options ...lark.MethodOptionFunc) (*lark.GetAPaaSWorkspaceViewsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceViewViewsGet() + defer cli.Mock().UnMockAPaaSGetAPaaSWorkspaceViews() - _, _, err := moduleCli.GetAPaaSWorkspaceViewViewsGet(ctx, &lark.GetAPaaSWorkspaceViewViewsGetReq{}) + _, _, err := moduleCli.GetAPaaSWorkspaceViews(ctx, &lark.GetAPaaSWorkspaceViewsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -698,7 +698,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAPaaSApplicationFlowExecute(ctx, &lark.CreateAPaaSApplicationFlowExecuteReq{ + _, _, err := moduleCli.ExecuteAPaaSApplicationFlow(ctx, &lark.ExecuteAPaaSApplicationFlowReq{ Namespace: "x", FlowID: "x", }) @@ -708,7 +708,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAPaaSApplicationFunctionInvoke(ctx, &lark.CreateAPaaSApplicationFunctionInvokeReq{ + _, _, err := moduleCli.InvokeAPaaSApplicationFunction(ctx, &lark.InvokeAPaaSApplicationFunctionReq{ Namespace: "x", FunctionApiName: "x", }) @@ -801,7 +801,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAPaaSApplicationObjectOqlQuery(ctx, &lark.CreateAPaaSApplicationObjectOqlQueryReq{ + _, _, err := moduleCli.QueryAPaaSApplicationObjectOql(ctx, &lark.QueryAPaaSApplicationObjectOqlReq{ Namespace: "x", }) as.NotNil(err) @@ -980,7 +980,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetAPaaSWorkspaceEnumGet(ctx, &lark.GetAPaaSWorkspaceEnumGetReq{ + _, _, err := moduleCli.GetAPaaSWorkspaceEnum(ctx, &lark.GetAPaaSWorkspaceEnumReq{ WorkspaceID: "x", EnumName: "x", }) @@ -1008,7 +1008,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateAPaaSWorkspaceTableRecordsBatchUpdate(ctx, &lark.UpdateAPaaSWorkspaceTableRecordsBatchUpdateReq{ + _, _, err := moduleCli.BatchUpdateAPaaSWorkspaceTableRecords(ctx, &lark.BatchUpdateAPaaSWorkspaceTableRecordsReq{ WorkspaceID: "x", TableName: "x", }) @@ -1018,7 +1018,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecordsDelete(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsDeleteReq{ + _, _, err := moduleCli.DeleteAPaaSWorkspaceTableRecords(ctx, &lark.DeleteAPaaSWorkspaceTableRecordsReq{ WorkspaceID: "x", TableName: "x", }) @@ -1028,7 +1028,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetAPaaSWorkspaceTableRecordsGet(ctx, &lark.GetAPaaSWorkspaceTableRecordsGetReq{ + _, _, err := moduleCli.GetAPaaSWorkspaceTableRecords(ctx, &lark.GetAPaaSWorkspaceTableRecordsReq{ WorkspaceID: "x", TableName: "x", }) @@ -1048,7 +1048,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecordsPost(ctx, &lark.CreateAPaaSWorkspaceTableRecordsPostReq{ + _, _, err := moduleCli.CreateAPaaSWorkspaceTableRecords(ctx, &lark.CreateAPaaSWorkspaceTableRecordsReq{ WorkspaceID: "x", TableName: "x", }) @@ -1058,7 +1058,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetAPaaSWorkspaceTableGet(ctx, &lark.GetAPaaSWorkspaceTableGetReq{ + _, _, err := moduleCli.GetAPaaSWorkspaceTable(ctx, &lark.GetAPaaSWorkspaceTableReq{ WorkspaceID: "x", TableName: "x", }) @@ -1068,7 +1068,7 @@ func Test_APaaS_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetAPaaSWorkspaceViewViewsGet(ctx, &lark.GetAPaaSWorkspaceViewViewsGetReq{ + _, _, err := moduleCli.GetAPaaSWorkspaceViews(ctx, &lark.GetAPaaSWorkspaceViewsReq{ WorkspaceID: "x", ViewName: "x", }) diff --git a/test/attendance_sample_test.go b/test/attendance_sample_test.go index e99a60df..36fe148f 100644 --- a/test/attendance_sample_test.go +++ b/test/attendance_sample_test.go @@ -435,12 +435,12 @@ func Test_Attendance_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAttendanceCreateAttendanceArchiveRuleDelReport(func(ctx context.Context, request *lark.CreateAttendanceArchiveRuleDelReportReq, options ...lark.MethodOptionFunc) (*lark.CreateAttendanceArchiveRuleDelReportResp, *lark.Response, error) { + cli.Mock().MockAttendanceDeleteAttendanceArchiveRuleReport(func(ctx context.Context, request *lark.DeleteAttendanceArchiveRuleReportReq, options ...lark.MethodOptionFunc) (*lark.DeleteAttendanceArchiveRuleReportResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAttendanceCreateAttendanceArchiveRuleDelReport() + defer cli.Mock().UnMockAttendanceDeleteAttendanceArchiveRuleReport() - _, _, err := moduleCli.CreateAttendanceArchiveRuleDelReport(ctx, &lark.CreateAttendanceArchiveRuleDelReportReq{}) + _, _, err := moduleCli.DeleteAttendanceArchiveRuleReport(ctx, &lark.DeleteAttendanceArchiveRuleReportReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -507,12 +507,12 @@ func Test_Attendance_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockAttendanceBatchAttendanceUserFlowDel(func(ctx context.Context, request *lark.BatchAttendanceUserFlowDelReq, options ...lark.MethodOptionFunc) (*lark.BatchAttendanceUserFlowDelResp, *lark.Response, error) { + cli.Mock().MockAttendanceBatchDeleteAttendanceUserFlow(func(ctx context.Context, request *lark.BatchDeleteAttendanceUserFlowReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteAttendanceUserFlowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockAttendanceBatchAttendanceUserFlowDel() + defer cli.Mock().UnMockAttendanceBatchDeleteAttendanceUserFlow() - _, _, err := moduleCli.BatchAttendanceUserFlowDel(ctx, &lark.BatchAttendanceUserFlowDelReq{}) + _, _, err := moduleCli.BatchDeleteAttendanceUserFlow(ctx, &lark.BatchDeleteAttendanceUserFlowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -770,7 +770,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateAttendanceArchiveRuleDelReport(ctx, &lark.CreateAttendanceArchiveRuleDelReportReq{}) + _, _, err := moduleCli.DeleteAttendanceArchiveRuleReport(ctx, &lark.DeleteAttendanceArchiveRuleReportReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -814,7 +814,7 @@ func Test_Attendance_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchAttendanceUserFlowDel(ctx, &lark.BatchAttendanceUserFlowDelReq{}) + _, _, err := moduleCli.BatchDeleteAttendanceUserFlow(ctx, &lark.BatchDeleteAttendanceUserFlowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/base_sample_test.go b/test/base_sample_test.go deleted file mode 100644 index cec61b8e..00000000 --- a/test/base_sample_test.go +++ /dev/null @@ -1,126 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_Base_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBaseCreateBaseAppRole(func(ctx context.Context, request *lark.CreateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.CreateBaseAppRoleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBaseCreateBaseAppRole() - - _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBaseListBaseAppRole(func(ctx context.Context, request *lark.ListBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.ListBaseAppRoleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBaseListBaseAppRole() - - _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBaseUpdateBaseAppRole(func(ctx context.Context, request *lark.UpdateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.UpdateBaseAppRoleResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBaseUpdateBaseAppRole() - - _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{ - AppToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{ - AppToken: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{ - AppToken: "x", - RoleID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -} diff --git a/test/board_sample_test.go b/test/board_sample_test.go deleted file mode 100644 index d7e804f7..00000000 --- a/test/board_sample_test.go +++ /dev/null @@ -1,167 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_Board_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBoardCreateBoardWhiteboardNode(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodeReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBoardCreateBoardWhiteboardNode() - - _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBoardCreateBoardWhiteboardNodePlantuml(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodePlantumlReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodePlantumlResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBoardCreateBoardWhiteboardNodePlantuml() - - _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBoardDownloadBoardWhiteboardAsImage(func(ctx context.Context, request *lark.DownloadBoardWhiteboardAsImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadBoardWhiteboardAsImageResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBoardDownloadBoardWhiteboardAsImage() - - _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBoardGetBoardWhiteboardTheme(func(ctx context.Context, request *lark.GetBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.GetBoardWhiteboardThemeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBoardGetBoardWhiteboardTheme() - - _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockBoardUpdateBoardWhiteboardTheme(func(ctx context.Context, request *lark.UpdateBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.UpdateBoardWhiteboardThemeResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockBoardUpdateBoardWhiteboardTheme() - - _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{ - WhiteboardID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{ - WhiteboardID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{ - WhiteboardID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{ - WhiteboardID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{ - WhiteboardID: "x", - }) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -} diff --git a/test/ccmdocs_sample_test.go b/test/ccmdocs_sample_test.go deleted file mode 100644 index 16da6dbb..00000000 --- a/test/ccmdocs_sample_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_CcmDocs_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - cli.Mock().MockCcmDocsCreateCcmDocsDefaultDocsApiMeta(func(ctx context.Context, request *lark.CreateCcmDocsDefaultDocsApiMetaReq, options ...lark.MethodOptionFunc) (*lark.CreateCcmDocsDefaultDocsApiMetaResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockCcmDocsCreateCcmDocsDefaultDocsApiMeta() - - _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -} diff --git a/test/corehr_sample_test.go b/test/corehr_sample_test.go index fe59b195..5d062439 100644 --- a/test/corehr_sample_test.go +++ b/test/corehr_sample_test.go @@ -1551,36 +1551,36 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCoreHrbpByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHrbpByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHrbpByEmployeeResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchGetCoreHRByEmployee(func(ctx context.Context, request *lark.BatchGetCoreHRByEmployeeReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRByEmployeeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCoreHrbpByEmployee() + defer cli.Mock().UnMockCoreHRBatchGetCoreHRByEmployee() - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + _, _, err := moduleCli.BatchGetCoreHRByEmployee(ctx, &lark.BatchGetCoreHRByEmployeeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHrbpByDepartment(func(ctx context.Context, request *lark.GetCoreHrbpByDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpByDepartmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRByDepartment(func(ctx context.Context, request *lark.GetCoreHRByDepartmentReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRByDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHrbpByDepartment() + defer cli.Mock().UnMockCoreHRGetCoreHRByDepartment() - _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) + _, _, err := moduleCli.GetCoreHRByDepartment(ctx, &lark.GetCoreHRByDepartmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCoreHrbpList(func(ctx context.Context, request *lark.GetCoreHrbpListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHrbpListResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRList(func(ctx context.Context, request *lark.GetCoreHRListReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRListResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCoreHrbpList() + defer cli.Mock().UnMockCoreHRGetCoreHRList() - _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) + _, _, err := moduleCli.GetCoreHRList(ctx, &lark.GetCoreHRListReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -1767,336 +1767,336 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCorehrApprovalGroups(func(ctx context.Context, request *lark.GetCorehrApprovalGroupsReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrApprovalGroupsResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRApprovalGroups(func(ctx context.Context, request *lark.GetCoreHRApprovalGroupsReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRApprovalGroupsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCorehrApprovalGroups() + defer cli.Mock().UnMockCoreHRGetCoreHRApprovalGroups() - _, _, err := moduleCli.GetCorehrApprovalGroups(ctx, &lark.GetCorehrApprovalGroupsReq{}) + _, _, err := moduleCli.GetCoreHRApprovalGroups(ctx, &lark.GetCoreHRApprovalGroupsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs(func(ctx context.Context, request *lark.QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRApprovalGroupsDepartmentChangeListByIDsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsDepartmentChangeListByIDs() + defer cli.Mock().UnMockCoreHRQueryCoreHRApprovalGroupsDepartmentChangeListByIDs() - _, _, err := moduleCli.QueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsJobChangeListByIDsResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs(func(ctx context.Context, request *lark.QueryCoreHRApprovalGroupsJobChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRApprovalGroupsJobChangeListByIDsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsJobChangeListByIDs() + defer cli.Mock().UnMockCoreHRQueryCoreHRApprovalGroupsJobChangeListByIDs() - _, _, err := moduleCli.QueryCorehrApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsJobChangeListByIDsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs(func(ctx context.Context, request *lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrApprovalGroupsPositionChangeListByIDsResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs(func(ctx context.Context, request *lark.QueryCoreHRApprovalGroupsPositionChangeListByIDsReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRApprovalGroupsPositionChangeListByIDsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrApprovalGroupsPositionChangeListByIDs() + defer cli.Mock().UnMockCoreHRQueryCoreHRApprovalGroupsPositionChangeListByIDs() - _, _, err := moduleCli.QueryCorehrApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsPositionChangeListByIDsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrApprover(func(ctx context.Context, request *lark.ListCorehrApproverReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrApproverResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRApprover(func(ctx context.Context, request *lark.ListCoreHRApproverReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRApproverResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrApprover() + defer cli.Mock().UnMockCoreHRListCoreHRApprover() - _, _, err := moduleCli.ListCorehrApprover(ctx, &lark.ListCorehrApproverReq{}) + _, _, err := moduleCli.ListCoreHRApprover(ctx, &lark.ListCoreHRApproverReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCorehrBasicInfoLanguage(func(ctx context.Context, request *lark.SearchCorehrBasicInfoLanguageReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrBasicInfoLanguageResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBasicInfoLanguage(func(ctx context.Context, request *lark.SearchCoreHRBasicInfoLanguageReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBasicInfoLanguageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCorehrBasicInfoLanguage() + defer cli.Mock().UnMockCoreHRSearchCoreHRBasicInfoLanguage() - _, _, err := moduleCli.SearchCorehrBasicInfoLanguage(ctx, &lark.SearchCorehrBasicInfoLanguageReq{}) + _, _, err := moduleCli.SearchCoreHRBasicInfoLanguage(ctx, &lark.SearchCoreHRBasicInfoLanguageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCorehrBasicInfoTimeZone(func(ctx context.Context, request *lark.SearchCorehrBasicInfoTimeZoneReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrBasicInfoTimeZoneResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRBasicInfoTimeZone(func(ctx context.Context, request *lark.SearchCoreHRBasicInfoTimeZoneReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRBasicInfoTimeZoneResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCorehrBasicInfoTimeZone() + defer cli.Mock().UnMockCoreHRSearchCoreHRBasicInfoTimeZone() - _, _, err := moduleCli.SearchCorehrBasicInfoTimeZone(ctx, &lark.SearchCorehrBasicInfoTimeZoneReq{}) + _, _, err := moduleCli.SearchCoreHRBasicInfoTimeZone(ctx, &lark.SearchCoreHRBasicInfoTimeZoneReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCompanyActive(func(ctx context.Context, request *lark.CreateCorehrCompanyActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCompanyActiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCompanyActive(func(ctx context.Context, request *lark.CreateCoreHRCompanyActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCompanyActiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCompanyActive() + defer cli.Mock().UnMockCoreHRCreateCoreHRCompanyActive() - _, _, err := moduleCli.CreateCorehrCompanyActive(ctx, &lark.CreateCorehrCompanyActiveReq{}) + _, _, err := moduleCli.CreateCoreHRCompanyActive(ctx, &lark.CreateCoreHRCompanyActiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrCompanyMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrCompanyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCompanyMultiTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCompanyMultiTimeline(func(ctx context.Context, request *lark.QueryCoreHRCompanyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCompanyMultiTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrCompanyMultiTimeline() + defer cli.Mock().UnMockCoreHRQueryCoreHRCompanyMultiTimeline() - _, _, err := moduleCli.QueryCorehrCompanyMultiTimeline(ctx, &lark.QueryCorehrCompanyMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRCompanyMultiTimeline(ctx, &lark.QueryCoreHRCompanyMultiTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrCompanyRecentChange(func(ctx context.Context, request *lark.QueryCorehrCompanyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCompanyRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCompanyRecentChange(func(ctx context.Context, request *lark.QueryCoreHRCompanyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCompanyRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrCompanyRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRCompanyRecentChange() - _, _, err := moduleCli.QueryCorehrCompanyRecentChange(ctx, &lark.QueryCorehrCompanyRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCompanyRecentChange(ctx, &lark.QueryCoreHRCompanyRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchQueryCorehrCostAllocation(func(ctx context.Context, request *lark.BatchQueryCorehrCostAllocationReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrCostAllocationResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHRCostAllocation(func(ctx context.Context, request *lark.BatchQueryCoreHRCostAllocationReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRCostAllocationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchQueryCorehrCostAllocation() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRCostAllocation() - _, _, err := moduleCli.BatchQueryCorehrCostAllocation(ctx, &lark.BatchQueryCorehrCostAllocationReq{}) + _, _, err := moduleCli.BatchQueryCoreHRCostAllocation(ctx, &lark.BatchQueryCoreHRCostAllocationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCostAllocationVersion(func(ctx context.Context, request *lark.CreateCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCostAllocationVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCostAllocationVersion(func(ctx context.Context, request *lark.CreateCoreHRCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCostAllocationVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCostAllocationVersion() + defer cli.Mock().UnMockCoreHRCreateCoreHRCostAllocationVersion() - _, _, err := moduleCli.CreateCorehrCostAllocationVersion(ctx, &lark.CreateCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.CreateCoreHRCostAllocationVersion(ctx, &lark.CreateCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRRemoveCorehrCostAllocationVersion(func(ctx context.Context, request *lark.RemoveCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrCostAllocationVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRRemoveCoreHRCostAllocationVersion(func(ctx context.Context, request *lark.RemoveCoreHRCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCoreHRCostAllocationVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRRemoveCorehrCostAllocationVersion() + defer cli.Mock().UnMockCoreHRRemoveCoreHRCostAllocationVersion() - _, _, err := moduleCli.RemoveCorehrCostAllocationVersion(ctx, &lark.RemoveCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.RemoveCoreHRCostAllocationVersion(ctx, &lark.RemoveCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrCostAllocationVersion(func(ctx context.Context, request *lark.UpdateCorehrCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCostAllocationVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRCostAllocationVersion(func(ctx context.Context, request *lark.UpdateCoreHRCostAllocationVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCostAllocationVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrCostAllocationVersion() + defer cli.Mock().UnMockCoreHRUpdateCoreHRCostAllocationVersion() - _, _, err := moduleCli.UpdateCorehrCostAllocationVersion(ctx, &lark.UpdateCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.UpdateCoreHRCostAllocationVersion(ctx, &lark.UpdateCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrCostCenterRecentChange(func(ctx context.Context, request *lark.QueryCorehrCostCenterRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCostCenterRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCostCenterRecentChange(func(ctx context.Context, request *lark.QueryCoreHRCostCenterRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCostCenterRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrCostCenterRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRCostCenterRecentChange() - _, _, err := moduleCli.QueryCorehrCostCenterRecentChange(ctx, &lark.QueryCorehrCostCenterRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCostCenterRecentChange(ctx, &lark.QueryCoreHRCostCenterRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCustomOrgActive(func(ctx context.Context, request *lark.CreateCorehrCustomOrgActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCustomOrgActiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCustomOrgActive(func(ctx context.Context, request *lark.CreateCoreHRCustomOrgActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCustomOrgActiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCustomOrgActive() + defer cli.Mock().UnMockCoreHRCreateCoreHRCustomOrgActive() - _, _, err := moduleCli.CreateCorehrCustomOrgActive(ctx, &lark.CreateCorehrCustomOrgActiveReq{}) + _, _, err := moduleCli.CreateCoreHRCustomOrgActive(ctx, &lark.CreateCoreHRCustomOrgActiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCustomOrg(func(ctx context.Context, request *lark.CreateCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCustomOrgResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCustomOrg(func(ctx context.Context, request *lark.CreateCoreHRCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCustomOrgResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCustomOrg() + defer cli.Mock().UnMockCoreHRCreateCoreHRCustomOrg() - _, _, err := moduleCli.CreateCorehrCustomOrg(ctx, &lark.CreateCorehrCustomOrgReq{}) + _, _, err := moduleCli.CreateCoreHRCustomOrg(ctx, &lark.CreateCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrCustomOrg(func(ctx context.Context, request *lark.DeleteCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrCustomOrgResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRCustomOrg(func(ctx context.Context, request *lark.DeleteCoreHRCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRCustomOrgResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrCustomOrg() + defer cli.Mock().UnMockCoreHRDeleteCoreHRCustomOrg() - _, _, err := moduleCli.DeleteCorehrCustomOrg(ctx, &lark.DeleteCorehrCustomOrgReq{}) + _, _, err := moduleCli.DeleteCoreHRCustomOrg(ctx, &lark.DeleteCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrCustomOrg(func(ctx context.Context, request *lark.UpdateCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCustomOrgResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRCustomOrg(func(ctx context.Context, request *lark.UpdateCoreHRCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCustomOrgResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrCustomOrg() + defer cli.Mock().UnMockCoreHRUpdateCoreHRCustomOrg() - _, _, err := moduleCli.UpdateCorehrCustomOrg(ctx, &lark.UpdateCorehrCustomOrgReq{}) + _, _, err := moduleCli.UpdateCoreHRCustomOrg(ctx, &lark.UpdateCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrCustomOrg(func(ctx context.Context, request *lark.QueryCorehrCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCustomOrgResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCustomOrg(func(ctx context.Context, request *lark.QueryCoreHRCustomOrgReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCustomOrgResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrCustomOrg() + defer cli.Mock().UnMockCoreHRQueryCoreHRCustomOrg() - _, _, err := moduleCli.QueryCorehrCustomOrg(ctx, &lark.QueryCorehrCustomOrgReq{}) + _, _, err := moduleCli.QueryCoreHRCustomOrg(ctx, &lark.QueryCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrCustomOrgRecentChange(func(ctx context.Context, request *lark.QueryCorehrCustomOrgRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrCustomOrgRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRCustomOrgRecentChange(func(ctx context.Context, request *lark.QueryCoreHRCustomOrgRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRCustomOrgRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrCustomOrgRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRCustomOrgRecentChange() - _, _, err := moduleCli.QueryCorehrCustomOrgRecentChange(ctx, &lark.QueryCorehrCustomOrgRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCustomOrgRecentChange(ctx, &lark.QueryCoreHRCustomOrgRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrCustomOrgRule(func(ctx context.Context, request *lark.UpdateCorehrCustomOrgRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrCustomOrgRuleResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRCustomOrgRule(func(ctx context.Context, request *lark.UpdateCoreHRCustomOrgRuleReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRCustomOrgRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrCustomOrgRule() + defer cli.Mock().UnMockCoreHRUpdateCoreHRCustomOrgRule() - _, _, err := moduleCli.UpdateCorehrCustomOrgRule(ctx, &lark.UpdateCorehrCustomOrgRuleReq{}) + _, _, err := moduleCli.UpdateCoreHRCustomOrgRule(ctx, &lark.UpdateCoreHRCustomOrgRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchQueryCorehrDefaultCostCenter(func(ctx context.Context, request *lark.BatchQueryCorehrDefaultCostCenterReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrDefaultCostCenterResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHRDefaultCostCenter(func(ctx context.Context, request *lark.BatchQueryCoreHRDefaultCostCenterReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRDefaultCostCenterResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchQueryCorehrDefaultCostCenter() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRDefaultCostCenter() - _, _, err := moduleCli.BatchQueryCorehrDefaultCostCenter(ctx, &lark.BatchQueryCorehrDefaultCostCenterReq{}) + _, _, err := moduleCli.BatchQueryCoreHRDefaultCostCenter(ctx, &lark.BatchQueryCoreHRDefaultCostCenterReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.CreateCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRDefaultCostCenterVersion(func(ctx context.Context, request *lark.CreateCoreHRDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRDefaultCostCenterVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrDefaultCostCenterVersion() + defer cli.Mock().UnMockCoreHRCreateCoreHRDefaultCostCenterVersion() - _, _, err := moduleCli.CreateCorehrDefaultCostCenterVersion(ctx, &lark.CreateCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.CreateCoreHRDefaultCostCenterVersion(ctx, &lark.CreateCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRRemoveCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.RemoveCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRRemoveCoreHRDefaultCostCenterVersion(func(ctx context.Context, request *lark.RemoveCoreHRDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.RemoveCoreHRDefaultCostCenterVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRRemoveCorehrDefaultCostCenterVersion() + defer cli.Mock().UnMockCoreHRRemoveCoreHRDefaultCostCenterVersion() - _, _, err := moduleCli.RemoveCorehrDefaultCostCenterVersion(ctx, &lark.RemoveCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.RemoveCoreHRDefaultCostCenterVersion(ctx, &lark.RemoveCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrDefaultCostCenterVersion(func(ctx context.Context, request *lark.UpdateCorehrDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrDefaultCostCenterVersionResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRDefaultCostCenterVersion(func(ctx context.Context, request *lark.UpdateCoreHRDefaultCostCenterVersionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRDefaultCostCenterVersionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrDefaultCostCenterVersion() + defer cli.Mock().UnMockCoreHRUpdateCoreHRDefaultCostCenterVersion() - _, _, err := moduleCli.UpdateCorehrDefaultCostCenterVersion(ctx, &lark.UpdateCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.UpdateCoreHRDefaultCostCenterVersion(ctx, &lark.UpdateCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrDepartment(func(ctx context.Context, request *lark.DeleteCorehrDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrDepartmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRDepartment(func(ctx context.Context, request *lark.DeleteCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrDepartment() + defer cli.Mock().UnMockCoreHRDeleteCoreHRDepartment() - _, _, err := moduleCli.DeleteCorehrDepartment(ctx, &lark.DeleteCorehrDepartmentReq{}) + _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrDepartment(func(ctx context.Context, request *lark.UpdateCorehrDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrDepartmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRDepartment(func(ctx context.Context, request *lark.UpdateCoreHRDepartmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRDepartmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrDepartment() + defer cli.Mock().UnMockCoreHRUpdateCoreHRDepartment() - _, _, err := moduleCli.UpdateCorehrDepartment(ctx, &lark.UpdateCorehrDepartmentReq{}) + _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -2115,24 +2115,24 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrDepartmentOperationLogs(func(ctx context.Context, request *lark.QueryCorehrDepartmentOperationLogsReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrDepartmentOperationLogsResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRDepartmentOperationLogs(func(ctx context.Context, request *lark.QueryCoreHRDepartmentOperationLogsReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRDepartmentOperationLogsResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrDepartmentOperationLogs() + defer cli.Mock().UnMockCoreHRQueryCoreHRDepartmentOperationLogs() - _, _, err := moduleCli.QueryCorehrDepartmentOperationLogs(ctx, &lark.QueryCorehrDepartmentOperationLogsReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentOperationLogs(ctx, &lark.QueryCoreHRDepartmentOperationLogsReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrDepartmentRecentChange(func(ctx context.Context, request *lark.QueryCorehrDepartmentRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrDepartmentRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRDepartmentRecentChange(func(ctx context.Context, request *lark.QueryCoreHRDepartmentRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRDepartmentRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrDepartmentRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRDepartmentRecentChange() - _, _, err := moduleCli.QueryCorehrDepartmentRecentChange(ctx, &lark.QueryCorehrDepartmentRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentRecentChange(ctx, &lark.QueryCoreHRDepartmentRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -2151,264 +2151,264 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrDepartmentTree(func(ctx context.Context, request *lark.CreateCorehrDepartmentTreeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrDepartmentTreeResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRDepartmentTree(func(ctx context.Context, request *lark.CreateCoreHRDepartmentTreeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRDepartmentTreeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrDepartmentTree() + defer cli.Mock().UnMockCoreHRCreateCoreHRDepartmentTree() - _, _, err := moduleCli.CreateCorehrDepartmentTree(ctx, &lark.CreateCorehrDepartmentTreeReq{}) + _, _, err := moduleCli.CreateCoreHRDepartmentTree(ctx, &lark.CreateCoreHRDepartmentTreeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCorehrDraft(func(ctx context.Context, request *lark.GetCorehrDraftReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrDraftResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRDraft(func(ctx context.Context, request *lark.GetCoreHRDraftReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRDraftResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCorehrDraft() + defer cli.Mock().UnMockCoreHRGetCoreHRDraft() - _, _, err := moduleCli.GetCorehrDraft(ctx, &lark.GetCorehrDraftReq{}) + _, _, err := moduleCli.GetCoreHRDraft(ctx, &lark.GetCoreHRDraftReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrEmployee(func(ctx context.Context, request *lark.CreateCorehrEmployeeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeeResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHREmployee(func(ctx context.Context, request *lark.CreateCoreHREmployeeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmployeeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrEmployee() + defer cli.Mock().UnMockCoreHRCreateCoreHREmployee() - _, _, err := moduleCli.CreateCorehrEmployee(ctx, &lark.CreateCorehrEmployeeReq{}) + _, _, err := moduleCli.CreateCoreHREmployee(ctx, &lark.CreateCoreHREmployeeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchQueryCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.BatchQueryCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHREmployeesAdditionalJob(func(ctx context.Context, request *lark.BatchQueryCoreHREmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHREmployeesAdditionalJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchQueryCorehrEmployeesAdditionalJob() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHREmployeesAdditionalJob() - _, _, err := moduleCli.BatchQueryCorehrEmployeesAdditionalJob(ctx, &lark.BatchQueryCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.BatchQueryCoreHREmployeesAdditionalJob(ctx, &lark.BatchQueryCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.CreateCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHREmployeesAdditionalJob(func(ctx context.Context, request *lark.CreateCoreHREmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmployeesAdditionalJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrEmployeesAdditionalJob() + defer cli.Mock().UnMockCoreHRCreateCoreHREmployeesAdditionalJob() - _, _, err := moduleCli.CreateCorehrEmployeesAdditionalJob(ctx, &lark.CreateCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.CreateCoreHREmployeesAdditionalJob(ctx, &lark.CreateCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.DeleteCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHREmployeesAdditionalJob(func(ctx context.Context, request *lark.DeleteCoreHREmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmployeesAdditionalJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrEmployeesAdditionalJob() + defer cli.Mock().UnMockCoreHRDeleteCoreHREmployeesAdditionalJob() - _, _, err := moduleCli.DeleteCorehrEmployeesAdditionalJob(ctx, &lark.DeleteCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.DeleteCoreHREmployeesAdditionalJob(ctx, &lark.DeleteCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrEmployeesAdditionalJob(func(ctx context.Context, request *lark.UpdateCorehrEmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrEmployeesAdditionalJobResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHREmployeesAdditionalJob(func(ctx context.Context, request *lark.UpdateCoreHREmployeesAdditionalJobReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmployeesAdditionalJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrEmployeesAdditionalJob() + defer cli.Mock().UnMockCoreHRUpdateCoreHREmployeesAdditionalJob() - _, _, err := moduleCli.UpdateCorehrEmployeesAdditionalJob(ctx, &lark.UpdateCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.UpdateCoreHREmployeesAdditionalJob(ctx, &lark.UpdateCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.CreateCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHREmployeesInternationalAssignment(func(ctx context.Context, request *lark.CreateCoreHREmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHREmployeesInternationalAssignmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrEmployeesInternationalAssignment() + defer cli.Mock().UnMockCoreHRCreateCoreHREmployeesInternationalAssignment() - _, _, err := moduleCli.CreateCorehrEmployeesInternationalAssignment(ctx, &lark.CreateCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.CreateCoreHREmployeesInternationalAssignment(ctx, &lark.CreateCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.DeleteCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHREmployeesInternationalAssignment(func(ctx context.Context, request *lark.DeleteCoreHREmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHREmployeesInternationalAssignmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrEmployeesInternationalAssignment() + defer cli.Mock().UnMockCoreHRDeleteCoreHREmployeesInternationalAssignment() - _, _, err := moduleCli.DeleteCorehrEmployeesInternationalAssignment(ctx, &lark.DeleteCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.DeleteCoreHREmployeesInternationalAssignment(ctx, &lark.DeleteCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.ListCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHREmployeesInternationalAssignment(func(ctx context.Context, request *lark.ListCoreHREmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHREmployeesInternationalAssignmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrEmployeesInternationalAssignment() + defer cli.Mock().UnMockCoreHRListCoreHREmployeesInternationalAssignment() - _, _, err := moduleCli.ListCorehrEmployeesInternationalAssignment(ctx, &lark.ListCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.ListCoreHREmployeesInternationalAssignment(ctx, &lark.ListCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrEmployeesInternationalAssignment(func(ctx context.Context, request *lark.UpdateCorehrEmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrEmployeesInternationalAssignmentResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHREmployeesInternationalAssignment(func(ctx context.Context, request *lark.UpdateCoreHREmployeesInternationalAssignmentReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHREmployeesInternationalAssignmentResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrEmployeesInternationalAssignment() + defer cli.Mock().UnMockCoreHRUpdateCoreHREmployeesInternationalAssignment() - _, _, err := moduleCli.UpdateCorehrEmployeesInternationalAssignment(ctx, &lark.UpdateCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.UpdateCoreHREmployeesInternationalAssignment(ctx, &lark.UpdateCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCorehrEnum(func(ctx context.Context, request *lark.SearchCorehrEnumReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrEnumResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHREnum(func(ctx context.Context, request *lark.SearchCoreHREnumReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHREnumResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCorehrEnum() + defer cli.Mock().UnMockCoreHRSearchCoreHREnum() - _, _, err := moduleCli.SearchCorehrEnum(ctx, &lark.SearchCorehrEnumReq{}) + _, _, err := moduleCli.SearchCoreHREnum(ctx, &lark.SearchCoreHREnumReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCorehrJob(func(ctx context.Context, request *lark.BatchGetCorehrJobReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCorehrJobResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchGetCoreHRJob(func(ctx context.Context, request *lark.BatchGetCoreHRJobReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRJobResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCorehrJob() + defer cli.Mock().UnMockCoreHRBatchGetCoreHRJob() - _, _, err := moduleCli.BatchGetCorehrJob(ctx, &lark.BatchGetCorehrJobReq{}) + _, _, err := moduleCli.BatchGetCoreHRJob(ctx, &lark.BatchGetCoreHRJobReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrJobMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobMultiTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobMultiTimeline(func(ctx context.Context, request *lark.QueryCoreHRJobMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobMultiTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobMultiTimeline() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobMultiTimeline() - _, _, err := moduleCli.QueryCorehrJobMultiTimeline(ctx, &lark.QueryCorehrJobMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRJobMultiTimeline(ctx, &lark.QueryCoreHRJobMultiTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobRecentChange(func(ctx context.Context, request *lark.QueryCoreHRJobRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobRecentChange() - _, _, err := moduleCli.QueryCorehrJobRecentChange(ctx, &lark.QueryCorehrJobRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobRecentChange(ctx, &lark.QueryCoreHRJobRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrJobChange(func(ctx context.Context, request *lark.CreateCorehrJobChangeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRJobChange(func(ctx context.Context, request *lark.CreateCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrJobChange() + defer cli.Mock().UnMockCoreHRCreateCoreHRJobChange() - _, _, err := moduleCli.CreateCorehrJobChange(ctx, &lark.CreateCorehrJobChangeReq{}) + _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrJobChangeRevoke(func(ctx context.Context, request *lark.CreateCorehrJobChangeRevokeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobChangeRevokeResp, *lark.Response, error) { + cli.Mock().MockCoreHRRevokeCoreHRJobChange(func(ctx context.Context, request *lark.RevokeCoreHRJobChangeReq, options ...lark.MethodOptionFunc) (*lark.RevokeCoreHRJobChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrJobChangeRevoke() + defer cli.Mock().UnMockCoreHRRevokeCoreHRJobChange() - _, _, err := moduleCli.CreateCorehrJobChangeRevoke(ctx, &lark.CreateCorehrJobChangeRevokeReq{}) + _, _, err := moduleCli.RevokeCoreHRJobChange(ctx, &lark.RevokeCoreHRJobChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobFamilyMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrJobFamilyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobFamilyMultiTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobFamilyMultiTimeline(func(ctx context.Context, request *lark.QueryCoreHRJobFamilyMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobFamilyMultiTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobFamilyMultiTimeline() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobFamilyMultiTimeline() - _, _, err := moduleCli.QueryCorehrJobFamilyMultiTimeline(ctx, &lark.QueryCorehrJobFamilyMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRJobFamilyMultiTimeline(ctx, &lark.QueryCoreHRJobFamilyMultiTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobFamilyRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobFamilyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobFamilyRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobFamilyRecentChange(func(ctx context.Context, request *lark.QueryCoreHRJobFamilyRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobFamilyRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobFamilyRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobFamilyRecentChange() - _, _, err := moduleCli.QueryCorehrJobFamilyRecentChange(ctx, &lark.QueryCorehrJobFamilyRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobFamilyRecentChange(ctx, &lark.QueryCoreHRJobFamilyRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrJobGrade(func(ctx context.Context, request *lark.CreateCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrJobGradeResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRJobGrade(func(ctx context.Context, request *lark.CreateCoreHRJobGradeReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRJobGradeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrJobGrade() + defer cli.Mock().UnMockCoreHRCreateCoreHRJobGrade() - _, _, err := moduleCli.CreateCorehrJobGrade(ctx, &lark.CreateCorehrJobGradeReq{}) + _, _, err := moduleCli.CreateCoreHRJobGrade(ctx, &lark.CreateCoreHRJobGradeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrJobGrade(func(ctx context.Context, request *lark.DeleteCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrJobGradeResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRJobGrade(func(ctx context.Context, request *lark.DeleteCoreHRJobGradeReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRJobGradeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrJobGrade() + defer cli.Mock().UnMockCoreHRDeleteCoreHRJobGrade() - _, _, err := moduleCli.DeleteCorehrJobGrade(ctx, &lark.DeleteCorehrJobGradeReq{}) + _, _, err := moduleCli.DeleteCoreHRJobGrade(ctx, &lark.DeleteCoreHRJobGradeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrJobGrade(func(ctx context.Context, request *lark.UpdateCorehrJobGradeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrJobGradeResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRJobGrade(func(ctx context.Context, request *lark.UpdateCoreHRJobGradeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRJobGradeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrJobGrade() + defer cli.Mock().UnMockCoreHRUpdateCoreHRJobGrade() - _, _, err := moduleCli.UpdateCorehrJobGrade(ctx, &lark.UpdateCorehrJobGradeReq{}) + _, _, err := moduleCli.UpdateCoreHRJobGrade(ctx, &lark.UpdateCoreHRJobGradeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -2427,336 +2427,336 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobGradeRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobGradeRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobGradeRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobGradeRecentChange(func(ctx context.Context, request *lark.QueryCoreHRJobGradeRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobGradeRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobGradeRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobGradeRecentChange() - _, _, err := moduleCli.QueryCorehrJobGradeRecentChange(ctx, &lark.QueryCorehrJobGradeRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobGradeRecentChange(ctx, &lark.QueryCoreHRJobGradeRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrJobLevelRecentChange(func(ctx context.Context, request *lark.QueryCorehrJobLevelRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrJobLevelRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRJobLevelRecentChange(func(ctx context.Context, request *lark.QueryCoreHRJobLevelRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRJobLevelRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrJobLevelRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRJobLevelRecentChange() - _, _, err := moduleCli.QueryCorehrJobLevelRecentChange(ctx, &lark.QueryCorehrJobLevelRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobLevelRecentChange(ctx, &lark.QueryCoreHRJobLevelRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrLocationAddress(func(ctx context.Context, request *lark.CreateCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLocationAddressResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRLocationAddress(func(ctx context.Context, request *lark.CreateCoreHRLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLocationAddressResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrLocationAddress() + defer cli.Mock().UnMockCoreHRCreateCoreHRLocationAddress() - _, _, err := moduleCli.CreateCorehrLocationAddress(ctx, &lark.CreateCorehrLocationAddressReq{}) + _, _, err := moduleCli.CreateCoreHRLocationAddress(ctx, &lark.CreateCoreHRLocationAddressReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrLocationAddress(func(ctx context.Context, request *lark.DeleteCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrLocationAddressResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRLocationAddress(func(ctx context.Context, request *lark.DeleteCoreHRLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRLocationAddressResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrLocationAddress() + defer cli.Mock().UnMockCoreHRDeleteCoreHRLocationAddress() - _, _, err := moduleCli.DeleteCorehrLocationAddress(ctx, &lark.DeleteCorehrLocationAddressReq{}) + _, _, err := moduleCli.DeleteCoreHRLocationAddress(ctx, &lark.DeleteCoreHRLocationAddressReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrLocationAddress(func(ctx context.Context, request *lark.UpdateCorehrLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrLocationAddressResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRLocationAddress(func(ctx context.Context, request *lark.UpdateCoreHRLocationAddressReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRLocationAddressResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrLocationAddress() + defer cli.Mock().UnMockCoreHRUpdateCoreHRLocationAddress() - _, _, err := moduleCli.UpdateCorehrLocationAddress(ctx, &lark.UpdateCorehrLocationAddressReq{}) + _, _, err := moduleCli.UpdateCoreHRLocationAddress(ctx, &lark.UpdateCoreHRLocationAddressReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrLocationActive(func(ctx context.Context, request *lark.CreateCorehrLocationActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLocationActiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRLocationActive(func(ctx context.Context, request *lark.CreateCoreHRLocationActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLocationActiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrLocationActive() + defer cli.Mock().UnMockCoreHRCreateCoreHRLocationActive() - _, _, err := moduleCli.CreateCorehrLocationActive(ctx, &lark.CreateCorehrLocationActiveReq{}) + _, _, err := moduleCli.CreateCoreHRLocationActive(ctx, &lark.CreateCoreHRLocationActiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrLocation(func(ctx context.Context, request *lark.UpdateCorehrLocationReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrLocationResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRLocation(func(ctx context.Context, request *lark.UpdateCoreHRLocationReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRLocationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrLocation() + defer cli.Mock().UnMockCoreHRUpdateCoreHRLocation() - _, _, err := moduleCli.UpdateCorehrLocation(ctx, &lark.UpdateCorehrLocationReq{}) + _, _, err := moduleCli.UpdateCoreHRLocation(ctx, &lark.UpdateCoreHRLocationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrLocationMultiTimeline(func(ctx context.Context, request *lark.QueryCorehrLocationMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrLocationMultiTimelineResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRLocationMultiTimeline(func(ctx context.Context, request *lark.QueryCoreHRLocationMultiTimelineReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRLocationMultiTimelineResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrLocationMultiTimeline() + defer cli.Mock().UnMockCoreHRQueryCoreHRLocationMultiTimeline() - _, _, err := moduleCli.QueryCorehrLocationMultiTimeline(ctx, &lark.QueryCorehrLocationMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRLocationMultiTimeline(ctx, &lark.QueryCoreHRLocationMultiTimelineReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrLocationRecentChange(func(ctx context.Context, request *lark.QueryCorehrLocationRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrLocationRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRLocationRecentChange(func(ctx context.Context, request *lark.QueryCoreHRLocationRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRLocationRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrLocationRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRLocationRecentChange() - _, _, err := moduleCli.QueryCorehrLocationRecentChange(ctx, &lark.QueryCorehrLocationRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRLocationRecentChange(ctx, &lark.QueryCoreHRLocationRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrOffboardingEdit(func(ctx context.Context, request *lark.CreateCorehrOffboardingEditReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingEditResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHROffboardingEdit(func(ctx context.Context, request *lark.CreateCoreHROffboardingEditReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHROffboardingEditResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingEdit() + defer cli.Mock().UnMockCoreHRCreateCoreHROffboardingEdit() - _, _, err := moduleCli.CreateCorehrOffboardingEdit(ctx, &lark.CreateCorehrOffboardingEditReq{}) + _, _, err := moduleCli.CreateCoreHROffboardingEdit(ctx, &lark.CreateCoreHROffboardingEditReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrOffboardingRevoke(func(ctx context.Context, request *lark.CreateCorehrOffboardingRevokeReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingRevokeResp, *lark.Response, error) { + cli.Mock().MockCoreHRRevokeCoreHROffboarding(func(ctx context.Context, request *lark.RevokeCoreHROffboardingReq, options ...lark.MethodOptionFunc) (*lark.RevokeCoreHROffboardingResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingRevoke() + defer cli.Mock().UnMockCoreHRRevokeCoreHROffboarding() - _, _, err := moduleCli.CreateCorehrOffboardingRevoke(ctx, &lark.CreateCorehrOffboardingRevokeReq{}) + _, _, err := moduleCli.RevokeCoreHROffboarding(ctx, &lark.RevokeCoreHROffboardingReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrOffboardingSubmitV2(func(ctx context.Context, request *lark.CreateCorehrOffboardingSubmitV2Req, options ...lark.MethodOptionFunc) (*lark.CreateCorehrOffboardingSubmitV2Resp, *lark.Response, error) { + cli.Mock().MockCoreHRSubmitCoreHROffboardingV2(func(ctx context.Context, request *lark.SubmitCoreHROffboardingV2Req, options ...lark.MethodOptionFunc) (*lark.SubmitCoreHROffboardingV2Resp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrOffboardingSubmitV2() + defer cli.Mock().UnMockCoreHRSubmitCoreHROffboardingV2() - _, _, err := moduleCli.CreateCorehrOffboardingSubmitV2(ctx, &lark.CreateCorehrOffboardingSubmitV2Req{}) + _, _, err := moduleCli.SubmitCoreHROffboardingV2(ctx, &lark.SubmitCoreHROffboardingV2Req{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPathwayActive(func(ctx context.Context, request *lark.CreateCorehrPathwayActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPathwayActiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRPathwayActive(func(ctx context.Context, request *lark.CreateCoreHRPathwayActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPathwayActiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPathwayActive() + defer cli.Mock().UnMockCoreHRCreateCoreHRPathwayActive() - _, _, err := moduleCli.CreateCorehrPathwayActive(ctx, &lark.CreateCorehrPathwayActiveReq{}) + _, _, err := moduleCli.CreateCoreHRPathwayActive(ctx, &lark.CreateCoreHRPathwayActiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchGetCorehrPathway(func(ctx context.Context, request *lark.BatchGetCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCorehrPathwayResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchGetCoreHRPathway(func(ctx context.Context, request *lark.BatchGetCoreHRPathwayReq, options ...lark.MethodOptionFunc) (*lark.BatchGetCoreHRPathwayResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchGetCorehrPathway() + defer cli.Mock().UnMockCoreHRBatchGetCoreHRPathway() - _, _, err := moduleCli.BatchGetCorehrPathway(ctx, &lark.BatchGetCorehrPathwayReq{}) + _, _, err := moduleCli.BatchGetCoreHRPathway(ctx, &lark.BatchGetCoreHRPathwayReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPathway(func(ctx context.Context, request *lark.CreateCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPathwayResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRPathway(func(ctx context.Context, request *lark.CreateCoreHRPathwayReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPathwayResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPathway() + defer cli.Mock().UnMockCoreHRCreateCoreHRPathway() - _, _, err := moduleCli.CreateCorehrPathway(ctx, &lark.CreateCorehrPathwayReq{}) + _, _, err := moduleCli.CreateCoreHRPathway(ctx, &lark.CreateCoreHRPathwayReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrPathway(func(ctx context.Context, request *lark.DeleteCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrPathwayResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRPathway(func(ctx context.Context, request *lark.DeleteCoreHRPathwayReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPathwayResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrPathway() + defer cli.Mock().UnMockCoreHRDeleteCoreHRPathway() - _, _, err := moduleCli.DeleteCorehrPathway(ctx, &lark.DeleteCorehrPathwayReq{}) + _, _, err := moduleCli.DeleteCoreHRPathway(ctx, &lark.DeleteCoreHRPathwayReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrPathway(func(ctx context.Context, request *lark.UpdateCorehrPathwayReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPathwayResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRPathway(func(ctx context.Context, request *lark.UpdateCoreHRPathwayReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPathwayResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrPathway() + defer cli.Mock().UnMockCoreHRUpdateCoreHRPathway() - _, _, err := moduleCli.UpdateCorehrPathway(ctx, &lark.UpdateCorehrPathwayReq{}) + _, _, err := moduleCli.UpdateCoreHRPathway(ctx, &lark.UpdateCoreHRPathwayReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPositionActive(func(ctx context.Context, request *lark.CreateCorehrPositionActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionActiveResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRPositionActive(func(ctx context.Context, request *lark.CreateCoreHRPositionActiveReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPositionActiveResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPositionActive() + defer cli.Mock().UnMockCoreHRCreateCoreHRPositionActive() - _, _, err := moduleCli.CreateCorehrPositionActive(ctx, &lark.CreateCorehrPositionActiveReq{}) + _, _, err := moduleCli.CreateCoreHRPositionActive(ctx, &lark.CreateCoreHRPositionActiveReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPosition(func(ctx context.Context, request *lark.CreateCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRPosition(func(ctx context.Context, request *lark.CreateCoreHRPositionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPositionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPosition() + defer cli.Mock().UnMockCoreHRCreateCoreHRPosition() - _, _, err := moduleCli.CreateCorehrPosition(ctx, &lark.CreateCorehrPositionReq{}) + _, _, err := moduleCli.CreateCoreHRPosition(ctx, &lark.CreateCoreHRPositionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPositionDelPosition(func(ctx context.Context, request *lark.CreateCorehrPositionDelPositionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPositionDelPositionResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRPosition(func(ctx context.Context, request *lark.DeleteCoreHRPositionReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPositionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPositionDelPosition() + defer cli.Mock().UnMockCoreHRDeleteCoreHRPosition() - _, _, err := moduleCli.CreateCorehrPositionDelPosition(ctx, &lark.CreateCorehrPositionDelPositionReq{}) + _, _, err := moduleCli.DeleteCoreHRPosition(ctx, &lark.DeleteCoreHRPositionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrPosition(func(ctx context.Context, request *lark.UpdateCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPositionResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRPosition(func(ctx context.Context, request *lark.UpdateCoreHRPositionReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPositionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrPosition() + defer cli.Mock().UnMockCoreHRUpdateCoreHRPosition() - _, _, err := moduleCli.UpdateCorehrPosition(ctx, &lark.UpdateCorehrPositionReq{}) + _, _, err := moduleCli.UpdateCoreHRPosition(ctx, &lark.UpdateCoreHRPositionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrPosition(func(ctx context.Context, request *lark.QueryCorehrPositionReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPositionResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRPosition(func(ctx context.Context, request *lark.QueryCoreHRPositionReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRPositionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrPosition() + defer cli.Mock().UnMockCoreHRQueryCoreHRPosition() - _, _, err := moduleCli.QueryCorehrPosition(ctx, &lark.QueryCorehrPositionReq{}) + _, _, err := moduleCli.QueryCoreHRPosition(ctx, &lark.QueryCoreHRPositionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrPositionRecentChange(func(ctx context.Context, request *lark.QueryCorehrPositionRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPositionRecentChangeResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRPositionRecentChange(func(ctx context.Context, request *lark.QueryCoreHRPositionRecentChangeReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRPositionRecentChangeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrPositionRecentChange() + defer cli.Mock().UnMockCoreHRQueryCoreHRPositionRecentChange() - _, _, err := moduleCli.QueryCorehrPositionRecentChange(ctx, &lark.QueryCorehrPositionRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRPositionRecentChange(ctx, &lark.QueryCoreHRPositionRecentChangeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPreHireComplete(func(ctx context.Context, request *lark.CreateCorehrPreHireCompleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireCompleteResp, *lark.Response, error) { + cli.Mock().MockCoreHRCompleteCoreHRPreHire(func(ctx context.Context, request *lark.CompleteCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.CompleteCoreHRPreHireResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPreHireComplete() + defer cli.Mock().UnMockCoreHRCompleteCoreHRPreHire() - _, _, err := moduleCli.CreateCorehrPreHireComplete(ctx, &lark.CreateCorehrPreHireCompleteReq{}) + _, _, err := moduleCli.CompleteCoreHRPreHire(ctx, &lark.CompleteCoreHRPreHireReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDeleteCorehrPreHire(func(ctx context.Context, request *lark.DeleteCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.DeleteCorehrPreHireResp, *lark.Response, error) { + cli.Mock().MockCoreHRDeleteCoreHRPreHire(func(ctx context.Context, request *lark.DeleteCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.DeleteCoreHRPreHireResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDeleteCorehrPreHire() + defer cli.Mock().UnMockCoreHRDeleteCoreHRPreHire() - _, _, err := moduleCli.DeleteCorehrPreHire(ctx, &lark.DeleteCorehrPreHireReq{}) + _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrPreHire(func(ctx context.Context, request *lark.UpdateCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPreHireResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRPreHire(func(ctx context.Context, request *lark.UpdateCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPreHireResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrPreHire() + defer cli.Mock().UnMockCoreHRUpdateCoreHRPreHire() - _, _, err := moduleCli.UpdateCorehrPreHire(ctx, &lark.UpdateCorehrPreHireReq{}) + _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrPreHire(func(ctx context.Context, request *lark.QueryCorehrPreHireReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrPreHireResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRPreHire(func(ctx context.Context, request *lark.QueryCoreHRPreHireReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRPreHireResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrPreHire() + defer cli.Mock().UnMockCoreHRQueryCoreHRPreHire() - _, _, err := moduleCli.QueryCorehrPreHire(ctx, &lark.QueryCorehrPreHireReq{}) + _, _, err := moduleCli.QueryCoreHRPreHire(ctx, &lark.QueryCoreHRPreHireReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPreHireRestoreFlowInstance(func(ctx context.Context, request *lark.CreateCorehrPreHireRestoreFlowInstanceReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireRestoreFlowInstanceResp, *lark.Response, error) { + cli.Mock().MockCoreHRRestoreCoreHRPreHireFlowInstance(func(ctx context.Context, request *lark.RestoreCoreHRPreHireFlowInstanceReq, options ...lark.MethodOptionFunc) (*lark.RestoreCoreHRPreHireFlowInstanceResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPreHireRestoreFlowInstance() + defer cli.Mock().UnMockCoreHRRestoreCoreHRPreHireFlowInstance() - _, _, err := moduleCli.CreateCorehrPreHireRestoreFlowInstance(ctx, &lark.CreateCorehrPreHireRestoreFlowInstanceReq{}) + _, _, err := moduleCli.RestoreCoreHRPreHireFlowInstance(ctx, &lark.RestoreCoreHRPreHireFlowInstanceReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -2775,360 +2775,360 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPreHireTransformOnboardingTask(func(ctx context.Context, request *lark.CreateCorehrPreHireTransformOnboardingTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireTransformOnboardingTaskResp, *lark.Response, error) { + cli.Mock().MockCoreHRTransformCoreHRPreHireOnboardingTask(func(ctx context.Context, request *lark.TransformCoreHRPreHireOnboardingTaskReq, options ...lark.MethodOptionFunc) (*lark.TransformCoreHRPreHireOnboardingTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPreHireTransformOnboardingTask() + defer cli.Mock().UnMockCoreHRTransformCoreHRPreHireOnboardingTask() - _, _, err := moduleCli.CreateCorehrPreHireTransformOnboardingTask(ctx, &lark.CreateCorehrPreHireTransformOnboardingTaskReq{}) + _, _, err := moduleCli.TransformCoreHRPreHireOnboardingTask(ctx, &lark.TransformCoreHRPreHireOnboardingTaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPreHireTransitTask(func(ctx context.Context, request *lark.CreateCorehrPreHireTransitTaskReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireTransitTaskResp, *lark.Response, error) { + cli.Mock().MockCoreHRTransitCoreHRPreHireTask(func(ctx context.Context, request *lark.TransitCoreHRPreHireTaskReq, options ...lark.MethodOptionFunc) (*lark.TransitCoreHRPreHireTaskResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPreHireTransitTask() + defer cli.Mock().UnMockCoreHRTransitCoreHRPreHireTask() - _, _, err := moduleCli.CreateCorehrPreHireTransitTask(ctx, &lark.CreateCorehrPreHireTransitTaskReq{}) + _, _, err := moduleCli.TransitCoreHRPreHireTask(ctx, &lark.TransitCoreHRPreHireTaskReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPreHireWithdrawOnboarding(func(ctx context.Context, request *lark.CreateCorehrPreHireWithdrawOnboardingReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPreHireWithdrawOnboardingResp, *lark.Response, error) { + cli.Mock().MockCoreHRWithdrawCoreHRPreHireOnboarding(func(ctx context.Context, request *lark.WithdrawCoreHRPreHireOnboardingReq, options ...lark.MethodOptionFunc) (*lark.WithdrawCoreHRPreHireOnboardingResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPreHireWithdrawOnboarding() + defer cli.Mock().UnMockCoreHRWithdrawCoreHRPreHireOnboarding() - _, _, err := moduleCli.CreateCorehrPreHireWithdrawOnboarding(ctx, &lark.CreateCorehrPreHireWithdrawOnboardingReq{}) + _, _, err := moduleCli.WithdrawCoreHRPreHireOnboarding(ctx, &lark.WithdrawCoreHRPreHireOnboardingReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrProbationSubmit(func(ctx context.Context, request *lark.CreateCorehrProbationSubmitReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProbationSubmitResp, *lark.Response, error) { + cli.Mock().MockCoreHRSubmitCoreHRProbation(func(ctx context.Context, request *lark.SubmitCoreHRProbationReq, options ...lark.MethodOptionFunc) (*lark.SubmitCoreHRProbationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrProbationSubmit() + defer cli.Mock().UnMockCoreHRSubmitCoreHRProbation() - _, _, err := moduleCli.CreateCorehrProbationSubmit(ctx, &lark.CreateCorehrProbationSubmitReq{}) + _, _, err := moduleCli.SubmitCoreHRProbation(ctx, &lark.SubmitCoreHRProbationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrProbationWithdraw(func(ctx context.Context, request *lark.CreateCorehrProbationWithdrawReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProbationWithdrawResp, *lark.Response, error) { + cli.Mock().MockCoreHRWithdrawCoreHRProbation(func(ctx context.Context, request *lark.WithdrawCoreHRProbationReq, options ...lark.MethodOptionFunc) (*lark.WithdrawCoreHRProbationResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrProbationWithdraw() + defer cli.Mock().UnMockCoreHRWithdrawCoreHRProbation() - _, _, err := moduleCli.CreateCorehrProbationWithdraw(ctx, &lark.CreateCorehrProbationWithdrawReq{}) + _, _, err := moduleCli.WithdrawCoreHRProbation(ctx, &lark.WithdrawCoreHRProbationReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrProcessApprover(func(ctx context.Context, request *lark.UpdateCorehrProcessApproverReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessApproverResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRProcessApprover(func(ctx context.Context, request *lark.UpdateCoreHRProcessApproverReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProcessApproverResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrProcessApprover() + defer cli.Mock().UnMockCoreHRUpdateCoreHRProcessApprover() - _, _, err := moduleCli.UpdateCorehrProcessApprover(ctx, &lark.UpdateCorehrProcessApproverReq{}) + _, _, err := moduleCli.UpdateCoreHRProcessApprover(ctx, &lark.UpdateCoreHRProcessApproverReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrProcessExtra(func(ctx context.Context, request *lark.UpdateCorehrProcessExtraReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessExtraResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRProcessExtra(func(ctx context.Context, request *lark.UpdateCoreHRProcessExtraReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProcessExtraResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrProcessExtra() + defer cli.Mock().UnMockCoreHRUpdateCoreHRProcessExtra() - _, _, err := moduleCli.UpdateCorehrProcessExtra(ctx, &lark.UpdateCorehrProcessExtraReq{}) + _, _, err := moduleCli.UpdateCoreHRProcessExtra(ctx, &lark.UpdateCoreHRProcessExtraReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCorehrProcessFormVariableData(func(ctx context.Context, request *lark.GetCorehrProcessFormVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrProcessFormVariableDataResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRProcessFormVariableData(func(ctx context.Context, request *lark.GetCoreHRProcessFormVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessFormVariableDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCorehrProcessFormVariableData() + defer cli.Mock().UnMockCoreHRGetCoreHRProcessFormVariableData() - _, _, err := moduleCli.GetCorehrProcessFormVariableData(ctx, &lark.GetCorehrProcessFormVariableDataReq{}) + _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrProcessQueryFlowDataTemplate(func(ctx context.Context, request *lark.CreateCorehrProcessQueryFlowDataTemplateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProcessQueryFlowDataTemplateResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRProcessFlowDataTemplate(func(ctx context.Context, request *lark.QueryCoreHRProcessFlowDataTemplateReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRProcessFlowDataTemplateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrProcessQueryFlowDataTemplate() + defer cli.Mock().UnMockCoreHRQueryCoreHRProcessFlowDataTemplate() - _, _, err := moduleCli.CreateCorehrProcessQueryFlowDataTemplate(ctx, &lark.CreateCorehrProcessQueryFlowDataTemplateReq{}) + _, _, err := moduleCli.QueryCoreHRProcessFlowDataTemplate(ctx, &lark.QueryCoreHRProcessFlowDataTemplateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrProcessTransfer(func(ctx context.Context, request *lark.UpdateCorehrProcessTransferReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessTransferResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRProcessTransfer(func(ctx context.Context, request *lark.UpdateCoreHRProcessTransferReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProcessTransferResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrProcessTransfer() + defer cli.Mock().UnMockCoreHRUpdateCoreHRProcessTransfer() - _, _, err := moduleCli.UpdateCorehrProcessTransfer(ctx, &lark.UpdateCorehrProcessTransferReq{}) + _, _, err := moduleCli.UpdateCoreHRProcessTransfer(ctx, &lark.UpdateCoreHRProcessTransferReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCorehrProcessFlowVariableData(func(ctx context.Context, request *lark.GetCorehrProcessFlowVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrProcessFlowVariableDataResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRProcessFlowVariableData(func(ctx context.Context, request *lark.GetCoreHRProcessFlowVariableDataReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRProcessFlowVariableDataResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCorehrProcessFlowVariableData() + defer cli.Mock().UnMockCoreHRGetCoreHRProcessFlowVariableData() - _, _, err := moduleCli.GetCorehrProcessFlowVariableData(ctx, &lark.GetCorehrProcessFlowVariableDataReq{}) + _, _, err := moduleCli.GetCoreHRProcessFlowVariableData(ctx, &lark.GetCoreHRProcessFlowVariableDataReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrProcessRevoke(func(ctx context.Context, request *lark.UpdateCorehrProcessRevokeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessRevokeResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRProcessRevoke(func(ctx context.Context, request *lark.UpdateCoreHRProcessRevokeReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProcessRevokeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrProcessRevoke() + defer cli.Mock().UnMockCoreHRUpdateCoreHRProcessRevoke() - _, _, err := moduleCli.UpdateCorehrProcessRevoke(ctx, &lark.UpdateCorehrProcessRevokeReq{}) + _, _, err := moduleCli.UpdateCoreHRProcessRevoke(ctx, &lark.UpdateCoreHRProcessRevokeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrProcessStart(func(ctx context.Context, request *lark.CreateCorehrProcessStartReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrProcessStartResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRProcessStart(func(ctx context.Context, request *lark.CreateCoreHRProcessStartReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRProcessStartResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrProcessStart() + defer cli.Mock().UnMockCoreHRCreateCoreHRProcessStart() - _, _, err := moduleCli.CreateCorehrProcessStart(ctx, &lark.CreateCorehrProcessStartReq{}) + _, _, err := moduleCli.CreateCoreHRProcessStart(ctx, &lark.CreateCoreHRProcessStartReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrProcessWithdraw(func(ctx context.Context, request *lark.UpdateCorehrProcessWithdrawReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrProcessWithdrawResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRProcessWithdraw(func(ctx context.Context, request *lark.UpdateCoreHRProcessWithdrawReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRProcessWithdrawResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrProcessWithdraw() + defer cli.Mock().UnMockCoreHRUpdateCoreHRProcessWithdraw() - _, _, err := moduleCli.UpdateCorehrProcessWithdraw(ctx, &lark.UpdateCorehrProcessWithdrawReq{}) + _, _, err := moduleCli.UpdateCoreHRProcessWithdraw(ctx, &lark.UpdateCoreHRProcessWithdrawReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrReportDetailRowBatchdelete(func(ctx context.Context, request *lark.CreateCorehrReportDetailRowBatchdeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrReportDetailRowBatchdeleteResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchDeleteCoreHRReportDetailRow(func(ctx context.Context, request *lark.BatchDeleteCoreHRReportDetailRowReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteCoreHRReportDetailRowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrReportDetailRowBatchdelete() + defer cli.Mock().UnMockCoreHRBatchDeleteCoreHRReportDetailRow() - _, _, err := moduleCli.CreateCorehrReportDetailRowBatchdelete(ctx, &lark.CreateCorehrReportDetailRowBatchdeleteReq{}) + _, _, err := moduleCli.BatchDeleteCoreHRReportDetailRow(ctx, &lark.BatchDeleteCoreHRReportDetailRowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrReportDetailRowBatchsave(func(ctx context.Context, request *lark.CreateCorehrReportDetailRowBatchsaveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrReportDetailRowBatchsaveResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchSaveCoreHRReportDetailRow(func(ctx context.Context, request *lark.BatchSaveCoreHRReportDetailRowReq, options ...lark.MethodOptionFunc) (*lark.BatchSaveCoreHRReportDetailRowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrReportDetailRowBatchsave() + defer cli.Mock().UnMockCoreHRBatchSaveCoreHRReportDetailRow() - _, _, err := moduleCli.CreateCorehrReportDetailRowBatchsave(ctx, &lark.CreateCorehrReportDetailRowBatchsaveReq{}) + _, _, err := moduleCli.BatchSaveCoreHRReportDetailRow(ctx, &lark.BatchSaveCoreHRReportDetailRowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRDownloadCorehrSignatureFile(func(ctx context.Context, request *lark.DownloadCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadCorehrSignatureFileResp, *lark.Response, error) { + cli.Mock().MockCoreHRDownloadCoreHRSignatureFile(func(ctx context.Context, request *lark.DownloadCoreHRSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.DownloadCoreHRSignatureFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRDownloadCorehrSignatureFile() + defer cli.Mock().UnMockCoreHRDownloadCoreHRSignatureFile() - _, _, err := moduleCli.DownloadCorehrSignatureFile(ctx, &lark.DownloadCorehrSignatureFileReq{}) + _, _, err := moduleCli.DownloadCoreHRSignatureFile(ctx, &lark.DownloadCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrSignatureFile(func(ctx context.Context, request *lark.ListCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureFileResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRSignatureFile(func(ctx context.Context, request *lark.ListCoreHRSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRSignatureFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrSignatureFile() + defer cli.Mock().UnMockCoreHRListCoreHRSignatureFile() - _, _, err := moduleCli.ListCorehrSignatureFile(ctx, &lark.ListCorehrSignatureFileReq{}) + _, _, err := moduleCli.ListCoreHRSignatureFile(ctx, &lark.ListCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrSignatureFileByBizID(func(ctx context.Context, request *lark.ListCorehrSignatureFileByBizIDReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureFileByBizIDResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRSignatureFileByBizID(func(ctx context.Context, request *lark.ListCoreHRSignatureFileByBizIDReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRSignatureFileByBizIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrSignatureFileByBizID() + defer cli.Mock().UnMockCoreHRListCoreHRSignatureFileByBizID() - _, _, err := moduleCli.ListCorehrSignatureFileByBizID(ctx, &lark.ListCorehrSignatureFileByBizIDReq{}) + _, _, err := moduleCli.ListCoreHRSignatureFileByBizID(ctx, &lark.ListCoreHRSignatureFileByBizIDReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRQueryCorehrSignatureFile(func(ctx context.Context, request *lark.QueryCorehrSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.QueryCorehrSignatureFileResp, *lark.Response, error) { + cli.Mock().MockCoreHRQueryCoreHRSignatureFile(func(ctx context.Context, request *lark.QueryCoreHRSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.QueryCoreHRSignatureFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRQueryCorehrSignatureFile() + defer cli.Mock().UnMockCoreHRQueryCoreHRSignatureFile() - _, _, err := moduleCli.QueryCorehrSignatureFile(ctx, &lark.QueryCorehrSignatureFileReq{}) + _, _, err := moduleCli.QueryCoreHRSignatureFile(ctx, &lark.QueryCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrSignatureFileTerminate(func(ctx context.Context, request *lark.CreateCorehrSignatureFileTerminateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrSignatureFileTerminateResp, *lark.Response, error) { + cli.Mock().MockCoreHRTerminateCoreHRSignatureFile(func(ctx context.Context, request *lark.TerminateCoreHRSignatureFileReq, options ...lark.MethodOptionFunc) (*lark.TerminateCoreHRSignatureFileResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrSignatureFileTerminate() + defer cli.Mock().UnMockCoreHRTerminateCoreHRSignatureFile() - _, _, err := moduleCli.CreateCorehrSignatureFileTerminate(ctx, &lark.CreateCorehrSignatureFileTerminateReq{}) + _, _, err := moduleCli.TerminateCoreHRSignatureFile(ctx, &lark.TerminateCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrSignatureNodeByFileID(func(ctx context.Context, request *lark.ListCorehrSignatureNodeByFileIDReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureNodeByFileIDResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRSignatureNodeByFileID(func(ctx context.Context, request *lark.ListCoreHRSignatureNodeByFileIDReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRSignatureNodeByFileIDResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrSignatureNodeByFileID() + defer cli.Mock().UnMockCoreHRListCoreHRSignatureNodeByFileID() - _, _, err := moduleCli.ListCorehrSignatureNodeByFileID(ctx, &lark.ListCorehrSignatureNodeByFileIDReq{}) + _, _, err := moduleCli.ListCoreHRSignatureNodeByFileID(ctx, &lark.ListCoreHRSignatureNodeByFileIDReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRSearchCorehrSignatureTemplate(func(ctx context.Context, request *lark.SearchCorehrSignatureTemplateReq, options ...lark.MethodOptionFunc) (*lark.SearchCorehrSignatureTemplateResp, *lark.Response, error) { + cli.Mock().MockCoreHRSearchCoreHRSignatureTemplate(func(ctx context.Context, request *lark.SearchCoreHRSignatureTemplateReq, options ...lark.MethodOptionFunc) (*lark.SearchCoreHRSignatureTemplateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRSearchCorehrSignatureTemplate() + defer cli.Mock().UnMockCoreHRSearchCoreHRSignatureTemplate() - _, _, err := moduleCli.SearchCorehrSignatureTemplate(ctx, &lark.SearchCorehrSignatureTemplateReq{}) + _, _, err := moduleCli.SearchCoreHRSignatureTemplate(ctx, &lark.SearchCoreHRSignatureTemplateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrSignatureTemplateInfoWithThumbnail(func(ctx context.Context, request *lark.ListCorehrSignatureTemplateInfoWithThumbnailReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrSignatureTemplateInfoWithThumbnailResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail(func(ctx context.Context, request *lark.ListCoreHRSignatureTemplateInfoWithThumbnailReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRSignatureTemplateInfoWithThumbnailResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrSignatureTemplateInfoWithThumbnail() + defer cli.Mock().UnMockCoreHRListCoreHRSignatureTemplateInfoWithThumbnail() - _, _, err := moduleCli.ListCorehrSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCorehrSignatureTemplateInfoWithThumbnailReq{}) + _, _, err := moduleCli.ListCoreHRSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCoreHRSignatureTemplateInfoWithThumbnailReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRListCorehrWorkforcePlan(func(ctx context.Context, request *lark.ListCorehrWorkforcePlanReq, options ...lark.MethodOptionFunc) (*lark.ListCorehrWorkforcePlanResp, *lark.Response, error) { + cli.Mock().MockCoreHRListCoreHRWorkforcePlan(func(ctx context.Context, request *lark.ListCoreHRWorkforcePlanReq, options ...lark.MethodOptionFunc) (*lark.ListCoreHRWorkforcePlanResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRListCorehrWorkforcePlan() + defer cli.Mock().UnMockCoreHRListCoreHRWorkforcePlan() - _, _, err := moduleCli.ListCorehrWorkforcePlan(ctx, &lark.ListCorehrWorkforcePlanReq{}) + _, _, err := moduleCli.ListCoreHRWorkforcePlan(ctx, &lark.ListCoreHRWorkforcePlanReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchQueryCorehrWorkforcePlanDetail(func(ctx context.Context, request *lark.BatchQueryCorehrWorkforcePlanDetailReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCorehrWorkforcePlanDetailResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHRWorkforcePlanDetail(func(ctx context.Context, request *lark.BatchQueryCoreHRWorkforcePlanDetailReq, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRWorkforcePlanDetailResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchQueryCorehrWorkforcePlanDetail() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetail() - _, _, err := moduleCli.BatchQueryCorehrWorkforcePlanDetail(ctx, &lark.BatchQueryCorehrWorkforcePlanDetailReq{}) + _, _, err := moduleCli.BatchQueryCoreHRWorkforcePlanDetail(ctx, &lark.BatchQueryCoreHRWorkforcePlanDetailReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRBatchCorehrWorkforcePlanDetailV2(func(ctx context.Context, request *lark.BatchCorehrWorkforcePlanDetailV2Req, options ...lark.MethodOptionFunc) (*lark.BatchCorehrWorkforcePlanDetailV2Resp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2(func(ctx context.Context, request *lark.BatchQueryCoreHRWorkforcePlanDetailV2Req, options ...lark.MethodOptionFunc) (*lark.BatchQueryCoreHRWorkforcePlanDetailV2Resp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRBatchCorehrWorkforcePlanDetailV2() + defer cli.Mock().UnMockCoreHRBatchQueryCoreHRWorkforcePlanDetailV2() - _, _, err := moduleCli.BatchCorehrWorkforcePlanDetailV2(ctx, &lark.BatchCorehrWorkforcePlanDetailV2Req{}) + _, _, err := moduleCli.BatchQueryCoreHRWorkforcePlanDetailV2(ctx, &lark.BatchQueryCoreHRWorkforcePlanDetailV2Req{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete(func(ctx context.Context, request *lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow(func(ctx context.Context, request *lark.BatchDeleteCoreHRWorkforcePlanDetailRowReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteCoreHRWorkforcePlanDetailRowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchdelete() + defer cli.Mock().UnMockCoreHRBatchDeleteCoreHRWorkforcePlanDetailRow() - _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq{}) + _, _, err := moduleCli.BatchDeleteCoreHRWorkforcePlanDetailRow(ctx, &lark.BatchDeleteCoreHRWorkforcePlanDetailRowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave(func(ctx context.Context, request *lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrWorkforcePlanDetailRowBatchsaveResp, *lark.Response, error) { + cli.Mock().MockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow(func(ctx context.Context, request *lark.BatchSaveCoreHRWorkforcePlanDetailRowReq, options ...lark.MethodOptionFunc) (*lark.BatchSaveCoreHRWorkforcePlanDetailRowResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrWorkforcePlanDetailRowBatchsave() + defer cli.Mock().UnMockCoreHRBatchSaveCoreHRWorkforcePlanDetailRow() - _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchsave(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq{}) + _, _, err := moduleCli.BatchSaveCoreHRWorkforcePlanDetailRow(ctx, &lark.BatchSaveCoreHRWorkforcePlanDetailRowReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRAddCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.AddCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.AddCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + cli.Mock().MockCoreHRAddCoreHRAuthorizationRoleAssign(func(ctx context.Context, request *lark.AddCoreHRAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.AddCoreHRAuthorizationRoleAssignResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRAddCorehrAuthorizationRoleAssign() + defer cli.Mock().UnMockCoreHRAddCoreHRAuthorizationRoleAssign() - _, _, err := moduleCli.AddCorehrAuthorizationRoleAssign(ctx, &lark.AddCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.AddCoreHRAuthorizationRoleAssign(ctx, &lark.AddCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -3159,60 +3159,60 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRRemoveCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.RemoveCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.RemoveCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + cli.Mock().MockCoreHRRemoveCoreHRAuthorizationRoleAssign(func(ctx context.Context, request *lark.RemoveCoreHRAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.RemoveCoreHRAuthorizationRoleAssignResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRRemoveCorehrAuthorizationRoleAssign() + defer cli.Mock().UnMockCoreHRRemoveCoreHRAuthorizationRoleAssign() - _, _, err := moduleCli.RemoveCorehrAuthorizationRoleAssign(ctx, &lark.RemoveCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.RemoveCoreHRAuthorizationRoleAssign(ctx, &lark.RemoveCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrAuthorizationRoleAssign(func(ctx context.Context, request *lark.UpdateCorehrAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrAuthorizationRoleAssignResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRAuthorizationRoleAssign(func(ctx context.Context, request *lark.UpdateCoreHRAuthorizationRoleAssignReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRAuthorizationRoleAssignResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrAuthorizationRoleAssign() + defer cli.Mock().UnMockCoreHRUpdateCoreHRAuthorizationRoleAssign() - _, _, err := moduleCli.UpdateCorehrAuthorizationRoleAssign(ctx, &lark.UpdateCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.UpdateCoreHRAuthorizationRoleAssign(ctx, &lark.UpdateCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCommonDataIDConvert(func(ctx context.Context, request *lark.CreateCorehrCommonDataIDConvertReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCommonDataIDConvertResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCommonDataIDConvert(func(ctx context.Context, request *lark.CreateCoreHRCommonDataIDConvertReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCommonDataIDConvertResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCommonDataIDConvert() + defer cli.Mock().UnMockCoreHRCreateCoreHRCommonDataIDConvert() - _, _, err := moduleCli.CreateCorehrCommonDataIDConvert(ctx, &lark.CreateCorehrCommonDataIDConvertReq{}) + _, _, err := moduleCli.CreateCoreHRCommonDataIDConvert(ctx, &lark.CreateCoreHRCommonDataIDConvertReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRAddCorehrCommonDataMetaDataEnumOption(func(ctx context.Context, request *lark.AddCorehrCommonDataMetaDataEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.AddCorehrCommonDataMetaDataEnumOptionResp, *lark.Response, error) { + cli.Mock().MockCoreHRAddCoreHRCommonDataMetaDataEnumOption(func(ctx context.Context, request *lark.AddCoreHRCommonDataMetaDataEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.AddCoreHRCommonDataMetaDataEnumOptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRAddCorehrCommonDataMetaDataEnumOption() + defer cli.Mock().UnMockCoreHRAddCoreHRCommonDataMetaDataEnumOption() - _, _, err := moduleCli.AddCorehrCommonDataMetaDataEnumOption(ctx, &lark.AddCorehrCommonDataMetaDataEnumOptionReq{}) + _, _, err := moduleCli.AddCoreHRCommonDataMetaDataEnumOption(ctx, &lark.AddCoreHRCommonDataMetaDataEnumOptionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption(func(ctx context.Context, request *lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrCommonDataMetaDataEditEnumOptionResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption(func(ctx context.Context, request *lark.CreateCoreHRCommonDataMetaDataEditEnumOptionReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRCommonDataMetaDataEditEnumOptionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrCommonDataMetaDataEditEnumOption() + defer cli.Mock().UnMockCoreHRCreateCoreHRCommonDataMetaDataEditEnumOption() - _, _, err := moduleCli.CreateCorehrCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq{}) + _, _, err := moduleCli.CreateCoreHRCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCoreHRCommonDataMetaDataEditEnumOptionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -3231,60 +3231,60 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRGetCorehrLeaveCalendarByScope(func(ctx context.Context, request *lark.GetCorehrLeaveCalendarByScopeReq, options ...lark.MethodOptionFunc) (*lark.GetCorehrLeaveCalendarByScopeResp, *lark.Response, error) { + cli.Mock().MockCoreHRGetCoreHRLeaveCalendarByScope(func(ctx context.Context, request *lark.GetCoreHRLeaveCalendarByScopeReq, options ...lark.MethodOptionFunc) (*lark.GetCoreHRLeaveCalendarByScopeResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRGetCorehrLeaveCalendarByScope() + defer cli.Mock().UnMockCoreHRGetCoreHRLeaveCalendarByScope() - _, _, err := moduleCli.GetCorehrLeaveCalendarByScope(ctx, &lark.GetCorehrLeaveCalendarByScopeReq{}) + _, _, err := moduleCli.GetCoreHRLeaveCalendarByScope(ctx, &lark.GetCoreHRLeaveCalendarByScopeReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrLeaveWorkCalendar(func(ctx context.Context, request *lark.CreateCorehrLeaveWorkCalendarReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLeaveWorkCalendarResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRLeaveWorkCalendar(func(ctx context.Context, request *lark.CreateCoreHRLeaveWorkCalendarReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLeaveWorkCalendarResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrLeaveWorkCalendar() + defer cli.Mock().UnMockCoreHRCreateCoreHRLeaveWorkCalendar() - _, _, err := moduleCli.CreateCorehrLeaveWorkCalendar(ctx, &lark.CreateCorehrLeaveWorkCalendarReq{}) + _, _, err := moduleCli.CreateCoreHRLeaveWorkCalendar(ctx, &lark.CreateCoreHRLeaveWorkCalendarReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrLeaveWorkCalendarDate(func(ctx context.Context, request *lark.CreateCorehrLeaveWorkCalendarDateReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrLeaveWorkCalendarDateResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRLeaveWorkCalendarDate(func(ctx context.Context, request *lark.CreateCoreHRLeaveWorkCalendarDateReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRLeaveWorkCalendarDateResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrLeaveWorkCalendarDate() + defer cli.Mock().UnMockCoreHRCreateCoreHRLeaveWorkCalendarDate() - _, _, err := moduleCli.CreateCorehrLeaveWorkCalendarDate(ctx, &lark.CreateCorehrLeaveWorkCalendarDateReq{}) + _, _, err := moduleCli.CreateCoreHRLeaveWorkCalendarDate(ctx, &lark.CreateCoreHRLeaveWorkCalendarDateReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRCreateCorehrPerson(func(ctx context.Context, request *lark.CreateCorehrPersonReq, options ...lark.MethodOptionFunc) (*lark.CreateCorehrPersonResp, *lark.Response, error) { + cli.Mock().MockCoreHRCreateCoreHRPerson(func(ctx context.Context, request *lark.CreateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.CreateCoreHRPersonResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRCreateCorehrPerson() + defer cli.Mock().UnMockCoreHRCreateCoreHRPerson() - _, _, err := moduleCli.CreateCorehrPerson(ctx, &lark.CreateCorehrPersonReq{}) + _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockCoreHRUpdateCorehrPerson(func(ctx context.Context, request *lark.UpdateCorehrPersonReq, options ...lark.MethodOptionFunc) (*lark.UpdateCorehrPersonResp, *lark.Response, error) { + cli.Mock().MockCoreHRUpdateCoreHRPerson(func(ctx context.Context, request *lark.UpdateCoreHRPersonReq, options ...lark.MethodOptionFunc) (*lark.UpdateCoreHRPersonResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockCoreHRUpdateCorehrPerson() + defer cli.Mock().UnMockCoreHRUpdateCoreHRPerson() - _, _, err := moduleCli.UpdateCorehrPerson(ctx, &lark.UpdateCorehrPersonReq{}) + _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -4285,21 +4285,21 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCoreHrbpByEmployee(ctx, &lark.BatchGetCoreHrbpByEmployeeReq{}) + _, _, err := moduleCli.BatchGetCoreHRByEmployee(ctx, &lark.BatchGetCoreHRByEmployeeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHrbpByDepartment(ctx, &lark.GetCoreHrbpByDepartmentReq{}) + _, _, err := moduleCli.GetCoreHRByDepartment(ctx, &lark.GetCoreHRByDepartmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCoreHrbpList(ctx, &lark.GetCoreHrbpListReq{}) + _, _, err := moduleCli.GetCoreHRList(ctx, &lark.GetCoreHRListReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -4415,7 +4415,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCorehrApprovalGroups(ctx, &lark.GetCorehrApprovalGroupsReq{ + _, _, err := moduleCli.GetCoreHRApprovalGroups(ctx, &lark.GetCoreHRApprovalGroupsReq{ ProcessID: "x", }) as.NotNil(err) @@ -4424,126 +4424,126 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsDepartmentChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsDepartmentChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsDepartmentChangeListByIDsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsJobChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsJobChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsJobChangeListByIDsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCorehrApprovalGroupsPositionChangeListByIDsReq{}) + _, _, err := moduleCli.QueryCoreHRApprovalGroupsPositionChangeListByIDs(ctx, &lark.QueryCoreHRApprovalGroupsPositionChangeListByIDsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrApprover(ctx, &lark.ListCorehrApproverReq{}) + _, _, err := moduleCli.ListCoreHRApprover(ctx, &lark.ListCoreHRApproverReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCorehrBasicInfoLanguage(ctx, &lark.SearchCorehrBasicInfoLanguageReq{}) + _, _, err := moduleCli.SearchCoreHRBasicInfoLanguage(ctx, &lark.SearchCoreHRBasicInfoLanguageReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCorehrBasicInfoTimeZone(ctx, &lark.SearchCorehrBasicInfoTimeZoneReq{}) + _, _, err := moduleCli.SearchCoreHRBasicInfoTimeZone(ctx, &lark.SearchCoreHRBasicInfoTimeZoneReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCompanyActive(ctx, &lark.CreateCorehrCompanyActiveReq{}) + _, _, err := moduleCli.CreateCoreHRCompanyActive(ctx, &lark.CreateCoreHRCompanyActiveReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrCompanyMultiTimeline(ctx, &lark.QueryCorehrCompanyMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRCompanyMultiTimeline(ctx, &lark.QueryCoreHRCompanyMultiTimelineReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrCompanyRecentChange(ctx, &lark.QueryCorehrCompanyRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCompanyRecentChange(ctx, &lark.QueryCoreHRCompanyRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchQueryCorehrCostAllocation(ctx, &lark.BatchQueryCorehrCostAllocationReq{}) + _, _, err := moduleCli.BatchQueryCoreHRCostAllocation(ctx, &lark.BatchQueryCoreHRCostAllocationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCostAllocationVersion(ctx, &lark.CreateCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.CreateCoreHRCostAllocationVersion(ctx, &lark.CreateCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveCorehrCostAllocationVersion(ctx, &lark.RemoveCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.RemoveCoreHRCostAllocationVersion(ctx, &lark.RemoveCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrCostAllocationVersion(ctx, &lark.UpdateCorehrCostAllocationVersionReq{}) + _, _, err := moduleCli.UpdateCoreHRCostAllocationVersion(ctx, &lark.UpdateCoreHRCostAllocationVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrCostCenterRecentChange(ctx, &lark.QueryCorehrCostCenterRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCostCenterRecentChange(ctx, &lark.QueryCoreHRCostCenterRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCustomOrgActive(ctx, &lark.CreateCorehrCustomOrgActiveReq{}) + _, _, err := moduleCli.CreateCoreHRCustomOrgActive(ctx, &lark.CreateCoreHRCustomOrgActiveReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCustomOrg(ctx, &lark.CreateCorehrCustomOrgReq{}) + _, _, err := moduleCli.CreateCoreHRCustomOrg(ctx, &lark.CreateCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrCustomOrg(ctx, &lark.DeleteCorehrCustomOrgReq{}) + _, _, err := moduleCli.DeleteCoreHRCustomOrg(ctx, &lark.DeleteCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrCustomOrg(ctx, &lark.UpdateCorehrCustomOrgReq{ + _, _, err := moduleCli.UpdateCoreHRCustomOrg(ctx, &lark.UpdateCoreHRCustomOrgReq{ OrgID: "x", }) as.NotNil(err) @@ -4552,56 +4552,56 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrCustomOrg(ctx, &lark.QueryCorehrCustomOrgReq{}) + _, _, err := moduleCli.QueryCoreHRCustomOrg(ctx, &lark.QueryCoreHRCustomOrgReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrCustomOrgRecentChange(ctx, &lark.QueryCorehrCustomOrgRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRCustomOrgRecentChange(ctx, &lark.QueryCoreHRCustomOrgRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrCustomOrgRule(ctx, &lark.UpdateCorehrCustomOrgRuleReq{}) + _, _, err := moduleCli.UpdateCoreHRCustomOrgRule(ctx, &lark.UpdateCoreHRCustomOrgRuleReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchQueryCorehrDefaultCostCenter(ctx, &lark.BatchQueryCorehrDefaultCostCenterReq{}) + _, _, err := moduleCli.BatchQueryCoreHRDefaultCostCenter(ctx, &lark.BatchQueryCoreHRDefaultCostCenterReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrDefaultCostCenterVersion(ctx, &lark.CreateCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.CreateCoreHRDefaultCostCenterVersion(ctx, &lark.CreateCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveCorehrDefaultCostCenterVersion(ctx, &lark.RemoveCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.RemoveCoreHRDefaultCostCenterVersion(ctx, &lark.RemoveCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrDefaultCostCenterVersion(ctx, &lark.UpdateCorehrDefaultCostCenterVersionReq{}) + _, _, err := moduleCli.UpdateCoreHRDefaultCostCenterVersion(ctx, &lark.UpdateCoreHRDefaultCostCenterVersionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrDepartment(ctx, &lark.DeleteCorehrDepartmentReq{ + _, _, err := moduleCli.DeleteCoreHRDepartment(ctx, &lark.DeleteCoreHRDepartmentReq{ DepartmentID: "x", }) as.NotNil(err) @@ -4610,7 +4610,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrDepartment(ctx, &lark.UpdateCorehrDepartmentReq{ + _, _, err := moduleCli.UpdateCoreHRDepartment(ctx, &lark.UpdateCoreHRDepartmentReq{ DepartmentID: "x", }) as.NotNil(err) @@ -4626,14 +4626,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrDepartmentOperationLogs(ctx, &lark.QueryCorehrDepartmentOperationLogsReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentOperationLogs(ctx, &lark.QueryCoreHRDepartmentOperationLogsReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrDepartmentRecentChange(ctx, &lark.QueryCorehrDepartmentRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRDepartmentRecentChange(ctx, &lark.QueryCoreHRDepartmentRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -4647,14 +4647,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrDepartmentTree(ctx, &lark.CreateCorehrDepartmentTreeReq{}) + _, _, err := moduleCli.CreateCoreHRDepartmentTree(ctx, &lark.CreateCoreHRDepartmentTreeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCorehrDraft(ctx, &lark.GetCorehrDraftReq{ + _, _, err := moduleCli.GetCoreHRDraft(ctx, &lark.GetCoreHRDraftReq{ DraftID: "x", }) as.NotNil(err) @@ -4663,28 +4663,28 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrEmployee(ctx, &lark.CreateCorehrEmployeeReq{}) + _, _, err := moduleCli.CreateCoreHREmployee(ctx, &lark.CreateCoreHREmployeeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchQueryCorehrEmployeesAdditionalJob(ctx, &lark.BatchQueryCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.BatchQueryCoreHREmployeesAdditionalJob(ctx, &lark.BatchQueryCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrEmployeesAdditionalJob(ctx, &lark.CreateCorehrEmployeesAdditionalJobReq{}) + _, _, err := moduleCli.CreateCoreHREmployeesAdditionalJob(ctx, &lark.CreateCoreHREmployeesAdditionalJobReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrEmployeesAdditionalJob(ctx, &lark.DeleteCorehrEmployeesAdditionalJobReq{ + _, _, err := moduleCli.DeleteCoreHREmployeesAdditionalJob(ctx, &lark.DeleteCoreHREmployeesAdditionalJobReq{ AdditionalJobID: "x", }) as.NotNil(err) @@ -4693,7 +4693,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrEmployeesAdditionalJob(ctx, &lark.UpdateCorehrEmployeesAdditionalJobReq{ + _, _, err := moduleCli.UpdateCoreHREmployeesAdditionalJob(ctx, &lark.UpdateCoreHREmployeesAdditionalJobReq{ AdditionalJobID: "x", }) as.NotNil(err) @@ -4702,14 +4702,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrEmployeesInternationalAssignment(ctx, &lark.CreateCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.CreateCoreHREmployeesInternationalAssignment(ctx, &lark.CreateCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrEmployeesInternationalAssignment(ctx, &lark.DeleteCorehrEmployeesInternationalAssignmentReq{ + _, _, err := moduleCli.DeleteCoreHREmployeesInternationalAssignment(ctx, &lark.DeleteCoreHREmployeesInternationalAssignmentReq{ InternationalAssignmentID: "x", }) as.NotNil(err) @@ -4718,14 +4718,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrEmployeesInternationalAssignment(ctx, &lark.ListCorehrEmployeesInternationalAssignmentReq{}) + _, _, err := moduleCli.ListCoreHREmployeesInternationalAssignment(ctx, &lark.ListCoreHREmployeesInternationalAssignmentReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrEmployeesInternationalAssignment(ctx, &lark.UpdateCorehrEmployeesInternationalAssignmentReq{ + _, _, err := moduleCli.UpdateCoreHREmployeesInternationalAssignment(ctx, &lark.UpdateCoreHREmployeesInternationalAssignmentReq{ InternationalAssignmentID: "x", }) as.NotNil(err) @@ -4734,42 +4734,42 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCorehrEnum(ctx, &lark.SearchCorehrEnumReq{}) + _, _, err := moduleCli.SearchCoreHREnum(ctx, &lark.SearchCoreHREnumReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCorehrJob(ctx, &lark.BatchGetCorehrJobReq{}) + _, _, err := moduleCli.BatchGetCoreHRJob(ctx, &lark.BatchGetCoreHRJobReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobMultiTimeline(ctx, &lark.QueryCorehrJobMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRJobMultiTimeline(ctx, &lark.QueryCoreHRJobMultiTimelineReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobRecentChange(ctx, &lark.QueryCorehrJobRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobRecentChange(ctx, &lark.QueryCoreHRJobRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrJobChange(ctx, &lark.CreateCorehrJobChangeReq{}) + _, _, err := moduleCli.CreateCoreHRJobChange(ctx, &lark.CreateCoreHRJobChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrJobChangeRevoke(ctx, &lark.CreateCorehrJobChangeRevokeReq{ + _, _, err := moduleCli.RevokeCoreHRJobChange(ctx, &lark.RevokeCoreHRJobChangeReq{ JobChangeID: "x", }) as.NotNil(err) @@ -4778,28 +4778,28 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobFamilyMultiTimeline(ctx, &lark.QueryCorehrJobFamilyMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRJobFamilyMultiTimeline(ctx, &lark.QueryCoreHRJobFamilyMultiTimelineReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobFamilyRecentChange(ctx, &lark.QueryCorehrJobFamilyRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobFamilyRecentChange(ctx, &lark.QueryCoreHRJobFamilyRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrJobGrade(ctx, &lark.CreateCorehrJobGradeReq{}) + _, _, err := moduleCli.CreateCoreHRJobGrade(ctx, &lark.CreateCoreHRJobGradeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrJobGrade(ctx, &lark.DeleteCorehrJobGradeReq{ + _, _, err := moduleCli.DeleteCoreHRJobGrade(ctx, &lark.DeleteCoreHRJobGradeReq{ JobGradeID: "x", }) as.NotNil(err) @@ -4808,7 +4808,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrJobGrade(ctx, &lark.UpdateCorehrJobGradeReq{ + _, _, err := moduleCli.UpdateCoreHRJobGrade(ctx, &lark.UpdateCoreHRJobGradeReq{ JobGradeID: "x", }) as.NotNil(err) @@ -4824,21 +4824,21 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobGradeRecentChange(ctx, &lark.QueryCorehrJobGradeRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobGradeRecentChange(ctx, &lark.QueryCoreHRJobGradeRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrJobLevelRecentChange(ctx, &lark.QueryCorehrJobLevelRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRJobLevelRecentChange(ctx, &lark.QueryCoreHRJobLevelRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrLocationAddress(ctx, &lark.CreateCorehrLocationAddressReq{ + _, _, err := moduleCli.CreateCoreHRLocationAddress(ctx, &lark.CreateCoreHRLocationAddressReq{ LocationID: "x", }) as.NotNil(err) @@ -4847,7 +4847,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrLocationAddress(ctx, &lark.DeleteCorehrLocationAddressReq{ + _, _, err := moduleCli.DeleteCoreHRLocationAddress(ctx, &lark.DeleteCoreHRLocationAddressReq{ LocationID: "x", AddressID: "x", }) @@ -4857,7 +4857,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrLocationAddress(ctx, &lark.UpdateCorehrLocationAddressReq{ + _, _, err := moduleCli.UpdateCoreHRLocationAddress(ctx, &lark.UpdateCoreHRLocationAddressReq{ LocationID: "x", AddressID: "x", }) @@ -4867,14 +4867,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrLocationActive(ctx, &lark.CreateCorehrLocationActiveReq{}) + _, _, err := moduleCli.CreateCoreHRLocationActive(ctx, &lark.CreateCoreHRLocationActiveReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrLocation(ctx, &lark.UpdateCorehrLocationReq{ + _, _, err := moduleCli.UpdateCoreHRLocation(ctx, &lark.UpdateCoreHRLocationReq{ LocationID: "x", }) as.NotNil(err) @@ -4883,63 +4883,63 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrLocationMultiTimeline(ctx, &lark.QueryCorehrLocationMultiTimelineReq{}) + _, _, err := moduleCli.QueryCoreHRLocationMultiTimeline(ctx, &lark.QueryCoreHRLocationMultiTimelineReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrLocationRecentChange(ctx, &lark.QueryCorehrLocationRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRLocationRecentChange(ctx, &lark.QueryCoreHRLocationRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrOffboardingEdit(ctx, &lark.CreateCorehrOffboardingEditReq{}) + _, _, err := moduleCli.CreateCoreHROffboardingEdit(ctx, &lark.CreateCoreHROffboardingEditReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrOffboardingRevoke(ctx, &lark.CreateCorehrOffboardingRevokeReq{}) + _, _, err := moduleCli.RevokeCoreHROffboarding(ctx, &lark.RevokeCoreHROffboardingReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrOffboardingSubmitV2(ctx, &lark.CreateCorehrOffboardingSubmitV2Req{}) + _, _, err := moduleCli.SubmitCoreHROffboardingV2(ctx, &lark.SubmitCoreHROffboardingV2Req{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPathwayActive(ctx, &lark.CreateCorehrPathwayActiveReq{}) + _, _, err := moduleCli.CreateCoreHRPathwayActive(ctx, &lark.CreateCoreHRPathwayActiveReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchGetCorehrPathway(ctx, &lark.BatchGetCorehrPathwayReq{}) + _, _, err := moduleCli.BatchGetCoreHRPathway(ctx, &lark.BatchGetCoreHRPathwayReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPathway(ctx, &lark.CreateCorehrPathwayReq{}) + _, _, err := moduleCli.CreateCoreHRPathway(ctx, &lark.CreateCoreHRPathwayReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrPathway(ctx, &lark.DeleteCorehrPathwayReq{ + _, _, err := moduleCli.DeleteCoreHRPathway(ctx, &lark.DeleteCoreHRPathwayReq{ PathwayID: "x", }) as.NotNil(err) @@ -4948,7 +4948,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrPathway(ctx, &lark.UpdateCorehrPathwayReq{ + _, _, err := moduleCli.UpdateCoreHRPathway(ctx, &lark.UpdateCoreHRPathwayReq{ PathwayID: "x", }) as.NotNil(err) @@ -4957,28 +4957,28 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPositionActive(ctx, &lark.CreateCorehrPositionActiveReq{}) + _, _, err := moduleCli.CreateCoreHRPositionActive(ctx, &lark.CreateCoreHRPositionActiveReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPosition(ctx, &lark.CreateCorehrPositionReq{}) + _, _, err := moduleCli.CreateCoreHRPosition(ctx, &lark.CreateCoreHRPositionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPositionDelPosition(ctx, &lark.CreateCorehrPositionDelPositionReq{}) + _, _, err := moduleCli.DeleteCoreHRPosition(ctx, &lark.DeleteCoreHRPositionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrPosition(ctx, &lark.UpdateCorehrPositionReq{ + _, _, err := moduleCli.UpdateCoreHRPosition(ctx, &lark.UpdateCoreHRPositionReq{ PositionID: "x", }) as.NotNil(err) @@ -4987,21 +4987,21 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrPosition(ctx, &lark.QueryCorehrPositionReq{}) + _, _, err := moduleCli.QueryCoreHRPosition(ctx, &lark.QueryCoreHRPositionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrPositionRecentChange(ctx, &lark.QueryCorehrPositionRecentChangeReq{}) + _, _, err := moduleCli.QueryCoreHRPositionRecentChange(ctx, &lark.QueryCoreHRPositionRecentChangeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPreHireComplete(ctx, &lark.CreateCorehrPreHireCompleteReq{ + _, _, err := moduleCli.CompleteCoreHRPreHire(ctx, &lark.CompleteCoreHRPreHireReq{ PreHireID: "x", }) as.NotNil(err) @@ -5010,7 +5010,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DeleteCorehrPreHire(ctx, &lark.DeleteCorehrPreHireReq{ + _, _, err := moduleCli.DeleteCoreHRPreHire(ctx, &lark.DeleteCoreHRPreHireReq{ PreHireID: "x", }) as.NotNil(err) @@ -5019,7 +5019,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrPreHire(ctx, &lark.UpdateCorehrPreHireReq{ + _, _, err := moduleCli.UpdateCoreHRPreHire(ctx, &lark.UpdateCoreHRPreHireReq{ PreHireID: "x", }) as.NotNil(err) @@ -5028,14 +5028,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrPreHire(ctx, &lark.QueryCorehrPreHireReq{}) + _, _, err := moduleCli.QueryCoreHRPreHire(ctx, &lark.QueryCoreHRPreHireReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPreHireRestoreFlowInstance(ctx, &lark.CreateCorehrPreHireRestoreFlowInstanceReq{}) + _, _, err := moduleCli.RestoreCoreHRPreHireFlowInstance(ctx, &lark.RestoreCoreHRPreHireFlowInstanceReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -5049,14 +5049,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPreHireTransformOnboardingTask(ctx, &lark.CreateCorehrPreHireTransformOnboardingTaskReq{}) + _, _, err := moduleCli.TransformCoreHRPreHireOnboardingTask(ctx, &lark.TransformCoreHRPreHireOnboardingTaskReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPreHireTransitTask(ctx, &lark.CreateCorehrPreHireTransitTaskReq{ + _, _, err := moduleCli.TransitCoreHRPreHireTask(ctx, &lark.TransitCoreHRPreHireTaskReq{ PreHireID: "x", }) as.NotNil(err) @@ -5065,28 +5065,28 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPreHireWithdrawOnboarding(ctx, &lark.CreateCorehrPreHireWithdrawOnboardingReq{}) + _, _, err := moduleCli.WithdrawCoreHRPreHireOnboarding(ctx, &lark.WithdrawCoreHRPreHireOnboardingReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrProbationSubmit(ctx, &lark.CreateCorehrProbationSubmitReq{}) + _, _, err := moduleCli.SubmitCoreHRProbation(ctx, &lark.SubmitCoreHRProbationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrProbationWithdraw(ctx, &lark.CreateCorehrProbationWithdrawReq{}) + _, _, err := moduleCli.WithdrawCoreHRProbation(ctx, &lark.WithdrawCoreHRProbationReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrProcessApprover(ctx, &lark.UpdateCorehrProcessApproverReq{ + _, _, err := moduleCli.UpdateCoreHRProcessApprover(ctx, &lark.UpdateCoreHRProcessApproverReq{ ProcessID: "x", ApproverID: "x", }) @@ -5096,7 +5096,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrProcessExtra(ctx, &lark.UpdateCorehrProcessExtraReq{ + _, _, err := moduleCli.UpdateCoreHRProcessExtra(ctx, &lark.UpdateCoreHRProcessExtraReq{ ProcessID: "x", }) as.NotNil(err) @@ -5105,7 +5105,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCorehrProcessFormVariableData(ctx, &lark.GetCorehrProcessFormVariableDataReq{ + _, _, err := moduleCli.GetCoreHRProcessFormVariableData(ctx, &lark.GetCoreHRProcessFormVariableDataReq{ ProcessID: "x", }) as.NotNil(err) @@ -5114,14 +5114,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrProcessQueryFlowDataTemplate(ctx, &lark.CreateCorehrProcessQueryFlowDataTemplateReq{}) + _, _, err := moduleCli.QueryCoreHRProcessFlowDataTemplate(ctx, &lark.QueryCoreHRProcessFlowDataTemplateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrProcessTransfer(ctx, &lark.UpdateCorehrProcessTransferReq{ + _, _, err := moduleCli.UpdateCoreHRProcessTransfer(ctx, &lark.UpdateCoreHRProcessTransferReq{ ProcessID: "x", }) as.NotNil(err) @@ -5130,7 +5130,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCorehrProcessFlowVariableData(ctx, &lark.GetCorehrProcessFlowVariableDataReq{ + _, _, err := moduleCli.GetCoreHRProcessFlowVariableData(ctx, &lark.GetCoreHRProcessFlowVariableDataReq{ ProcessID: "x", }) as.NotNil(err) @@ -5139,7 +5139,7 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrProcessRevoke(ctx, &lark.UpdateCorehrProcessRevokeReq{ + _, _, err := moduleCli.UpdateCoreHRProcessRevoke(ctx, &lark.UpdateCoreHRProcessRevokeReq{ ProcessID: "x", }) as.NotNil(err) @@ -5148,14 +5148,14 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrProcessStart(ctx, &lark.CreateCorehrProcessStartReq{}) + _, _, err := moduleCli.CreateCoreHRProcessStart(ctx, &lark.CreateCoreHRProcessStartReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrProcessWithdraw(ctx, &lark.UpdateCorehrProcessWithdrawReq{ + _, _, err := moduleCli.UpdateCoreHRProcessWithdraw(ctx, &lark.UpdateCoreHRProcessWithdrawReq{ ProcessID: "x", }) as.NotNil(err) @@ -5164,21 +5164,21 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrReportDetailRowBatchdelete(ctx, &lark.CreateCorehrReportDetailRowBatchdeleteReq{}) + _, _, err := moduleCli.BatchDeleteCoreHRReportDetailRow(ctx, &lark.BatchDeleteCoreHRReportDetailRowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrReportDetailRowBatchsave(ctx, &lark.CreateCorehrReportDetailRowBatchsaveReq{}) + _, _, err := moduleCli.BatchSaveCoreHRReportDetailRow(ctx, &lark.BatchSaveCoreHRReportDetailRowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.DownloadCorehrSignatureFile(ctx, &lark.DownloadCorehrSignatureFileReq{ + _, _, err := moduleCli.DownloadCoreHRSignatureFile(ctx, &lark.DownloadCoreHRSignatureFileReq{ SignatureFileID: "x", }) as.NotNil(err) @@ -5187,91 +5187,91 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrSignatureFile(ctx, &lark.ListCorehrSignatureFileReq{}) + _, _, err := moduleCli.ListCoreHRSignatureFile(ctx, &lark.ListCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrSignatureFileByBizID(ctx, &lark.ListCorehrSignatureFileByBizIDReq{}) + _, _, err := moduleCli.ListCoreHRSignatureFileByBizID(ctx, &lark.ListCoreHRSignatureFileByBizIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.QueryCorehrSignatureFile(ctx, &lark.QueryCorehrSignatureFileReq{}) + _, _, err := moduleCli.QueryCoreHRSignatureFile(ctx, &lark.QueryCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrSignatureFileTerminate(ctx, &lark.CreateCorehrSignatureFileTerminateReq{}) + _, _, err := moduleCli.TerminateCoreHRSignatureFile(ctx, &lark.TerminateCoreHRSignatureFileReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrSignatureNodeByFileID(ctx, &lark.ListCorehrSignatureNodeByFileIDReq{}) + _, _, err := moduleCli.ListCoreHRSignatureNodeByFileID(ctx, &lark.ListCoreHRSignatureNodeByFileIDReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchCorehrSignatureTemplate(ctx, &lark.SearchCorehrSignatureTemplateReq{}) + _, _, err := moduleCli.SearchCoreHRSignatureTemplate(ctx, &lark.SearchCoreHRSignatureTemplateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCorehrSignatureTemplateInfoWithThumbnailReq{}) + _, _, err := moduleCli.ListCoreHRSignatureTemplateInfoWithThumbnail(ctx, &lark.ListCoreHRSignatureTemplateInfoWithThumbnailReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.ListCorehrWorkforcePlan(ctx, &lark.ListCorehrWorkforcePlanReq{}) + _, _, err := moduleCli.ListCoreHRWorkforcePlan(ctx, &lark.ListCoreHRWorkforcePlanReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchQueryCorehrWorkforcePlanDetail(ctx, &lark.BatchQueryCorehrWorkforcePlanDetailReq{}) + _, _, err := moduleCli.BatchQueryCoreHRWorkforcePlanDetail(ctx, &lark.BatchQueryCoreHRWorkforcePlanDetailReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.BatchCorehrWorkforcePlanDetailV2(ctx, &lark.BatchCorehrWorkforcePlanDetailV2Req{}) + _, _, err := moduleCli.BatchQueryCoreHRWorkforcePlanDetailV2(ctx, &lark.BatchQueryCoreHRWorkforcePlanDetailV2Req{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchdelete(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchdeleteReq{}) + _, _, err := moduleCli.BatchDeleteCoreHRWorkforcePlanDetailRow(ctx, &lark.BatchDeleteCoreHRWorkforcePlanDetailRowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrWorkforcePlanDetailRowBatchsave(ctx, &lark.CreateCorehrWorkforcePlanDetailRowBatchsaveReq{}) + _, _, err := moduleCli.BatchSaveCoreHRWorkforcePlanDetailRow(ctx, &lark.BatchSaveCoreHRWorkforcePlanDetailRowReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddCorehrAuthorizationRoleAssign(ctx, &lark.AddCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.AddCoreHRAuthorizationRoleAssign(ctx, &lark.AddCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -5292,35 +5292,35 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.RemoveCorehrAuthorizationRoleAssign(ctx, &lark.RemoveCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.RemoveCoreHRAuthorizationRoleAssign(ctx, &lark.RemoveCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrAuthorizationRoleAssign(ctx, &lark.UpdateCorehrAuthorizationRoleAssignReq{}) + _, _, err := moduleCli.UpdateCoreHRAuthorizationRoleAssign(ctx, &lark.UpdateCoreHRAuthorizationRoleAssignReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCommonDataIDConvert(ctx, &lark.CreateCorehrCommonDataIDConvertReq{}) + _, _, err := moduleCli.CreateCoreHRCommonDataIDConvert(ctx, &lark.CreateCoreHRCommonDataIDConvertReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.AddCorehrCommonDataMetaDataEnumOption(ctx, &lark.AddCorehrCommonDataMetaDataEnumOptionReq{}) + _, _, err := moduleCli.AddCoreHRCommonDataMetaDataEnumOption(ctx, &lark.AddCoreHRCommonDataMetaDataEnumOptionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCorehrCommonDataMetaDataEditEnumOptionReq{}) + _, _, err := moduleCli.CreateCoreHRCommonDataMetaDataEditEnumOption(ctx, &lark.CreateCoreHRCommonDataMetaDataEditEnumOptionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) @@ -5334,35 +5334,35 @@ func Test_CoreHR_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.GetCorehrLeaveCalendarByScope(ctx, &lark.GetCorehrLeaveCalendarByScopeReq{}) + _, _, err := moduleCli.GetCoreHRLeaveCalendarByScope(ctx, &lark.GetCoreHRLeaveCalendarByScopeReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrLeaveWorkCalendar(ctx, &lark.CreateCorehrLeaveWorkCalendarReq{}) + _, _, err := moduleCli.CreateCoreHRLeaveWorkCalendar(ctx, &lark.CreateCoreHRLeaveWorkCalendarReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrLeaveWorkCalendarDate(ctx, &lark.CreateCorehrLeaveWorkCalendarDateReq{}) + _, _, err := moduleCli.CreateCoreHRLeaveWorkCalendarDate(ctx, &lark.CreateCoreHRLeaveWorkCalendarDateReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateCorehrPerson(ctx, &lark.CreateCorehrPersonReq{}) + _, _, err := moduleCli.CreateCoreHRPerson(ctx, &lark.CreateCoreHRPersonReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.UpdateCorehrPerson(ctx, &lark.UpdateCorehrPersonReq{ + _, _, err := moduleCli.UpdateCoreHRPerson(ctx, &lark.UpdateCoreHRPersonReq{ PersonID: "x", }) as.NotNil(err) diff --git a/test/docs_sample_test.go b/test/docs_sample_test.go deleted file mode 100644 index fdb43584..00000000 --- a/test/docs_sample_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_Docs_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - - t.Run("", func(t *testing.T) { - - cli.Mock().MockDocsGetDocsContent(func(ctx context.Context, request *lark.GetDocsContentReq, options ...lark.MethodOptionFunc) (*lark.GetDocsContentResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockDocsGetDocsContent() - - _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.Drive - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -} diff --git a/test/drive_sample_test.go b/test/drive_sample_test.go index f16fe0a5..1aed21fb 100644 --- a/test/drive_sample_test.go +++ b/test/drive_sample_test.go @@ -1981,6 +1981,78 @@ func Test_Drive_Sample_Failed(t *testing.T) { as.Equal(err.Error(), "mock-failed") }) + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateBaseAppRole(func(ctx context.Context, request *lark.CreateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.CreateBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateBaseAppRole() + + _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveListBaseAppRole(func(ctx context.Context, request *lark.ListBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.ListBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveListBaseAppRole() + + _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateBaseAppRole(func(ctx context.Context, request *lark.UpdateBaseAppRoleReq, options ...lark.MethodOptionFunc) (*lark.UpdateBaseAppRoleResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateBaseAppRole() + + _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateCcmDocsDefaultDocsApiMeta(func(ctx context.Context, request *lark.CreateCcmDocsDefaultDocsApiMetaReq, options ...lark.MethodOptionFunc) (*lark.CreateCcmDocsDefaultDocsApiMetaResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateCcmDocsDefaultDocsApiMeta() + + _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateBoardWhiteboardNode(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodeReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateBoardWhiteboardNode() + + _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveCreateBoardWhiteboardNodePlantuml(func(ctx context.Context, request *lark.CreateBoardWhiteboardNodePlantumlReq, options ...lark.MethodOptionFunc) (*lark.CreateBoardWhiteboardNodePlantumlResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveCreateBoardWhiteboardNodePlantuml() + + _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + t.Run("", func(t *testing.T) { cli.Mock().MockDriveGetWhiteboardNodeList(func(ctx context.Context, request *lark.GetWhiteboardNodeListReq, options ...lark.MethodOptionFunc) (*lark.GetWhiteboardNodeListResp, *lark.Response, error) { @@ -1993,6 +2065,54 @@ func Test_Drive_Sample_Failed(t *testing.T) { as.Equal(err.Error(), "mock-failed") }) + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveDownloadBoardWhiteboardAsImage(func(ctx context.Context, request *lark.DownloadBoardWhiteboardAsImageReq, options ...lark.MethodOptionFunc) (*lark.DownloadBoardWhiteboardAsImageResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveDownloadBoardWhiteboardAsImage() + + _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetBoardWhiteboardTheme(func(ctx context.Context, request *lark.GetBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.GetBoardWhiteboardThemeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetBoardWhiteboardTheme() + + _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveUpdateBoardWhiteboardTheme(func(ctx context.Context, request *lark.UpdateBoardWhiteboardThemeReq, options ...lark.MethodOptionFunc) (*lark.UpdateBoardWhiteboardThemeResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveUpdateBoardWhiteboardTheme() + + _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockDriveGetDocsContent(func(ctx context.Context, request *lark.GetDocsContentReq, options ...lark.MethodOptionFunc) (*lark.GetDocsContentResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockDriveGetDocsContent() + + _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + t.Run("", func(t *testing.T) { cli.Mock().MockDriveBatchDeleteDocxChatAnnouncementBlockChildren(func(ctx context.Context, request *lark.BatchDeleteDocxChatAnnouncementBlockChildrenReq, options ...lark.MethodOptionFunc) (*lark.BatchDeleteDocxChatAnnouncementBlockChildrenResp, *lark.Response, error) { @@ -3564,6 +3684,59 @@ func Test_Drive_Sample_Failed(t *testing.T) { as.Equal("mock-http-failed", err.Error()) }) + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBaseAppRole(ctx, &lark.CreateBaseAppRoleReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListBaseAppRole(ctx, &lark.ListBaseAppRoleReq{ + AppToken: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateBaseAppRole(ctx, &lark.UpdateBaseAppRoleReq{ + AppToken: "x", + RoleID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateCcmDocsDefaultDocsApiMeta(ctx, &lark.CreateCcmDocsDefaultDocsApiMetaReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBoardWhiteboardNode(ctx, &lark.CreateBoardWhiteboardNodeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateBoardWhiteboardNodePlantuml(ctx, &lark.CreateBoardWhiteboardNodePlantumlReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + t.Run("", func(t *testing.T) { _, _, err := moduleCli.GetWhiteboardNodeList(ctx, &lark.GetWhiteboardNodeListReq{ @@ -3573,6 +3746,40 @@ func Test_Drive_Sample_Failed(t *testing.T) { as.Equal("mock-http-failed", err.Error()) }) + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DownloadBoardWhiteboardAsImage(ctx, &lark.DownloadBoardWhiteboardAsImageReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetBoardWhiteboardTheme(ctx, &lark.GetBoardWhiteboardThemeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateBoardWhiteboardTheme(ctx, &lark.UpdateBoardWhiteboardThemeReq{ + WhiteboardID: "x", + }) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetDocsContent(ctx, &lark.GetDocsContentReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + t.Run("", func(t *testing.T) { _, _, err := moduleCli.BatchDeleteDocxChatAnnouncementBlockChildren(ctx, &lark.BatchDeleteDocxChatAnnouncementBlockChildrenReq{ diff --git a/test/hire_sample_test.go b/test/hire_sample_test.go index 8a95b2c1..28399111 100644 --- a/test/hire_sample_test.go +++ b/test/hire_sample_test.go @@ -1035,12 +1035,12 @@ func Test_Hire_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockHireCreateHireApplicationCancelOnboard(func(ctx context.Context, request *lark.CreateHireApplicationCancelOnboardReq, options ...lark.MethodOptionFunc) (*lark.CreateHireApplicationCancelOnboardResp, *lark.Response, error) { + cli.Mock().MockHireCancelHireApplicationOnboard(func(ctx context.Context, request *lark.CancelHireApplicationOnboardReq, options ...lark.MethodOptionFunc) (*lark.CancelHireApplicationOnboardResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockHireCreateHireApplicationCancelOnboard() + defer cli.Mock().UnMockHireCancelHireApplicationOnboard() - _, _, err := moduleCli.CreateHireApplicationCancelOnboard(ctx, &lark.CreateHireApplicationCancelOnboardReq{}) + _, _, err := moduleCli.CancelHireApplicationOnboard(ctx, &lark.CancelHireApplicationOnboardReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -1839,24 +1839,24 @@ func Test_Hire_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockHireCreateHireTalentCombinedCreate(func(ctx context.Context, request *lark.CreateHireTalentCombinedCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentCombinedCreateResp, *lark.Response, error) { + cli.Mock().MockHireCreateHireTalentCombined(func(ctx context.Context, request *lark.CreateHireTalentCombinedReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentCombinedResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockHireCreateHireTalentCombinedCreate() + defer cli.Mock().UnMockHireCreateHireTalentCombined() - _, _, err := moduleCli.CreateHireTalentCombinedCreate(ctx, &lark.CreateHireTalentCombinedCreateReq{}) + _, _, err := moduleCli.CreateHireTalentCombined(ctx, &lark.CreateHireTalentCombinedReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) t.Run("", func(t *testing.T) { - cli.Mock().MockHireCreateHireTalentCombinedUpdate(func(ctx context.Context, request *lark.CreateHireTalentCombinedUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateHireTalentCombinedUpdateResp, *lark.Response, error) { + cli.Mock().MockHireUpdateHireTalentCombined(func(ctx context.Context, request *lark.UpdateHireTalentCombinedReq, options ...lark.MethodOptionFunc) (*lark.UpdateHireTalentCombinedResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockHireCreateHireTalentCombinedUpdate() + defer cli.Mock().UnMockHireUpdateHireTalentCombined() - _, _, err := moduleCli.CreateHireTalentCombinedUpdate(ctx, &lark.CreateHireTalentCombinedUpdateReq{}) + _, _, err := moduleCli.UpdateHireTalentCombined(ctx, &lark.UpdateHireTalentCombinedReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -2875,7 +2875,7 @@ func Test_Hire_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireApplicationCancelOnboard(ctx, &lark.CreateHireApplicationCancelOnboardReq{ + _, _, err := moduleCli.CancelHireApplicationOnboard(ctx, &lark.CancelHireApplicationOnboardReq{ ApplicationID: "x", }) as.NotNil(err) @@ -3396,14 +3396,14 @@ func Test_Hire_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireTalentCombinedCreate(ctx, &lark.CreateHireTalentCombinedCreateReq{}) + _, _, err := moduleCli.CreateHireTalentCombined(ctx, &lark.CreateHireTalentCombinedReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateHireTalentCombinedUpdate(ctx, &lark.CreateHireTalentCombinedUpdateReq{}) + _, _, err := moduleCli.UpdateHireTalentCombined(ctx, &lark.UpdateHireTalentCombinedReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/mail_sample_test.go b/test/mail_sample_test.go index 68b9e56a..3aba5494 100644 --- a/test/mail_sample_test.go +++ b/test/mail_sample_test.go @@ -783,12 +783,12 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxMessageSend(func(ctx context.Context, request *lark.CreateMailUserMailboxMessageSendReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxMessageSendResp, *lark.Response, error) { + cli.Mock().MockMailSendMailUserMailboxMessage(func(ctx context.Context, request *lark.SendMailUserMailboxMessageReq, options ...lark.MethodOptionFunc) (*lark.SendMailUserMailboxMessageResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxMessageSend() + defer cli.Mock().UnMockMailSendMailUserMailboxMessage() - _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{}) + _, _, err := moduleCli.SendMailUserMailboxMessage(ctx, &lark.SendMailUserMailboxMessageReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -831,12 +831,12 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockMailCreateMailUserMailboxRuleReorder(func(ctx context.Context, request *lark.CreateMailUserMailboxRuleReorderReq, options ...lark.MethodOptionFunc) (*lark.CreateMailUserMailboxRuleReorderResp, *lark.Response, error) { + cli.Mock().MockMailReorderMailUserMailboxRule(func(ctx context.Context, request *lark.ReorderMailUserMailboxRuleReq, options ...lark.MethodOptionFunc) (*lark.ReorderMailUserMailboxRuleResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockMailCreateMailUserMailboxRuleReorder() + defer cli.Mock().UnMockMailReorderMailUserMailboxRule() - _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{}) + _, _, err := moduleCli.ReorderMailUserMailboxRule(ctx, &lark.ReorderMailUserMailboxRuleReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -1418,7 +1418,7 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxMessageSend(ctx, &lark.CreateMailUserMailboxMessageSendReq{ + _, _, err := moduleCli.SendMailUserMailboxMessage(ctx, &lark.SendMailUserMailboxMessageReq{ UserMailboxID: "x", }) as.NotNil(err) @@ -1455,7 +1455,7 @@ func Test_Mail_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreateMailUserMailboxRuleReorder(ctx, &lark.CreateMailUserMailboxRuleReorderReq{ + _, _, err := moduleCli.ReorderMailUserMailboxRule(ctx, &lark.ReorderMailUserMailboxRuleReq{ UserMailboxID: "x", }) as.NotNil(err) diff --git a/test/meetingroom_sample_test.go b/test/meetingroom_sample_test.go deleted file mode 100644 index aa280a5c..00000000 --- a/test/meetingroom_sample_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_MeetingRoom_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.VC - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - - t.Run("", func(t *testing.T) { - - cli.Mock().MockMeetingRoomGetMeetingRoomCustomization(func(ctx context.Context, request *lark.GetMeetingRoomCustomizationReq, options ...lark.MethodOptionFunc) (*lark.GetMeetingRoomCustomizationResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockMeetingRoomGetMeetingRoomCustomization() - - _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetMeetingRoomCustomization(ctx, &lark.GetMeetingRoomCustomizationReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -} diff --git a/test/passport_sample_test.go b/test/passport_sample_test.go index a5e6d060..a6ee7c30 100644 --- a/test/passport_sample_test.go +++ b/test/passport_sample_test.go @@ -63,12 +63,12 @@ func Test_Passport_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockPassportCreatePassportSessionLogout(func(ctx context.Context, request *lark.CreatePassportSessionLogoutReq, options ...lark.MethodOptionFunc) (*lark.CreatePassportSessionLogoutResp, *lark.Response, error) { + cli.Mock().MockPassportLogoutPassportSession(func(ctx context.Context, request *lark.LogoutPassportSessionReq, options ...lark.MethodOptionFunc) (*lark.LogoutPassportSessionResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockPassportCreatePassportSessionLogout() + defer cli.Mock().UnMockPassportLogoutPassportSession() - _, _, err := moduleCli.CreatePassportSessionLogout(ctx, &lark.CreatePassportSessionLogoutReq{}) + _, _, err := moduleCli.LogoutPassportSession(ctx, &lark.LogoutPassportSessionReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -91,7 +91,7 @@ func Test_Passport_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.CreatePassportSessionLogout(ctx, &lark.CreatePassportSessionLogoutReq{}) + _, _, err := moduleCli.LogoutPassportSession(ctx, &lark.LogoutPassportSessionReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/search_sample_test.go b/test/search_sample_test.go index 3f1e2fbc..ad9f4e5c 100644 --- a/test/search_sample_test.go +++ b/test/search_sample_test.go @@ -231,12 +231,12 @@ func Test_Search_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - cli.Mock().MockSearchSearchSearchDocWiki(func(ctx context.Context, request *lark.SearchSearchDocWikiReq, options ...lark.MethodOptionFunc) (*lark.SearchSearchDocWikiResp, *lark.Response, error) { + cli.Mock().MockSearchSearchDocWiki(func(ctx context.Context, request *lark.SearchDocWikiReq, options ...lark.MethodOptionFunc) (*lark.SearchDocWikiResp, *lark.Response, error) { return nil, nil, fmt.Errorf("mock-failed") }) - defer cli.Mock().UnMockSearchSearchSearchDocWiki() + defer cli.Mock().UnMockSearchSearchDocWiki() - _, _, err := moduleCli.SearchSearchDocWiki(ctx, &lark.SearchSearchDocWikiReq{}) + _, _, err := moduleCli.SearchDocWiki(ctx, &lark.SearchDocWikiReq{}) as.NotNil(err) as.Equal(err.Error(), "mock-failed") }) @@ -379,7 +379,7 @@ func Test_Search_Sample_Failed(t *testing.T) { t.Run("", func(t *testing.T) { - _, _, err := moduleCli.SearchSearchDocWiki(ctx, &lark.SearchSearchDocWikiReq{}) + _, _, err := moduleCli.SearchDocWiki(ctx, &lark.SearchDocWikiReq{}) as.NotNil(err) as.Equal("mock-http-failed", err.Error()) }) diff --git a/test/vc_sample_test.go b/test/vc_sample_test.go index 8119993c..712ad704 100644 --- a/test/vc_sample_test.go +++ b/test/vc_sample_test.go @@ -721,6 +721,174 @@ func Test_VC_Sample_Failed(t *testing.T) { as.Equal(err.Error(), "mock-failed") }) + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCListVCMeetingDefaultRoom(func(ctx context.Context, request *lark.ListVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCListVCMeetingDefaultRoom() + + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCCreateVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCCreateVCMeetingDefaultBuilding() + + _, _, err := moduleCli.CreateVCMeetingDefaultBuilding(ctx, &lark.CreateVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingDefaultRoomBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingDefaultRoomBatchGet() + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.UpdateVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCMeetingDefaultBuildingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCMeetingDefaultBuilding() + + _, _, err := moduleCli.UpdateVCMeetingDefaultBuilding(ctx, &lark.UpdateVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCCreateVCMeetingDefaultRoom(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCCreateVCMeetingDefaultRoom() + + _, _, err := moduleCli.CreateVCMeetingDefaultRoom(ctx, &lark.CreateVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCUpdateVCMeetingDefaultRoom(func(ctx context.Context, request *lark.UpdateVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.UpdateVCMeetingDefaultRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCUpdateVCMeetingDefaultRoom() + + _, _, err := moduleCli.UpdateVCMeetingDefaultRoom(ctx, &lark.UpdateVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCDeleteVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.DeleteVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCMeetingDefaultBuildingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDeleteVCMeetingDefaultBuilding() + + _, _, err := moduleCli.DeleteVCMeetingDefaultBuilding(ctx, &lark.DeleteVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCListVCMeetingDefaultCountry(func(ctx context.Context, request *lark.ListVCMeetingDefaultCountryReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultCountryResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCListVCMeetingDefaultCountry() + + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingDefaultBuildingBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingDefaultBuildingBatchGetID() + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCListVCMeetingDefaultDistrict(func(ctx context.Context, request *lark.ListVCMeetingDefaultDistrictReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultDistrictResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCListVCMeetingDefaultDistrict() + + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCDeleteVCMeetingDefaultRoom(func(ctx context.Context, request *lark.DeleteVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.DeleteVCMeetingDefaultRoomResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCDeleteVCMeetingDefaultRoom() + + _, _, err := moduleCli.DeleteVCMeetingDefaultRoom(ctx, &lark.DeleteVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingDefaultRoomBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetIDResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingDefaultRoomBatchGetID() + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCListVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.ListVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultBuildingResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCListVCMeetingDefaultBuilding() + + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + + t.Run("", func(t *testing.T) { + + cli.Mock().MockVCGetVCMeetingDefaultBuildingBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetResp, *lark.Response, error) { + return nil, nil, fmt.Errorf("mock-failed") + }) + defer cli.Mock().UnMockVCGetVCMeetingDefaultBuildingBatchGet() + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + as.NotNil(err) + as.Equal(err.Error(), "mock-failed") + }) + }) t.Run("response is failed (mock http)", func(t *testing.T) { @@ -1174,5 +1342,103 @@ func Test_VC_Sample_Failed(t *testing.T) { as.Equal("mock-http-failed", err.Error()) }) + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultBuilding(ctx, &lark.CreateVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCMeetingDefaultBuilding(ctx, &lark.UpdateVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.CreateVCMeetingDefaultRoom(ctx, &lark.CreateVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.UpdateVCMeetingDefaultRoom(ctx, &lark.UpdateVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteVCMeetingDefaultBuilding(ctx, &lark.DeleteVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.DeleteVCMeetingDefaultRoom(ctx, &lark.DeleteVCMeetingDefaultRoomReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + + t.Run("", func(t *testing.T) { + + _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) + as.NotNil(err) + as.Equal("mock-http-failed", err.Error()) + }) + }) } diff --git a/test/vcmeeting_sample_test.go b/test/vcmeeting_sample_test.go deleted file mode 100644 index 2ab1d65d..00000000 --- a/test/vcmeeting_sample_test.go +++ /dev/null @@ -1,328 +0,0 @@ -// Code generated by lark_sdk_gen. DO NOT EDIT. -/** - * Copyright 2022 chyroc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package test - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/chyroc/lark" -) - -func Test_VCMeeting_Sample_Failed(t *testing.T) { - as := assert.New(t) - - t.Run("request failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - cli.Mock().MockGetTenantAccessToken(mockGetTenantAccessTokenFailed) - cli.Mock().MockGetAppAccessToken(mockGetTenantAccessTokenFailed) - moduleCli := cli.VC - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "failed") - }) - - }) - - t.Run("request mock failed", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingListVCMeetingDefaultRoom(func(ctx context.Context, request *lark.ListVCMeetingDefaultRoomReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultRoomResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultRoom() - - _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingCreateResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingCreate() - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGet() - - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingUpdateResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingUpdate() - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomCreate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomCreateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomCreateResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomCreate() - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomUpdate(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomUpdateReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomUpdateResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomUpdate() - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultBuildingDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultBuildingDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultBuildingDeleteResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultBuildingDelete() - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingDelete(ctx, &lark.CreateVCMeetingDefaultBuildingDeleteReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingListVCMeetingDefaultCountry(func(ctx context.Context, request *lark.ListVCMeetingDefaultCountryReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultCountryResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultCountry() - - _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetIDResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGetID() - - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingListVCMeetingDefaultDistrict(func(ctx context.Context, request *lark.ListVCMeetingDefaultDistrictReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultDistrictResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultDistrict() - - _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingCreateVCMeetingDefaultRoomDelete(func(ctx context.Context, request *lark.CreateVCMeetingDefaultRoomDeleteReq, options ...lark.MethodOptionFunc) (*lark.CreateVCMeetingDefaultRoomDeleteResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingCreateVCMeetingDefaultRoomDelete() - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingGetVCMeetingDefaultRoomBatchGetID(func(ctx context.Context, request *lark.GetVCMeetingDefaultRoomBatchGetIDReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultRoomBatchGetIDResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultRoomBatchGetID() - - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingListVCMeetingDefaultBuilding(func(ctx context.Context, request *lark.ListVCMeetingDefaultBuildingReq, options ...lark.MethodOptionFunc) (*lark.ListVCMeetingDefaultBuildingResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingListVCMeetingDefaultBuilding() - - _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - t.Run("", func(t *testing.T) { - - cli.Mock().MockVCMeetingGetVCMeetingDefaultBuildingBatchGet(func(ctx context.Context, request *lark.GetVCMeetingDefaultBuildingBatchGetReq, options ...lark.MethodOptionFunc) (*lark.GetVCMeetingDefaultBuildingBatchGetResp, *lark.Response, error) { - return nil, nil, fmt.Errorf("mock-failed") - }) - defer cli.Mock().UnMockVCMeetingGetVCMeetingDefaultBuildingBatchGet() - - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) - as.NotNil(err) - as.Equal(err.Error(), "mock-failed") - }) - - }) - - t.Run("response is failed (mock http)", func(t *testing.T) { - cli := AppAllPermission.Ins() - moduleCli := cli.VC - cli.Mock().MockRawRequest(func(ctx context.Context, req *lark.RawRequestReq, resp interface{}) (response *lark.Response, err error) { - return nil, fmt.Errorf("mock-http-failed") - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListVCMeetingDefaultRoom(ctx, &lark.ListVCMeetingDefaultRoomReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingCreate(ctx, &lark.CreateVCMeetingDefaultBuildingCreateReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGet(ctx, &lark.GetVCMeetingDefaultRoomBatchGetReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingUpdate(ctx, &lark.CreateVCMeetingDefaultBuildingUpdateReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomCreate(ctx, &lark.CreateVCMeetingDefaultRoomCreateReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomUpdate(ctx, &lark.CreateVCMeetingDefaultRoomUpdateReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultBuildingDelete(ctx, &lark.CreateVCMeetingDefaultBuildingDeleteReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListVCMeetingDefaultCountry(ctx, &lark.ListVCMeetingDefaultCountryReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGetID(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetIDReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListVCMeetingDefaultDistrict(ctx, &lark.ListVCMeetingDefaultDistrictReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.CreateVCMeetingDefaultRoomDelete(ctx, &lark.CreateVCMeetingDefaultRoomDeleteReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetVCMeetingDefaultRoomBatchGetID(ctx, &lark.GetVCMeetingDefaultRoomBatchGetIDReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.ListVCMeetingDefaultBuilding(ctx, &lark.ListVCMeetingDefaultBuildingReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - t.Run("", func(t *testing.T) { - - _, _, err := moduleCli.GetVCMeetingDefaultBuildingBatchGet(ctx, &lark.GetVCMeetingDefaultBuildingBatchGetReq{}) - as.NotNil(err) - as.Equal("mock-http-failed", err.Error()) - }) - - }) -}